CAN总线+单片机实现通信网络设计
扫描二维码
随时随地手机看文章
在分析了RS-485总线与CAN部迟疑不决的异同点后,以PCA82C250型接口电路为例提出了用CAN总线通信物理层接口电路来替代RS-485总线接口中电路与单片机直接连接进行通信网络设计,从而可形成一个高性能、低价格且数据通信安全、可靠的分布式测控系统。
1 概述
电流环形式因较RS-485/RS-422总线形式连线复杂等原因已基本退出历史舞台。而RS-485总线接线形式较RS-422总线接线形式少了二极通信线且抗干扰能力增强,从而使接线形式更为简单、造价更低,因此,RS-485总线基本上独霸了以单片机为核心的分布式多机测控系统通信物理层的应用。但随着科技的发展,RS-485总线的总线效率低、系统实时性差、通讯可靠性低、后期维护成本高、网络工程调试复杂、传输距离不理想、单总线可挂接节点少、应用不灵活等缺点慢慢地暴露出来,因此,迫切需要寻找一种新型、简单有效的通信物理层接口芯片来替代RS-485总线物理层接口电路进行网络通信,这对提高多机互连的分布式测控系统的可靠性具有重大意义。
与其他现场总线相比,CAN部迟疑不决在通信能力、可靠性、实时性、灵活性、易用性、传输距离和成本等方面有着明显的优势,成为控制等领域最有前途的现场总线之一。对于CAN总线的物理层接口,现有大多是CAN总线物理层接口电路与CAN总线控制器连接构成的CAN总线通信网络。经笔者的深入分析和实践证明:CAN总线物理层接口电路(符合ISO11898标准)也可与单片机直接连接构成一个高可靠、低成本、简单实用、多机互连的分布式测控系统。
2 CAN与RS-485物理层特性比较
CAN总线在物理层个有专用接口电路,该类接口电路具有特色。
CAN总线与RS-485总线物理层特性的相同点有:
·二线制、半双工串行通信;
·差分传送、平衡接收;
·传输介质为双绞线;
·需终端匹配电阻器;
·通信电路可在5V电源条件下工作。
CAN总线与RS-485总线相比,CAN总线通信物理层接口电路(以PCA82C250为例)具有如下优点:
·完全符合ISO11898国际标准;
·数据传输距离长(长达10km/5kb/s);
·数据传输速率高(高达1Mb/s/40m);
·CAN总线中的总线数值为二种互补逻辑“显性”或“隐性”位数值;
·可实现多主式通信网络设计,信号在总线上通过“线与”可实现非破坏性总线仲裁;
·无发送、接收转换控制引脚;
·具有抗瞬间脉冲干扰(-150V
·具有较RS-485总线高的总线电压(-8V~+18V)承受能力;
·具有发送脉冲斜率控制,可降低射频干扰;
·差分接收器可以抗拒较宽范围的共模干扰;
·具有总线与电源和地之间的短路保护;
·具有抗总线短路保护能力;
·在特定的单线条件下仍可以保护总线正常工作;
·具有低电流待机模式;
·总线内部配有电阻器网络,无需外部上、下位电阻器;
·未上电的节点对总线无影响;
·至少可以连接110节点。
由此可见,采用CAN总线的物理层专用接口电路替代RS-485总线接口电路形成一个混合模式的多机互连分布式测控系统的通信网络,可以克服RS-485总线的固有缺陷,充分利用CAN总线物理层的优势,能以简单的形式、较低的价格、较高的性能构造出极具竞争力的分布式测控系统。
3 PCA82C250简介
完全符合ISO11898国际标准的CAN总线物理层专用接口电路有多种,这里仅以CAN总线通用接口电路PCA82C250为例对这类接口芯片作以说明。PCA82C250的引脚图如图1所示。各功能引脚如下:
1脚:欲发送数据的输入端;
2脚:电源地端;
3脚:电源端;
4脚:接收数据的输出端;
5脚:参考电压的输出端;
6脚:低电平CAN总线输入/输出端;
7脚:高电平CAN总线输入/输出端;
8脚:总线脉冲斜率控制电阻连接端。
PCA82C250可以提供对总线数据的差动发送能力和对通信总线数据的差动接收能力。其引脚8较为特殊,该引脚用于选择电路自身的工作方式;高速、斜率控制和待机。该脚接地时,PCA82C250工作于高速通信方式;接一个一定阻值的电阻器后再接地,用于控制发送数据脉冲的上升和下降斜率(斜率正比于引脚8上的电流值),用以减少射频干扰;该脚接高电平时,电路进入低电流待机状态。在这种方式下,发送器被关闭,接收器转至低电流工作,但接收器仍可对CAN总线上的“显性”位做出。
如果PCA82C250处于通信总线的网络终端,在总线上需要加一个120Ω左右的匹配电阻。
4 应用实例
以Atmal AT89C55型单片机为例,AT89C55与RS-485总线接口电路及AT89C55与CAN总线物理层专用接口电路的对比连接图如图2所示。
由图2的对比中可以看出,PCA82C250与AT89C55的硬件连接比MAX485与AT89C55的硬件连接还要简单,因为,PCA82C250的通信过程无需接收与发送的硬件转换控制,仅由软件来控制接浮时,CAN总线表现为“隐性”位数值,即CANH和CANL为悬浮态(VCAHN≈CANL≈VCC/2,相当于关闭总线),这为具有“休眠”功能的系统提供了网络安全保障;当TXD端输入为低电平时,CAN总线表现为“显性”位数值(向总线传送有效数据位),即CANH输出高电压(约3.5V,当VCC为5V时)、CANL输出低电平(约1.5V,当Vcc为5V时)。显然,在多主机条件下,“显性”位和“隐性”位的引入,可在总线上实现非破坏性总线仲裁,以裁决哪一个主设备应是下一个占有总线的设备。由于没有用到PCA82C250参考电压的输出值,因此,PCA82C250的5脚可悬空,而8脚所接的电阻RS用于控制CAN总线的输出脉冲的上升、下降沿的斜率,以降低总线的射频干扰。当RS上的电阻大于0.75CC时,PCA82C250芯片进入低功耗待机状态;当RS上的电压小于0.3Vcc时,PCA82C250进入高速通信状态;当RS上的电压处于0.4Vcc至0.6Vcc之间时,PCA82C250进入CAN总线输出脉冲上升、下降沿的斜率控制通信状态,其斜率大小与RS上的电压成正比。
图2中,二个通信系统的软件几乎相同。当采用PCA82C250的作为总线接口替代原有的MAX485时,在软件上所做的变更有:首先,可取消RS-485总线的通信方向控制指令部分,因为CA7402097N总线接口已不需要此功能;其次,RS-485总线在总线发送时,由于发送、接收控制端已连接在一起,即自动关闭了总线数据接收功能,而CAN总线接口在总线数据发送的同时也在进行总线数据的接收(CAN总线接口不提供通信接收、发送数据的分离控制功能),因此,在软件设计上对此应有所考虑。当然,这为多机通信系统中的总线数据冲突的软件识别与仲裁提供了条件。
当需要MCU与通信网络之间的电气隔离时,可在MCU与CAN总线的物理层专用接口电路之间增加2个光电隔离器件(如6N137光电隔离电路),即可实现MCU与通信网络之间的电气隔离。
5 结论
软件上仅做少许修改,甚至不修改原有的RS-485总线的通信软件就能适应新的系统工作。必要时通过修改原有的RS-485总线的通信软件即可实现多主式多机数据通信,充分利用了CAN总线物理层的优势。在硬件方面,能够以简单的形式、较低的价格、较高的性能构造出极具竞争力的分布式测控系统,使多机互连的分布式测控系统的通信网络性能得以提升。