目录
简介:
串行通信协议包括:
UART通用异步收发传输器 (Universal Asynchronous ReceiverTransmitter) 是一种串行异步收发协议 (异步是指通信双方使用各自的时钟控制数据的发送和接收过程),目前在各种通信领域广泛应用。
UART通讯协议中指明在数据通信过程中,将数据一位一位(0'或1’) 进行传输,状态位高电平代表1低电平代表0。
当两个设备使用UART通讯时,双方要事先约定好波特率、数据位、奇偶校验位以及停止位后才能进行数据交互。
UART 协议解析:
奇偶校验位是一种用于串口通信中的错误检测机制。它通过在每个数据字节的最高位(奇校验)或最低位(偶校验)上添加一个校验位来检测数据传输过程中的错误。
在奇校验中,校验位被设置为使得数据字节中1的个数为奇数。例如,如果数据字节中有偶数个1,则校验位被设置为1,以使得总的1的个数为奇数。相反,在偶校验中,校验位被设置为使得数据字节中1的个数为偶数。
在发送端,发送方计算数据字节中1的个数,并根据奇偶校验位的设置将校验位添加到数据字节中。在接收端,接收方计算接收到的数据字节中1的个数,并与接收到的奇偶校验位进行比较。如果两者不匹配,表示数据传输过程中发生了错误。
奇偶校验位可以帮助检测一些单比特错误,例如位翻转或传输噪声引起的错误。然而,它并不能检测到所有类型的错误,因此在实际应用中,通常会结合其他错误检测和纠正机制来提高通信的可靠性。
串口协议工作过程:
首先两设备的硬件连接如下:
其次设置好所需要的波特率:
波特率: 表示数据每秒传输的位数,单位bps (bits per second) ,若串口波特率设置为4800bps,那么传输一个比特需要的时间是1/4800≥208.3us,在单片机程序设计中一般用定时器作为波特率发生器。
首先,如果没有数据发送,会一直保持高电平
如果有数据输入,则会在第一位收到一位低电平作为起始位
收到起始位后的第二位,会延后52us接收数据,确保数据的稳定可靠
起始位后的八位数据是所传输的一个二进制字符
最后一位是停止位置高电平