全部博文(320)
分类: 嵌入式
2011-09-16 15:20:50
N年前做门禁系统上位机软件开发的时候突击培训过串口通信编程基础。后来在我的脑海里一直认为RS485总线能且只能挂接256个设备(因为地址是1byte,取值范围也就0-255)。
后来经过几个项目的了解,发现这个数字有着比较大的出入。有专门做串口嵌入式设备开发的说RS485总线只能挂接32个节点,这是由它自身的驱动能力决定的。而到网上搜索发现有人说可以支持128个,也有说能支持256个,甚至400个......莫衷一是。
后来静下心来找了一些资料发现他们说的都没错(咳,只怪自己理解有误没有理论联系实际啊):
485通讯中一个串口可以控制多少个设备的问题是与该485网络中的电气特性和协议特性所决定的。 所谓电气特性就是指的是要保证485网络中的特征阻抗在允许的范围内,应该是120欧姆左右,连接的设备越多,特征阻抗越小,所以一般在485网络中一般都要加120欧姆的终端电阻。同时还要保证信号的衰减在可接受范围内。如MIXIM489,你就知道他能分辨的电压是什么了。所以就有了长距离传输加中继的情况了。所谓协议特性是指在485网络中传输的协议支持的寻址范围,如MODBUS应该是32个,不过好象只能连接31个设备,因为还有一个留给自己(应该是这样,具体的我有点忘记)。
设备数和接口驱动芯片有关: 32 SN75176,MAX490,MAX485,SN75179,SN75180,MAX488等 64 SN75184 128 MAX487 256 MAX1482,MAX3080等。
RS-485的”节点数”主要是依”接收器输入阻抗”而定;根据规定,标准RS-485接口的输入阻抗为≥12kΩ,相应的标准驱动节点数为32个。为适应更多节点的通信场合,有些芯片的输入阻抗设计成1/2负载(≥24kΩ)、1/4负载(≥48kΩ)甚至1/8负载(≥96kΩ),相应的节点数可增加到64个、128个和256个。以泓格的I/O模块为例,每个485网络最多的节点为256个,加中继I-7510后,每个485网只要工作在不同的波特率:1200,2400,4800,9600,19200,38400,57600,115200之下,就可以允许相同的地址号。所以中继模块不但可以使通讯距离增加,还可以增加节点数。泓格模块的485网络中节点数最大为:256*8=2048个。
一条RS485总线能并联多少台设备要看什么芯片,并和所用电缆的品质相关,节点越多、传输距离越远、电磁环境越恶劣,所选的电缆要求就越高。
支持32个节点数的芯片:SN75176,SN75276,SN75179,SN75180,MAX485,MAX488,MAX490
支持64个节点数的芯片:SN75LBC184
支持128个节点数的芯片:MAX487,MAX1487
支持256个节点数的芯片:MAX1482,MAX1483,MAX3080~MAX3089