- 汽車車載網絡技術詳解(第3版)
- 劉春暉 劉光曉主編
- 9117字
- 2020-08-07 16:31:02
第二章 CAN總線傳輸系統(tǒng)
第一節(jié) CAN總線的工作原理
如圖2-1所示,CAN(Controller Area Network)即控制器局域網絡。由于其高性能、高可靠性及獨特的設計,CAN越來越受到人們的重視。CAN最初是由德國博世公司為汽車監(jiān)測、控制系統(tǒng)而設計的。現代汽車越來越多地采用電子裝置控制,如發(fā)動機定時、噴油控制、驅動防滑控制(ASC)及復雜的防抱死制動系統(tǒng)(ABS)等。由于這些控制需要實時檢測及交換大量數據,采用硬接信號線的方式不但煩瑣、昂貴,而且難以解決問題。采用CAN總線,上述問題便可以得到很好的解決。1993年,CAN成為國際標準ISO11898(高速應用)和ISO11519(低速應用)。CAN的規(guī)范從CAN1.2規(guī)范(標準格式)發(fā)展為兼容CAN1.2規(guī)范的CAN2.0規(guī)范(CAN2.0A為標準格式,CAN2.0B為擴展格式),目前應用的CAN器件大都符合CAN2.0規(guī)范。

圖2-1 CAN的標志
一、CAN總線的發(fā)展歷史
CAN總線傳輸協(xié)議是在1983~1986年由博世和英特爾兩家公司聯(lián)合開發(fā)的。20世紀80年代,博世的工程人員開始研究應用于汽車的串行總線系統(tǒng)。參加研究的還有奔馳公司、英特爾公司以及德國兩所大學的教授。1986年,博世在SAE大會上提出了CAN。1987年,英特爾推出了第一片CAN控制芯片——82526;隨后飛利浦公司推出了82C200。1990年,CAN總線首次應用于一輛梅賽德斯-奔馳S級12缸發(fā)動機的轎車上。1992年,奧迪A8 3.7L(V8發(fā)動機)車型上開始應用CAN總線。1993年,CAN的國際標準ISO11898公布。從此CAN協(xié)議被廣泛應用于各類自動化控制領域。1992年,CIA(CAN in Automation)用戶組織成立,制定了第一個CAN應用層“CAL”。1994年,國際CAN學術年會(ICC)啟動。同年,美國SAE以CAN為基礎制定了SAEJ1939標準,用于貨車和客車控制和通信網絡。1997年,大眾公司在帕薩特的舒適系統(tǒng)上采用了傳送速率為62.5kbit/s的CAN總線。1998年,又在帕薩特和高爾夫的驅動系統(tǒng)上增加了CAN總線,傳送速率為500kbit/s。2000年,大眾公司在帕薩特和高爾夫上使用了帶有網關的第二代CAN總線。2001年,大眾公司提高了CAN總線的設計標準,將舒適系統(tǒng)CAN總線提高到100kbit/s,驅動系統(tǒng)提高到500kbit/s。2002平臺上使用了帶有車載網絡控制單元的第三代CAN總線。2003年,大眾集團在新PQ35平臺上使用五重結構的CAN總線系統(tǒng),并且出現了單線的LIN總線。
到今天,幾乎每一輛歐洲生產的轎車上都有CAN總線;高級客車上有兩套CAN總線,通過網關互聯(lián);僅1999年就有近6千萬個CAN控制器投入使用;2000年,市場上銷售了1億多個CAN的芯片;2001年,用在汽車上的CAN節(jié)點數目超過1億個。但是在轎車上基于CAN的控制網絡至今仍是各大公司自成系統(tǒng),沒有一個統(tǒng)一的標準。基于CAN的應用層協(xié)議通常有兩種:Device Net(適合于工廠底層自動化)和CAN open(適合于機械控制的嵌入式應用)。任何組織或個人都可以從Device Net供貨商協(xié)會(ODVA)獲得Device Net規(guī)范。購買者將得到無限制的、免費的開發(fā)Device Net產品的授權。Device Net自2002年被確立為我國國家標準以來,已在冶金、電力、水處理、乳品飲料、煙草、水泥、石化、礦山等各個行業(yè)得到成功應用,其低成本和高可靠性已經得到廣泛認同。
二、CAN總線的特點
CAN總線是一種串行數據通信協(xié)議,其通信接口中集成了CAN協(xié)議的物理層和數據鏈路層功能,可完成對通信數據的幀處理,包括位填充、數據塊編碼、循環(huán)冗余檢驗、優(yōu)先級判別等項工作。CAN總線的特點如下:
1)可以多主方式工作。網絡上任意一個節(jié)點均可以在任意時刻主動地向網絡上的其他節(jié)點發(fā)送信息,而不分主從,通信方式靈活。CAN總線系統(tǒng)上并聯(lián)多個元件,如果某一控制單元出現故障,其余系統(tǒng)應盡可能保持原有功能,以便進行信息交換,保證汽車正常工作。
2)網絡上的節(jié)點(信息)可分成不同的優(yōu)先級,可以滿足不同的實時要求。
3)采用非破壞性位仲裁總線結構機制。當兩個節(jié)點同時向網絡上傳送信息時,優(yōu)先級低的節(jié)點主動停止數據發(fā)送,而優(yōu)先級高的節(jié)點可不受影響地繼續(xù)傳輸數據。
4)可以點對點、一點對多點(成組)及全局廣播幾種傳送方式接收數據。
5)直接通信距離最遠可達10km(速率5kbit/s以下)。
6)數據傳輸快,通信速率最高可達1Mbit/s(此時距離最長40m),滿足網絡中各元件之間數據交換的實時要求。
7)數據密度大,節(jié)點數實際可達110個。所有控制單元在任一瞬時的信息狀態(tài)均相同,這樣就使得兩控制單元之間不會有數據偏差。如果系統(tǒng)的某一處有故障,那么總線上所有連接的元件都會得到通知。
8)采用短幀結構,每一幀的有效字節(jié)數為8個。
9)每幀信息都有CRC校驗及其他檢錯措施,數據出錯率極低。即使有傳輸故障,無論是由內部因素引起的還是外部因素引起的,都能準確識別出來,可靠性高。
10)通信介質可采用雙絞線、同軸電纜和光導纖維。一般采用廉價的雙絞線即可,無特殊要求。
11)節(jié)點具有在錯誤嚴重時自動關閉總線的功能,它可以切斷故障點與總線的聯(lián)系,使總線上的其他節(jié)點不受影響。
三、CAN總線傳輸速率及自診斷功能
1.CAN總線的傳輸速率
目前,CAN總線系統(tǒng)中的信號是采用數字方式經銅導線傳輸的,其最大穩(wěn)定傳輸速率可達1000kbit/s(1Mbit/s)。大眾和奧迪公司將最大標準傳輸速率規(guī)定為500kbit/s。
考慮到信號的重復率及產生出的數據量,CAN總線系統(tǒng)分為3個專門的系統(tǒng),見表2-1。
表2-1 CAN總線系統(tǒng)的分類

