前言
本文将介绍RS232/RS485通信协议。
说明:学习嵌入式五大通信协议之一的RS232/RS485通信协议。
注意
首先必须清楚一个概念RS232/RS485并不是协议只是一个接口,mudbus才是通信协议
Modbus协议支持传统的RS232、RS422、RS485接口和以太网设备接口
UART存在的问题
Mudbus协议是电气层(物理层)的协议,依赖于串口协议,只是在电气层进行了一些处理,能让它的抗干扰能力更强,传输距离更远。
一般做项目很少直接用串口直接进行通信的
原因(UART存在的问题):
电气接口不统一
UART只是对信号的时序进行了定义,而未定义接口的电气特性;
电气特性指网络物理层协议一个方面的特征。它规定传输二进制比特时线路上所采用的信号的电压高低、匹配阻抗大小、传输速率和距离限制等。
UART通信时一般直接使用处理器使用的电平,即TTL电平,但不同的处理器使用的电平存在差异,所以不同的处理器使用通信时一般不能直接相连。
例如:51单片机处理器高电平可能是5V,低电平是0V;stm32单片机处理器高电平可能是3.3V,低电平是0V。
注:单片机是一种集成电路芯片,把很多功能集成到一块硅片上构成的一个小而完善的计算机系统
视频上说:UART没有规定不同器件连接时连接器的标准,所以不同器件之间通过UART通信时连接很不方便。
我认为这不能算缺点,正是因为没有统一标准所以可以自由搭配,反而增强了UART的兼容性。
抗干扰能力差
UART一般直接使用TTL信号来表示0和1,但TTL信号的抗干扰能力较差,数据在传输过程中很容易出错。
通信距离极短
因为TTL信号的抗干扰能力较差,所以其通信距离也很短,一般只能用于一个电路板上的两个不同芯片之间的通信。
mudbus就由此诞生。
RS232接口
简介
RS-232标准接口(又称EIA RS-232)是由美国电子工业协会(Electronic Industry Association,EIA)联合贝尔系统公司、调制解调器厂家及计算机终端生产厂家于1970年共同制定的用于串行通讯的标准,其全名是“数据终端设备( DTE)和数据通信设备(DCE)之间串行二进制数据交换接口技术标准”。
该标准规定采用一个标准的连接器,标准中对连接器的每一个引脚的作用加以规定,还对信号的电平加以规定。
接口
该接口标准一开始采用25引脚的DB-25连接器,对引脚和信号也进行了定义;后来IBM的PC机将RS232简化成DB-9连接器,后来成为事实标准;现在在工业控制的RS-232接口一般只使用RXD、TXD、GND三条线。
全双工
信号
该标准规定逻辑“1”的电平为-5V到-15V,逻辑“0”的电平为+5V到+15V,选用该电气标准的目的在于提高抗干扰能力,增大通信距离,其传送距离一般可达15m。
电平高,范围大,所以抗干扰能力强。
电平转换
虽然很多处理器中都会集成UART控制器,但处理器产生的信号一般都是TTL信号并不符合RS232标准,所以一般需要在处理器外部添加电路对信号的电平进行转换。(添加外围电路,信号要经过其他芯片处理,例如MAX232EPE芯片,CH340芯片)
RS232只是在电气层面进行了改进,所以RS232编程和UART一样
RS232存在的问题
接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容,所以需要使用电平转换芯片才能与TTL电路连接。
通信速度慢。
易产生共模干扰,抗噪声干扰性弱。
(共模干扰指的是干扰电压在信号线及其回线(一般称为信号地线)上的幅度相同,这里的电压以附近任何一个物体(大地、金属机箱、参考地线板等)为参考电位,干扰电流回路则是在导线与参考物体构成的回路中流动。)
传输距离还是短。
RS485接口
简介
该接口标准由电信行业协会和电子工业联盟定义;使用该标准的通信网络能在远距离条件下以及电子噪声大的环境下有效传输信号;该标准允许连接多个收发器,,即具有多站能力,这样可以利用单一的RS485接口方便地建立起一个设备网络。
通信距离可达1500m
抗干扰能力增强
具有组网能力(32个站点)
主机需要对从机进行管理保证总线上的收发通畅。
信号
RS485标准规定采用差分信号进行数据传输,两线间地电压差为+2V到+6V表示逻辑“1”,两线间地电压差为-2V到-6V表示逻辑“0”;使用差分信号能有效地减少噪声信号地干扰(有效降低共模干扰,因为差分信号两根线是互作参考,即使有干扰也是两根线共同被干扰,之间的电压差不变),延长通信距离,RS485地通信距离可达1500m;RS485接口信号地电平比RS232降低了,所以不易损坏接口电路地芯片,且该电平与TTL电平兼容,可方便地与TTL电路连接。
串口和RS232都是通过一根线对GND线地高和低来表示1和0。
差分信号:用两根线(双绞线)来描述一个信号,用两根线之间的差(有正负)的大小范围来描述1或0。
接口
RS485采用两线制,这种接线方式为总线式拓扑结构,在同一总线上可以存在多个节点;
因为采用两线制,数据的发送和接收都要使用这对差分信号线,发送和接收不能同时进行,所以只能采用半双工的工作方式,编程时也需要加以处理。
电平转换
虽然很多处理器中都会集成UART控制器,但处理器产生的信号一般都是TTL信号并不是符合RS485标准的信号,所有一般我们还需要在处理器外部去添加电路将TTL信号转换成差分信号。(也就是要通过另一个芯片把单片机出来的单根线的信号转换成差分信号)
RS485的优势
接口的信号电平值较低,不易损坏接口电路的芯片,且与TTL电平兼容,可以方便地与TTL电路连接。
通信速度快
抗噪声干扰能力强
传输距离较远(1500m)
可实现多节点组网