作者:王明顺;贺立红
1 概述
用于多机间数据通信的通信物理层接口是分布式测控系统数据共享的工作基础,传统的以单片机为核心的分布式多机测控系统为简化通信物理层大多采用电流环或RS-485/RS-422总线。
电流环形式因较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总线物理层特性的相同点有:
CAN总线与RS-485总线相比,CAN总线通信物理层接口电路(以PCA82C250为例)具有如下优点:
由此可见,采用CAN总线的物理层专用接口电路替代RS-485总线接口电路形成一个混合模式的多机互连分布式测控系统的通信网络,可以克服RS-485总线的固有缺陷,充分利用CAN总线物理层的优势,能以简单的形式、较低的价格、较高的性能构造出极具竞争力的分布式测控系统。
3 PCA82C250简介
完全符合ISO11898国际标准的CAN总线物理层专用接口电路有多种,这里仅以CAN总线通用接口电路PCA82C250为例对这类接口芯片作以说明。PCA82C250的引脚图如图1所示。各功能引脚如下:
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 结论
经实际应用系统的检验证明,采用CAN总线的物理层专用接口电路(如PCA82C250等)替代RS-485总线专用接口电路来形成一个混合模式的多机互连的分布式测控系统的通信网络,可以很大程度上克服RS-485总线的固有缺陷,而且在软件上仅做少许修改,甚至不修改原有的RS-485总线的通信软件就能适应新的系统工作。必要时通过修改原有的RS-485总线的通信软件即可实现多主式多机数据通信,充分利用了CAN总线物理层的优势。在硬件方面,能够以简单的形式、较低的价格、较高的性能构造出极具竞争力的分布式测控系统,使多机互连的分布式测控系统的通信网络性能得以提升,保证在恶劣工况条件下通信系统的安全、可靠工作。