UART总线协议

1.UART概述

UART(Universal Asynchronous Receiver-Transmitter)总线协议是串行异步通信中常用的协议异步指不需要额外的时钟线进行数据的同步传输,只需要占用两根线就可以完成数据的收发(一根接收数据,一根发送数据),成本较低,适用于远距离低速通信。
在这里插入图片描述

2.帧格式

UART一帧由起始位、数据位、校验位和停止位组成。数据逐位传输。
UART协议中数据的传输以字符/帧为单位,每两个字符之间的时间间隔是可以配置的。数据的传输速率由波特率决定,即每秒钟传送的二进制个数
在这里插入图片描述
2.1 起始位
UART空闲时,总线为高电平,当需要数据传输时,首先发送一个起始位,起始位为一个低电平“逻辑0”
2.2 数据位
紧挨着起始位的是数据位,数据位可以是5、6、7、8位,收发双方在数据开始传输前,需要对双方数据位作一致的定义,否则会导致数据的传输错误;数据位发送采用低位LSB先发送
2.3 校验位
UART的校验位紧挨着数据位,采用奇/偶位校验方式,可有可无,是为了验证数据传输的安全性而设置的,在收/发双方进行数据传输前要预设好是否需要校验位,如果需要则是奇校验还是偶校验。
什么是奇偶校验?
奇偶校验是检验传输数据中1的个数,当然有奇数有偶数,,这时候就需要用我们的校验位了,通过检验位将传输1的个数变成奇数就是奇校验,变成偶数就是偶校验。

  • 奇校验是对数据进行同或运算
  • 偶校验是对数据进行异或运算
    在这里插入图片描述
8'b01100100   //原数据
9'b01100100_0 //奇校验
9'b01100100_1 //偶校验

2.4 停止位
UART 的帧以停止位作为停止标志,是在数据位(没有校验位)和校验位(有校验位)之后发送 1~2 位的逻辑“1”。停止为可以为 1 位、 1.5 位和 2 位。当发送完停止位之后,UART 总线进入空闲。

3.UART收发逻辑

UART的发送逻辑

  • 当发送端口对应的移位寄存器中被载入数据后,发送逻辑首先拉低发送端口电平,表示起始位开始。
  • 经过一个周期后,发送逻辑将数据从移位寄存器中依次取出,并在发送端口以高低电平的形式表现出来
  • 该逻辑还可以根据配置添加不同类型的奇偶校验位以及停止位

UART的接收逻辑:往往工作在比特率高的时钟频率下,一般使用8倍频采样或者16倍频采样

  • 在每个时钟的上升沿,接收逻辑都会去监测接收端口的电平信息,如果发现接收端口被输入了低电平且持续时间超过了半个波特率信号周期,则认为检测到了起始位信号,并开始接收数据
  • 当后续数据接收完后,接收逻辑应该将此接收的一帧数据放到对应的接收FIFO中,并产生一定的信号告知系统已获得有效数据

4.uart模块实现功能

在这里插入图片描述

  • UART 收/发器
  • 支持 5-8 位数据位、 1-2 位停止位、 1 位奇偶校验位
  • 帧格式错误、奇偶校验结果和过速( Overrun)错误检测能力
  • 波特率( Buarrate)可调
  • 支持接收数据完成、发送数据完成中断,中断可屏蔽
  • 1 级数据缓冲
  • 外部总路设计,数字、操作寄存器影射
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值