本發(fā)明涉及一種基于藍牙和OBD的CAN網絡智能監(jiān)測系統(tǒng)及監(jiān)測方法。
背景技術:
隨著汽車電子部件的增多和智能化程度的提高,CAN總線系統(tǒng)已經成為汽車的重要組成部分。在CAN網絡中,CAN節(jié)點不分主從,可在任意時刻主動以報文形式向網絡上廣播數(shù)據。對CAN數(shù)據進行在線監(jiān)測,根據汽車總線協(xié)議和網絡矩陣表從總線報文中提取出相關信息,是了解汽車狀態(tài)的重要手段。
OBD(On-Board Diagnostic)是車載診斷系統(tǒng),用于監(jiān)控發(fā)動機的運行狀況和尾氣后處理系統(tǒng)的工作狀態(tài),其診斷接口為統(tǒng)一的16針腳形式。各大汽車廠商在標準的16針OBD接口基礎上,進行了信號定義,可以從中接出車身CAN和動力CAN,所以它不僅僅可以用于排放控制系統(tǒng)的診斷,還是一個數(shù)據源。通過OBD上的總線接口,可以對CAN數(shù)據進行在線監(jiān)測。
由于CAN總線系統(tǒng)節(jié)點繁多,存在大量報文,而且很多報文的周期很短,因此CAN網絡短期內便會產生巨大的數(shù)據量,但是用戶往往只關注某些特定報文的數(shù)據和時序,所以需要進行智能監(jiān)測,在大量的無關數(shù)據中提取有用的信息,并計算出報文的時序信息。一種常用的CAN總線數(shù)據監(jiān)測手段是,CAN卡采集總線數(shù)據,通過USB接口連接到電腦,在電腦上通過專用軟件查看并分析數(shù)據,這種方式成本高昂,而且便攜性差,不利于現(xiàn)場測試。
技術實現(xiàn)要素:
本發(fā)明為了解決上述問題,提出了一種基于藍牙和OBD的CAN網絡智能監(jiān)測系統(tǒng)及監(jiān)測方法,該發(fā)明通過設定ID過濾區(qū)間,只顯示用戶關心的信息,避免了由于顯示界面頻繁刷新而很難捕捉到有用數(shù)據的缺點。
為了實現(xiàn)上述目的,本發(fā)明采用如下技術方案:
一種基于藍牙和OBD的CAN網絡智能監(jiān)測系統(tǒng),包括下位機、上位機和CAN網絡,其中,所述上位機通過藍牙連接下位機,所述下位機通過OBD線纜連接汽車的CAN網絡,所述下位機以中斷方式接收總線報文,接收CAN網絡的總線報文,記錄當前時間戳信息、報文ID、通道號和數(shù)據,組合成結構體,存入緩沖區(qū),并定時將緩沖區(qū)中的結構體數(shù)據傳輸給上位機。
所述CAN網絡包括汽車車身CAN網絡和動力CAN網絡。
所述上位機為移動終端,與下位機建立藍牙連接,啟動監(jiān)測、接收總線報文、顯示報文信息、設置顯示模式、設定接收指定報文并存儲總線數(shù)據。
所述下位機的時間戳包括毫秒計時數(shù)據和微秒計時數(shù)據,上位機根據毫秒計數(shù)值和微秒計數(shù)值計算出當前報文的接收時刻。
所述上位機以AT指令的方式命令下位機停止或啟動報文監(jiān)測,下位機停止或啟動定時器和計時器,并停止或實時接收CAN報文。
所述上位機以動態(tài)模式顯示總線報文,按照接收報文的時間先后順序在界面上依次顯示,顯示條目格式為:報文接收時刻+通道號+報文ID+數(shù)據。
所述上位機以統(tǒng)計模式顯示總線報文,每個報文ID對應一個顯示條目,上位機根據報文的接收時刻計算出報文周期,定期刷新顯示,顯示條目格式為:報文周期+通道號+報文ID+數(shù)據。
所述上位機設定ID過濾區(qū)間,以AT指令的方式命令下位機只接收ID值位于過濾區(qū)間內的報文,下位機向上位機發(fā)送ID值位于過濾區(qū)間內的報文,上位機只顯示ID值位于過濾區(qū)間內的報文。
一種基于藍牙和OBD的CAN網絡智能監(jiān)測系統(tǒng)的監(jiān)測方法,上位機通過藍牙連接下位機,下位機通過OBD線纜連接汽車的CAN網絡,下位機以中斷方式接收總線報文,接收CAN網絡的總線報文,記錄當前時間戳信息、報文ID、通道號和數(shù)據,組合成結構體,存入緩沖區(qū),并定時將緩沖區(qū)中的結構體數(shù)據傳輸給上位機,進行汽車信息的監(jiān)測。
時間戳包括毫秒計時數(shù)據和微秒計時數(shù)據,上位機根據毫秒計數(shù)值和微秒計數(shù)值計算出當前報文的接收時刻,具體方法為:設毫秒值為M,微秒值為U,以微秒為單位的報文接收時刻為T,T的計算為:設在時刻T,計時器走過了N個完整的計時周期,N為整型數(shù)據,N=(M*1000)/65536,則T=(N*65536)+U。
本發(fā)明的有益效果為:
(1)本發(fā)明在移動設備上顯示汽車總線網絡數(shù)據,便攜性強。
(2)設定ID過濾區(qū)間,只顯示用戶關心的信息,避免了由于顯示界面頻繁刷新而很難捕捉到有用數(shù)據的缺點。
(3)通過設計毫秒級和微秒級的時間戳,可以計算出精度達到微秒級的報文接收時刻和周期,用戶能夠得到關鍵的時序信息。
附圖說明
圖1為本發(fā)明的監(jiān)測系統(tǒng)結構圖;
圖2為本發(fā)明的報文接收時刻計算方法圖。
具體實施方式:
下面結合附圖與實施例對本發(fā)明作進一步說明。
如圖1所示,一種基于藍牙和OBD的CAN網絡智能監(jiān)測系統(tǒng),包括上位機和下位機兩部分,下位機為實時嵌入式系統(tǒng),集成兩路CAN接口,通過OBD線纜接入汽車車身CAN和動力CAN網絡,實時接收總線數(shù)據。同時,下位機是一個藍牙設備,與上位機通過藍牙協(xié)議進行數(shù)據交換。
上位機為支持藍牙通信的平板電腦或藍牙手機,它以移動APP的形式與下位機建立藍牙連接、啟動監(jiān)測、接收總線報文、顯示報文信息、設置顯示模式、設定接收指定報文、存儲總線數(shù)據。
車身CAN為通道1,動力CAN為通道2。
如圖2所示,下位機以中斷方式接收總線報文,接收到總線報文時,記錄當前時間戳信息,和報文ID、通道號、數(shù)據組合成結構體,存入緩沖區(qū)。下位機定期將緩沖區(qū)中的結構體數(shù)據發(fā)送到上位機。
時間戳由兩部分組成,一個是分辨率為1毫秒的毫秒滴答,一個是分辨率為1微秒的微秒滴答。
毫秒滴答是32位無符號整型數(shù)據,在一個周期為1毫秒的定時器的中斷服務程序中進行維護,定時器啟動時,設置毫秒滴答值為0,每隔一毫秒觸發(fā)一次中斷,在中斷服務程序中,將毫秒滴答值加一。
微秒滴答是16位無符號整型數(shù)據,其數(shù)值等于一個模塊時鐘為1MHz的16位計時器的計時值,計時器啟動時,計時值為0,每隔1微秒,計時值自動加一,計時周期為65536微秒,每隔一個計時周期,計時值自動從0開始重新計時。
上位機根據毫秒滴答值和微秒滴答值計算出當前報文的接收時刻。
假設毫秒滴答值為M,微秒滴答值為U,以微秒為單位的報文接收時刻為T,T的計算分為兩步:
第一步,假設在時刻T,計時器走過了N個完整的計時周期,N為整型數(shù)據。
N=(M*1000)/65536 (1-1)
第二步,
T=(N*65536)+U (1-2)
上位機APP打開后,自動建立與下位機的藍牙連接,也可以手動斷開與下位機的藍牙連接和手動連接下位機。
在上位機APP上啟動在線監(jiān)測,上位機以AT指令的方式命令下位機啟動報文監(jiān)測,下位機啟動定時器和計時器,并實時接收CAN報文。
在上位機APP上停止在線監(jiān)測,上位機以AT指令的方式命令下位機停止報文監(jiān)測,下位機停止定時器和計時器,并停止接收CAN報文。
上位機和下位機斷開藍牙連接后,下位機停止定時器和計時器,并停止接收CAN報文。
上位機可以進行設置,以兩種模式顯示總線報文,一種是動態(tài)模式,按照接收報文的時間先后順序在界面上依次顯示,顯示條目格式為:
報文接收時刻+通道號+報文ID+數(shù)據。
一種是統(tǒng)計模式,每個報文ID對應一個顯示條目,上位機根據報文的接收時刻計算出報文周期,定期刷新顯示,顯示條目格式為:
報文周期+通道號+報文ID+數(shù)據。
上位機可以設定ID過濾區(qū)間,以AT指令的方式命令下位機只接收ID值位于過濾區(qū)間內的報文,下位機向上位機發(fā)送ID值位于過濾區(qū)間內的報文,上位機只顯示ID值位于過濾區(qū)間內的報文。
上位機可以把在在線監(jiān)測期間接收到的所有報文以文本文件格式存儲起來,存儲在固定的文件夾下,在事后進行查看或深入分析。
上述雖然結合附圖對本發(fā)明的具體實施方式進行了描述,但并非對本發(fā)明保護范圍的限制,所屬領域技術人員應該明白,在本發(fā)明的技術方案的基礎上,本領域技術人員不需要付出創(chuàng)造性勞動即可做出的各種修改或變形仍在本發(fā)明的保護范圍以內。