51单片机(三)串口通信(UART)、Modbus协议
1. 什么是UARTUART全称是Universal Asynchronous Receiver/Transmitter即通用异步收发器。它是一种广泛应用于嵌入式系统中的串行、异步、全双工通信协议。简单来说UART 允许两个设备之间通过一根发送线TXD和一根接收线RXD进行数据交换。它不需要时钟信号通信双方通过约定相同的波特率来同步数据传输的节奏。UART 的核心作用是将要传输的数据在并行和串行形式之间进行转换。在设备内部数据通常是并行处理的如8位或16位而UART会将这些并行数据逐位bit-by-bit地通过一根线发送出去接收端再将串行数据还原为并行数据。2. UART传输数据顺序UART在传输一个字节的数据时遵循LSBLeast Significant Bit最低有效位先行的原则。例如要发送数据0xF6二进制为1111 0110其传输顺序如下起始位先发送一个低电平逻辑0表示数据传输开始。数据位从最低位LSB开始发送即先发送0然后是1、1、0、1、1、1、1MSB。校验位可选根据校验方式发送奇偶校验位。停止位发送一个或多个高电平逻辑1表示数据传输结束。所以在信号线上看到的比特流顺序是起始位(0)-LSB(0)-1-1-0-1-1-1-1(MSB)-校验位-停止位(1)。3. 单工、半双工、全双工特点根据数据传输的方向和方式通信方式可以分为以下三种3.1 单工通信特点数据传输是单向的。发送方和接收方是固定的一方只能发送另一方只能接收。信号线只需要一根数据线。例子广播、电视信号。3.2 半双工通信特点通信双方都可以发送和接收数据但不能同时进行。在同一时刻数据只能沿一个方向传输。信号线只需要一根数据线。例子对讲机、I2C总线。3.3 全双工通信特点通信双方可以同时发送和接收数据互不干扰。信号线需要两根独立的数据线如TXD和RXD。例子UART串口通信、电话。4. 什么是串行、并行及特点数据传输的形式主要分为串行传输和并行传输。4.1 串行传输定义使用一根信号线按照先后次序逐位bit-by-bit地发送数据。特点传输速率慢相对于并行单位时间内传输的数据量较少。硬件成本低只需要一根或两根线引脚少布线简单。传输距离远抗干扰能力强适合长距离通信如RS485可达1200米。实现简单协议相对简单。4.2 并行传输定义使用多根信号线在同一时刻同时传输多个比特的数据如8位、16位。特点传输速率快单位时间内能传输大量数据。硬件成本高需要多根数据线占用更多引脚布线复杂。传输距离近线间干扰大抗干扰能力差不适合长距离传输通常在30米以内。实现复杂需要精确同步多根线上的信号。5. 串口通信时序串口通信的时序是理解其工作原理的关键。一个完整的数据帧通常为10位或11位的传输时序如下串口通信时序先发送一个bit的低电平代表起始位再发送8个bit的数据位先发送数据低位再发送高位发送一个bit的校验位奇偶校验 高电平 奇校验 低电平 偶校验发送一个bit的电平代表停止位表示串口通信结束空闲位当没有数据传输时数据线保持高电平逻辑1。起始位发送方将数据线拉低逻辑0持续一个比特的时间。这告诉接收方数据即将开始。数据位紧接着起始位发送8位或5-9位的数据。顺序是LSB先行。校验位可选在数据位之后可以发送一个校验位用于简单的错误检测。停止位最后发送方将数据线拉高逻辑1持续1、1.5或2个比特的时间。这表示一帧数据传输结束。6. 奇校验和偶校验有什么缺点奇偶校验是一种简单的错误检测方法通过在数据帧中添加一个校验位来实现。6.1 奇校验规则确保数据位中“1”的个数加上校验位“1”的个数总和为奇数。例子要发送数据0110 0000其中有2个1偶数个。为了满足奇校验校验位应为1使得总共有3个1奇数。如果接收方计算出的1的个数是偶数则说明传输过程中可能发生了错误。6.2 偶校验规则确保数据位中“1”的个数加上校验位“1”的个数总和为偶数。例子要发送数据0110 0000其中有2个1偶数个。为了满足偶校验校验位应为0使得总共有2个1偶数。6.3 缺点奇偶校验的主要缺点是无法检测出偶数个比特位同时出错的情况。例如在奇校验中如果数据0110 00002个1加上校验位1总共有3个1奇数。如果在传输过程中有两个比特位发生翻转变成了0100 0001仍然是2个1加上校验位1总共有3个1奇数校验仍然通过但数据已经错误。因此奇偶校验只能检测出奇数个比特的错误可靠性有限适用于对错误容忍度较高的场景。7. 串口通信参数要使两个设备通过UART成功通信它们必须配置相同的通信参数。这些参数通常以“波特率-数据位-校验位-停止位”的格式表示例如9600 8 N 1。波特率表示每秒传输的比特数bps。常见的波特率有 2400、4800、9600、115200 等。通信双方的波特率必须一致。数据位表示一帧数据中实际数据的位数。常见的是8位也可以是5、6、7位。校验位NNone无校验、OOdd奇校验、EEven偶校验。停止位表示一帧数据结束的标志位可以是1、1.5或2位。8. 同步和异步这是通信中两个重要的概念用于区分通信双方如何协调数据传输的节奏。8.1 同步通信特点发送方和接收方通过一根专门的时钟线SCL来同步数据传输。时钟信号决定了何时读取数据线上的电平状态。优点传输速率高协议效率高。缺点需要额外的时钟线硬件连接稍复杂。例子I2C、SPI。8.2 异步通信特点通信双方没有专门的时钟线。它们通过约定相同的波特率来同步数据传输的速率。每个数据帧都包含起始位和停止位用于标识数据的开始和结束。优点只需要数据线硬件连接简单成本低。缺点每个数据帧需要额外的起始位和停止位传输效率略低。例子UART。9. TTL、RS232、RS485这三种是串口通信中常见的电气标准它们定义了信号的电平标准决定了通信的距离和抗干扰能力。9.1 TTL电平电平标准高电平逻辑1为 3.3V 或 5V低电平逻辑0为 0V。特点电平与单片机等数字芯片直接兼容无需转换。但传输距离短通常几米以内抗干扰能力弱。常见芯片CH340用于USB转TTL。9.2 RS232电平电平标准逻辑1 为 -3V 到 -15V逻辑0 为 3V 到 15V。这是一种负逻辑。特点传输距离比TTL远可达15米左右抗干扰能力更强。但电平与TTL不兼容需要电平转换芯片如MAX232。应用早期的电脑串口DB9接口。9.3 RS485电平电平标准采用差分信号传输。逻辑1 为两根线之间的电压差为 2V 到 6V逻辑0 为 -2V 到 -6V。特点抗干扰能力极强传输距离非常远可达1200米以上支持多点通信可挂载多个设备。应用工业控制、远距离数据采集。10. Modbus协议格式Modbus是一种广泛应用于工业电子设备中的通信协议它建立在物理层如RS232、RS485之上定义了设备之间请求和应答的数据格式。这里以Modbus RTU模式为例介绍其报文格式。一个典型的Modbus RTU报文帧结构如下起始码地址码功能码数据位校验码结束码0xAA0x010x010x00 0x420xEE0xBB起始码标志一帧报文的开始。地址码目标从机设备的地址1-247。功能码告诉从机要执行什么操作。例如0x01控制LED灯0x02控制数码管0x03控制蜂鸣器0x04读取传感器温度数据位功能码所需的参数如控制指令、数据地址等。校验码用于错误检测Modbus RTU通常使用CRC校验。结束码标志一帧报文的结束。主从应答模式在Modbus网络中主机如PC或PLC发起所有通信。从机如单片机收到主机指令后解析指令并执行相应操作然后回复一个应答帧给主机。应答帧的功能码最高位通常置1以区分是主机请求还是从机应答。例如主机发送指令0xAA 0x01 0x01 0x00 0x42 0xEE 0xBB控制地址为0x01的从机点亮LED。从机成功执行后会回复一个应答帧如0xAA 0x01 0x81 0x00 0x42 0x6E 0xBB其中功能码0x81的最高位为1表示这是从机的应答。

