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

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設計應用 > 基于AT89C51CC01單片機的CAN—LIN網(wǎng)關設計

          基于AT89C51CC01單片機的CAN—LIN網(wǎng)關設計

          ——
          作者:長安大學(西安)教育部“道路施工技術與設備”重點實驗室 茍偉成 時間:2006-08-13 來源:電子產(chǎn)品世界 收藏

          摘要:    本文以AT89C51CC03單片機為基礎,提出了一種CAN—LIN網(wǎng)關的解決方案,并給出了其硬件設計電路和軟件設計。

          關鍵詞:    AT89C51CC03;CAN總線;LIN總線;網(wǎng)關

          引言

          現(xiàn)場總線技術已經(jīng)廣泛的應用于工業(yè)控制中,尤其是CAN(Controler Area Nerwork)總線由于具有可靠性高、成本低、容易實現(xiàn)等優(yōu)點,在現(xiàn)場總線的實際工程應用中占有了較大的份額。伴隨著總線技術的發(fā)展,LIN(Local  Interconnect  Network)總線作為一種低成本的串行通信,其目標是為現(xiàn)有的現(xiàn)場總線控制提供輔助功能,特別是汽車控制中的總線應用,因此必然存在一個LIN總線和其它總線的通信接口實現(xiàn),本文以CAN總線為例,提出了一種基于AT89C51CC03單片機的CAN-LIN網(wǎng)關設計方案。 

          LIN是一種低成本的串行網(wǎng)絡用于實現(xiàn)汽車中的分布式電子系統(tǒng)控制,LIN 的目標是為現(xiàn)有汽車網(wǎng)絡(例如CAN 總線)提供輔助功能,因此LIN總線是一種輔助的總線網(wǎng)絡,在不需要CAN 總線的帶寬和多功能的場合比如智能傳感器和制動裝置之間的,使用LIN 總線可大大節(jié)省成本。LIN是基于SCI(UART)數(shù)據(jù)格式,采用單主控制器/多從設備的模式,僅使用一根12V 信號總線和一個無固定時間基準的節(jié)點同步時鐘線。

          網(wǎng)關硬件設計

          整個網(wǎng)關模塊包括LIN接口、CAN接口、CAN波特率設置、LIN波特率設置、電源模塊、狀態(tài)燈六個子模塊(圖1)。

          圖1  系統(tǒng)結構框圖 

          AT89C51CC03是Atmel公司的一款內(nèi)嵌CAN控制器的8位單片機。本設計中以AT89C51CC03單片機為基礎,選擇TJA1020作為LIN總線收發(fā)器,采用單片機的UART接口,在CAN模塊設計部分選擇PCA82C250作為CAN總線收發(fā)器,具體的電路連接如圖2、圖3、圖4所示。

          圖2 單片機電路

          圖3 CAN接口電路

          圖4 LIN接口電路 

          在電路中我們設計了一個5位的撥碼開關,由于在各個不同的工作系統(tǒng)中,LIN總線和CAN總線的傳輸是不一樣的,這就需要改換軟件,因此在此設計中用一個5位的撥碼開關用于波特率設置,三位用于LIN波特率設置,兩位用于CAN波特率設置。同時為了展示網(wǎng)關的工作狀態(tài),特意設計了工作指示燈,在接收和發(fā)送信號時分別以一定的頻率閃爍,當有故障出現(xiàn)時,兩個燈同時點亮。

          為增強CAN節(jié)點的抗干擾能力,單片機的TXDC和RXDC引腳并不是直接與PCA82C250A的TXD和RXD引腳相連,而是通過高速光耦6N137相連(圖3)。 這樣很好的實現(xiàn)了總線上各個節(jié)點間的電氣隔離,光耦部分電路所采用的兩個電源VCC和VDD必須是完全隔離的,否則采用光耦也就失去了意義。

          網(wǎng)關軟件設計

          網(wǎng)關的軟件設計主要包括主控程序模塊和CAN模塊軟件設計以及LIN模塊軟件設計,CAN模塊軟件設計主要有三個子函數(shù),一個是CAN初始化CAN_INIT(),另外兩個是CAN_RE_ISR( )和CAN_SEND()。CAN_INIT()主要是設置CAN通信的波特率和CAN基本設置,波特率可以根據(jù)撥碼開關的值來設定,在系統(tǒng)上電之后通過自檢程序自動掃描,查預先設定好的波特率表格,設定CAN通信波特率。
          CAN_RE_ISR()負責信息的接收和處理,CAN_SEND( )負責信息發(fā)送。

          LIN模塊軟件設計主要包括幾個文件:LIN.H、LIN.C、TEMR0.H TEMRO.C,其中LIN.H、LIN.C分別實現(xiàn) LIN規(guī)范的設定以及UART波特率的設定和LIN信息的接收與發(fā)送,TEMR0.H TEMRO.C用于產(chǎn)生LIN總線波特率。主控程序設計主要完成整個網(wǎng)關的信息轉(zhuǎn)發(fā)功能,當CAN接收中斷發(fā)生時,置LIN發(fā)送標志位,準備轉(zhuǎn)發(fā)CAN信息到LIN網(wǎng)絡;同樣,當LIN接收中斷生時,置CAN發(fā)送標志位,準備發(fā)送LIN信息到CAN網(wǎng)絡。

          整個軟件以C51編寫,并利用KEIL 公司的仿真軟件進行軟件調(diào)試,最后將完整程序燒寫到AT89C51CC01的flash空間。

          結語

          本文提出了基于AT89C51CC01單片機的CAN-LIN網(wǎng)關設計,解決了現(xiàn)場總線控制中的CAN總線控制網(wǎng)絡和LIN總線控制網(wǎng)絡之間的信息傳輸問題,為現(xiàn)場總線的靈活應用提供了基礎。本設計經(jīng)過現(xiàn)場實驗,實驗結果表明網(wǎng)關運行良好,工作可靠穩(wěn)定,并已應用到實際工作中。

          參考文獻:
          1.   TJA1020 LIN 收發(fā)器手冊,廣東周立功發(fā)展有限公司
          2.    LIN Protocol Implementation on the AT89C51CC03,Atmel公司,4189B-AUTO-04/05



          評論


          相關推薦

          技術專區(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); })();