2.CAN總線的自診斷功能
CAN總線是車內電子裝置中的一個獨立系統(tǒng),從本質上講,CAN總線就是數據傳輸線路,用于在控制單元之間進行信息交換。由于自身的布置和結構特點,CAN總線工作時的可靠性很高。如果CAN總線系統(tǒng)出現故障,故障就會存入相應的控制單元故障存儲器內,可以用診斷儀讀出這些故障。
1)控制單元具有自診斷功能,通過自診斷功能還可識別出與CAN總線相關的故障。
2)用診斷儀(如VAS505、VAS5052、GT1等)讀出CAN總線故障記錄之后,即可按這些提示信息快速、準確地查尋并排除故障。
3)控制單元內的故障記錄用于初步確定故障,還可用于讀出排除故障后的無故障說明,即確認故障已經被排除。如果想要更新故障顯示內容,必須重新起動發(fā)動機。
4)CAN總線正常工作的前提條件是車輛在任何工況均不應有CAN總線故障記錄。
四、CAN總線系統(tǒng)的組成
CAN數據總線系統(tǒng)由電控單元(ECU)、傳輸介質雙絞線和終端電阻組成,如圖2-2所示。

圖2-2 CAN總線系統(tǒng)的組成
1.電控單元(ECU)
CAN總線連接的電控單元(ECU)又稱CAN總線上的節(jié)點。理論上CAN總線可以連接無窮多個節(jié)點,實際上受線路越長、傳輸速率越低的限制,車載CAN總線的節(jié)點數可達上百個。
CAN總線上的每個電控單元(ECU)獨立完成網絡數據交換和測控任務,如發(fā)動機電控單元(ECU)、自動變速器電控單元(ECU)、ABS電控單元(ECU)等。CAN總線上的電控單元(ECU)與非網絡電控單元(ECU)不同,非網絡電控單元(ECU)不需要對外進行數據交換;而網絡上的電控單元(ECU)之間需要數據交換,例如發(fā)動機電控單元(ECU)中的發(fā)動機轉速數據除了控制發(fā)動機的工況需要外,還需要經CAN總線傳輸給自動變速器電控單元(ECU),供自動變速器自動換檔控制使用;反過來,自動變速器的換檔信號也要經CAN總線傳輸給電控單元(ECU),使發(fā)動機的工況適合自動變速器的換檔要求。
圖2-3所示為CAN總線電控單元的原理圖,CAN總線電控單元由輸入電路、輸出電路、單片機、CAN控制器、光電隔離電路、CAN收發(fā)器組成,分述如下:

