引言
隨著現代電子技術的不斷發展和電子技術在汽車系統中的不斷應用,汽車的各種性能都得到了極大的改善?,F代駕乘人員對汽車各個方面的要求越來越高,如視野性、方便性、舒適性和娛樂性等。新的控制功能隨汽車級別的提升不斷增加,如中央門鎖、燈光控制、玻璃升降、后視鏡調節、天窗控制、座椅調節和點火延時控制等。傳統的控制系統多采用繼電器和獨立模式控制,這使得車內線束過多且布線復雜,從而造成了嚴重的電磁干擾,使系統的可靠性下降。CAN/LIN總線技術的應用,取代了傳統的線束,使信息交換變得安全、迅捷、高效。
汽車中CAN (Controller Area Network)主要用于車載各電子控制裝置ECU之間交換信息,形成汽車電子控制網絡。各控制單元使用特定的總線技術來實現數字/模擬信號在中央控制單元和執行器件、傳感器之間的傳輸。每一個狀態或事件的傳輸都有專門的通道。為了將信息從中央控制單元傳輸到各子單元,每一個子單元都應該有通用、標準的開放式接口。控制執行器件和傳感器模塊對于傳輸速率要求不是很高,比如后視鏡定位。所有這些低速率的模塊都不需要使用CAN總線,而可選擇一種相比CAN總線來說價格更低廉而有效的方式——LIN總線。
LIN(Local Interconnect Network)是一種用于汽車中分布式電子系統的新型低成本串行通信網絡。它由汽車廠商開發,專門應用于低端系統,作為CAN的輔助網絡或子網絡。在不需要CAN總線的帶寬和多功能的場合,比如智能傳感器和制動裝置之間的通信,使用LIN總線可以大大節省成本。
目前,高/低速CAN和J1850總線已經成為標準的車用網絡總線。這些總線速度極高,具有高抗電磁干擾性和高傳輸可靠性等優越的性能,但價格也較高。大量的車身和安全性能方面的應用對車用網絡總線的性能要求并不太高,只需要一種性價比更高的標準車用網絡總線,而LIN總線正好可以滿足這一需求。因此,目前LIN總線技術正被越來越廣泛的應用到車身電子中。
本文將結合汽車智能燈控系統,介紹LIN總線技術在其中的應用。本文首先介紹的是基于C167CS微控制器和智能功率器件的燈光控制模塊的總體功能設計,然后對于LIN總線技術在汽車智能燈控系統中的具體實施應用,包括LIN總線模塊的硬件接口電路設計和軟件設計做了深入的研究。
1、 燈控模塊設計
本文基于英飛凌C167CS微控制器及智能功率器件設計了汽車燈光控制模塊,如圖1、2所示,微控制器采用英飛凌的C167CS-LM(外擴Flash)。子模塊1用于控制所有功率器件的開關動作,同時對系統狀態進行定時監控,并提供合適的反饋信號。反饋信號反映了車燈的故障狀態,子模塊1通過LIN總線將故障診斷信息傳輸到子模塊2。子模塊2接收來自于子模塊1的故障診斷信息,并通過液晶周期地顯示。子模塊2同時還處理來自于儀表盤的車燈控制信息,通過LIN總線傳輸到子模塊1,然后子模塊1根據儀表盤信息作用于相應的功率器件,實現對車燈的開關設置。
系統通過采用LIN總線技術,實現了兩個控制模塊之間車燈信息的實時傳輸。LIN總線硬件接口電路應用英飛凌公司的TLE6258總線LIN收發器,它作為介于協議控制器和物理總線之間的接口,特別適于在汽車和工業應用中的LIN系統中驅動總線。TLE6258還提供空閑工作模式以減少電流消耗,具有短路保護和過溫保護等保護功能。
子模塊1中大量采用了英飛凌智能功率器件,其中BTS724和BTS716是電源MOSFET高位開關(漏極與電源相連),帶電荷泵、輸入的參考地與CMOS兼容以及診斷反饋,而BTS443和BTS134是單通道FET功率管,也稱為低位開關(源極與電源相連),高位開關和低位開關都內嵌保護功能。負載可以是阻性負載、感性負載或容性負載,最適用于帶高浪涌電流的負載,如燈等,從而取代了傳統的繼電器、熔斷器和離散電路的傳統汽車燈光控制方法,避免了采用太多的分立元件,減小了模塊體積,同時提高了模塊的EMC特性。該模塊具有短路保護、過載保護、電流限制、過溫關斷、過壓保護、電源反接保護、掉地與欠壓保護和靜電保護等保護功能。
2、 LIN總線簡介
LIN總線是一種串行通信網絡,可以將開關、顯示器、傳感器和執行器等簡單控制設備連接起來,主要用于汽車中的分布式電子控制系統。LIN采用單主機/多從機的總線拓撲結構(沒有總線仲裁),僅使用一根12V信號總線。主節點包含主任務和從任務,從節點只包含從任務。它不需要專門的片上通訊模塊,采用標準串行通信接口USART,速率可達20kbps,總線長度不大于40m。LIN總線作為一種輔助的總線網絡,在不需要CAN總線的優越性能的場合,相比于CAN總線具有更高的性價比。它有如下幾個方面的優點。
● LIN是一種低端網絡系統,可提供簡單的網絡解決方案,支持網絡節點的互操作性,大大減少了系統安裝、調試和接線的成本和時間。
● LIN的通信量小、配置靈活,采用單線連接及單主機/多從機的通信結構(無需總線仲裁),可保證低端設備及電子控制單元簡便、快捷的實時通信。
● 通過主機節點可將LIN與上層網絡(如CAN)相連接,實現LIN的子總線輔助通信功能,從而優化網絡結構,提高網絡效率和可靠性。
● LIN的協議是開放的,任何組織和個人無需支付費用即可獲取。
LIN規范包括三個主要部分:LIN協議規范部分(說明LIN的物理層和數據鏈路層)、LIN配置語言部分(說明LIN配置文件的格式)和LIN API部分(說明網絡與應用程序間的接口)。
LIN協議的通信機制和幀結構如圖3所示,LIN網絡中的每個節點都有一個從任務模塊,主節點還包含一個主任務模塊。幀頭由主任務發出,包括同步間隙、同步場和信息標識符。所有節點中的從任務(包括主節點)對信息標識符進行濾波,并發回數據場和校驗場。字節場采用SCI/UART串行數據格式。
3 、LIN總線技術在汽車智能燈控系統中的應用
汽車燈光控制模塊的控制實際上是根據車燈的狀態信息及駕駛員對車燈狀態的要求來實現的。車燈的狀態信息主要是故障信息的反饋,駕駛員對車燈狀態的要求通過儀表盤的車燈按鈕來傳遞。本汽車燈光控制模塊為了便于整車安裝,分成兩個子模塊,如圖4所示。子模塊1負責根據儀表盤車燈按鈕的狀態控制功率器件開關動作,同時監控車燈狀態,提供反饋信號,并根據反饋信號判斷車燈的故障狀態。子模塊2負責采集儀表盤車燈按鈕信息,同時用LCD顯示出目前車燈的故障狀態信息。
下面對汽車智能燈控模塊控制思想及LIN總線技術在其中的應用做出具體分析:在系統啟動并進行初始化以后,子模塊1開始啟動一個定時器,實現周期性地對數字量診斷輸出的車燈和模擬電流傳感器診斷輸出的車燈進行檢測(檢測不同智能開關向微控制器反饋的數字和模擬故障信號),對于出現故障的車燈信息,通過LIN總線傳輸到子模塊2。傳輸信息包括故障車燈的名稱、故障車燈所在的診斷組(數字量診斷組或模擬量診斷組)和故障狀態(斷路或短路等)。子模塊1同時亦接收來自于子模塊2的儀表盤的車燈按鈕掃描信息,該信息包含了駕駛員對于車燈狀態的要求(開通或關斷)。然后結合診斷結果及儀表盤的掃描結果,決定是否打開車燈或關閉車燈。子模塊2通過LIN總線接收子模塊1傳輸過來的車燈的故障診斷信息,周期性的通過LCD進行顯示。同時亦周期性的掃描儀表盤的按鈕狀態,并通過LIN總線傳輸到子模塊1。
本汽車燈光控制模塊作為車身低端網絡,傳輸數據量小,對傳輸快速性要求不高,20kBaud完全可以滿足系統對傳輸速率的要求。相比于具有更多優良性能而價格也更高昂的CAN總線,LIN總線成本較低,容易在UART中實現,并具有較好的容故障能力和傳輸可靠性。在綜合考慮總線的硬件與軟件成本和總線的可靠性之后,選擇LIN總線實現燈控模塊內部兩個子模塊間的數據傳輸,而CAN總線則用于燈控模塊與車身內部其他ECU之間的通信。
3.1 LIN總線硬件接口電路
LIN總線硬件接口電路如圖5所示,該模塊分為主節點和從節點兩個單元。供電電源電路采用英飛凌TLE4278電壓調節器實現,輸入Vi為12V,輸出Vq為5V。收發器采用英飛凌TLE 6258系列LIN總線收發器。從安全角度考慮,主節點電路在電源引腳和總線間以及總線和參考地之間分別連接1kΩ電阻和1nF電容,以保證總線信號在顯性電平和隱性電平間切換時有合適的時間延遲。
TLE 6258是單線收發器,適用于LIN協議,與LIN規范1.2兼容,發送速率可達20kbps,功率消耗低,且具有短路保護和過溫保護等功能,特別適于作為汽車和工業應用,且可用于標準的ISO9141系統。為了減小電流損耗,TLE 6258提供了一種空閑模式。在空閑模式下,TLE 6258退出總線活動,既不接收也不發送數據,電流降到最低,從而達到減小電流損耗的目的。TLE 6258在正常工作模式和空閑模式之間的切換過程如圖6所示,在正常工作模式下,通過對ENN置1進入空閑模式。在空閑模式下,通過在總線上發送喚醒幀,可把主機或從機從空閑模式喚醒,返回到正常工作模式。進入正常工作模式后,ENN變為0,釋放RxD為傳輸數據狀態。
3.2 LIN總線通訊軟件設計
LIN軟件基于幾個狀態機制和功能塊,狀態機制通過串行接口的中斷調用,在程序中用nTRANSCEIVER_STATUS表示每個狀態。主機任務發送同步間隔場(Synch Break Field)、同步場(Synch Field)和標識符場,如果從機在總線上檢測到匹配的標識符,它會接收或發送數據到總線(這里假設數據字節是8個,主機為接收數據,從機為發送數據,也可定義為主機發送數據,從機接收數據)。以下(1)~(3)為主機任務,(4)~(13)為從機任務。
(1)發送同步間隔場;
(2)接收同步間隔場和發送同步場;
(3)接收同步場和產生/發送ID域;
(4)接收ID域(報文過濾),拷貝數據到緩沖器(LIN transfer buffer) 并發送第一個數據字節;
(5)接收第一個數據字節和發送第二個數據字節;
(6)接收第二個數據字節和發送第三個數據字節;
(7)接收第三個數據字節和發送第四個數據字節;
(8)接收第四個數據字節和發送第五個數據字節;
(9)接收第五個數據字節和發送第六個數據字節;
(10)接收第六個數據字節和發送第七個數據字節;
(11)接收第七個數據字節和發送第八個數據字節;
[page]
(12)接收第八個數據字節和計算/發送校驗和域;
(13)接收校驗和域。
為了傳輸汽車智能燈控模塊中所需要的信息,定義了7個字節變量a0、a1、a2、a3、a4、a5和a6,用于存儲車燈故障狀態信息;另外還定義了兩個字節變量key_result0和key_result1,用于存儲儀表盤的車燈按鈕掃描信息。
車燈故障狀態信息的定義分為數字量診斷組和模擬量診斷組:數字量診斷組包括駐車燈、示警燈和尾燈等20盞燈;模擬量診斷組包括前照燈、霧燈等6盞燈。每盞燈的故障狀態有三種情況,用兩個“位”來表示:正常狀態(DIAG_OK),用“00”表示;斷路狀態(DIAG_OPEN_LOAD),用“01”表示;過載狀態(DIAG_OVERLOAD),用“10”表示。例如,左駐車燈用a2的低兩位表示,定義為static sbit parklightfrontleft_lowbit=a2^0、static sbit parklightfrontleft_highbit=a2^1;a2^1=0,a2^0=1,則表示駐車燈處于斷路故障狀態。如此推算,模擬量診斷組6盞車燈,故障狀態信息需要占用12位,我們用字節存儲器a0和a1表示;數字量診斷組20盞車燈,故障狀態信息需要占用40位,我們用字節存儲器a2、a3、a4、a5和a6表示。車燈故障狀態信息共計7字節,采用字節數為8的報文幀格式傳輸,第8個字節用0補齊。
儀表盤車燈按鈕共計16個開關量,每個開關量有兩種狀態,用一個“位”表示:按鈕關斷,用“1”表示;按鈕打開,用“0”表示。我們用兩個字節存儲器key_result0和key_result1存儲按鈕信息,報文幀含有兩個字節的數據量。
發送數據字節過程如圖7所示。以發送車燈故障狀態信息為例,這個狀態機制用于把數據字節發送到總線上去,ID被定義為發送ID(SEND_ID)。
子狀態及相應的收發器狀態如下。
子狀態1~8:節點用于發送數據字節 接收中斷 LIN_vRxd_Interrupt;
子狀態9:節點用于發送數據字節 接收中斷 LIN_vRxd_Interrupt;
子狀態10:校驗和域已經被正確接收 接收中斷 LIN_vRxd_Interrupt。
其中,子狀態1接收中斷中調用功能函數UCB_Txd,該函數獲取用戶數據存儲的首地址。
接收數據字節過程如圖8所示。以接收儀表盤車燈按鈕信息為例,這個狀態機制用于接收來自總線的數據,ID被定義為接收ID(REC_ID)。
子狀態及相應的收發器狀態如下。
子狀態1:節點用于接收數據字節 接收中斷 LIN_vRxd_Interrupt ;
子狀態2:節點用于接收數據字節 接收中斷 LIN_vRxd_Interrupt;
子狀態3:節點用于接收數據字節 接收中斷 LIN_vRxd_Interrupt;
子狀態4:節點用于接收數據字節 接收中斷 LIN_vRxd_Interrupt。
其中,子狀態4接收中斷中調用功能函數UCB_Rxd,該函數將接收到的數據存儲入用戶緩沖器。結論
本文結合汽車智能燈控系統,對于LIN總線技術在汽車智能燈控系統中的具體實施應用,包括LIN總線模塊的硬件接口電路設計和軟件設計做了深入研究。實驗證實:LIN總線憑借其結構簡單、配置靈活、性價比高等方面的獨特優勢,不僅能夠滿足汽車智能燈光控制系統對數據信息傳輸的要求,而且節省成本,完全達到了期望的性能、價格要求,具有廣闊的應用前景。
責任編輯:gt
-
微控制器
+關注
關注
48文章
7565瀏覽量
151576 -
控制系統
+關注
關注
41文章
6630瀏覽量
110670 -
總線
+關注
關注
10文章
2890瀏覽量
88159
發布評論請先 登錄
相關推薦
評論