0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于单片机实现CAN总线与LIN总线间的传输设计方案

电子设计 来源:电子产品世界 作者:苟伟成 2020-01-16 08:01 次阅读

引言

现场总线技术已经广泛应用于工业控制中,尤其是CAN(ControlerAreaNerwork)总线由于具有可靠性高、成本低、容易实现等优点,在现场总线实际工程应用中占有了较大份额。伴随着总线技术发展,LIN(LocalInterconnectNetwork)总线作为一种低成本串行通信网络,其目标是为现有现场总线控制网络提供辅助功能,特别是汽车控制网络中总线应用,因此必然存在一个LIN总线和其它总线通信接口实现,本文以CAN总线为例,提出了一种基于AT89C51CC03单片机CAN-LIN网关设计方案。

LIN是一种低成本串行通讯网络用于实现汽车中分布式电子系统控制,LIN目标是为现有汽车网络(例如CAN总线)提供辅助功能,因此LIN总线是一种辅助总线网络,在不需要CAN总线带宽和多功能场合比如智能传感器和制动装置之间通讯,使用LIN总线可大大节省成本。LIN通讯是基于SCI(UART)数据格式,采用单主控制器/多从设备模式,仅使用一根12V信号总线和一个无固定时间基准节点同步时钟线。

网关硬件设计

整个网关模块包括LIN接口、CAN接口、CAN波特率设置、LIN波特率设置、电源模块、状态灯六个子模块(图1)。

基于单片机实现CAN总线与LIN总线间的传输设计方案

图1 系统结构框图

AT89C51CC03是Atmel公司一款内嵌CAN控制器8位单片机。本设计中以AT89C51CC03单片机为基础,选择TJA1020作为LIN总线收发器,采用单片机UART接口,在CAN模块设计部分选择PCA82C250作为CAN总线收发器,具体电路连接如图2、图3、图4所示。

基于单片机实现CAN总线与LIN总线间的传输设计方案

图2 单片机电路

基于单片机实现CAN总线与LIN总线间的传输设计方案

图4 LIN接口电路

在电路中我们设计了一个5位拨码开关,由于在各个不同工作系统中,LIN总线和CAN总线传输是不一样,这就需要改换软件,因此在此设计中用一个5位拨码开关用于波特率设置,三位用于LIN波特率设置,两位用于CAN波特率设置。同时为了展示网关工作状态,特意设计了工作指示灯,在接收和发送信号时分别以一定频率闪烁,当有故障出现时,两个灯同时点亮。

为增强CAN节点抗干扰能力,单片机TXDC和RXDC引脚并不是直接与PCA82C250ATXD和RXD引脚相连,而是通过高速光耦6N137相连(图3)。这样很好实现了总线上各个节点间电气隔离,光耦部分电路所采用两个电源VCC和VDD必须是完全隔离,否则采用光耦也就失去了意义。

网关软件设计

网关软件设计主要包括主控程序模块和CAN模块软件设计以及LIN模块软件设计,CAN模块软件设计主要有三个子函数,一个是CAN初始化CAN_INIT(),另外两个是CAN_RE_ISR()和CAN_SEND()。CAN_INIT()主要是设置CAN通信波特率和CAN基本设置,波特率可以根据拨码开关值来设定,在系统上电之后通过自检程序自动扫描,查预先设定好波特率表格,设定CAN通信波特率。

CAN_RE_ISR()负责信息接收和处理,CAN_SEND()负责信息发送。

LIN模块软件设计主要包括几个文件:LIN.H、LIN.C、TEMR0.HTEMRO.C,其中LIN.H、LIN.C分别实现LIN规范设定以及UART波特率设定和LIN信息接收与发送,TEMR0.HTEMRO.C用于产生LIN总线波特率。主控程序设计主要完成整个网关信息转发功能,当CAN接收中断发生时,置LIN发送标志位,准备转发CAN信息到LIN网络;同样,当LIN接收中断生时,置CAN发送标志位,准备发送LIN信息到CAN网络。

整个软件以C51编写,并利用KEIL公司仿真软件进行软件调试,最后将完整程序烧写到AT89C51CC01flash空间。

结语

本文提出了基于AT89C51CC01单片机CAN-LIN网关设计,解决了现场总线控制中CAN总线控制网络和LIN总线控制网络之间信息传输问题,为现场总线灵活应用提供了基础。本设计经过现场实验,实验结果表明网关运行良好,工作可靠稳定,并已应用到实际工作中。

责任编辑:gt


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43970

    浏览量

    620767
  • 控制器
    +关注

    关注

    112

    文章

    15214

    浏览量

    171135
  • CAN总线
    +关注

    关注

    145

    文章

    1812

    浏览量

    129587
