STM32F103 学习笔记-20-通信的基本概念

引言

在嵌入式系统中,通信是设备之间数据传输的基础。STM32微控制器支持多种通信协议,如USART、I2C、SPI等。理解通信的基本概念对于后续学习外设编程至关重要。本笔记基于《零死角玩转STM32》的"通信的基本概念"章节,详细讲解通信的核心原理,帮助新手小白建立扎实的基础。

1. 串行与并行通信

通信方式分为串行和并行两类,它们决定了数据位的传输形式。

  • 串行通信:数据位按顺序依次传输,只需一条数据线。优点是成本低、抗干扰强、适合远距离通信,但传输速率较慢。常见应用如UART、USB、以太网。

  • 并行通信:多个数据位同时通过多条数据线传输。优点是速率高,但成本高、抗干扰弱、距离短。例如,STM32的GPIO口可配置为并行模式,用于LCD屏控制。

特性对比见下表:

特性 串行通讯 并行通讯
通讯距离 较远 较近
抗干扰能力 较强 较弱
传输速率 较慢 较高
成本 较低 较高

原理:串行通信逐位传输,节省引脚资源;并行通信一次传输多比特,但需要同步时钟,易受干扰。在STM32中,大多数外设(如串口)采用串行方式,以平衡效率和成本。

2. 全双工、半双工和单工

数据流向决定了通信的灵活性:

  • 全双工:双方可同时收发数据(如电话通话)。例如,STM32的USART支持全双工,TX和RX引脚独立工作。

  • 半双工:双方可收发数据,但不能同时进行(如对讲机)。例如,I2C总线在半双工模式下,SDA线分时用于发送和接收。

  • 单工:数据只能单向传输(如广播)。例如,STM32的ADC读取传感器数据时,数据仅从传感器流向MCU。

应用场景:全双工适合实时交互(如调试串口),半双工适合多设备共享总线(如传感器网络),单工适合简单数据采集。

3. 同步与异步

时钟同步方式影响通信的可靠性和效率:

  • 同步通信:收发方使用共享时钟信号,数据位在时钟边沿采样。效率高,但时钟偏差会导致错误。常见于SPI、I2C。

  • 异步通信:无共享时钟,双方依赖预定义的波特率。数据包包含起始位、停止位等标识符,容错性强,但效率较低。常见于UART。

对比:同步通信数据中有效比例高,但对时钟精度要求严格;异步通信通过帧结构保证可靠性,时钟允许误差大。在STM32中,配置通信协议时需根据场景选择同步或异步模式。

4. 通信的速率

速率是衡量通信性能的关键:

  • 比特率:每秒传输的二进制位数(bit/s)。例如,115200 bit/s表示每秒传输115200比特。

  • 波特率:每秒传输的码元个数。一个码元可携带多个比特(通过调制),但在二进制系统中,波特率等于比特率。

码元概念

  • 单二进制位码元:0V代表"0",3.3V代表"1",每个码元携带1比特。

  • 多二进制位码元:如4电平调制(0V/2V/4V/6V),每个码元可表示2比特(00/01/10/11),波特率相同时比特率翻倍。

在STM32中,设置USART波特率时,实际是配置比特率。需确保收发方波特率一致,否则数据错乱。

总结

  • 串行/并行是数据传输形式,影响引脚数和速率。

  • 全双工/半双工/单工决定数据流向灵活性。

  • 同步/异步关乎时钟同步方式,影响效率和可靠性。

  • 比特率和波特率是速率核心参数,需匹配硬件配置。

掌握这些概念后,后续学习STM32的具体通信外设(如USART、SPI)将更轻松。建议结合实验(如串口通信)加深理解。


本文档参考《零死角玩转STM32》,及配套章节PPT

相关推荐
ZH154558913120 小时前
Flutter for OpenHarmony Python学习助手实战:数据库操作与管理的实现
python·学习·flutter
Junlan2720 小时前
Cursor使用入门及连接服务器方法(更新中)
服务器·人工智能·笔记
risc12345620 小时前
如何认识结构?结构 = 要素 + 关系 + 动态
笔记
试着21 小时前
【huawei】机考整理
学习·华为·面试·机试
風清掦21 小时前
【江科大STM32学习笔记-05】EXTI外部中断11
笔记·stm32·学习
Purple Coder21 小时前
基于CNN对YBCO超导块材孔隙研究
学习
小龙报21 小时前
【51单片机】从 0 到 1 玩转 51 蜂鸣器:分清有源无源,轻松驱动它奏响新年旋律
c语言·数据结构·c++·stm32·单片机·嵌入式硬件·51单片机
范纹杉想快点毕业21 小时前
嵌入式与单片机开发核心学习指南——从思维转变到第一性原理的深度实践
单片机·嵌入式硬件
Industio_触觉智能21 小时前
瑞芯微RK3566开发板规格书,详细参数配置,型号EVB3566-V1,基于RK3566核心板SOM3566邮票孔封装
嵌入式硬件·开发板·rk3568·rk3566·核心板·瑞芯微
wdfk_prog21 小时前
[Linux]学习笔记系列 -- [drivers][tty]sysrq
linux·笔记·学习