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