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