多学多练
一、了解串口协议
01 串口协议
串口协议又指串口通信,串口通信指串口按位(bit)发送和接收字节。尽管比特字节(byte)的串行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。串口通信协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。
02 RS-232
RS-232(ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表。用于驱动和连线的改进,实际应用中RS-232的传输长度或者速度常常超过标准的值。RS-232只限于PC串口和设备间点对点的通信。RS-232串口通信最远距离是50英尺。
03 RS-422
RS-422(EIA RS-422-AStandard)是Apple的Macintosh计算机的串口连接标准。RS-422使用差分信号,RS-232使用非平衡参考地的信号。差分传输使用两根线发送和接收信号,对比RS-232,它能更好的抗噪声和有更远的传输距离。在工业环境中更好的抗噪性和更远的传输距离是一个很大的优点。
04 RS-485
RS-485(EIA-485标准)是RS-422的改进,因为它增加了设备的个数,从10个增加到32个,同时定义了在最大设备个数情况下的电气特性,以保证足够的信号电压。有了多个设备的能力,你可以使用一个单个RS-485口建立设备网络。出色抗噪和多设备能力,在工业应用中建立连向PC机的分布式设备网络、其他数据收集控制器、HMI或者其他操作时,串行连接会选择RS-485。RS-485是RS-422的超集,因此所有的RS-422设备可以被RS-485控制。RS-485可以用超过4000英尺的线进行串行通行
二、区别电平标准
RS232 RS485 TTL同属于异步串行通信,这三种通信方式本质上是电平逻辑的区别
01 RS232电平
RS232多用于电脑的串口,目前使用最广泛的就DB9接口,即九线接口,目前一般的电脑主机后面都会有这样的接口.
RS232电平采用负逻辑,
-15V ~ -3V 代表逻辑1
+3V ~ +15V 代表逻辑0
-3V ~ +3V 无意义
在早期还有DB25线的接口,后来IBM将标准改成9线接口。
这种信号传输方式决定了一根数据线即可实现数据传输,所以两根信号线(TX RX)即可实现全双工地数据传输,上图中的其他信号脚类似于RTS/CTS等都是用于差错控制,在较简单的应用中只需要GND RX TX即可。
RS232电平传输方式有一些明显的缺点:
- 接口的信号电平值相对太高,容易损坏接口电路的芯片。
- 传输速率比较低,在异步传输时,波特率只有20Kbps。
- 接口使用一根信号线和一根信号返回线回路构成共地的传输模式,很容易产生共模干扰,所以抗噪声比较弱。
- 由于抗干扰能力弱,易产生共模干扰,所以传输距离并不远。
针对RS232在这些方面的不足,于是不断出现了一些新的标准,其中RS485是使用比较广泛的标准。
02 RS485电平
RS485多用于长距离传输的应用场景,大多数是在工业场景中,RS485电平逻辑采用差分电平,即传输数据至少需要两根信号线,根据两根信号线电压的差值来确定电平逻辑,发送端电平:
+2V ~ +6V 代表逻辑1
-2V ~ -6V 代表逻辑0
其他 无意义
接收端电平:
> +200mv 代表逻辑1
< -200mv 代表逻辑0
其他 无意义
由于在传输数据时需要两根信号线同时工作,所以RS485只能做到半双工通信,在RS232上依然有以下优化:
- 差分信号抗干扰能力强
- 传输距离大大加长,可以达到KM级别的传输
- 相对应RS232而言可以支持多点传输甚至联网构成分布式系统。
- 传输速率可达到10M/bps。
03 TTL电平
目前我们熟知的单片机基本上都是使用的TTL电平的信号系统,这是计算机处理器控制的设备内部各部分之间通信的通信标准。
TTL集成电路的全名是晶体管-晶体管逻辑集成电路(Transistor-Transistor Logic)。在传统的单片机系统中,VCC(供电电压)为5V,电平标准为:
输出:
小于0.8V 代表逻辑0
大于2.4V 代表逻辑1
输入:
小于1.2V 代表逻辑0
大于2.0V 代表逻辑1
其他 无意义
- TTL电平输入脚悬空时是内部认为是高电平。要下拉的话应用1k以下电阻下拉。
- TTL电平无法进行长距离传输,抗干扰能力弱,信号衰减较大。