基于TCPIP協議的高精度多路超聲信號采集系統
3 系統軟件設計
3.1 中心控制節點軟件設計
中心控制節點的軟件設計主要包括兩點,一是控制數據采集節點的開始與停止,二是接收并保存數據采集節點發送的數據。由于系統的通信采用的是基于面向無連接的UDP數據報協議,并且系統所掛的分支數據采集節點數是可選擇的,所以為了確保數據的正確傳輸和確定系統所掛的分支節點數,在工作開始的階段增加了一個握手的過程。首先數據采集節點在上電初始化后向中心節點發送建立連接請求,中心節點在接收到連接請求后保存該節點的IP地址,并檢測是否有足夠的內存資源,若內存夠,則向相應節點發送連接成功數據報,若內存資源不夠,則發送連接失敗數據報。握手過程進行后中心控制節點發送開始采集廣播報,隨后各個數據采集節點開始數據采集。為了及時接收數據采集節點的數據,中心節點將接收子程序放入中斷中,在非中斷期間進行SD卡的寫操作。中心控制節點的軟件流程圖如圖5所示。為了保證系統的實時性,在對SD卡的操作中并未應用文件系統,而是將DSP中各個緩沖區的內容依次寫入SD卡的相鄰地址中,這樣若系統所掛的數據采集節點為N個,則第i個節點的兩幀數據中間相隔N-1個數據幀。在讀取SD的上位機中編寫相應的軟件便可正確讀取每一個數據采集節點的數據。

3.2 數據采集節點軟件設計
3.2.1 數據格式的設計
每一個采樣點的數據采用32位長整形來存儲,包括24 bit的A/D采樣轉換結果,4 bit的放大階碼,其余位用0填充。UDP報除去數據鏈路層的包頭,有效的負載為46~1 500 B,再除去UDP的首部8 B和IP的首部20 B,這樣一個UDP幀的有效最大負載為1 472 B。因為在中心節點寫入SD卡的過程中沒有采用文件系統,所以需要在數據幀中添加必要的輔助信息,為此在每個包后附加一個8 bit的節點號信息和和一個24 bit的數據包號信息,這樣除每個數據采集節點發送的第一幀為避免沖突而采用不同的幀長度外,每一個UDP幀發送45個采樣點的數據,具體的數據格式如圖6所示。

3.2.2 數據采集節點工作流程
數據采集節點的軟件設計主要包括按照中心控制節點的命令進行采集以及將采集到的數據進行封裝并發送到中心控制節點。首先在上電初始化后,和中心節點進行握手,握手成功后,等待開始采集命令,接到開始采集命令后開始采集,在A/D轉換完成中斷中進行轉換數據和放大階碼的讀取,在非中斷期間發送數據到中心控制節點。由于A/D轉換芯片輸出兩次轉換數據的時間間隔較小,并不能保證在這段時間中數據被完全發送,新的轉換數據可能會覆蓋掉未發送的數據。因此采用“乒乓”操作技術,在分支節點的DSP中開辟兩個發送緩沖區,當一個發送緩沖區滿的時候將A/D轉換數據寫入另一個數據緩沖區,同時發送此緩沖區中的數據。這樣,數據只要在兩個緩沖區同時寫滿之前發送完成就不會造成數據的丟失。具體的流程圖如圖7所示。
4 實驗結果及結論
為了驗證本系統的性能,對已知的正弦波信號源進行采集,并和MPS-140801多路數據采集卡進行對比。MPS-140801采集卡在一塊板卡上集成了八路數據采集通路,將遠端傳感器的模擬信號引到近端經過放大后進行采集。
實驗時數據傳輸的距離為50 m。測試信號是峰值為2 V,頻率為20 kHz的正弦波。
圖8為本文設計的數據采集系統的采集結果,圖9為MPS-140801數據采集卡的采集結果。


通過采集到的波形可以明顯看出,經過長距離的傳輸后,MPS-140801數據采集卡采集的數據混入了較多的噪聲。計算得出本文設計的數據采集系統信噪比比MPS-140801數據采集卡的信噪比提高了近20 dB,從而驗證了本系統較傳統的數據采集卡具有較高的精度。
本文設計的基于TCP/IP協議的數據采集系統實現了數據采集和傳輸的全程數字化,同時采用基于預采樣的自動增益處理技術,大大提高了系統的精度,從而具有較高的實用價值。




評論