張 臨,張建民
(天津職業技術師范大學 電子工程學院,天津300222)
當前音頻信號的采集技術主要分為8位、16位和24位采集。8位音頻采集與處理技術電路簡單,容易實現,但由于失真較大,現在很少被采用。24位和16位采集的音頻信號在聽覺效果上相差不大,但24位占用了更多的資源,實現電路復雜,也很少被采用。目前音頻信號處理技術主要是指16位數據采集與處理技術。AD7705是AD公司推出的帶有二通道的高精度AD轉換器,適合于測量低頻模擬信號,采用∑-Δ轉換技術來實現16位轉換精度,可廣泛應用于智能系統、微控制器和數字信號處理系統中。近年來現場可編程門陣列FPGA的飛速發展也在數據處理中占據一席之地,高端的FPGA已經集成了DSP功能,并不斷壯大,甚至在某些領域將有可能取代DSP,FPGA內部豐富的邏輯資源使其非常適合于實時數據處理。本文正是從此出發,利用AD7705及FPGA設計了音頻信號采集系統,并利用Quartus II對采集系統進行了仿真。針對前端信號中存在的噪聲,設計低通濾波器對噪聲進行處理,并使用MATLAB對低通濾波器進行仿真,驗證了設計的可行性。
傳感器采集到的音頻模擬信號首先經過信號調理電路處理,然后對其進行濾波并送AD處理,轉換后得到的數字信號經FPGA[1]處理,并存儲在FLASH中。音頻信號采集的方框圖如圖1。

圖1 系統設計方框圖
由于被采集的信號相對較小,而且經常會伴有噪聲,所以在前端需要對信號進行放大、濾波。同時由于被采集的信號都是單端信號,所以要在信號進入AD之前進行差分變換,通過將信號放大,再移位來實現。
音頻低通濾波器[2]主要是濾除音頻以外的噪聲信號。音頻信號頻率為20 Hz~20 k Hz,由于實際生活中的音頻信號范圍在50 Hz~10 k Hz范圍內,考慮到實現的難度,本文設計成低通濾波器。具體要求截止頻率3 dB,10 k Hz阻帶衰減不小于-40 dB。通過查表或使用相關濾波器設計軟件可以知道:電路由1到2個單元的運放和任意RC網絡組成可以實現,本文采用4階巴特沃斯實現,如圖2所示。
使用Matlab 7.0[3]對音頻低通濾波器進行仿真,仿真結果如圖3。從仿真圖中可以看出截止頻率滿足-3d B,音頻信號上限10 k Hz時衰減-41.8 dB,也滿足設計要求。

圖2 音頻帶通濾波器

圖3 帶通濾波器仿真結果
由于基準電壓對AD轉換器影響很大,本設計采用專用集成穩壓芯片LM1117系列低壓差電壓調節器來提供基準電壓[4]。LM1117具有電流限制和熱保護電路,包含1個帶隙參考電壓以確保輸出電壓的精度在1%以內,本文采用固定輸出電壓的LM1117-2.5為AD提供2.5 V基準電壓。
數字接口AD7705的串行數據接口包括5個接口,其中片選輸入CS、串行時鐘輸入SCLK、數據輸入DIN、轉換數據輸出口 DOUT、轉換結束指示位DRDY。主要硬件連接如圖4所示。

圖4 基準電源設計
2.4.1 基本原理
本文采用AT45DB041B對采集信號進行存儲,該存儲器主要由主存儲器和兩個264B的緩存構成,主存儲器容量約為 4Mbit,分為 2048頁,每頁也為264B。
圖5是AT45DB041B的SOIC-8的封裝形式,各管腳的定義與功能如下:1腳:SI,串行數據輸入端;2腳:SCK,串行時鐘信號。數據在SCK上升沿輸入,接高電平;4腳:CS,片選信號,低電平有效;下降沿輸出;3腳:RESET,復位信號,低電平有效。由于芯片內部有上電復位電路,不用時此管腳可直接5腳。5腳:WP,寫保護信號,低電平有效。若此腳為低,則主存儲區前256頁不能被擦寫編程,如果不用此功能,可直接接高電平;6腳:VCC,電源輸入端;7腳:GND,電源地;8腳:SO,串行數據輸出端。

圖5 存儲電路封裝
AT45DB041B的操作命令分為讀命令、編程和擦寫命令以及附加命令:
(1)讀主存儲區
不經過緩沖區讀主存儲區任一頁,緩沖區內容不會改變。指令格式后續的SCK信號將使數據依次從SO端輸出。如果讀到了指定頁的最后字節,將自動跳回到頁首起始位置,循環讀取。整個過程中,CS必須保持為低電平,CS從低到高的跳變將中止讀操作,并將SO引腳置三態。
(2)連續讀主存儲區
不經過緩沖區直接讀任意存儲單元的內容,緩沖區內容也不會改變。指令格式后續的SCK時鐘信號將使數據依次從SO端輸出。如果讀到了整個主存儲區的最后字節,將自動跳回主存儲區起始位置,循環讀取,頁與頁之間及主存儲區首尾之間沒有延時。整個過程中,CS必須保持為低電平,CS從低到高的跳變將中止讀操作,并將SO引腳置三態。
(3)寫緩沖區
數據能夠通過SI端被寫入任意一個緩沖區。當寫到緩沖區結尾后仍有數據寫入時,數據將從緩沖區起始字節依次寫入。只要CS保持為低,在SCK時鐘信號配合下,數據將一直循環寫入,CS從低到高的跳變將中止寫操作。
(4)緩沖區寫入主存儲頁(帶擦除)
事先寫入緩沖區的數據可通過編程寫到主存儲頁中。當指令寫完后,CS由0變為1時,芯片首先擦除待寫入頁,然后再將指定緩沖區內的數據寫入主存儲頁。頁擦除和寫入操作由內置時鐘控制。
2.4.2 硬件接線

