tft每日頭條

 > 科技

 > 以太網高速數據采集存儲卡

以太網高速數據采集存儲卡

科技 更新时间:2024-10-05 17:51:07

代威威,董文嶽,

(珠海歐比特控制工程股份有限公司 廣東 珠海 519080)

數據采集卡是模-數信号轉換與信号處理系統的關鍵部分。在要求不高的工控應用場合中,大多數應用采樣速率均低于1 Msps的中、低速數據采集卡;采樣速率高于1 Msps的高速或者超高速數據采集卡,則主要應用于要求較高的工控領域中。而PCI總線通用性與廣泛性表明其在未來的十年工控領域中它仍占主導地位。高速數據采集卡目前分成兩類:一種是以高采樣速率采集一定深度的數據後,再把數據通過PCI總線傳輸給上位機,這類的采集卡由于不是即時的且并不是捕獲所有的數據,因此采樣速率往往可以高達100 Msps甚至200 Msps以上;另一種則是捕獲所有的數據且即時顯示在上位機上,這類的采集卡研發一直是工控領域研發的難點,受限于PCI帶寬,采樣速率國内一直并沒有突破5 Msps的産品,而歐比特公司的産品具備邊沿觸發方式,結合上位機的虛拟示波器技術,可以實現雙通道10 Msps/單通道20 Msps的全速不間斷采樣。

基于以上的原因,利用PLX公司PCI9056-66BA,珠海歐比特公司在超高的數據采集系統中做了一些研究,設計12 bit分辨率的超高速高精度數據采集PCI闆卡EMBC2000- PCI-AD485CAN。該數據采集闆卡遵循PCI 2.3标準,同時支持5 V/3.3 V 标準32位PCI接口,已實現雙通道10 Msps/單通道20 Msps的全速不間斷采樣,且采集的數據可利用CAN或者RS485總線進行遠程數據傳輸,滿足了高端工控領域的應用要求。

1 EMBC2000-PCI-AD485CAN的硬件功能結構

EMBC2000-PCI-AD485CAN(以下簡稱EMBC2000-PCI)硬件結構主要由6個部分組成:模拟信号垂直調理電路、數據采集及主控電路、本地數據緩存電路、PCI總線接口電路、隔離型CAN/RS485接口電路、電源電路,實現了雙通道模拟信号輸入,其結構圖如圖1所示。

以太網高速數據采集存儲卡(高速高精度多功能數據采集卡的設計)1

圖1 EMBC2000-PCI硬件電路結構圖

1.1模拟信号垂直通道設計

模拟信号垂直調理電路允許輸入的模拟電平範圍在0~±25 V之間,輸入阻抗可在1 MΩ與50 Ω之間切換,同時具備DC/AC/GND三種耦合方式。

由于允許輸入的模拟電平範圍較大,而ADC允許輸入電平範圍較小,所以必須先對輸入信号進行衰減,然後根據需要進行放大,使當前輸入信号的峰值接近或者等于ADC的最大量程。因此,就要求前端衰減電路的輸入阻抗要高,同時在闆卡的整個通頻帶内的衰減分壓比不變。要實現這樣的要求僅簡單地采用電阻分壓是達不到目的。因為在下一級的輸入以及PCB走線中均存在分布電容,這個分布電容的存在對被測信号的高頻分量有嚴重的衰減,造成信号的高頻分量的失真(脈沖上升時間變慢)。為此必須采用如圖2所示的阻容補償式分壓電路,圖中R1、R2為分壓電阻(R2包括下一級的輸入電阻),C1、C2為補償電容(C2包括下一級的輸入電容)。調節C2,當滿足時,分壓比K在整個通頻帶内是均勻的,它被表示為,這樣的分壓電路做成的衰減器就可以無畸變地傳輸窄脈沖信号,僅僅是信号幅度變為原來的1/K。

以太網高速數據采集存儲卡(高速高精度多功能數據采集卡的設計)2

圖2阻容分壓電路圖

大多數數據采集設備的輸入電阻Ri都設計在1MΩ左右,它的大小主要決定于R1,因為,而R1遠大于R2。輸入電容Ci為C1和C2的串聯值和引線的分布電容C0的并聯值。本闆卡的輸入電阻Ri=1MΩ,輸入電容Ci=25 pF。

為了使探頭接入被測電路不影響被測電路的工作,即前端衰減電路到下一級的可變增益放大電路應當是開路的,這可以通過加入一個輸入阻抗很大的射随運放來實現,這裡選用ADI公司的AD8027,其輸入阻抗高達6 MΩ。

對衰減後的信号進行放大有三種方式:

1) 使用高精度運放,通過繼電器或者模拟開關選擇反饋電阻或者輸入電阻的大小來實現不同的增益,缺點是需要較大的布線空間,不利于小型化,且高精度運放的輸入帶寬往往較窄,減小系統的重用性;

2) 使用數控可變增益放大器,這種方式利于控制且精度較高,缺點是增益的範圍是不連續的;

3) 使用壓控可變增益放大器,這種方式優點在于增益的範圍是連續,缺點是要額外增加一個高精度DAC。