圖2-3 CAN總線電控單元的原理圖
(1)輸入電路 輸入電路用來接收來自傳感器和控制開關的輸入信號,并將輸入信號轉換為單片機可接收的數字信號。如果輸入信號是模擬信號,那么輸入電路里還含有模/數轉換電路(A/D轉換),將模擬信號轉為數字信號。如冷卻液溫度傳感器的信號是模擬信號,需經A/D轉換電路轉換為數字信號。
(2)輸出電路 輸出電路將單片機輸出的控制信號轉換成能驅動執(zhí)行器的功率信號,因此輸出電路包括放大驅動電路。因為大部分執(zhí)行器是模擬執(zhí)行器,所以首先要將單片機輸出的數字信號經數/模轉換電路(D/A轉換)轉換為模擬信號。
(3)單片機 單片機在工業(yè)控制技術中也常稱為微控制器。目前,汽車電控單元使用的單片機是汽車專用增強型單片機,是針對汽車較為復雜的振動、高溫、低溫和惡劣的電磁環(huán)境而設計的。有的汽車單片機芯片內已包含A/D轉換、D/A轉換和其他專用電路,有的甚至將CAN控制器也合成在一起。
(4)CAN控制器 獨立的CAN控制器是基于單片機控制的、專用于執(zhí)行CAN總線通信協(xié)議的獨立數字集成電路芯片。也有將單片機與CAN控制器合成的芯片,也稱為CAN控制器。圖2-4所示為一獨立的CAN控制器的原理圖。CAN控制器的各部分組成及功能見表2-2。

圖2-4 CAN控制器的原理圖
表2-2 CAN控制器的各部分組成及功能

(5)光電隔離電路 以光為媒介傳送信號,對輸入和輸出電路進行電氣隔離,因而能有效地抑制系統(tǒng)噪聲,消除接地回路的干擾,有響應速度較快、壽命長、體積小、耐沖擊等優(yōu)點。
(6)CAN收發(fā)器 由CAN接收器、CAN發(fā)送器和差分轉換處理電路組成。圖2-5所示為CAN收發(fā)器轉換信號的示意圖。

圖2-5 CAN收發(fā)器轉換信號的示意圖
單片機的數據信號為正邏輯信號,經CAN發(fā)送器中的差分放大器轉換為雙向的差分信號傳送到總線上。差分信號以負邏輯信號形式表示數據。
以高速CAN總線為例,當單向脈沖信號為“0”,并且代表邏輯“0”時,差分信號的高電平信號用CAN-High表示,電壓為3.5V;低電平信號用CAN-Low表示,電壓為1.5V;差分電壓為2V,此時總線的狀態(tài)為“顯性位”,“顯性位”代表邏輯“0”。當單向脈沖信號為“1”時,并且代表邏輯“1”時,差分信號的高電平信號和低電平信號均為2.5V;差分電壓為0V,此時總線的狀態(tài)為“隱性位”,“隱性位”代表邏輯“1”。
CAN-High信號和CAN-Low信號分別輸出到CAN總線上,即雙絞線上。接高電平信號的線對應稱為CAN-High線,接低電平信號的線對應稱為CAN-Low線。
CAN接收器是差分式接收放大器,可將CAN總線上雙向的差分信號轉變?yōu)閱蜗虻拿}沖信號。CAN收發(fā)器在不發(fā)送信號時就處于接收狀態(tài)。
CAN總線在任意時刻只能處于一種狀態(tài),要么是“隱性位”,要么是“顯性位”。圖2-6所示是用示波器在CAN總線測得的電壓波形。
2.CAN數據傳輸線
汽車上CAN數據傳輸線大都是雙絞線,分為CAN高電平數據線和低電平數據線,即CAN-High線和CAN-Low線。這種結構使系統(tǒng)能夠同時讀寫總線。數據使用差分電壓傳送,差分的電壓使CAN數據總線系統(tǒng)即使在一條數據線斷開或者在噪聲極大的環(huán)境中也能夠工作。車輛在使用過程中,電火花、電磁線圈開關、移動電話和發(fā)送站等發(fā)出的電磁波都會影響或破壞CAN的數據傳送。為了防止數據在傳送時受到干擾,兩條數據傳輸線纏繞在一起,如圖2-7所示,這樣也可以防止數據線所產生的輻射噪聲。這兩條線的電位相反,如果一根數據線上的電壓約為0V,那么另一根線上的電壓就約為5V,這樣,兩根線的總電壓保持為一個常數,而且所產生的電磁效應也會由于極性相反而互相抵消,使向外輻射保持中性(即無輻射)。

