[资料] 双MCU的CAN总线中继器设计

[复制链接]

技术员

发表于 2012-1-12 10:11:26   1060 查看 1 回复 显示全部楼层 倒序浏览
分享
本帖最后由 东风恶 于 2012-1-12 10:12 编辑

  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所示。


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 双口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的相应读写控制信号线相连。



2.3 CAN总线控制器接口电路


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

3、软件设计实现

3.1 存储空间分配思想


  为使双口RAM实现最高效率的应用,将2 KB的存储空间设计成2个1 KB大小的环形队列形式,每一个环形队列的结构如图5所示(图中阴影部分为存有数据的区域,非阴影区域为空闲区域)。

3.2 程序控制流程

  中继器只是中转来自总线上的数据,而这些数据是随机的,因此接收采用中断的方式。某一时刻只要SJAl000成功接收一帧数据,就会向负责本端口的MCU申请中断,进行数据接收,并将数据送入环形队列queue。

  当环形队列中有待发送的数据时,程序的处理流程如图6所示(其中,tail和bead分别为环形队列的尾指针和头指针)。MCU首先获取对方环形队列中的信息,主要是查看环形队列信息是否为空,如果为空则不对其操作。如果不为空,则队列中有待发送的信息,于是启动一次信息发送。如果发送成功,则通过联络信号通知对方修改环形队列指针。


4、测试

  对基于双口RAM的双MCU中继器进行压力测试(高数据负载率下测试)。短距离内向2个CAN口加载10 000帧数据,测试中继器成功中转情况,其结果如表1所列(表身数据为成功中转帧数)。根据CAN总线规定,其平均负载率不超过65%,传统的单MCU CAN中继器平均负载率很难达到60%。从表1可以看出,引入双MCU后CAN中继器的性能大大提高,能在负载率超过60%的情况下稳定工作。环形队列queue溢出的情况可以通过增加双口RAM的大小来解决。



  采用双MCU配合双口RAM设计CAN总线中继器,解决了单MCU无法快速处理CAN总线负载过重的问题,使其性能和效率得到了很大提高,为CAN中继器在工程领域的优化设计提供了良好的技术平台和解决方案。 (转自中华电子网)

标签:中继器

技术员

发表于 2018-1-13 23:23:20  
学习一下,谢谢,谢谢!
回复

点赞 举报

高级模式
您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐 上一条 /9 下一条

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

推荐专区

技术干货集中营

专家问答

方案交易

用户帮助┃咨询与建议┃版主议事

工程师杂谈

项目|工程师创意

招聘|求职}工程师职场

论坛电子赛事

社区活动专版

发烧友活动

-

嵌入式论坛

ARM技术论坛

Android论坛

Linux论坛

单片机/MCU论坛

MSP430技术论坛

FPGA|CPLD|ASIC论坛

STM32/STM8技术论坛

NXP MCU 技术论坛

PIC单片机论坛

DSP论坛

瑞萨单片机论坛

嵌入式系统论坛

-

电源技术论坛

电源技术论坛

无线充电技术

-

硬件设计论坛

PCB设计论坛

电路设计论坛

电子元器件论坛

控制|传感

总线技术|接口技术

-

测试测量论坛

LabVIEW论坛

Matlab论坛

测试测量技术专区

仪器仪表技术专区

-

EDA设计论坛

multisim论坛

PADS技术论坛

Protel|AD|DXP论坛

Allegro论坛

proteus论坛|仿真论坛

EasyEDA-中国人自已的EDA工具

Orcad论坛

-

综合技术与应用

电机控制

智能电网

光电及显示

工程资源中心

汽车电子技术论坛

医疗电子论坛

-

开源硬件

-

无线通信论坛

无线通信技术专区

天线|RF射频|微波|雷达技术

-

IC设计论坛

芯片测试与失效分析

Mixed Signal/SOC[数模混合芯片设计]

Analog/RF IC设计

设计与制造封装测试

-

厂商专区

TI论坛

TI Deyisupport社区

-

检测技术与质量

电磁兼容(EMC)设计与整改

安规知识论坛

检测与认证

-

消费电子论坛

手机技术论坛

平板电脑/mid论坛

音视/视频/机顶盒论坛

-

电子论坛综合区

聚丰众筹官方社区

新人报道区

聚丰供应链

-

论坛服务区

-

供求信息发布

供需广告

电子展览展会专区

芯片求购|供应发布区