多通道高精度數據采集電路設計
在信號處理領(lǐng)域,DSP技術(shù)的應用越來(lái)越廣泛,基于DSP的信號采集處理平臺不斷出現。常見(jiàn)的DSP信號采集處理平臺利用總線(xiàn)進(jìn)行數據采集,總線(xiàn)上多個(gè)設備的數據傳輸經(jīng)常相互沖突。ADI公司的Tiger SHARCl01型DSP(簡(jiǎn)稱(chēng)TSl01)只有總線(xiàn)和鏈路口可以與外設通信,基于緩解總線(xiàn)沖突的目的,筆者設計了一種以現場(chǎng)可編程門(mén)陣列(FPGA)作為數據接口緩沖器,避開(kāi)總線(xiàn),經(jīng)TSl01的鏈路口將多個(gè)A/D轉換器采集到的數據傳送到TSl01。由FPGA完成多個(gè)多路A/D轉換器采集數據的緩沖排序,并形成符合TSl01鏈路口傳輸協(xié)議的數據流,送到TSl01的鏈路口。該設計實(shí)現了鏈路口與其他非鏈路口外部設備的通信。減少了TSlOl總線(xiàn)上的數據傳輸量,緩解了總線(xiàn)競爭的問(wèn)題。
2 ADS8361型A/D轉換器
ADS8361是TI公司生產(chǎn)的雙通道、四路、模擬差分輸入、16 bit同步采樣串行A/D轉換器。4路模擬差分輸入分成2組,每組各有1個(gè)A/D轉換模塊,可同時(shí)采樣;對每個(gè)輸入最快可以實(shí)現500 ks/s的采樣率,即2 μs就完成1次A/D采樣。采樣后的數據由串行接口輸出
,這對于具備同步串行接口的大多數DSP是非常有用的,DSP的總線(xiàn)可以?huà)旖佣喾N其他設備,在高速連續采樣的過(guò)程中,DSP的串口和總線(xiàn)可以互不影響地獨立工作。
ADS8361在采樣頻率率為50 kHz時(shí),有80 dB的共模抑制,這在強噪聲環(huán)境中非常重要。ADS8361需要模擬電壓和數字電壓分別供電,考慮到與外部電路的匹配,所以模擬部分選擇5 V供電,數字部分與DSP的I/O電壓一致,選擇3.3 V供電。工作時(shí)既可以使用內部2.5 V參考電壓,也可以由外部提供參考電壓。差分模擬輸入信號的電壓范圍為±2.5V。ADS8361采用SSOP-24封裝。CS引腳是ADS8361的片選;Ml、M0、AO引腳用于選擇采樣通道和數據通道;RD引腳為讀取數據引腳,CONVST引腳是A/D轉換脈沖,在使用中應將RD與CON-VST引腳相連;CLOCK引腳用于輸入采樣時(shí)鐘(與下文中FPGA輸出的ADCLK相連);2個(gè)通道的數據輸出引腳分別為SERIAL DATA A和SERIALDATA B,每次轉換輸出16 bit數據。ADS8361的工作時(shí)鐘最大值為10MHz,高電平和低電平至少各40 ns。
3 TSl01的鏈路口及傳輸方式
TSl01是高性能128 bit浮點(diǎn)數字信號處理器,其運算能力很強(18億次/秒),而外部總線(xiàn)吞吐能力相對不足(若外部頻率為100 MHz,則外部總線(xiàn)傳輸速度為800 MB/s),當外設較多時(shí)很容易形成I/O瓶頸。不過(guò)它有四個(gè)高速鏈路口,每個(gè)鏈路口的傳輸速度極限為250 MB/s,適合TSl01之間的點(diǎn)對點(diǎn)高速傳輸,也可與其相同協(xié)議的外設通信,從而大大緩解了總線(xiàn)壓力。
TSl01的每個(gè)鏈路口由發(fā)送器和接收器兩部分組成,每部分都有128 bit的移位寄存器和128 bit的緩沖寄存器,其結構如圖l所示。每個(gè)鏈路口均有8 bit數據線(xiàn)和LxCLKIN、LxCLKOUT和LxDIR(x為鏈路口序號0-3)3個(gè)控制引腳,可支持多片TSl01處理器間點(diǎn)對點(diǎn)的雙向數據傳送,也可以用于與外部設備進(jìn)行數據傳輸。其中LxDIR用來(lái)指示鏈路口的數據流向。LxCLKIN和LxCLKOUT為鏈路口的時(shí)鐘/確認握手信號。發(fā)送數據時(shí),LxCLKOUT為時(shí)鐘信號,LxCLKIN為確認信號;接收數據時(shí),LxCLKIN為時(shí)鐘信號,LxCLKOUT為確認信號。發(fā)送數據時(shí),首先傳輸4字數據到鏈路發(fā)送緩沖寄存器LBUFTx,再將其復制到移位寄存器(若移位寄存器為空,此時(shí)LBUFTx可被寫(xiě)入新的數據),然后以字節的形式發(fā)送(先發(fā)送低字節),每個(gè)字節在鏈路時(shí)鐘的上升沿和下降沿被驅動(dòng)和鎖存。接收器的移位寄存器為空時(shí),系統將開(kāi)始接收發(fā)送方傳輸的數據并將其送入移位寄存器,同時(shí)驅動(dòng)LxCLKOUT為低電平。當整個(gè)4字接收完畢后,如果接收緩沖寄存器LBUFRx為空,系統會(huì )將4字數據從移位寄存器復制到LBUFRx,并在數據被復制后驅動(dòng)其Lx-CLKOUT為高電平,以告訴發(fā)送方接收緩沖寄存器為空,可以準備接收新數據。發(fā)送方檢測到Lx-CLKIN為高電平后立即進(jìn)行下次傳輸。
常見(jiàn)的啟動(dòng)鏈路傳輸數據的方法有二種:利用TSl01的IRQ中斷啟動(dòng)和利用鏈路中斷啟動(dòng)。鏈路傳輸以DMA方式進(jìn)行,DMA方式是在TSl01內核不干預的情況下,后臺通過(guò)鏈路口高速傳送數據的機制。從外部設備向鏈路口傳送數據,實(shí)際上是鏈路口把外部設備送來(lái)的數據自動(dòng)保存到TSlOl的內、外存儲器中,也可以經(jīng)其他鏈路口轉發(fā)出去。對鏈路口及其DMA寄存器進(jìn)行正確的設置后就可以設置TCB塊。DMA啟動(dòng)后,一旦鏈路緩沖器未滿(mǎn),它將向外部設備請求數據。這時(shí),如果DMA可以占用內部或外部數據總線(xiàn),那么,系統便可將數據從鏈路口傳送到存儲器中。
4 數據采集的硬件設計
TSIOI是運算能力強但與外部連接資源相對少的一類(lèi)DSP,在多個(gè)TSl01級連的系統中,如果利用總線(xiàn)進(jìn)行數據采集,A/D轉換器通常需要長(cháng)時(shí)間占用總線(xiàn),會(huì )經(jīng)常出現爭占總線(xiàn)的問(wèn)題,從而導致信號采集處理出現總線(xiàn)瓶頸,利用鏈路口進(jìn)行數據采集可以很大程度地釋放總線(xiàn)資源。本應用中需要對10路模擬信號同時(shí)進(jìn)行500 kHz的采樣,傳輸的數據率為lOx0.5 MBx2=10 MB/s250 MB/s。
TSl01通過(guò)FPGA進(jìn)行數據采集,它的鏈路口作為數據輸入口。它們的連接結構如圖2所示,將鏈路口的LxCLKIN直接和FPGA連接,由FPGA驅動(dòng),在FPGA向鏈路口傳送數據時(shí)作為鏈路口的時(shí)鐘輸入。LxDIR和LxCLKOUT可以懸空,鏈路口的8條數據線(xiàn)接到FPGA上。
設計中將每個(gè)A/D轉換器的M1、NO、A0引腳接地,僅取用每個(gè)A/D轉換器的2個(gè)模擬差分輸入——AO和B0通道,2個(gè)通道可以在2μs之內同時(shí)完成1次采樣。本
5 數據采集的軟件設計
軟件部分包括TSl01軟件設計和FPGA軟件設計,FPGA軟件設計采用VHDL實(shí)現。其結構如圖3所示。
FPGA的主要操作是將5個(gè)ADS8361的10路串行采集數據轉換成20個(gè)8 bit數據,再將數據鎖存,同時(shí)產(chǎn)生鏈路時(shí)鐘,將鎖存后的數據發(fā)送到TSl01鏈路口。需要實(shí)現的時(shí)序如圖4所示,其中CLOCK是TSlOl外部時(shí)鐘,ADCLK是ADS8361的工作時(shí)鐘,是CLDCK的5分頻,占空比為60%,CONVST與RD相連接,LINKCLK是鏈路時(shí)鐘,LINKDATA是鏈路數據。
使用鏈路傳輸時(shí),TSl01在鏈路時(shí)鐘的上升沿和下降沿都鎖存數據,20個(gè)8 bit數據需要lO個(gè)鏈路脈沖,而鏈路口每次至少需要傳輸128 bit的數據,即至少需要8個(gè)脈沖,且發(fā)送數據需要的脈沖數必須為8的倍數。所以設計中每次通過(guò)鏈路發(fā)送數據的脈沖數為16個(gè),前10個(gè)傳輸A/D轉換器采集到的數據,其后的6個(gè)脈沖發(fā)送0x55。發(fā)送到鏈路的數據是A/D轉換器上次轉換的結果。TSl01可以設置鏈路口工作時(shí)鐘為內核時(shí)鐘的2、3、4、8分頻,設計中TSl01外部時(shí)鐘CLOCK是50MHz,內核時(shí)鐘是CLOCK的5倍頻即250 MHz,鏈路口接收數據時(shí)FPGA給TSIOI的鏈路時(shí)鐘LINKCLK是25 MHz TSl01鏈路口工作時(shí)鐘應盡量接近鏈路時(shí)鐘LINKCLK,所以設置TSl01鏈路口工作時(shí)鐘為內核時(shí)鐘的8分頻即31.25 MHz。
系統采用鏈路中斷方式接收FPGA送來(lái)的數據,鏈路中斷方式數據接收的程序如下:
6 A/D轉換器電路的設計和使用
設計高精度A/D轉換器的關(guān)鍵是保證有效位數,ADS8361的輸入動(dòng)態(tài)范圍為:±2.5 V,每個(gè)量化單位對應0.076 mV,因此應設法降低噪聲和干擾。噪聲和干擾的來(lái)源主要有二種:一種是A/D轉換器自身的噪聲如量化噪聲等,另一種是周?chē)娐樊a(chǎn)生的噪聲干擾。前者是A/D轉換器固有的,后者的大小遠遠超過(guò)前者,特別是電源、模擬/電路數字電路之間的干擾。ADS8361的差分輸入方式大大降低了共模干擾。設計中主要考慮如何在電路中減少其他噪聲和干擾。
電源設計是抑制噪聲的關(guān)鍵,本文介紹的設計具有多種電壓(模擬5 V、-5 V和數字3.3 V、1.2V等)并且是混合模擬和數字信號的板級設計,選擇合適的電源電路,合理地進(jìn)行電源層和地層的切割是很重要的。開(kāi)關(guān)電源具有體積小、效率高、輸出穩定等優(yōu)點(diǎn),同時(shí)能夠很好地解決TSlOl的上電次序問(wèn)題,但紋波明顯。開(kāi)關(guān)頻率越高輸出電壓紋波越小,電路中選用的電感器在10μH~200 μH為宜,電路中可以使用ESR小、容值大的電容器構成去耦電路,同時(shí)在板上放置多種電容器進(jìn)行濾波。
減少數字信號干擾也可以有效提高A/D轉換器的精度,布板和布線(xiàn)時(shí)要使ADS8361模擬差分信號輸入區域盡量遠離數字信號,FPGA設計中盡量避免多個(gè)信號電平同時(shí)翻轉,同時(shí)給A/D轉換器提供良好的工作時(shí)鐘,應使用串聯(lián)終端法,串聯(lián)1只小電阻器可以很好減少時(shí)基抖動(dòng),時(shí)鐘信號進(jìn)入A/D轉換器的布線(xiàn)越短越好,同時(shí)不要離數字信號太近,也不要靠近模擬區,否則會(huì )增加模擬區的噪聲。同時(shí)要注意單點(diǎn)共地,在共地的點(diǎn)上串接1個(gè)磁珠。設計中使用了多層板布局,在輕載情況下可以將輸出電壓紋波減到4mV。
7 結束語(yǔ)
筆者設計一種通過(guò)TSl01鏈路口進(jìn)行多A/D轉換器多通道高精度數據采集的實(shí)現方法,在DSP信號采集處理系統中可以不占用總線(xiàn),實(shí)現并行數據傳輸和處理,有更高的實(shí)時(shí)性,同時(shí)探討了如何提高A/D轉換器精度的問(wèn)題。該設計方法已經(jīng)應用于多種并行和串行A/D轉換電路中,具有通用性。
評論