相关新闻

金环宇ZC-BVR4平方阻燃软线实测:家庭布线安全指南

金环宇ZC-BVR4平方阻燃软线实测:家庭布线安全指南

电线电缆作为电力传输的基础载体,其选择直接关系到用电安全和系统稳定性。这次我们聚焦家庭装修和中小型工程场景,实测金环宇 ZC-BVR4 平多股软线的实际表现。这款产品主打阻燃特性(ZC级)、4平方毫米截面积和多股软线结构&#xf…

2026/7/15 3:36:24 阅读更多 →
阿里云无影部署AI客服中台:OpenClaw+Qwen3.6-Plus+iMessage集成实战

阿里云无影部署AI客服中台:OpenClaw+Qwen3.6-Plus+iMessage集成实战

1. 项目概述:这不是“云电脑装软件”,而是一次面向生产级AI工作流的端到端重构你点开这个标题,第一反应可能是:“又一个教你怎么在云桌面点几下装好Qwen和iMessage的教程?”——那我得先说清楚:这篇不是。它…

2026/7/15 3:34:23 阅读更多 →
AIGC提示词优化:从元素堆砌到故事叙述的实用指南

AIGC提示词优化:从元素堆砌到故事叙述的实用指南

你第一次看到“这里站不下这么多龙”这句话,可能和我一样,会愣一下——这听起来像是一句游戏里的台词,或者某个奇幻故事的片段。但如果你最近关注过 AI 生成内容(AIGC)的进展,尤其是多模态大模型在图像生成…

