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