汽車CAN總線數(shù)據記錄儀開發(fā)
1、引言
20世紀80年代以來,隨著汽車電子技術的不斷發(fā)展,汽車上的電子控制單元越來越多,例如電子燃油噴射裝置、防抱死制動裝置(ABS)、安全氣囊裝置、電控門窗裝置和主動懸架等等。在這種情況下,如果仍采用傳統(tǒng)點到點的并行布線方式,將導致車上電線數(shù)目急劇增加,布線越來越困難,電線質量占整車質量越來越多,復雜電路同時也降低了汽車的可靠性,增加了維修的難度。為適應汽車電子設備迅速增加的應用需要,控制器局域網絡CAN應運而生。目前,在汽車設計領域中,CAN幾乎成了一種必須采用的技術手段,尤其是在歐洲,如奔馳(BENZ)、寶馬(BMW )等都采用CAN總線實現(xiàn)汽車內部控制系統(tǒng)與各檢測和執(zhí)行機構間的數(shù)據通信[1]。汽車CAN總線數(shù)據記錄儀能實時采集汽車CAN總線數(shù)據信息,它的研制對于熟悉和掌握汽車CAN總線的通信協(xié)議和信息內容,對于汽車故障維修以及進行汽車網絡技術方面的應用研究具有重要意義。
2、CAN總線介紹
CAN是控制器局域網絡(Controller Area Network)的簡稱,它是由德國Bosch公司及幾個半導體生產商開發(fā)出來的,CAN總線是一種串行多主站控制器局域網總線。它具有很高的網絡安全性、通訊可靠性和實時性,而且簡單實用,網絡成本低。特別適用于汽車計算機控制系統(tǒng)和環(huán)境溫度惡劣、電磁輻射強和振動大的工業(yè)環(huán)境。CAN總線可有效支持分布式控制或實時控制。該總線的通信介質可以是雙絞線、同軸電纜或光纖[2-3]。其主要特點如下:
•CAN總線為多主站總線,各節(jié)點可在任意時刻向網絡上的其他節(jié)點發(fā)送信息,且不分主從;
•CAN總線采用獨特的非破壞性總線仲裁技術,高優(yōu)先級節(jié)點優(yōu)先傳送數(shù)據,故實時性好;
•CAN總線具有點對點、一點對多點及全局廣播傳送數(shù)據的功能;
•CAN總線采用短幀結構,每幀有效字節(jié)數(shù)最多為8個,數(shù)據傳輸時間短,并有CRC及其它校驗措施,數(shù)據出錯率極低;
•CAN總線上某一節(jié)點出現(xiàn)嚴重錯誤時,可自動脫離總線,而總線上的其他操作不受影響;
•CAN總線系統(tǒng)擴充時,可直接將新節(jié)點掛在總線上,因而走線少,系統(tǒng)擴充容易,改型靈活;
•CAN總線的最大傳輸速率可達1Mb/s,直接通信距離最遠可達到10km(速率在5kbps以下);
•CAN總線上的節(jié)點數(shù)取決于總線驅動電路。在標準幀(11位報文標識符)時可達到110個,而在擴展幀(29位報文標識符)時,個數(shù)不受限。
3、CAN總線數(shù)據記錄儀硬件設計
CAN總線數(shù)據記錄儀工作時應掛接到汽車CAN總線上成為一個CAN節(jié)點,以便采集CAN數(shù)據信息。其系統(tǒng)硬件結構采用圖1所示電路結構。各核心模塊介紹如下。
圖1 CAN總線數(shù)據記錄儀結構框圖
(1)主控模塊(MCU)
本系統(tǒng)主控模塊采用ATMEL公司的單片機AT89C52。它是一種低功耗、高性能、內含8KB閃速存儲器的8位CMOS微控制器,與工業(yè)標準MCS-51指令系統(tǒng)和引腳完全兼容。AT89系列的優(yōu)越性在于其片內閃速存儲器可進行1000次的編程與擦除,且數(shù)據不易丟失,數(shù)據可保存10年。
(2)數(shù)據存儲電路
CAN總線數(shù)據傳輸速率較高,而單片機運算速度慢且任務繁重。為確保數(shù)據采集過程中數(shù)據不丟失,單片機外部擴展數(shù)據存儲器。當CAN模塊接收到汽車CAN總線上一幀數(shù)據引起單片機中斷時,中斷服務程序將接收到的數(shù)據存儲到外部數(shù)據存儲器后馬上中斷返回,對于數(shù)據的處理及顯示等繁瑣的工作在主程序中完成。這樣,確保了CAN總線數(shù)據接收的完整性和實時性。
(3)人機接口模塊
CAN總線數(shù)據記錄儀采用OCMJ5×10B中文液晶顯示模塊顯示信息和接收到的數(shù)據。該模塊內含點陣國標一級簡體漢字和ASCⅡ碼,可實現(xiàn)文本顯示。其用戶硬件接口采用REQ/BUSY握手協(xié)議,簡單可靠。BUSY高電平有效,表示OCMJ忙,不能接受命令;BUSY=0時,表示OCMJ空閑[4]。同時REQ=1時通知OCMJ處理當前數(shù)據線上的數(shù)據。本系統(tǒng)利用單片機P1.6和P1.7作為與液晶顯示模塊的REQ和BUSY聯(lián)絡口。
本系統(tǒng)主要有設置、增、減按鍵。利用單片機P1.0-P1.2實現(xiàn)按鍵輸入。
(4)通信模塊
CAN總線數(shù)據記錄儀接收到的汽車CAN總線數(shù)據可在液晶顯示器上實時顯示,也可以利用串行通信接口傳輸?shù)缴衔粰C進行顯示或數(shù)據處理和數(shù)據分析。本系統(tǒng)利用電平轉換芯片MAX232實現(xiàn)單片機與PC機的串行數(shù)據通信。
(5)CAN模塊
本系統(tǒng)采用的CAN控制器是SJA1000。SJA1000是PHILIPS公司生產的既支持CAN 2.0B,又支持CAN 2.0A的CAN控制器。與SJA1000配套使用的CAN收發(fā)器是PCA82C250,它是PHILIPS推出的CAN控制器和物理總線接口芯片,可提供對總線的差分發(fā)送和接收。它與ISO 11898標準完全兼容,并有高速、斜率控制和待機3種不同的工作方式,可根據實際情況選擇。CAN模塊總線控制器、總線驅動器連接基本方法如圖2所示。為增強CAN總線節(jié)點的抗干擾能力,SJA1000通過高速光耦6N137后與82C250相連,這樣就很好的實現(xiàn)了本系統(tǒng)與汽車CAN總線的電氣隔離[5]。電源的隔離采用小功率電源隔離模塊。這些部分雖然增加了接口電路的復雜性,但是卻提高了系統(tǒng)的穩(wěn)定性和安全性。
82C250與CAN總線的接口部分也采用了一定的安全和抗干擾措施。82C250的CANH和CANL引腳各自通過一個5Ω的電阻與CAN總線相連,電阻可起到一定的限流作用,保護82C250免受過流的沖擊。CANH和CANL與地之間并連的30pF電容,可以濾除總線上的高頻干擾和提高防電磁輻射的能力;而防雷擊管可消除輸入端與地之間的瞬變干擾。82C250的RS腳上接有一個斜率電阻,電阻大小可根據總線速度適當調整,一般在16~140kΩ之間。
圖2 CAN總線控制器、總線驅動器電路連接圖
4、CAN總線數(shù)據記錄儀軟件設計
CAN總線數(shù)據記錄儀軟件設計要求簡單、實用、高效、便于擴充。本系統(tǒng)程序主要由主模塊、CAN總線控制器初始化模塊、中斷處理模塊等組成。主模塊主要完成單片機初始化、鍵值處理、數(shù)據顯示等任務。其中,鍵值處理主要是根據鍵值修改CAN數(shù)據接收波特率;數(shù)據顯示是將存儲在外部數(shù)據存儲器的CAN總線數(shù)據逐幀顯示。
CAN總線控制器初始化模塊用于SJA 1000總線控制器的初始化工作[6]。如設置命令寄存器(CR)為開放接收、出錯、超載中斷,置位復位請求位;設置驗收碼寄存器(ACR)和驗收屏蔽寄存器(AMR);設置輸出控制寄存器選擇輸出方式及建立輸出驅動器的配置等。對于CAN總線數(shù)據報文接收是通過對ACR、AMR的寫操作來設置驗收濾波器。如果一條報文通過了驗收濾波器的測試且接收緩沖器有空間,則完整的報文可被正確接收。通過濾波器的測試意味著報文識別碼高8位(ID.10~ID.3)和驗收代碼位(AC.7~AC.0)必須相等,而這些位是被驗收屏蔽位(AM.7~AM.0)的相應位屏蔽的。即如果滿足以下列兩等式之一,則報文被接收。
(ID.10~ID. 3)=(AC.7~AC. 0) (1)
(AM.7~AM .0)=11111111B (2)
CAN總線數(shù)據記錄儀目的是接收CAN總線數(shù)據全部報文,因而AMR寄存器初始化設置時應滿足等式(2)。
中斷模塊通過對IR寄存器各狀態(tài)的判斷,識別不同的中斷源,作相應的處理。對于接收中斷,應將接收緩沖區(qū)接收到的數(shù)據存儲到外部數(shù)據存儲器中,并立即跳出中斷,進行主程序的處理或等待下一幀數(shù)據的接收中斷,從而避免報文的丟失。
CAN總線數(shù)據記錄儀能否順利進行CAN數(shù)據的接收,初始化模塊程序的設計是關鍵。由于采用了模塊化程序設計方法,本系統(tǒng)程序運行效率高、使用靈活,有利于智能測控節(jié)點的升級。
5、CAN總線數(shù)據記錄儀應用舉例
大眾車系CAN-BUS常見有舒適CAN總線、動力CAN總線等,以舒適系統(tǒng)CAN總線為例,說明CAN總線數(shù)據記錄儀的使用。舒適系統(tǒng)CAN數(shù)據傳遞有五個功能[7]:中央門鎖、電動窗、照明開關、后視鏡加熱及自診斷功能。數(shù)據采集之前,首先確定數(shù)據傳輸波特率,將CAN-L電纜與數(shù)字存儲示波器相連,可在示波器上觀察到CAN-L上的電壓信號如圖3所示。
圖3 CAN-L電壓信號
由圖可知,位時間為16.0μs,可計算位速率如下:
利用按鍵設置CAN總線數(shù)據記錄儀波特率。將記錄儀測試端子分別接到舒適系統(tǒng)CAN總線的CAN-H和CAN-L線上,打開點火開關,接收到的數(shù)據如表1所示。
表1 打開點火開關時接收到的數(shù)據
由表1可以看出基于CAN總線的汽車舒適系統(tǒng)具有以下特性:
1、五個節(jié)點的ID首位都為1,因而舒適系統(tǒng)通信數(shù)據都為非實時數(shù)據;
2、五個節(jié)點ID從小到大順序為,中央控制單元、左前門控單元、右前門控單元、左后門控單元、右后門控單元,網絡的優(yōu)先順序也是這樣;
3、中央控制單元和左前門控單元控制對象較多,其數(shù)據長度碼為5,右前門控單元數(shù)據長度碼為3,其他的為2;
利用CAN總線數(shù)據記錄儀可進一步采集其他CAN總線數(shù)據信息并進行分析。
6、結論
便攜式汽車CAN總線數(shù)據記錄儀具有許多突出的優(yōu)點:適合在汽車運動環(huán)境使用;采用通用元器件和軟件模塊化設計;能實時采集汽車CAN總線數(shù)據,試驗表明系統(tǒng)工作穩(wěn)定性較高。通過儀器的串行通信接口可將采集到的數(shù)據上傳到PC機[8],利用PC機的分析軟件完成數(shù)據的處理及分析,功能將更加強大。
參考文獻
[1]Gabriel Leen, Dond Heffernam, and Alan Dunne. Digital Networks in the Automotive Vehicle[J],IEEE Computing & Control Engineering journa1,1999,(10) 6.
[2] 饒運濤,鄒繼軍,鄭勇蕓.現(xiàn)場總線CAN原理與應用技術[M].北京:北京航空航天大學 出版社,2003:22-34
[3]鄒寬明.CAN總線原理和應用系統(tǒng)設計[M].北京:北京航空航人大學出版社.1996: 30-34
[4]金鵬科技有限公司.OCMJ中文模塊液晶顯示器使用說明書[Z]
[5]劉微.獨立CAN器件SJA1000的應用[J].南京工程學院學報,2002(1):33-34
[6]律德才,馬峰.CAN總線控制器SJA1000的原理及應用[J].電測與儀表,2002(4):57-58
[7]朱建鳳,李國忠.常見車系CAN-BUS原理與檢修[M].北京:機械工業(yè)出版社,2006:100-102
[8]王潔,蘇東林,王冰切.CAN記錄儀設計[J].電子測量技術,2006(1):14-15