《電子技術(shù)應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 設計應用 > 基于CAN總線技術(shù)的數(shù)據(jù)采集系統(tǒng)設計分析
基于CAN總線技術(shù)的數(shù)據(jù)采集系統(tǒng)設計分析
嵇斗 王向軍
來源: 微計算機信息
摘要: 本文提出一種基于CAN總線結(jié)構(gòu)的遠程數(shù)據(jù)采集系統(tǒng)方法,將CAN總線技術(shù)應用于工業(yè)現(xiàn)場控制中,設計了硬件電路和軟件,并得到實際應用。該系統(tǒng)可在復雜的海洋中實現(xiàn)對8路傳感器信號的實時采集與傳送,實驗證明該系統(tǒng)具有結(jié)構(gòu)簡單、性能可靠、傳輸距離遠、價格低廉等優(yōu)點。該系統(tǒng)設計方法也可應用到其他需要數(shù)據(jù)采集的多節(jié)點系統(tǒng)中去。
Abstract:
Key words :

1 引言
         海洋環(huán)境中,由于測量現(xiàn)場離岸較遠,環(huán)境惡劣,必須將測量裝置與計算機系統(tǒng)分開,構(gòu)成遠程數(shù)據(jù)采集系統(tǒng)。遠程數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)傳輸方式一般有兩種:頻率量傳輸和串行通信。頻率量抗干擾能力強,便于遠距離傳送,但這種遠程的頻率測量一般僅適用于幾十赫茲以下的較低頻率范圍。在串行通信中,RS-232通信標準數(shù)據(jù)傳輸速率慢(通常異步通信速率限制在19.2kbps以下),傳送距離短(一般電纜長度為15m),不適于用作遠程數(shù)據(jù)采集系統(tǒng);RS-449、RS-422及RS-423等通信標準,實時性不強;RS-485只能構(gòu)成主從式結(jié)構(gòu)系統(tǒng),通信方式也只能以主站輪詢的方式進行,系統(tǒng)的實時性、可靠性較差;且當系統(tǒng)出現(xiàn)多節(jié)點同時向總線發(fā)送數(shù)據(jù)時,會導致總線呈現(xiàn)短路,從而損壞某些節(jié)點的現(xiàn)象。
        CAN(Controller Area  Network)總線屬于現(xiàn)場總線的范疇,它是一種有效支持分布式控制或?qū)崟r控制的串行通信網(wǎng)絡。CAN總線通信接口中集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對通信數(shù)據(jù)的成幀處理。CAN協(xié)議的一個最大特點是廢除了傳統(tǒng)的站地址編碼,而代之以對通信數(shù)據(jù)塊進行編碼。采用這種方法的優(yōu)點是使網(wǎng)絡內(nèi)的節(jié)點個數(shù)在理論上不受限制,數(shù)據(jù)塊的標識碼可由11位或29位二進制數(shù)組成,因此可以定義211或229個不同的數(shù)據(jù)塊,這種按數(shù)據(jù)塊編碼的方式,還可使不同的節(jié)點同時接收到相同的數(shù)據(jù)。數(shù)據(jù)段長度為8個字節(jié),不會占用總線時間過長,從而保證了通信的實時性。CAN協(xié)議采用CRC檢驗并可提供相應的錯誤處理功能,保證了數(shù)據(jù)通信的可靠性。
2 系統(tǒng)設計
        遠程數(shù)據(jù)采集系統(tǒng)要求傳感器與測量裝置位于測量現(xiàn)場,計算機系統(tǒng)在岸上或船上,它們之間距離經(jīng)常在幾百米,有時甚至達到幾公里。因此,連接導線少,維護費用低就顯得尤為重要。本文中測量系統(tǒng)針對磁場(3分量)、電場(3分量)、傾角參數(shù)(2分量),用CAN來構(gòu)建遠程水下數(shù)據(jù)采集系統(tǒng),采用3個測量節(jié)點,分別對上述8路傳感器信號實現(xiàn)實時采集與傳送。遠程水下數(shù)據(jù)采集系統(tǒng)的結(jié)構(gòu)框圖如圖如圖1所示。

        遠程數(shù)據(jù)采集系統(tǒng)主要由兩部分組成:岸上接收處理部分和水下測量裝置。為了延長電池的使用時間,從岸上來控制水下測量體部分電池電源的通斷。數(shù)據(jù)采集系統(tǒng)使用的是四芯縱向密封海水電纜,兩路傳輸數(shù)據(jù),另兩路控制電池電源。
