STC89C51的CAN总线点对点通信模块设计_第1页
STC89C51的CAN总线点对点通信模块设计_第2页
STC89C51的CAN总线点对点通信模块设计_第3页
STC89C51的CAN总线点对点通信模块设计_第4页
STC89C51的CAN总线点对点通信模块设计_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、【Word版本下载可任意编辑】 STC89C51的CAN总线点对点通信模块设计 随着人们对总线对总线各方面要求的不断提高,总线上的系统数量越来越多,继而出现电路的复杂性提高、可靠性下降、成本增加等问题。为解决上述问题,文中阐述了基于SJAl000的CAN总线通信模块的实现方法,该方法以PCA82C250作为通信模块的总线收发器,以SITA-l000作为网络控制器。并以STCSTC89C5l单片机来完成基于STC89C5l的CAN通信硬件设计。文章还就平台的初始化、模块的发送和接收开展了设计和分析。通过测试分析证明,该系统可以到达CAN的通信要求,整个系统具有较高的实用性。 0 引言 现场总线是

2、应用在生产层的一种总线型拓扑网络,是可用做现场控制系统直接与所有受控设备节点串行相连的通信网络。在工业自动化方面,其控制的现场范围可以从一台家电设备到一个车间、一个工厂。一般情况下,受控设备和网络所处的环境可能很特殊,对信号的干扰往往也是多方面的。但要求控制则必须实时性很强,这就决定了现场总线有别于一般的网络特点。此外,由于现场总线的设备通常是标准化和功能模块化,因而还具有设计简单、易于重构等特点。 1 CAN总线概述 CAN (Controller Area Network)即控制器局域网络,初是由德国Bosch公司为汽车检测和控制系统而设计的。与一般的通信总线相比,CAN总线的数据通信具有

3、突出的可靠性、实时性和灵活性。其良好的性能及独特的设计,使CAN总线越来越受到人们的重视。由于CAN总线本身的特点,其应用范围目前已不再局限于汽车行业,而向自动控制、航空航天、航海、过程工业、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械及传感器等领域发展。目前,CAN已经形成国际标准,并已被公认为几种有前途的现场总线之一。它的直线通信距离可以到达l Mbps30m.其它的节点数目取决于总线驱动电路,目前可以到达110个。 2 CAN系统硬件设计 图1所示是基于CAN2.0B协议的CAN系统硬件框图,该系统包括电源模块、MCU部分、CAN控制器、光电耦合器、CAN收发器和RS232接

4、口。硬件系统MCU采用STC89C5l,CAN控制器采用SJAl000,CAN收发器采用PCA82C250,光耦隔离采用6N137。 图1中的CAN控制器SJAl000是CAN控制器(BasicCAN)PCA82C200的替代产品,它增加了一种新的操作模式(PeliCAN),这种模式可以支持很多新特性的CAN2.OB协议。微处理器STC89C5l在一定的模式下可对SJAl000中的存放器开展读写操作,以控制SJAl000开展数据的发送和接收。 CAN收发器PCA82C250是CAN控制器与物理总线之间的接口。它初是为汽车中的高速应用(lMbps)而设计的。该器件可以提供对总线的差 动发送和接收

5、功能。它采用双线差分驱动方式,有助于抑制汽车等恶劣电气环境下的瞬变干扰。PCA82C250可对SJAl000传来的TTL电平和CAN总线差动信号开展相互转换,而且可使总线具有较好的EMC特性。 光耦隔离器可对总线上各个CAN节点开展电气隔离,以增强系统的可靠性,减少系统与系统之间的相互影响。 2.1 CAN控制器硬件电路的设计 将SJAl000的ADOAD7连接到STC89C5l的P0口,CS连接到STC89C5l的P20,这样,当P20为O时,CPU片外存储器地址即可选中SJAl000,CPU则通过这些地址对SJAl000执行相应的读写操作。设计时,可将SJAl000的RD、WR、ALE分别

6、和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是一种差分

7、收发器,它可完成TTL电平到差分信号的转换。它的CANH和CANL引脚各自通过一个5 的电阻和CAN总线相连,该电阻可以起到一定的限流作用,可保护PCA82C250免受过流的冲击。而CANH和CANL与地并联了两个30pF的小电容。可以过滤总线上的高频干扰并具有一定的防电磁辐射能力。PCA82C250的RS脚上应接一个斜率电阻,电阻大小可根据总线通信速度适当调节,一般可在16140 k之间,这里选用47 k电阻。图4所示是收发器的电路图。 2.4 总体电路分析 由于本设计将SJAl000的AD0AD7和STC89C5l的P0口相连,CS连接到P20口,ALE、WE、RD分别与单片机的对应各口相

8、连,因此,SJAl000就相当于单片机的外部存储器。访问SJAl000的存放器就相当于对外部存放器地址开展读写操作。SJAl000的MODE接高电平,采用的是intel二分频模式,TXO和RX0通过高速光耦器件6N137与CAN收发器82C250连接,PCA82C250的TXD和RXD引脚分别接发送和接收驱动信号,然后通过CANH和CANL接至物理总线传输介质上,这个介质可以是光纤或双胶线等。 3 CAN系统软件设计 STC89C51的软件设计由MCU初始化、SJAl000初始化、SJAl000的接收发送和数据显示模块等构成。其系统软件设计图如图5所示。 3.1 SJAl000初始化软件设计

9、SJAl000的初始化程序设计主要是通过对SJAl000的存放器写入相应的控制字,从而确定SJAl000的工作方式。在对SJAl000的存放器写入控制字时,要在SJAl000的复位模式下采用软件复位模式。其初始化流程图如图6所示。 3.2 SJAl000数据发送软件设计 报文的发送通常是由CAN控制器根据CAN协议规范自动完成的。首先由CPU将要发送的报文传送到发送缓冲器中,并置位命令存放器中的发送请求标志。其发送流程图如图7所示。 3.3 SJAl000接收数据软件设计 CPU以一定的周期读取CAN控制器的状态存放器,从而检查接收缓冲区的转台标志,指示是否至少接收到一个报文。当接收缓冲区状态标志指示为“空”时,表示没有接收到报文;在没有新的检查接收缓冲区状态的要求前,CPU则继续当前的任务。 当接收缓冲区状态标志为满的时候,即说明已接收一个或者多个报文。此时CPU将从CAN控制器取出个报文,并置位命令存放器中的释放接收缓冲区标志。其接收流程图如图8所示。 4 测试 将两个CAN系统模块挂接在CAN总线上,相当于构成CAN总线上两个节点,这样就可以点对点地发送数据,其测试方法就是在当其中一个节点的按键按下时,除了自身的数码管1、2显示加一外,总线上另一节点接收到该数据后,它的数码管3、4也做加一操作,即与发送端节点的数码管1、2同步显示

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论