CAN總線網(wǎng)絡(luò)監(jiān)控軟件設(shè)計(jì)
摘要提出了一種可對(duì)CAN總線進(jìn)行實(shí)時(shí)監(jiān)控、數(shù)據(jù)分析與記錄的軟件設(shè)計(jì)方案,并進(jìn)行了具體實(shí)現(xiàn)。說(shuō)明了軟件的需求和各模塊的實(shí)現(xiàn)考慮,對(duì)軟件涉及的關(guān)鍵技術(shù)給出了分析。通過(guò)對(duì)各種CAN總線狀態(tài)以及數(shù)據(jù)報(bào)文的實(shí)際測(cè)試,驗(yàn)證了方案的正確性。
關(guān)鍵詞CAN總線;監(jiān)控軟件;數(shù)據(jù)分析
CAN總線網(wǎng)絡(luò)即控制器局域網(wǎng)絡(luò)(Controller Area Network,CAN),是由德國(guó)BOSCH公司在20世紀(jì)80年代為解決現(xiàn)代汽車中眾多的控制與測(cè)試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信協(xié)議,可實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)、一點(diǎn)對(duì)多點(diǎn)及全網(wǎng)廣播3種方式的發(fā)送和接收數(shù)據(jù)。傳輸?shù)臄?shù)據(jù)采用CRC校驗(yàn),能夠有效地降低誤碼率。CAN總線的通信介質(zhì)可以是雙絞線、同軸電纜或者光導(dǎo)纖維,通信速率可達(dá)1 MB/s。由于具有通信速度快、可靠性高、價(jià)格便宜等特點(diǎn),使CAN總線成為應(yīng)用廣泛的現(xiàn)場(chǎng)總線之一。
當(dāng)前,市面上已有多種CAN總線的分析測(cè)試工具,如廣州周立功公司的CANalyst,德國(guó)Vector公司的CANoe等。這些軟件工具具有較強(qiáng)的功能,但對(duì)于一些小型CAN網(wǎng)絡(luò)開發(fā)組件來(lái)說(shuō),其附加費(fèi)用較大?;诖丝紤],本文提出了一種功能完善、操作簡(jiǎn)潔的CAN網(wǎng)絡(luò)監(jiān)控系統(tǒng)設(shè)計(jì)方案,可達(dá)到對(duì)CAN總線運(yùn)行情況監(jiān)測(cè)分析的目的。
1 設(shè)計(jì)需求
通過(guò)對(duì)一些通用CAN總線監(jiān)控軟件的分析,并結(jié)合設(shè)計(jì)提出的實(shí)現(xiàn)一個(gè)較為通用的CAN總線監(jiān)控軟件的要求,可以將此軟件的設(shè)計(jì)需求總結(jié)如下:
(1)具有適應(yīng)CAN控制器各種工作模式的功能,用戶只用稍加配置,便可以將此軟件用于具體的CAN總線網(wǎng)絡(luò)的監(jiān)控中。
(2)具有用戶自定義數(shù)據(jù)幀格式及其解析方式的功能,以使此軟件可以滿足不同環(huán)境下的使用要求,對(duì)用戶所需要的數(shù)據(jù)內(nèi)容進(jìn)行解析。
(3)具有數(shù)據(jù)可視化顯示功能,如數(shù)據(jù)表展示數(shù)據(jù),圖形繪制數(shù)據(jù)曲線等方式。使用戶可以較為直觀地對(duì)網(wǎng)絡(luò)數(shù)據(jù)和狀態(tài)進(jìn)行監(jiān)控。
(4)具有將通信中的數(shù)據(jù)信息進(jìn)行分類的功能,方便用戶對(duì)數(shù)據(jù)的分析。
(5)具有查看歷史數(shù)據(jù)的功能,將歷史數(shù)據(jù)記錄下來(lái),并提供一種方式實(shí)現(xiàn)對(duì)歷史網(wǎng)絡(luò)狀態(tài)的重現(xiàn),方便用戶調(diào)試。
2 方案設(shè)計(jì)
2.1 功能
CAN總線監(jiān)控軟件需具備的功能包括:CAN總線通信(數(shù)據(jù)接收與發(fā)送)、數(shù)據(jù)處理(數(shù)據(jù)解析與存儲(chǔ))和數(shù)據(jù)應(yīng)用(將數(shù)據(jù)展示為圖表,數(shù)據(jù)回放等)。功能結(jié)構(gòu)如圖1所示。
2.2 功能模塊關(guān)系
CAN總線的監(jiān)控過(guò)程即是對(duì)通信數(shù)據(jù)的處理過(guò)程。軟件首先通過(guò)與CAN總線上的節(jié)點(diǎn)通信來(lái)接收和發(fā)送數(shù)據(jù),然后將這些數(shù)據(jù)記錄在文件中,同時(shí)對(duì)數(shù)據(jù)進(jìn)行分析處理,軟件根據(jù)由用戶所設(shè)定的數(shù)據(jù)格式對(duì)數(shù)據(jù)解析,最后是對(duì)數(shù)據(jù)信息的應(yīng)用,根據(jù)用戶的設(shè)定,可以對(duì)數(shù)據(jù)進(jìn)行表展示,曲線繪制或者歷史回放。各功能模塊關(guān)系如圖2所示。
2.2.1 通信
通信是監(jiān)控軟件獲取數(shù)據(jù)信息的方式,也是軟件的基礎(chǔ)。它的主要功能是接收和發(fā)送CAN總線中節(jié)點(diǎn)的數(shù)據(jù),是數(shù)據(jù)解析和應(yīng)用的來(lái)源。監(jiān)控節(jié)點(diǎn)需要連接到CAN總線網(wǎng)絡(luò)中,如圖3所示。
2.2.2 數(shù)據(jù)記錄
數(shù)據(jù)記錄模塊是將接收或者發(fā)送的數(shù)據(jù)以一定的形式記錄在文件中,用以對(duì)數(shù)據(jù)進(jìn)行后期分析,或者通過(guò)回放功能復(fù)現(xiàn)CAN總線狀態(tài)。為能達(dá)到復(fù)現(xiàn)的目的,此記錄文件需記錄的信息包括原始數(shù)據(jù)包和收發(fā)時(shí)間,時(shí)間信息具體內(nèi)容為通信數(shù)據(jù)的時(shí)間間隔,基于此回放功能更加真實(shí)模擬網(wǎng)絡(luò)中的狀態(tài)。記錄內(nèi)容如圖4所示。
2.2.3 數(shù)據(jù)分析
數(shù)據(jù)分析模塊是整個(gè)監(jiān)控軟件的核心,它負(fù)責(zé)按照用戶設(shè)定的解析模式將收發(fā)數(shù)據(jù)報(bào)解析為可以理解的信息值。每一幀數(shù)據(jù)的解析過(guò)程可以分為以下3步:(1)定位。通過(guò)數(shù)據(jù)幀格式來(lái)定位每個(gè)信息在數(shù)據(jù)包中的起始位置,將數(shù)據(jù)包分組。(2)截取。通過(guò)起始位置和數(shù)據(jù)長(zhǎng)度,可以截取到所需的數(shù)據(jù)。(3)轉(zhuǎn)換。由于截取所得到的數(shù)據(jù)為原始數(shù)據(jù),所以需要將其轉(zhuǎn)換為可以理解的信息。數(shù)據(jù)的分析過(guò)程如圖5所示。
2.2.4 數(shù)據(jù)應(yīng)用
數(shù)據(jù)應(yīng)用是指軟件對(duì)用戶所提供的數(shù)據(jù)服務(wù)。本軟件實(shí)現(xiàn)了以下幾個(gè)功能來(lái)應(yīng)用數(shù)據(jù):(1)數(shù)據(jù)表。用于向用戶提供所需要的信息,展示總線數(shù)據(jù)。(2)繪圖。根據(jù)用戶需要對(duì)某些需要顯示數(shù)據(jù)變化的內(nèi)容進(jìn)行曲線繪制。(3)回放。將存儲(chǔ)于文件中的歷史數(shù)據(jù)按照收發(fā)時(shí)間順序重新播放,以重現(xiàn)網(wǎng)絡(luò)狀態(tài),它為用戶提供了一種調(diào)試網(wǎng)絡(luò)的簡(jiǎn)單方式。
2.3 關(guān)鍵技術(shù)
2.3.1 數(shù)據(jù)解析
鑒于CAN總線的應(yīng)用廣泛,從汽車到工業(yè)現(xiàn)場(chǎng)的應(yīng)用,所需要監(jiān)測(cè)的信息不同,故軟件對(duì)數(shù)據(jù)的解析方式也不相同。數(shù)據(jù)的解析過(guò)程需要用到用戶所定義的數(shù)據(jù)格式,這里使用XML文件來(lái)描述數(shù)據(jù)幀的內(nèi)容。如圖6所示,幀ID為0x01的數(shù)據(jù)內(nèi)容包:一個(gè)16位數(shù)據(jù)表示的溫度值,信息類型為整數(shù);一個(gè)16位數(shù)據(jù)表示的壓力值,信息類型為正整數(shù)。
2.3.2 數(shù)據(jù)回放
回放功能是將歷史數(shù)據(jù)及當(dāng)時(shí)的網(wǎng)絡(luò)狀態(tài)按照原過(guò)程如實(shí)演示,使用的數(shù)據(jù)源是從歷史記錄文件中獲取的。記錄文件由記錄模塊將總線數(shù)據(jù)按照時(shí)間順序?qū)懭胛募猩?,使用回放功能是將所記錄?shù)據(jù)按順序讀入,按照記錄時(shí)間模擬當(dāng)時(shí)的順序?qū)崿F(xiàn)回放功能,用戶可通過(guò)應(yīng)用功能再次使用數(shù)據(jù)表、繪圖來(lái)呈現(xiàn)數(shù)據(jù)。
3 測(cè)試
在實(shí)際應(yīng)用中,將監(jiān)控節(jié)點(diǎn)接入CAN總線網(wǎng)絡(luò)中,完成軟件設(shè)定后,便可開啟對(duì)總線的監(jiān)控。使用數(shù)據(jù)表顯示所測(cè)得信息的正確性,并驗(yàn)證通信是否正常。所生成的數(shù)據(jù)表如圖7所示,顯示信息來(lái)自節(jié)點(diǎn)1和節(jié)點(diǎn)3,以及發(fā)自它們的溫度和壓力值。使用繪圖功能將此溫度變化繪制為曲線圖形,如圖8所示。
4 結(jié)束語(yǔ)
本文提出了一個(gè)CAN總線網(wǎng)絡(luò)監(jiān)控軟件的方案,并描述了此軟件的設(shè)計(jì)方法和所使用到的關(guān)鍵技術(shù)。依據(jù)此方案,實(shí)現(xiàn)了一個(gè)較為通用的CAN總線監(jiān)控軟件,它可通過(guò)分析由用戶設(shè)定傳輸數(shù)據(jù)格式的方式,自動(dòng)對(duì)數(shù)據(jù)進(jìn)行解析,可滿足大多數(shù)CAN總線的監(jiān)控需求。在應(yīng)用中,它可幫助用戶調(diào)試和測(cè)試網(wǎng)絡(luò),有效提高工作效率。通過(guò)實(shí)際測(cè)試,驗(yàn)證了此方案的可行性。
但是,本文提出的設(shè)計(jì)方案也有局限性和進(jìn)一步提升的空間。在后續(xù)研究和設(shè)計(jì)中,可以將數(shù)據(jù)融合技術(shù)逐步加入到軟件對(duì)數(shù)據(jù)的分析中,并可將此工具演化為一種通用的軟件中間件,以便進(jìn)行更多的應(yīng)用。
評(píng)論