DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 926|回复: 0
打印 上一主题 下一主题

[接口电路] 基于AT89C51单片机的CAN/LIN网关设计

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 14:36:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
引言    现场总线技术已经广泛应用于工业控制中,尤其是CAN(Controler Area Nerwork)总线由于具有可靠性高、成本低、容易实现等优点,在现场总线实际工程应用中占有了较大份额。伴随着总线技术发展,LIN(Local Interconnect Network)总线作为一种低成本串行通信网络,其目标是为现有现场总线控制网络提供辅助功能,特别是汽车控制网络中总线应用,因此必然存在一个LIN总线和其它总线通信接口实现,本文以CAN总线为例,提出了一种基于AT89C51CC03单片机CAN-LIN网关设计方案。
    LIN是一种低成本串行通讯网络用于实现汽车中分布式电子系统控制,LIN目标是为现有汽车网络(例如CAN总线)提供辅助功能,因此LIN总线是一种辅助总线网络,在不需要CAN总线带宽和多功能场合比如智能传感器和制动装置之间通讯,使用LIN总线可大大节省成本。LIN通讯是基于SCI(UART)数据格式,采用单主控制器/多从设备模式,仅使用一根12V信号总线和一个无固定时间基准节点同步时钟线。
网关硬件设计
    整个网关模块包括LIN接口、CAN接口、CAN波特率设置、LIN波特率设置、电源模块、状态灯六个子模块(图1)。

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

图2 单片机电路

图3 CAN接口电路

图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.H TEMRO.C,其中LIN.H、LIN.C分别实现LIN规范设定以及UART波特率设定和LIN信息接收与发送,TEMR0.H TEMRO.C用于产生LIN总线波特率。主控程序设计主要完成整个网关信息转发功能,当CAN接收中断发生时,置LIN发送标志位,准备转发CAN信息到LIN网络;同样,当LIN接收中断生时,置CAN发送标志位,准备发送LIN信息到CAN网络。
                                
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-5-10 14:34 , 耗时 0.083369 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表