收藏 人收藏

    评论

    相关推荐

    一种CAN总线与以太网互连系统的设计方案

    本文介绍了一种CAN总线与以太网互连系统的设计方案设计方案CAN总线物理层和数据链路层基础上
    发表于 03-19 11:31 4047次阅读

    单片机总线

    率132MB/s。适于多媒体场合。  ·CAN总线(Controller Area Network)。这是一种单片机外部串行总线。采用多元竞争式结构。按设定仲裁字的方式进行
    发表于 08-05 06:09

    LIN总线特征是什么汽车CAN总线实验教学系统

    。  LIN的通信量小、配置灵活,采用单线连接及单主机/多从的通信结构(无需总线仲裁),可保证低端设备及电子控制单元简便、快捷的实时通信。  通过主机节点可将LIN与上层网络(如
    发表于 07-17 14:05

    分享一种基于AT89C51CC03单片机CAN-LIN网关设计方案

    本文以CAN总线为例,提出了一种基于AT89C51CC03单片机CAN-LIN网关设计方案
    发表于 05-17 06:56

    LIN总线通讯特点

    一帧所携带的数据。2、如下图为一个LIN节点的层次结构图:LIN1.3与LIN2.1的区别在于,LIN1.3没有TL层,Signal interaction放在Protocol层中,没
    发表于 12-09 07:49

    用87C196NT单片机实现CAN总线通信

    主要介绍CAN 总线的原理及如何用87C196NT 单片机实现基于CAN 总线的网络通信;对其硬
    发表于 04-16 14:26 34次下载

    CAN总线到VXI总线数据传输实现

    在VXI总线系统中,为了能够获得大量实时数据,需要利用CAN总线快速可靠的传输数据的性能,设计一种混合VXI总线
    发表于 07-06 16:27 13次下载

    基于AT89C51CC01单片机CAN-LIN网关设计

    本文提出了基于AT89C51CC01单片机CAN-LIN网关设计,解决了现场总线控制中的CAN总线控制网络和
    发表于 05-26 10:44 3298次阅读
    基于AT89C51CC01<b class='flag-5'>单片机</b>的<b class='flag-5'>CAN-LIN</b>网关设计

    CANLIN总线在车载网络中的应用

    can总线在汽车网络中的应用虽效率显著单成本过高,LIN线恰好弥补这一不足,本文对比了CAN/LIN总线
    发表于 06-09 17:34 108次下载
    <b class='flag-5'>CAN</b>、<b class='flag-5'>LIN</b><b class='flag-5'>总线</b>在车载网络中的应用

    基于87C196NT单片机实现CAN总线通信

    基于87C196NT单片机实现CAN总线通信
    发表于 09-04 15:26 4次下载
    基于87C196NT<b class='flag-5'>单片机</b><b class='flag-5'>实现</b><b class='flag-5'>CAN</b><b class='flag-5'>总线</b>通信

    基于FPGA的VME总线CAN总线之间的传输转换方案设计

    为了扩展VME总线CAN总线的应用范围,充分利用两种总线的不同传输特点,采用了模块设计方法,提出一种基于FPGA和MCU的
    发表于 07-17 10:11 3331次阅读
    基于FPGA的VME<b class='flag-5'>总线</b>和<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>之间的<b class='flag-5'>传输</b>转换<b class='flag-5'>方案</b>设计

    高速CAN、容错CANLIN总线的区别是什么

    都用CAN总线的话,那整车的总线架构成本将会变得很高!在一些比如车身电子配件的地方(如车窗、后视镜、大灯、车锁等),我们不需要报文像CAN总线上传输
    的头像 发表于 12-06 09:37 8072次阅读
    高速<b class='flag-5'>CAN</b>、容错<b class='flag-5'>CAN</b>、<b class='flag-5'>LIN</b><b class='flag-5'>总线</b>的区别是什么

    LIN总线是什么?CAN/LIN总线的区别与结构

    花点时间看了一些关于LIN总线基础的内容,把其中的关键点提取了出来,在这里分享给大家。在这里你可能要问“不都有CAN总线了吗?这个LIN
    的头像 发表于 03-17 17:51 2.6w次阅读
    <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>的区别与结构

    CAN总线的双绞线及光纤传输

    在分析CAN总线双绞线和光纤传输特点的基础上,提出一种基于光纤收发一体模块及CAN总线控制器SJAl000的光纤
    发表于 04-20 10:24 33次下载

    什么是LIN总线?车载总线LIN总线概述

    LIN(Local Interconnect Network)即局部连接网络,也被称为“局域网子系统”即LIN总线CAN总线网络下的子系统
    发表于 07-26 10:12 8727次阅读
    什么是<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>概述