|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
基于AT89C51CC01单片机的CAN—LIN网关设计 |
作者:scb521 栏目:单片机 |
关键词: AT89C51CC03;CAN总线;LIN总线;网关 引言 现场总线技术已经广泛的应用于工业控制中,尤其是CAN(Controler Area Nerwork)总线由于具有可靠性高、成本低、容易实现等优点,在现场总线的实际工程应用中占有了较大的份额。伴随着总线技术的发展,LIN(Local Interconnect Network)总线作为一种低成本的串行通信网络,其目标是为现有的现场总线控制网络提供辅助功能,特别是汽车控制网络中的总线应用,因此必然存在一个LIN总线和其它总线的通信接口实现,本文以CAN总线为例,提出了一种基于AT89C51CC03单片机的CAN-LIN网关设计方案。 LIN是一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制,LIN 的目标是为现有汽车网络(例如CAN 总线)提供辅助功能,因此LIN总线是一种辅助的总线网络,在不需要CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯,使用LIN 总线可大大节省成本。LIN通讯是基于SCI(UART)数据格式,采用单主控制器/多从设备的模式,仅使用一根12V 信号总线和一个无固定时间基准的节点同步时钟线。 |
2楼: | >>参与讨论 |
作者: scb521 于 2007/3/15 23:28:59 发布:
网关硬件设计 整个网关模块包括LIN接口、CAN接口、CAN波特率设置、LIN波特率设置、电源模块、状态灯六个子模块(图1)。 图1 系统结构框图 |
3楼: | >>参与讨论 |
作者: scb521 于 2007/3/15 23:30:20 发布:
AT89C51CC03是ATMEL公司的一款内嵌CAN控制器的8位单片机。本设计中以AT89C51CC03单片机为基础,选择TJA1020作为LIN总线收发器,采用单片机的UART接口,在CAN模块设计部分选择PCA82C250作为CAN总线收发器,具体的电路连接如图2、图3、图4所示。 图2 单片机电路 图3 CAN接口电路 图4 LIN接口电路 |
4楼: | >>参与讨论 |
作者: scb521 于 2007/3/15 23:31:26 发布:
网关软件设计 网关的软件设计主要包括主控程序模块和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网络。 整个软件以C51编写,并利用KEIL 公司的仿真软件进行软件调试,最后将完整程序烧写到AT89C51CC01的FLASH空间。 结语 本文提出了基于AT89C51CC01单片机的CAN-LIN网关设计,解决了现场总线控制中的CAN总线控制网络和LIN总线控制网络之间的信息传输问题,为现场总线的灵活应用提供了基础。本设计经过现场实验,实验结果表明网关运行良好,工作可靠稳定,并已应用到实际工作中。 参考文献: 1. TJA1020 LIN 收发器手册,广东周立功发展有限公司 2. LIN Protocol Implementation on the AT89C51CC03,ATMEL公司,4189B-AUTO-04/05 |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |