基于STC89C51的CAN总线点对点通信模块设计

[09-12 16:04:43]   来源:http://www.88dzw.com  单片机学习   阅读:8398

文章摘要:为了增强CAN总线节点的抗干扰能力,SJAl000的TX0和RX0并不直接和收发器PCA82C250的TXD和RXD相连,而是通过高速光耦6N137后再和PCA82C250相连,这样就可以很好的实现各CAN节点间的电气隔离。应当注意的是光耦部分采用的电源VCC和VDD最好完全隔离,可以用小功率的电源隔离模块来实现,这样就可以提高节点的稳定性和安全性。其电路图如图3所示。2.3 CAN收发器的设计PCA82C250是一种差分收发器,它可完成TTL电平到差分信号的转换。它的CANH和CANL引脚各自通过一个5 Ω的电阻和CAN总线相连,该电阻可以起到一定的限流作用,可保护PCA82C250免受过流

基于STC89C51的CAN总线点对点通信模块设计,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com

  为了增强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接至物理总线传输介质上,这个介质可以是光纤或双胶线等。

  3 CAN系统软件设计

  STC89C51的软件设计由MCU初始化、SJAl000初始化、SJAl000的接收发送和数据显示模块等构成。其系统软件设计图如图5所示。


  3.1 SJAl000初始化软件设计

  SJAl000的初始化程序设计主要是通过对SJAl000的寄存器写入相应的控制字,从而确定SJAl000的工作方式。在对SJAl000的寄存器写入控制字时,要在SJAl000的复位模式下采用软件复位模式。其初始化流程图如图6所示。


  3.2 SJAl000数据发送软件设计

  报文的发送通常是由CAN控制器根据CAN协议规范自动完成的。首先由CPU将要发送的报文传送到发送缓冲器中,并置位命令寄存器中的发送请求标志。其发送流程图如图7所示。


  3.3 SJAl000接收数据软件设计

  CPU以一定的周期读取CAN控制器的状态寄存器,从而检查接收缓冲区的转台标志,指示是否至少接收到一个报文。当接收缓冲区状态标志指示为“空”时,表示没有接收到报文;在没有新的检查接收缓冲区状态的要求前,CPU则继续当前的任务。

上一页  [1] [2] [3]  下一页


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习
分类导航
最新更新
热门排行