RS-485集线器的设计
RS-485总线基于平衡发送和差分接收,具有很强的抗共模干扰能力,在远程有线数字通信领域使用非常广泛。但它也存在一些缺点,如一个节点故障会引起整个总线瘫痪、不能星型布线等。在总线上加装一个RS-485集线器可以弥补这些缺陷,同时延长通信距离。
RS-485集线器工作原理
RS-485集线器利用主485芯片把上位机总线上的差分信号转换成TTL电平,然后以广播方式分配给其它各支路的从485芯片,由从芯片再转换为差分信号发送到各分支总线上。图1是四路集线器的应用方案,图的左侧接RS-485总线上位机,右侧接各分支下位机。
由图1可以看出,RS-485集线器起到了中继器延长距离和扩充终端数量的作用。对于四路集线器,它的四个分支总线可以分别按串行方式布线,相当于把原来的一组总线按星型方式分成了四组,解决了布线的局限性。另外,当其中一个节点故障导致总线短路时,只会影响到它所在的一组分支总线,而不会影响到其它三组。
图1 RS-485集线器应用方案
图2 防雷击浪涌保护设计原理图
图3 自动收发转换设计原理图
图4 故障自动隔离模块原理框图
RS-485集线器设计
参照图1的工作原理,各模块设计重点如下。
电源设计
出于隔离保护和抗干扰的考虑,5个485芯片采用5V隔离电源模块供电,使主、从电路相互隔离。
信号隔离设计
所有分支信号与主站信号之间都采用高速光耦6N137进行隔离,实现各分支之间、各分支与主站之间全部隔离。
防雷击浪涌保护设计
如图2所示,所有总线出口都采用防雷管和TVS管构成两级保护。总线感应到雷击等高压大能量信号时,先通过防雷管提供的线线间、线地间防雷保护功能,使雷击过电压被迅速泄放,泄放过程中产生的瞬态大电流会在电路中感应出一个尖峰电压,次级保护使用的TVS管可以将上述尖峰电压吸收。如果有较大的电流,可以通过热敏电阻的高阻值来降压。
零延时自动收发转换设计
如图3所示,利用485芯片的数据输入端DI通过非门来控制收发控制端DE/RE。电阻、电容的作用是为了补偿DI到DE之间信号传输的延时。
故障自动隔离设计
该模块的设计原理是用模拟开关串接在各分支路的接收数据线上,通过单片机监测这些接收数据,判断是否出现故障,当出现故障时使能端断开该路模拟开关,同时发出报警,待故障恢复后再使其自动接入,原理框图如图4所示。
单片机程序设计
485从芯片的RO取反后接485主芯片的RE/DE。若RO为高,主芯片处于接收上位机数据状态;若RO一直为低,则主芯片一直对上位机发送,算是故障状态。
单片机内部设2秒为一个循环判断周期。在这2秒内,如果有持续10ms的高电平,则视为正常无故障,导通模拟开关;若没有,则视为故障,断开模拟开关。
单片机的主程序流程如图5所示。单片机的定时中断程序流程如图6所示。
整个四路RS-485集线器的电路如图7所示(篇幅有限,其中不包含电源)。
图5 单片机主程序流程图
图6 单片机定时中断程序流程图
图7 四路RS-485集线器设计原理图
结语
本设计在工程中运行正常,可以实现收发数据的零延时自动转换、故障支路自动排除以及故障恢复后自动接入,最高波特率可达到115200bps。同时可以星型布线,延长RS-485通信距离,增加带负载能力,使得复杂电磁场环境下组建大规模RS-485网络的很多问题迎刃而解,极大地提高了系统可靠性。
RS-485集线 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)