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