新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > LIN總線技術(shù)在汽車智能燈控系統(tǒng)中的應(yīng)用

LIN總線技術(shù)在汽車智能燈控系統(tǒng)中的應(yīng)用

作者: 時(shí)間:2012-03-29 來源:網(wǎng)絡(luò) 收藏

下面對(duì)燈控模塊控制思想及在其中的做出具體分析:在啟動(dòng)并進(jìn)行初始化以后,子模塊1開始啟動(dòng)一個(gè)定時(shí)器,實(shí)現(xiàn)周期性地對(duì)數(shù)字量診斷輸出的車燈和模擬電流傳感器診斷輸出的車燈進(jìn)行檢測(cè)(檢測(cè)不同開關(guān)向微控制器反饋的數(shù)字和模擬故障信號(hào)),對(duì)于出現(xiàn)故障的車燈信息,通過傳輸?shù)阶幽K2。傳輸信息包括故障車燈的名稱、故障車燈所在的診斷組(數(shù)字量診斷組或模擬量診斷組)和故障狀態(tài)(斷路或短路等)。子模塊1同時(shí)亦接收來自于子模塊2的儀表盤的車燈按鈕掃描信息,該信息包含了駕駛員對(duì)于車燈狀態(tài)的要求(開通或關(guān)斷)。然后結(jié)合診斷結(jié)果及儀表盤的掃描結(jié)果,決定是否打開車燈或關(guān)閉車燈。子模塊2通過接收子模塊1傳輸過來的車燈的故障診斷信息,周期性的通過LCD進(jìn)行顯示。同時(shí)亦周期性的掃描儀表盤的按鈕狀態(tài),并通過LIN總線傳輸?shù)阶幽K1。

燈光控制模塊作為車身低端網(wǎng)絡(luò),傳輸數(shù)據(jù)量小,對(duì)傳輸快速性要求不高,20kBaud完全可以滿足對(duì)傳輸速率的要求。相比于具有更多優(yōu)良性能而價(jià)格也更高昂的CAN總線,LIN總線成本較低,容易在UART中實(shí)現(xiàn),并具有較好的容故障能力和傳輸可靠性。在綜合考慮總線的硬件與軟件成本和總線的可靠性之后,選擇LIN總線實(shí)現(xiàn)燈控模塊內(nèi)部?jī)蓚€(gè)子模塊間的數(shù)據(jù)傳輸,而CAN總線則用于燈控模塊與車身內(nèi)部其他ECU之間的通信。

3.1 LIN總線硬件接口電路

LIN總線硬件接口電路如圖5所示,該模塊分為主節(jié)點(diǎn)和從節(jié)點(diǎn)兩個(gè)單元。供電電源電路采用英飛凌TLE4278電壓調(diào)節(jié)器實(shí)現(xiàn),輸入Vi為12V,輸出Vq為5V。收發(fā)器采用英飛凌TLE 6258系列LIN總線收發(fā)器。從安全角度考慮,主節(jié)點(diǎn)電路在電源引腳和總線間以及總線和參考地之間分別連接1kΩ電阻和1nF電容,以保證總線信號(hào)在顯性電平和隱性電平間切換時(shí)有合適的時(shí)間延遲。

TLE 6258是單線收發(fā)器,適用于LIN協(xié)議,與LIN規(guī)范1.2兼容,發(fā)送速率可達(dá)20kbps,功率消耗低,且具有短路保護(hù)和過溫保護(hù)等功能,特別適于作為和工業(yè),且可用于標(biāo)準(zhǔn)的ISO9141。為了減小電流損耗,TLE 6258提供了一種空閑模式。在空閑模式下,TLE 6258退出總線活動(dòng),既不接收也不發(fā)送數(shù)據(jù),電流降到最低,從而達(dá)到減小電流損耗的目的。TLE 6258在正常工作模式和空閑模式之間的切換過程如圖6所示,在正常工作模式下,通過對(duì)ENN置1進(jìn)入空閑模式。在空閑模式下,通過在總線上發(fā)送喚醒幀,可把主機(jī)或從機(jī)從空閑模式喚醒,返回到正常工作模式。進(jìn)入正常工作模式后,ENN變?yōu)?,釋放RxD為傳輸數(shù)據(jù)狀態(tài)。

3.2 LIN總線通訊軟件設(shè)計(jì)

LIN軟件基于幾個(gè)狀態(tài)機(jī)制和功能塊,狀態(tài)機(jī)制通過串行接口的中斷調(diào)用,在程序中用nTRANSCEIVER_STATUS表示每個(gè)狀態(tài)。主機(jī)任務(wù)發(fā)送同步間隔場(chǎng)(Synch Break Field)、同步場(chǎng)(Synch Field)和標(biāo)識(shí)符場(chǎng),如果從機(jī)在總線上檢測(cè)到匹配的標(biāo)識(shí)符,它會(huì)接收或發(fā)送數(shù)據(jù)到總線(這里假設(shè)數(shù)據(jù)字節(jié)是8個(gè),主機(jī)為接收數(shù)據(jù),從機(jī)為發(fā)送數(shù)據(jù),也可定義為主機(jī)發(fā)送數(shù)據(jù),從機(jī)接收數(shù)據(jù))。以下(1)~(3)為主機(jī)任務(wù),(4)~(13)為從機(jī)任務(wù)。

