首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
基于双AT89C52单片机的CAN总线中继器设计
来源:本站整理  作者:佚名  2009-08-28 10:02:59



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中继器在工程领域的优化设计提供了良好的技术平台和解决方案。

上一页  [1] [2] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:20,562.50000 毫秒