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

相关推荐
山土成旧客2 小时前
【Python学习打卡-Day28】类的蓝图:从模板到对象的构建艺术
linux·python·学习
悠哉悠哉愿意2 小时前
【嵌入式学习笔记】GPIO与LED
笔记·单片机·嵌入式硬件·学习
v先v关v住v获v取2 小时前
3D打印机的定量铺粉器设计13张 +三维图+设计说明书
科技·单片机·51单片机
QT 小鲜肉2 小时前
【Linux命令大全】001.文件管理之locate命令(实操篇)
linux·运维·服务器·chrome·笔记
崇山峻岭之间2 小时前
Matlab学习记录11
开发语言·学习·matlab
点灯小铭2 小时前
基于单片机的双机串口通信与数字串存储系统设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
chipsense2 小时前
霍尔电流传感器量程怎么确认,能覆盖实际电流监测需求么?
stm32·单片机·嵌入式硬件·霍尔电流传感器
Mabnus2 小时前
降钙素基因相关肽CGRP
学习
点灯小铭2 小时前
基于单片机的压力温度水位检测与安全控制高压锅设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业