圖2-6 用示波器在CAN總線測得的電壓波形

圖2-7 纏繞在一起的雙絞線
3.CAN終端電阻
CAN兩端都接一個120Ω的電阻器,即連接在雙絞線的兩端,終端電阻可防止信號在傳輸線終端被反射并以回波的形式返回,影響數據的正確傳送。
五、CAN總線的數據傳輸
1.CAN總線的廣播式傳輸
CAN數據總線在發(fā)送信息時,每個控制單元均可接收其他控制單元發(fā)送出的信息。在通信技術領域,也把該原理稱為廣播(圖2-8),就像一個廣播電臺發(fā)送廣播節(jié)目一樣,每個廣播網范圍內的用戶(收音機)均可接收。這種廣播方式可以使得連接的所有控制單元總是處于相同的信息狀態(tài)。

圖2-8 廣播原理
數據傳輸總線中的數據傳遞又類似于一個電話會議。一個電話用戶(控制單元)將數據“講”入網絡中,其他用戶通過網絡“接聽”這個數據,對這個數據感興趣的用戶就會利用數據,而其他用戶則選擇忽略,如圖2-9所示。
數據傳輸總線是車內電子裝置中的一個獨立系統(tǒng),用于在連接的控制單元之間進行信息交換。由于自身的布置和結構特點,數據傳輸總線工作時的可靠性很高。
如果數據傳輸總線系統(tǒng)出現故障,故障就會存入相應的控制單元故障存儲器內,可以用診斷儀讀出這些故障。控制單元擁有自診斷功能,通過自診斷功能,人們還可識別出與數據傳輸總線相關的故障。用診斷儀讀出數據傳輸總線故障記錄后,即可按這些信息準確地查尋故障。控制單元內的故障記錄用于初步確定故障,還可用于讀出排除故障后的無故障說明。數據傳輸總線正常的一個重要前提條件是:在任何工況均不應有數據傳輸總線故障記錄。為了能夠確定及排除故障,需要了解數據傳輸總線上的數據交換基本原理。

圖2-9 電話會議
基本車載網絡系統(tǒng)由多個控制單元組成,這些控制單元通過所謂的收發(fā)器(發(fā)射—接收放大器)并聯(lián)在總線導線上,所有控制單元的地位均相同,沒有哪個控制單元有特權,如圖2-10所示。在這個意義上也稱為多主機結構。信息交換是按順序連續(xù)完成的。
原則上數據傳輸總線用一條導線就足以滿足功能要求了,但通常總線系統(tǒng)上還是配備了第二條導線(通用別克等車型采用單線傳輸)。第二條導線上的傳輸信號與第一條導線上的傳輸信號成鏡像關系,這樣可有效抑制外部干擾。

