基于XC886單片機(jī)的門控系統(tǒng)LIN總線通信模塊設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
0 引言
隨著汽車業(yè)的飛速發(fā)展,汽車電控系統(tǒng)的配置不斷升級(jí),使得車輛上的電子元件越來越多,其相互連接的網(wǎng)絡(luò)結(jié)構(gòu)也越來越復(fù)雜。過去所采用的電纜連接方式所帶來的龐大布線負(fù)擔(dān),容易造成車體過重和線路的磨損老化。在這種情況下,就需要引入標(biāo)準(zhǔn)的總線技術(shù),從而降低車身重量,同時(shí)提高各個(gè)電控元件之間的通信可靠性。上世紀(jì)80年代,根據(jù)車用通信網(wǎng)絡(luò)在不同控制層面的不同功能要求,SAE (Societv ofAuto-mobile Engineering)將其分為A,B,C三類。其中A類為低速網(wǎng),數(shù)據(jù)傳輸速率通常為1~10kb/s,LIN總線通信網(wǎng)絡(luò)就屬于此類。LIN總線一般應(yīng)用于不需要高性能及帶寬和復(fù)雜性較大的低端系統(tǒng),如車門控制模塊、座椅調(diào)節(jié)、車燈控制和空調(diào)系統(tǒng)中傳感器和執(zhí)行器之間的通信。由于其LIN總線成本較低,也可以獨(dú)立用于不是特別復(fù)雜的車身控制網(wǎng)絡(luò)中。
1 LIN總線協(xié)議簡(jiǎn)介
LIN協(xié)議標(biāo)準(zhǔn)于1998年由Audi、BMW、Mo-torola、Daimlerehrysler、VCT、Volvo和Volkswa-gen等七家公司在A類網(wǎng)已有協(xié)議的基礎(chǔ)上聯(lián)合提出。LIN總線在當(dāng)今汽車電子的網(wǎng)絡(luò)結(jié)構(gòu)中被廣泛使用,它基于通用的UART/SCI接口,使用單線信號(hào)傳輸,從節(jié)點(diǎn)無需晶振或陶瓷振蕩器就能實(shí)現(xiàn)自同步,因此成本低廉。LIN總線網(wǎng)絡(luò)采用單主多從模式,圖1所示是UN總線網(wǎng)絡(luò)的結(jié)構(gòu)示意圖,它由一個(gè)主節(jié)點(diǎn)和一個(gè)或若干個(gè)從節(jié)點(diǎn)組成,不需要總線仲裁。LIN總線協(xié)議基于ISO參考模型中的物理層,數(shù)據(jù)鏈路層采用NRZ (Not Re-turn Zero)編碼方式,電平分為隱性電平(‘1’)和顯性電平(‘0’)。
1.1 物理層
LIN總線一般采用單總線(12 V)串行通訊,總線長(zhǎng)度最大可達(dá)到40 m,傳輸速率最高可達(dá)到20 Kb/s,通常使用2.4Kb/s、9.6 Kb/s和19.2 Kb/s這三個(gè)波特率進(jìn)行數(shù)據(jù)傳輸。由于從節(jié)點(diǎn)的個(gè)數(shù)除了受標(biāo)識(shí)符數(shù)量的限制中,也受到總線的物理特性限制,節(jié)點(diǎn)過多必然減少網(wǎng)絡(luò)阻抗,從而導(dǎo)致通訊條件變差,所以協(xié)議規(guī)定:一個(gè)LIN總線網(wǎng)絡(luò)上的節(jié)點(diǎn)數(shù)目不能超過16個(gè)。
1.2 數(shù)據(jù)鏈路層
LIN總線協(xié)議的一個(gè)報(bào)文幀由報(bào)文頭和響應(yīng)組成,圖2所示是LIN總線協(xié)議的報(bào)文幀結(jié)構(gòu)。一般情況下,報(bào)文頭都是由主節(jié)點(diǎn)發(fā)送,而響應(yīng)則是由一個(gè)主節(jié)點(diǎn)或者一個(gè)從節(jié)點(diǎn)發(fā)送。LIN總線網(wǎng)絡(luò)中的數(shù)據(jù)通訊都是由主節(jié)點(diǎn)發(fā)送一個(gè)報(bào)文頭來初始化的。報(bào)文頭包含一個(gè)空白場(chǎng)、一個(gè)同步場(chǎng)和一個(gè)標(biāo)識(shí)符場(chǎng),而響應(yīng)則包括1到9個(gè)字節(jié)場(chǎng)(0~8個(gè)數(shù)據(jù)場(chǎng)和一個(gè)校驗(yàn)和場(chǎng))。其中,字節(jié)場(chǎng)由字節(jié)間的間隔分開,報(bào)文頭和響應(yīng)則由幀內(nèi)響應(yīng)間隔分開,它們的最小長(zhǎng)度皆為0。
報(bào)文頭中的空白場(chǎng)可使節(jié)點(diǎn)能夠識(shí)別一個(gè)報(bào)文的開始??瞻讏?chǎng)為13位或者持續(xù)更長(zhǎng)時(shí)間的顯性電平(‘0’)加上持續(xù)1個(gè)位時(shí)間以上的隱性電平(‘1’)組成。同步場(chǎng)則為一個(gè)字節(jié)長(zhǎng)度(ox55),可用來使相關(guān)從節(jié)點(diǎn)進(jìn)行主從節(jié)點(diǎn)的時(shí)鐘同步。
標(biāo)識(shí)符場(chǎng)格式如圖3所示,定義報(bào)文的信息,長(zhǎng)度為一個(gè)字節(jié),其中前6位為標(biāo)識(shí)符位,可定義26=64個(gè)標(biāo)識(shí)符(其中保留4個(gè)標(biāo)識(shí)符作為命令和擴(kuò)展幀標(biāo)識(shí)符),后2位為奇偶校驗(yàn)位。
標(biāo)識(shí)符用于定義數(shù)據(jù)的傳輸方向和響應(yīng)中數(shù)據(jù)場(chǎng)的長(zhǎng)度,并從節(jié)點(diǎn)根據(jù)標(biāo)識(shí)符判斷報(bào)文是否與自己相關(guān),從而對(duì)報(bào)文做出反應(yīng),進(jìn)行通訊。當(dāng)主節(jié)點(diǎn)發(fā)送的報(bào)文頭被相關(guān)從節(jié)點(diǎn)接受并對(duì)標(biāo)識(shí)符判斷之后,從節(jié)點(diǎn)被要求進(jìn)行數(shù)據(jù)發(fā)送,而主節(jié)點(diǎn)要接收從節(jié)點(diǎn)發(fā)送的數(shù)據(jù),則需要將此標(biāo)識(shí)符定義為接收標(biāo)識(shí)符,對(duì)于從節(jié)點(diǎn)來說,則需定義為發(fā)送標(biāo)識(shí)符,反之亦然。
響應(yīng)中數(shù)據(jù)場(chǎng)的長(zhǎng)度由標(biāo)識(shí)符位中的第4位和第5位(ID5和ID4)決定,它們將所有的標(biāo)識(shí)符分成四組。每組有16個(gè)標(biāo)識(shí)符,這些標(biāo)識(shí)符代表著2、4和8個(gè)數(shù)據(jù)場(chǎng)。數(shù)據(jù)場(chǎng)的傳輸由低位到高位,包含了各個(gè)節(jié)點(diǎn)需要傳輸?shù)臄?shù)據(jù)。校驗(yàn)和場(chǎng)是數(shù)據(jù)場(chǎng)所有字節(jié)的和的反碼,當(dāng)節(jié)點(diǎn)收到數(shù)據(jù)并進(jìn)行校驗(yàn)時(shí),要求所有數(shù)據(jù)字節(jié)和與校驗(yàn)和場(chǎng)的字節(jié)相加必須是0xFF。
2 車門控制中LIN通信系統(tǒng)的設(shè)計(jì)
本設(shè)計(jì)方案主要采用英飛凌XC886單片機(jī)作為主節(jié)點(diǎn)控制器,以英飛凌的TLE7259芯片作為L(zhǎng)IN驅(qū)動(dòng)模塊,這樣可使主節(jié)點(diǎn)車門控制器可以通過LIN總線與3個(gè)從節(jié)點(diǎn)車門控制器(TLE7810)進(jìn)行通信。作為主節(jié)點(diǎn),在此門控系統(tǒng)中,可以通過司機(jī)側(cè)按鈕開關(guān)對(duì)所有車窗進(jìn)行升降,并可進(jìn)行后視鏡的調(diào)節(jié)和中央門鎖的控制。圖4所示是車門控制系統(tǒng)的結(jié)構(gòu)框圖。
2.1 XC886與UN驅(qū)動(dòng)模塊的接口設(shè)計(jì)
英飛凌公司的XC886單片機(jī)是基于8051工業(yè)標(biāo)準(zhǔn)架構(gòu)的高性能8位微控制器,其內(nèi)部集成有CAN控制器并支持UN通信,同時(shí)包含兩個(gè)UART(其中一個(gè)用于支持LIN)和兩個(gè)單獨(dú)16位計(jì)時(shí)器的捕捉/比較單元(CCU),可靈活產(chǎn)生PWM信號(hào)。此外,還集成有高精度8路10位ADC、四個(gè)通用16位計(jì)時(shí)器和可編程16位看門狗計(jì)時(shí)器(WDT),并支持片內(nèi)調(diào)試。XC886包含多種省功耗模式,非常適用于各種汽車車身控制網(wǎng)絡(luò)以及工業(yè)和農(nóng)業(yè)設(shè)備控制、建筑物照明控制、智能傳感器和工業(yè)自動(dòng)化等領(lǐng)域。
系統(tǒng)中的LIN驅(qū)動(dòng)模塊選用英飛凌公司的TLE7259芯片,它具有總線接地短路保護(hù)功能,適用于傳輸速率為2.4 kb/s~20 kb/s的車載系統(tǒng)通信網(wǎng)絡(luò)。同時(shí),該器件還具有極強(qiáng)的防靜電放電(ESD)特性和優(yōu)越的抗電磁干擾(EMI)能力。其基于固定斜率的斜率控制機(jī)制,還可實(shí)現(xiàn)在寬頻帶范圍內(nèi)優(yōu)越的EMC性能。在XC886作為L(zhǎng)IN總線主節(jié)點(diǎn)控制器的設(shè)計(jì)方案中,必須在TLE7259芯片的LIN_BUS引腳與INH引腳之間連接一個(gè)1kΩ的電阻和一個(gè)反向二極管,并將TLE7259配置成主節(jié)點(diǎn)驅(qū)動(dòng)模塊。圖5所示是系統(tǒng)LIN驅(qū)動(dòng)模塊的接口電路。
TLE7259芯片具有等待模式、正常模式和睡眠模式等三個(gè)工作模式。上電后。芯片立即進(jìn)入等待模式,然后可通過EN引腳置1使之進(jìn)入正常模式。在正常模式,XC886單片機(jī)可在TXD LIN管腳輸入所需發(fā)送的數(shù)據(jù)流,并通過TLE725芯片轉(zhuǎn)換成LIN總線信號(hào),以控制轉(zhuǎn)換速率和波形,從而降低電磁輻射(EME)。LIN總線的輸出管腳(Bus)可通過一個(gè)內(nèi)部終端電阻拉成高電平。TLE725芯片可在LIN總線的輸入管腳檢測(cè)數(shù)據(jù)流并通過管腳RXD_LIN發(fā)送到XC886單片機(jī)。在正常模式下,將EN引腳置0可使芯片進(jìn)入睡眠模式,此時(shí)的靜態(tài)電流不超過8 mA,用戶也可以通過LIN總線或本地引腳(WK)進(jìn)行喚醒,使之重新進(jìn)入等待模式。
2.2 LIN通信中主節(jié)點(diǎn)的軟件實(shí)現(xiàn)
軟件采用C語言模塊化編寫,易于維護(hù)。本設(shè)計(jì)方案中,LIN總線的傳輸速率設(shè)置為20 kbit/s,可在單主節(jié)點(diǎn)和3個(gè)從節(jié)點(diǎn)之間通訊,支持?jǐn)?shù)據(jù)場(chǎng)長(zhǎng)度設(shè)置為2個(gè)字節(jié)。第一個(gè)字節(jié)用于發(fā)送主節(jié)點(diǎn)控制命令或接收從節(jié)點(diǎn)狀態(tài)信息,后一個(gè)字節(jié)為預(yù)留,可用于用戶擴(kuò)展。
通常由主節(jié)點(diǎn)向從節(jié)點(diǎn)發(fā)送控制命令,主要包括車窗升降控制、車門鎖命令和后視鏡調(diào)節(jié)控制等,表1所列是其控制命令的數(shù)據(jù)場(chǎng)定義。當(dāng)車窗控制部分發(fā)送車窗無動(dòng)作命令時(shí)(Bit2為0),可忽略后兩位(Bit1和Bit0)判斷,車窗保持原狀。當(dāng)后視鏡部分發(fā)送后視鏡無動(dòng)作命令時(shí)(Bit6為0),則忽略后三位(Bit5,Bit4和Bit3)判斷,此時(shí)左右兩個(gè)后視鏡電機(jī)均無動(dòng)作,后視鏡位置保持原狀。中控鎖部分(Bit7)用于中控鎖的狀態(tài)比較,若位數(shù)據(jù)相同,則保持中控鎖狀態(tài),若位數(shù)據(jù)不同,則驅(qū)動(dòng)中控鎖電機(jī)進(jìn)行相應(yīng)動(dòng)作。
狀態(tài)信息一般由從節(jié)點(diǎn)反饋給主節(jié)點(diǎn),以用于故障診斷,主要包括車窗升降電機(jī)和繼電器的短路和開路信息等,表2所列是狀態(tài)信息的數(shù)據(jù)場(chǎng)定義。當(dāng)主節(jié)點(diǎn)收到后狀態(tài)信息后。若發(fā)現(xiàn)故障,則主節(jié)點(diǎn)控制器將使指示燈閃爍或者進(jìn)行聲音報(bào)警。
主節(jié)點(diǎn)初始化之后,系統(tǒng)將處于等待狀態(tài),同時(shí)檢查是否有數(shù)據(jù)傳輸需求。主程序每10 ms檢查一次主節(jié)點(diǎn)控制器的按鍵參數(shù)。當(dāng)司機(jī)側(cè)主控板上有按鍵動(dòng)作時(shí),系統(tǒng)會(huì)將相應(yīng)按鍵數(shù)據(jù)轉(zhuǎn)換成控制命令并通過LIN總線發(fā)送給從節(jié)點(diǎn)控制器;若沒有按鍵動(dòng)作,則要求從節(jié)點(diǎn)反饋狀態(tài)信息,并分析其工作狀態(tài)。圖6所示是其主節(jié)點(diǎn)的程序流程圖。
3 結(jié)束語
本文介紹了基于英飛凌公司的XC886單片機(jī)的車門控制系統(tǒng)的LIN總線通信模塊的設(shè)計(jì)方法,并對(duì)其硬件設(shè)計(jì)和軟件結(jié)構(gòu)進(jìn)行了簡(jiǎn)單的分析。運(yùn)用LIN總線技術(shù)開發(fā)的車窗、后視鏡和中央門鎖控制系統(tǒng),由于使用了低功耗的8位單片機(jī),因而降低了成本,提高了系統(tǒng)性能,是汽車電子技術(shù)的發(fā)展方向。本系統(tǒng)程序采用C語言編寫,具有很好的可讀性和維護(hù)性。事實(shí)上,總線技術(shù)的發(fā)展是推動(dòng)汽車電子進(jìn)步的一大動(dòng)力,總線技術(shù)的廣泛使用則進(jìn)一步促進(jìn)了汽車生產(chǎn)商對(duì)總線開發(fā)的投人,因此,汽車總線的開發(fā)必然在將來的汽車工業(yè)中占據(jù)更為重要的位置。