通信基础
- 同步串行通信:信息发送设备与接收设备需要时钟同步两者间除数据线连接,还需要额外的时钟线连接
- 异步串行通信:信息发送设备与接收设备之间无时钟连接,信息中包含特殊标志位Start/Stop,接收没备根据特殊标志位利用本地时钟对数据采样
- 单工通信:信息只能单一方向传输。例如:广播、遥控器
双工通信
- 半双工:数据支持双向传输,发送和接收不能同时进行,同一时间只能发送数据或者接收数据。例如:
I
2
C
I^2C
I2C
- 全双工 :数据支持双向传输,接收和发送同时进行。例如:电话、网口、UART
UART
通用异步收发器,是一种通用的串行、异步通用总线。该总线有两条数据线,可以实现全双工发送和接收,在嵌入式系统中常用于主机与辅助设备之间的通信。
UART帧格式
-
起始位:起始信号一般由一个逻辑“0”的数据位表示 -
数据位:在起始位后,紧接着的是传输数据的主体内容,即有效数据。通常有效数据的长度有5-8位长 -
校验位:在有效数据之后,有一个可选的数据校验位。由于数据通信很容易收到外界干扰,导致数据传输出现偏差,因此,可以在传输过程中加上数据校验位来解决这个问题。校验方法有奇偶校验,0校验,1校验以及无校验 -
停止位:停止信号可由1,1.5或2个逻辑“1”的数据位表示 -
波特率:用于描述UART通信时的通信速度,其单位为bps(bit per second)即每秒钟传送的码元。
UART硬件连接
硬件连接
- UART控制器:一般情况下处理器中都会集成UART控制器,我们使用UART进行通信时候只需对其内部的相关寄存器进行设置即可
UART存在的问题
UART只是对信号的时序进行了定义,而未定义接口的电气特性
UART通信时一般直接使用处理器使用的电平,即TTL电平,但不同的处理器使用的电平存在差异,所以不同的处理器使用UART通信时一般不能直接相连
UART没有规定不同器件连接时连接器的标准,所以不同器件间通过UART通信时连接很不方便
UART一般直接使用TTL信号来表示0和1,但TTL信号的抗干扰能力较差,数据在传输过程中很容易出错
因为TTL信号的抗干扰能力较差,所以其通信距离也很短,一般只能用于一个电路板上的两个不同芯片之间的通信
|