"); //-->
使用RS485总线,一对双绞线就能实现多站联网,构成分布式系统。它的设备简单、价格低廉、能进行长距离通信,故在工程项目中得到了广泛应用。但是如果工程需要更长的通信距离,超出RS485接口能够提供的可靠传送数据范围时,单一的RS485通信控制芯片对就无法完成了。这时,必须在传输线路中增加中继器。
笔者在长期实践的基础上,设计了一种微功耗的RS485中继器,经实地测试,通信距离可达原来的1.8倍。
1 中继器原理
中继器原理图如图1所示。其中,U1和U2是中继器的收发芯片对,负责数据的收发或发收,采用Sipex公司的3 V低功耗芯片SP3485,单片待机时电流为10 μA,其他逻辑电路均采用HC型,待机电流2 μA,大大降低了系统功耗。
图1 原理图
低待机电流和真失效保护是该应用的两个关键特性。RS485是一种半双工通信标准,必须控制好总线的收发状态。当RS485输入开路,或者已经终端匹配且没有驱动的情况下,U1和U2将使其接收端输出(RO)为高电平。在差分输入端A1和B1处,如果有输入的字节数据时,则在U1的RO端将产生一个电压跃变,由触发器74HC74及与非门74HC00组成的状态机在RO的下降沿锁定为ON状态。状态机将U2的驱动器使能引脚(DE)拉为高电平,使输入数据字节从U2以RS485电平转发出去。
状态机一直监视RO引脚的电压跃变。当一个数据字节传输完成时(当在一个内定的时间间隔内没有下降沿加在状态机上时,即表示字节传输完毕),状态机自动复位,并等待任何一侧接口上的下一个数据字节。
一帧数据到达U1后,被转发至U2的A2端口和B2端口输出。在最后一次跳变700 μs后U2释放其输出。其他的时间延迟可以通过调整图1中的R1/C1和R2/C2得到。
同样,如果一帧数据到达U2后,将被转发至U1的A1端口和B1端口输出。这样就实现了数据的双向传输,并且由于中继的原因,理论上通信距离会增至原来的2倍。
2 测试结果
使用泰克示波器TDS2012观察接收和发送端的波形,并加以存储分析,如图2所示。
其中,垂直刻度为1 V/格,水平刻度为400 μs/格;上部波形表示一帧数据到来,中间和下部波形分别表示被转发至B2和A2。由图2可见,波形的上升沿和下降沿都很陡,说明数据电平比较规范,失真度很小。并且由于采用了状态机结构,能够自动识别数据传输方向,比采用软件控制方向更加方便、可靠,达到了设计要求。
另外,在系统允许的情况下,波特率应尽可能低,因为过高的波特率将致使传输距离受限。由于传输线的欧姆阻抗、集肤效应等损耗引起信号畸变,从而通信距离受到限制。从实验结果总结看,有中继器的数据传输波特率不宜超过14400。增加中继器后通信距离为原来的1.8倍。
功耗方面,在没有数据传输的待机状态,用微安表测得整机功耗电流约为22 μA(供电电压3 V)。
图2 波形图
结语
在对RS485总线理论深入分析的基础上,结合实际应用,设计了一种完全由硬件组成的RS485中继器。经过实地测试,收到了良好的效果;同时采用了3 V的低功耗芯片,使它非常适宜工作在电池供电的场合。这对于单片机及其他系统的长距离通信有一定的参考价值。
参考文献
1 何立民.单片机应用技术选编(5).北京:北京航空航天大学出版社,1997
2 万福君,潘松峰,等.单片微机原理系统设计与应用.合肥:中国科学技术大学出版社,2001
3 黄沛芳.RS485总线的死锁检测与解除.单片机与嵌入式系统应用,2001(12):32~34
4 www.sipex.com
程凯 工程师,研究方向为自动控制。
杨晓 工程师,研究方向为远程医疗。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。