[导读]通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UATR,是一种串行、异步、全双工的收发器。全双工的UART支持同时双向通信,是嵌入式系统必不可少的debug接口。
通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UATR,是一种串行、异步、全双工的收发器。全双工的UART支持同时双向通信,是嵌入式系统必不可少的debug接口。
什么是全双工?什么是半双工?
全双工:同一时刻,两个设备都在收发数据,比如SPI。注意QSPI是半双工,因为4根线只能同时收或者发。
半双工:两设备间可以收发数据,但只能收完再发或发完再收。
单工:任何时刻只能进行一个方向的通讯,且固定一方为发送设备,一方为接收设备。
串口通信协议
空闲位:不通信时,TX & RX是逻辑“1”状态,表示当前线路无数据传输。
起始位:发送“0”,表示传输开始。
数据位:起始位之后,数据位的个数可以是5、6、7、8等,一般是8bit,采用ASCII码。从最低位开始传送,根据波特率在数据bit稳定的中间位置采样。
奇偶校验位:数据位加上这一位后,使得“1”的位数为偶数,则为偶校验,使得“1”的位数为奇数则为奇校验,以次来校验数据传送的正确性。
比如一个 8 位长的有效数据为:10100101,此时总共有 4 个“ 1”,
为达到奇校验效果,校验位应为“ 1”,即有效数据和校验位中“ 1”的个数为奇数。
为达到偶校验效果,校验位应为“ 0”,即有效数据和校验位中“ 1”的个数为偶数。
注意,UART校验方法有:奇校验(odd)、偶校验(even)、0校验(space)、0校验(mark)、无校验(noparity),为了提高实际带宽,一般可省去校验位,即选择无校验,思考下为什么?
0 校验是不管有效数据是什么,校验位固定为“ 0”。1 校验是校验位固定为“ 1”。
无校验就是数据包中不包含校验位。
停止位:一个字符数据传输的结束标志,可以是1位、1.5位、2位的高电平。停止位不仅表示传输的结束,并且可提供校正时钟同步。停止位的位数越多,时钟容忍程度越大,但有效带宽就越小。
波特率
数据传输速率使用波特率来表示。单位bps(bits per second),常见的波特率9600bps、19200bps、115200bps等,如果串口波特率设置为9600bps,那么传输1bit数据需要的时间是1/9600≈104.2us。
带上校验位,传送一个字符数据实际是11个比特(1bit开始位、8bit数据位、1bit校验位、1bit停止位),有效的传输速率实际为9600*8/11= 6982bps。
不带校验位,传送一个字符数据实际是10个比特(1bit开始位、8bit数据位、1bit停止位),有效的传输速率实际为9600*8/10=7680bps。
这就是为何不传校验位,可以提高一点带宽,也就是所谓的开销。
以小编设计的RISC-V SoC为例,仿真UART:
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
在嵌入式系统开发中,整型溢出是引发安全漏洞和系统故障的常见原因。据MITRE统计,CWE-190(整数溢出)位列嵌入式安全漏洞前三。本文从工程实践角度,探讨边界检查算法与数据类型选择的协同防护策略。
关键字:
边界检查算法
嵌入式系统
整型溢出
在嵌入式系统广泛应用的今天,网络通信已成为其不可或缺的功能。然而,受限于资源、功耗和实时性要求,嵌入式系统中的TCP/IP协议栈性能优化成为关键挑战。本文将从协议栈选型、参数调优、硬件加速及代码优化等方面,探讨嵌入式系统...
关键字:
网络协议栈
嵌入式系统
在嵌入式物联网设备中,Wi-Fi模块是实现高速数据传输的核心组件。然而,受限于MCU资源、协议栈效率及网络环境,实际吞吐量常低于理论带宽的30%。本文以ESP32-S3(支持Wi-Fi 6,最大速率150Mbps)为例,...
关键字:
Wi-Fi
嵌入式系统
嵌入式系统开发中,硬件与软件高度耦合,复杂度高,一次性集成所有模块调试极易陷入“问题定位难、复现率低”的困境。分步调试法通过“最小功能验证→模块逐步扩展→多模块协同”的渐进式策略,可显著提升调试效率。本文以STM32微控...
关键字:
嵌入式系统
分步调试法
在物联网设备、可穿戴设备等嵌入式场景中,电池寿命是制约产品竞争力的核心指标。低功耗设计需贯穿硬件选型、系统架构到软件策略的全流程,其中休眠模式切换与电源管理芯片(PMIC)的精细配置是关键环节。本文从实际工程角度,解析如...
关键字:
低功耗设计
PMIC配置
嵌入式系统
在嵌入式系统开发中,性能优化与功耗控制是相互制约的核心挑战。通过对STM32F4系列MCU的实测分析,发现通过针对性代码优化可使计算密集型任务执行时间缩短62%,而结合精准功耗测量可进一步降低系统能耗35%。本文结合具体...
关键字:
嵌入式系统
代码优化
在物联网与工业4.0深度融合的今天,嵌入式系统已成为能源管理、智能制造等关键领域的基础设施。然而,资源受限与网络暴露的双重特性,使其成为攻击者觊觎的“数字靶心”。通过内核配置裁剪与编译优化协同加固,可构建“攻防一体”的安...
关键字:
嵌入式系统
内核配置
物联网
在物联网与工业4.0深度融合的背景下,嵌入式系统作为关键基础设施,其通信协议栈的性能直接影响系统实时性、可靠性和安全性。然而,受限于资源约束与硬件特性,传统协议栈在嵌入式场景中常面临内存拷贝、锁竞争、缓存效率低下等瓶颈。...
关键字:
通信协议栈
嵌入式系统
在电池供电的嵌入式系统中,功耗优化直接决定产品续航能力。通过示波器与专业功耗分析仪的协同测量,可实现从瞬态脉冲到长期统计的全面功耗量化分析,为低功耗设计提供精确数据支撑。
关键字:
嵌入式系统
示波器
在嵌入式系统开发中,状态机作为一种高效的任务调度模型,通过将复杂逻辑分解为离散状态和转移条件,显著提升了系统的可维护性和实时性。本文以智能交通信号灯控制系统为例,阐述状态机设计在嵌入式任务调度中的具体实现方法。
关键字:
状态机
嵌入式系统
在嵌入式系统开发中,自定义通信协议是连接不同硬件模块的核心纽带。相比标准协议,自定义协议能更好地适配资源受限的嵌入式环境,同时满足特定场景的性能需求。本文介绍一种轻量级、可扩展的协议设计方法,适用于工业控制、物联网设备等...
关键字:
自定义协议
嵌入式系统
板间通信
在嵌入式系统长期运行过程中,内存泄漏如同"慢性毒药",会导致系统性能逐渐下降直至崩溃。本文提出一种基于动态追踪的运维态内存泄漏检测方案,通过轻量级内核模块实现无侵入式内存监控,已在工业控制器、车载ECU等场景验证有效性。
关键字:
嵌入式系统
内存泄漏
在嵌入式系统开发中,进程间通信(IPC)是构建复杂分布式系统的核心挑战。传统方案如共享内存+信号量虽性能优异,但需手动处理同步问题;Socket编程灵活但代码冗余度高;消息队列则受限于消息大小和传输效率。在此背景下,na...
关键字:
嵌入式系统
nanomsg
在嵌入式系统中,消息队列是实现任务间通信的核心机制,而优先级消息队列则进一步满足了实时性需求——高优先级消息(如紧急报警、控制指令)需优先处理,低优先级消息(如日志数据)可延迟处理。本文提出一种基于静态数组的简易优先级消...
关键字:
嵌入式系统
消息队列
在资源受限的嵌入式系统中,软件崩溃往往导致设备失控、数据丢失甚至安全风险。本文梳理12种常见崩溃类型,结合典型场景与解决方案,帮助开发者构建更健壮的嵌入式系统。
关键字:
嵌入式软件
嵌入式系统
在嵌入式系统开发中,分层架构设计是平衡硬件依赖性与软件可维护性的核心方法。通过将系统划分为功能明确的层次,开发者可实现"关注点分离",使硬件变更不影响上层逻辑,软件迭代不干扰底层驱动。本文解析通用嵌入式架构的分层模型与实...
关键字:
嵌入式软件
嵌入式系统
在嵌入式系统中,SPI(Serial Peripheral Interface)作为高速同步串行通信协议,广泛应用于传感器、存储器与主控芯片间的数据交互。然而,实际通信速率常因时钟配置不当或信号完整性问题远低于理论值。本...
关键字:
SPI通信
嵌入式系统
在嵌入式系统开发中,日志系统是故障排查、性能分析和系统监控的重要工具。一个简易且高效的嵌入式日志系统需兼顾资源占用与功能完整性,以下从设计目标、架构设计、关键技术实现三个方面阐述其设计思路。
关键字:
嵌入式系统
日志系统
2026 年至 2030 年间,人工智能和无线通信的进步将在多个关键领域重塑工程实践。智能体 AI(Agentic AI)与标准化协议将简化工程工作流程,混合非地面与地面网络将扩展无线覆盖范围,新的 AI 方法也将增强嵌...
关键字:
嵌入式系统
人工智能
混合动力汽车
在嵌入式系统开发中,相对编码器是测量电机转速、位置和方向的关键传感器。STM32微控制器提供了强大的定时器模块,能够高效处理编码器信号,实现精确的运动控制。
关键字:
嵌入式系统
传感器