新聞中心

EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > 一種CAN息線報文優(yōu)先級產(chǎn)生與檢測方法

一種CAN息線報文優(yōu)先級產(chǎn)生與檢測方法

作者: 時間:2009-08-18 來源:網(wǎng)絡(luò) 收藏
引 言
作為國際標(biāo)準(zhǔn)ISO11898和IS011519的控制器局域網(wǎng),雖然最初是為汽車的監(jiān)測、控制系統(tǒng)而設(shè)計的,但由于它在性能、可靠性等方面的突出優(yōu)勢,現(xiàn)已廣泛地應(yīng)用于各工業(yè)領(lǐng)域。在總線技術(shù)中,MAC機(jī)制是基本的和關(guān)鍵的部分之一。在的技術(shù)規(guī)范中首先提到的就是仲裁,而仲裁規(guī)則是通過報文體現(xiàn)的。目前國內(nèi)外雖然對CAN報文有一些理論研究和分析,但尚未見到有文獻(xiàn)介紹有效的方法或手段來產(chǎn)生和檢測報文的。這在很大程度上阻礙了CAN總線的進(jìn)一步研究與應(yīng)用。本文給出了一種CAN報文優(yōu)先級的產(chǎn)生與,清晰地解析了CAN總線的非破壞性逐位仲裁機(jī)制。

1 CAN的MAC機(jī)制分析
CAN技術(shù)規(guī)范中的MAC機(jī)制是指對媒體訪問的控制/仲裁機(jī)制。CAN網(wǎng)絡(luò)上一個節(jié)點(diǎn)發(fā)送的報文可被網(wǎng)絡(luò)上所有其他節(jié)點(diǎn)監(jiān)聽并應(yīng)答。當(dāng)總線開放時,任何CAN節(jié)點(diǎn)均可開始發(fā)送報文;若多個節(jié)點(diǎn)同時開始發(fā)送報文,總線訪問沖突借助標(biāo)識符進(jìn)行逐位仲裁來解決。仲裁期間,每一個發(fā)送器都將發(fā)送的位電平與在總線上監(jiān)視到的電平進(jìn)行比較。若相同,則該單元可以繼續(xù)發(fā)送;若不同,則該單元丟失仲裁,且須退出而不再發(fā)送后續(xù)位。
對于多個節(jié)點(diǎn)同時發(fā)送情況下總線訪問的仲裁,CAN采用的是帶優(yōu)先權(quán)的非破壞性逐位仲裁機(jī)制來解決總線沖突的;對于一個節(jié)點(diǎn)想要發(fā)送而另一個節(jié)點(diǎn)正在發(fā)送的總線訪問情況,CAN采用的是載波監(jiān)聽技術(shù)。這二者共同的基礎(chǔ)是CAN總線上一個節(jié)點(diǎn)發(fā)送的報文可被所有節(jié)點(diǎn)(包括自身)監(jiān)聽。帶優(yōu)先權(quán)的非破壞性逐位仲裁機(jī)制所依賴的其他基礎(chǔ)是顯性位(“O”)的優(yōu)先權(quán)高于隱性位(“l(fā)”),即當(dāng)一個隱性位和一個顯性位同時被發(fā)送至總線上時,總線上所出現(xiàn)的結(jié)果為一個顯性位,“非破壞性”即是對高優(yōu)先權(quán)的“O”而言的。參與逐位仲裁的位為仲裁場(11位標(biāo)識符和RTR位,對于標(biāo)準(zhǔn)格式),如圖1所示。

本文引用地址:http://m.butianyuan.cn/article/195755.htm

2 硬件支持
CAN報文優(yōu)先級檢測系統(tǒng)由4個CAN通信節(jié)點(diǎn)組成,通過各節(jié)點(diǎn)的CAN―H和CAN―L端口并聯(lián)到總線上,總線兩端各接上一個120Ω左右的終端電阻,構(gòu)成一個閉合回路。4個節(jié)點(diǎn)的主體結(jié)構(gòu)是基本相同的,根據(jù)系統(tǒng)功能的需要每個節(jié)點(diǎn)在硬件結(jié)構(gòu)上又有所差別。系統(tǒng)總體結(jié)構(gòu)如圖2所示。每個節(jié)點(diǎn)均有鍵盤和顯示單元;節(jié)點(diǎn)1、2、3為發(fā)送節(jié)點(diǎn),每個節(jié)點(diǎn)均有“啟動發(fā)送”按鈕;節(jié)點(diǎn)1還有“停止發(fā)送”按鈕,并可對CAN總線電平進(jìn)行檢測,亦即可對CAN總線MAC(媒體訪問控制)幀進(jìn)行檢測;節(jié)點(diǎn)4為接收節(jié)點(diǎn),可顯示接收到的報文。

