基于LIN總線的車身控制系統(tǒng)的設(shè)計(jì)
LIN(Local Interconnect Network)是一種低成本的串行通訊網(wǎng)絡(luò),用于實(shí)現(xiàn)汽車中的分布式電子系統(tǒng)控制。LIN 的目標(biāo)是為現(xiàn)有汽車網(wǎng)絡(luò)(例如CAN 總線)提供輔助功能,因此LIN 總線是一種輔助的總線網(wǎng)絡(luò)。在不需要CAN 總線的帶寬和多功能的場(chǎng)合,比如智能傳感器和制動(dòng)裝置之間的通訊使用LIN 總線可大大節(jié)省成本。LIN 技術(shù)規(guī)范中除定義了基本協(xié)議和物理層外還定義了開發(fā)工具和應(yīng)用軟件接口。LIN
通訊是基于SCI(UART)數(shù)據(jù)格式,采用單主控制器/多從設(shè)備的模式。僅使用一根12V 信號(hào)總線和一個(gè)無固定時(shí)間基準(zhǔn)的節(jié)點(diǎn)同步時(shí)鐘線。這種低成本的串行通訊模式和相應(yīng)的開發(fā)環(huán)境已經(jīng)由LIN 協(xié)會(huì)制定成標(biāo)準(zhǔn)。LIN 的標(biāo)準(zhǔn)化將為汽車制造商以及供應(yīng)商在研發(fā)應(yīng)用操作系統(tǒng)降低成本。
典型的LIN 總線應(yīng)用是汽車中的聯(lián)合裝配單元,如:門、方向盤、座椅、空調(diào)、照明燈、濕度傳感器,交流發(fā)電機(jī)等。對(duì)于這些成本比較敏感的單元,LIN 可以使那些機(jī)械元件如智能傳感器、制動(dòng)器或光敏器件得到較廣泛的使用。這些元件可以很容易的連接到汽車網(wǎng)絡(luò) 中并得到十分方便的維護(hù)和服務(wù)。在LIN 實(shí)現(xiàn)的系統(tǒng)中通常將模擬信號(hào)量用數(shù)字信號(hào)量 所替換,這將使總線性能優(yōu)化。在以下的汽車電子控制系統(tǒng)中使用LIN 來實(shí)現(xiàn)將得到非常完美的效果:
LIN節(jié)點(diǎn)硬件設(shè)計(jì)
1 LIN接口總體設(shè)計(jì)
LIN 節(jié)點(diǎn)硬件上主要包括LIN接口電路部分、控制輸入部分、顯示電路或負(fù)載驅(qū)動(dòng)輸出等,其中LIN接口為節(jié)點(diǎn)的核心。以Microchip公司的 PIC16F87為控制器、TJA1020為L(zhǎng)IN收發(fā)器、SA57022 為開關(guān)電源的LIN接口電路如圖1所示。SA57022電源輸出的打開與關(guān)斷由LIN收發(fā)器控制通過INH引腳控制。
圖1 LIN接口原理圖
因主機(jī)節(jié)點(diǎn)需為網(wǎng)絡(luò)中的從機(jī)節(jié)點(diǎn)提供時(shí)鐘基準(zhǔn),故在主機(jī)節(jié)點(diǎn)中為PIC16F87配置了外部晶振。在從機(jī)節(jié)點(diǎn)中,從機(jī)節(jié)點(diǎn)可通過主機(jī)節(jié)點(diǎn)發(fā)送幀頭中的同步場(chǎng)來校準(zhǔn)自身波特率,故可省去外部晶振而使用PIC16F87內(nèi)置的RC振蕩器。
2 LIN收發(fā)器應(yīng)用設(shè)計(jì)
TJA1020 為L(zhǎng)IN收發(fā)器,它是LIN 協(xié)議控制器和LIN傳輸媒體之間的接口,是節(jié)點(diǎn)的核心器件,負(fù)責(zé)收發(fā)數(shù)據(jù)時(shí)總線的波形調(diào)整和電平轉(zhuǎn)換及節(jié)點(diǎn)多種工作模式的實(shí)現(xiàn)。TJA1020按LIN物理層規(guī)范集成了片內(nèi)從機(jī)端電阻,在從機(jī)節(jié)點(diǎn)應(yīng)用中無須再外接從機(jī)端電阻,在主機(jī)節(jié)點(diǎn)應(yīng)用中按圖1所示在其INH引腳和LIN引腳之間串接主機(jī)端電阻和二極管可提高總線的驅(qū)動(dòng)能力,并在總線對(duì)地短路時(shí)使節(jié)點(diǎn)自動(dòng)進(jìn)入睡眠狀態(tài),減少電流損耗。
以TJA1020為收發(fā)器構(gòu)造的LIN節(jié)點(diǎn)具有普通、低斜率、睡眠、準(zhǔn)備四種工作模式,以盡可能降低功耗和電磁輻射,各種模式下的節(jié)點(diǎn)狀態(tài)和模式間轉(zhuǎn)換如圖2所示。
圖2 工作模式的節(jié)點(diǎn)狀態(tài)以及模式間的切換
LIN節(jié)點(diǎn)軟件設(shè)計(jì)
1 LIN主機(jī)節(jié)點(diǎn)軟件設(shè)計(jì)
LIN主機(jī)節(jié)點(diǎn)行使幀處理和LIN網(wǎng)絡(luò)的通信管理職能,程序流程如圖3所示。
圖3 主機(jī)程序流程
LIN規(guī)范規(guī)定,同步間隔場(chǎng)為至少13個(gè)連續(xù)的顯性位(低電平)。LIN 通信基于通用UART/SCI接口,字節(jié)傳送使用8N1編碼,無法直接產(chǎn)生這樣一個(gè)顯性序列。
總線的正常通信波特率為9.6k,從機(jī)節(jié)點(diǎn)始終以此波特率工作,主機(jī)節(jié)點(diǎn)在需要發(fā)送同步間隔場(chǎng)時(shí)將波特率降低到4.8k,并發(fā)送0x00,則工作于9.6k 波特率的從機(jī)節(jié)點(diǎn)將檢測(cè)到18個(gè)連續(xù)的顯性位,從而判斷一個(gè)新報(bào)文幀的到來。主機(jī)節(jié)點(diǎn)在發(fā)送完同步間隔場(chǎng)后將波特率恢復(fù)到9.6k.
評(píng)論