没有合适的资源?快使用搜索试试~ 我知道了~
首页基于单片机的CAN总线接口设计与实现
资源详情
资源评论
资源推荐

基于单片机的基于单片机的CAN总线接口设计与实现总线接口设计与实现
在CAN总线节点中,采用AT89C52、独立控制器SJA1000、高速光耦合器6N137和CAN总线收发器82C250设
计了硬件电路,并进行了CAN总线智能节点的软件设计。CAN通信接口接收到上位机的数据后,便向总线上的
各个节点传播。实验结果表明,该智能节点具有实时性好、扩展性能好、可靠性高、抗干扰能力强等特点,初
步达到较高的性能指标。
0 引言
CAN是ControllerAreaNetwork的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。在当前的汽车产业中,出于对安全
性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。现在,CAN的高性能和可靠性已被
认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。现场总线是当今自动化领域技术发展的热点之一,
它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。应用设计的CAN总线节点,系
统上电复位后,CAN通信接口接收到PC机的数据后,便向总线上的各个节点传播。CAN总线上的节点与被控对象相连,当它
接收到PC机的数据后,则对被控对象作相应的操作。当CAN总线节点有数据向总线发送时,便通过收发器数据发到物理总
线,或传送到其他节点,或经CAN通信接口传送到上位机。另外,在本设计中,89C52单片机预留出了P1及P2的一些接口,
可以利用这些接口,外接其他应用模块,例如数据采集、步进电动机等,通过与PC机的通信,完成对模块的操作。
1 硬件设计
CAN总线接口电路主要包括:单片机、控制器接口、总线收发器和看门狗电路等。采用Philips公司生产的SJA1000控制器和与
82C250CAN收发器,按照CAN总线物理层协议选择总线介质,设计布线法案,连接成CAN网络。
硬件电路的设计主要是CAN通信控制器与微处理器89C52之间和SJA1000与82C250之间的接口电路的设计,系统组成框图如
图1所示。
图1 系统组成框图
CAN节点的硬件电路的设计主要是CAN总线通信控制器与微处理器之间的接口电路,以及CAN总线收发器与物理总线之间的
接口电路设计。CAN通信控制器SJA1000是总线接口芯片,是接口电路的核心,它主要完成CAN总线的通信协议,实现上位
机与现场微处理器之间的数据通信。AT89C52在CAN总线中实现CAN控制器的初始化、CAN的收发控制等任务。CAN总线收
发器的功能则是增大通信距离,保护系统不受干扰。
SJA1000是一种独立的CAN控制器,主要用于移动目标和一般工业环境中的区域网络控制。它是Philips半导体公司
PCA82C200CAN控制器(BasicCAN)的替代产品,而且还增加了一种新的操作模式———PeliCAN,这种模式支持具有很多新
特性的CAN2.0B协议,SJA1000硬件结构框图如图2所示。
图2 SJA1000硬件结构框图
82C250是CAN控制器与物理总线之间的接口,它最初是为汽车中的高速应用而设计的。它可以提供对总线的差动发送和接收
功能。
82C250驱动电路内部具有限流电路,可防止发送输出级对电源、地或负载短路。虽然短路出现时功耗增加,但不至于使输出
级破坏。引脚8(RS)用于选定82C250的三种工作模式:高速、斜率控制和待机。
对于高速工作模式,发送器输出级晶体管被尽可能快地启动和关闭。在这种模式下,不采取任何措施限制上升和下降的斜率。
此时,建议采用屏蔽电缆,以避免射频干扰问题的出现。通过把引脚8接地可断开高速工作模式。
对于较低速度或较短的总线长度,可使用非屏蔽双绞线或平行线作总线。为降低射频干扰,应限制上升和下降的斜率。上升和
下降的斜率可以通过由引脚8至地连接的电阻进行控制,斜率正比于引脚8上的电流输出。
如果引脚8接高电平,则电路进入低电平待机模式。在这种模式下,发送器被关闭,接收器转至低电流。如果检测到显性位,
则RXD将转至低电平,微控制器应通过引脚8将驱动器变为正常工作状态来对这个条件作出响应。由于在待机模式下接收器是
慢速的,因此将丢失第一个报文。
微处理器AT89C52负责SJA1000的初始化,通过控制SJA1000以实现数据的接收和发送等。微控制器的外围电路如图3所示。
图3 微控制器的外围电路
AT89C52提供以下标准功能:8K字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两
级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
CAN总线控制器SJA1000的AD0~AD7连接到AT89C52的P0口,片选端CS取反后连接到AT89C52的P2.7。P2.7为1
时,CPU片外存储器地址可选中SJA1000,CPU通过这些地址可对SJA1000执行相应的读/写操作。SJA1000的RD、WR、
ALE分别与AT89C52的对应引脚连接,由于SJA1000是低电平复位,而AT89C52是高电平复位,所以两者复位端接法不同。
SJA1000的MODE接高电平,选择Intel二分频模式。SJA1000的INT是终端信号输出端,在中断允许的情况下,有中断发生












安全验证
文档复制为VIP权益,开通VIP直接复制

评论0