綜合各方面的考慮,最終選用ADI公司的壓控可變增益放大器AD8336及搭配TI公司的16位DAC DAC8552。

TI公司的DAC8552輸出公式(1):

(1)

D範圍為0~65536,Vref根據需要外接基準,但不能超出DAC電源電壓。

AD8336的增益分為固定增益和壓控增益兩個部分,其中固定增益根據帶寬的選擇已經精密電阻外接配置成4倍,則其總的增益為:

(2)

Gpra即為固定增益,單位為分貝(dB)。分貝與放大倍數的增益換算關系如下:

(3)

Vgpos與Vgneg由DAC8552輸出得到,所以僅需根據選擇的ADC的量程,算出對當前信号的增益需要,從而推導出DAC兩端所需輸出的電平大小,利用FPGA或者其它處理器控制即可。

最後還需把單端信号轉成差分信号,原因有三:

1) 對ADC來說,差分輸入信号采樣精度更高;

2) 提高抗幹擾能力;

3) 利于阻抗匹配。

1.2 數據采集及主控電路

選擇高精度的ADC是構成一個優秀的測量系統的三個要素之一。衡量一個測試量與實際理想值的誤差時,需要兩個量來表述: accuracy 和 precision。前者一般稱為精度,後者最好叫做可重複性。

Accuracy實際是測量中一個平均過程的概念。一般是衡量多次測量後的平均值接近理想值的程度。所以它隐含的是測試的DC量綱。在ADC的數據手冊中的以下參量是一個DC的概念:Offset, gain error, INL, DNL等。它們衡量了做直流參量測量時的誤差水平。

Precision是指在同樣測試條件下,測試結果的一緻性。同樣的A/D系統中,以下參量是一個AC的概念:Dynamic Range, SNR, TDH等。它們衡量了做非直流參量測量時的誤差水平。

所以對ADC的選型并不是10位分辨率的性能就一定優于8位的分辨率的性能,更不是說對一個10位的AD系統輸入5 V信号,其誤差就在。實際上ADC的精度其主要決定于兩個參數:INL和ENOB。

INL是直流測量時要主要考慮的參數。一般ADC的其它直流測量誤差諸如offset,gain error等可以通過校準而削掉。這時INL成了影響測試的主要誤差來源。比如一個10 bit的ADC,INL=1.5 bit,則整個ADC的實際可得到的最好精度是。

ENOB是非DC信号模數轉換或交流測試時一個A/D的有效bit數。它主要跟SNR有關。其存在下列的公式:

(4)

其中的SNR更精确的說應該是SINAD(SNR & THD:信噪比和總諧波失真)。上邊公式也隐含了如果系統的SNR變差,則總的測量precision也會變差。

經過對比對ADI、MAXIM、TI等公司的ADC,最終選擇了ADI公司的AD9238,其INL僅為0.7 LSB,SNR達到70 dB。

ADC采集到數據通過數據總線傳輸給處理器。處理器方面,由于還涉及到CAN、RS485、PCI接口的設計,因此市面上并沒通用的處理器提供。歐比特公司作為一家專注工控航空航天的公司,依托基于SPARC架構的IC設計,對FPGA的應用已十分成熟。針對成本、系統頻率、資源及IO管腳的需求,最終選用了Altera公司的EP3C40作為處理器的IP核載體。

1.3 本地緩存及PCI接口電路

如前所述,國内工控方面的不間斷數據采集研究,一直受限于PCI帶寬。雖然PCI總線理論傳輸速率可高達,但這僅僅是理論值。實際上的PCI總線開發,能達到40 MByte/s的傳輸速率已經是相當不錯的數據。歐比特公司在S698處理器、EMBC1000系列等産品的研發過程中積累相當豐富的PCI總線開發經驗。經過努力,基于PLX公司的PCI9056可實現60 Mbyte/s的PCI傳輸速率,傳輸數據穩定有效、不丢數。

根據木桶理論,PCI總線的實際傳輸效率是一塊短闆,在這短闆得以加長後,研發的難度就集中在另外一塊短闆——上位機取數上。也就是說即使PCI總線真的能夠傳輸很快,但是上位機是否能都把數據讀到?由于EMBC2000-PCI闆卡是基于WinXP/Win2000操作系統的,有過PCI總線開發經驗的人都知道,在大規模的連續數據傳輸中是不适宜使用中斷方式的,因為這很容易導緻CPU占用率過高,而導緻系統進入假死狀态。而使用查詢方式,與即時的Linux系統不同,Windows操作系統是個分時操作系統,也就是說它的線程占用的時間是個不确定的值,就算單獨為讀操作開一個線程,但是也必須使數據在闆卡緩存一端時間後,再由上位機查詢到滿狀态後讀走。但上位機讀數據的過程中,A/D系統仍在不間斷地采集數據,由于操作系統中沒有一個線程能一直獨占CPU。也就是說上位機并不能查詢到一次滿後,就一直在讀數,每次讀操作中必然存在一個間隔,也就是說PCI總線的傳輸速率需高于或者至少不低于采樣速率。那麼在這個間隔中,采集數據同樣需要緩存在闆卡的本地緩存中。

