通信协议之串口
文章目录
- 简介
- 电平标准
- 串口参数及时序
- USART与UART
- 过程
- 引脚配置
简介
- 点对点,只能两设备通信
- 只需单向的数据传输时,可以只接一根通信线
- 当电平标准不一致时,需要加电平转换芯片(一般从控制器出来的是信号是TTL电平)
- 地位先行
- 半双工
电平标准
TTL电平:+3.3V或+5V表示1,0V表示0
RS232电平:-3~-15V表示1,+3~+15V表示0
RS485电平:两线压差+2~+6V表示1,-2~-6V表示0(差分信号)
串口参数及时序
波特率:串口通信的速率
起始位:标志一个数据帧的开始,固定为低电平
数据位:数据帧的有效载荷,1为高电平,0为低电平,低位先行
校验位:用于数据验证,根据数据位计算得来(奇检验:包括检验位在内的9个数据的1是奇数个)
停止位:用于数据帧间隔,,固定为高电平,空闲时也为高电平,长度0.5,1,1.5,2常用1
字长:8位和9位,一般是8位无校验和9位有校验
- 无检验
- 有校验
USART与UART
USART (Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步/异步收发器
UART是异步
串口一般很少用同步功能
过程
- 发送:先到发送数据寄存器(TDR),再到发送移位寄存器,把一个字节的数据一位一位地向右移出去(低位先行)
- 当发送时,数据先在TDR,检测发送移位寄存器是否非空,空则将数据移动到发送移位寄存器,再置标志位TXE(TX Empty),发送寄存器空,若该标志位置1(数据还没发送出去,只是在发送移位寄存器中),就可以向TDR写入下一个数据了
- 接收:先到接收移位寄存器,把发过来的位一位一位接收,再到接收数据寄存器(RDR)
- 过程与上面类似,RDR有数据置标志位RXNE,置1就可以把数据读走
引脚配置
- TX引脚:复用推挽
- RX:浮空或上拉输入