一種基于CAN總線技術的數據采集系統設計
CAN控制器對于CPU來說是以確保雙方獨立工作的寄存器映像外圍設備出現的,微控制器和CPU之 間狀態、控制和命令的交換都是通過在復位模式或工作模式下對這些寄存器的讀寫來完成的。初始化CAN內部寄存器時注意使得各節點的位速率必須一致,而且接、發雙方必須同步。發送一幀數據采用高速DMA,它允許在最多2個周期內,在CAN控制器和主RAM之間傳送一個完整的報文(最多10個字節)。CPU功能的極大增強是由于高速傳送是在后臺完成的。一次成功的DMA傳送后DMA位被復位。DMA傳送期間,CPU可以處理下一條指令,然而,不允許對數據存貯器、CANADR、CANDAT、CANCON或CANSTA的訪問。置DMA位后,各個中斷均被禁止,直至傳送結束。復位狀態期間(復位請求位為高)不能進行DMA傳送。為提高通信的實時性,報文的接收采用中斷接收方式,這樣也可保證接收緩存器不會出現數據溢出現象。
主機程序包括測量和控制子程序、通信子程序、數據處理子程序等。數據測量和控制子程序用來控制下位機進行測量,通信子程序根據通信協議發送控制命令并接收測量數據,數據處理子程序實現對數據的預處理和存儲。主機程序用C語言編寫。主機程序流程見圖4。
3 水下物理場數據采集實驗
在對水下物理場數據進行采集時,需要測量的信號共有3種8路:電場三個分量,磁場三個分量以及傳感器在海底的傾斜角度兩個分量。實際測量時,整個測量體(包括傳感器,信號調理電路,水密容器等)放置在海底(約30米深),測量體距離岸邊接收主機120米。其他一些實驗參數設置如下:傳輸波特率為1Mbps,各節點的采樣頻率為10KHz,每采樣4路信號向主機發送一次數據,每次送出4組8字節數據,分辨率:0.0495μA/m;信號輸入范圍:-50mV~50mV;信號頻率帶寬:500Hz~800Hz;供電電壓:±5V,9V,±15V。測量系統在較復雜的海洋環境條件下從上午9:00開始工作,中間不停機,到下午5:00測量完畢。測量結果經過分析與理論計算吻合說明該系統工作穩定、可靠。此外,全套測量系統硬件設備(包括計算機與傳感器)造價低于3萬元。
4 結論
CAN總線已被公認為是最有前途的幾種現場總線之一,在一些高檔汽車車載系統中已經得到了廣泛應用,也因其高性能價格比、實現簡單等突出優點深得越來越多的研發人員的青睞。本文的創新點是提出一種基于CAN總線結構的遠程數據采集系統方法,將CAN總線技術應用于工業現場控制中,設計了硬 件電路和軟件,并得到實際應用。該系統可在復雜的海洋中實現對8路傳感器信號的實時采集與傳送,實驗證明該系統具有結構簡單、性能可靠、傳輸距離遠、價格低廉等優點。該系統設計方法也可應用到其他需要數據采集的多節點系統中去。
評論