uart串口协议

1.UART(异步全双工)

   UART是通用异步收发传输器,使用RxD和TxD两根线实现异步全双工通信;为确保通信可靠,可以在通信两边接共地;因此,完整的UART通信只需最少3根线即可。

   UART是串行通信,利用一条传输线(RX,TX)将数据按bit进行顺序传送,特点是通信线路简单,成本低,适用在需要远距离传输,但对速率要求不高的应用场景

   RxD是发送数据线,TxD是接收数据线,通信双方使用交叉互联,RxD接对方TxD,TxD接对方RxD。UART使用标准的TTL/CMOS电平(05V,03.3V,02.5V,01.8V)来表示数据,高电平表示1,低电平表示0.为了增强抗干扰能力,提高传输长度,可将TTL/CMOS 电平转换为RS232电平逻辑电平,312V表示0,-3-12V表示1(RS232为负逻辑)

2、数据传输

1)UART平时处于空闲状态,逻辑1状态。

2)当有数据发送时,先发送起始位,即将TxD拉低并维持1位时间,接收方在检测到起始位下降沿,等待1.5位后开始一位一位检测数据。

3)发送数据,UART数据一帧可以是5,6,7,8位等,一般是8bit,一个字节。数据发送是先发送低位,依次发送,直到最高位。

4)可以使用0或者1bit的校验位,校验位可以是奇校验或者偶检验。奇校验:数据加校验位中1的个数为奇数;偶校验:数据加校验位中1的个数为偶数。

5)最后是停止位,数据线恢复到空闲状态,停止位可以是1,1.5,2位。

UART的数据形式
在这里插入图片描述

   UART传输的数据会被封装为数据包,数据包包含1bit起始位,5~8bit数据位(取决与设备UART的具体设置),一个奇偶校验位(可选),以及1个或2个停止位。

起始位:UART数据传输线在空闲时保持高电平,当设备发出低电平信号时,表示数据的开始。

停止位:UART数据传输线从低电平状态向高电平转换,不过至少需要持续两位数据的时间宽度,才表示整个数据包的传输已经结束。并且由于数据是在传输线上定时的,不同的设备之间可能时钟存在偏差,偏差的积累可能会导致数据位的传输错误,所以数据定时发出停止位可以有效校正时间的偏差,停止位越多,校正的效果越好。

数据位:数据位的宽度可能有5,6,7,8位,一般8位会用的比较广泛(跟ACSII码有关,一个ASCII字符为8bit)。

校验位:是UART中一种简单的检错方式,一般有四种校错方式:偶校验,奇校验,高校验,低校验。对于奇偶校验的情况,串口会设置校验位(数据位的后一位),用1bit来校验数据有偶数个还是奇数个的逻辑高电平。比如如果数据位为00011,偶校验位就是0,为了保证数据位+校验位总数偶数的个数加起来为偶数。不过,校验位不是必须有,属于可选项。

在停止位之后,可能还会有空闲位,空闲状态时的信号处于高电平,即“1”,表示当前线路上没有数据传输。所以停止位开始的时候就能被有效检测到。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值