3 CAN報文優(yōu)先級的產(chǎn)生與
3.1 基本原理

根據(jù)CAN的MAC機(jī)制及仲裁規(guī)則,如果高優(yōu)先級的報文一直占用著總線,則其他低優(yōu)先級的報文將無法獲得仲裁,但是會嘗試重新發(fā)送。只有當(dāng)高優(yōu)先級報文不再占用總線時,低優(yōu)先級的報文才可能發(fā)送成功。因此,檢測報文優(yōu)先級的前提和關(guān)鍵是如何讓不同優(yōu)先級的報文同時競爭總線。
為方便說明,首先命名標(biāo)識符。節(jié)點(diǎn)1要發(fā)送兩種報文,將其發(fā)送報文標(biāo)識符分別命名為SENT_ID_11和SENT_ID_12,將節(jié)點(diǎn)2和節(jié)點(diǎn)3發(fā)送報文標(biāo)識符分別命名為SENT_ID_2和SENT_ID_3。報文的優(yōu)先級順序:SENT_ID_11>SENT_ID_2,SENT_ID_11>SENT_ID_3,SENT_ID_12>SENT_ID_2,SENT_ID_12>SENT_ID_3,SENT_ID_11不同于SENT_ID_12,SENT_ID_2不同于SENT_ID_3。使節(jié)點(diǎn)1連續(xù)發(fā)送標(biāo)識符為SENT_ID_11的報文,目的是讓高優(yōu)先級的報文占用總線,使總線一直處于“忙”的狀態(tài)。然后使節(jié)點(diǎn)2和節(jié)點(diǎn)3分別開始發(fā)送標(biāo)識符為SENT_ID_2和SENT_ID_3報文,節(jié)點(diǎn)2、3發(fā)送的報文優(yōu)先級不同且均比節(jié)點(diǎn)1優(yōu)先級低。此時,節(jié)點(diǎn)2和3監(jiān)聽總線的結(jié)果是:發(fā)現(xiàn)有比其本身優(yōu)先級高的報文正在發(fā)送,因此要邊監(jiān)聽邊等待。這時節(jié)點(diǎn)l停止發(fā)送后,節(jié)點(diǎn)2和3會同時競爭總線,從而創(chuàng)造了使不同優(yōu)先級的報文同時競爭總線的條件。根據(jù)節(jié)點(diǎn)4接收到報文的先后順序即可驗證節(jié)點(diǎn)2和節(jié)點(diǎn)3所發(fā)報文的優(yōu)先級了,并且兩個節(jié)點(diǎn)發(fā)出的報文都被成功接收,也驗證了CAN總線的非破壞性仲裁機(jī)制。另外,通過節(jié)點(diǎn)1檢測到的MAC幀也能確定節(jié)點(diǎn)2和3的報文優(yōu)先級。這里要注意的是,SENT_ID_12的報文作為檢測開始的標(biāo)志。使節(jié)點(diǎn)l停止連續(xù)發(fā)送報文,讓節(jié)點(diǎn)1再發(fā)送1幀ID為SENT_ID_12的報文,同時開始檢測總線電平,捕捉MAC幀。在第3次檢測到連續(xù)11個“l(fā)”時停止檢測,即第3幀報文結(jié)束時停止檢測。節(jié)點(diǎn)1將檢測到的MAC幀的各位值通過顯示單元順序地顯示出來,并與節(jié)點(diǎn)2和3發(fā)送的MAC幀相比較,可體現(xiàn)節(jié)點(diǎn)2和3的報文優(yōu)先級。這就雙方面驗證了報文優(yōu)先級,保證了準(zhǔn)確性和可信度。


上一頁 1 2 下一頁

關(guān)鍵詞: CAN 息線 檢測方法 優(yōu)先級

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