与 CAN 类似,RS-485 是一种工业控制环境中常用的通讯协议,它具有抗干扰能力强、传输距离远的特点。RS-485 通讯协议由 RS-232协议改进而来,协议层不变,只是改进了物理层,因而保留了串口通讯协议应用简单的特点。
1 RS-485的物理层
从《CAN—通讯实验》章节中了解到,差分信号线具有很强的干扰能力,特别适合应用于电磁环境复杂的工业控制环境中,RS-485 协议主要是把 RS-232的信号改进成差分信号,从而大大提高了抗干扰特性,它的通讯网络示意图见图。
(1)差分信号
差分传输是一种信号传输的技术,区别于传统的一根信号线一根地线的做法,差分传输在这两根线上都传输信号,这两个信号的振幅相等,相位相差180度,极性相反。在这两根线上传输的信号就是差分信号。
信号接收端比较这两个电压的差值来判断发送端发送的是逻辑0还是逻辑1。在电路板上,差分走线必须是等长、等宽、紧密靠近、且在同一层面的两根线。
(2)RS485的物理网络特点
RS485的通信网络中每个节点都是由一个通讯控制器和一个收发器组成,在 RS-485 通讯网络中,节点中的串口控制器使用 RX与 TX信号线连接到收发器上,而收发器通过差分线连接到网络总线,串口控制器与收发器之间一般使用 TTL信号传输,收发器与总线则使用差分信号来传输。发送数据时,串口控制器的 TX信号经过收发器转换成差分信号传输到总线上,而接收数据时,收发器把总线上的差分信号转化成 TTL信号通过 RX引脚传输到串口控制器中。
2、RS485与RS232的区别
RS-485通讯网络的最大传输距离可达 1200米,总线上可挂载 128个通讯节点,而由于 RS-485 网络只有一对差分信号线,它使用差分信号来表达逻辑,当 AB 两线间的电压差为-6V~-2V时表示逻辑 1,当电压差为+2V~+6V 表示逻辑 0,在同一时刻只能表达一个信号,所以它的通讯是半双工形式的,它与 RS-232 通讯协议的特性对比见图。
总结一下RS232月RS485的特点有:
1、 RS-485以电压差表示0、1(正负2-6V),电平降低了,这样不易损坏电路芯片,与TTL电平兼容。
2、 RS-485的数据最高传输速率为10Mbps,是半双工通信。
3、 RS485接口抗噪声干扰性好
4、 RS-485最大传输距离标准值为4000英尺,实际上可达3000米
RS-485接口在总线上允许连接多大128个收发器。即具有多个站能力,这样用户可以利用单一的RS-485接口方便的建立起设备网络
RS-485与 RS-232 的差异只体现在物理层上,它们的协议层是相同的,也是使用串口数据包的形式传输数据。而由于 RS-485 具有强大的组网功能,人们在基础协议之上还制定了 MODBUS 协议,被广泛应用在工业控制网络中。此处说的基础协议是指前面串口章节中讲解的,仅封装了基本数据包格式的协议(基于数据位),而 MODBUS 协议是使用基本数据包组合成通讯帧格式的高层应用协议(基于数据包或字节)。感兴趣的读者可查找MODBUS协议的相关资料了解。
由于 RS-485与 RS-232 的协议层没有区别,进行通讯时,我们同样是使用 STM32的USART 外设作为通讯节点中的串口控制器,再外接一个 RS-485收发器芯片把 USART外设的 TTL电平信号转化成 RS-485的差分信号即可。
3、RS485电路介绍
RS485推荐在点对点、线型、总线型网络中,但不能是星型、环型网络。理想情况下RS485需要2个匹配电阻,其值要求等于传输电缆的特性阻抗(一般为120欧),没有特性阻抗的话,当所有的设备都静止或者没有能量的时候就会产生噪声。485推荐的连接方式如下图。
嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!
无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。(点击找小助理领取)
include <>
int main() {
printf("hello world!\n");
return 0;
}