STM内部通信、I2C、USART、
通信接口
(1)定义
用来让单片机和外部的芯片(传感器,存储器等)交换数据用的
(2)作用(为什么需要通信接口)
用GPIO口也可以完成单片机和外部硬件的交换数据,但是GPIO有很大的限制,仅仅它的电平变化远不够完成复杂的通信,以下表格是解释
时序同步 | 缺乏公共时钟信号,接收方无法准确知道何时采样数据,容易因时钟漂移导致误码,GPIO口需要双方就位,需要cpu多次的中断,精确的控制每一位传输的时间 |
效率 | 用GPIO口通信占用cpu,速度也慢,软件模拟位传输速度慢 |
多设备连接 | 每一个设备需要一个专用的IO口,多个设备造成IO口的巨大占用 |
协议复杂性与标准化 | 难以实现复杂协议 (寻址、帧结构、错误检测、流控),不同设备间兼容性差 |
抗干扰性和可靠性 | 单线传输易受噪声干扰,长距离传输可靠性低,缺乏错误检测 |
相对应的解决方案就是下面这个表格
时序同步 | 提供同步机制: • 同步接口 (SPI, I2C): 使用专用时钟线 (SCK/SCL) 精确控制采样时刻。 • 异步接口 (UART): 使用预定义的波特率和起始位/停止位来界定字节边界。 |
效率 | 硬件加速与优化: • 硬件控制器自动处理比特级操作 (生成时钟、移入/移出数据)。 • 支持更高传输速率 (MHz 级别)。 • 部分接口支持并行传输 (如 SPI 的多数据线模式)。 |
多设备连接 | 支持总线拓扑: • 多个设备共享通信线路 (如 I2C 的 SDA/SCL)。 • 提供寻址机制 (I2C 地址帧) 或片选信号 (SPI 的 SS/CS) 来选择目标设备。 |
协议复杂性与标准化 | 定义标准协议: • 规范物理层、数据链路层 (数据帧格式、地址、错误检测如奇偶校验/CRC)。 • 确保不同厂商设备间的互操作性。 |
抗干扰性和可靠性 | 增强鲁棒性: • 差分信号 (RS-485, CAN, USB): 使用双线传输相位相反信号,抗共模干扰能力强。 • 内置错误检测机制 (奇偶校验、CRC),可请求重传或报告错误。 |
USART、UART
(1)定义:USART (Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步/异步接收/发送器;UART 通用异步接收/发送器;是一种常用的通信接口
(2)没有地址概念,不区分主从设备
(3)直接连接两台设备,速度可达2Mbit/s
(4)近距离通信(如果增加变压芯片RS232,RS485提高电压保证稳定性,可以达到20m、1km)
SPI
(1)SPI(Serial Peripheral Interface)协议是一种常用的串行通信协议
(2)近距离通信(板级通信)
(3)全双工
(4)最高传输速度18MB/s
(5)区别主设备,从设备;一个主设备(单片机),其他都是从设备
I2C
(1)I2C协议(Inter-Integrated Circuit)是一种简单的双向二线制同步串行总线协议
(2)近距离通信(板级通信)
(3)半双工
(4)只有一个主设备(单片机),可以挂几百个从设备
CAN
(1)控制器局域网总线(CAN,Controller Area Network)是一种用于实时应用的串行通讯协议总线,它可以使用双绞线来传输信号
(2)远距离通信(可达10km)
(3)传输速度可达1MB/s
(4)每个设备即可当主设备,也可当从设备
特性 | USART/UART | SPI | I2C | CAN |
---|---|---|---|---|
全称 | USART: 通用同步/异步接收/发送器 UART: 通用异步接收/发送器 | Serial Peripheral Interface(串行外设接口) | Inter-Integrated Circuit(集成电路互联) | Controller Area Network(控制器局域网) |
通信类型 | 异步(UART)或同步(USART) | 同步 | 同步 | 异步 |
双工模式 | 全双工 | 全双工 | 半双工 | 半双工 |
主从结构 | 无主从区分 | 主从结构(1主多从) | 主从结构(1主多从,支持数百从设备) | 无严格主从,设备可主动发送数据 |
通信距离 | 近距离(增加RS232/RS485可达20m-1km) | 板级通信(短距离) | 板级通信(短距离) | 远距离(可达10km) |
最大速度 | 2 Mbps | 18 Mbps | 标准模式100kbps,高速模式3.4Mbps | 1 Mbps |
线路数量 | 2线(TX、RX) (无时钟线,UART需约定波特率) | 4线(SCLK、MOSI、MISO、SS) | 2线(SDA、SCL) | 2线(CAN_H、CAN_L,差分信号) |
地址机制 | 无地址概念 | 通过片选(SS)选择从设备 | 7/10位从设备地址 | 报文ID标识优先级 |
典型应用 | 设备间简单通信(如MCU与PC) | 高速板级通信(如传感器、Flash存储器) | 多设备控制(如EEPROM、温湿度传感器) | 工业控制、汽车电子(抗干扰强,实时性高) |
扩展性 | 点对点连接 | 从设备数量受主设备片选线限制 | 支持多从设备(地址空间限制) | 多节点网络,支持广播和优先级仲裁 |
信号类型 | 单端信号 | 单端信号 | 单端信号 | 差分信号(抗干扰强) |