基于Atmega128和SJA1000的CAN总线通信应用设计
摘要:
介绍芯片SJA1000的特性以及芯片的初始化设置,设计基于Atmega128单片机、SJA1000芯片以及MCP2551的CAN总线通信应用。该应用的硬件架构和程序算法实现了1个主节点和2个从节点之间的通信,并给出了软件设计的思路和流程。经测试,此设计达到了预期效果,系统扩展方便,运行稳定,并得到了很好的实际应用。
关键词:
SJA1000芯片;Atmega128单片机;CAN总线;MCP2551芯片
中图分类号:TP309 文献标识码:A 文章编号:1005-3824(2014)01-0052-03
0 引 言
随着单片机在工业控制领域的应用越来越广泛,在很多场合都需要用单片机对现场的信息进行采集与处理,并与主机进行通信,但往往会遇到长远距离和大数据量传输不足的问题,通过CAN总线可以解决此问题。本文用Atmega128实现主从节点相互通信的简单电路,但此单片机不能独立地满足要求[1],需要用到CAN 总线控制器、SJA1000芯片以及相应的收发器MCP2551芯片来设计。
1 SJA1000芯片
1.1 简介
SJA1000是一种独立控制器,主要用于移动目标和一般工业环境中的区域网络控制(controller area network,CAN)。它是PHILIPS半导体PCA82C200 CAN 控制器(BasicCAN) 的替代产品,而且它增加了一种新的工作模式(PeliCAN),这种模式支持具有很多新特性的CAN2.0B协议,具有较强的抗干扰能力和检错、纠错能力[2]。
本文芯片工作在PeliCAN模式下,将芯片的MODE引脚置1,即让SJA1000的外部控制总线采用Intel模式[3]。
1.2 SJA1000芯片初始化
设置芯片工作在PeliCAN模式下,初始化流程图如图1所示。
2 设计思路
2.1 硬件设计思路
在现实生活中,例如医疗行业等,涉及到多个控制系统与服务器进行信息交换,有时候需要大量远距离的数据通信。传统的通信方式比如串口通信IIC满足不了应用需求,而主流的单片机芯片自身没有集成CAN总线的控制器和对应的收发器。针对以上情况,我们采用SJA1000的控制器和MCP2551收发器来扩展Atmega128的CAN总线接口,实现节点之间的通信。
连接思路:Atmega128的PA口连接SJA1000的AD口(地址/数据总线),PG2口接SJA1000的ALE/AS口(输入信号模式),PG1口接SJA1000的/RD/E口,PG0口接SJA1000的/WR口,PD0口接SJA1000的/INT口 [2]。
期刊库(http://www.zgqkk.com),是一个专门从事期刊推广、投稿辅导的网站。
本站提供如何投稿辅导,寻求投稿辅导合作,快速投稿辅导,投稿辅导格式指导等解决方案:省级投稿辅导/国家级投稿辅导/核心期刊投稿辅导//职称投稿辅导。
【免责声明】本文仅代表作者本人观点,与投稿辅导_期刊发表_中国期刊库专业期刊网站无关。投稿辅导_期刊发表_中国期刊库专业期刊网站站对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。
投稿辅导服务咨询与期刊合作加盟
陆老师联系QQ:
蒋老师联系QQ:
刘老师联系QQ:
联系电话:18015016272
17327192284
投稿辅导投稿邮箱:zgqkk365@126.com