圖2-10 基本車載網絡系統(tǒng)的總線連接示意圖
2.CAN總線系統(tǒng)防干擾措施及原理
汽車在使用過程中,電火花、電磁開關、移動電話和發(fā)送站、電焊機等電磁設備發(fā)出的電磁波都會影響或破壞CAN的數據傳送。為了防止數據在傳送時受到干擾,CAN總線采用較多的防干擾措施。
(1)雙絞線的抗外電磁干擾作用 圖2-11所示為雙絞線抗外電磁干擾原理圖。圖2-11a所示為雙平行線易受電磁波干擾的示意圖,根據電磁感應定律和右手定則,雙平行線和兩端的通信設備構成一個空間閉合回路和導線閉合回路,穿過雙平行線的磁感應線可在回路中形成方向一致的干擾性感應電流,對有用信號形成干擾。
圖2-11b所示為雙絞線抗電磁波干擾的示意圖,雙絞線與兩端的通信設備雖然構成一個大的導線閉合回路,但由于雙絞線是雙線扭絞而成,在空間上構成一個一個的小閉合回路,穿過雙絞線的磁感應線在相鄰的兩個“絞孔”的空間上雖然感應電動勢方向相同,但在同一根導線上的感應電動勢方向方卻是相反的,因此,起著抵消的作用。

圖2-11 雙絞線抗外電磁干擾原理圖
a)雙平行線 b)雙絞線
(2)差分信號和差分式接收器的抗干擾作用CAN發(fā)送器發(fā)送的數據信號是差分信號,CAN接收器是差分式接收器(差分又稱差動),它們的結合起著很好的抗干擾作用。圖2-12所示是差分信號和差分式接收器的抗干擾示意圖。為了方便說明,以分立元器件組成的差分放大電路為例(集成電路的原理相同)。

圖2-12 差分信號和差分式接收器的抗干擾示意圖
圖2-12中差分放大電路由NPN型晶體管VT1、VT2,集電極電阻RC1、RC2,基極電阻RB1、RB2,發(fā)射極電阻RE1、RE2組成。受干擾的雙向差分信號從差分放大電路左端輸入,由于一級放大具有反向作用,所以將高電平信號輸入差分放大電路的下端,將低電平信號輸入差分放大電路的上端。輸入信號電壓ui=uiH-uiL,當受電磁干擾時,高電平信號和低電平信號的電位同時變化(輸入信號的電位差ui不變),經差分放大電路放大,輸出電壓uO1和uO2也同時變化,結果使輸出信號電壓uO=uO1-uO2不變,使輸出的單向脈沖信號與不受電磁干擾的信號相同,達到抗干擾的目的。
由于CAN總線上的數字信號是10101(負邏輯),差分放大電路輸出的單向脈沖信號是01010,與CAN總線上的數字信號邏輯關系相反,所以要經反相器反相,才能得到與CAN總線邏輯關系一致的數據信號10101(正邏輯)。
(3)其他防干擾措施 除以上防干擾措施外,還有光電隔離電路和軟件處理等措施。
六、CAN總線的數據類型
CAN總線所傳輸的數據又稱為報文,是一幀一幀地傳送,每幀數據由一組二進制數或數字脈沖組成,這組二進制數按功能又分為一段一段的,每一段稱為幀的域或場。
CAN總線所傳輸的數據有數據幀、遠程幀、錯誤幀和過載幀4種類型。
CAN的幀有兩種不同的幀格式,不同之處為識別符的長度不同:具有11位識別符的幀稱為標準幀,而含有29位識別符的幀為擴展幀。
1.數據幀
數據幀的功能是將數據從發(fā)送器傳到接收器。數據幀由開始域、仲裁域、控制域、數據域、安全域、應答域和結束域7個不同的域組成,如圖2-13所示。
(1)開始域 標志數據幀的起始,僅由一個“顯性”(即0)位組成,帶有約5V的電壓的1位被送入CAN高位傳輸線,帶有約0V電壓的1位被送入CAN低位傳輸線。開始域由控制芯片完成。
(2)仲裁域 仲裁域包括標識符和遠程發(fā)送請求位(RTR)。識別符代表數據的身份和優(yōu)先權,標準格式下標識符的長度為11位,這些位按ID.10~ID.0的順序發(fā)送,最低位是ID.0。7個高位(ID.10~ID.4)必須不能全是“隱性”。在標準幀里,識別符后是遠程發(fā)送請求位(RTR),該位若為“顯性”(即0),代表發(fā)送的信息是數據;若為“隱性”(即1),代表發(fā)送的信息是數據請求。

