目 录CONTENT

文章目录

UART串口通信协议介绍

成培培
2024-12-20 / 0 评论 / 0 点赞 / 16 阅读 / 0 字

UART协议介绍

通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,通常称为UART),中文可以叫串口通信协议,常用于单片机和外部模块进行通信,也可以用于单片机和电脑进行通信。应该算是最简单方便的一种通信协议了,电脑插上USB转串口模块,也可以方便的从单片机上打印一些信息到电脑上显示。

引脚定义

主要的引脚其实就两个,一个发送数据的引脚TXD,一个接收数据的引脚RXD

  1. TXD:用于发送数据的引脚,需要接到对方的RXD引脚上
  2. RXD:用于接收数据的引脚,需要接到对方的TXD引脚上
  3. GND:发送接收端需要共地
  4. VCC:供电引脚

如果只需要发送数据可以只接TXD,只需要接受数据也可以只接RXD

基本参数

串口通信协议有几个关键的参数,定义了发送接收数据的规则

  1. 波特率:因为串口协议没有单独的时钟信号线来给接收方确认采样的时刻,所以在发送接收数据之前,会定义好发送数据的脉冲频率,比如1秒产生9600个信号,那么发送接收方就都按照这个频率来采样数据,就可以对齐数据。常用的波特率我一般用过9600和115200。
  2. 数据长度:串口协议发送数据是按照一个包一个包发送的,一般我们就定义一个包包含8个bit位也就是一字节数据,所以数据长度一般就设置为8,如果需要校验数据就多一位校验位,加起来就是设置9,我一般也可以不加校验位
  3. 校验位:校验位是紧跟在数据后的一位,用于校验前面数据的完整性,可采用奇校验、偶校验,但是一般好像也不太用,因为校验效果实在有限,不管是奇校验还是偶校验只不过是数数数据位1的个数,如果出现2位都有变化,也校验不出来
  4. 停止位长度:数据位和校验位(如果有校验位)都发送完了,会发送一个停止位,这里就是定义停止位的长度,一般也就是1

通信过程

  1. 发送数据前,初始状态TXD置为高电平,这时是一个空闲状态,准备发送数据将TXD拉低并且保持一个信号周期,如果波特率事先约定的9600,那就是1/9600秒,这一位就是起始位,代表我要准备发数据了
  2. 1/9600秒的起始位结束,就开始要发送数据位,数据长度一般设置8,那么接下来就是8/9600秒的连续8个信号
  3. 发完数据位后,紧接着就要发送停止位,停止位长度如果是1,那就接上一个1/9600秒的高电平即可

以上10个信号周期就发送出去了一个字节的数据了,也就是这10个信号周期组成一个数据包,以下是发送11011010的时序图:
uart时序图

0

评论区