<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于M68HC08的LIN節(jié)點設計與實現(xiàn)

          基于M68HC08的LIN節(jié)點設計與實現(xiàn)

          作者: 時間:2012-01-19 來源:網(wǎng)絡 收藏

          引言

          隨著汽車電子業(yè)的飛速發(fā)展,車輛上的電子裝置越來越多,電子裝置之間的控制也越來越復雜。傳統(tǒng)的布線連接方式,不僅使線束變得更加粗大、質(zhì)量增加,使車內(nèi)可利用的空間變小,且由于線路復雜,故障率增加,還會給維修帶來很大的不便。通過車用現(xiàn)場總線技術建立車身控制局域網(wǎng),對汽車電子裝置、電器設備進行管理和控制,實現(xiàn)分布式多路傳輸,大大簡化汽車的線束,減輕線束的質(zhì)量,提高了系統(tǒng)工作的可靠性、穩(wěn)定性。

          (Local Interconnect Network)是由汽車廠商專門為汽車開發(fā)的一種低成本串行通信網(wǎng)絡,用于實現(xiàn)汽車中的分布式電子系統(tǒng)控制,其主要目的是為現(xiàn)有的汽車控制網(wǎng)絡 CAN(Control Area Network)提供輔助功能。在對CAN總線通信要求低的場合,諸如智能傳感器和制動裝置之間的通信,使用總線可大大降低成本。

          總線介紹

          LIN是一個串行通訊協(xié)議,它有效地支持汽車應用中分布式機械電子節(jié)點的控制。LIN總線控制方式是帶單主機節(jié)點和一組從機節(jié)點的A 類(10kbit/s(低速))多點總線。

          1.1 LIN總線特點

          (1) 采用低成本單線12V進行數(shù)據(jù)傳輸,線的驅動和接收特性符合改進的IS09141單線標準;(2) 傳輸速率可達20kbit/s;(3) 采用單主/多從結構,不需要總線仲裁,由來控制總線的訪問;(4) 基于通用UART/SCI的硬件接口,可使用低成本的半導體工藝實現(xiàn),幾乎所有的都有LIN必需的硬件;(5) 不需要晶振或陶瓷振蕩器就可實現(xiàn)自同步,從而減少了的硬件成本;(6) 能保證最差狀況下信號傳送的等待時間,可避免總線訪問沖突。

          1.2 LIN總線通信機制

          LIN總線是基于SCI(UART)數(shù)據(jù)格式,采用單主控制器/多從設備的模式,僅使用一根12V信號總線。一個LIN 網(wǎng)絡由一個、一個或多個組成。所有節(jié)點都有一個從通訊任務,該通訊任務按功能分為發(fā)送任務和接收任務。還有一個主發(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é)點設計

          2.1 系列芯片簡介

          Motorola 的是一種高性能的8位單片機系列,具有速度快、功能強和價格低等特點。它的CPU與M68HC05單片機向上兼容,具有16位變址寄存器和堆棧指針,有200余條指令和10余種尋址方式,最快指令周期僅為0.125μS。

          2.2 LIN主節(jié)點設計

          本設計選用系列的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和外圍設備及其它MCU異步通信,故它可以作為LIN的主結點。由于MC68HC908GZ32內(nèi)部帶有CAN控制器(MSCAN08),因此它除了能夠作為LIN的主節(jié)點,還可以作為CAN/LIN網(wǎng)關。

          本設計選用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ā)送主機任務,本設計采用中斷的方式發(fā)送主機任務。首先發(fā)送同步間隔(13個bit的顯性電平加1個bit的隱性電平),GZ32里面專門用中止位(SBK)來發(fā)送同步間隔。將寄存器SCC2中的發(fā)送中止位SBK置1即會裝載中止符(全0)置發(fā)送移位寄存器,再將SBK置0,移位寄存器中止最后一個中止符且至少發(fā)送1個邏輯1,構成13個bit的低電平和1個bit的高電平。同步間隔是區(qū)別全零數(shù)據(jù)字節(jié)的關鍵,必須按照這種方式發(fā)送才能把它與全零字節(jié)區(qū)別開來。然后按照SCI串行格式發(fā)送同步場0x55和標志符場。如果主節(jié)點還有從機發(fā)送任務,還需要按照SCI串行格式發(fā)送數(shù)據(jù)場和校驗和場。

          2.3 LIN從節(jié)點設計

          本設計選用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口共享其引腳。它有以下特點:

          ·自動的波特率設置和LIN信息幀同步

          ·自動識別和確認LIN信息的同步間隔和同步場

          ·自動計算校驗和場和確認錯誤報告

          ·無錯誤的情況下每個標準LIN信息幀可有最多2個中斷

          ·高速的LIN可以從83.33 kbps 到 120.00 kbps

          本設計選用16腳TSSOP封裝的QL4芯片,VDD接+5V電源,SLCTX、SLCRX引腳分別接LIN的收發(fā)器(TJA1020)的TXD、RXD引腳。經(jīng)過收發(fā)器LIN引腳進來+12V的LIN信號,經(jīng)過收發(fā)器轉換成+5V的接受和發(fā)送信號,分別傳到QL4的接受和發(fā)送引腳。

          圖3 LIN從節(jié)點電路原理圖

          從節(jié)點在初始化完成后,其它操作都在中斷里面完成。SLIC狀態(tài)向量寄存器(SLCSV)提供一個索引偏移量直接反映 LIN模塊當前的工作狀態(tài),它可以和用戶提供的跳轉表一起用來快速進入一個中斷服務子程序。LIN模塊的所有狀態(tài)在SLCSV里面都有相應的值對應,其值不僅反映LIN模塊狀態(tài)的索引偏移量,還反映中斷的優(yōu)先級。

          3 LIN節(jié)點在車身控制中的應用示例

          “長安之星”SC6350汽車是長安公司推出的具有轎車性能的微型客車,其車身電器包括:前后車燈、雨刮電機、升降車窗、中控門鎖、空調(diào)、車身儀表等,共達近百個。因為用電器比較多,主體設計采用CAN/LIN結合的網(wǎng)絡方式,按照用電器的就近原則,將整個車身網(wǎng)絡分成五個部分,如圖4所示。

          圖4 長安SC6350車身網(wǎng)絡圖

          汽車前端放置高低速CAN網(wǎng)關(采用MC9S12DG128),其高速CAN與對信號的傳輸實時性要求很高的用電器如AMT、ABS、Engine相連,其低速CAN與組合開關和大部分用電器的開關相連。汽車前面兩側放置兩塊GZ32電路板,它控制汽車前面兩側的車燈和一些電機,同時它還作為LIN網(wǎng)絡中的LIN主節(jié)點。LIN網(wǎng)絡從節(jié)點(QL4電路板)放置在汽車后面兩側,控制汽車后面的車燈和電機。由于汽車后部的用電器比較少,需要使用的I/O口就比較少,正好符合QL4 I/O口比較少的特點。

          長安SC6350汽車后部的用電器包括后左轉向燈、后右轉向燈、后左霧燈、后右霧燈、左后制動燈、右后制動燈、駐車制動指示燈、左牌照燈、右牌照燈、后刮水電機、后除霜器等。我們將它們分成左右兩組,分別接到兩側的QL4電路板上。GZ32發(fā)送報文頭和響應場,QL4接收主機發(fā)送的LIN報文幀,將數(shù)據(jù)場各bit所攜帶的信息提取出來,驅動車燈和電機。由于用電器比較少,數(shù)據(jù)場只需要2個字節(jié)就足夠。數(shù)據(jù)場的字節(jié)分配如圖 5所示,各個bit反映相關用電器的狀態(tài),1表示燈亮和電機工作(電機采用直流電機,上電即可工作,故也只有0/1兩種狀態(tài)),0表示燈滅和電機不工作。

          圖5 LIN數(shù)據(jù)場字節(jié)分配

          兩個LIN從機分別接在兩個LIN主機上,而且它們都是只接收報文幀,不用發(fā)送響應場,故可用相同的標志符0x1C。另外還有睡眠和喚醒2個命令幀,分別用LIN總線保留的標識符0x3C和0x00來識別。

          4 結束語

          本文作者的創(chuàng)新點在于:根據(jù)LIN總線特點,設計了MCU+LIN接口芯片的LIN節(jié)點硬件結構,實現(xiàn)了主機/從機任務的LIN網(wǎng)絡通訊,并根據(jù)長安SC6350微車制定了LIN應用層協(xié)議,構建了一個基于CAN/LIN總線的車身網(wǎng)絡(該車身網(wǎng)絡已經(jīng)通過國家863 項目組的驗收),為我國汽車LIN總線A類網(wǎng)絡高層通訊協(xié)議的制定奠定了基礎。

          參考文獻

          【1】 LIN Specification Package,Revision 2.0[S].Motorola Co,Sep.23.2003

          【2】 佟為明,孫凡金,趙志衡.LIN總線技術[J].低壓電器,2004(2):26-29

          【3】 徐春艷,劉桂霞等.基于LIN總線車燈控制系統(tǒng)的研制[J],吉林大學學報.2005(4):467-471

          【4】 侯樹梅,張云龍,蘇劍.一種新型汽車車身控制低端通訊總線LIN[J],汽車技術.2003(11):5-7

          【5】 張廣斌,方凱,陳效肯.電動汽車網(wǎng)絡協(xié)議應用的研究[J],微計算機信息.2005(9Z):115-116



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();