碧波液压网 欢迎你,游客。 登录 注册

基于双51单片机的CAN总线中继器设计

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

   引 言

  CAN总线以其开发维护成本低、总线利用率高、传输距离远(最远可达10 km)、传输速率高(最高可达1 Mbps)使用户能组建稳定、高效的现场总线网络。CAN总线已被广泛应用到各个自动化控制系统中,例如汽车电子、自动控制、智能大厦、电力系统、安防监控等领域。随着CAN总线网络区域的扩大,2个节点之间的直接数据传输将难以满足远距离通信要求。CAN中继器是延长CAN总线通信距离的中转站,其通信效率和通信可靠性直接影响CAN总线的通信能力。传统的基于单MCU的CAN中继器难以满足大量数据的中转要求,本文基于双MCU设计高性能的CAN总线中继器。

  1 系统总体设计

  CY7C136是2 KB高速CMOS静态RAM。同一片RAM上有2组数据线和2组地址线,对每个端口的控制是相互独立的,可分别在存储器的任意位置存取数据。

  双口RAM作为2个MCU的共享资源,一个端口与MCUl相连,另一个端口与MCU2相连。从SJAlOOOCAN总线接口1接收来的数据送入双口RAM,这些数据被MCU2取走并送到SJAl000 CAN总线接口2上;从SJAl000 CAN总线接口2接收来的数据也送入双口RAM,并被MCUl取走送到SJAl000 CAN总线接口1上。由于MCU的地址总线和数据总线是复用的,因此采用锁存器进行地址锁存,硬件总体结构如图1所示。

图1

  2 硬件电路实现

  电路中使用的2片MCU为8051系列单片机AT89C52,成本低、开发周期短、易于实现、可靠性高。MCUl与MCU2之间通过P1口的P1.5、P1.6、P1.7进行联络与应答,保证系统存储空间访问的安全性。

  2.1 MCU主控制电路

  MCUl(AT89C52片1)连接的外围设备有双口RAM和CAN总线控制器。为了防止地址冲突,采用74LS138译码器进行地址译码。AT89C52的PO为地址/数据复用口,采用74HC573作为地址锁存器。由于MCUl和MCU2电路原理相同,本文只介绍MCUl控制电路。MCUl电路原理如图2所示。

图2

  2.2 双口RAM接口电路

  双口RAM电路接口如图3所示。双口RAM芯片CY7C136作为2个MCU数据的中转站,分别与2个MCU的相应引脚相连。其中CY7C136引脚I/O0L~1/O7L与第1片AT89C52(MCUl)的PO相连,引脚I/OOR~I/O7R与第2片AT89C52(MCU2)相连。YOAOUT为MCU1读写双口RAM的片选信号,Y1AOUT为MCU2读写双口RAM的片选信号,并将MCU的读写控制信号线与双口RAM的相应读写控制信号线相连。

图3

  2.3 CAN总线控制器接口电路

  CAN总线控制器采用sJAl000。74LSl38译码器的YO引脚输出作为SJAl000的片选信号。中断引脚连接MCUl的INTO,作为处理CAN接收中断的触发信号。电路原理如图4所示。

图4

  3 软件设计实现

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论