<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于EP7312的嵌入式頻譜分析技術(shù)

基于EP7312的嵌入式頻譜分析技術(shù)

作者:■ 北京交通大學(xué) 李文鋒 高金山 李尚鋒 時(shí)間:2005-01-17 來(lái)源:電子設計應用2004年第11期 收藏

摘    要:本文以ARM 為核心設計了音頻信號采集系統,研究了嵌入式Linux系統的驅動(dòng)程序設計和基于、模塊化的應用程序設計問(wèn)題。該系統能夠對采集的信號進(jìn)行FFT變換、存儲和顯示。
關(guān)鍵詞:;;;;

本文引用地址:http://dyxdggzs.com/article/4358.htm

在工程應用中,通過(guò)數字采集系統對信號進(jìn)行采集和顯示,可以獲取直觀(guān)的時(shí)域波形。但往往人們還需要從時(shí)域信息中提取出信號的其它特征,如信號的頻域信息。本設計通過(guò)數據采集電路對模擬信號進(jìn)行采集,采用512點(diǎn)的時(shí)間抽取基2 FFT算法對采集的數據進(jìn)行處理,然后在LCD上顯示其頻譜曲線(xiàn)。系統構建于嵌入式Linux操作系統之上,具有嵌入式設備體積小、成本低、功耗低等特點(diǎn),可便捷地進(jìn)行語(yǔ)音采集、顯示、處理和聲音信號的,適用于環(huán)境監測及故障診斷等場(chǎng)合。

圖1  系統構成圖

 圖2  程序流程圖

圖3  信號的時(shí)域圖和頻譜圖

數據采集電路設計
本系統由模數轉換模塊、數據處理和控制模塊、顯示模塊這三部分組成,如圖1所示。
模數轉換芯片采用的是Cirrus Logic公司推出的24位兩通道立體聲模數轉換芯片,其輸出為串行形式,采樣頻率從32kHz 到192kHz。它有主從兩種工作模式,由主從模式選擇開(kāi)關(guān)進(jìn)行選擇。
數據處理和控制模塊采用了ARM7系列的嵌入式32位處理器,主頻為74MHz。
在該設計中,模擬信號經(jīng)過(guò)放大電路可放大為原來(lái)的1倍、2倍、4倍或10倍,具體可由放大倍數開(kāi)關(guān)控制。放大倍數通過(guò)EP7312的通用端口控制LCD上每個(gè)刻度代表的電壓值。CS5341的工作模式為從模式,在該模式下主時(shí)鐘、串行數據時(shí)鐘和通道選擇時(shí)鐘都由EP7312提供,串行數據時(shí)鐘的頻率為通道選擇時(shí)鐘的64倍,主時(shí)鐘頻率為通道選擇時(shí)鐘的256倍。當串行數據時(shí)鐘處于上升沿時(shí),CS5341輸出一位數據。通道選擇時(shí)鐘高電平時(shí)左通道有效,低電平時(shí)右通道有效。