2.1硬件電路設計
        傳感器采用磁場三分量測量模塊,電場三分量測量模塊,傾角2分量測量模塊。信號處理電路中將各信號進行放大和濾波,放大采用兩片LM148四運放,濾波器是由運算放大器構(gòu)成的兩個有源低通濾波二階節(jié)的級聯(lián)。單片機系統(tǒng)將電場三分量信號、磁場三分量信號和兩個姿態(tài)角信號共8路信號輪流選通送入A/D進行轉(zhuǎn)換,A/D轉(zhuǎn)換選用B-B公司生產(chǎn)的16位芯片ADS7805,其輸入電壓范圍為±10V,輸出16位和8位可選,這里使用16位并行輸出,其控制信號由單片機的口線P1.0、P1.1和P1.2產(chǎn)生,單片機系統(tǒng)的結(jié)構(gòu)框圖如圖2所示。單片機采用PHILIPS的是有再片CAN功能的微控制器P87C592,晶振頻率為16MHz,  P0口和P2口用作數(shù)據(jù)線和地址線,P4口和P5口用作16位模數(shù)轉(zhuǎn)換器的高8位和低8位并行數(shù)據(jù)線。P1.6、P1.7用于CAN總線,P1.2、P1.3和P1.4控制八選一多路轉(zhuǎn)換器MAX308的通道。PC82C250為CAN總線收發(fā)器,是CAN控制器和物理總線間的接口,提供對總線的驅(qū)動發(fā)送能力 、對CAN控制器的差動發(fā)送能力和對CAN控制器的差動接收能力。它有很強的抗瞬間干擾和保護總線的能力;有3種不同的工作方式即高速、斜率控制和待機??偩€上的某節(jié)點掉電不會 影響總線,在40 m內(nèi)實現(xiàn)高速應用可達1  Mbps。主機接收端使用PCL-841,PCL-841可直接插在計算機的ISA擴展槽內(nèi),計算機為PCL-841分配內(nèi)存地址,并將其作為標準內(nèi)存進行讀寫,內(nèi)存地址可通過跳線設置為C800H至EF00H中40個基地址中的任一個。是內(nèi)置CAN控制器的CAN總線通信卡,它提供總線仲裁和錯誤檢測并自動重發(fā)送功能,從而避免了數(shù)據(jù)丟失,保證了系統(tǒng)的可靠性。


 2.2系統(tǒng)軟件設計 
        要實現(xiàn)有效、實時通信,軟件的設計是關(guān)鍵,也是難點。本系統(tǒng)軟件設計包含兩部分即單片機程序和主機控制和數(shù)據(jù)處理程序。
        單片機程序主要包括節(jié)點初始化程序、報文發(fā)送程序、報文接收程序以及CAN總線出錯處理程序等。單片機主程序流程圖見圖3,程序用C51語言編寫。

                            

         CAN控制器對于CPU來說是以確保雙方獨立工作的寄存器映像外圍設備出現(xiàn)的,微控制器和CPU之  間狀態(tài)、控制和命令的交換都是通過在復位模式或工作模式下對這些寄存器的讀寫來完成的。初始化CAN內(nèi)部寄存器時注意使得各節(jié)點的位速率必須一致,而且接、發(fā)雙方必須同步。發(fā)送一幀數(shù)據(jù)采用高速DMA,它允許在最多2個周期內(nèi),在CAN控制器和主RAM之間傳送一個完整的報文(最多10個字節(jié))。CPU功能的極大增強是由于高速傳送是在后臺完成的。一次成功的DMA傳送后DMA位被復位。DMA傳送期間,CPU可以處理下一條指令,然而,不允許對數(shù)據(jù)存貯器、CANADR、CANDAT、CANCON或CANSTA的訪問。置DMA位后,各個中斷均被禁止,直至傳送結(jié)束。復位狀態(tài)期間(復位請求位為高)不能進行DMA傳送。為提高通信的實時性,報文的接收采用中斷接收方式,這樣也可保證接收緩存器不會出現(xiàn)數(shù)據(jù)溢出現(xiàn)象。
        主機程序包括測量和控制子程序、通信子程序、數(shù)據(jù)處理子程序等。數(shù)據(jù)測量和控制子程序用來控制下位機進行測量,通信子程序根據(jù)通信協(xié)議發(fā)送控制命令并接收測量數(shù)據(jù),數(shù)據(jù)處理子程序?qū)崿F(xiàn)對數(shù)據(jù)的預處理和存儲。主機程序用C語言編寫。主機程序流程見圖4。

                         

 3 水下物理場數(shù)據(jù)采集實驗
        在對水下物理場數(shù)據(jù)進行采集時,需要測量的信號共有3種8路:電場三個分量,磁場三個分量以及傳感器在海底的傾斜角度兩個分量。實際測量時,整個測量體(包括傳感器,信號調(diào)理電路,水密容器等)放置在海底(約30米深),測量體距離岸邊接收主機120米。其他一些實驗參數(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)在較復雜的海洋環(huán)境條件下從上午9:00開始工作,中間不停機,到下午5:00測量完畢。測量結(jié)果經(jīng)過分析與理論計算吻合說明該系統(tǒng)工作穩(wěn)定、可靠。此外,全套測量系統(tǒng)硬件設備(包括計算機與傳感器)造價低于3萬元。


4 結(jié)論
        CAN總線已被公認為是最有前途的幾種現(xiàn)場總線之一,在一些高檔汽車車載系統(tǒng)中已經(jīng)得到了廣泛應用,也因其高性能價格比、實現(xiàn)簡單等突出優(yōu)點深得越來越多的研發(fā)人員的青睞。本文的創(chuàng)新點是提出一種基于CAN總線結(jié)構(gòu)的遠程數(shù)據(jù)采集系統(tǒng)方法,將CAN總線技術(shù)應用于工業(yè)現(xiàn)場控制中,設計了硬件電路和軟件,并得到實際應用。該系統(tǒng)可在復雜的海洋中實現(xiàn)對8路傳感器信號的實時采集與傳送,實驗證明該系統(tǒng)具有結(jié)構(gòu)簡單、性能可靠、傳輸距離遠、價格低廉等優(yōu)點。該系統(tǒng)設計方法也可應用到其他需要數(shù)據(jù)采集的多節(jié)點系統(tǒng)中去。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。