嵌入式总线协议(一)——UART协议

UART定义

UART,即通用异步收发器,是一种串行、异步的通信总线。该总线有两条数据线,可以实现全双工的发送和接收。

  • 嵌入式中使用最多的一种协议。

通信基础

  • 并行通信
    同时发送8位数据(一个字节)。
    使用总线数量多,浪费资源;在传输时,线与线之间有干扰。

  • 串行通信
    由低位到高位依次发送8位数据。

  • 单工通信
    数据传送方向为单向,只能由发送器发送给接收器。

  • 双工通信
    数据传送方向为双向,区分半双工、全双工。
    半双工为两设备之间能够相互发送和接收,但一次只能一个方向进行(一根总线);
    全双工为两设备之间的发送和接收,能够同时进行(两根总线)。

  • 波特率
    用于描述UART通信的通信速度,单位为bps,每秒传送的bit的数量。

UART帧格式

在这里插入图片描述

  • 空闲位 规定空闲时必须为高电平
  • 起始位(1位)低电平,表示通信的开始。
  • 数据位(5~8位,先发低位、后发高位)通常为一个字节,8位。
  • 校验位(可有可无)校验数据的准确性。奇偶校验、和校验。
  • 停止位(1、1.5、2位)高电平,表示这次通信的结束。

串口只能一个一个字节发送。

波特率

  • 波特率用于对传输数据高低电平个数的识别,例如:
    在未规定波特率的情况下,发送的两次数据分别为“01”和“0011”,均为低电平变为高电平,接收器通过波特率的大小来识别发送器发送的是“01”还是“0011”。
  • 异步:发送、接收双方的时钟不同步,因此会导致在相同波特率的情况下,发送和接收时的时钟不同,逐渐产生累积误差。
  • 串口通信不允许连续发送,只能发送一个字节:为了避免传输时间的累计误差。
  • 发送字节数时间计算:

假设传输波特率为9600,传输一个字符的帧格式为10bit,传输一个字符所需的时间为:

         t = 10  / 9600 = 1ms 

UART控制器

嵌入式处理器中有串口控制器,在使用时只需要对其内部的相关寄存器进行设置。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值