基于STC89C51的CAN总线点对点通信模块设计
摘要:随着人们对总线对总线各方面要求的不断提高,总线上的系统数量越来越多,继而出现电路的复杂性提高、可靠性下降、成本增加等问题。为解决上述问题,文中阐述了基于SJAl000的CAN总线通信模块的实现方法,该方法以PCA82C250作为通信模块的总线收发器,以SITA-l000作为网络控制器。并以STCSTC89C5l单片机来完成基于STC89C5l的CAN通信硬件设计。文章还就平台的初始化、模块的发送和接收进行了设计和分析。通过测试分析证明,该系统可以达到CAN的通信要求,整个系统具有较高的实用性。
关键词:CAN总线;SJAl000;82C250;STC89C51
O 引言
现场总线是应用在生产最底层的一种总线型拓扑网络,是可用做现场控制系统直接与所有受控设备节点串行相连的通信网络。在工业自动化方面,其控制的现场范围可以从一台家电设备到一个车间、一个工厂。一般情况下,受控设备和网络所处的环境可能很特殊,对信号的干扰往往也是多方面的。但要求控制则必须实时性很强,这就决定了现场总线有别于一般的网络特点。此外,由于现场总线的设备通常是标准化和功能模块化,因而还具有设计简单、易于重构等特点。
1 CAN总线概述
CAN (Controller Area Network)即控制器局域网络,最初是由德国Bosch公司为汽车检测和控制系统而设计的。与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。其良好的性能及独特的设计,使CAN总线越来越受到人们的重视。由于CAN总线本身的特点,其应用范围目前已不再局限于汽车行业,而向自动控制、航空航天、航海、过程工业、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械及传感器等领域发展。目前,CAN已经形成国际标准,并已被公认为几种最有前途的现场总线之一。它的直线通信距离最大可以达到l Mbps/30m.其它的节点数目取决于总线驱动电路,目前可以达到110个。
2 CAN系统硬件设计
图l所示是基于CAN2.0B协议的CAN系统硬件框图,该系统包括电源模块、MCU部分、CAN控制器、光电耦合器、CAN收发器和RS232接口。硬件系统MCU采用STC89C5l,CAN控制器采用SJAl000,CAN收发器采用PCA82C250,光耦隔离采用6N137。
图l中的CAN控制器SJAl000是CAN控制器(BasicCAN)PCA82C200的替代产品,它增加了一种新的操作模式(PeliCAN),这种模式可以支持很多新特性的CAN2.OB协议。微处理器STC89C5l在一定的模式下可对SJAl000中的寄存器进行读写操作,以控制SJAl000进行数据的发送和接收。
CAN收发器PCA82C250是CAN控制器与物理总线之间的接口。它最初是为汽车中的高速应用(lMbps)而设计的。该器件可以提供对总线的差
动发送和接收功能。它采用双线差分驱动方式,有助于抑制汽车等恶劣电气环境下的瞬变干扰。PCA82C250可对SJAl000传来的TTL电平和CAN总线差动信号进行相互转换,而且可使总线具有较好的EMC特性。
光耦隔离器可对总线上各个CAN节点进行电气隔离,以增强系统的可靠性,减少系统与系统之间的相互影响。
2.1 CAN控制器硬件电路的设计
将SJAl000的ADO~AD7连接到STC89C5l的P0口,CS连接到STC89C5l的P20,这样,当P20为O时,CPU片外存储器地址即可选中SJAl000,CPU
则通过这些地址对SJAl000执行相应的读写操作。设计时,可将SJAl000的RD、WR、ALE分别和STC89C5l的对应引脚相连,INT接STC89C51的IN-T0,这样,CPU可以通过中断方式来访问SJAl000。其连接电路图如图2所示。
2.2 光电耦合器的设计
为了增强CAN总线节点的抗干扰能力,SJAl000的TX0和RX0并不直接和收发器PCA82C250的TXD和RXD相连,而是通过高速光耦6N137后再和PCA82C250相连,这样就可以很好的实现各CAN节点间的电气隔离。应当注意的是光耦部分采用的电源VCC和VDD最好完全隔离,可以用小功率的电源隔离模块来实现,这样就可以提高节点的稳定性和安全性。其电路图如图3所示。
2.3 CAN收发器的设计
PCA82C250是一种差分收发器,它可完成TTL电平到差分信号的转换。它的CANH和CANL引脚各自通过一个5 Ω的电阻和CAN总线相连,该电阻可以起到一定的限流作用,可保护PCA82C250免受过流的冲击。而CANH和CANL与地并联了两个30pF的小电容。可以过滤总线上的高频干扰并具有一定的防电磁辐射能力。PCA82C250的RS脚上应接一个斜率电阻,电阻大小可根据总线通信速度适当调节,一般可在16~140 kΩ之间,这里选用47 kΩ电阻。图4所示是收发器的电路图。
2.4 总体电路分析
由于本设计将SJAl000的AD0~AD7和STC89C5l的P0口相连,CS连接到P20口,ALE、WE、RD分别与单片机的对应各口相连,因此,SJAl000就相当于单片机的外部存储器。访问SJAl000的寄存器就相当于对外部寄存器地址进行读写操作。SJAl000的MODE接高电平,采用的是intel二分频模式,TXO和RX0通过高速光耦器件6N137与CAN收发器82C250连接,PCA82C250的TXD和RXD引脚分别接发送和接收驱动信号,然后通过CANH和CANL接至物理总线传输介质上,这个介质可以是光纤或双胶线等。
模块 设计 通信 总线 STC89C51 CAN 基于 相关文章:
- 改善WiMAX链路容限的方法和主要RF模块(12-26)
- 基于蓝牙芯片的无线通信模块设计与开发(02-03)
- 一种嵌入式射频光传输模块实现方案(03-12)
- 实测简化版TEA5767调频收音模块(09-03)
- 4款常见2.4G无线模块横向对比(09-03)
- 一种915MHz的发射/接收模块电路设计(08-29)