汽車CAN總線數(shù)據(jù)記錄儀開發(fā)
1、引言
本文引用地址:http://www.ex-cimer.com/article/196680.htm20世紀(jì)80年代以來,隨著汽車電子技術(shù)的不斷發(fā)展,汽車上的電子控制單元越來越多,例如電子燃油噴射裝置、防抱死制動裝置(ABS)、安全氣囊裝置、電控門窗裝置和主動懸架等等。在這種情況下,如果仍采用傳統(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)與各檢測和執(zhí)行機(jī)構(gòu)間的數(shù)據(jù)通信[1]。汽車CAN總線數(shù)據(jù)記錄儀能實(shí)時(shí)采集汽車CAN總線數(shù)據(jù)信息,它的研制對于熟悉和掌握汽車CAN總線的通信協(xié)議和信息內(nèi)容,對于汽車故障維修以及進(jìn)行汽車網(wǎng)絡(luò)技術(shù)方面的應(yīng)用研究具有重要意義。
2、CAN總線介紹
CAN是控制器局域網(wǎng)絡(luò)(Controller Area Network)的簡稱,它是由德國Bosch公司及幾個(gè)半導(dǎo)體生產(chǎn)商開發(fā)出來的,CAN總線是一種串行多主站控制器局域網(wǎng)總線。它具有很高的網(wǎng)絡(luò)安全性、通訊可靠性和實(shí)時(shí)性,而且簡單實(shí)用,網(wǎng)絡(luò)成本低。特別適用于汽車計(jì)算機(jī)控制系統(tǒng)和環(huán)境溫度惡劣、電磁輻射強(qiá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)先級節(jié)點(diǎn)優(yōu)先傳送數(shù)據(jù),故實(shí)時(shí)性好;
•CAN總線具有點(diǎn)對點(diǎn)、一點(diǎn)對多點(diǎn)及全局廣播傳送數(shù)據(jù)的功能;
•CAN總線采用短幀結(jié)構(gòu),每幀有效字節(jié)數(shù)最多為8個(gè),數(shù)據(jù)傳輸時(shí)間短,并有CRC及其它校驗(yàn)措施,數(shù)據(jù)出錯率極低;
•CAN總線上某一節(jié)點(diǎn)出現(xiàn)嚴(yán)重錯誤時(shí),可自動脫離總線,而總線上的其他操作不受影響;
•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ū)動電路。在標(biāo)準(zhǔn)幀(11位報(bào)文標(biāo)識符)時(shí)可達(dá)到110個(gè),而在擴(kuò)展幀(29位報(bào)文標(biāo)識符)時(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閃速存儲器的8位CMOS微控制器,與工業(yè)標(biāo)準(zhǔn)MCS-51指令系統(tǒng)和引腳完全兼容。AT89系列的優(yōu)越性在于其片內(nèi)閃速存儲器可進(jìn)行1000次的編程與擦除,且數(shù)據(jù)不易丟失,數(shù)據(jù)可保存10年。
(2)數(shù)據(jù)存儲電路
CAN總線數(shù)據(jù)傳輸速率較高,而單片機(jī)運(yùn)算速度慢且任務(wù)繁重。為確保數(shù)據(jù)采集過程中數(shù)據(jù)不丟失,單片機(jī)外部擴(kuò)展數(shù)據(jù)存儲器。當(dāng)CAN模塊接收到汽車CAN總線上一幀數(shù)據(jù)引起單片機(jī)中斷時(shí),中斷服務(wù)程序?qū)⒔邮盏降臄?shù)據(jù)存儲到外部數(shù)據(jù)存儲器后馬上中斷返回,對于數(shù)據(jù)的處理及顯示等繁瑣的工作在主程序中完成。這樣,確保了CAN總線數(shù)據(jù)接收的完整性和實(shí)時(shí)性。
(3)人機(jī)接口模塊
CAN總線數(shù)據(jù)記錄儀采用OCMJ5×10B中文液晶顯示模塊顯示信息和接收到的數(shù)據(jù)。該模塊內(nèi)含點(diǎn)陣國標(biāo)一級簡體漢字和ASCⅡ碼,可實(shí)現(xiàn)文本顯示。其用戶硬件接口采用REQ/BUSY握手協(xié)議,簡單可靠。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控制器和物理總線接口芯片,可提供對總線的差分發(fā)送和接收。它與ISO 11898標(biāo)準(zhǔn)完全兼容,并有高速、斜率控制和待機(jī)3種不同的工作方式,可根據(jù)實(shí)際情況選擇。CAN模塊總線控制器、總線驅(qū)動器連接基本方法如圖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ū)動器電路連接圖
4、CAN總線數(shù)據(jù)記錄儀軟件設(shè)計(jì)
CAN總線數(shù)據(jù)記錄儀軟件設(shè)計(jì)要求簡單、實(shí)用、高效、便于擴(kuò)充。本系統(tǒng)程序主要由主模塊、CAN總線控制器初始化模塊、中斷處理模塊等組成。主模塊主要完成單片機(jī)初始化、鍵值處理、數(shù)據(jù)顯示等任務(wù)。其中,鍵值處理主要是根據(jù)鍵值修改CAN數(shù)據(jù)接收波特率;數(shù)據(jù)顯示是將存儲在外部數(shù)據(jù)存儲器的CAN總線數(shù)據(jù)逐幀顯示。
雙絞線傳輸器相關(guān)文章:雙絞線傳輸器原理
評論