基于LIN總線的車燈控制系統(tǒng)設(shè)計
基于CAN總線的汽車車身控制已經(jīng)有了廣泛的應(yīng)用。但隨著車上總線節(jié)點的增加以及電子技術(shù)向中低檔汽車延伸的發(fā)展趨勢,其相對較高的實現(xiàn)成本就成為一種障礙。成本較低的LIN總線應(yīng)運而生。LIN總線硬件的實現(xiàn)是基于普通的串行通信接口(SCI),甚至在子節(jié)點中可以用普通I/O口加上定時器進行模擬。LIN的目標(biāo)應(yīng)用是不需要CAN的性能、帶寬及復(fù)雜性的低端系統(tǒng),如車門控制模塊、座椅調(diào)節(jié)、車燈控制和空調(diào)系統(tǒng)中傳感器和執(zhí)行器之間的通信。通常LIN子總線是現(xiàn)有的CAN網(wǎng)絡(luò)的擴充,與CAN網(wǎng)絡(luò)一起形成汽車的控制網(wǎng)絡(luò)。當(dāng)然,由于其成本較低,也可以獨立用于不是特別復(fù)雜的車身控制網(wǎng)絡(luò)中。
車燈控制系統(tǒng)對實時性要求不高,但車燈控制模塊連接的傳感器和執(zhí)行器較多,因此LIN總線非常適用于這一系統(tǒng)的控制?;贚IN總線的車燈控制系統(tǒng)使用LIN總線實現(xiàn)車燈傳感器和控制器之間的通信,其優(yōu)點是硬件電路簡單、控制層次分明、節(jié)點成本低。
車燈系統(tǒng)的結(jié)構(gòu)及控制
目前,大多數(shù)汽車燈光的控制都由手動操作完成。可能帶來的問題是,在夜晚行駛中兩車相會時,燈光弱的汽車給燈光強的汽車會燈,而燈光強的汽車卻不給燈光弱的汽車會燈,從而使燈光弱的汽車受對方遠光照射造成眩目,容易造成交通事故;在白天行駛中,有時要過涵洞或隧道,因里面黑暗需開大燈,但當(dāng)車通過后,司機有時會忘記關(guān)閉大燈行駛。
為了解決這個問題,自動燈光控制系統(tǒng)應(yīng)運而生,如豐田皇冠的自動燈光控制系統(tǒng)和寶馬530i的車燈自動照明裝置等。整個車燈控制過程實現(xiàn)完全的智能控制,反應(yīng)靈敏,工作可靠,有效避免了因汽車燈光依賴人工操作而造成的交通事故。
典型的汽車自動燈光系統(tǒng)主要由感光器(即傳感器)、電子控制器(簡稱控制器)和選擇開關(guān)三大部分組成。感光器裝在儀表板頂上,光束透過擋風(fēng)玻璃進入,感光器內(nèi)的光敏電阻阻值隨著感光強度的變化而變化。控制器裝在儀表板內(nèi),通過繼電器及晶體管放大電路來控制各燈光電路的工作。選擇開關(guān)裝在儀表板上,可以選擇自動模式控制車燈,也可以選擇手動模式控制車燈系統(tǒng)。
根據(jù)實際應(yīng)用需求,制定出以下車燈控制策略:白天時,各種燈光均應(yīng)熄滅;黃昏時,由于外面的光線昏暗,將尾燈和駐車燈點亮;夜晚時,由于外面的光線更弱,將遠光燈點亮,并將駐車燈熄滅;兩車交會車時,為了避免對方駕駛?cè)藛T眩目,應(yīng)使近光燈點亮,此時,尾燈仍亮,會車后,將近光燈熄滅,點亮遠光燈;夜晚模式下,車輛左轉(zhuǎn),關(guān)遠光燈,開近光燈和左側(cè)燈,左轉(zhuǎn)后,關(guān)近光燈和左側(cè)燈,開遠光燈,右轉(zhuǎn)時,控制方法相似。
為了實現(xiàn)這一車燈控制策略,本設(shè)計采用如圖1所示的汽車車燈控制系統(tǒng)網(wǎng)絡(luò)拓撲結(jié)構(gòu)。
圖1 汽車車燈控制系統(tǒng)結(jié)構(gòu)圖
該網(wǎng)絡(luò)結(jié)構(gòu)由1個主節(jié)點和4個從節(jié)點構(gòu)成(分別為左側(cè)前方車燈、右側(cè)前方車燈、左側(cè)后方車燈和右側(cè)后方車燈)。主節(jié)點接收來自傳感器和CAN總線的信號,經(jīng)過一定處理后,發(fā)送不同報文幀頭,以實現(xiàn)白天、傍晚、晚上、會車、左轉(zhuǎn)和右轉(zhuǎn)各個模式或組合模式下,各從節(jié)點車燈的狀態(tài)控制。從節(jié)點1和從節(jié)點2包括遠光燈、近光燈和測向燈,從節(jié)點3和從節(jié)點4包括尾燈和駐車燈。此外,如果對于主節(jié)點發(fā)出的報文幀,從節(jié)點沒有響應(yīng),則主節(jié)點上的報錯指示燈點亮,并可以顯示出是哪個從節(jié)點發(fā)生了故障。
LIN總線簡介
LIN總線是一種低成本的串行通信網(wǎng)絡(luò),用于實現(xiàn)汽車中的分布式電子系統(tǒng)控制。LIN 通信基于SCI(UART)數(shù)據(jù)格式,僅使用一根12V 信號總線,通信速率最高可達20Kb/s。通常一個LIN 網(wǎng)絡(luò)上節(jié)點數(shù)目小于12個,總線長度不超過40m。LIN總線采用單主節(jié)點/多從節(jié)點的通信模式,主節(jié)點有一個主發(fā)送任務(wù)和一個從通信任務(wù)。從節(jié)點只有一個從通信任務(wù),該通信任務(wù)分為發(fā)送任務(wù)和接收任務(wù)。一個LIN 網(wǎng)絡(luò)上的通信總是由主發(fā)送任務(wù)發(fā)起的。主節(jié)點發(fā)送一個報文頭,該報文頭由同步間隔場、同步場和報文標(biāo)志符場所組成。相應(yīng)的,在接受并且濾除報文標(biāo)識符后,一個從任務(wù)被激活并且開始本報文幀的應(yīng)答傳輸。
作為一種輔助總線,在不需要CAN總線高性能的場合,使用LIN總線可以大大降低成本。
Freescale半導(dǎo)體公司的LIN開發(fā)平臺(LIN DEMO)系統(tǒng)提供了完整的軟件和硬件,用戶可以在此平臺上很快的搭建起LIN控制網(wǎng)絡(luò)。其中,軟件部分包括了標(biāo)準(zhǔn)的LIN底層驅(qū)動軟件。本設(shè)計正是利用了Freescale LIN API中的標(biāo)準(zhǔn)LIN底層驅(qū)動,在MC68HC908GZ60芯片上實現(xiàn)了車燈控制系統(tǒng)的開發(fā)。
Freescale LIN API中提供了許多與LIN總線通信相關(guān)的函數(shù),利用這些函數(shù),可以很方便地實現(xiàn)LIN通信。
系統(tǒng)硬件設(shè)計
汽車車燈控制系統(tǒng)要求當(dāng)用戶按下操作按鈕時,車燈能及時地做出相應(yīng)的響應(yīng);同時,當(dāng)車燈發(fā)生故障時,用戶能得到相應(yīng)的故障信息。該控制系統(tǒng)對實時性要求不是很嚴格,屬于汽車低速通信網(wǎng)絡(luò)。因此使用最高傳輸速率為20Kb/s的LIN總線對車燈控制,既可以滿足控制要求,又可以降低成本,是非常合適的。
MC68HC908GZ60芯片(48引腳)具有1個ESCI通道、2個定時器通道、1個CAN通道和15個A/D轉(zhuǎn)換通道。LIN通信僅占用了該芯片的ESCI接口用于與LIN收發(fā)器相連;一個定時器通道用于確定LIN通信中的定時;還有很多功能和通道可以用于擴展其他用途。選用LIN總線單線物理接口器件MC33399作為LIN收發(fā)器,LIN網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 LIN模塊硬件結(jié)構(gòu)圖
MC33399收發(fā)器支持的傳輸速率為1~20Kb/s,提供了正常和睡眠兩種工作模式。INH引腳連接到電源管理芯片的INH引腳,可以控制電源電壓調(diào)節(jié)器的工作模式,減小睡眠時的功耗。EN引腳由GZ60的PTE2引腳控制,當(dāng)PTE2=1時,MC33399使能,進入工作模式;當(dāng)PTE2=0時,MC33399禁能,進入睡眠狀態(tài),從而達到減小功耗的目的。Tx、Rx引腳分別與GZ60的PTE0、PTE1引腳相連,通過該ECU的ESCI模塊來實現(xiàn)LIN總線的收發(fā)功能。由于不采用喚醒模式,Wake引腳通過電阻R4接地。其中,只有主節(jié)點的LIN引腳需要通過二極管和1kΩ電阻拉高,從節(jié)點所需的30kΩ上拉電阻已經(jīng)集成在MC33399中,所以從節(jié)點無須外接上拉電阻,如圖3所示。
圖3 MC33399接口電路
由于LIN是單線傳輸協(xié)議,總線上傳輸?shù)臄?shù)據(jù)需要一個共同的基準(zhǔn)地,所以在連接各個節(jié)點時,要保證各個節(jié)點電平的共地性,才能使總線正常可靠地通信。
車燈控制系統(tǒng)中的主節(jié)點同時也是CAN/LIN網(wǎng)關(guān),負責(zé)將LIN總線數(shù)據(jù)傳輸?shù)紺AN總線上,GZ60的一個CAN通道用來提供與CAN總線的接口。CAN總線收發(fā)器選用Freescale公司的MC33388。該收發(fā)器支持的最高CAN速率為125Kb/s,在睡眠模式下,功耗很小。CAN模塊的硬件電路如圖4所示。
圖4 MC33388接口電路
系統(tǒng)的軟件結(jié)構(gòu)
基于LIN總線的車燈控制系統(tǒng)的軟件結(jié)構(gòu)如圖5所示。上電后,各節(jié)點控制器對CONFIG、PORT和ESCI模塊進行初始化操作,由于LIN總線通信定時由主節(jié)點定義,主節(jié)點控制器還需要對T1CH0模塊初始化。主節(jié)點控制器監(jiān)測各個按鍵的狀態(tài),當(dāng)有按鍵被按下后,主節(jié)點判斷該按鍵對應(yīng)的車燈控制模式,然后向LIN總線發(fā)送帶相應(yīng)標(biāo)識符場的報文頭(ID∈[10 11 12 13]),啟動一次主節(jié)點向從節(jié)點發(fā)送數(shù)據(jù)的LIN總線通信。等待LIN總線處理該報文幀之后,主節(jié)點啟動一次從節(jié)點向主節(jié)點發(fā)送數(shù)據(jù)的LIN總線通信(ID∈[14 15 16 17]),該從節(jié)點即為前一次LIN總線通信中,接收到主節(jié)點命令的從節(jié)點。如果主節(jié)點接收到的從節(jié)點數(shù)據(jù)與理論上應(yīng)該收到的數(shù)據(jù)不符,主節(jié)點上的報錯指示燈點亮,并可以顯示發(fā)生故障的從節(jié)點號碼。造成從節(jié)點故障的原因可能是從節(jié)點脫離LIN總線,或者從節(jié)點上的執(zhí)行器發(fā)生故障。
圖5 基于LIN總線的車燈控制系統(tǒng)軟件流程圖
應(yīng)用結(jié)果
應(yīng)用結(jié)果表明:LIN總線很好地滿足了汽車車燈控制系統(tǒng)對數(shù)據(jù)信息傳輸?shù)囊?,而且與其他實現(xiàn)方法相比,具有結(jié)構(gòu)簡單、配置靈活、降低成本的優(yōu)點,完全達到了期望的性能和價格要求。