專(zhuān)利名稱(chēng):Can總線調(diào)度分析及監(jiān)控系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種CAN總線應(yīng)用領(lǐng)域,尤其涉及一種CAN總線調(diào)度分析監(jiān)控方法及系統(tǒng)。
背景技術(shù):
目前,國(guó)內(nèi)整車(chē)廠和研發(fā)單位在汽車(chē)電子控制單元(ECT)的開(kāi)發(fā)過(guò)程中,對(duì)于CAN 總線消息的分析和實(shí)時(shí)監(jiān)控主要應(yīng)用的是德國(guó)Vector公示開(kāi)發(fā)的CANoe軟件及其配套的 CAN接口卡。而CANoe軟件是一個(gè)大型的,覆蓋面比較廣的軟件系統(tǒng),他對(duì)于整車(chē)電子系統(tǒng)的開(kāi)發(fā)功效是非常大的;在汽車(chē)的分布式嵌入式系統(tǒng)中,目前主流的通信網(wǎng)絡(luò)是CAN總線。CAN是事件觸發(fā)的通信協(xié)議,它根據(jù)消息的優(yōu)先等級(jí)和節(jié)點(diǎn)的狀態(tài)自動(dòng)地調(diào)度消息的傳送。低優(yōu)先級(jí)的消息會(huì)因同時(shí)發(fā)生的高優(yōu)先級(jí)消息太多而不能及時(shí)發(fā)送,高優(yōu)先級(jí)消息也有可能由于節(jié)點(diǎn)狀態(tài)等的影響而丟失。Tindell首先將單處理器的任務(wù)調(diào)度方法改造成適用于CAN總線的調(diào)度方法,求取消息的最壞響應(yīng)時(shí)間。CAN通信在網(wǎng)絡(luò)上的實(shí)現(xiàn)經(jīng)過(guò)2個(gè)階段(I)通信任務(wù)將消息發(fā)到發(fā)送的通信控制器(CC),(2)發(fā)送的通信控制器將消息發(fā)到接收的通信控制器。廣義地講, 響應(yīng)時(shí)間是從需要產(chǎn)生通信的事件發(fā)生到消息到達(dá)目標(biāo)節(jié)點(diǎn)的時(shí)間,包括發(fā)送節(jié)點(diǎn)host 內(nèi)的處理時(shí)間,host到CC的時(shí)間,總線上消息仲裁傳送時(shí)間,接收CC到目標(biāo)節(jié)點(diǎn)host的處理時(shí)間。仲裁獲勝的消息開(kāi)始傳送后,便不能被中止,所以CAN調(diào)度是固定優(yōu)先級(jí)非搶先式的任務(wù)調(diào)度。通過(guò)對(duì)算法描述,可以了解到如下內(nèi)容設(shè)M為信號(hào)矩陣,m是信號(hào)矩陣M中的一個(gè)消息。通常消息m的最差響應(yīng)時(shí)間Rni 由三部分構(gòu)成 隊(duì)列抖動(dòng)時(shí)間(queuing Jitter) Jm,即從消息產(chǎn)生到進(jìn)入隊(duì)列,準(zhǔn)備在總線上發(fā)送的最長(zhǎng)時(shí)間間隔。這段時(shí)間通常依賴(lài)于發(fā)送消息的任務(wù)的調(diào)度情況,與總線調(diào)度無(wú)關(guān)。 因此,這段時(shí)間通常被認(rèn)為是一個(gè)保證消息傳輸?shù)淖畲笏沙跁r(shí)間,在計(jì)算時(shí)通常假定為O。 隊(duì)列延遲(queuing delay)wm,即消息成功的在總線上傳輸之前,在CAN控制器或設(shè)備驅(qū)動(dòng)隊(duì)列中逗留的時(shí)間。這段時(shí)間包括兩部分,即由于低優(yōu)先級(jí)消息正在總線上傳輸所引起的阻塞時(shí)間Bm和由于高優(yōu)先級(jí)消息搶占發(fā)送所引起的干擾時(shí)間Im。 傳輸時(shí)間Cm。 消息的周期用T表示,消息m的周期就表示為T(mén)m。因此消息m的最差響應(yīng)時(shí)間Rni為Rm = Jm+wm+Cm (I)其中Wm= B1^Init5阻塞時(shí)間Ip (m)是所有優(yōu)先級(jí)低于m的消息的
集合 O
權(quán)利要求
1.一種CAN總線調(diào)度分析監(jiān)控方法其特征是,它包括的步驟是a)計(jì)算機(jī)終端通過(guò)USB接口連接到CAN接口卡上,然后將CAN接口卡連接到CAN總線上;采集CAN總線上的信息,通過(guò)利用信號(hào)矩陣,對(duì)信號(hào)矩陣中消息幀進(jìn)行編輯,確定消息幀中消息的屬性;b)獲取某個(gè)信號(hào)矩陣消息幀中消息的屬性;c)對(duì)于是否出現(xiàn)消息傳輸錯(cuò)誤做出判斷,若沒(méi)有消息傳輸錯(cuò)誤,則進(jìn)行判斷Dm是否小于等于Tm,所述Dm某個(gè)消息幀截止時(shí)間,所述Tm為某個(gè)消息幀的周期,若小于等于則對(duì)出現(xiàn)忙周期的消息進(jìn)行調(diào)度優(yōu)化,出現(xiàn)消息傳輸錯(cuò)誤,則對(duì)出現(xiàn)傳輸錯(cuò)誤的消息進(jìn)行優(yōu)化,若Dm 不滿(mǎn)足小于Tm以及沒(méi)有出現(xiàn)傳輸錯(cuò)誤,則直截執(zhí)行步驟d);d)經(jīng)步驟c)得出信號(hào)矩陣中各消息的可調(diào)度性和總線的利用率;e)信號(hào)矩陣進(jìn)行總線傳輸過(guò)程中,通過(guò)連接總線的CAN接口卡,利用監(jiān)控模塊同步對(duì)總線上的消息進(jìn)行實(shí)時(shí)監(jiān)聽(tīng)和分析,接收到消息后,根據(jù)消息的ID,對(duì)該消息進(jìn)行解析,包括分析出消息的名字、信號(hào)名、信號(hào)值有效信息;利用日志模塊實(shí)現(xiàn)自動(dòng)記錄步驟d)中得到的CAN消息數(shù)據(jù),并提供多條件的查詢(xún)界面供數(shù)據(jù)檢索,以便用戶(hù)監(jiān)視消息及其信號(hào)的狀態(tài)。
2.如權(quán)利要求I所述的CAN總線調(diào)度分析監(jiān)控方法,其特征是,所述步驟a)中消息幀中消息的屬性包括ID、Name、周期T、總線的速率SB、消息的數(shù)據(jù)字節(jié)數(shù)S和消息的截止時(shí)間D。
3.如權(quán)利要求I所述的CAN總線調(diào)度分析監(jiān)控方法,其特征是,所述步驟b)中某個(gè)消息幀信號(hào)矩陣中消息的屬性包括周期T,總線的速率SB,消息的數(shù)據(jù)字節(jié)數(shù)S及消息的時(shí)間限制D。
4.如權(quán)利要求I所述的CAN總線調(diào)度分析監(jiān)控方法,其特征是,所述步驟c)出現(xiàn)忙周期的消息進(jìn)行調(diào)度優(yōu)化
5.如權(quán)利要求I所述的CAN總線調(diào)度分析監(jiān)控方法,其特征是,所述傳輸錯(cuò)誤的消息進(jìn)行優(yōu)化
6.如權(quán)利要求I所述的CAN總線調(diào)度分析監(jiān)控方法,其特征是,所述步驟e),所述監(jiān)控模塊具體監(jiān)聽(tīng)步驟為i)啟動(dòng)總線監(jiān)控線程;ii)利用開(kāi)源CAN總線監(jiān)控工具包,設(shè)置監(jiān)聽(tīng)的波特率和通道,并啟動(dòng)線程輪詢(xún)調(diào)用方法接收CAN數(shù)據(jù);iii)程序輪詢(xún)調(diào)用方法獲得接收到的CAN數(shù)據(jù);將收到的數(shù)據(jù)存入鏈表供界面刷新使用,并將數(shù)據(jù)追加至日志對(duì)象緩沖鏈表,然后繼續(xù)輪詢(xún)監(jiān)聽(tīng)CAN數(shù)據(jù);vi)界面程序啟動(dòng)單獨(dú)的界面刷新線程輪詢(xún)讀取緩沖池鏈表,當(dāng)緩沖池鏈表中存在數(shù)據(jù)時(shí),讀取協(xié)議設(shè)計(jì)工具中定義的數(shù)據(jù)矩陣,取得當(dāng)前消息的名稱(chēng)并進(jìn)行數(shù)據(jù)顯示; v)停止監(jiān)聽(tīng)或關(guān)閉監(jiān)控程序模塊。
7.如權(quán)利要求I所述的CAN總線調(diào)度分析監(jiān)控方法,其特征是,所述步驟e),所述日志模塊具體步驟為1)總線監(jiān)控模塊收到數(shù)據(jù)后,首先將日志數(shù)據(jù)記入內(nèi)存緩沖區(qū),2)每隔IOs鐘讀取緩沖區(qū)的數(shù)據(jù),對(duì)日志界面進(jìn)行更新,3)日志緩沖區(qū)中若有數(shù)據(jù)記錄,將緩沖區(qū)中的數(shù)據(jù)使用dom4j組件的SAX接口寫(xiě)入日志模塊,4)清空緩沖區(qū)后寫(xiě)入日志模塊后。
8.—種如權(quán)利要求I所述的CAN總線調(diào)度分析監(jiān)控方法的系統(tǒng),其特征是,它包括界面模塊用于編輯CAN總線系統(tǒng)信號(hào)矩陣輸入消息幀,消息幀包括的ID、Name周期T總線的速率SB消息的數(shù)據(jù)字節(jié)數(shù)S及消息的時(shí)間限制D屬性;總線可調(diào)度性分析模塊用于獲取界面模塊中的信號(hào)矩陣中消息的周期T,總線的速率SB,消息的數(shù)據(jù)字節(jié)數(shù)S及消息的時(shí)間限制D ;
全文摘要
本發(fā)明公開(kāi)了一種CAN總線調(diào)度分析監(jiān)控方法,它包括的步驟是a)采集CAN總線上的信息,對(duì)信號(hào)矩陣中消息幀進(jìn)行編輯,確定消息幀中消息的屬性;b)獲取某個(gè)消息幀信號(hào)矩陣中消息的屬性;c)判斷Dm是否小于Tm,Tm為某個(gè)消息幀的周期,若小于則對(duì)出現(xiàn)忙周期的消息進(jìn)行調(diào)度優(yōu)化;同時(shí),對(duì)是否出現(xiàn)傳輸錯(cuò)誤做出判斷,若有,則對(duì)出現(xiàn)傳輸錯(cuò)誤的消息進(jìn)行優(yōu)化,若Dm不滿(mǎn)足小于Tm以及沒(méi)有出現(xiàn)傳輸錯(cuò)誤,則直截執(zhí)行步驟d);d)經(jīng)步驟c)得出信號(hào)矩陣中各消息的可調(diào)度性和總線的利用率;e)信號(hào)矩陣進(jìn)行總線傳輸過(guò)程中,利用監(jiān)控模塊同步對(duì)總線上的消息進(jìn)行實(shí)時(shí)監(jiān)聽(tīng)和分析,利用日志模塊實(shí)現(xiàn)自動(dòng)記錄CAN消息數(shù)據(jù)。
文檔編號(hào)G05B19/418GK102608979SQ20121007654
公開(kāi)日2012年7月25日 申請(qǐng)日期2012年3月21日 優(yōu)先權(quán)日2012年3月21日
發(fā)明者劉曉建, 孫睿, 毛成勇, 車(chē)曉波, 閆旭琴 申請(qǐng)人:山東省科學(xué)院自動(dòng)化研究所