圖6 AD轉換及存儲電路連接
AD轉換以及存儲電路的硬連接[5]如圖 6,將EP1C6Q240C8N的IO和AT 45DB041B的SI、SO 、SCK、RST、CS引腳相連,WP接高電平;通過 AD轉換,EP1C6Q240C8N將轉換結果存儲于AT45DB041B中,完成數據存儲工作。
本文所使用的AD7705是AD公司生產的適合于測量低頻信號的16位AD轉換器,主要引腳功能介紹見表1。

表1 AD主要引腳功能
依據奈奎斯特采樣定理,在模擬信號的數字化過程中,要想不失真的還原出原信號,采樣頻率必須大于模擬信號最高頻率的兩倍,即

由于音頻信號的頻率范圍為20 Hz~20 kHz,即fh=20 kHz,所以采樣頻率最低為40 k Hz。目前對音頻信號的采集頻率主要有44.1 k Hz和48 k Hz兩種,為更好地還原信號本文使用48 k Hz采樣速率。
AD7705在時鐘為2.4576 MHz的條件下,更新速率有四種,分別為50 Hz,60 Hz,250 Hz,500 Hz,即理論上最快只需2 ms即可完成一次數據轉換。由相關資料知,AD7705典型建立時間為16 ms,即使用60 Hz更新速率,16 ms完成一次轉換,每秒輸出60次轉換結果。本文更新速率使用60 Hz。由AD手冊[6]知串行時鐘脈沖寬度不得小于100 ns,即時鐘不得大于5 MHz,通過將系統時鐘分頻,得到所需要的串行時鐘。
上電或復位后,器件等待指令數據寫入通信寄存器。包括向 AD7705寫控制字。當寫入控制字后,AD7705即處于工作狀態,對采集到的模擬量進行模數轉換。當模數轉換完畢后,AD7705的DRDY引腳會產生一個低電平。系統工作后,FPGA查詢DRDY電平狀態。如果引腳為低,則AD7705轉換數據結束,可以讀取數據,具體流程如圖7所示。

圖7 數據采集流程圖
利用QuartusII[7],對系統采樣進行了仿真,結果如圖8所示。

圖8 FPGA控制AD時序仿真
從圖8我們可以知道,對FPGA的操作首先復位各寄存器,然后寫控制字,再通過通信寄存器對時鐘寄存器、設置寄存器進行訪問。分別寫控制字FFH、05H 和40H,分別表示AD晶振2.4576 MHz,更新頻率60次/s,自校準模式,差分輸入。
(1)如果AD7705復位引腳直連VCC,最好在初始化程序中加入初始化序列,不然DRDY信號不會輸出,就檢測不到轉換是否結束,也就無法讀取轉換結果。
(2)如果AD7705采集單端信號,則輸入必須在0到VDD之間,而不可以超出或為負。如果一個輸入為負,則另一個輸入會有灌入電流的現象,芯片無法正常運行。
(3)AD7705的模擬地和數字地要分開走線,最后匯聚到一個唯一的公共點,并且這個點要盡可能靠近AD7705。
(4)數字信號線應盡量避免走在AD7705芯片下面,模擬地應布置在芯片的下面,電源線、地線應盡可能粗,時鐘信號要盡量遠離模擬信號,并用數字地屏蔽。
(5)AD7705時鐘大于2M時,時鐘設置寄存器的CLK位應置1,小于2M時應置0。SCLK的脈沖寬度要滿足最小的脈寬要求。在時鐘SCLK下降之后的低電平期間讀取數據DOUT。在時鐘SCLK的低電平期間寫入數據DIN,然后在SCLK的上升沿寫入到AD7705。在兩次寫操作之間,DIN最好保持在高電平,時鐘信號SCLK在兩次操作AD7705之間也要保持高電平。即在AD7705空閑時刻,或兩次操作之間的空閑時刻,DIN、SCLK都最好保持高電平。
音頻AD轉換器的選擇直接關系著聽覺效果,精度太小能明顯感覺失真,精度太高則成本及實現難度也會加大。本文選取精度適中的16位AD轉換器對音頻信號進行采集與處理,并采用FPGA作為微控制器。通過對音頻信號進行濾波、放大,AD轉換,最后被FPGA采集并存儲。實際操作證明本文方案不僅易于實現,轉換速度較快,而且能感覺音質有一定的提高。
[1] 王 誠,吳繼華.Altera FPGA/CPLD設計[M].北京:人民郵電出版社,2005.
[2] McGraw Hill,Sanjit K Mitra.Digital Signal Processing[M].A Computer-Based Approach,Second Edition,2001.
[3] Sanjit K Mitra編,孫洪 等譯.數字信號處理實驗指導書(Matlab版)(第一版)[M].北京:電子工業出版社,2005.
[4] 王 超,黃顯高.高速數據采集系統的電源設計研究[J].西安郵電學院學報,2009(9).
[5] 寧 海,尹青山.低功耗16位A/D轉換器 AD7705及其應用[J].甘肅農業,2006(6).10-13.
[6] Analog Device.AD7705/AD7706 Manual[Z],2001.
[7] 侯伯亨,顧 新.VHDL硬件描述語言與數字邏輯電路設計[M].西安:西安電子科技大學出版社.2006。