張 勇
(上海飛機(jī)設(shè)計研究院 飛控系統(tǒng)設(shè)計研究部,上海 200436)
CAN(Controller Area Network 控制器局域網(wǎng))總線是在汽車、輪船、醫(yī)療等領(lǐng)域廣泛應(yīng)用的一種串行數(shù)據(jù)通訊現(xiàn)場總線,能有效地支持具有很高安全等級的分布式實時控制。由于CAN總線數(shù)據(jù)通信具有高可靠性、實時性和靈活性的特點,常被應(yīng)用于飛機(jī)、汽車、輪船等計算機(jī)系統(tǒng)之間的通訊方式,因此CAN總線的數(shù)據(jù)采集技術(shù)也得到了廣泛應(yīng)用。
CAN總線為串行數(shù)據(jù)協(xié)議總線,能夠同時傳輸多個報文(message),一個報文定義為一幀,分為三個域,標(biāo)準(zhǔn)型CAN總線數(shù)據(jù)格式如圖1所示,分別為ID域(Identifier),數(shù)據(jù)長度定義域(Length)和數(shù)據(jù)信息域(Data),圖中的箭頭指示了數(shù)據(jù)傳輸?shù)南群箜樞颉?/p>

圖1 標(biāo)準(zhǔn)型CAN總線數(shù)據(jù)位定義
CAN總線為多主方式,理論上一條CAN總線上可以串接110個節(jié)點,為了讀取CAN總線數(shù)據(jù),可采用如圖2所示的拓?fù)浣Y(jié)構(gòu)將CAN總線采集設(shè)備接入到CAN總線上。

圖2 CAN總線數(shù)據(jù)采集系統(tǒng)連接原理圖
本方案中系統(tǒng)硬件采用NI公司的PXI-648x系列CAN總線卡,機(jī)箱采用PXI-1050,測試服務(wù)器與測試客戶端之間采用以太網(wǎng)連接方式。
在CAN總線數(shù)據(jù)采集軟件的設(shè)計實現(xiàn)時,需要重點考慮的問題是CAN總線數(shù)據(jù)的正確解析。CAN總線通道可同時發(fā)送多個報文,每個報文的數(shù)據(jù)域最長可達(dá)64位,理論上一個通道的信息可多達(dá)幾百個,因此,正確解析每個通道的數(shù)據(jù)信息至關(guān)重要。當(dāng)前CAN的總線數(shù)據(jù)采集方法廣泛采用數(shù)據(jù)庫技術(shù),編寫CANdb數(shù)據(jù)庫文件作為數(shù)據(jù)采集和解析的基礎(chǔ),有眾多商用軟件(如CANoe,NI的QNmax等)可以實現(xiàn)CANdb數(shù)據(jù)庫文件的編輯。本文闡述了一種基于MS Office Access數(shù)據(jù)庫進(jìn)行CAN總線數(shù)據(jù)采集的實現(xiàn)方法。
CAN總線數(shù)據(jù)采集最終要建立的是CAN總線數(shù)據(jù)庫,它是CAN數(shù)據(jù)解析的基礎(chǔ)。根據(jù)CAN總線的數(shù)據(jù)格式,在Access數(shù)據(jù)庫中建立如圖3所示的數(shù)據(jù)庫表格。

圖3 數(shù)據(jù)庫設(shè)計視圖
其中包含了CAN總線數(shù)據(jù)格式的各種基本信息,主要字段設(shè)計的說明如表1所示。
有了Access數(shù)據(jù)庫,就需要在軟件中建立與數(shù)據(jù)庫對應(yīng)的結(jié)構(gòu)體,在程序調(diào)用時為程序變量賦值。程序設(shè)計結(jié)構(gòu)體如下:


表1 Access數(shù)據(jù)庫主要字段說明表

CAN總線數(shù)據(jù)采集軟件的開發(fā)采用NI公司LabWINDOWS/CVI軟件,該軟件對Access數(shù)據(jù)庫的支持友好,可以方便的與數(shù)據(jù)源連接,能夠滿足程序設(shè)計的需要。軟件系統(tǒng)的流程圖如圖4所示。

圖4 CAN總線采集程序流程圖
本文探索了一種利用Access數(shù)據(jù)庫技術(shù)實現(xiàn)CAN總線數(shù)據(jù)采集的方法,通過LabWindows/CVI+Access軟件編程實現(xiàn)了CAN總線數(shù)據(jù)的自動化解析、處理,很好的實現(xiàn)了CAN總線的自動采集功能,在試驗中能夠滿足各種CAN總線信息的采集,取得了良好的實用效果。
[1] CAN-bus規(guī)范V2.0版本,譯自BOSCH 公司《CAN Specification V2.0》.
[2] NI-CANTM Hardware and Software Manual.
[3] 王建新,等.LabWindows/CVI測試技術(shù)及工程應(yīng)用[M],化學(xué)工業(yè)出版社,2006.
[4] 王俊波,胥布工.CANopen協(xié)議分析與實現(xiàn)[J].計算機(jī)信息,2006,22(6-2):104-106.