基于A(yíng)T89C51單片機的CAN/LIN網(wǎng)關(guān)設計

發(fā)布時(shí)間:2015-10-30 11:05    發(fā)布者:designapp
關(guān)鍵詞: AT89C51 , CAN
  引言
  現場(chǎng)總線(xiàn)技術(shù)已經(jīng)廣泛應用于工業(yè)控制中,尤其是CAN(Controler Area Nerwork)總線(xiàn)由于具有可靠性高、成本低、容易實(shí)現等優(yōu)點(diǎn),在現場(chǎng)總線(xiàn)實(shí)際工程應用中占有了較大份額。伴隨著(zhù)總線(xiàn)技術(shù)發(fā)展,LIN(Local Interconnect Network)總線(xiàn)作為一種低成本串行通信網(wǎng)絡(luò ),其目標是為現有現場(chǎng)總線(xiàn)控制網(wǎng)絡(luò )提供輔助功能,特別是汽車(chē)控制網(wǎng)絡(luò )中總線(xiàn)應用,因此必然存在一個(gè)LIN總線(xiàn)和其它總線(xiàn)通信接口實(shí)現,本文以CAN總線(xiàn)為例,提出了一種基于A(yíng)T89C51CC03單片機CAN-LIN網(wǎng)關(guān)設計方案。
  LIN是一種低成本串行通訊網(wǎng)絡(luò )用于實(shí)現汽車(chē)中分布式電子系統控制,LIN目標是為現有汽車(chē)網(wǎng)絡(luò )(例如CAN總線(xiàn))提供輔助功能,因此LIN總線(xiàn)是一種輔助總線(xiàn)網(wǎng)絡(luò ),在不需要CAN總線(xiàn)帶寬和多功能場(chǎng)合比如智能傳感器和制動(dòng)裝置之間通訊,使用LIN總線(xiàn)可大大節省成本。LIN通訊是基于SCI(UART)數據格式,采用單主控制器/多從設備模式,僅使用一根12V信號總線(xiàn)和一個(gè)無(wú)固定時(shí)間基準節點(diǎn)同步時(shí)鐘線(xiàn)。
  網(wǎng)關(guān)硬件設計
  整個(gè)網(wǎng)關(guān)模塊包括LIN接口、CAN接口、CAN波特率設置、LIN波特率設置、電源模塊、狀態(tài)燈六個(gè)子模塊(圖1)。
  


  圖1 系統結構框圖
  AT89C51CC03是Atmel公司一款內嵌CAN控制器8位單片機。本設計中以AT89C51CC03單片機為基礎,選擇TJA1020作為L(cháng)IN總線(xiàn)收發(fā)器,采用單片機UART接口,在CAN模塊設計部分選擇PCA82C250作為CAN總線(xiàn)收發(fā)器,具體電路連接如圖2、圖3、圖4所示。
  


  圖2 單片機電路
  


  圖3 CAN接口電路
  


  圖4 LIN接口電路
  在電路中我們設計了一個(gè)5位撥碼開(kāi)關(guān),由于在各個(gè)不同工作系統中,LIN總線(xiàn)和CAN總線(xiàn)傳輸是不一樣,這就需要改換軟件,因此在此設計中用一個(gè)5位撥碼開(kāi)關(guān)用于波特率設置,三位用于LIN波特率設置,兩位用于CAN波特率設置。同時(shí)為了展示網(wǎng)關(guān)工作狀態(tài),特意設計了工作指示燈,在接收和發(fā)送信號時(shí)分別以一定頻率閃爍,當有故障出現時(shí),兩個(gè)燈同時(shí)點(diǎn)亮。
  為增強CAN節點(diǎn)抗干擾能力,單片機TXDC和RXDC引腳并不是直接與PCA82C250ATXD和RXD引腳相連,而是通過(guò)高速光耦6N137相連(圖3)。這樣很好實(shí)現了總線(xiàn)上各個(gè)節點(diǎn)間電氣隔離,光耦部分電路所采用兩個(gè)電源VCC和VDD必須是完全隔離,否則采用光耦也就失去了意義。
  網(wǎng)關(guān)軟件設計
  網(wǎng)關(guān)軟件設計主要包括主控程序模塊和CAN模塊軟件設計以及LIN模塊軟件設計,CAN模塊軟件設計主要有三個(gè)子函數,一個(gè)是CAN初始化CAN_INIT(),另外兩個(gè)是CAN_RE_ISR()和CAN_SEND()。CAN_INIT()主要是設置CAN通信波特率和CAN基本設置,波特率可以根據撥碼開(kāi)關(guān)值來(lái)設定,在系統上電之后通過(guò)自檢程序自動(dòng)掃描,查預先設定好波特率表格,設定CAN通信波特率。
  CAN_RE_ISR()負責信息接收和處理,CAN_SEND()負責信息發(fā)送。
  LIN模塊軟件設計主要包括幾個(gè)文件:LIN.H、LIN.C、TEMR0.H TEMRO.C,其中LIN.H、LIN.C分別實(shí)現LIN規范設定以及UART波特率設定和LIN信息接收與發(fā)送,TEMR0.H TEMRO.C用于產(chǎn)生LIN總線(xiàn)波特率。主控程序設計主要完成整個(gè)網(wǎng)關(guān)信息轉發(fā)功能,當CAN接收中斷發(fā)生時(shí),置LIN發(fā)送標志位,準備轉發(fā)CAN信息到LIN網(wǎng)絡(luò );同樣,當LIN接收中斷生時(shí),置CAN發(fā)送標志位,準備發(fā)送LIN信息到CAN網(wǎng)絡(luò )。
  整個(gè)軟件以C51編寫(xiě),并利用KEIL公司仿真軟件進(jìn)行軟件調試,最后將完整程序燒寫(xiě)到AT89C51CC01flash空間。
  結語(yǔ)
  本文提出了基于A(yíng)T89C51CC01單片機CAN-LIN網(wǎng)關(guān)設計,解決了現場(chǎng)總線(xiàn)控制中CAN總線(xiàn)控制網(wǎng)絡(luò )和LIN總線(xiàn)控制網(wǎng)絡(luò )之間信息傳輸問(wèn)題,為現場(chǎng)總線(xiàn)靈活應用提供了基礎。本設計經(jīng)過(guò)現場(chǎng)實(shí)驗,實(shí)驗結果表明網(wǎng)關(guān)運行良好,工作可靠穩定,并已應用到實(shí)際工作中。
                               
               
本文地址:http://selenalain.com/thread-155136-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页