基于CAN 總線(xiàn)的信息采集系統設計
在使用CAN 接口卡之前首先要對卡進(jìn)行波特率、傳輸報文格式等參數的初始化。
1) 初始化CAN 總線(xiàn)的傳輸報文格式為提供29 位地址的CAN2.0B 擴展模式;2) 初始化CAN 總線(xiàn)的波特率為500 Kb/s。
利用PCI/cPCI -7841CAN 接口卡的CanOpen-Driver () 函數打開(kāi)CAN 端口, 用CanConfigPort () 函數進(jìn)行初始化,用CanSendMsg()函數發(fā)送數據包,用Can-RcvMsg()函數接收數據包,用CanCloseDriver () 函數關(guān)閉端口[3]。創(chuàng )建接收線(xiàn)程,接收數據之后按要求對數據進(jìn)行處理。應用MFC 制作通信界面。注意,線(xiàn)程函數只能是靜態(tài)成員函數,或者是在類(lèi)外面聲明的一個(gè)函數。
初始化程序如下:
PORT_STRUCT setPort;long handle[2];HANDLE rcvEvent0;HANDLE rcvEvent1;setPort.mode = 1; // 0 : 11-bit ; 1 : 29-bit CAN networksetPort.accCode = 0; // Only ID = accCode can pass thefiltersetPort.accMask = 0x7FF; // Don't care bitsetPort.baudrate = 2; // 0:125 Kb/s; 1:250 Kb/s; 2:500 Kb/s;3:1 Mb/s//open porthandle[0] = CanOpenDriver(0, 0);handle[1] = CanOpenDriver(0, 1);CanConfigPort(handle[0], setPort);CanConfigPort(handle[1], setPort);//get the receive event handleCanGetReceiveEvent(handle[0], rcvEvent0);CanGetReceiveEvent(handle[1], rcvEvent1);系統軟件界面如圖5 所示。
2 實(shí)驗結果:
經(jīng)過(guò)實(shí)驗驗證,該信息采集系統采集的數據經(jīng)過(guò)通信后不變,確保了信息采集的可靠、準確。
3 結束語(yǔ):
由于基于CAN 總線(xiàn)的數據通信具有突出的可靠性、實(shí)時(shí)性和靈活性,同時(shí)由于TMS320F2812 DSP 的eCAN 模塊使數據傳輸更加靈活方便,數據量更大,可靠性更高,功能更加完備,用該DSP 進(jìn)行下位機的數據發(fā)送,PCI/cPCI CAN 接口卡進(jìn)行數據接收,從而完成信息采集,并對采集的數據進(jìn)行相應處理,對陀螺組合的狀態(tài)進(jìn)行監測,這對衛星等的導航有著(zhù)重要意義。
評論