王成卉,曾連蓀
(上海海事大學 信息工程學院,上海 200135)
CAN(Controller Area Network)即控制器局域網(wǎng),主要用于各種設備檢測及控制的一種現(xiàn)場總線。20世紀80年代初,德國BOSCH公司為解決現(xiàn)代汽車中眾多的控制與測試儀器之間的數(shù)據(jù)交換,開發(fā)了一種串行數(shù)據(jù)通信協(xié)議,即CAN總線。
CAN總線是一種有效支持分布式控制或?qū)崟r控制的串行通信網(wǎng)絡,它為分布式控制系統(tǒng)實現(xiàn)各節(jié)點之間實時、可靠的數(shù)據(jù)通信提供了強有力的技術支持。CAN屬于工業(yè)現(xiàn)場總線的范疇,與一般的通信總線相比,CAN總線的數(shù)據(jù)通信具有突出的可靠性、實時性和靈活性,通信速率可達1 Mb/s。目前,CAN總線不僅應用于汽車領域,而且應用于自動控制、航空航天、機械工業(yè)、農(nóng)用機械、機器人、數(shù)控機床、醫(yī)療器械及傳感器等領域。
由于CAN被越來越多不同領域采用和推廣,導致要求各種應用領域通信報文的標準化。為此,1991年9月PHILIPS SEMICONDUCTORS制定并發(fā)布了CAN技術規(guī)范(VERSION 2.0)。該技術規(guī)范包括A和B兩部分。2.0A給出在CAN技術規(guī)范1.2中定義的CAN報文格式,能提供11位地址;而2.0B給出了標準的和擴展的2種報文格式,能提供29位地址。此后,1993年11月ISO正式頒布了道路交通運載工具——數(shù)字信息交換——高速通信控制器局部網(wǎng) (CAN)國際標準(ISO11898),為控制器局部網(wǎng)標準化、規(guī)范化推廣鋪平了道路[1]。
根據(jù)某型衛(wèi)星信息采集系統(tǒng)的導航數(shù)據(jù)的通信需求,且為保證信息采集的實時可靠,文中應用CAN總線完成整個信息采集系統(tǒng)設計。
由于衛(wèi)星的運行環(huán)境復雜,采集的陀螺組合數(shù)據(jù)等會有相應的誤差,因此需要對導航數(shù)據(jù)的采集進行遙測,對導航計算機的總線狀態(tài)進行監(jiān)測。本系統(tǒng)根據(jù)某型衛(wèi)星的通信需要,利用CAN總線完成整個信息采集及實時監(jiān)測。信息采集系統(tǒng)的框圖如圖1所示。
由于TI公司的TMS320F2812型DSP在軍事上已有應用,且根據(jù)各種性能的比較,本系統(tǒng)采用TMS320F2812型DSP作為導航計算機,進行下位機的數(shù)據(jù)發(fā)送,其中eCAN模塊是TMS320F2812 DSP片上的增強型CAN控制器,其性能較之已有的DSP內(nèi)嵌CAN控制器有較大的提高,數(shù)據(jù)傳輸更加靈活方便,數(shù)據(jù)量更大,可靠性更高,功能更加完備[2]。
圖1 信息采集系統(tǒng)框圖Fig.1 Block diagram of information acquisition system
上位機采用工控機,其中由ADLINK的PCI/cPCI-7841 CAN總線接口卡進行數(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 Ω,解決了遠近端阻抗不匹配的影響。
圖2 CAN總線接口電路圖Fig.2 Interface circuit of CAN bus
如圖1所示,由TMS320F2812 DSP的eCAN模塊發(fā)送陀螺組合數(shù)據(jù)及溫度值等,上位機的PCI/cPCI-7841型CAN總線接口卡進行數(shù)據(jù)接收,從而完成整個信息采集及監(jiān)測過程。
系統(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é)議中的(仲裁場Arbitration Field)和(數(shù)據(jù)場 Data Field)進行定義,要求數(shù)據(jù)傳輸速率為500 Kb/s。協(xié)議幀格式如圖3所示。
圖3 幀協(xié)議組成Fig.3 Frame protocol components
系統(tǒng)的接收軟件設計流程圖如圖4所示。
在使用CAN接口卡之前首先要對卡進行波特率、傳輸報文格式等參數(shù)的初始化。
1)初始化CAN總線的傳輸報文格式為提供29位地址的CAN2.0B擴展模式;
2)初始化CAN總線的波特率為500 Kb/s。
利用PCI/cPCI-7841 CAN接口卡的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ù)。
圖4 接收軟件程序流程圖Fig.4 Flow chart of receiving software program
初始化程序如下:
系統(tǒng)軟件界面如圖5所示。
圖5 系統(tǒng)軟件界面Fig.5 Interface of system software
經(jīng)過實驗驗證,該信息采集系統(tǒng)采集的數(shù)據(jù)經(jīng)過通信后不變,確保了信息采集的可靠、準確。
由于基于CAN總線的數(shù)據(jù)通信具有突出的可靠性、實時性和靈活性,同時由于TMS320F2812 DSP的eCAN模塊使數(shù)據(jù)傳輸更加靈活方便,數(shù)據(jù)量更大,可靠性更高,功能更加完備,用該DSP進行下位機的數(shù)據(jù)發(fā)送,PCI/cPCI CAN接口卡進行數(shù)據(jù)接收,從而完成信息采集,并對采集的數(shù)據(jù)進行相應處理,對陀螺組合的狀態(tài)進行監(jiān)測,這對衛(wèi)星等的導航有著重要意義。
[1]李正軍.現(xiàn)場總線與應用技術[M].北京:機械工業(yè)出版社,2005:88-89.
[2]蘇奎峰,呂 強,耿慶鋒,等.TMS320F2812原理與開發(fā)[M].北京:電子工業(yè)出版社,2005.
[3]PCI-7841/cPCI-7841/PM-7841 dual-port isolated CAN interface card user's manual[M].ADLink Technology Inc,2006.
[4]陳佳佳,曾岳南,羅彬.基于 TMS320F2812 DSP的 CAN總線通信系統(tǒng)設計[J].工業(yè)控制計算機,2007,20(5):14-15.CHEN Jia-jia,ZENG Yue-nan,LUO Bin.Communicated system design based on TMS320F2812 DSP with CANBus[J].Industrial Control Computer,2007,20(5):14-15.
[5]胡靜怡.基于TMS320F2812的CAN總線的溫度檢測節(jié)點設計[J].儀器儀表與檢測技術,2009,28(4):74-76.HU Jing-yi.CAN bus temperature detection node based on TMS320F2812[J].Instrumentation and Measurment,2009,28(4):74-76.
[6]王雁平,張永春.基于CAN總線的現(xiàn)場總線儀表設計[J].常州工學院學報,2009,22(1/2):27-30.WANG Yan-ping,ZHANG Yong-chun.The design of field bus based on CAN-bus[J].Journal of Changzhou Institute of Technology,2009,22(1/2):27-30.
[7]余韻律,王 建,王啟慧.基于SAE J1939協(xié)議的發(fā)動機總線數(shù)據(jù)模擬器開發(fā)[J].電子設計工程,2010,18(4):48-50.YU Yun-lv,WANG Jian,WANG Qi-hui.Development of engine bus data simulator based on SAE J1939 protocol[J].Electronic Design Engineering,2010,18(4):48-50.
[8]陳光磊,王冰峰.基于CAN總線的電梯召喚顯示板設計[J].電子設計工程,2010,18(7):178-181.CHEN Guang-lei,WANG Bing-feng.Design of elevetor display system based on CAN bus [J].Electronic Design Engineering,2010,18(7):178-181.