2026/7/15 3:32:22 阅读更多 →

最新新闻

一文读懂SOME/IP协议:从车载网络痛点看服务化通信革新

一文读懂SOME/IP协议:从车载网络痛点看服务化通信革新

1. 为什么车载网络需要SOME/IP协议十年前我第一次接触车载网络开发时,发现CAN总线有个让人头疼的问题:ECU就像个话痨,不管别人想不想听,它总是自顾自地不停说话。比如车速信号每秒要发送100次,哪怕车辆停在车库整整一周…

2026/7/15 4:20:41 阅读更多 →
Flutter网络配置:从‘Got socket error’到国内镜像的完整解决方案

Flutter网络配置:从‘Got socket error’到国内镜像的完整解决方案

1. 当Flutter遇到"Got socket error"时发生了什么 当你兴冲冲地准备开始Flutter开发,却在终端看到刺眼的"Got socket error trying to find package at https://pub.dartlang.org"时,那种感觉就像开车时突然爆胎。这个错误意味着你的…

2026/7/15 4:20:41 阅读更多 →
C++内存管理核心:栈、堆与智能指针实战解析

C++内存管理核心:栈、堆与智能指针实战解析

1. 项目概述:为什么C程序员必须搞懂内存管理?干了十几年C开发,我见过太多因为内存问题导致的程序崩溃、性能瓶颈和难以追踪的Bug。很多新手,甚至一些工作了几年的朋友,对C内存管理的理解还停留在“new了要delete”的层…

2026/7/15 4:18:40 阅读更多 →
2026口碑最佳手机系统实测:稳定性与可预期性才是真体验

2026口碑最佳手机系统实测:稳定性与可预期性才是真体验

1. 项目概述:这不是“系统排行榜”,而是一份面向真实使用场景的决策地图2026年口碑最好的手机系统推荐——这个标题乍看是常规的年度横评,但实际操作中你会发现,它根本不是在比谁的UI更炫、谁的发布会PPT参数更漂亮。我做了六年安…

