基于M68HC08的LIN節(jié)點(diǎn)設(shè)計(jì)與實(shí)現(xiàn)
引言
隨著汽車電子業(yè)的飛速發(fā)展,車輛上的電子裝置越來(lái)越多,電子裝置之間的控制也越來(lái)越復(fù)雜。傳統(tǒng)的布線連接方式,不僅使線束變得更加粗大、質(zhì)量增加,使車內(nèi)可利用的空間變小,且由于線路復(fù)雜,故障率增加,還會(huì)給維修帶來(lái)很大的不便。通過(guò)車用現(xiàn)場(chǎng)總線技術(shù)建立車身控制局域網(wǎng),對(duì)汽車電子裝置、電器設(shè)備進(jìn)行管理和控制,實(shí)現(xiàn)分布式多路傳輸,大大簡(jiǎn)化汽車的線束,減輕線束的質(zhì)量,提高了系統(tǒng)工作的可靠性、穩(wěn)定性。
LIN(Local Interconnect Network)是由汽車廠商專門為汽車開(kāi)發(fā)的一種低成本串行通信網(wǎng)絡(luò),用于實(shí)現(xiàn)汽車中的分布式電子系統(tǒng)控制,其主要目的是為現(xiàn)有的汽車控制網(wǎng)絡(luò) CAN(Control Area Network)提供輔助功能。在對(duì)CAN總線通信要求低的場(chǎng)合,諸如智能傳感器和制動(dòng)裝置之間的通信,使用LIN總線可大大降低成本。
1 LIN總線介紹
LIN是一個(gè)串行通訊協(xié)議,它有效地支持汽車應(yīng)用中分布式機(jī)械電子節(jié)點(diǎn)的控制。LIN總線控制方式是帶單主機(jī)節(jié)點(diǎn)和一組從機(jī)節(jié)點(diǎn)的A 類(10kbit/s(低速))多點(diǎn)總線。
1.1 LIN總線特點(diǎn)
(1) 采用低成本單線12V進(jìn)行數(shù)據(jù)傳輸,線的驅(qū)動(dòng)和接收特性符合改進(jìn)的IS09141單線標(biāo)準(zhǔn);(2) 傳輸速率可達(dá)20kbit/s;(3) 采用單主/多從結(jié)構(gòu),不需要總線仲裁,由主節(jié)點(diǎn)來(lái)控制總線的訪問(wèn);(4) 基于通用UART/SCI的硬件接口,可使用低成本的半導(dǎo)體工藝實(shí)現(xiàn),幾乎所有的微控制器都有LIN必需的硬件;(5) 從節(jié)點(diǎn)不需要晶振或陶瓷振蕩器就可實(shí)現(xiàn)自同步,從而減少了從節(jié)點(diǎn)的硬件成本;(6) 能保證最差狀況下信號(hào)傳送的等待時(shí)間,可避免總線訪問(wèn)沖突。
1.2 LIN總線通信機(jī)制
LIN總線是基于SCI(UART)數(shù)據(jù)格式,采用單主控制器/多從設(shè)備的模式,僅使用一根12V信號(hào)總線。一個(gè)LIN 網(wǎng)絡(luò)由一個(gè)主節(jié)點(diǎn)、一個(gè)或多個(gè)從節(jié)點(diǎn)組成。所有節(jié)點(diǎn)都有一個(gè)從通訊任務(wù),該通訊任務(wù)按功能分為發(fā)送任務(wù)和接收任務(wù)。主節(jié)點(diǎn)還有一個(gè)主發(fā)送任務(wù),一個(gè)LIN 網(wǎng)絡(luò)上的通訊總是由主發(fā)送任務(wù)所發(fā)起的。主控制器發(fā)送一個(gè)起始報(bào)文,從控制單元在接受并且濾除消息標(biāo)志符后,一個(gè)從任務(wù)被激活并且開(kāi)始本消息的應(yīng)答。
1.3 LIN報(bào)文幀
報(bào)文幀由主機(jī)任務(wù)向從機(jī)任務(wù)傳送同步和標(biāo)識(shí)符信息,并將一個(gè)從機(jī)任務(wù)的信息傳送到所有其他從機(jī)任務(wù)。主機(jī)任務(wù)位于主機(jī)節(jié)點(diǎn)內(nèi)部,它負(fù)責(zé)報(bào)文的進(jìn)度表、發(fā)送報(bào)文頭(HEADER)。從機(jī)任務(wù)位于所有的(即主機(jī)和從機(jī))節(jié)點(diǎn)中其中一個(gè)主機(jī)節(jié)點(diǎn)或從機(jī)節(jié)點(diǎn)發(fā)送報(bào)文的響應(yīng)(RESPONSE)。
一個(gè)報(bào)文幀(圖1)是由一個(gè)主機(jī)節(jié)點(diǎn)發(fā)送的報(bào)文頭和一個(gè)主機(jī)或從機(jī)節(jié)點(diǎn)發(fā)送的響應(yīng)組成。報(bào)文幀的報(bào)文頭包括一個(gè)同步間隔場(chǎng)(SYNCH BREAK FIELD)、一個(gè)同步場(chǎng)(SYNCH FIELD)和一個(gè)標(biāo)識(shí)符場(chǎng)。報(bào)文幀的響應(yīng)(RESPONSE)則由3個(gè)到9個(gè)字節(jié)場(chǎng)組成:2、4或8字節(jié)的數(shù)據(jù)場(chǎng)(DATA FIELD)和一個(gè)校驗(yàn)和場(chǎng)(CHECKSUM FIELD)。字節(jié)場(chǎng)由字節(jié)間空間分隔。報(bào)文幀的報(bào)文頭和響應(yīng)是由一個(gè)幀內(nèi)響應(yīng)空間分隔,最小的字節(jié)間空間和幀內(nèi)響應(yīng)空間是0。
圖1 LIN報(bào)文幀
2 LIN節(jié)點(diǎn)設(shè)計(jì)
2.1 M68HC08系列芯片簡(jiǎn)介
Motorola 的M68HC08是一種高性能的8位單片機(jī)系列,具有速度快、功能強(qiáng)和價(jià)格低等特點(diǎn)。它的CPU與M68HC05單片機(jī)向上兼容,具有16位變址寄存器和堆棧指針,有200余條指令和10余種尋址方式,最快指令周期僅為0.125μS。
2.2 LIN主節(jié)點(diǎn)設(shè)計(jì)
本設(shè)計(jì)選用M68HC08系列的MC68HC908GZ32作為L(zhǎng)IN主節(jié)點(diǎn)的MCU,其電路原理如圖2所示。選用MC68HC908GZ32,主要因?yàn)樗哂腥缦缕涮攸c(diǎn):
·32 Kbytes FLASH,1536 bytes RAM
·8-MHz內(nèi)部總線頻率
·豐富的I/O資源
·兩個(gè)雙通道16bit定時(shí)接口模塊(TIM)
·一個(gè)MSCAN08 (Motorola 可升級(jí)的CAN)控制器模塊
·一個(gè)串行外圍接口(SPI)模塊
·一個(gè)增強(qiáng)型串行通信接口(ESCI)模塊
ESCI模塊可以使MCU和外圍設(shè)備及其它MCU異步通信,故它可以作為L(zhǎng)IN的主結(jié)點(diǎn)。由于MC68HC908GZ32內(nèi)部帶有CAN控制器(MSCAN08),因此它除了能夠作為L(zhǎng)IN的主節(jié)點(diǎn),還可以作為CAN/LIN網(wǎng)關(guān)。
本設(shè)計(jì)選用64腳QFP封裝的GZ32芯片,VDD,VDDA,VDDAD均由+5V供電,TXD、RXD引腳分別接 LIN的收發(fā)器(TJA1020)的TXD、RXD引腳,經(jīng)過(guò)收發(fā)器LIN引腳出來(lái)的信號(hào)就是+12V的LIN信號(hào)了。GZ32的CANRX與CANTX 引腳分別接CAN收發(fā)器(TJA1050)的RXD和TXD,經(jīng)過(guò)收發(fā)器CANL和CANH引腳出來(lái)的就是具有差分信號(hào)的CAN信號(hào)。GZ32其它的大部分引腳都可以做I/O口使用,滿足車身電器控制的需要。
圖2 LIN主節(jié)點(diǎn)的電路原理圖
主節(jié)點(diǎn)可以采用查詢或中斷的方式發(fā)送主機(jī)任務(wù),本設(shè)計(jì)采用中斷的方式發(fā)送主機(jī)任務(wù)。首先發(fā)送同步間隔(13個(gè)bit的顯性電平加1個(gè)bit的隱性電平),GZ32里面專門用中止位(SBK)來(lái)發(fā)送同步間隔。將寄存器SCC2中的發(fā)送中止位SBK置1即會(huì)裝載中止符(全0)置發(fā)送移位寄存器,再將SBK置0,移位寄存器中止最后一個(gè)中止符且至少發(fā)送1個(gè)邏輯1,構(gòu)成13個(gè)bit的低電平和1個(gè)bit的高電平。同步間隔是區(qū)別全零數(shù)據(jù)字節(jié)的關(guān)鍵,必須按照這種方式發(fā)送才能把它與全零字節(jié)區(qū)別開(kāi)來(lái)。然后按照SCI串行格式發(fā)送同步場(chǎng)0x55和標(biāo)志符場(chǎng)。如果主節(jié)點(diǎn)還有從機(jī)發(fā)送任務(wù),還需要按照SCI串行格式發(fā)送數(shù)據(jù)場(chǎng)和校驗(yàn)和場(chǎng)。
2.3 LIN從節(jié)點(diǎn)設(shè)計(jì)
本設(shè)計(jì)選用M68HC08系列的MC68HC908QL4作為L(zhǎng)IN從節(jié)點(diǎn)的MCU,其電路原理圖如圖3所示,選用MC68HC908QL4,主要因?yàn)槠渚哂腥缦绿攸c(diǎn):
·4096 bytes FLASH, 128 bytes RAM
·5-V 和 3.3-V 工作電壓
·5 V時(shí)內(nèi)部總線頻率為8-MHz ,3.3 V 時(shí)為4-MHz
·一個(gè)雙通道16bit定時(shí)接口模塊(TIM)
·13個(gè)雙向輸入輸出口,1個(gè)只輸入口
·一個(gè)LIN從機(jī)接口控制器(SLIC)模塊
SLIC模塊用來(lái)提供LIN總線上從機(jī)的連通性,與通用I/O口共享其引腳。它有以下特點(diǎn):
·自動(dòng)的波特率設(shè)置和LIN信息幀同步
·自動(dòng)識(shí)別和確認(rèn)LIN信息的同步間隔和同步場(chǎng)
·自動(dòng)計(jì)算校驗(yàn)和場(chǎng)和確認(rèn)錯(cuò)誤報(bào)告
·無(wú)錯(cuò)誤的情況下每個(gè)標(biāo)準(zhǔn)LIN信息幀可有最多2個(gè)中斷
·高速的LIN可以從83.33 kbps 到 120.00 kbps
本設(shè)計(jì)選用16腳TSSOP封裝的QL4芯片,VDD接+5V電源,SLCTX、SLCRX引腳分別接LIN的收發(fā)器(TJA1020)的TXD、RXD引腳。經(jīng)過(guò)收發(fā)器LIN引腳進(jìn)來(lái)+12V的LIN信號(hào),經(jīng)過(guò)收發(fā)器轉(zhuǎn)換成+5V的接受和發(fā)送信號(hào),分別傳到QL4的接受和發(fā)送引腳。
圖3 LIN從節(jié)點(diǎn)電路原理圖
從節(jié)點(diǎn)在初始化完成后,其它操作都在中斷里面完成。SLIC狀態(tài)向量寄存器(SLCSV)提供一個(gè)索引偏移量直接反映 LIN模塊當(dāng)前的工作狀態(tài),它可以和用戶提供的跳轉(zhuǎn)表一起用來(lái)快速進(jìn)入一個(gè)中斷服務(wù)子程序。LIN模塊的所有狀態(tài)在SLCSV里面都有相應(yīng)的值對(duì)應(yīng),其值不僅反映LIN模塊狀態(tài)的索引偏移量,還反映中斷的優(yōu)先級(jí)。
3 LIN節(jié)點(diǎn)在車身控制中的應(yīng)用示例
“長(zhǎng)安之星”SC6350汽車是長(zhǎng)安公司推出的具有轎車性能的微型客車,其車身電器包括:前后車燈、雨刮電機(jī)、升降車窗、中控門鎖、空調(diào)、車身儀表等,共達(dá)近百個(gè)。因?yàn)橛秒娖鞅容^多,主體設(shè)計(jì)采用CAN/LIN結(jié)合的網(wǎng)絡(luò)方式,按照用電器的就近原則,將整個(gè)車身網(wǎng)絡(luò)分成五個(gè)部分,如圖4所示。
圖4 長(zhǎng)安SC6350車身網(wǎng)絡(luò)圖
汽車前端放置高低速CAN網(wǎng)關(guān)(采用MC9S12DG128微控制器),其高速CAN與對(duì)信號(hào)的傳輸實(shí)時(shí)性要求很高的用電器如AMT、ABS、Engine相連,其低速CAN與組合開(kāi)關(guān)和大部分用電器的開(kāi)關(guān)相連。汽車前面兩側(cè)放置兩塊GZ32電路板,它控制汽車前面兩側(cè)的車燈和一些電機(jī),同時(shí)它還作為L(zhǎng)IN網(wǎng)絡(luò)中的LIN主節(jié)點(diǎn)。LIN網(wǎng)絡(luò)從節(jié)點(diǎn)(QL4電路板)放置在汽車后面兩側(cè),控制汽車后面的車燈和電機(jī)。由于汽車后部的用電器比較少,需要使用的I/O口就比較少,正好符合QL4 I/O口比較少的特點(diǎn)。
長(zhǎng)安SC6350汽車后部的用電器包括后左轉(zhuǎn)向燈、后右轉(zhuǎn)向燈、后左霧燈、后右霧燈、左后制動(dòng)燈、右后制動(dòng)燈、駐車制動(dòng)指示燈、左牌照燈、右牌照燈、后刮水電機(jī)、后除霜器等。我們將它們分成左右兩組,分別接到兩側(cè)的QL4電路板上。GZ32發(fā)送報(bào)文頭和響應(yīng)場(chǎng),QL4接收主機(jī)發(fā)送的LIN報(bào)文幀,將數(shù)據(jù)場(chǎng)各bit所攜帶的信息提取出來(lái),驅(qū)動(dòng)車燈和電機(jī)。由于用電器比較少,數(shù)據(jù)場(chǎng)只需要2個(gè)字節(jié)就足夠。數(shù)據(jù)場(chǎng)的字節(jié)分配如圖 5所示,各個(gè)bit反映相關(guān)用電器的狀態(tài),1表示燈亮和電機(jī)工作(電機(jī)采用直流電機(jī),上電即可工作,故也只有0/1兩種狀態(tài)),0表示燈滅和電機(jī)不工作。
圖5 LIN數(shù)據(jù)場(chǎng)字節(jié)分配
兩個(gè)LIN從機(jī)分別接在兩個(gè)LIN主機(jī)上,而且它們都是只接收?qǐng)?bào)文幀,不用發(fā)送響應(yīng)場(chǎng),故可用相同的標(biāo)志符0x1C。另外還有睡眠和喚醒2個(gè)命令幀,分別用LIN總線保留的標(biāo)識(shí)符0x3C和0x00來(lái)識(shí)別。
4 結(jié)束語(yǔ)
本文作者的創(chuàng)新點(diǎn)在于:根據(jù)LIN總線特點(diǎn),設(shè)計(jì)了MCU+LIN接口芯片的LIN節(jié)點(diǎn)硬件結(jié)構(gòu),實(shí)現(xiàn)了主機(jī)/從機(jī)任務(wù)的LIN網(wǎng)絡(luò)通訊,并根據(jù)長(zhǎng)安SC6350微車制定了LIN應(yīng)用層協(xié)議,構(gòu)建了一個(gè)基于CAN/LIN總線的車身網(wǎng)絡(luò)(該車身網(wǎng)絡(luò)已經(jīng)通過(guò)國(guó)家863 項(xiàng)目組的驗(yàn)收),為我國(guó)汽車LIN總線A類網(wǎng)絡(luò)高層通訊協(xié)議的制定奠定了基礎(chǔ)。
參考文獻(xiàn)
【1】 LIN Specification Package,Revision 2.0[S].Motorola Co,Sep.23.2003
【2】 佟為明,孫凡金,趙志衡.LIN總線技術(shù)[J].低壓電器,2004(2):26-29
【3】 徐春艷,劉桂霞等.基于LIN總線車燈控制系統(tǒng)的研制[J],吉林大學(xué)學(xué)報(bào).2005(4):467-471
【4】 侯樹(shù)梅,張?jiān)讫?,蘇劍.一種新型汽車車身控制低端通訊總線LIN[J],汽車技術(shù).2003(11):5-7
【5】 張廣斌,方凱,陳效肯.電動(dòng)汽車網(wǎng)絡(luò)協(xié)議應(yīng)用的研究[J],微計(jì)算機(jī)信息.2005(9Z):115-116
評(píng)論