20世紀80年代以來(lái),隨著(zhù)集成電路和單片機在 汽車(chē)上的廣泛應用,汽車(chē)上的電子控制單元越來(lái)越多,例如電子燃油噴射裝置、防抱死制動(dòng)裝置(ABS)、安全氣囊裝置、電控門(mén)窗裝置和主動(dòng)懸架等等。在這種情況下,如果仍采用常規的布線(xiàn)方式,即電線(xiàn)一端與開(kāi)關(guān)相接,另一端與用電設備相通,將導致車(chē)上電線(xiàn)數目的急劇增加,使得電線(xiàn)的質(zhì)量占整車(chē)質(zhì)量的4%左右。另外,電控系統的增加雖然提高了轎車(chē)的動(dòng)力性、經(jīng)濟性和舒適性,但隨之增加的復雜電路也降低了汽車(chē)的可靠性,增加了維修的難度。為此,改革汽車(chē)電氣技術(shù)的呼聲日益高漲。因此,一種新的概念——車(chē)用控制器局域網(wǎng)絡(luò )CAN應運而生。
CAN是控制器局域網(wǎng)絡(luò )(Controller Area Network)的簡(jiǎn)稱(chēng),它是由德國B(niǎo)osch公司及幾個(gè)半導體生產(chǎn)商開(kāi)發(fā)出來(lái)的,CAN總線(xiàn)是一種串行多主站控制器局域網(wǎng)總線(xiàn)。它具有很高的網(wǎng)絡(luò )安全性、通訊可靠性和實(shí)時(shí)性,而且簡(jiǎn)單實(shí)用,網(wǎng)絡(luò )成本低。特別適用于汽車(chē)計算機控制系統和環(huán)境溫度惡劣、電磁輻射強和振動(dòng)大的工業(yè)環(huán)境。
二、CAN總線(xiàn)的技術(shù)特點(diǎn)
CAN總線(xiàn)可有效支持分布式控制或實(shí)時(shí)控制。該總線(xiàn)的通信介質(zhì)可以是雙絞線(xiàn)、同軸電纜或光纖,其主要特點(diǎn)如下:
三、車(chē)身系統的CAN控制設計
1. CAN總線(xiàn)網(wǎng)絡(luò )系統架構
現代汽車(chē) target=_blank>現代汽車(chē)典刑的控制單元有發(fā)動(dòng)機控制模塊、變速器控制模塊、多媒體控制模塊、氣囊控制模塊、空調控制模塊、巡航控制模塊、車(chē)身控制模塊(包括照明指示和車(chē)窗、刮雨器等)、防抱死制動(dòng)系統(ABS)防滑控制系統(ASR)等。完善的汽車(chē)CAN總線(xiàn)網(wǎng)絡(luò )系統架構如圖1所示。
圖1 汽車(chē)CAN總線(xiàn)網(wǎng)絡(luò )系統架構
2. CAN節點(diǎn)的硬件架構
本系統中,CAN節點(diǎn)采用:
ECU(AT89C51)+CAN控制器(SJA1000)+CAN收發(fā)器(PCA82C250)的電路結構以下是其核心芯片簡(jiǎn)介:
(1)CAN控制器
為了系統進(jìn)一步擴展的需要,可選取支持CAN 2.0B通訊協(xié)議的芯片SJA1000。SJA1000是PHILIPS公司生產(chǎn)的既支持CAN 2.0B,又支持CAN 2.0A的CAN控制器,它與僅支持CAN 2.0A的CAN控制器PCA82C200在硬件和軟件上完全兼容。
(2)CAN收發(fā)器
PCA82C250是PHILIPS推出的CAN控制器和物理總線(xiàn)接口芯片,可提供對總線(xiàn)的差分發(fā)送和接收。它與ISO 11898標準完全兼容,并有高速、斜率控制和待機3種不同的工作方式,可根據實(shí)際情況選擇。
(3)單片機AT89C51
AT89C51是ATMEL公司的單片機。它是一種低功耗、高性能、內含4KB閃速存儲器的8位CMOS微控制器,與工業(yè)標準MCS-51指令系統和引腳完全兼容。AT89系列的優(yōu)越性在于其片內閃速存儲器可進(jìn)行1000次的編程與擦除,且數據不易丟失,數據可保存10年。
CAN總線(xiàn)控制器、總線(xiàn)驅動(dòng)器和單片機連接基本方法如圖2所示。
圖2 CAN總線(xiàn)控制器、總線(xiàn)驅動(dòng)器和單片機連接圖
三、車(chē)身控制模塊中的CAN應用層協(xié)議
1. 協(xié)議原則
本協(xié)議遵循CAN2.0B規范,根據車(chē)身控制模塊的特點(diǎn),采用源→目的方法,每個(gè)節點(diǎn)都有自己固定的標識地址,且節點(diǎn)數小于64,設計時(shí)可將中央控制模塊設為主節點(diǎn),而將車(chē)門(mén)、電動(dòng)座椅子模塊及自檢子模塊設置為從節點(diǎn)。本協(xié)議可完成以下功能:
(1)特定信息的廣播;
(2)主從節點(diǎn)之間的連接;
(3)主從節點(diǎn)之間的信息交換(包括故障信息)。
本協(xié)議采用幀優(yōu)先原則分配標識符,每一幀標識符中的高四位表示幀類(lèi)型,不同幀類(lèi)型有不同的優(yōu)先權,優(yōu)先權決定了各種信息幀在同等情況下的發(fā)送順序,協(xié)議中的29位標識符的分配如下:
幀類(lèi)型(4位)+目的地址(6位)+源地址(6位)+命令(或狀態(tài)、報告)屬性(13位)[或數據屬性+分段標志+分段號(共13位)]。
對所有的命令或狀態(tài)、數據、報告屬性、除定時(shí)采集發(fā)送的數據外,原則上均需應答(發(fā)送確認幀以保證通訊正常)。
2. 幀格式仲裁場(chǎng)和控制場(chǎng)定義
仲裁場(chǎng)由29位標識符ID28-ID0以及SRR、IDE和RTR組成,SJA1000中的寄存器17-21用來(lái)存放擴展幀格式幀信息的標識符。發(fā)送時(shí),SRR=1,IDE=1,RTR=1/0(遠程幀/數據幀)。標識符中的ID28-ID25為車(chē)身控制模塊交換報文的幀類(lèi)型(共4位)。ID24-ID19為車(chē)身控制模塊中幀信息使用者的地址(或稱(chēng)為目的地址,共6位)。ID18-ID13為車(chē)身控制模塊中幀信息發(fā)送者的地址或稱(chēng)為源地址(共6位)。ID12-ID5為車(chē)身控制模塊中交換的命令、狀態(tài)、數據或報告屬性(共8位),ID4位需附加命令或狀態(tài)、數據、報告屬性時(shí)的分段標志。ID3-ID0為附加命令或狀態(tài)、數據、報告屬性的分段號(共4位)。當ID4=0時(shí),ID3-ID0控制場(chǎng)、數據寄存器0-7有效。對于遠程幀,則可忽略ID4-ID0以及控制場(chǎng)的值。SJA1000的寄存器16低四位DLC3-DLC0可構成控制場(chǎng),以決定數據幀的數據長(cháng)度。
3. 車(chē)身控制模塊CAN2.0B通訊報文約定
按車(chē)身控制模塊的節點(diǎn)要求,通訊的信息幀分為表1所列的6種,表1中的優(yōu)先級按序號從高到低排列。其目的地址和源地址的分配見(jiàn)表2所列。
表1 車(chē)身控制模塊幀模型
表2 車(chē)身控制模塊各節點(diǎn)地址分配
其工作方式如下:
(1)開(kāi)機后或喚醒時(shí),從節點(diǎn)向主節點(diǎn)發(fā)送狀態(tài)信息,主節點(diǎn)發(fā)送廣播信息遠程幀(兩次),廣播信息為共用信息,包括車(chē)速信號,檔位信號,點(diǎn)火開(kāi)關(guān)位置信號等。
(2)正常情況下,從節點(diǎn)內部巡查各端口狀態(tài),如有故障則向主節點(diǎn)發(fā)送故障代碼3次,主節點(diǎn)收到三次故障報警后開(kāi)始響應,從節點(diǎn)停止發(fā)送,一旦故障消失,再向主節點(diǎn)發(fā)送正常信息。在主節點(diǎn)中應有一故障表,以用于已診斷模塊的通訊。
(3)主結點(diǎn)分別發(fā)送自檢信息后,如各從節點(diǎn)正常,則發(fā)送正常信息,狀態(tài)和數據幀。如有故障,則通過(guò)分段數據幀發(fā)送故障報警幀。
(4)從節點(diǎn)監測到正常輸入信號的變化(包括開(kāi)關(guān)量和模擬量采樣級數的變化)后,便通過(guò)報告幀發(fā)送信息給主節點(diǎn),主節點(diǎn)則發(fā)送命令幀以示響應。
4. 通訊報文定義
表3所列是中央控制模塊與診斷模塊的通訊報文定義。表中,aaaa為分段號,可在故障代碼多于8個(gè)時(shí)設置,最多可達傳送16×8個(gè)字節代碼;bbbbbb為各傳感器代號,其響應幀采用不分段的數據幀,cccccccc為執行相應動(dòng)作的代碼,如車(chē)窗上升為00000001,下降為00000010,該響應最多可以執行256個(gè)動(dòng)作。響應幀采用遠程幀,請求幀為遠程幀。
表3 中央控制模塊與診斷模塊通訊
表4 正常工作時(shí)各節點(diǎn)通訊協(xié)議約定
在系統正常工作時(shí),各節點(diǎn)的通訊協(xié)議約定如表4所列。表中的dddd為分段起始命令中包含的總段數;eeee為廣播信息的某一段號,控制場(chǎng)中的數據長(cháng)度為該段內的數據長(cháng)度,數據場(chǎng)中的數據廣播的某段實(shí)際數據,按順序定義數據有:
數據寄存器1=車(chē)速信息高8位; 數據寄存器2=車(chē)速信號低8位; 數據寄存器3=發(fā)動(dòng)機轉速信號高8位; 數據寄存器4=發(fā)動(dòng)機轉速信號低8位; 數據寄存器5=點(diǎn)火開(kāi)關(guān)位置,其中,0表示鑰匙拔出;1表示鑰匙位于OFF;2表示鑰匙位于A(yíng)CC;3表示鑰匙位于RUN;4表示鑰匙位于START; 數據寄存器6=檔位信號,0表示空檔;1表示驅動(dòng)檔;2表示驅動(dòng)檔;3表示倒檔;4表示駐車(chē)檔; 數據寄存器7=遙控信號,0表示遙控解鎖主駕車(chē)門(mén);1表示遙控鎖定主駕車(chē)門(mén);2表示遙控解鎖所有車(chē)門(mén);3表示遙控鎖定所有車(chē)門(mén);4表示遙控解鎖行禮箱; 數據寄存器8用于防盜模式;0表示進(jìn)入防盜模式,1表示解除防盜模式; 數據寄存器9-16:保留。四、軟件流程
各控制器應按規定格式和周期發(fā)送數據到總線(xiàn)上,同時(shí)也要接受其他控制器的信息??偩€(xiàn)上的其他控制器則根據需要各取所需的報文。對于接收數據,本系統采用中斷方式實(shí)現。一旦中斷發(fā)生,即將接收的數據自動(dòng)裝載到相應的報文寄存器中,此時(shí)還可采用屏蔽濾波方式,利用屏蔽濾波寄存器對接收報文的標識符和預先在接收緩沖器初始化時(shí)設定的標識符進(jìn)行有選擇地逐位比較,只有標識符匹配的報文才能進(jìn)入接收緩沖器,那些不符合要求的報文則將被屏蔽于接收緩沖器之外,從而減輕CPU處理報文的負擔。此外,不同數據應放入不同的報文寄存器中,因此在接收中斷服務(wù)程序中,就可以容易地判斷出中斷是由哪個(gè)接收報文引起的,其程序流程圖如圖3所示。
圖3 程序流程框圖
五、結束語(yǔ)
CAN總線(xiàn)作為一種可靠的汽車(chē)計算器網(wǎng)絡(luò )總線(xiàn),現已開(kāi)始在先進(jìn)的汽車(chē)上得到應用,從而使得各汽車(chē)計算機控制單元能夠通過(guò)CAN總線(xiàn)共享所有的信息和資源,以達到簡(jiǎn)化布線(xiàn)、減少傳感器數量、避免控制功能重復、提高系統可靠性和可維護性、降低成本、更好地匹配和協(xié)調各個(gè)控制系統之目的,進(jìn)而使得汽車(chē)的動(dòng)力性、操作穩定性、完全性都上升到新的高度、隨著(zhù)汽車(chē)電子技術(shù)的發(fā)展,具有高度靈活性、簡(jiǎn)單的擴展性、優(yōu)良的抗干擾性和糾錯能力的CAN總線(xiàn)通信協(xié)議必將在汽車(chē)電容系統中得到更廣泛的應用。