系統的軟件設計
系統的軟件設計包括驅動(dòng)設計和應用設計兩部分。
驅動(dòng)設計
在嵌入式Linux系統中,設備驅動(dòng)程序隱藏了各種設備的具體細節,維護著(zhù)設備的正常工作,在用戶(hù)與設備之間起到了橋梁作用。開(kāi)發(fā)設備驅動(dòng)程序是開(kāi)發(fā)嵌入式系統的重要工作之一。在該系統中,涉及兩個(gè)驅動(dòng)程序:CS5341驅動(dòng)和LCD驅動(dòng)。EP7312為L(cháng)CD的控制提供了良好的支持,驅動(dòng)程序的具體設計可參照參考文獻3。
下面介紹CS5341驅動(dòng)程序的設計。由于CS5341數據采集速度較快,最高達192kHz。為了與其相匹配,我們采用了快速中斷fiq。與普通中斷不同,快速中斷模式有專(zhuān)用的組合寄存器集,因而大大減少了中斷時(shí)間。而快速中斷的申請需要用到中斷處理函數的首地址和末地址,為了得到這兩個(gè)地址,中斷處理函數必須用匯編來(lái)編寫(xiě)。因此,該驅動(dòng)有兩個(gè)文件構成:主文件cs5341.c和中斷文件fiq.s。在此著(zhù)重說(shuō)明主文件中的設備初始化函數cs5341init()和中斷函數。
int CS5341Init(void)
{
 ..................................
//禁止中斷
  INTMR3 = 0x0;
  //設置相關(guān)寄存器
  SYSCON3 |= 0x00000008;
  DAI64FS = 0x60B;
  DAIR =0x00220404;
  DAISR =0xFFFFFFFF;
  DAIR |=0x10000;
 ...................................
 //注冊設備
rc= register_chrdev (cs5341_major, "CS5341", &CS5341_fops);
 ...................................
 //申請fiq
  fiqhandler_start = &dai_fiq_handler_start;
  fiqhandler_length = &dai_fiq_handler_end - &dai_fiq_handler_start;
  if (claim_fiq(&cs5341_fh))
    {
      printk("cs5341_fh: couldn't claim FIQ.n");
       return;
     }
    set_fiq_hander(fiqhander_start, fiqhander_length);
    set_fiq_regs(regs);
  ..................................
 return 0;
}
中斷處理程序:
.....................................
.text
        .align  2
     .global dai_fiq_handler_start
        .global dai_fiq_handler_end
dai_fiq_handler_start:
//程序首地址
........................................
........................................
dai_fiq_handler_end:
//程序末地址
應用程序設計
該系統的應用程序設計主要包括數據存儲、數據處理(FFT)和波形顯示。
數據存儲
在該模塊中,申請兩塊緩沖區buf和buffer,buf用來(lái)存放采集的數據,buffer為臨界資源。程序把數據從buf放入臨界資源buffer中,設置一個(gè)共享鎖,實(shí)現該模塊、數據的處理和顯示模塊的互斥訪(fǎng)問(wèn)。
數據處理模塊
該模塊采用FFT算法對采集的數據進(jìn)行處理。
FFT變換的具體實(shí)現如下:
首先進(jìn)行碼位倒置,得到FFT運算所需要的輸入序列。然后采用3層循環(huán)完成N點(diǎn)FFT(這里N=512)。
第一層循環(huán):“級”作為第一層循環(huán),N點(diǎn)FFT運算共有M級,這里,我們用m作循環(huán)變量,。
第二層循環(huán):“組”作為第二層循環(huán),第m級的組數為,用j作循環(huán)變量,。
第三層循環(huán):每組里的蝶形單元作為第三層循環(huán),每一組里共有蝶型單元2m個(gè),用i作循環(huán)變量,。
分析上面循環(huán)可以得出:第三層循環(huán)完成2m個(gè)蝶形單元計算;第二層循環(huán)使第三層循環(huán)進(jìn)行次,因此,當第二層循環(huán)完成時(shí),共進(jìn)行次蝶形單元計算;第一層循環(huán)又使第二層循環(huán)進(jìn)行了M次,因此,當第一層循環(huán)完成時(shí),共進(jìn)行了次蝶型單元計算。
波形顯示模塊
因為要把處理前的數據和經(jīng)過(guò)FFT處理后的數據同時(shí)顯示在LCD上,所以,把LCD的上半屏分配給未處理的數據,用于顯示時(shí)域圖;下半屏用于顯示頻譜圖。為了把波形顯示在特定的區域,需要對數據進(jìn)行處理。所采集的數據和FFT變換過(guò)的數據的范圍均為0~0XFF,0對應于LCD上Y軸坐標的120和210,0XFF對應于LCD上Y軸坐標的30和120。因此,用于顯示時(shí)域圖的數據VAL與其在LCD上Y坐標的關(guān)系式為:
Y=120-VAL



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>