UART协议详解

通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。
定义:UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用于主机与辅助设备通信,如汽车音响与外接AP之间的通信,与PC机通信包括与监控调试器和其它器件,如EEPROM通信。

UART俗称串口,属于非同步的接发信号机制。
在这里插入图片描述

引脚:有4个,分别为VCC,GND,TX(发送端),RX(接收端)。

如上图所示,在传输信号线上,在电平有1-0变化时,代表起始位,此时数据开始传输(一次传输一个字节,也就是8位),从低位到高位依次传输(LSB->MSB),奇偶校验位可有可无,要根据传输的数据而定,停止位代表一个字节传输的结束,后面的空闲位代表此时没有数据传输了。

若数据重复发送,到了停止位后有转向起始位。

奇偶校验:奇偶校验(Parity Check)是一种校验代码传输正确性的方法。根据被传输的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验。采用奇数的称为奇校验,反之,称为偶校验。采用何种校验是事先规定好的。通常专门设置一个奇偶校验位,用它使这组代码中“1”的个数为奇数或偶数。若用奇校验,则当接收端收到这组代码时,校验“1”的个数是否为奇数,从而确定传输代码的正确性。

奇校验(odd parity):让传输的数据(包含校验位)中1的个数为奇数。

即:如果传输字节中1的个数是偶数,则校验位为“1”,奇数相反。
以发送字符:10101010为例
在这里插入图片描述
偶校验(even parity):让传输的数据(包含校验位)中1的个数为偶数。
即:如果传输字节中1的个数是偶数,则校验位为“0”,奇数相反。
还是以发送字符:10101010为例

在这里插入图片描述
数据和校验位发送给接受方后,接收方再次对数据中1的个数进行计算,如果为奇数则校验通过,表示此次传输过程未发生错误。如果不是奇数,则表示有错误发生,此时接收方可以向发送方发送请求,要求重新发送一遍数据。

优缺点:

奇偶校验的检错率只有50%,因为只有奇数个数据位发生变化能检测到,如果偶数个数据位发生变化则无能为力了╮(╯﹏╰)╭
奇偶校验每传输一个字节都需要加一位校验位,对传输效率影响很大。
奇偶校验只能发现错误,但不能纠正错误,也就是说它只能告诉你出错了,但不能告诉你怎么出错了,一旦发现错误,只好重发。
虽然奇偶校验有很多缺点,但因为其使用起来十分简单,故目前仍被广泛使用。

UART的优点和缺点
优点:
(1)只使用两根电线
(2)不需要时钟信号
(3)有一个奇偶校验位
(4)只要双方设置后,就可以改变数据包的结构
(5)有完整的文档并且具有广泛的使用
缺点:
(1)数据帧的大小限制为最多9位
(2)不支持多个从属或多个主系统
(3)每个UART的波特率必须在10%之内

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值