概念
UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)
是一种 异步 串行 全双工 通信协议,用于设备一对一进行数据传输,只需要两根线(TX,RX)。
异步:通信双方不需要一根时钟线(CLK)。
串行:数据在一根信号线上一bit一bit传送出去。
全双工:在任何时刻,数据既能在设备1传到设备2,又能在设备2同时传到设备1。全双工案例:电话;半双工案例:对讲机。
帧格式
- 起始位:表示数据传输的开始,通常为一个低电平信号。
- 数据位:传输实际数据,常见的数据位长度为7位或8位。
- 奇偶校验位:用于错误检测,可以是奇校验、偶校验或无校验。
- 停止位:表示数据传输的结束,通常为一个或两个高电平信号
小端字节序( 英文:little endian),最小单位为 字节,串口通信是按位发送的
波特率
波特率是衡量数据传输速率的单位,表示每秒传输的符号数。
- 高波特率:数据传输速度快,但可能增加错误率。
- 低波特率:数据传输速度慢,但错误率较低。
那数据是怎么样的呢?
这边串口发送一个 'a' ,波特率设置为115200,一个bit大概为8.6us。
从左往右看,
第一个低电平(9us),为起始位
后面则是 1000 0110 ——> 0110 0001 ,倒过来正好是 ASCII 的 'a' 的二进制数
如果这边连续发送 aa 呢?如下图