1. UART
通讯的双方必须将数据包的格式(波特率、数据位、检验位、停止位)约定一致才能正常收发数据。
串口线最少需要两根(GND和信号线),可以实现单工通信;也可以使用3根通信线(TX、RX、GND),来实现全双工通信。
1.1 异步全双工:UART是通用异步收发传输器,使用RxD和TxD两根线实现异步全双工通信;为确保通信可靠,可以在通信两边接共地;因此,完整的UART通信只需最少3根线即可。
1.2单工通信:最少两根线,信号线和GND线。
TXD:发送数据
RXD:接收数据
GND:接地
1.3数据形式
传输以位为单位
1位起始位-->5-8位(8位常用)-->0-1检校位-->1-2位停止位(常用1位)-->(可能有不定长的空闲位)。
transmitter由发送缓冲区和发送移位寄存器构成。
我们要发送信息时,首先将信息进行编码(一般用ASCII码)成二进制流,然后将一帧数据(一般是8位)写入发送缓冲区(从这里以后程序就不用管了,剩下的发送部分由硬件自动完成),最后发送移位寄存器会自动从发送缓冲区中读取一帧数据,然后自动移位(移位的目的是将一帧数据的各个位分别拿出来)将其发送到Tx通信线上。
receiver由接收缓冲区和接收移位寄存器构成。
当有人通过串口线向我发送信息时,信息通过Rx通信线进入我的接收移位寄存器中,然后接收移位寄存器自动移位并将该二进制位保存入我的接收缓冲区,接收完一帧数据后receiver会产生一个中断给CPU,CPU收到中断后即可知道receiver接收满了一帧数据,就会来读取这帧数据。