什么是RS-485
RS485又名TIA-485-A,ANSI/TIA/EIA-485或TIA/EIA-485,是由电信行业协会和电子工业联盟定义。使用该标准的数字通信网络能在远距离条件下以及电子噪声大的环境下有效传输信号。RS-485使得廉价本地网络以及多支路通信链路的配置成为可能。1
其中的RS表示recommendedstandard,即推荐标准。
简单来讲,RS485就是一个硬件通信协议,它规定当两线间电压差为+2V~+6V时为逻辑“1”,而电压差为-2V~-6V时为逻辑“0”
RS-485的特点
由于485信号是利用差模传输的,即由485+与485-的电压差来作为信号传输。如果外部有一个干扰源对其进行干扰,使用双绞线进行485信号传输的时候,由于其双绞,干扰对于485+,485-的干扰效果都是一样的,那电压差依然是不变的,对于485信号的干扰缩到了最小。同样的道理,如果有屏蔽线起到屏蔽作用的话,外部干扰源对于其的干扰影响也可以尽可能的缩小。
485布线规范是必须要手牵手的布线,一旦没有借助485集线器和485中继器直接布设成星型连接和树形连接,很容易造成信号反射导致总线不稳定。
485总线必须要单点可靠接地。单点就是整个485总线上只能是有一个点接地,不能多点接地,因为将其接地是因为要将地线(一般都是屏蔽线作地线)上的电压保持一致,防止共模干扰,如果多点接地适得其反。
RS-485与单片机
单片机的输出和读取都是TTL电平,一般情况下由地线和信号线组成,在远距离传输的情况下,信号线上的干扰信号会随着有效信号被传递到接收端。3使得通信容易被干扰。
与之相对的,485协议输出的是差分信号,经过TTL转485芯片的转换后其有效信息为两条信号线的电压差,即可大大消除通信时的共模干扰,同时由于其传递的信息随时可以在硬件层面上被测量,而且整个转换过程完全为硬件操作,无需软件编写,因此是一种硬件协议。
TTL-485转换器的真值表
实际操作时,芯片的接收器输出端RO与单片机的Rxd相连,驱动器输入端DI则与单片机的Txd相连
驱动器的输出逻辑
485芯片既有全双工通信(如SN75179、SN75180、MAX488~MAX491、MAX1482)也有半双工通信(如SN75176、SN75276、SN75LBC184、MAX485、MAX1487、MAX3082、MAX1483),如果485为半双工通信模式,其在发送信息时便无法读取信息,因此当DE被拉高时完全处于发送信息的状态,此时DI接受单片机写入的数字信号,当输入信号DI为1时输出正的差分信号,即A-B>0.2V。当输入信号DI为0时输出负差分信号,即B-A>-0.2V(有些芯片是0.3V,比如SP3485)4
当DE被拉低时,依据/RE(低电平有效)的电平判断工作状态,当/RE为高时,整个器件不工作,输出高阻态,而当其在低电平下使能时,则由输入的AB差分信号向RO输出0或1,其真值表如下。