透彻理解 UART 通信的基本方法

news/2024/11/8 16:54:56/

UART是一种异步全双工串行通信协议,由 Tx 和 Rx 两根数据线组成,因为没有参考时钟信号,所以通信的双方必须约定串口波特率数据位宽奇偶校验位停止位等配置参数,从而按照相同的速率进行通信。

异步通信以一个字符为传输单位,通信中两个字符间的时间间隔多少是不固定的,然而在同一个字符中的两个相邻位间的时间间隔是固定的。当波特率为 9600bps 时,传输一个 bit 的时间间隔大约为 104.16us;波特率为 115200bps 时,传输一个bit的时间间隔大约为 8us。

数据传送速率用波特率来表示,即每秒钟传送的二进制位数。例如数据传送速率为120字符/秒,而每一个字符为10位(1个起始位,7个数据位,1个校验位,1个结束位),则其传送的波特率为10×120=1200字符/秒=1200波特。

数据通信时序图:

其中各位的意义如下: 

起始位:先发出一个逻辑”0”信号,表示传输字符的开始;

数据位:可以是5~8位逻辑”0”或”1”;如ASCII码(7位),扩展BCD码(8位);小端传输,即LSB先发,MSB后发;

校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验);

停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平(用于双方同步,停止位时间间隔越长,容错能力越强);

空闲位:处于逻辑“1”状态,表示当前线路上没有数据传送;

注:异步通信是按字符传输的,接收设备在收到起始信号之后只要在一个字符的传输时间内能和发送设备保持同步就能正确接收。下一个字符起始位的到来又使同步重新校准(依靠检测起始位来实现发送与接收方的时钟自同步的)。
 

↑图-1 起始位和停止位

↑图-2 数据位
 

↑传输“A”

上图是 uart 协议传输一个”A” 字符通过示波器的uart解码而得到的波形示意图。根据此图来介绍一下 uart 的一些基本参数。 
波特率:此参数容易和比特率混淆,其实他们是有区别的。但是我认为 uart 中的波特率就可以认为是比特率,即每秒传输的位数(bit)。一般选波特率都会有9600、19200、115200 等选项。其实意思就是每秒传输这么多个比特位数(bit)。 
起始位:先发出一个逻辑”0”的信号,表示传输数据的开始。 
数据位:可以选择的值有 5,6,7,8 这四个值,可以传输这么多个值为 0 或者 1 的bit位。这个参数最好为8,因为如果此值为其他的值时当你传输的是 ASCII 值时一般解析肯定会出问题。理由很简单,一个ASCII字符值为8位,如果一帧的数据位为7,那么还有一位就是不确定的值,这样就会出错。 
校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性。就比如传输 “A”(01000001) 为例。 
1、当为奇数校验:”A”字符的8个bit位中有两个1,那么奇偶校验位为1才能满足1的个数为奇数(奇校验)。图-1的波形就是这种情况。 
2、当为偶数校验:”A”字符的8个bit位中有两个1,那么奇偶校验位为0才能满足1的个数为偶数(偶校验)。 
此位还可以去除,即不需要奇偶校验位。 
停止位:它是一帧数据的结束标志。可以是 1bit、1.5bit、2bit 的空闲电平。可能大家会觉得很奇怪,怎么会有1.5位~没错,确实有的。所以我在生成此 uart 信号时用两个波形点来表示一个bit。这个可以不必深究。。。 
空闲位:没有数据传输时线路上的电平状态。为逻辑 1。 
传输方向:即数据是从高位(MSB)开始传输还是从低位(LSB)开始传输。比如传输 “A” 如果是 MSB 那么就是 01000001(如图-2),如果是 LSB 那么就是10000010(如下图的图-4) 
uart 传输数据的顺序就是:刚开始传输一个起始位,接着传输数据位,接着传输校验位(可不需要此位),最后传输停止位。这样一帧的数据就传输完了。接下来接着像这样一直传送。在这里还要说一个参数。 
帧间隔:即传送数据的帧与帧之间的间隔大小,可以以位为计量也可以用时间(知道波特率那么位数和时间可以换算)。比如传送”A”完后,这为一帧数据,再传”B”,那么A与B之间的间隔即为帧间隔。 

 

 ↑图-3

 ↑图-4

上两图和下两图传送的数据和波特率都是一样的,但是有几个参数是故意设置反了从而形成对比。有助于更深入的理解UART。 


http://www.ppmy.cn/news/806479.html

相关文章

3.9.错误处理的理解以及错误的传播特性

目录 前言1. thrust2. error总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程,之前有看过一遍,但是没有做笔记,很多东西也忘了。这次重新撸一遍,顺便记记笔记。 本次课程学习精简 CUDA 教程-错误处理的理解以及错误的传播…

分时系统用户可以独占计算机资源,资源共享分时系统

分时系统(time-sharing)是利用多重程序(Multiprogramming)与多任务处理(multitasking)等技术,让多个用户在同时间内可以分享相同的计算机资源。共享资源分时系统除了具有分时系统基本特征以外,强调资源共享性,资源共享不只包括CPU和软件资源,还包括数据等一些其它资源。 中…

计算机网络的重要准则是,计算机网络技术的应用

计算机网络技术的应用 高宝玲 西安思源学院陕西西安710000 摘要:基于当今时代背景下,计算机网络技术不断发展,于多个领域中具有的应用范围越来越广,并逐渐渗透进了人们的日常生活、学习以及工作当中,对人们的影响越来越…

833计算机考研,西电考研辅导班:2019西安电子科技大学833计算机学科专业基础综合考试大纲...

833“计算机学科专业基础综合”复习参考提纲 一、 考察目标 计算机学科专业基础综合考试涵盖数据结构和计算机组织与体系结构等学科专业基础课程。要求考生比较系统地掌握上述专业基础课程的基本概念、基本原理和基本方法,能够综合运用所学的基本原理和基本方法分析…

有关计算机的网站,计算机有关网站的论文

网站(英文:Website)是指在互联网上根据一定的规则,使用HTML等工具制作用于展示特定内容的相关网页的集合。下面是学习啦小编给大家推荐的计算机有关网站的论文,希望大家喜欢! 计算机有关网站的论文篇一 《“大学计算机基础”课程网站研究与实…

计算机网络通信基础 概述

0x01 What is network 硬件方面:由若干结点和连接这些结点的链路组成。网络中的结点可以是计算机、集线器、交换机、路由器等。(点到点) 软件方面:应用软件、应用程序等服务通过端口建立连接从而完成交互,最终实现资…

模拟仿真最终利用计算机,2016年西安电子科技大学计算机学院数据结构复试笔试仿真模拟题...

一、选择题 1. 计算机开后,操作系统最终被加载到( ) A.BIOS B.ROM C.EPROM D.RAM 【答案】D 【解析】系统开机后, 操作系统的程序会被自动加载到内存中的系统区,这段区城是RAM ,故答案选D 。 2. 两台主机之间的数据链路…

计算机类科技论文发表,计算机类科技论文

随着信息社会的发展,计算机应用越来越广泛地渗透到社会生活的各个领域。下面是小编为大家精心推荐的计算机类科技论文,希望能够对您有所帮助。 计算机类科技论文篇一 高校计算机应用类课程教学改革新探 摘要:信息时代对大学生的计算机应用能力…