0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于單片機實現(xiàn)CAN總線與LIN總線間的傳輸設(shè)計方案

電子設(shè)計 ? 來源:電子產(chǎn)品世界 ? 作者:茍偉成 ? 2020-01-16 08:01 ? 次閱讀

引言

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

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

網(wǎng)關(guān)硬件設(shè)計

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

基于單片機實現(xiàn)CAN總線與LIN總線間的傳輸設(shè)計方案

圖1 系統(tǒng)結(jié)構(gòu)框圖

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

基于單片機實現(xiàn)CAN總線與LIN總線間的傳輸設(shè)計方案

圖2 單片機電路

基于單片機實現(xiàn)CAN總線與LIN總線間的傳輸設(shè)計方案

圖4 LIN接口電路

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

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

網(wǎng)關(guān)軟件設(shè)計

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

CAN_RE_ISR()負(fù)責(zé)信息接收和處理,CAN_SEND()負(fù)責(zé)信息發(fā)送。

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

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

結(jié)語

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

責(zé)任編輯:gt


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6026

    文章

    44452

    瀏覽量

    630807
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16028

    瀏覽量

    176639
  • CAN總線
    +關(guān)注

    關(guān)注

    145

    文章

    1906

    瀏覽量

    130501
收藏 人收藏

    評論

    相關(guān)推薦

    分享一種基于AT89C51CC03單片機CAN-LIN網(wǎng)關(guān)設(shè)計方案

    本文以CAN總線為例,提出了一種基于AT89C51CC03單片機CAN-LIN網(wǎng)關(guān)設(shè)計方案
    發(fā)表于 05-17 06:56

    用87C196NT單片機實現(xiàn)CAN總線通信

    主要介紹CAN 總線的原理及如何用87C196NT 單片機實現(xiàn)基于CAN 總線的網(wǎng)絡(luò)通信;對其硬
    發(fā)表于 04-16 14:26 ?34次下載

    基于CAN總線智能節(jié)點設(shè)計

    CAN總線是一種應(yīng)用極為普及的現(xiàn)場總線。文中提出了一種CAN總線通信接口的設(shè)計方案。
    發(fā)表于 01-25 15:04 ?52次下載

    基于AT89C51CC01單片機CAN-LIN網(wǎng)關(guān)設(shè)計

    本文提出了基于AT89C51CC01單片機CAN-LIN網(wǎng)關(guān)設(shè)計,解決了現(xiàn)場總線控制中的CAN總線控制網(wǎng)絡(luò)和
    發(fā)表于 05-26 10:44 ?3442次閱讀
    基于AT89C51CC01<b class='flag-5'>單片機</b>的<b class='flag-5'>CAN-LIN</b>網(wǎng)關(guān)設(shè)計

    CAN、LIN總線在車載網(wǎng)絡(luò)中的應(yīng)用

    can總線在汽車網(wǎng)絡(luò)中的應(yīng)用雖效率顯著單成本過高,LIN線恰好彌補這一不足,本文對比了CAN/LIN總線
    發(fā)表于 06-09 17:34 ?108次下載
    <b class='flag-5'>CAN</b>、<b class='flag-5'>LIN</b><b class='flag-5'>總線</b>在車載網(wǎng)絡(luò)中的應(yīng)用

    CAN總線+單片機實現(xiàn)通信網(wǎng)絡(luò)設(shè)計

    在分析了RS-485總線CAN部遲疑不決的異同點后,以PCA82C250型接口電路為例提出了用CAN總線通信物理層接口電路來替代RS-485總線
    發(fā)表于 09-27 15:40 ?6458次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>+<b class='flag-5'>單片機</b><b class='flag-5'>實現(xiàn)</b>通信網(wǎng)絡(luò)設(shè)計

    基于AVR單片機CAN總線設(shè)計

    CAN總線是幾種最有前途的現(xiàn)場總線之一。但是CAN總線開發(fā)需要一定的技術(shù)基礎(chǔ),如何在較短的時間內(nèi)開發(fā)出一套可靠性高、實時性好的
    發(fā)表于 10-11 15:35 ?34次下載

    基于STM32單片機CAN總線分析儀的設(shè)計

    基于STM32單片機CAN總線分析儀的設(shè)計
    發(fā)表于 01-24 16:54 ?41次下載

    基于87C196NT單片機實現(xiàn)CAN總線通信

    基于87C196NT單片機實現(xiàn)CAN總線通信
    發(fā)表于 09-04 15:26 ?4次下載
    基于87C196NT<b class='flag-5'>單片機</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>CAN</b><b class='flag-5'>總線</b>通信

    基于FPGA的VME總線CAN總線之間的傳輸轉(zhuǎn)換方案設(shè)計

    為了擴展VME總線CAN總線的應(yīng)用范圍,充分利用兩種總線的不同傳輸特點,采用了模塊設(shè)計方法,提出一種基于FPGA和MCU的
    發(fā)表于 07-17 10:11 ?3651次閱讀
    基于FPGA的VME<b class='flag-5'>總線</b>和<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>之間的<b class='flag-5'>傳輸</b>轉(zhuǎn)換<b class='flag-5'>方案</b>設(shè)計

    基于MCS-51單片機CAN總線控制器實現(xiàn)總線節(jié)點的設(shè)計

    控制等領(lǐng)域。在CAN總線的節(jié)點設(shè)計中,目前應(yīng)用較多的是通過單片機的控制來實現(xiàn)。有的單片機已經(jīng)嵌入了CAN
    的頭像 發(fā)表于 04-12 07:48 ?7125次閱讀
    基于MCS-51<b class='flag-5'>單片機</b>和<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>控制器<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>總線</b>節(jié)點的設(shè)計

    高速CAN、容錯CAN、LIN總線的區(qū)別是什么

    都用CAN總線的話,那整車的總線架構(gòu)成本將會變得很高!在一些比如車身電子配件的地方(如車窗、后視鏡、大燈、車鎖等),我們不需要報文像CAN總線上傳輸
    的頭像 發(fā)表于 12-06 09:37 ?8515次閱讀
    高速<b class='flag-5'>CAN</b>、容錯<b class='flag-5'>CAN</b>、<b class='flag-5'>LIN</b><b class='flag-5'>總線</b>的區(qū)別是什么

    LIN總線是什么?CAN/LIN總線的區(qū)別與結(jié)構(gòu)

    花點時間看了一些關(guān)于LIN總線基礎(chǔ)的內(nèi)容,把其中的關(guān)鍵點提取了出來,在這里分享給大家。在這里你可能要問“不都有CAN總線了嗎?這個LIN
    的頭像 發(fā)表于 03-17 17:51 ?2.7w次閱讀
    <b class='flag-5'>LIN</b><b class='flag-5'>總線</b>是什么?<b class='flag-5'>CAN</b>/<b class='flag-5'>LIN</b><b class='flag-5'>總線</b>的區(qū)別與結(jié)構(gòu)

    CAN總線的雙絞線及光纖傳輸

    在分析CAN總線雙絞線和光纖傳輸特點的基礎(chǔ)上,提出一種基于光纖收發(fā)一體模塊及CAN總線控制器SJAl000的光纖
    發(fā)表于 04-20 10:24 ?33次下載

    什么是LIN總線?車載總線LIN總線概述

    LIN(Local Interconnect Network)即局部連接網(wǎng)絡(luò),也被稱為“局域網(wǎng)子系統(tǒng)”即LIN總線CAN總線網(wǎng)絡(luò)下的子系統(tǒng)
    發(fā)表于 07-26 10:12 ?1.5w次閱讀
    什么是<b class='flag-5'>LIN</b><b class='flag-5'>總線</b>?車載<b class='flag-5'>總線</b>之<b class='flag-5'>LIN</b><b class='flag-5'>總線</b>概述