二十七、通信接口

前言:本章为通信接口的简单介绍。下一章节讲解UART。

目录

一、通信接口简介

二、串口通信原理

三、串口通信的硬件连接

常见连接方式

四、口通信的电平标准

五、串口通信的参数

[六、UART 数据帧结构](#六、UART 数据帧结构)

[七、UART 时序图分析](#七、UART 时序图分析)

[八、UART 的同步与误差](#八、UART 的同步与误差)

九、总结


一、通信接口简介

在嵌入式系统中,通信接口是微控制器与外部设备进行数据交换的桥梁。常见的通信接口包括:

  • UART(通用异步收发器)

  • SPI(串行外设接口)

  • I²C(集成电路间通信)

  • CAN(控制器局域网)

  • USB、Ethernet 等高速接口

这些接口的区别主要在于数据传输方式、同步方式、传输速率和应用场景。

而在众多通信接口中,UART 串口通信是最基础、最常用的接口之一,几乎所有单片机都具备 UART 模块。

二、串口通信原理

UART(Universal Asynchronous Receiver/Transmitter) 中文称为通用异步收发器

它是一种异步全双工的串行通信方式,也就是说:

  • "异步"表示通信双方不共享时钟信号,而是依靠波特率来保持同步;

  • "全双工"意味着发送和接收可以同时进行。

UART 通信以比特为单位 在一条线上依次发送数据,因此被称为串行通信

相比并行通信,虽然速度略慢,但线路简单、成本低、抗干扰能力强。

三、串口通信的硬件连接

在 STM32C8T6 中,串口通信一般使用 USART1、USART2、USART3 等硬件外设。

每个 USART 都有两条主要信号线:

常见连接方式

1.MCU 与上位机通信(如电脑)

电脑通常没有直接的 UART 接口,因此需要使用 USB 转 TTL 模块(如 CH340、CP2102、FT232) 将信号转换后连接。

STM32 TX → USB-TTL RX

STM32 RX → USB-TTL TX

GND → GND

2.MCU 与 MCU 通信

两个 STM32 之间也可以通过交叉连接 TX/RX 实现通信。

四、口通信的电平标准

UART 只是通信协议规范,而具体的电平标准决定了信号电压范围。常见的有两种:

STM32 的 UART 口使用 TTL 电平

若要与电脑的 RS-232 串口通信,需要通过 MAX232 芯片进行电平转换。

五、串口通信的参数

UART 通信双方必须在通信前约定好相同的参数,否则会出现乱码或丢包。常见参数包括:

常用配置是 8N1

  • 8 位数据

  • 无校验位(N)

  • 1 位停止位

六、UART 数据帧结构

在 UART 中,数据以帧(Frame)为单位发送。

一个典型的 8N1 数据帧如下图所示:

空闲线 起始位 数据位0~7 停止位

| | | |

|--------------|---------|-----------|

1 (高) 0 (低) bit0→bit7 1 (高)

解释:

  • 空闲状态:线路为高电平

  • 起始位:低电平表示传输开始

  • 数据位:从低位(LSB)开始发送

  • 停止位:高电平表示传输结束

七、UART 时序图分析

下面是 UART 的标准时序图(以 8N1 格式为例):

电平

高 ────────────────────────────────────────────

↓起始位 ↑停止位

┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐

低───┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └───────────

|<- 每一位的持续时间取决于波特率 ->|

例如:

波特率 = 9600 bps → 每位时间 = 1/9600 ≈ 104.17 μs

那么发送 1 帧(10 位数据:1+8+1)需要约 1.04 ms。

八、UART 的同步与误差

UART 是异步通信,因此接收方没有外部时钟,只能依靠波特率匹配。

在通信中允许少量误差(一般 ±2% 以内)。

若误差过大,会导致采样点偏移,从而产生错误。

因此,在 STM32 中,通常需要使用 定时器精确设置波特率分频系数,以保证通信稳定。

九、总结

UART 串口通信作为嵌入式系统中最常用的通信方式之一,具有以下优点:

  • 硬件结构简单

  • 软件实现方便

  • 调试友好(可通过串口调试助手直接查看数据)

在 STM32C8T6 中,UART 模块由 USART 外设 实现,不仅支持标准异步通信,还可支持同步模式、LIN、IrDA 等多种扩展功能。

相关推荐
清风6666662 小时前
基于单片机与DAC0832的双路波形信号发生系统设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
Hello:CodeWorld3 小时前
C 风格变参 vs C++ 变参模板:核心区别与选型指南
c语言·c++·算法
azwsm3 小时前
电路元器件和GPIO控制器
单片机·嵌入式硬件
十月的皮皮5 小时前
C语言学习笔记20260606- 求月份天数三种写法
c语言·笔记·学习
caimouse5 小时前
Reactos 第 5 章 进程与线程 — 5.8 Windows 的 APC 机制
c语言·windows
kebidaixu6 小时前
FreeRTOS 移植到 STM32F407VETX 记录(一)
stm32·单片机·嵌入式硬件
CSDN官方博客6 小时前
「谁说嵌入式只是调包和焊板子?」—— 2026嵌入式全栈技术征锋令
嵌入式硬件·物联网·embedding
半条-咸鱼6 小时前
【INACCESSIBLE_BOOT_DEVICE】安装 Config Tool 后 Windows 蓝屏,最终通过 VMware 虚拟机解决
windows·stm32·vmware·芯片
点灯小铭7 小时前
基于单片机的数码管定时插座设计与定时开关功能实现
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
云栖梦泽7 小时前
玩转RK3506SDK
linux·嵌入式硬件