新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于双AT89C52单片机的CAN总线中继器设计

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

作者:时间:2009-08-28来源:网络收藏

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

3.2 程序控制流程
中继器只是中转来自上的数据,而这些数据是随机的,因此接收采用中断的方式。某一时刻只要SJAl000成功接收一帧数据,就会向负责本端口的MCU申请中断,进行数据接收,并将数据送入环形队列queue。
当环形队列中有待发送的数据时,程序的处理流程如图6所示(其中,tail和bead分别为环形队列的尾指针和头指针)。MCU首先获取对方环形队列中的信息,主要是查看环形队列信息是否为空,如果为空则不对其操作。如果不为空,则队列中有待发送的信息,于是启动一次信息发送。如果发送成功,则通过联络信号通知对方修改环形队列指针。


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

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

合成孔径雷达相关文章:合成孔径雷达原理

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