RS-485是一个电气接口规范,它定义了一个基于单对平衡线的多点、双向(半双工)通信链路,只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议,在当时看来是一种相对经济具有相当高噪声抑制相对高的传输速率传输距离远和宽共模范围的通信平台,因此基于RS-485总线的通讯方法得到了广泛的应用。
由于RS-485总线本身存在的许多局限性,随着科技的发展RS-485的总线效率低,系统的实时性差、通讯的可靠性低、后期维护成本高、网络工程调试复杂、传输距离不理想、单总线可挂接的节点少、应用不灵活等缺点慢慢的暴露出来。虽历经多次改进但均是治标不治本。
CAN-bus是一种多主方式的串行通讯总线。具有较高的位速率,高抗电磁干扰性,而且能够检测出通信过程中发生的任何错误。当信号传输距离达到10 km 时CAN-bus仍可提供高达5 kb/s的数据传输速率。他在通信能力、可靠性、实时性、灵活性、易用性、传输距离、成本等方面有着明显的优势,从而成为了业界最有前途的现场总线之一。
基于RS-485网络在现场的广泛应用,完全放弃RS-485网络系统是不现实的。但可以考虑一种折衷的办法,就是在保留现有RS-485系统硬件结构的基础上给系统添加一个CAN-bus接口,RS-485/CAN智能转换器的设计就具有了现实的意义。他可以实现RS-485网络与CAN网络的互联。系统原理框图如图1所示。
2 转换器设计
转换器设计的原理框图如图2所示:
在该设计中采用了带CAN控制器的PIC18F258芯片,其特点如表1所示。与传统的MCU再加上独立的CAN控制器的设计方法相比,可以使设计大大简化,同时也增加了系统的可靠性。
表1 PIC18F258单片机的性能参数 名称 特性
高性能RISC CPU 2MB的程序存储器。4kB的数据RAM。16位宽指令,
高达10 MIPS的执行速度。8×8单周期硬件乘法器
丰富的外围功能模块 4个内部定时器,PWM/CCP模块,USART模块,
10位8通道A/D。CAN 总线模块,异步串行通信SPI方式,I2C模式
特殊的单片机特性 SLEEP方式,带有片内RC振荡器的监视定时器(WDT),
可编程代码保护功能,通过两个引脚可进行在线串行编程(ICSP)
FLASH 技术 低功耗,高速增强型FLASH 技术
2.1 硬件电路设计
硬件电路原理图如图3所示,包括MCU,总线驱动模块,光电隔离,DC-DC隔离电源模块等。
RS485总线驱动模块采用MAX487,MAX487工作于半双工模式,内部包含一个发送器和一个接收器,在工作时需要通过使能端来控制“收”和“发”,将其使能端RE和DE连接到一起,然后接到PIC单片机的RC4,在软件中通过对RC4的置位和复位来控制MAX487的收和发。
RS-485标准采用差分传输,本身已具有一定的抗干扰能力,在其传输通道的两端分别加上一个6N137芯片,可以进一步增强转换器的抗干扰能力。可以避免由传输问题而引起的死机现象。
CAN总线驱动模块采用PCA82C250,接口电路比较简单。同样也在其传输通道加上两个高速光耦6N137,实现总线和转换器的电气隔离。
在硬件设计中需要特别注意电源部分的设计,因为光耦隔离两侧必须采用独立的电源供电,否则将不能起到隔离的作用。转换器在现场应用的时候不是采用电池供电,而是采用现场CAN总线的电源来供电,而这个电源是不稳定的电源,而且存在很多干扰量,不能直接应用到转换器当中,必须经过隔离,滤波以及稳压处理。