关于UART的帧格式含义

看下面这个图,大家已经知道今天的主角是uart,我们通常说的串口,uart包含ttl电平和rs-232电平两种,嵌入式系统里面,单片机的串口一般都是ttl电平。
今天的内容关于uart的帧格式,比较简单,玩过单片机的小伙伴应该都知道。
uart的英文全称是:universal asynchronous receiver/transmitter,意为通用异步收发传输器。
uart因为有两根线数据线tx和rx,可以以全双工的形式进行发送和接收数据,同一时刻,两条链路的发送器和接收器可以同时传输数据。
区别于全双工的,还有另一种,是半双工,因为只有一根数据线,所以数据传输是这样。
或者是下面这样,同一时刻,只有一条链路在传输数据。
除了双工形式,还有一种是半工,只有发送器到接收器这一个链路。
说完了uart的工作模式,下面进入主题——uart帧格式,也可以称之为uart协议,单片机与pc之间的通信,为了保证数据通信的可靠性,双方都必须遵从uart协议。
uart数据帧格式
其中各位的含义如下:
起始位:发送1位逻辑0(低电平),开始传输数据。
数据位:可以是5~8位的数据,先发低位,再发高位,一般常见的就是8位(1个字节),其他的如7位的ascii码。
校验位:奇偶校验,将数据位加上校验位,1的位数为偶数(偶校验),1的位数4为奇数(奇校验)。
停止位:停止位是数据传输结束的标志,可以是1/1.5/2位的逻辑1(高电平)。
空闲位:空闲时数据线为高电平状态,代表无数据传输。
如果我们传输数据0x33(00110011),那么对应的波形就是如下这样,因为是lsb在前,所以8位数据依次是11001100
发送0x33数据帧格式
如果再发其他数据,再依次循环这个过程即可。
uart是异步传输,以1个字符为传输单位,传输2个字符之间的时间间隔,比如传输0x33后再传输0x35,这两者时间间隔是未知的。
但是同一字符内相邻位间的时间间隔是确定的,比如0x33低两位的1和1之间的时间间隔是确定的,这涉及到uart传输速率的概念——波特率。
波特率的单位是bps,全称是bit per second,意为每秒钟传输的bit数量。
波特率9600bps,代表每秒钟传输bit的数量为9600,那么传输1bit数据的时间就是1/9600=104us,波特率115200bps,代表传输1bit数据的时间是8us。
两个串口之间是如何发送和接受数据呢?
首先,uart1以9600波特率发送0x33,先在数据线上放1个104us脉宽的低电平(起始位),然后是连续2个104us脉宽的高电平(2bit逻辑1),依次类推。
其次,uart2以9600波特率接收0x33,通过数这些数据的脉宽,来确认数据。
为了确保数据传输的正确性,减少误差,一般uart1和uart2之间的波特率差别小于10%,一次最多只能传输1个字节(8bit),也有效减小了累计误差。

隔离光耦--用于电子元件隔离的重要组成部分
TI推出业界首款面向A15处理器的高集成电源管理单元将平板电脑板级空间锐减60%
Altera与中国移动研究院宣布联合开发下一代C-RAN无线技术
联想Z6要来了 骁龙730、4000mAh电池容量
搭载刀片电池的比亚迪e9成功交付
关于UART的帧格式含义
什么是HTTP协议?
闪存MP3优缺点
时速600公里高速磁悬浮交通系成功下线
【锡膏回收】锡渣回收有必要吗?
基于Intel Analytics Zoo上分布式TensorFlow的美的/KUKA工业检测平台
西门子plc数据类型_西门子plc通讯方式
成都汇阳投资关于多模态驱动应用前景广阔,上游算力迎机会!
苹果,三星,华为进军汽车行业,三者有什么区别
“放大招”的人工智能给天津带来什么?
DS1624 2-Wire通信SDA保持时间澄清
推力杆推拉力试验机,你了解哪些技术参数?
iPod通用底座采用特殊架构处理器
龙芯3C6000服务器芯片交付流片
印度智能手机市场竞争激烈,小米等重视印度线下市场拓展