2026/7/15 4:18:40 阅读更多 →
Unity 2D游戏开发实战:角色动画、场景搭建与性能优化全解析

Unity 2D游戏开发实战:角色动画、场景搭建与性能优化全解析

1. 项目概述:从零到一构建一个生动的2D世界 几年前,当我决定用Unity制作我的第一款2D游戏时,我天真地以为,把几张图片拖进场景,写点移动代码,一个活灵活现的游戏世界就诞生了。现实很快给了我当头一棒&…

2026/7/15 4:16:39 阅读更多 →
基于STM32单片机设计车牌识别系统摄像头图像处理系统设计DIY-T090

基于STM32单片机设计车牌识别系统摄像头图像处理系统设计DIY-T090

本系统有STM32F103RCT6单片机核心板、(无无线/无线蓝牙模块-可选)、2.8寸TFT液晶屏显示、摄像头图像采集OV7670、蜂鸣器、LED电路组成。1、stm32单片机通过摄像头采集图像,并实时驱动TFT液晶屏显示相应图像。2、stm32单片机通过模式识别、匹配…

2026/7/15 4:14:38 阅读更多 →

日新闻

YOLO11 改进 - 特征融合 | STFFM空间时间特征融合模块,强化时空互补、抑制噪声,助力小目标检测高效涨点

YOLO11 改进 - 特征融合 | STFFM空间时间特征融合模块,强化时空互补、抑制噪声,助力小目标检测高效涨点

前言 本文介绍了面向红外小目标检测的时空特征融合模块——STFFM,用于增强复杂背景下目标与噪声、杂波的区分能力。该方法通过拼接空间特征与时间/运动特征,并结合通道注意力、空间注意力和残差增强机制,实现对关键语义通道与疑似目标区域的…

2026/7/15 0:01:00 阅读更多 →
YOLO26 改进 - 特征融合 | STFFM空间时间特征融合模块,强化时空互补、抑制噪声,助力小目标检测高效涨点

YOLO26 改进 - 特征融合 | STFFM空间时间特征融合模块,强化时空互补、抑制噪声,助力小目标检测高效涨点

前言 本文介绍了面向复杂背景小目标检测的时空特征融合模块——STFFM。该模块通过空间分支与时间/运动分支的特征拼接,引入通道注意力和空间注意力对融合特征进行自适应筛选,并结合残差增强与通道压缩,突出目标区域、抑制背景噪声。我们将 S…

2026/7/15 0:01:00 阅读更多 →
行星减速机为什么能提高扭矩?从功率守恒到输出扭矩校核

行星减速机为什么能提高扭矩?从功率守恒到输出扭矩校核

一、为什么减速以后扭矩会增大 旋转机械的功率、转速和扭矩之间存在以下关系: T 9550 P n 其中: T为扭矩,单位Nm; P为功率,单位kW; n为转速,单位r/min。 在功率基本不变的情况下:…

2026/7/15 0:03:00 阅读更多 →

周新闻

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨 在一个阳光明媚的上午,互联网大厂的面试官坐在桌前,准备迎接他的面试候选人——燕双非,一个以搞笑和幽默著称的程序员。第一轮提问 面试官:燕双非,作…

2026/7/14 16:53:23 阅读更多 →
车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估在智能驾驶和车联网技术快速发展的今天,车载以太网作为新一代车载网络的核心传输技术,其物理层性能直接决定了数据传输的可靠性和稳定性。1000BASE-T1作为当前主流的…

2026/7/14 14:00:13 阅读更多 →
VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战指南嵌入式开发领域正经历一场工具链的静默革命。当传统Keil用户首次打开VSCode的扩展市场搜索EIDE时,往往会惊讶于这个看似简单的插件竟能重构十余年的开发习惯。本文将揭示如何用五个精准步骤&#xff0…

2026/7/14 7:15:24 阅读更多 →

月新闻