UART

news/发布时间2024/5/21 5:29:22

UART

  • UART
    • 1. 什么是UART?
    • 2. 硬件接线
    • 3. 数据帧格式
    • 4. 波特率
      • 4.1. 波特率和比特率的定义
      • 4.2. 波特率和比特率之间的关系
      • 4.3. 波特率的作用
    • 5. UART通信分析实践
      • 5.1. 发送"Hello, World!",请写出数据帧。
      • 5.2. 每秒传输多少个字节?每秒传输多少个比特?
    • 6. 总结
    • others

参考链接:

  1. 超简单的一种通信,2分钟搞懂,串口通讯的工作原理!
  2. UART串口协议详解 - 曾小庆的文章 - 知乎
  3. 有待补充:透彻理解UART通信,没有比这篇更详细的了! - 亿佰特物联网应用的文章 - 知乎

1. 什么是UART?

通用异步收发器(Universal Asynchronous Receiver/Transmitter),通常称作UART,
是一种串行、异步、全双工的通信协议,在嵌入式领域应用的非常广泛。

2. 硬件接线

  • 通信双方TX、RX交叉连接
  • 通信双方共地

3. 数据帧格式

  • 启动位:
    • 占1个位长
    • 保持逻辑0电平
  • 有效数据位:
    • 可选5、6、7、8、9个位长(通常是8bit)
    • LSB在前,MSB在后,即最低有效位在前)
  • 校验位:
    • 1位,可选是否有
    • 常见的是奇偶校验位
  • 停止位:
    • 可选1、1.5、2个位长
    • 保持逻辑1电平
  • 空闲位:
    • 总线空闲时默认逻辑1电平

4. 波特率

4.1. 波特率和比特率的定义

波特率有一个很重要的相关概念,称为比特率。

  • 比特率:每秒钟传输的比特数,单位bit/s,bps
  • 波特率:每秒钟传输的码元数,单位symbol/s,Baud

4.2. 波特率和比特率之间的关系

比特率 = 波特率 * log2M,M表示每个码元承载的信息量(M也可以认为是进制数)。

二进制系统中,每个码元都存在2种状态,所以波特率数值上等于比特率。

4.3. 波特率的作用

在串口通信中,发送端和接收端需要规定好一个相同的波特率,才能保证通信正常。

在描述波特率的作用时,我比较喜欢用打羽毛球来进行比喻。发送端是发球的人,接收端是接球的人,而波特率就是两个打球的人挥拍的频率,如果这两个人的节奏一致,羽毛球就可以很长时间不落地,而如果有快有慢,就很容易出现丢球的情况。

5. UART通信分析实践

UART在波特率为9600bps、数据帧格式为默认8-N-1的情况下:

5.1. 发送"Hello, World!",请写出数据帧。

  1. "Hello, World!"一共有12个字节,所以一共需要发送12个UART数据帧。
  2. 根据ASCII码,将字节转成二进制表示:
    字符 二进制
    H 01001000
    e 01100101
    l 01101100
    l 01101100
    o 01101111
    , 00101100
    W 01010111
    o 01101111
    r 01110010
    l 01101100
    d 01100100
    ! 00100001
  3. 数据格式默认8-N-1,所以开始位1位,结束位1位,无校验位。
    0010010001 / 0011001011 /
    0011011001 / 0011011001 /
    0011011111 / 0001011001 /
    0010101111 / 0010101111 /
    0011100101 / 0011011001 /
    0011001001 / 0001000011 /
  4. 注意数据帧之间要有空闲位

5.2. 每秒传输多少个字节?每秒传输多少个比特?

  1. 1byte = 8bit,但是UART协议中包含开始位和结束位,所以每秒钟传输的字节数 = 9600/10 = 960
  2. 根据计算出的每秒钟传输的字节数,每秒钟传输的比特数是 960*8 = 7680(即一个byte的传输速率是7680bps)

6. 总结

  1. UART属于哪种类型的通信方式?
  2. 请绘制出UART通信的硬件接线图。
  3. 波特率和比特率之间的区别是什么?
  4. UART在波特率为9600bps、数据帧格式为默认8-N-1的情况下,发送"Hello, World!",请写出数据帧。
  5. UART在波特率为9600bps、数据帧格式为默认8-N-1的情况下,每秒传输多少个字节(Byte)?每秒传输多少个比特(bit)?

others

我之前总是UART、串口,两个概念傻傻分不清楚。
严格来说,串口是串行通信接口的简称,所有按位发送和接收的接口都可以被称作是串口。而UART是一种常见的串口协议,其余常见的串口协议包括RS232、RS485等等。
但其实也不用分的那么清楚,在谈论单片机的时候,大家提到串口,双方都会默认就是UART。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/65115653.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

单词反转字符串函数设计

简单设计一个以单词为个体的字符串翻转函数/*************************************************** file name:ReverseWorld.c* author :eon4051@163.com* date :2024/05/11* brief :单词反转字符串函数设计* note :None** CopyRight (c) 2024 eon…

现代移动端网络短连接的优化手段总结:请求速度、弱网适应、安全保障

1、前言 众所周之,通常开发一个移动端应用,会直接调用系统提供的网络请求接口去服务端请求数据,再针对返回的数据进行一些处理。 但对于追求用户体验的应用来说,还会针对移动网络的特性做进一步优化,包括: 1)速度优化:网络请求的速度怎样能进一步提升? 2)弱网适应:移…

kali中arp欺骗,连上校园网断舍友的网

首先kali的配置: 参考网站:https://jingyan.baidu.com/article/2c8c281d145cf44108252a97.html 然后下载arpspoof插件: apt-get install dsniff然后一条命令: arpspoof -i eth0 -t 受害者的ip 网关//这个网关是你自己连上校园网的那个网关

PTA-1002

原先主要错误: 没有考虑到有关0的相关情况观看的大佬代码整理思路无非就是在相同的指数的情况下,系数相加 因为最后是要从大到小输出来。注意要对最后的结果进行四舍五入; PTA的英语题对英语不好的我真心不友好。#include<map> #include<cmath> #include<iost…

项目打包与上线

目录1.修改好上线环境中的请求地址2.打包项目3.连接服务器4.配置nginx代理5.上线成功 1.修改好上线环境中的请求地址2.打包项目进入项目根目录,输入npm run build解决报错问题 当我们无法解决多而烦的ts检查报错时,可以在项目中的package.json文件中把下图中原本的红色框内容…

实验四:代码审查

一、实验题目 :代码审查 二、实验目的 1、熟悉编码风格,利用开发环境所提供的平台工具对代码进行自动格式审查; 2、根据代码规范制定代码走查表,并按所制定的审查规范互审代码。 三、实验内容 1、IDEA环境和PyCharm环境二选一; IDEA环境 (1)预先准备在IDEA环境下实现对输…