UART
- 通用异步收发器
- 一种通用的串行、异步通信总线,该总线有两条数据线,可以实现全双工的发送和接受
- 并行通信和串行通信
- 总线传递数据的本质—高低电信号
- 并行通信—一次性传输多个位—布线难度高—存在数据干扰
- 串行通信—逐次传输
- 单工通信—单向通信
- 双工通信—双向通信
- 半双工—双向通信,但发送过程只有一条
- 全双工—双向通信,发送可以同时接收
- 波特率
- 用于表述UART通信时的通信速度,其单位为bps(bit/s)每秒传输的bit数量
- UART帧格式
- 大体上分为起始位(1bit低电平,区别于空闲高电平)、数据位(5-8bit,先发送低位再发高位)、校验位、停止位
- 串口空闲时为高电平,因此这需要一个起始位
- 校验位一般采用奇偶校验—可有可无
- 停止位必须有是高电平
- 一个问题—如果发送0011那么两个重复的bit要如何区分呢
- 通过卡时间—波特率
- 发送端和接收端的时间基准如何解决呢?
- 最多发8bit,避免累计时间误差导致错误
- 这也就是异步的原因,两者时钟并不相同
- 硬件连接
- A:TXD—RXD
- B:TXD—RXD
- UART控制器
- 通过寄存器完成上述流程
- 电气特性
- 插头插座的连线为什么方便?—具有统一的接线标准
- 串口存在的问题
- 电气接口不统一
- 只对时序做了定义,对于高低电平没有规定,这样就不可以直接相连接
- 抗干扰能力差—TTL电平抗干扰能力差
- 通信距离短—抗干扰很差
RS232/RS485
- 依赖于串口的电气设计—抗干扰更强、传输速度更快
- RS232
- 一种串行通信的标准—具有标准的连接器,对每个引脚的作用进行规定,还对信号电平进行了规定
- 信号规定
- 高电平为-5v到-15v,低电平为5v到15v
- 因此,板载RS通信需要对电平进行转换,串口发送的依然是TTL,这需要转换到232电平
- RS232存在的问题
- 电压值太高
- 需要232芯片转换电路,通信速度低
- 易产生共模干扰,抗干扰性弱
- RS485
- 解决问题
- 提高传输距离—1500m
- 允许多机通信,可以连接多个收发器,具有多站能力,可以利用一个单一的RS485接口建立起一个设备网络
- 规定使用差分信号进行数据传输,两线间电压差2v到6v表示高电平,电压差到-2v到-6v表示低电平,抗干扰能力强
- 差分信号—用两根信号的电压差描述高低电平
- 降低共模干扰到原因在于没有地的概念,只有相对电压差,在传统传输的理念中,所谓的高低电平都是相对于GND的一定电压,这中间可能会存在电压衰减和干扰造成传输错误
- 双绞线到作用—两根传输线受到的外界干扰有一致性,差分传输后解决共模干扰问题
- 电压更低,不容易损害电平转换电路
- 接口—两线制—可以总线拓扑—这两根线需要同时发送一个信号,因此就是半双工,只能同一时间做一件事,而串口的两线是独立的发送和接收,因此是全双工
- 主机可以通过某种方式进行控制总线,避免冲突
- 转换电路—由单根线转换成双线差分,不单单是电压转换
- 解决问题
- RS485的优势
- 接口的信号电平值较低,不容易损坏接口电路芯片,且与TTL电平兼容,可方便与TTL电路连接
- 通信速度快
- 抗噪声干扰性强
- 传输距离远
- 可实现多节点组网