基于CAN總線的數(shù)據(jù)通信采集系統(tǒng)設計
CAN(Controller Area Network)即控制器局域網(wǎng),主要用于各種設備檢測及控制的一種現(xiàn)場總線。20 世紀80 年代初,德國BOSCH 公司為解決現(xiàn)代汽車中眾多的控制與測試儀器之間的數(shù)據(jù)交換, 開發(fā)了一種串行數(shù)據(jù)通信協(xié)議,即CAN 總線。
本文引用地址:http://www.ex-cimer.com/article/148364.htm由于TI 公司的TMS320F2812 型DSP 在軍事上已有應用, 且根據(jù)各種性能的比較, 本系統(tǒng)采用TMS320F2812 型DSP 作為導航計算機,進行下位機的數(shù)據(jù)發(fā)送,其中eCAN 模塊是TMS320F2812 DSP 片上的增強型CAN 控制器, 其性能較之已有的DSP 內(nèi)嵌CAN 控制器有較大的提高, 數(shù)據(jù)傳輸更加靈活方便,數(shù)據(jù)量更大,可靠性更高,功能更加完備。
上位機采用工控機, 其中由ADLINK 的PCI/cPCI-7841CAN 總線接口卡進行數(shù)據(jù)接收。該卡可同時操作兩個獨立的CAN 網(wǎng)絡,可編程傳輸速率可高達1 Mb/s,通過直接內(nèi)存映射能夠快速訪問CAN 控制器,PCI 總線即插即用, 其總線控制器為SJA1000,電氣接口為82C250。
信息采集系統(tǒng)的信息通信利用CAN 總線完成, 其CAN總線接口電路如圖2 所示, 其中獨特之處是在收發(fā)器PCA82C250 的輸出引腳CANH 和CANL 之間并聯(lián)一個終端電阻R 為120 Ω,解決了遠近端阻抗不匹配的影響。
如圖1 所示,由TMS320F2812 DSP 的eCAN 模塊發(fā)送陀螺組合數(shù)據(jù)及溫度值等, 上位機的PCI/cPCI-7841 型CAN 總線接口卡進行數(shù)據(jù)接收,從而完成整個信息采集及監(jiān)測過程。
1.2 系統(tǒng)軟件設計:
系統(tǒng)軟件主要完成基于CAN 總線的數(shù)據(jù)通信, 并在接收數(shù)據(jù)之后按要求對采集的導航數(shù)據(jù)進行處理,轉(zhuǎn)換成實際所需數(shù)據(jù)類型,對陀螺組合的狀態(tài)進行監(jiān)測。
本系統(tǒng)CAN 總線通信報文格式采用CAN2.0B 擴展模式,通信數(shù)據(jù)格式主要是對CAN 總線協(xié)議中的(仲裁場ArbitrationField)和(數(shù)據(jù)場Data Field)進行定義,要求數(shù)據(jù)傳輸速率為500 Kb/s。協(xié)議幀格式如圖3 所示。
系統(tǒng)的接收軟件設計流程圖如圖4 所示。
在使用CAN 接口卡之前首先要對卡進行波特率、傳輸報文格式等參數(shù)的初始化。
1) 初始化CAN 總線的傳輸報文格式為提供29 位地址的CAN2.0B 擴展模式;2) 初始化CAN 總線的波特率為500 Kb/s。
利用PCI/cPCI -7841CAN 接口卡的CanOpen-Driver () 函數(shù)打開CAN 端口, 用CanConfigPort () 函數(shù)進行初始化,用CanSendMsg()函數(shù)發(fā)送數(shù)據(jù)包,用Can-RcvMsg()函數(shù)接收數(shù)據(jù)包,用CanCloseDriver () 函數(shù)關閉端口[3]。創(chuàng)建接收線程,接收數(shù)據(jù)之后按要求對數(shù)據(jù)進行處理。應用MFC 制作通信界面。注意,線程函數(shù)只能是靜態(tài)成員函數(shù),或者是在類外面聲明的一個函數(shù)。
評論