韓靜
摘 要:“CAN總線技術(shù)”是高職院校汽車類專業(yè)的一門核心課程,涉及汽車、電子、通信等綜合知識(shí)。經(jīng)調(diào)研,目前市面上的汽車“CAN總線技術(shù)”教材存在原理深?yuàn)W、難懂、難教、難學(xué)的問題。為此,文章對(duì)“CAN總線技術(shù)”原理進(jìn)行深入研究,對(duì)其重難點(diǎn)進(jìn)行剖析,并提出教材改進(jìn)建議,以使讀者輕松掌握其原理和故障診斷技巧,提高教材的使用效果。
關(guān)鍵詞:CAN總線;原理分析;故障診斷;教材改進(jìn)
“CAN總線技術(shù)”(CAN,Controller Area Network,控制器局域網(wǎng)絡(luò))是高職院校汽車智能技術(shù)、汽車電子技術(shù)、汽車檢測(cè)與維修技術(shù)等專業(yè)的核心課程,該課程涉及了汽車構(gòu)造、電子信息、通信原理等綜合知識(shí)。經(jīng)過調(diào)研,目前汽車“CAN總線技術(shù)”教材在其原理分析時(shí)大量采用了電子、通信領(lǐng)域中的專業(yè)術(shù)語(yǔ),從而導(dǎo)致汽車專業(yè)師生感覺“CAN總線技術(shù)”原理難懂、難教、難學(xué),甚至望而卻步?;诂F(xiàn)實(shí),對(duì)“CAN總線技術(shù)”原理進(jìn)行了深入研究,對(duì)其中的重難點(diǎn)進(jìn)行詳細(xì)分析,并提出教材改進(jìn)建議,以便提高教材的使用效果。
1 “CAN總線技術(shù)”原理重難點(diǎn)分析
1.1 CAN總線的網(wǎng)絡(luò)結(jié)構(gòu)和數(shù)據(jù)傳輸流程
CAN總線的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,一般將實(shí)現(xiàn)特定功能的模塊作為CAN總線的一個(gè)節(jié)點(diǎn),節(jié)點(diǎn)1向節(jié)點(diǎn)n傳輸數(shù)據(jù)的流程如下。
節(jié)點(diǎn)1的微控制器1對(duì)傳感器1進(jìn)行數(shù)據(jù)采集,然后將傳感器1對(duì)應(yīng)的數(shù)字信號(hào)附加一個(gè)數(shù)據(jù)ID號(hào)(類似于包裹單號(hào))發(fā)送給CAN控制器1,CAN控制器1對(duì)數(shù)據(jù)進(jìn)行打包,然后將數(shù)據(jù)包發(fā)送給CAN收發(fā)器1,CAN收發(fā)器1再將數(shù)字信號(hào)轉(zhuǎn)換為對(duì)應(yīng)的CAN總線電壓信號(hào);當(dāng)節(jié)點(diǎn)n從CAN總線上接收到電壓信號(hào)后,首先由CAN收發(fā)器n將總線電壓信號(hào)轉(zhuǎn)換為對(duì)應(yīng)的數(shù)字信號(hào),然后將其數(shù)字信號(hào)發(fā)送給CAN控制器n,CAN控制器n首先對(duì)其收到的數(shù)據(jù)進(jìn)行驗(yàn)收濾波,判斷收到的信號(hào)是否是自身節(jié)點(diǎn)需要的數(shù)據(jù),若是,則接受此數(shù)據(jù)并對(duì)其進(jìn)行解包,為節(jié)點(diǎn)n的微控制器n提供有效數(shù)據(jù)(節(jié)點(diǎn)1的傳感器信號(hào)),微控制器n可根據(jù)節(jié)點(diǎn)1的傳感器信號(hào)控制執(zhí)行器n動(dòng)作;否則,節(jié)點(diǎn)n放棄此次收到的CAN數(shù)據(jù)。
很明顯地,上述流程與生活中的寄信、收信流程相似,因此,教材中可以給出“類比法”的提示,以便讀者快速理解其原理。
1.2 CAN總線的仲裁機(jī)制分析
如果CAN總線上的多個(gè)節(jié)點(diǎn)同時(shí)向總線上發(fā)送數(shù)據(jù)時(shí),多個(gè)數(shù)據(jù)就會(huì)在總線上出現(xiàn)“撞車”的現(xiàn)象,這就像生活中很多人在一起討論問題,如果幾個(gè)人同時(shí)講話,就會(huì)亂套,此時(shí)需要進(jìn)行仲裁,決定哪個(gè)人先講,哪個(gè)人后講。CAN總線的仲裁是基于數(shù)據(jù)優(yōu)先級(jí)的競(jìng)爭(zhēng)機(jī)制,從以下兩個(gè)方面進(jìn)行說明[1]。
(1)CAN總線的多個(gè)節(jié)點(diǎn)同時(shí)向總線上發(fā)送數(shù)據(jù)時(shí),總線上的結(jié)果是多個(gè)數(shù)據(jù)的“邏輯與”值。例如,節(jié)點(diǎn)A向總線上發(fā)送數(shù)字信號(hào)0,而節(jié)點(diǎn)B向總線上發(fā)送數(shù)字信號(hào)1,則總線上的結(jié)果是0和1的“邏輯與”值0。可見,同時(shí)向總線上發(fā)送0和1時(shí),0被顯示出來,稱為“顯性位”,而1被隱蔽掉,稱為“隱性位”;另外,也說明0的優(yōu)先級(jí)比1的優(yōu)先級(jí)高,正因如此,CAN總線利用“數(shù)據(jù)ID”來標(biāo)識(shí)數(shù)據(jù)的優(yōu)先級(jí):數(shù)據(jù)ID號(hào)越小,數(shù)據(jù)的優(yōu)先級(jí)越高;反之,數(shù)據(jù)的優(yōu)先級(jí)越低。
(2)CAN收發(fā)器具有“邊說邊聽”功能,即節(jié)點(diǎn)向CAN總線上發(fā)送數(shù)據(jù)時(shí),同時(shí)也能監(jiān)聽到總線上的數(shù)據(jù)。
CAN總線采用的就是“邊說邊聽”的非破壞性仲裁機(jī)制:每個(gè)節(jié)點(diǎn)在發(fā)送數(shù)據(jù)時(shí),首先發(fā)送數(shù)據(jù)ID號(hào),在發(fā)送數(shù)據(jù)ID號(hào)的過程中,逐位“邊說邊聽”,當(dāng)節(jié)點(diǎn)向總線上發(fā)送的數(shù)據(jù)和從總線上監(jiān)聽到的數(shù)據(jù)一致時(shí),節(jié)點(diǎn)可以繼續(xù)向總線發(fā)送數(shù)據(jù),否則,節(jié)點(diǎn)停止向總線發(fā)送數(shù)據(jù),而自動(dòng)轉(zhuǎn)變?yōu)椤奥牨姟薄@缒硞€(gè)節(jié)點(diǎn)向總線上發(fā)送的是數(shù)字信號(hào)1,而從總線上監(jiān)聽到的是數(shù)字信號(hào)0,說明總線上有其他節(jié)點(diǎn)在發(fā)送更高優(yōu)先級(jí)的數(shù)據(jù),該節(jié)點(diǎn)即停止發(fā)送;待高優(yōu)先級(jí)的數(shù)據(jù)發(fā)送完成后,低優(yōu)先級(jí)的數(shù)據(jù)自動(dòng)重發(fā)。
現(xiàn)以圖2所示的汽車動(dòng)力CAN總線上3個(gè)電控單元節(jié)點(diǎn)同時(shí)向CAN總線上發(fā)送數(shù)據(jù)為例,進(jìn)一步說明CAN總線的仲裁機(jī)制,3個(gè)節(jié)點(diǎn)首先向總線發(fā)送各自的數(shù)據(jù)ID號(hào),以便進(jìn)行優(yōu)先級(jí)競(jìng)爭(zhēng)。
開始時(shí)刻,3個(gè)節(jié)點(diǎn)同時(shí)向總線發(fā)送數(shù)字信號(hào)0,總線上是這3個(gè)數(shù)字信號(hào)0的“邏輯與”值0,因此,3個(gè)節(jié)點(diǎn)向總線上說的話和從總線上聽到的話一致,它們都可以繼續(xù)向總線發(fā)送數(shù)據(jù)。
下一時(shí)刻,ABS、發(fā)動(dòng)機(jī)兩個(gè)節(jié)點(diǎn)都向總線發(fā)送數(shù)字信號(hào)0,而自動(dòng)變速箱節(jié)點(diǎn)向總線發(fā)送數(shù)字信號(hào)1,此時(shí)總線上是這3個(gè)數(shù)字信號(hào)的“邏輯與”值0,因此,ABS、發(fā)動(dòng)機(jī)兩個(gè)節(jié)點(diǎn)向總線上說的話和從總線上聽到的話一致,它們都可以繼續(xù)向總線發(fā)送數(shù)據(jù),而自動(dòng)變速箱節(jié)點(diǎn)向總線上說的話和從總線上聽到的話不一致,即停止向總線發(fā)送數(shù)據(jù),轉(zhuǎn)為聽眾。
下一時(shí)刻,ABS節(jié)點(diǎn)向總線發(fā)送數(shù)字信號(hào)0,而發(fā)動(dòng)機(jī)節(jié)點(diǎn)向總線發(fā)送數(shù)字信號(hào)1,此時(shí)總線上是這兩個(gè)數(shù)字信號(hào)的“邏輯與”值0,因此,ABS節(jié)點(diǎn)向總線上說的話和從總線上聽到的話一致,可以繼續(xù)向總線發(fā)送數(shù)據(jù),而發(fā)動(dòng)機(jī)節(jié)點(diǎn)向總線上說的話和從總線上聽到的話不一致,即停止向總線發(fā)送數(shù)據(jù),轉(zhuǎn)為聽眾。
下一時(shí)刻,ABS節(jié)點(diǎn)向總線發(fā)送數(shù)字信號(hào)1,此時(shí),由于ABS節(jié)點(diǎn)獨(dú)占總線而使總線上的信號(hào)也是1,因此,ABS節(jié)點(diǎn)向總線上說的話和從總線上聽到的話一致,可以繼續(xù)向總線發(fā)送數(shù)據(jù)。
至此,3個(gè)節(jié)點(diǎn)通過數(shù)據(jù)ID號(hào)進(jìn)行優(yōu)先級(jí)競(jìng)爭(zhēng)的結(jié)果是ABS節(jié)點(diǎn)首先獲得總線使用權(quán),將其數(shù)據(jù)發(fā)送至CAN總線;待ABS節(jié)點(diǎn)將其數(shù)據(jù)發(fā)送完畢后,系統(tǒng)會(huì)自動(dòng)使發(fā)動(dòng)機(jī)節(jié)點(diǎn)、自動(dòng)變速箱節(jié)點(diǎn)繼續(xù)通過數(shù)據(jù)ID號(hào)進(jìn)行優(yōu)先級(jí)競(jìng)爭(zhēng)總線的使用權(quán)而發(fā)送數(shù)據(jù)??梢?,在CAN總線仲裁過程中,不會(huì)出現(xiàn)不同優(yōu)先級(jí)數(shù)據(jù)之間的相互破壞,這就是所謂的“非破壞性仲裁”[2]。
1.3 CAN總線的驗(yàn)收濾波原理
每個(gè)節(jié)點(diǎn)的CAN控制器中都有兩個(gè)寄存器:驗(yàn)收代碼寄存器和驗(yàn)收屏蔽寄存器。當(dāng)某節(jié)點(diǎn)的驗(yàn)收屏蔽寄存器設(shè)置為“有關(guān)”時(shí),則該節(jié)點(diǎn)只能接受數(shù)據(jù)ID號(hào)與自身驗(yàn)收代碼寄存器內(nèi)容完全相同的數(shù)據(jù);當(dāng)某節(jié)點(diǎn)的驗(yàn)收屏蔽寄存器設(shè)置為“無關(guān)”時(shí),則該節(jié)點(diǎn)“來者不拒”,可接受數(shù)據(jù)ID號(hào)為任意值的數(shù)據(jù),這就是所謂的CAN驗(yàn)收濾波原理。借助驗(yàn)收濾波功能,可以靈活實(shí)現(xiàn)CAN總線的“點(diǎn)對(duì)點(diǎn)”“一點(diǎn)對(duì)多點(diǎn)(廣播)”的數(shù)據(jù)通信方式。例如,汽車駕駛員側(cè)的中央玻璃升降開關(guān),可以分別控制4個(gè)車門的玻璃升降電機(jī),屬于“點(diǎn)對(duì)點(diǎn)”通信方式;而中控門鎖開關(guān),可以同時(shí)控制4個(gè)車門的閉鎖器,屬于“一點(diǎn)對(duì)多點(diǎn)(廣播)”通信方式。
1.4 CAN總線中H和L的本質(zhì)含義及應(yīng)用
在汽車CAN總線故障檢修中,常借助示波器檢測(cè)CAN波形進(jìn)行CAN線路故障診斷,但實(shí)踐證明,對(duì)汽車維修工而言,很難區(qū)分波形中的CAN-H和CAN-L。究其原因,現(xiàn)在的汽車CAN總線教材基本都是提示讀者牢牢記住CAN總線的正常電壓值,以此為參考去判斷CAN線路故障,但現(xiàn)實(shí)情況是很多維修工不容易記住CAN總線的電壓值,這就增加了他們對(duì)CAN總線的故障診斷難度。
為了解決上述問題,在此建議教材中給出CAN-H和CAN-L中“H”和“L”的本質(zhì)含義?!癏”和“L”代表的不是“高”和“低”的電壓值,而代表的是CAN波形在空閑狀態(tài)基礎(chǔ)上跳動(dòng)的方向,“H”代表“向上”跳動(dòng),“L”代表“向下”跳動(dòng)。例如,在圖3所示的CAN波形中,上面的波形是在空閑狀態(tài)基礎(chǔ)上向上跳動(dòng),因此為CAN-H的波形;而下面的波形是在空閑狀態(tài)基礎(chǔ)上向下跳動(dòng),因此為CAN-L的波形[3-4]。
2 結(jié)語(yǔ)
本文針對(duì)汽車“CAN總線技術(shù)”原理深?yuàn)W、難懂、難教、難學(xué)的問題,對(duì)“CAN總線技術(shù)”原理中的重難點(diǎn)進(jìn)行了剖析。建議汽車“CAN總線技術(shù)”教材靈活利用“類比法”“擬人法”等通俗易懂的方式描述“CAN總線技術(shù)”原理,以降低其教學(xué)難度和學(xué)習(xí)難度,提高教材的使用效果。
[參考文獻(xiàn)]
[1]王宜懷.嵌入式技術(shù)基礎(chǔ)與實(shí)踐[M].北京:清華大學(xué)出版社,2017.
[2]饒運(yùn)濤.現(xiàn)場(chǎng)總線CAN原理與應(yīng)用技術(shù)[M].北京:北京航空航天大學(xué)出版社,2007.
[3]龍超.汽車CAN總線技術(shù)及其檢測(cè)維修探討[J].中國(guó)設(shè)備工程,2018(19):129-130.
[4]韋志魁,韓小偉.汽車總線技術(shù)分析[J].內(nèi)燃機(jī)與配件,2018(9):89-90.