通讯总线 | 串口

串口通讯总线特点

  • 串行
  • 全双工
  • 异步

名词解释

名词 名词说明
异步通讯 收发双方有各自独立的系统时间,不一致
波特率 码元个数(bps)

串口通讯协议

如上图:
串口发送协议分为:空闲位、起始位、 数据位(5-8bit) 、校验位 (可有可无)、停止位(1/1.5/2bit)
默认空闲位为高电平,数据位的8个bit发送顺序:先发低位、再发高位
校验方式:奇偶校验

总线传输数据工作原理

串口控制器控制数据的发送接收。
串口控制器中包括:波特率产生器、接收器、发送器、控制单元(控制器)。
发送器:发送队列 -> 移位器(在发送数据的基础上增加起始位、校验位等,再发出去)。
接收器的工作和发送器相反,由移位器获取数据并拷贝到接收队列中。
接收方根据设置的波特率,通过定时器确定每个bit所花费的时间,从而解析出数据位的高低电平。

Q:为什么串口不能连续发送,必须使用停止位?

为了保证接收端能够正常解析发送端的数据。原因是异步通信的时间系统不一致,容易产生系统时间误差(特别是在长时间运行、误差积累的情况下,无法正常解析数据位),加入停止位的核心目的是人为进行时间同步(消除累积误差)。

寄存器配置

如上图,通过配置寄存器(波特率、是否使能奇偶校验、几位数据位、几位停止位),使串口控制器根据寄存器配置进行工作。

配置实例

SOC4412芯片:
提供4个通道(CH0-3),提供一个特别的通道(CH4),即5个串口控制器。
每个控制器中分别有发送缓冲区、接收缓冲区,不同控制器的缓冲大小可能不一样,但原理一样,需要单独配置。

RS232协议/RS485协议

由于CPU端的串口是TTL电平(不同CPU间的电压不一样),所以不同CPU间串口不能直接TTL电平连接进行通讯,需要引入标准的RS232或者RS485/422协议进行串口间的通讯,RS232/RS485协议走的都是串口通讯,相比于串口唯一的区别就是在电气层次实现了标准化,使得不同CPU间串口可正常通讯(正常直接通过DB9进行连接通讯),RS232/RS485协议在底层配置方面和串口保持一致

RS232协议特点

  • 协议标准化,RS232电平(5-15V为低电平)
  • 传输距离变长,理论最大传输距离可达15m

RS485协议特点

  • 协议标准化,半双工(RS422为全双工)
  • 采用差分信号进行数据传输,可消除共模干扰
  • 以组网的形式进行通讯,理论最大传输距离可达到1500m
  • 组网的通讯方式主从收发逻辑协议没有规定,需自定义实现(主从收发逻辑关系由上层应用控制,可参考I2C的通讯方式实现(但并不限于I2C的通讯方式),可自定义自定义上层应用、编码实现)。
posted @ 2021-08-07 23:07  CristL  阅读(459)  评论(0编辑  收藏  举报