通信协议分层
物理层
物理层规定通讯系统具有的机械、电子功能部分的特性,确保原始数据在物理媒体的传输。如RS232、RS485等就是电气协议,规定了数据传输时的电平标准,网络上许多博主将UART看作一个协议族,这些电气协议都是UART协议实现的方式之一。
根据通讯使用的电平标准不同,UART常见的电平标准为TTL标准、RS-232标准和RS-485,见如下表格:
通讯标准 | 电平标准(发送端) |
---|---|
5V TTL | 逻辑1:2.4V~5V——逻辑0:0~0.5V |
RS-232 | 逻辑1:-15V~3V——逻辑0:+3V~+15V |
RS-485 | 逻辑1:+2~+6——逻辑0:-2~-6 |
RS232和RS485的区别:
- 传输方式不同。RS232采用不平衡传输方式,即所谓单端通讯。RS485采用平衡传输,即差分传输方式。
- 传输距离不同。RS232最大通信距离20m,RS485最大通信距离可达3000m。
- RS232只允许一对一通信,RS485可以一对多通讯。RS485总线上最多允许128个接收器。
- 安全性与兼容性。RS232在发送数据时,发送端驱动器输出正电平在+5~+15V,负电平在-5~-15V电平。当无数据传输时,线上为TTL,从开始传送数据到结束,线上电平从TTL电平到RS-232电平再返回TTL电平。 RS485接口信号电平比RS-232降低了,就不易损坏接口电路的芯片, 且该电平与ttl电平兼容,可方便与ttl 电路连接。
- RS232为全双工通信,RS485为半双工通信(RS422为全双工)。
协议层
协议层主要规定通讯逻辑,统一收发双方的数据打包、解包标准。
UART的数据包由发送设备通过自身的TXD接口传输到接收设备的RXD接口。在串口通讯的协议层中,规定了数据包的内容,它由起始位、主体数据、校验位以及停止位组成,通讯双方的数据包格式要约定一致才能正常收发数据。
一、数据格式
1.波特率
USART的全称是同用同步异步收发器,每个字母都有它对应的含义;异步通信两个通讯设备之间需要约定好波特率,即每个码元的长度,以便对信号进行解码。常见的波特率有4800、9600、115200等。
2.起始位
起始位为0
- 通讯线在空闲状态时保持高电平,因此出现下降沿即判定为数据传输开始;
- 另外因为数据位定长,且起始位在一次接收中只判定一次,所以不用担心数据位中的0错误识别成起始位。
3.数据位
数据位可以是5/6/7/8位,传输时低位在前、高位在后。
4.奇偶校验位
校验位可以省略,当需要校验位时:
- 奇偶校验位为1或0;
- 奇校验时,数据位、校验位中1的个数,应该是奇数;
- 偶校验时,数据位、校验位中1的个数应该是偶数。
5.停止位
停止位为1。
- 停止位可以是1位的长度、1.5位的长度、2位的长度(位数的本质含义是信号出现的时间,故有分数位);
- 另外。由于数据位定长,所以停止位位置固定可知,接收时只需判定停止位是否为1即可。
二、通信制式
1.单工
数据仅能沿一个方向传输,不能实现反向传输(只能A->B,不能B->A)。
2.半双工
数据可以沿两个方向传输,但同一时刻,只能接收和发送。
3.全双工
全双工数据可以沿两个方向传输,且可以同时进行。
三、通信速率
- 串口通讯的速率用波特率表示,定义为每秒传输二进制码的位数,单位是bps(位/秒);
- 以9600bps为例,假设一个字符帧共有10位(1起始位、8位数据、1位结束),那么每秒能传输的最大字符数为“9600/10=960”;
- 最大传输距离,与波特率成反比关系(9600bps,最大传输距离约为7600m)。
原文链接:https://blog.csdn.net/weixin_43621326/article/details/88760049
https://blog.csdn.net/Chen_qi_hai/article/details/96473076