圖2-13 數據幀的組成
只要總線空閑,各控制單元均可向總線發(fā)送數據,如果各個控制單元要同時發(fā)送各自的數據,那么系統(tǒng)必須決定哪一個控制單元先進行發(fā)送。系統(tǒng)規(guī)定具有最高優(yōu)先權的數據先發(fā)送,標識符的二進制值越小,其優(yōu)先權就越高。不同數據的優(yōu)先權根據數據的重要性和緊迫性等因素由人為編程時確定。
例如,發(fā)動機電控單元、ABS電控單元和自動變速器電控單元相比較,制動信號的優(yōu)先權最高,三者仲裁域的標識符如下:
0 1 0 1 000 0000(發(fā)動機電控單元標識符)
00 1 1 0 1 0 0000(ABS電控單元標識符)
1 00 0 1 00 0000(自動變速器電控單元標識符)
可以看出,ABS電控單元的標識符數值設定得最小,優(yōu)先權最高;自動變速器電控單元標識符數值最大,優(yōu)先權最低;發(fā)動機電控單元標識符數值居中。當以上三個電控單元同時向總線發(fā)送數據時,系統(tǒng)就先發(fā)送ABS電控單元發(fā)送的數據,此時,發(fā)動機電控單元和自動變速器電控單元轉化為接收器接收數據。總線一旦空閑,系統(tǒng)會發(fā)送其他電控單元的數據。
(3)控制域 控制域由6個位組成,其中4位是數據長度代碼,即數據的字節(jié)數量,另兩位作為擴展用的保留位。所發(fā)送的保留位必須“顯性”。控制域供接收器檢查是否已經接收到所傳來的所有信息。接收器接收和認可所有由“顯性”和“隱性”的任意組合在一起的位。
數據長度代碼見表2-3。其中,DLC3~DLC0代表數據長度代碼的位,DLC0是最低位,DLC3是最高位。數據長度代碼最大為8,表示數據幀允許的數據長度為0~8字節(jié)。
表中“0”為“顯性”,“1”為“隱性”。
(4)數據域 數據域由數據幀發(fā)送的數據組成,可以為0~8個字節(jié),每字節(jié)包含了8個位,所以數據幀最大為64位。數據域是如何表示數據的呢?例如,要表達節(jié)氣門開度信號,假如把節(jié)氣門的開度按最大開度的百分數表示,每10%為一個等級,那么節(jié)氣門開度信號在數據域的代碼見表2-4。其中,“0%”表示節(jié)氣門關閉,發(fā)動機處于怠速狀態(tài),“100%”表示節(jié)氣門全開,發(fā)動機處于全負荷狀態(tài)。
表2-3 數據長度代碼

表2-4 4個位表示的節(jié)氣門開度

