【MCAL_Uart】-1.1-图文详解Uart串口协议

news2024/11/24 9:28:00

目录

1 什么是UART

2 UART的电平

3 UART的波特率

4 UART帧格式

4.1 start bit起始位

4.2 data bit数据位

4.3 parity bit奇偶校验位

4.4 stop bit停止位

5 什么是8-N-1

6 UART总线负载率计算

结尾


优质博文推荐阅读(单击下方链接,即可跳转):

点击返回「《Autosar从入门到精通-实战篇》总目录」

点击返回「《Autosar_BSW高阶配置》总目录」

点击返回「《Autosar_MCAL高阶配置》总目录」

点击返回《嵌入式软件开发》专栏

1 什么是UART

UARTuniversal asynchronous receiver-transmitter通用异步接发器是一种用于asynchronous serial communication异步串行通信的硬件设备/器件,该总线(BUS)有两条数据线(TX和RX),可以实现全双工的发送和接收。在嵌入式系统中,UART常用于MCU(主机)与外设芯片(从机)之间的通信。

UART通常是一个单独的ICintegrated circuit集成电路),通常一个或多个UART被集成在微控制器MCU芯片中。

注意:

关于异步,同步,并行,串行,单工,半双工,全双工的介绍,详见博文“

什么是异步,同步,并行,串行,单工,半双工,全双工通信https://blog.csdn.net/qfmzhu/article/details/130332705”。

2 UART的电平

UART的电平通常使用逻辑电平TTLTransistor-Transistor Logic。该电平的来源MCU或外设芯片的供电。如果MCU或外设芯片的供电是5V,则5V等价于逻辑1,0V等价于逻辑0;如果MCU或外设芯片的供电是3.3V,则3.3V等价于逻辑1,0V等价于逻辑0

图2-1 UART的TTL电平

注意:

如果MCU外设芯片的供电不一样(一个5V,另一个3.3V),需要在二者之间加一个电平转换芯片,来满足通信。

图2-2 示波器下,一个UART帧波形,逻辑电平为3.3V(无parity bit,data bit长度为8,data bit = 0x09)

3 UART的波特率

波特率概念,我们在博文中“图解CAN总线】-3-详述波特率(Raud Rate)和比特率(Bit Rate)二者的差异https://blog.csdn.net/qfmzhu/article/details/122805699”提到过。

波特率(Raud Rate)的定义:指单位时间内传输的码元数,单位:波特,b/s(Baud per second)

在通信领域中,常用时间间隔相同的符号来表示一个二进制数字,这样的时间间隔内的信号称为码元。而一个信号需要的间隔被称为码元长度。

每个码元需要通过几个比特(Bit)来表示,所以传输一个码元等于传输了几个比特(Bit)。例如,若使用0、1、2、3、4、5、6、7共8个状态值,则需要3个比特来表示一个信号值,所以一个码元不一定对应一个比特。

由于在UART通信中,一个码元表示01两个状态,需要一个Bit表示,既一个码元等于1 Bit

在一个UART通信网络中,会约定好使用的波特率,来确保在同一时段,能够精准/相同分割逻辑1逻辑0,到了一个连续01序列位。而一个UART Frame则由多个0和1序列位组成。

UART常用的波特率有9600bps,既一个Bit Time:1s / 9600 = 104微秒。

图3-1 示波器下,一个波特率为9600bps的UART帧波形,一个起始位的Bit Time为104微秒

4 UART帧格式

图4-1 UART帧格式

一个Uart Frame由以下几个部分组成:

  • 1位start bit起始位:表示一次通信的开始,用于同步,给到接收器时钟同步,准备开始接收数据;
  • 8位data bit数据位;表示通过UART串口发送的数据/信息;
  • 1位parity bit奇偶校验位(可选,even偶数或odd奇数);校验发送数据的正确性
  • 1/1.5/2位stop bit停止位:表示一次通信的结束。

注意:

  • 这里一次通信,可以理解为发送一个字节。如果要连续发送多个字节,重复该过程即可;
  • 波特率,是否使用parity bit,以及data bitstop bit的长度,需要事先约定好。
  • data bit先发LSB,再发MSB,如图2-2中,data bit = 0x09

4.1 start bit起始位

起始位向接收方发出信号,表示一个新的数据即将到来。

4.2 data bit数据位

起始位后,接下来的五到九位,取决于所采用的代码集。既该UART帧携带的数据/信息。

注意对比图2-2和图4-2:少了一个高位。

图4-2 示波器下,data bit长度为7bit的UART波形(无parity bit,data bit = 0x09)

4.3 parity bit奇偶校验位

