CAN為國際標(biāo)�(zhǔn)�(xiàn)�(chǎng)總線,應(yīng)用廣�。作為國際標(biāo)�(zhǔn)ISO11898和ISO11519的控制器局域網(wǎng)CAN[1],最初雖然是為汽車的�(jiān)�(cè)、控制系�(tǒng)�(shè)�(jì)的,但由于它在性能、可靠性等方面的突出優(yōu)�(shì),現(xiàn)已廣泛地�(yīng)用于各工�(yè)�(lǐng)域[2]。在CAN總線技�(shù)�,其MAC�(jī)制是基本的和�(guān)鍵的部分之一。在CAN的技�(shù)�(guī)范中首先提到的就是仲�,而仲裁規(guī)則是通過�(bào)文優(yōu)先級(jí)體現(xiàn)的。目前國�(nèi)外雖然對(duì)CAN�(bào)文優(yōu)先級(jí)有一些理論研究和分析,但尚未見到有文�(xiàn)介紹有效的方法或手段來產(chǎn)生和檢測(cè)�(bào)文的�(yōu)先級(jí)。這在很大程度上阻礙了CAN總線的�(jìn)一步研究與�(yīng)用�
CAN�(bào)文優(yōu)先級(jí)檢測(cè)系統(tǒng)�4�(gè)CAN通信節(jié)�(diǎn)組成,通過各節(jié)�(diǎn)的CAN-H和CAN-L端口并聯(lián)到總線上,總線兩端各接上一�(gè)120Ω左右的終端電阻,�(gòu)成一�(gè)閉合回路�4�(gè)節(jié)�(diǎn)的主體結(jié)�(gòu)是基本相同的,根�(jù)系統(tǒng)功能的需要每�(gè)節(jié)�(diǎn)在硬件結(jié)�(gòu)上又有所差別。系�(tǒng)總體�(jié)�(gòu)如圖所示。每�(gè)節(jié)�(diǎn)均有鍵盤和顯示單�;節(jié)�(diǎn)1�2�3為發(fā)送節(jié)�(diǎn),每�(gè)節(jié)�(diǎn)均有“啟�(dòng)�(fā)送”按�;節(jié)�(diǎn)1還有“停止發(fā)送”按�,并可對(duì)CAN總線電平�(jìn)行檢�(cè),亦即可�(duì)CAN總線MAC(媒體訪問控制)幀�(jìn)行檢�(cè);節(jié)�(diǎn)4為接收節(jié)�(diǎn),可顯示接收到的�(bào)��
� 系統(tǒng)�(jié)�(gòu)
CAN技�(shù)�(guī)范中的MAC�(jī)制就是指�(duì)媒體訪問的控�/仲裁�(jī)制[4, 5]。CAN�(wǎng)�(luò)上的一�(gè)節(jié)�(diǎn)�(fā)送的�(bào)文可被網(wǎng)�(luò)上所有其它節(jié)�(diǎn)�(jiān)聽并�(yīng)�。當(dāng)總線開放�(shí),任何CAN節(jié)�(diǎn)均可開始�(fā)送報(bào)�,若多�(gè)節(jié)�(diǎn)同時(shí)開始�(fā)送報(bào)�,總線訪問沖突借助�(biāo)�(shí)符�(jìn)行逐位仲裁來解�。仲裁期�,每一�(gè)�(fā)送器都將�(fā)送的位電平與在總線上�(jiān)視到的電平�(jìn)行比�,若相同,則該單元可以繼�(xù)�(fā)�;若不同,該單元丟失仲裁,并且必須退出而不再發(fā)送后�(xù)��
這里指出,對(duì)于多�(gè)節(jié)�(diǎn)同時(shí)�(fā)送情況下總線訪問的仲�,CAN采用的是帶優(yōu)先權(quán)的非破壞性逐位仲裁�(jī)制來解決總線沖突的;�(duì)于一�(gè)節(jié)�(diǎn)想要�(fā)送而另一�(gè)節(jié)�(diǎn)正在�(fā)送的總線訪問情況,CAN采用的是載波�(jiān)聽技�(shù)。這二者共同的基礎(chǔ)是CAN總線上一�(gè)節(jié)�(diǎn)�(fā)送的�(bào)文可被所有節(jié)�(diǎn)(包括自身)�(jiān)聽。帶�(yōu)先權(quán)的非破壞性逐位仲裁�(jī)制所依賴的其它基�(chǔ)是顯性位(�0�)的優(yōu)先權(quán)高于隱性位(�1�),即�(dāng)一�(gè)隱性位和一�(gè)顯性位同時(shí)被發(fā)送至總線上時(shí),總線上所出現(xiàn)的結(jié)果為一�(gè)顯性位,“非破壞性”即是對(duì)高優(yōu)先權(quán)的�0”而言的;參與逐位仲裁的位為仲裁場(chǎng)(11位標(biāo)�(shí)符和RTR�(�(duì)于標(biāo)�(zhǔn)格式)),如圖所��
� CAN的非破壞性逐位仲裁
1、方法的基本原理
根據(jù)CAN的MAC�(jī)制及仲裁�(guī)�,如果高�(yōu)先級(jí)的報(bào)文一直占用著總線,則其它低優(yōu)先級(jí)的報(bào)文將無法獲得仲裁,但是會(huì)嘗試重新�(fā)送。只有當(dāng)高優(yōu)先級(jí)�(bào)文不再占用總線時(shí),低�(yōu)先級(jí)的報(bào)文才可能�(fā)送成功。因�,檢�(cè)�(bào)文優(yōu)先級(jí)的前提和�(guān)鍵是如何讓不同優(yōu)先級(jí)�(bào)文同�(shí)�(jìng)�(zhēng)總線�
為方便說�,首先命名標(biāo)�(shí)�。節(jié)�(diǎn)1要發(fā)送兩種報(bào)�,將其發(fā)送報(bào)文標(biāo)�(shí)符分別命名為SENT_ID_11和SENT_ID_12;將節(jié)�(diǎn)2和節(jié)�(diǎn)3�(fā)送報(bào)文標(biāo)�(shí)符分別命名為SENT_ID_2和SENT_ID_3,報(bào)文的�(yōu)先級(jí)順序: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)�(shí)符為SENT_ID_11的報(bào)�,目的是讓高�(yōu)先級(jí)的報(bào)文占用總線,使總線一直處于“忙”的狀�(tài)。然后使節(jié)�(diǎn)2和節(jié)�(diǎn)3分別開始�(fā)送標(biāo)�(shí)符為SENT_ID_2 和SENT_ID_3�(bào)文,節(jié)�(diǎn)2�3�(fā)送的�(bào)文優(yōu)先級(jí)不同且均比節(jié)�(diǎn)1�(yōu)先級(jí)低。此�(shí),節(jié)�(diǎn)2�3�(jiān)聽總線的�(jié)果是:發(fā)�(xiàn)有比其本身優(yōu)先級(jí)高的�(bào)文正在發(fā)送,因此要邊�(jiān)聽邊等待。這時(shí)節(jié)�(diǎn)1停止�(fā)送后,節(jié)�(diǎn)2�3�(huì)同時(shí)�(jìng)�(zhēng)總線,從而創(chuàng)造了使不同優(yōu)先級(jí)的報(bào)文同�(shí)�(jìng)�(zhēng)總線的條件。根�(jù)節(jié)�(diǎn)4接收到報(bào)文的先后順序即可�(yàn)證節(jié)�(diǎn)2和節(jié)�(diǎn)3所�(fā)�(bào)文的�(yōu)先級(jí)�,并且兩�(gè)節(jié)�(diǎn)�(fā)出的�(bào)文都被成功接�,也�(yàn)證了CAN總線的非破壞性仲裁機(jī)制。另�,通過節(jié)�(diǎn)1檢測(cè)到的MAC幀也能確定節(jié)�(diǎn)2�3的報(bào)文優(yōu)先級(jí)。這里要注意的�,SENT_ID_12的報(bào)文作為檢�(cè)開始的標(biāo)�。使節(jié)�(diǎn)1停止連續(xù)�(fā)送報(bào)�,讓節(jié)�(diǎn)1再發(fā)送一幀ID為SENT_ID_12的報(bào)文,同時(shí)開始檢測(cè)總線電平,捕捉MAC幀。在第三次檢�(cè)到連續(xù)11�(gè)�1”時(shí)停止檢測(cè),即第三幀�(bào)文結(jié)束時(shí)停止檢測(cè)。節(jié)�(diǎn)1將檢�(cè)到的MAC幀的各位值通過顯示單元順序地顯示出來,并與節(jié)�(diǎn)2�3�(fā)送的MAC幀相比�,可體現(xiàn)節(jié)�(diǎn)2�3的報(bào)文優(yōu)先級(jí)。這就雙方面驗(yàn)證了�(bào)文優(yōu)先級(jí),保證了�(zhǔn)確性和可信度�
2、方法的軟件�(shí)�
軟件�(shí)施是�(yán)格依�(jù)方法的基本原理設(shè)�(jì)�,各�(gè)節(jié)�(diǎn)的軟件實(shí)施流程如圖所示�
� 各節(jié)�(diǎn)軟件流程
�(duì)�(shí)施流程作如下幾點(diǎn)說明�
?�?)配置CAN位定�(shí)寄存器時(shí)要保證各節(jié)�(diǎn)的通信波特率嚴(yán)格一致;
?�?)配置CAN接受碼和接受屏蔽寄存器時(shí)要保證節(jié)�(diǎn)1�2�3屏蔽總線上所有報(bào)�,節(jié)�(diǎn)4只接受來自節(jié)�(diǎn)2和節(jié)�(diǎn)3的報(bào)文;
?�?)節(jié)�(diǎn)1軟件流程中次配置仲裁�(chǎng)、控制場(chǎng)及數(shù)�(jù)�(chǎng)是為連續(xù)�(bào)文發(fā)送做�(zhǔn)�,第二次配置是為�(biāo)定報(bào)文檢�(cè)起始�(biāo)志做�(zhǔn)備�
?�?)節(jié)�(diǎn)1軟件流程中次鍵盤掃描目的是為啟動(dòng)連續(xù)�(bào)文發(fā)�,第二次鍵盤掃描是為停止連續(xù)�(bào)文發(fā)��
?�?)CAN的MAC幀檢測(cè)是過檢測(cè)單元中斷服務(wù)程序?qū)崿F(xiàn)��
其中�1給出了各節(jié)�(diǎn)�(shí)際設(shè)置發(fā)送的�(bào)文;根據(jù)方法的基本原�,表2給出了報(bào)文過濾設(shè)置情�;表3給出了節(jié)�(diǎn)1�(shí)際檢�(cè)到的CAN的MAC幀(灰色陰影標(biāo)示位為位填充),其檢�(cè)到的順序從前到后依次是SENT_ID_12,SENT_ID_2,SENT_ID_3,實(shí)際檢�(cè)情況與理論分析相符合,�(jìn)而報(bào)文優(yōu)先級(jí)得以�(yàn)證。另�,節(jié)�(diǎn)4液晶顯示的接收到的報(bào)文順序也與理論分析相符合,更�(jìn)一步證�(shí)了方法的可行性�
維庫電子�,電子知�(shí),一查百��
已收錄詞�153979�(gè)