news 2026/6/10 12:44:37

串口通信的仿真与分析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
串口通信的仿真与分析

串口是串行接口的简称,串行接口是采用串行通信方式的接口。串行通信是一种将需要传输的数据由低位到高位一位一位地在一条传输线上逐个传输的通信方式。

一、串行通信的数据格式

首先来了解一下串行通信的数据格式,如下图所示,串行通信的一帧数据由起始位、数据位、校验位以及停止位组成。

起始位:低电平,标志着一帧数据的开始;

数据位:数据内容,可选择为5、6、7、8位;

校验位:用于确保传输数据的正确性,提供了一种简单的错误检测机制,可分为奇校验和偶校验。

校验位的常见类型

校验位用于对数据进行简单的差错检验,常见模式有:

  • 无校验- 不添加校验位。

  • 奇校验- 校验位被设置为01,使得数据位+校验位1的总个数为奇数

    • 例:数据1011001(有4个1,偶数个),为使其为奇数,校验位应为1,最终发送1011001+1

  • 偶校验- 校验位被设置为01,使得数据位+校验位1的总个数为偶数

    • 例:同上数据1011001(4个1),已是偶数,校验位应为0

  • 标志位- 校验位恒为1

  • 空位- 校验位恒为0

注意:通信双方(单片机和上位机)的校验位设置必须完全一致,否则会导致帧错误,无法正常解析数据。

停止位:高电平,标志着一帧数据的结束。

二、异步串行通信的波特率

串行通信可以分为两种形式:同步串行通信和异步串行通信

同步串行通信:通信双方在同一时钟控制下同步传输数据;

异步串行通信:通信双方使用各自的时钟控制数据传输。

对于异步串行通信来说,虽然没有同步时钟,但是通信双方必须约定并遵循同样的设置,这就需要异步串行通信中一个重要的参数来设置,该参数即波特率

波特率即串口通信的速率,它表示每秒传输二进制数据的位数,单位是bps,即位/秒,常用的波特率有9600、19200、38400、57600和115200等。

以115200的波特率为例,即一秒传输115200个二进制数据位,那么每一位的持续时间

因此,在通信双方约定波特率为115200的情况下,只要发送方发送的每位比特位的持续时间为8.68us,那么正常情况下接收方就能准确无误地解析数据。

三、实验测试

接下来利用实验来简单验证一下上述分析:波特率为115200,一位停止位,八位数据位,无奇偶校验位,发送数据为10110101,每组发送间隔100us。

1、仿真测试

仿真测试结果如下图所示,可以看出,发送的二进制数据依次为0101011011,每个比特位持续时间为8680ns,数据发送间隔为117360-2×8680=100000ns,均符合设计要求。

2、输出波形测试

下载程序,测试对应引脚的输出波形,如下图所示,可以看出与仿真结果基本相符。

3、通信测试

通过上位机的串口调试助手接收发送的数据,通过下图所示的结果可以看出,接收到的数据为0xB5,对应的二进制数据为0b10110101,与发送端发送数据相符,通信成功。

四、数据分析

上位机正确解析出的数据是0xB5,包含的是起始位和停止位的完整串口帧数据。

以下是详细解析:

串口帧结构分析(假设8N1格式:1位起始位 + 8位数据位 + 1位停止位)

帧组成比特序列(从左到右为发送顺序)说明
起始位0标志一帧的开始,固定为低电平。
数据位(LSB First)1 0 1 0 1 1 0 1实际传输的数据,低位在前(Bit0 到 Bit7)。
停止位1标志一帧的结束,固定为高电平。

将数据位10101101LSB First规则还原为正常字节:

  • 发送顺序(LSB First): Bit0 → Bit7 =10101101

  • 正常顺序(MSB First): Bit7 → Bit0 =10110101

  • 转换为十六进制:1011 0101=0xB5

0101011011物理线缆上的完整波形。串口调试助手在接收时,会自动剥离起始位和停止位,并根据LSB First(串口标准约定)的规则,将中间8位数据10101101重组为正确的字节0xB5

所以,上位机显示0xB5是完全正确的。我们在分析串口数据的时候要特别注意串口通信比特顺序帧结构这两个关键点,注意:这是无奇偶校验的数据帧,如果加上校验位通常数据帧结构为11位,校验位紧接在数据位之后。

以最常见的配置为例,完整的串口数据帧传输顺序如下:

  1. 起始位- 固定1位,逻辑0

  2. 数据位- 通常为5-9位(最常用8位),从最低位(LSB)开始发送。

  3. 校验位- 可选的1位,紧接在数据位之后。

  4. 停止位- 1位、1.5位或2位(最常用1位),逻辑1.

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 18:41:35

地级市投入产出表

资源介绍 投入产出表也称为部门联系平衡表,它是定量研究投入与产出间关系的工具,利用投入产出表数据可以直接进行产业结构、最终使用结构等分析 该表包含中国大陆地区313个行政单位,其中309个地级行政单位与直辖市,4个省份&#x…

作者头像 李华
网站建设 2026/6/10 11:43:23

大厂H6光伏逆变器仿真模型探索

大厂的H6光伏逆变器仿真模型 量产代码控制的仿真模型最近一直在研究大厂的H6光伏逆变器仿真模型,感觉真的超有意思!这个仿真模型对于理解和优化光伏逆变器的性能有着至关重要的作用。 量产代码控制的仿真模型亮点 首先来说说量产代码控制的仿真模型。它可…

作者头像 李华
网站建设 2026/6/10 16:24:33

金融合规日志管理最佳实践(Agent审计日志设计与监控体系大揭秘)

第一章:金融合规Agent审计日志的核心价值与挑战在金融行业,合规性是系统设计与运维的基石。审计日志作为合规Agent的关键组件,承担着记录系统操作行为、保障数据可追溯性以及满足监管审查要求的重要职责。其核心价值不仅体现在风险事件发生后…

作者头像 李华
网站建设 2026/6/5 23:16:34

信创文件传输新标准:FileZilla替代方案需聚焦三大核心能力

在信息技术应用创新与国产化替代加速的背景下,企业的基础软件与工具链正经历一场深刻的转型升级。文件传输作为日常运维与业务协作中的高频基础需求,其使用的工具也面临着全新的要求。长期以来,诸如FileZilla等国外主流FTP/SFTP客户端因其易用…

作者头像 李华
网站建设 2026/6/9 18:46:35

探索Matlab与Simulink中的非线性磁链观测器+PLL

matlab仿真,simulink仿真,以及非线性磁链观测器PLL 文档推导算法pdf介绍。 大名鼎鼎的VESC里面的观测器。 对学习非线性观磁链测器有很大帮助,图一为观测位置角度与真实角度波形。在电力电子和电机控制领域,Matlab 和 Simulink 是…

作者头像 李华