项目模块划分:
MCU模块、电源模块、LED显示模块、USB端口模块、NB-lOT模块等
MCU概念
一般电路都要设计电源模块、复位模块、时钟模块、接口模块(看datasheeet)
MCU原理图设计
STM32L433RC(cortex-M4内核)
UART通信
串口通信基础
串口通信就是数据一位一位顺序传输。就像排着队一个一个过独木桥。同步通信至少需要四根线(TXD、RXD、CLCK、GND);异步通信至少要三根线(TXD、RXD、GND)。UART:只可以异步传输,但是UASRT既可以异步传输也可同步传输。
数据帧结构(以图中为例)
- 起始位:是通信开始的信号,就像发令枪响,告诉接收方 “要开始传数据啦” ,一般是 0 。
- 有效数据位:这里是 7 位,是真正要传输的有用信息,从最低位(LSB)开始传。
- 奇偶校验位:用来简单检查数据传输有没有出错。通过计算数据位中 1 的个数是奇数还是偶数来校验 。
- 停止位:表示这一帧数据传完了,像给这次传输画个句号,一般是 1 。
- 空闲位:没数据传输时的状态。
UART(通用异步收发传输器 )关注点
- 特征:异步通信,收发双方不需要共同时钟信号,自己按约定节奏来 。
- 信号线数量:最少 3 根,TXD 发数据、RXD 收数据、GND 接地 。
- 速率:速率有多种,常见 9600bps 、115200bps 等,速率受传输距离、干扰等影响 。
- 用途:常用于单片机和外部设备通信,像和传感器、显示屏等小范围短距离通信 。
- 帧结构:就是前面说的起始位 + 有效数据位 + 奇偶校验位 + 停止位 。
数据收发过程
- 接收:外部设备把串行数据从 RXD 线送进来,先到串行输入移位寄存器,再到输入数据缓冲器,最后 MCU 内核就能读取数据啦。
- 发送:MCU 内核把数据放输出数据缓冲器,再到串行输出移位寄存器,最后从 TXD 线发出去给外部设备。
同步与异步区别及优缺点
- 同步通信
- 特点:收发双方有共同时钟,靠时钟信号同步,数据传输按统一节拍。
- 优点:传输速率快,因为时钟同步,数据能连续快速传 。
- 缺点:对时钟要求高,布线复杂,一旦时钟出错,数据全乱 。
- 异步通信
- 特点:没共同时钟,靠起始位、停止位等约定来同步 。
- 优点:简单灵活,对硬件要求低,布线容易 。
- 缺点:传输速率相对慢,因为要加起始、停止位这些额外信息 。
同步通信的线数量
同步通信通常需要额外的时钟信号线来保证发送和接收双方的同步 。一般来说,除了用于传输数据的数据线(比如发送线 TX、接收线 RX ),还需要一根时钟信号线(SCK )来同步数据传输,再加上接地线(GND )。所以,常见的同步通信最少需要 3 根数据线(TX、RX、SCK )加上接地线 。
USART 与 UART 的区别
- 通信模式
- UART:只能进行异步通信 。发送方和接收方不共享时钟信号,通过设定一致的波特率来维持通信同步。比如蓝牙模块与微控制器通信,常采用 UART 异步通信。
- USART:既能异步通信,也能同步通信 。同步模式下,发送端和接收端依靠共享的时钟信号来同步数据传输。像在串行外设接口(SPI)通信中,USART 就常作为同步通信方式 。
- 硬件引脚
- UART:数据传输只需 TX(发送)、RX(接收)两条数据线,再加上接地线(GND ),共 3 根线 。
- USART:同步模式下除了 TX、RX 数据线和接地线(GND )外 ,还需额外的时钟线(SCK )来提供同步信号,即 3 条数据线加接地线 。
- 数据传输
- UART:数据基于帧传输,帧结构包含起始位、数据位、校验位(可选)、停止位 。完全依靠波特率控制数据速率,若收发双方波特率配置不精准,易出现同步问题,尤其在高波特率时,所以常用于中低速通信场景 。
- USART:异步模式下帧结构和 UART 类似;同步模式下数据传输可不依赖起始位和停止位,而是由时钟信号同步,数据流更连续,时序控制更精确 。通过共享时钟信号(SCK)同步数据收发,能减少波特率不匹配导致的传输错误,可实现更高传输速率,误码率更低,适用于高速、精确的数据传输场景 。
I2C(Inter - Integrated Circuit )属于同步串行通信 。它通过串行数据线(SDA )传输数据,串行时钟线(SCL )提供时钟信号来同步数据传输 。在 SCL 的每个时钟周期里,SDA 传输一位数据 ,接收方在 SCL 高电平期间读取 SDA 上的数据,发送方需在 SCL 低电平期间准备好下一位数据,确保数据传输的同步性 。
I2C 接口相对 UART 接口的优点
- 多设备连接:I2C 通过两根线(SCL 时钟线、SDA 数据线 ),利用设备地址区分,能在总线上挂接多个设备,构建多主多从通信拓扑 。比如在一个传感器网络中,多个不同类型传感器可共用 I2C 总线与主控芯片通信 。而 UART 一般用于点对点通信,单对 TX、RX 线只能连接两个设备 。
- 硬件简洁:I2C 只需两根信号线就能实现多设备间数据传输,相比 UART 虽也是两根线实现基本通信,但在多设备场景下,I2C 无需增加额外硬件线路就能扩展设备连接数量,极大简化硬件设计与布线 。
- 数据可靠:I2C 通信有确认信号机制(ACK/NACK ),每传输一个字节数据后,接收方都要反馈是否成功接收的信号,能及时发现数据传输错误,保障可靠性 。UART 是异步通信,无此专门反馈机制,受噪声和干扰影响时,数据传输可靠性相对低 。
- 低功耗:I2C 在空闲状态下,总线上器件可进入低功耗模式,节省能量,适合对功耗敏感的应用场景,如电池供电的便携式设备 。
I2C 接口相对 UART 接口的缺点
- 通信速率:通常情况下,I2C 通信速率比 UART 低 。I2C 标准模式速率 100kbps ,快速模式 400kbps ,即便高速模式也仅 3.4Mbps ;UART 波特率常见 9600 - 115200bps ,但也可更高,在一些对传输速度要求高的场景,I2C 可能无法满足 。
- 通信距离:I2C 适用于短距离通信,长距离通信时信号易受总线负载影响,可能需额外缓冲器或驱动器 ;UART 通信距离相对较远,像 RS - 485 标准的 UART 通信,能支持较长距离传输 。
- 软件复杂度:I2C 支持多主设备,存在总线仲裁问题,当多个主设备同时尝试发送数据时,要通过仲裁机制决定哪个设备可继续传输,这增加了软件设计的复杂性 ;UART 是点对点异步通信,软件实现相对简单 。