UART中的校验位(Parity Bit是一种用于检测和纠正传输错误的简单错误检测和校正方法。校验位是在UART通信中的数据位之后添加的一位,用于检测数据传输过程中的错误。

Parity Bit校验位可以有三种不同的类型:

奇校验(Odd Parity:如果数据位中的1的个数为奇数,校验位就被设置为0;如果数据位中的1的个数为偶数,校验位就被设置为1,见图4-3和图4-4;

偶校验(Even Parity:如果数据位中的1的个数为偶数,校验位就被设置为0;如果数据位中的1的个数为奇数,校验位就被设置为1,见图4-5和图4-6;

无校验(No Parity:表示不使用校验位。

图4-3 示波器下,data bit数据=0x09的UART波形(奇校验)

图4-4 示波器下,data bit数据=0x0B的UART波形(奇校验)

图4-5 示波器下,data bit数据=0x09的UART波形(偶校验)

图4-6 示波器下,data bit数据=0x0B的UART波形(偶校验)

4.4 stop bit停止位

接下来的1个或2个位总是处于逻辑1状态,称为停止位(s)。它们向接收方发出信号,表示字节已经发送完成。由于起始位是逻辑低电平0,停止位是逻辑高电平1,所以在字节之间总是至少有两个保证信号变化。

图4-7和图4-8分别连续发了两个数据(0x09和0x0B),stop bit长度分别为1bit和2bit

图4-7 示波器下,stop bit长度为1bit的UART波形(无parity bit)

图4-8 示波器下,stop bit长度为2bit的UART波形(无parity bit)

5 什么是8-N-1

8-N-1Asynchronous mode异步模式下,serial port串行端口参数设置或配置的常用速记符号,其表示:1start bit起始位8data bit数据位parity bit奇偶校验位1stop bit停止位

该缩写通常与通信链路速度一起给出,单位为bps(bits per second,其是波特率Baud单位),如9600-8-N-1该速度描述了通信链路的最大带宽:其用于成Frame的Bit总数需要低于bit transmission rate比特传输率。对于8-N-1编码,一Frame只有80%的Bit可用于数据(对于每8个bit的数据,在串行链路上发送10个bit:1个起始位、8个数据位和1个停止位)。

6 UART总线负载率计算

因为UART是全双工通信,分别有一个TX链路和RX链路,所以需要分开考虑各通信链路的负载率。

假设UART串口参数设置为9600-8-N-1,既一个UART帧为10Bit。此时你可以通过统计1秒内,串口工具或者嵌入式软件接收到的UART帧数n(这里也可以理解为接收到字节数),来计算负载率:((n * 10) / 9600) * 100%

结尾

获取更多“汽车电子资讯”和“工具链使用”,

请关注CSDN博客“汽车电子助手”,做您的好助手。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

shell脚本基础之详解脚本的控制

详解脚本的控制 信号的处理Linux信号生成信号中断进程暂停进程 捕获信号捕获脚本退出修改或移除捕获 以后台模式运行脚本后台运行脚本运行多个后台脚本 在非控制台下运行脚本作业控制 查看作业重启停止的作业调整谦让度nice命令renice命令 定时运行作业用 at 命令来定时执行作业…

2023移动云大会即将召开,划重点来了

今年由 ChatGPT 引起的AI浪潮下,人们热议其背后的算力问题,毋庸置疑,算力已成为和水电同样重要的资源。作为开发者,如何了解云计算领域有哪些最新发展趋势? 4月25-26日,以“云擎未来,智信天下”…

Scala之集合(3)

目录 WordCount案例: 需求分析与步骤: 拆分: 聚合: 格式转化: 方法1: 方法2: 排序: 方法1: 方法2: 取top3: 整体化简后的代码&#xf…

轻量级服务器nginx:配置虚拟主机的两种方式

虚拟主机是指,在一台服务器中,通过nginx的代理,我们可以访问多个网站。区分不同的网站,可以通过端口、域名两种方式 这里写目录标题 一 端口不同区分不同的虚拟主机二 通过域名区分不同的主机名1.配置域名映射2.显示登录效果 一 …

基于ATECLOUD电源模块及单板性能自动化测试方案

一、背景介绍 客户使用直流电源、交流电源、直流负载、示波器、数据记录仪、功率分析仪、CAN卡、工控机等仪器对电源模块及单板进行功能和性能方面的测试,目前想要能够通过硬件自动化测试分析系统搭配对应仪器实现自动化测试,提升测试效率。 二、用户痛…

Linux网络——NFS共享服务

Linux网络——NFS共享服务 一、NFS共享服务1.NFS网络文件系统2.NFS 架构3.NFS 工作原理4.NFS相关配置文件及其配置作用 二、搭建NFS服务1.服务器安装 nfs-utils、rpcbind 软件包2.服务器启动nfs-utils、rpcbind服务,并设置共享目录3.服务端更改NFS配置,对…

scrapy实践-02

双师demo ptpress.com.cn/shopping/index 解析每一首歌 <ul class"f-hide"><li><a href"/song?id2037945324">芯房</a></li><li><a href"/song?id2037926385">知足</a></li><li>…

QMS-云质说质量 - 3 来料检验的九大坑,你踩过几个?

大家好&#xff0c;今天我们来讲一讲来料检验。 先重点强调一下&#xff0c;我们讨论的范围是采购大量零部件的离散制造企业&#xff0c;而不是全部类型的企业。 负责来料检验的是IQC部门。相对于整个公司的组织架构来说&#xff0c;IQC是一个很小、很小的部门。负责的事情也很…

2023找工作,怎么样才能成功跳槽面试拿到高薪呢?

前言 无论是在校招还是社会企业招聘中&#xff0c;应聘者总是要经过层层的考核才能被聘用。然而&#xff0c;在招聘时&#xff0c;设置的编程以及非技术面试问题&#xff0c;真的有必要吗&#xff1f;如此就能考核出一位开发者的真实水平&#xff1f; 说到底就是考验你的技术以…

WSL2 对外暴露端口

参考文档 一口气搞定 WSL2 的网络问题从局域网 (LAN) 访问 WSL 2 发行版通过本地网络连接到 WSL2 服务器 按照下面的操作步骤进行操作。 1. powershell 支持 sudo https://github.com/gerardog/gsudo 可以直接下载msi安装&#xff1a;https://github.com/gerardog/gsudo/rel…

excel数据分析比赛

基础 sql:百度网盘 请输入提取码 excel函数 <

Git+SpringBoot详谈

&#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;老茶icon &#x1f64a; ps:点赞&#x1f44d;是免费的&#xff0c;却可以让写博客的作者开兴好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#xff0c;计…

Linux:shell+权限

索引 1.shell命令及其理解2.Linux权限及其理解1.权限基本概念2.修改权限3.权限掩码umask4.修改拥有者和所属组 3.粘滞位 1.shell命令及其理解 定义&#xff1a;命令行解释器 作用&#xff1a; 将使用者的命令翻译给kernal&#xff08;核心&#xff09;处理将核心的处理结果返…

隧道工程运维VR虚拟实操模拟训练提高学生动手能力

轨道交通作为我国国民经济的命脉和交通运输的骨干网络&#xff0c;不仅承担了绝大部分国家战略、经济物资的运输&#xff0c;还承担着客运运输职能。随着政策的重视和专业的细分&#xff0c;轨道交通的人才需求越来越大&#xff0c;但是目前传统教学面临着一些问题。 • 轨道交…

【AutoGPT】AutoGPT出现,是否意味着ChatGPT已被淘汰

Yan-英杰的主页 悟已往之不谏 知来者之可追 C程序员&#xff0c;2024届电子信息研究生 目录 前言 什么是ChatGPT&#xff1f; 什么是AutoGPT&#xff1f; AutoGPT与ChatGPT的区别 AutoGPT的优势和劣势 优势 劣势 ChatGPT是否会被淘汰&#xff1f; 前言 近年来&#x…

软件测试技术那么多,我们该如何分辨?

经典软件测试技术分类&#xff1a; 测试技术是指顺利完成测试的一系列相关过程&#xff0c;有很多可能的分类方式&#xff0c;表2-1就是其中的一种。表中列出了流行的测试技术&#xff0c;也按照上面的讨论对其进行分类&#xff1a;手工测试、自动测试、静态测试、动态测试、功…

瑞芯微RK3568开发板发布邮票孔开发板

迅为 iTOP-3568邮票孔开发板采用瑞芯微RK3568处理器&#xff0c;22nm工艺制程&#xff0c;集成4核A55架构处理器和Mali G52 2EE图形处理器&#xff0c;支持4K解码和1080P编码&#xff0c;内置独立的NPU&#xff0c;可用于轻量级人工智能应用&#xff0c; 开发板采购底板核心板的…

【大数据之Hadoop】十九、MapReduce总结

MapTask工作机制 &#xff08;1&#xff09;Read阶段&#xff1a; job的提交流程&#xff1a;待读写的源数据由客户端进行切片划分&#xff0c;划分完成之后提交(切片信息、jar包、xml配置文件)给yarn&#xff0c;yarn开启MrAppMaster&#xff0c;MrAppMaster读取切片信息&…

[BJDCTF2020CTF]之Misc篇(NSSCTF)刷题记录③

CTFHub-Misc篇刷题记录①wp SUCTF-2019-MISC签到题2021-安徽省赛-misc签到RCTF-2019-Misc-draw2020-BJDCTF-Misc-藏藏藏2020-BJDCTF-Misc-签个到2020-BJDCTF-Misc-认真你就输了2020-BJDCTF-Misc-你猜我是个啥2020-BJDCTF-Misc-一叶障目2020-BJDCTF-Misc-鸡你太美2020-BJDCTF-Mi…

2023-04-24 FastDFS使用

FastDFS 1.介绍 ​ 文件上传后先是发送到tomcat应用目录下,通过shell脚本(定时执行命令)将某个目录下的文件复制到一个不会被清理的固定目录中 FastDFS 是用 c 语言编写的一款开源的分布式文件系统。FastDFS 为互联网量身定制&#xff0c;充分考虑了冗余备份、负载均衡、线性…