网站根目录是什么意思,如何做网校网站,推广网络营销案例,中国最好的少儿编程培训机构文章目录 电气层硬件拓扑基本原理协议空闲位起始位数据位奇偶校验位无校验奇校验偶校验mark parityparity 停止位 波特率优缺点优点缺点 参考 UART(universal asynchronous receiver-transmitter) 通用异步收发器
分类特点导线2速度9600#xff0c; 19200#xff0c; 38400 19200 38400 57600 115200 230400 460800 921600 10000001500000传输方法异步通信方式串行通信工作方式全双工最大主机数1最大从机数1
电气层
UART 使用标准的 TTL/CMOS 逻辑电平0-5V 0-3.3V0-2.5V或者0-1.8V来表示数据1 表示高电平0 表示低电平。
为了提高抗干扰能力提高传输的距离通常也会 TTL/CMOS 逻辑电平转换为 RS-232/RS-485 电平。
硬件拓扑
在 UART 通信中两个 UART 直接相互通信。发送 UART 将控制设备如 CPU的并行数据转换为串行形式以串行方式将其发送到接收 UART。只需要两条线即可在两个 UART 之间传输数据数据从发送 UART 的 Tx 引脚流到接收 UART 的 Rx 引脚
当然也可以单个 MCU 自发自收
基本原理
UART 属于异步通讯这意味着没有时钟信号取而代之的是在数据包中添加开始和停止位。这些位定义了数据包的开始和结束因此接收 UART 知道何时读取这些数据。
当接收 UART 检测到起始位时它将以特定波特率的频率读取。波特率是数据传输速度的度量以每秒比特数bps表示。两个 UART 必须以大约相同的波特率工作发送和接收 UART 之间的波特率只能相差约 10。
发送 UART 从数据总线获取并行数据后它会添加一个起始位一个奇偶校验位和一个停止位来组成数据包并从 Tx 引脚上逐位串行输出接收 UART 在其 Rx 引脚上逐位读取数据包。 协议
UART 数据包含有 1 个起始位5 至 9 个数据位取决于 UART一个可选的奇偶校验位以及 1 个或 2 个停止位
空闲位
UART 协议规定当总线处于空闲状态时信号线的状态为 1 即高电平。
起始位
UART 数据传输线通常在不传输数据时保持在高电压电平。开始传输时发送 UART 在一个时钟周期内将传输线从高电平拉低到低电平当接收 UART 检测到高电压到低电压转换时它开始以波特率的频率读取数据帧中的位。
数据位
数据帧内包含正在传输的实际数据在大多数情况下数据以最低有效位优先方式发送LSB
如果使用奇偶校验位则可以是 5 位最多 8 位。如果不使用奇偶校验位则数据帧的长度可以为 9 位。 奇偶校验位
奇偶性描述数字是偶数还是奇数。通过奇偶校验位接收 UART 判断传输期间是否有数据发生改变。电磁辐射、不一致的波特率或长距离数据传输都可能改变数据位。
串口会设置校验位数据位后面的一位用一个值确保传输的数据有偶个或者奇个逻辑高位即1的个数为偶个或者奇个。
接收 UART 读取数据帧后将计数值为 1 的位检查总数是偶数还是奇数。当奇偶校验位与数据匹配时UART 认为传输未出错。如果未匹配则认为传输出错。
例如如果数据是 0b011
如果是偶校验校验位为 0保证逻辑高的位数是偶数个。如果是奇校验校验位为 1保证逻辑高的位数是奇数个这样就有 3 个逻辑高位。
无校验
没有校验位也是可以的没有校验位是最多可以传输 9 bit 数据。
奇校验
如果数据中 1 的数据为偶数则校验位为 1如果数据中 1 的数据为奇数则校验位为 0
偶校验
如果数据中 1 的数据为偶数则校验位为 0如果数据中 1 的数据为奇数则校验位为 1
mark parity
校验位始终为 1不常用
parity
校验位始终为 0不常用
停止位
为了向数据包的结尾发出信号它是一个字符数据的结束标志 。可以是 1 位、1.5 位、2 位的高电平。
由于数据是在传输线上定时的并且每一个设备有其自己的时钟很可能在通信中两台设备之间出现了小小的不同步。因此停止位不仅仅是表示传输的结束并且提供计算机校正时钟的机会。停止位个数越多数据传输越稳定但是数据传输速度也越慢。
波特率
UART 接口不使用时钟信号来同步发送器和接收器设备而是以异步方式传输数据。发送器根据其时钟信号生成的位流取代了时钟信号接收器使用其内部时钟信号对输入数据进行采样。同步点是通过两个设备的相同波特率来管理的。如果波特率不同发送和接收数据的时序可能会受影响导致数据处理过程出现不一致。允许的波特率差异最大值为 10%超过此值位的时序就会脱节。
数据传输速率使用波特率来表示单位 bpsbits per second常见的波特率9600bps115200bps 等等其他标准的波特率是1200bps2400bps4800bps19200bps38400bps57600bps。举个例子如果串口波特率设置为 9600bps那么传输一个比特需要的时间是 1/9600≈104.2us。
以 9600 8N19600 波特率8 个数据位没有校验位1 位停止位为例这是目前最常用的串口配置现在我们传输 0x55对应的二进制数据为 01010101
串口波特率为 96001bit 传输时间大约为 104us传送一个数据实际是 10 个比特1 个开始位8 个数据位1 个停止位一个 bytes 传输速率实际为 9600*8/10 7680bps。
优缺点
优点
通信只需要两根线无需时钟信号有奇偶校验位方便通信的差错检查只需要接收端和发送端设置好数据包结构即可稳定通信
缺点
传输速率低接口使用一根信号线和一根信号返回线而构成共地的传输形式这种共地传输容易产生共模干扰所以抗干扰性弱传输距离有限数据帧最大只支持 9 位数据
参考
https://zhuanlan.zhihu.com/p/600121894 https://www.yii666.com/blog/335083.html https://mp.weixin.qq.com/s/N36JOLDHGHDU8EHro4uS9w https://blog.csdn.net/qq_48641886/article/details/127756365