如何設計與實(shí)現基于單片機的客車(chē)CAN總線(xiàn)燈光節點(diǎn)?
引言
本文引用地址:http://dyxdggzs.com/article/201808/385075.htmCAN(Controller Area Network)是德國B(niǎo)osch公司最先提出的,是目前汽車(chē)控制器局域網(wǎng)中最流行、最常用的總線(xiàn)。它的主要特點(diǎn)是:CAN總線(xiàn)為多主站總線(xiàn),各節點(diǎn)均可在任意時(shí)刻主動(dòng)向網(wǎng)絡(luò )上的其他節點(diǎn)發(fā)送信息,不分主從,通信靈活;CAN總線(xiàn)采用獨特的非破壞性總線(xiàn)仲裁技術(shù),優(yōu)先級高的節點(diǎn)先傳送數據,能滿(mǎn)足實(shí)時(shí)性要求;CAN總線(xiàn)具有點(diǎn)對點(diǎn)、一點(diǎn)對多點(diǎn)及全局廣播傳送數據的功能;CAN總線(xiàn)上每幀有效字節數最多為8個(gè),并有CRC及其他校驗措施,數據出錯率極低,某個(gè)節點(diǎn)出現嚴重錯誤,可自動(dòng)脫離總線(xiàn),總線(xiàn)上的其他操作不受影響;CAN總線(xiàn)只有2條導線(xiàn),系統擴充時(shí)可直接將新節點(diǎn)掛在總線(xiàn)上,因此走線(xiàn)少,系統容易擴充,改型靈活;CAN總線(xiàn)傳輸速度快,在傳輸距離小于40 m時(shí),最大傳輸速率可達1 Mb/s。CAN總線(xiàn)的應用不僅能簡(jiǎn)化線(xiàn)束,實(shí)現傳感器共享,降低系統成本,而且能大大降低車(chē)輛的故障率。CAN總線(xiàn)在汽車(chē)上的應用是現代汽車(chē)技術(shù)的發(fā)展趨勢。
2 CAN總線(xiàn)在汽車(chē)中的應用
目前,汽車(chē)中的網(wǎng)絡(luò )連接主要采用2條CAN總線(xiàn),一條是驅動(dòng)系統的高速CAN總線(xiàn),速率達500 kb/s,另一條是車(chē)身系統的低速CAN總線(xiàn),速率是100 kb/s。驅動(dòng)系統的CAN主要連接對象是發(fā)動(dòng)機控制器(ECU)、ASR及ABS控制器、安全氣囊控制器、組合儀表等,其基本特征相同,都是控制與汽車(chē)行駛直接相關(guān)的系統。車(chē)身系統的CAN主要連接對象是4門(mén)以上的中控門(mén)鎖、電動(dòng)車(chē)窗、后視鏡和車(chē)廂內照明燈等。有些先進(jìn)的轎車(chē)除了上述2條CAN總線(xiàn)外,還會(huì )有第3條CAN總線(xiàn),它的主要連接對象是衛星導航及智能通信系統。
在國外尤其是在歐洲,CAN已成為現代汽車(chē)中必不可少的裝置,CAN總線(xiàn)技術(shù)正日趨成熟,應用也越來(lái)越廣,奔馳、寶馬、大眾、沃爾沃、雷諾等汽車(chē)都采用CAN作為控制器聯(lián)網(wǎng)的技術(shù)。國內對CAN總線(xiàn)的研究剛剛起步,到目前為止還沒(méi)有較成功的應用。但我國對車(chē)輛局域網(wǎng)絡(luò )總線(xiàn)技術(shù)的研究與開(kāi)發(fā)非常重視,最近國家有關(guān)部門(mén)對CAN總線(xiàn)在豪華大客車(chē)上的應用做出明確規定。相信這一政策的出臺必將大大促進(jìn)相關(guān)企業(yè)和科研單位對汽車(chē)CAN總線(xiàn)的研究與開(kāi)發(fā)應用。本文討論客車(chē)車(chē)身CAN總線(xiàn)系統中的車(chē)燈節點(diǎn)設計,它屬于低速CAN總線(xiàn)上的節點(diǎn)設計。
3 單片機及其CAN總線(xiàn)模塊
NEC是僅次于Freescale的世界第二大車(chē)用單片機制造商,由于其在中國推廣的比較晚,國內企業(yè)使用得并不多。CAN總線(xiàn)模塊是μPD780822型單片機的一個(gè)外設,是一個(gè)完整的CAN控制器??蓾M(mǎn)足車(chē)身CAN總線(xiàn)網(wǎng)絡(luò )的要求。除了具有CAN的基本功能外,還包括一些特有功能,如時(shí)間同步功能、可編程的CAN總線(xiàn)喚醒和CPU喚醒功能、可編程的總線(xiàn)關(guān)閉時(shí)發(fā)送底層復位功能等。對CAN總線(xiàn)的訪(fǎng)問(wèn)分為控制/狀態(tài)寄存器的訪(fǎng)問(wèn)和發(fā)送/接收緩沖器的訪(fǎng)問(wèn)。
CAN控制器發(fā)送的信息幀分為二種:發(fā)送數據幀和發(fā)送遠程幀。有二個(gè)發(fā)送緩沖器,其中一個(gè)為16字節,一個(gè)為8字節。16字節的緩沖器可以存儲標準幀和擴展幀二種格式的數據幀,8字節的緩沖器可以用來(lái)存儲要發(fā)送的數據。發(fā)送數據幀時(shí),在數據寫(xiě)到發(fā)送緩沖器后,如果相應的發(fā)送請求位使能,則數據被發(fā)送到CAN總線(xiàn)上,數據幀的數據可以用軟件設置成1~8個(gè)字節。數據幀的格式如圖1所示。
CAN控制器接收信息時(shí)首先要將接收信息的標識符與相應緩沖器的標識符進(jìn)行比較,只有標識符相同的信息才能被接收。μPD780822型單片機的CAN模塊有2個(gè)獨立的發(fā)送緩沖器,2個(gè)緩沖器共用1個(gè)16字節的數據區來(lái)存儲最多8字節數據的CAN幀。發(fā)送區和接收區的結構相似,當標志位和控制位沒(méi)有設置為CAN專(zhuān)用時(shí),CPU可以把其作為普通的數據存儲區使用。
控制器接收緩沖器有16個(gè),接收信息幀時(shí)用的緩沖器區由信息數量寄存器(MCNT)決定。從總線(xiàn)上接收的信息被直接存儲在發(fā)送緩沖區中。工作中沒(méi)有使用的接收緩沖區可以被CPU作為普通的RAM使用。每個(gè)接收緩沖器都有其可編程的中斷使能位。
4 網(wǎng)絡(luò )結構和節點(diǎn)
客車(chē)車(chē)身CAN系統包括主控節點(diǎn)、燈光節點(diǎn)、空調節點(diǎn)、車(chē)門(mén)節點(diǎn)和儀表節點(diǎn)等,如圖2所示。其中,前車(chē)燈節點(diǎn)控制包括前左、右示廓燈,前左、右位燈,前左、右遇險報警燈,前左、右駐車(chē)燈,左、右前照燈遠光,左、右前照燈近光,前左、右霧燈和前左、右轉向燈等16個(gè)控制單位。后車(chē)燈節點(diǎn)控制包括后左、右示廓燈,后左、右轉向燈,后左、右制動(dòng)燈,后左、右位燈,后左、右霧燈和后左、右倒車(chē)燈等12個(gè)控制單位。主控節點(diǎn)主要接收來(lái)自駕駛員的一些開(kāi)關(guān)輸入信號。儀表節點(diǎn)主要通過(guò)接收總線(xiàn)上的數據來(lái)控制方向、水溫、機油壓力、制動(dòng)、車(chē)門(mén)、車(chē)燈、ABS/ARS和除霜等指示燈和控制儀表,以顯示車(chē)速、發(fā)動(dòng)機轉速、水溫、燃油、機油、電壓、步進(jìn)電機等數值??照{節點(diǎn)控制空調的開(kāi)關(guān)和車(chē)內溫度的設定等。車(chē)門(mén)和后視鏡節點(diǎn)控制車(chē)門(mén)電磁閥開(kāi)關(guān)、后視鏡調整開(kāi)關(guān)和后視鏡加熱開(kāi)關(guān)。安全節點(diǎn)監控ABS和ECAS的電源。
5 硬件電路設計
燈光節點(diǎn)的硬件結構如圖3所示,它包括燈光控制模塊和CAN接口模塊。燈光控制模塊由TLP521-4型光電隔離器和BTS442、BTS740型智能開(kāi)關(guān)組成。
TLP521-4是4路光電隔離器,8個(gè)TLP521-4組成32路光電隔離,把傳遞到開(kāi)關(guān)和開(kāi)關(guān)反饋的信號與單片機連接起來(lái)。BTS442是Infineon公司生產(chǎn)的單路輸出智能開(kāi)關(guān)(PROFET),具有允許較大瞬態(tài)電流(140 A以上)和較寬泛的溫度范圍(-55℃~+150℃)等優(yōu)點(diǎn),6個(gè)BTS442組成6路控制開(kāi)關(guān),控制大燈和霧燈等6個(gè)大電流負載。BTS740是lnfineon公司生產(chǎn)的4路輸出智能開(kāi)關(guān),把輸出的2路并作1路用,使其通過(guò)較大的瞬時(shí)電流。5個(gè)BTS740組成10路控制開(kāi)關(guān)用以控制其余的小電流負載。BTS442和BTS740都有診斷反饋功能,如果出現錯誤,BTS442的第4引腳和BTS740的第4引腳與第8引腳上會(huì )出現一個(gè)低電平信號,通過(guò)光電隔離器把該信號接入單片機,實(shí)現端點(diǎn)檢測功能,并通過(guò)CAN信息幀反饋到儀表節點(diǎn)上。所有節點(diǎn)的硬件CAN接口模塊都相同,包括燈光節點(diǎn)在內。由于這種單片機帶有CAN總線(xiàn)模塊,所以不需專(zhuān)門(mén)的CAN控制器,單片機沒(méi)有CAN收發(fā)器,需要外接82C250型收發(fā)器,中間是6N137型光電隔離器。單片機、光電隔離器和CAN收發(fā)器硬件接口電路如圖4所示。
6 節點(diǎn)軟件設計
節點(diǎn)軟件流程如圖5所示。程序采用查詢(xún)方式,節點(diǎn)初始化并報告正常工作后將一直處于查詢(xún)狀態(tài),直到主控節點(diǎn)發(fā)送的燈光控制命令到達燈光節點(diǎn)時(shí),單片機才可判斷控制的是哪一路燈光或哪幾路燈光,并通過(guò)開(kāi)關(guān)的診斷反饋功能檢測相應的開(kāi)關(guān)是否正常。如果正常,則向相應的高/低端開(kāi)關(guān)發(fā)送相應的控制命令,然后回到查詢(xún)狀態(tài)。如果不正常,則向儀表節點(diǎn)發(fā)送相應端點(diǎn)的不正常信息幀,繼續檢測相應的端點(diǎn)。
評論