同理,可以用更多的位表示更精確的節(jié)氣門開度變化,如8個位可表示256個節(jié)氣門開度位置變化。對更復雜的數據,如果1個字節(jié)不夠表示,可以用2個字節(jié)或多個字節(jié)表示,但不能超過8個字節(jié)。
(5)安全域 安全域用來檢測傳遞數據中的錯誤。CAN系統(tǒng)用于電噪聲很大的環(huán)境,這個環(huán)境中的數據最容易丟失或破壞。CAN協(xié)議提供了5種錯誤檢測和修正的方法,因此如果數據被破壞,能夠被檢測出來,而且網絡中的所有的電控單元都會忽略這個數據。這5種錯誤檢測類型分別為位錯誤、填充錯誤、校驗(CRC)錯誤、形式錯誤和應答錯誤。
1)位錯誤:各控制單元在發(fā)送位的同時也對總線進行監(jiān)視。如果所發(fā)送的位值與所監(jiān)視的位值不相符合,則在此位時間里檢測到一個位錯誤。
2)填充錯誤:如果在使用位填充法進行編碼的信息中,出現了第6個連續(xù)相同的位電平時,將檢測到一個填充錯誤。
3)校驗錯誤:校驗序列包括發(fā)送器的校驗計算結果,接收器計算校驗的方法與發(fā)送器相同。如果接收器的計算結果與接收到校驗序列的結果不相符,則檢測到一個校驗錯誤。
4)形式錯誤:當一個固定形式的域含有一個或多個非法位,則檢測到一個形式錯誤。
5)應答錯誤:只要在應答間隙期間所監(jiān)視的位不為“顯性”,則發(fā)送器會檢測到一個應答錯誤。
(6)應答域 應答域用來反映接收器通知發(fā)送器是否已經正確接收到數據。當接收器正確地接收到有效的數據,接收器就會在應答間隙期間內向發(fā)送器發(fā)送一個“顯性”位以應答,而應答界定符始終是“隱性”位。
如果檢查到錯誤,接收器立即通知發(fā)送器,然后發(fā)送器再發(fā)送一次數據,直到該數據被準確接收為止,但從檢測出錯誤到下一數據的傳送開始為止,發(fā)送時間最多為29個位的時間。
應答域長度為2個位,包含應答間隙和應答界定符,常態(tài)下發(fā)送兩個“隱性”位。
(7)結束域 結束域標志著數據報告結束,由7個“隱性”位組成。這是顯示錯誤并重復發(fā)送數據的最后一次機會。
2.遠程幀
CAN總線上電控單元的數據發(fā)布,有以下兩種基本形式。
第一種形式是按設定或需要主動發(fā)布。例如制動信號,當踩制動踏板時ABS電控單元就會主動發(fā)布,發(fā)動機電控單元接收后就會立即調控發(fā)動機轉速由高速降為低速。
第二種形式是受請求后發(fā)布。例如A電控單元需要B電控單元的數據,A電控單元先發(fā)布請求信號,這個請求信號的數據形式就是遠程幀。CAN總線上的所有電控單元都可接收到這個遠程幀,并對遠程幀中的標識符進行識別,需要則接收,不需要則不處理。在對各電控單元編程時,已設定B電控單元接收這個遠程幀,并隨即發(fā)布A電控單元所需要的數據。
例如,自動變速器在自動換檔決策前,根據程序要求需要發(fā)動機的轉速數據,以便確定最佳換檔工況,那么自動變速器電控單元要先發(fā)布遠程幀,請求發(fā)動機電控單元發(fā)布發(fā)動機的轉速數據,發(fā)動機電控單元收到這個遠程幀的請求后,隨即發(fā)布發(fā)動機的即時轉速數據,自動變速器電控單元收到發(fā)動機的轉速數據后,再決定是否換檔或等待發(fā)動機的轉速達到一定數值后再換檔。
遠程幀由開始域、仲裁域、控制域、安全域、應答域和結束域6個不同的域組成。與數據幀相反,遠程幀的遠程發(fā)送請求位(RTR位)是“隱性”的(即邏輯“1”)。它沒有數據域,數據長度代碼的數值是不受制約的(可以標注為容許范圍內0~8的任何數值)。其余域功能同數據幀。
3.錯誤幀
任何電控單元檢測到總線錯誤就發(fā)出錯誤幀。錯誤幀的功能是對所發(fā)送的數據進行錯誤檢測、錯誤標定及錯誤自檢。錯誤幀由兩個不同的域組成:第一個域為不同控制單元提供錯誤標志的疊加,第二個域是錯誤界定符。
(1)錯誤標志 錯誤標志包括主動錯誤標志和被動錯誤標志兩種形式。主動錯誤標志由6個連續(xù)顯性位組成,檢測到錯誤條件的“錯誤主動”控制單元通過發(fā)送主動錯誤標志以指示錯誤。被動錯誤標志由6個連續(xù)隱性位組成,除非被其他CAN控制器的顯性位改寫,檢測到錯誤條件的“錯誤被動”控制單元通過發(fā)送被動錯誤標志以指示錯誤。
(2)錯誤界定 錯誤界定符由8個隱性位組成。傳送了錯誤標志以后,每一節(jié)點就發(fā)送一個隱性位,并一直監(jiān)視總線直到檢測出一個隱性位為止,然后就開始發(fā)送其余7個隱性位。
4.過載幀
過載幀用以在先行的和后續(xù)的數據幀(或遠程幀)之間提供一附加的延時。接收器在電路尚未準備好或在間歇域期間檢測到一個“顯性”位時,會發(fā)送過載幀,以延遲數據的傳送。過載幀包括過載標志和過載界定符兩個域。
5.幀間空間
數據幀或遠程幀與其前面幀的隔離是通過幀間空間實現的,無論其前面的幀為何類型。所不同的是過載幀與錯誤幀之前沒有幀間空間,多個過載幀之間也不是由幀間空間隔離的。幀間空間包括間歇域和總線空閑域。
總線空閑域的長度是任意的。只要總線被認定為空閑,等待發(fā)送信息的控制單元就會訪問總線。