(1)發(fā)送同步間隔場(chǎng);

(2)接收同步間隔場(chǎng)和發(fā)送同步場(chǎng);

(3)接收同步場(chǎng)和產(chǎn)生/發(fā)送ID域;

(4)接收ID域(報(bào)文過濾),拷貝數(shù)據(jù)到緩沖器(LIN transfer buffer) 并發(fā)送第一個(gè)數(shù)據(jù)字節(jié);

(5)接收第一個(gè)數(shù)據(jù)字節(jié)和發(fā)送第二個(gè)數(shù)據(jù)字節(jié);

(6)接收第二個(gè)數(shù)據(jù)字節(jié)和發(fā)送第三個(gè)數(shù)據(jù)字節(jié);

(7)接收第三個(gè)數(shù)據(jù)字節(jié)和發(fā)送第四個(gè)數(shù)據(jù)字節(jié);

(8)接收第四個(gè)數(shù)據(jù)字節(jié)和發(fā)送第五個(gè)數(shù)據(jù)字節(jié);

(9)接收第五個(gè)數(shù)據(jù)字節(jié)和發(fā)送第六個(gè)數(shù)據(jù)字節(jié);

(10)接收第六個(gè)數(shù)據(jù)字節(jié)和發(fā)送第七個(gè)數(shù)據(jù)字節(jié);

(11)接收第七個(gè)數(shù)據(jù)字節(jié)和發(fā)送第八個(gè)數(shù)據(jù)字節(jié);

(12)接收第八個(gè)數(shù)據(jù)字節(jié)和計(jì)算/發(fā)送校驗(yàn)和域;

(13)接收校驗(yàn)和域。

為了傳輸汽車燈控模塊中所需要的信息,定義了7個(gè)字節(jié)變量a0、a1、a2、a3、a4、a5和a6,用于存儲(chǔ)車燈故障狀態(tài)信息;另外還定義了兩個(gè)字節(jié)變量key_result0和key_result1,用于存儲(chǔ)儀表盤的車燈按鈕掃描信息。

車燈故障狀態(tài)信息的定義分為數(shù)字量診斷組和模擬量診斷組:數(shù)字量診斷組包括駐車燈、示警燈和尾燈等20盞燈;模擬量診斷組包括前照燈、霧燈等6盞燈。每盞燈的故障狀態(tài)有三種情況,用兩個(gè)“位”來表示:正常狀態(tài)(DIAG_OK),用“00”表示;斷路狀態(tài)(DIAG_OPEN_LOAD),用“01”表示;過載狀態(tài)(DIAG_OVERLOAD),用“10”表示。例如,左駐車燈用a2的低兩位表示,定義為static sbit parklightfrontleft_lowbit=a2^0、static sbit parklightfrontleft_highbit=a2^1;a2^1=0,a2^0=1,則表示駐車燈處于斷路故障狀態(tài)。如此推算,模擬量診斷組6盞車燈,故障狀態(tài)信息需要占用12位,我們用字節(jié)存儲(chǔ)器a0和a1表示;數(shù)字量診斷組20盞車燈,故障狀態(tài)信息需要占用40位,我們用字節(jié)存儲(chǔ)器a2、a3、a4、a5和a6表示。車燈故障狀態(tài)信息共計(jì)7字節(jié),采用字節(jié)數(shù)為8的報(bào)文幀格式傳輸,第8個(gè)字節(jié)用0補(bǔ)齊。

儀表盤車燈按鈕共計(jì)16個(gè)開關(guān)量,每個(gè)開關(guān)量有兩種狀態(tài),用一個(gè)“位”表示:按鈕關(guān)斷,用“1”表示;按鈕打開,用“0”表示。我們用兩個(gè)字節(jié)存儲(chǔ)器key_result0和key_result1存儲(chǔ)按鈕信息,報(bào)文幀含有兩個(gè)字節(jié)的數(shù)據(jù)量。

發(fā)送數(shù)據(jù)字節(jié)過程如圖7所示。以發(fā)送車燈故障狀態(tài)信息為例,這個(gè)狀態(tài)機(jī)制用于把數(shù)據(jù)字節(jié)發(fā)送到總線上去,ID被定義為發(fā)送ID(SEND_ID)。

子狀態(tài)及相應(yīng)的收發(fā)器狀態(tài)如下。

子狀態(tài)1~8:節(jié)點(diǎn)用于發(fā)送數(shù)據(jù)字節(jié) 接收中斷 LIN_vRxd_Interrupt;

子狀態(tài)9:節(jié)點(diǎn)用于發(fā)送數(shù)據(jù)字節(jié) 接收中斷 LIN_vRxd_Interrupt;

子狀態(tài)10:校驗(yàn)和域已經(jīng)被正確接收 接收中斷 LIN_vRxd_Interrupt。

其中,子狀態(tài)1接收中斷中調(diào)用功能函數(shù)UCB_Txd,該函數(shù)獲取用戶數(shù)據(jù)存儲(chǔ)的首地址。

接收數(shù)據(jù)字節(jié)過程如圖8所示。以接收儀表盤車燈按鈕信息為例,這個(gè)狀態(tài)機(jī)制用于接收來自總線的數(shù)據(jù),ID被定義為接收ID(REC_ID)。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