通過對WinXP系統的深入分析及驅動開發,最終确定需在闆卡上緩存8 ms的采集數據,并在每個通道的緩存數據處理上采用“乒乓模式”,也就是說FPGA将ADC采集的數據輪流填到每個通道對應的緩存A與緩存B内,而當緩存A第一次滿後,上位機開始查詢讀操作,輪流讀走緩存A與緩存B的數據。依上,則所需要單個緩存的容量大小為。另外考慮到選擇如SDRAM、DDR-SDRAM、DDR2-SDRAM、SRAM布線複雜,且需要FPGA提供過多的IO及資源。由于一方面這會增加PCB的層數;另一方面隻有高端的FPGA才會具備使用上述的緩存所需的IO口數量,而高端FPGA的價格通常是低成本FPGA價格的是十倍甚至更多。出于成本的考慮,選擇了IDT公司的雙口SRAM IDT70V659作為外部緩存,其容量達到512 KByte,速率達100 MByte/s,滿足系統設計的需求。

1.4 隔離型CAN/RS485接口電路

考慮到工控場合通常存在浪湧電壓,EMBC2000-PCI闆卡的CAN和RS485做了隔離處理,可防浪湧電壓達1000 V,并針對RS485常出現的由于第三态存在而導緻接收端輸出處于不定态做了相應處理。

CAN邏輯方面,由FPGA搭載歐比特公司自研的OBT-CAN軟核,支持BasicCAN和PeliCAN模式。在PeliCAN模式下,支持CAN2.0B的擴展特征。并具備1 KByte本地緩存,通訊速率最高達1 MByte。寄存器、性能方面完全兼容PHILIPS公司的SJA1000。

RS485邏輯方面,采用UART16550軟核,并具備了64 Byte本地緩存,通訊速率最高達115200 bps,最大傳輸距離約為1200米。

3 EMBC2000-PCI-AD485CAN的硬件邏輯

EMBC2000-PCI的硬件邏輯設計分成8個部分:ADC模塊、DAC模塊、CAN模塊、UART16550模塊、HOST I/F模塊、PCI I/F模塊、RST-IRQ模塊、CLK_GEN模塊。其中ADC模塊及DAC模塊是用于控制模拟信号垂直調理通道及對采集數據進行處理,兩個通道的模塊完全相同,僅需在頂層文件上進行複用即可。具體邏輯框圖如圖3。

以太網高速數據采集存儲卡(高速高精度多功能數據采集卡的設計)3

圖3 EMBC2000-PCI硬件邏輯框圖

ADC模塊負責控制ADC并對ADC的采集數據進行相關處理。為了降低成本,EMBC2000-PCI并沒有設計專門的觸發電路,而是在FPGA内部實現觸發。該部分邏輯集成在ADC模塊中。通過用戶預設的邊沿觸發方式及觸發電平,FPGA對采集數據尋找滿足觸發電平的對應點,然後再結合該點前後的數據進行趨向分析,判斷是否是所需的上升沿或下降沿觸發。當找到觸發點後,FPGA才把采集數據按照用戶預設的觸發深度把數據存至本地緩存中。

DAC模塊負責通過控制DAC從而控制可變增益放大器;CAN模塊/UART16550模塊分别實現了CAN2.0B協議、RS485通訊;RST-IRQ模塊用于産生各種PCI中斷信号;CLK_GEN模塊用于進行鎖相環倍頻及産生全局同步時鐘。

如前所述,由于采集數據是先存至本地緩存,然後由上位機直接讀走,不再經過FPGA。所以FPGA與PCI橋PCI9056之間是一個異步系統,因此PCI接口與其它模塊并需通過一個緩沖來實現同步。PCI I/F模塊用于實現與PCI橋之間的通訊,而HOST I/F模塊用于實現PCI通訊與内部其它邏輯之間的同步。

整個IP核運行速率為120 MHz,完整實現了闆卡各類邏輯。

4軟件設計

EMB2000-PCI的驅動基于Jungo公司的WinDriver開發,在上層軟件運用如SinC/C插值法、交替描點法等算法實現波形的還原、描繪、計算,并可把波形進行實時遊标測量、打印。EMBC2000-PCI通過DLL文件提供接口函數供二次開發。

5 結論

EMBC2000-PCI多功能數據處理闆卡采用雙數據存儲方式、内部軟觸發方式實現了高達單通道20Msps/雙通道10Msps的不間斷數據采集能力,分辨率高12bit。闆卡上的阻抗匹配與控制保證了數據采集的信号完整性。在數據采集方面已接近國際代表廠商美國Measurement Computing公司最高端産品PCI-DAS4020/12型闆卡。CAN、RS485接口使數據可以進行遠距離傳輸。EMBC2000-PCI的出現,較好地填補了國内在基于PCI總線的不間斷數據采集方面的空白。

參考文獻:

[1]PCI-DAS4020-12-UG.Measurement Computing,2009.

[2]PCI_9056BA_Data_Book_v1.3.PLX,2009.

[3]EMBC2000-PCI-AD485CAN用戶手冊 . 珠海歐比特控制工程股份有限公司,2010.

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved