摘要:基于PCI 總線和FPGA 的特點(diǎn),設(shè)計(jì)了具有高精度、高穩(wěn)定性及高準(zhǔn)確性的多通道信號(hào)采集傳輸系統(tǒng)。系統(tǒng)采用以FPGA 為主控單元,通過(guò)控制模擬選擇開關(guān)ADG706 及A/D 轉(zhuǎn)換器AD7667 實(shí)現(xiàn)對(duì)模擬信號(hào)的采集,并由FIFO 緩存經(jīng)過(guò)PCI總線將所采集的數(shù)據(jù)上傳至上位機(jī)顯示分析。經(jīng)實(shí)際應(yīng)用,系統(tǒng)性能穩(wěn)定,符合設(shè)計(jì)要求。
數(shù)據(jù)采集就是將被測(cè)對(duì)象( 外界、現(xiàn)場(chǎng)) 的各種參量( 物理量、化學(xué)量、生物量等) 通過(guò)各種傳感元件做適當(dāng)轉(zhuǎn)換后,再經(jīng)調(diào)理、采樣、量化、編碼、傳輸?shù)炔襟E,最后送到控制器進(jìn)行數(shù)據(jù)處理或存儲(chǔ)記錄的過(guò)程[1]。數(shù)據(jù)采集技術(shù)可以將許多抽象的模擬量數(shù)字化,進(jìn)而給出其量值,或通過(guò)信號(hào)處理對(duì)該模擬量進(jìn)行分析?;贔PGA 器件的高時(shí)鐘頻率、內(nèi)部延時(shí)小、時(shí)序簡(jiǎn)便精確控制、編程配置靈活等優(yōu)點(diǎn),故本系統(tǒng)以FPGA 為核心來(lái)控制通道切換模數(shù)、轉(zhuǎn)換、數(shù)據(jù)編幀及傳輸。此外基于PCI 總線穩(wěn)定性高,數(shù)據(jù)傳輸速度快,擴(kuò)張性強(qiáng)的優(yōu)點(diǎn),本設(shè)計(jì)中采用PCI 總線實(shí)現(xiàn)上位機(jī)與FPGA 的無(wú)縫連接,完成上位機(jī)與FPGA 控制模塊之間的數(shù)據(jù)傳輸。
1 系統(tǒng)設(shè)計(jì)
1. 1 系統(tǒng)組成
本系統(tǒng)對(duì)29 路高頻壓力信號(hào)進(jìn)行采集( 其中速變信號(hào)4 路采樣率40 K,緩變信號(hào)25 路采樣率6. 6 K) 。設(shè)計(jì)采用模塊化設(shè)計(jì)。各個(gè)模塊之間既整體協(xié)調(diào)又相互獨(dú)立構(gòu)成整個(gè)系統(tǒng)。系統(tǒng)主要由信號(hào)采集模塊、FPGA 控制模塊、PCI 總線接口模塊、電源模塊組成。模塊化設(shè)計(jì)既有利于電路調(diào)試、編程和擴(kuò)展,又能很方便的快速定位問(wèn)題和解決問(wèn)題。本系統(tǒng)中考慮到控制程序占用較多的邏輯資源,F(xiàn)PGA 控制模塊采用Xilinx 公司spartan—3 系列芯片XC3S400 作為主控芯片與外圍器件進(jìn)行連接。系統(tǒng)總體框圖如圖1 所示。
1. 2 系統(tǒng)原理
本系統(tǒng)上電隨即實(shí)現(xiàn)采集與傳輸功能,無(wú)需等待命令字。模擬信號(hào)通過(guò)運(yùn)放OPA4340 進(jìn)行放大,再進(jìn)入一階濾波電路和電壓跟隨器進(jìn)行信號(hào)調(diào)理,之后在FPGA 的時(shí)序控制下通過(guò)模擬選擇開關(guān)ADG706的選通進(jìn)入AD7667 進(jìn)行模數(shù)轉(zhuǎn)化,轉(zhuǎn)換后的數(shù)據(jù)緩存到FIFO 中,最后經(jīng)PCI 總線接口電路上傳至上位機(jī)進(jìn)行顯示和分析。整個(gè)系統(tǒng)的供電由電源模塊提供,電源模塊自帶EMI 模塊進(jìn)行濾波保護(hù),向FPGA控制模塊提供所需的5 V、3. 3 V 和1. 2 V 電壓,向信號(hào)采集模塊提供所需的5 V、3. 3 V 電壓。
2 硬件電路設(shè)計(jì)
2. 1 信號(hào)調(diào)理及跟隨電路
高頻壓力信號(hào)進(jìn)入系統(tǒng)后,首先要經(jīng)過(guò)信號(hào)調(diào)理電路完成對(duì)信號(hào)的放大、濾波、跟隨保持,調(diào)理電路如圖2 所示,經(jīng)過(guò)信號(hào)放大電路,將信號(hào)幅值調(diào)節(jié)到0—5 V 的范圍內(nèi),之后通過(guò)一階濾波電路,其中濾波電路截止頻率為,,這樣把輸入信號(hào)的頻率范圍調(diào)理成系統(tǒng)采集信號(hào)的頻率范圍內(nèi),最后進(jìn)入模擬開關(guān)ADG706。圖2 中的D1 起到了反向保護(hù)的作用。
2. 2 多通道切換開關(guān)電路
16 路選擇模擬開關(guān)ADG706 把各路模擬信號(hào)切換依次送入模數(shù)轉(zhuǎn)換器AD7667 進(jìn)行A/D 轉(zhuǎn)換,設(shè)計(jì)中可使用2 個(gè)ADG706 實(shí)現(xiàn)29 路模擬信號(hào)的切換。在設(shè)計(jì)過(guò)程中FPGA 控制模塊對(duì)于模擬開關(guān)
ADG706 的使能控制和通道切換控制是設(shè)計(jì)中應(yīng)該注意的問(wèn)題。此外信號(hào)在通過(guò)ADG706 后將進(jìn)入電壓跟隨器,這里的跟隨器選用的高速運(yùn)放AD8031,根據(jù)芯片資料知其最大可帶容性負(fù)載為15PF,遠(yuǎn)遠(yuǎn)高于AD8031 的驅(qū)動(dòng)能力。因此有可能會(huì)造成振蕩問(wèn)題。設(shè)計(jì)中增加一階有源濾波電路可以濾除高頻振蕩。多通道切換開關(guān)電路如圖3 所示。
2. 3 A \D 轉(zhuǎn)換電路
本系統(tǒng)中模數(shù)轉(zhuǎn)換器AD7667,具有16 bit /1 M的采樣能力。輸入信號(hào)經(jīng)其轉(zhuǎn)換后變成16 位數(shù)字信號(hào),在FPGA 控制下依次取其高8 位與低8 位,根據(jù)設(shè)計(jì)的幀結(jié)構(gòu)的順序依次寫入FIFO 緩存器。設(shè)計(jì)中模擬信號(hào)在進(jìn)入AD7667 之前經(jīng)過(guò)調(diào)理后穩(wěn)壓在0 ~ 5 V 范圍內(nèi)。由于AD7667 內(nèi)部具有2. 5 V 的基準(zhǔn)電壓源,所以進(jìn)入AD7667 前信號(hào)通過(guò)電阻網(wǎng)絡(luò)進(jìn)行分壓,經(jīng)過(guò)分壓處理后的電壓范圍為:
( 0 ~5 V) ×10 K/( 12 K +10 K) = ( 0 ~2. 25 V) 。
結(jié)果在AD7667 的電壓輸入范圍之內(nèi)。此外C49 為去耦電容,作用是用來(lái)降低電源、噪聲等產(chǎn)生的干擾。A\ \D 轉(zhuǎn)換電路如圖4 所示。
2. 4 FIFO 緩存電路
本系統(tǒng)采用外部FIFO IDT7206,這是由于外部FIFO 引腳功能較多,尤其是半滿信號(hào)以及空信號(hào)都易于判斷,此外也不會(huì)占用FPGA 的內(nèi)部資源。本設(shè)計(jì)中IDT7206 采取半滿即讀的工作方式,這樣不會(huì)發(fā)生FIFO 緩存數(shù)據(jù)溢出現(xiàn)象,并且可以將緩存的數(shù)據(jù)高速讀出,達(dá)到高速緩存的目的。FIFO 緩存電路如圖5 所示。
2. 5 PCI 接口模塊設(shè)計(jì)
PCI 總線接口模塊采用PLX 公司的PCI 總線通用接口芯片PCI9054,PCI9054 符合PCI V2. 1 和V2. 2 規(guī)范,具有兩個(gè)獨(dú)立的可編程DMA 控制器,數(shù)據(jù)寬度32 位,理論數(shù)據(jù)傳輸速率最高可達(dá)132 MBps[2]。為了滿足上位機(jī)與PCI 總線模塊之間的高速傳輸,PCI9054 采用DMA 突發(fā)傳輸模式來(lái)實(shí)現(xiàn)。
FPGA 控制模塊檢測(cè)到FIFO 的“半滿”信號(hào)為低電平時(shí),將FIFO 中的數(shù)據(jù)讀取出來(lái),組成規(guī)定的數(shù)據(jù)包,控制PCI9054 向上位機(jī)傳輸數(shù)據(jù)。
3 系統(tǒng)時(shí)序設(shè)計(jì)
3. 1 信號(hào)采樣幀結(jié)構(gòu)的設(shè)計(jì)
在設(shè)計(jì)中采樣幀結(jié)構(gòu)即信號(hào)采樣順序( 通道切換順序) 是最需要優(yōu)先考慮的部分。在保證各路信號(hào)采樣率的情況下,在一個(gè)幀結(jié)構(gòu)中平均同一信號(hào)的各采樣點(diǎn)時(shí)間間隔是設(shè)計(jì)的關(guān)鍵之處。在本系統(tǒng)中需采樣的速/緩變模擬信號(hào)參數(shù)如下:
S: 為速變信號(hào),4 路( S1 ~ S4 ) ,采樣率: 40Ksps,8 bit;
H: 為緩變信號(hào), 25 路( H1 ~ H25) ,采樣率: 6. 6Ksps,8 bit;
速變信號(hào)采樣率為緩變信號(hào)采樣率的6 倍,因此不需要提升系統(tǒng)總體采樣率。首先確定幀結(jié)構(gòu)的行數(shù): 將采樣率高的S 放置在幀結(jié)構(gòu)的最起始位置,因其采樣率為6. 6 Ksps 的6 倍,所以一幀中S信號(hào)采樣點(diǎn)應(yīng)為H 信號(hào)的6 倍,由此確定幀結(jié)構(gòu)中一列為6 個(gè)采樣點(diǎn),幀結(jié)構(gòu)行數(shù)為6,且?guī)Y(jié)構(gòu)的前4 列為S 的采樣點(diǎn),所以幀結(jié)構(gòu)列數(shù)應(yīng)大于4。
再確定幀結(jié)構(gòu)的列數(shù): 由于一列為6 個(gè)采樣點(diǎn),這樣H 信號(hào)占用的采樣點(diǎn)數(shù)為25,需要5 列才能放下,同時(shí)空出5 個(gè)空位正好用來(lái)放置幀計(jì)數(shù)與幀標(biāo)記。于是幀結(jié)構(gòu)的列數(shù)為: 4 + 5 = 9。
于是可以確定幀結(jié)構(gòu)是一個(gè)6 × 9 的矩陣,總采樣點(diǎn)54 個(gè)。其中幀計(jì)數(shù)與幀標(biāo)記占用5 個(gè)采樣點(diǎn),我們得到一種采樣幀結(jié)構(gòu)如表1 所示。
3. 2 FPGA 的時(shí)序設(shè)計(jì)
本系統(tǒng)中模擬開關(guān)的選通,A \ \D 的控制,F(xiàn)IFO的讀寫均是由FPGA 進(jìn)行控制,信號(hào)的總采樣率為
6. 6 K × 54 = 360 Ksps。FPGA 的時(shí)鐘頻率為54MHz,因此FPGA 內(nèi)部邏輯在每一次采樣點(diǎn)上均有150 個(gè)狀態(tài)機(jī)可供使用,這對(duì)于模擬開關(guān)通道切換、A\ \D 模數(shù)轉(zhuǎn)換和FIFO 緩存已經(jīng)完全足夠。此外模擬開關(guān)切換與啟動(dòng)A \ \D 轉(zhuǎn)換被盡量分開,這樣安排主要是為了讓模擬信號(hào)在通道切換后,A \ \ D采樣前有足夠的時(shí)間穩(wěn)定下來(lái),以提高采樣精度[3]。FPGA 控制時(shí)序圖如下圖6 所示。
圖6 中: COVST 為AD 采樣控制信號(hào),低電平有效; ADDR 為輸出的模擬開關(guān)切換地址; WRCLK 為FIFO 寫信號(hào),上升沿有效; DATA 為將寫入FIFO 中的數(shù)據(jù); BYTE 為字節(jié)輸出控制信號(hào),低電平時(shí)取數(shù)據(jù)的低8 位,高電平時(shí)取數(shù)據(jù)的高8 位。
4 測(cè)試結(jié)果分析
在實(shí)際應(yīng)用中,通過(guò)PCI 總線將采集到的數(shù)據(jù)上傳至上位機(jī),其中上傳的一部分?jǐn)?shù)據(jù)如圖7 所示。由圖7 可知上傳的數(shù)據(jù)幀格式完整,幀標(biāo)志對(duì)齊,幀計(jì)數(shù)正確,沒(méi)有丟數(shù)現(xiàn)象。數(shù)據(jù)通過(guò)上位機(jī)處理后繪制出的曲線如圖8 所示。其中信號(hào)輸入為正弦波。由圖8 可知系統(tǒng)采樣功能正常,波形完整。綜上所述,本系統(tǒng)功能完整,性能滿足設(shè)計(jì)要求。
5 總結(jié)
本設(shè)計(jì)針對(duì)采集傳輸技術(shù)要求及當(dāng)前技術(shù)實(shí)現(xiàn)手段,完成了多通道信號(hào)采集傳輸系統(tǒng)設(shè)計(jì),將FPGA 和PCI 總線技術(shù)進(jìn)行了有機(jī)的結(jié)合,充分利用了各自的優(yōu)點(diǎn),使采集系統(tǒng)具備實(shí)時(shí)采集、即時(shí)顯示、即時(shí)反饋、自動(dòng)處理、自動(dòng)傳輸?shù)墓δ?,為現(xiàn)場(chǎng)采集數(shù)據(jù)的真實(shí)性、有效性、實(shí)時(shí)性、可用性提供了可靠保證。
評(píng)論
查看更多