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