【STM32】USART串口协议详解
串口协议
通信接口
名称 |
引脚 |
双工 |
时钟 |
电平 |
设备 |
USART |
TX、RX |
全双工 |
异步 |
单端 |
点对点 |
I2C |
SCL、SDA |
半双工 |
同步 |
单端 |
多设备 |
SPI |
SCLK、MOSI、MISO、CS |
全双工 |
同步 |
单端 |
多设备 |
CAN |
CAN_H、CAN_L |
半双工 |
异步 |
差分 |
多设备 |
USB |
DP、DM |
半双工 |
异步 |
差分 |
点对点 |
TX、RX:
USART(Universal Synchronous/Asynchronous Receiver/Transmitter)即通用同步异步收发器。它是一种通用串行通信接口,可用于微控制器与其他设备间的串行数据传输。USART既能工作在异步模式(不需要外部时钟信号),实现与各种没有同步时钟要求的设备通信;也能工作在同步模式,通过外部时钟信号来实现更高的数据传输速率和更精确的同步。在异步模式下,它使用两根线(TX(Transmit)发送线和RX (Receive)接收线)进行数据传输,数据按照一定的格式(起始位、数据位、校验位、停止位)进行封装和传输。在同步模式下,除了TX和RX线外,还需一根时钟线(SCK)来同步数据传输。它常用于连接计算机、传感器、调制解调器等设备。
SCL、SDA:
I2C 是一种串行通信协议,用于连接微控制器、传感器、显示屏等设备之间进行通信。在 I2C 中,SCL (Serial Clock) 和 SDA (Serial Data) 是两根信号线,负责在设备之间传输数据和同步时钟信号。
SCL (Serial Clock):这是一个时钟信号线,控制数据传输的时序。所有设备都通过这个时钟信号来同步数据传输。
SDA (Serial Data):这是一个数据信号线,用于在设备之间传输数据。设备通过 SCL 信号线上的时钟信号来同步 SDA 数据信号的传输。
通过 SCL 和 SDA 两根信号线,I2C 支持多个设备在同一总线上进行通信,并且通过地址识别不同设备。这使得 I2C 协议在连接多个设备时非常灵活和方便。
SCLK、MOSI、MISO、CS:
SPI(Serial Peripheral Interface)是一种高速的、全双工、同步的通信总线。
SCLK(Serial Clock):即串行时钟线,用于在主设备和从设备之间同步数据传输,主设备通过它产生时钟信号,控制数据的传输速率和节奏。
MOSI(Master Output Slave Input):主设备输出从设备输入线,主设备通过这条线向从设备发送数据。
MISO(Master Input Slave Output):主设备输入从设备输出线,从设备通过这条线向主设备返回数据。
CS(Chip Select):片选线,也叫从机选择线,用于主设备选择与之通信的特定从设备,当主设备要与某个从设备通信时,会将该从设备对应的CS线拉低,选中该从设备 。
CAN_H、CAN_L:差分数据脚
CAN(Controller Area Network)即控制器局域网,是一种用于实时应用的串行通讯协议总线,最初由德国博世公司开发,用于汽车内部的电子系统之间的数据传输。
它具有以下特点:
1. 多主控制:网络上任意一个节点均可在任意时刻主动向网络上其他节点发送信息,而不分主从,通信方式灵活。
2. 报文标识符:CAN协议采用标识符来区分不同的信息,而非节点地址,标识符不代表节点地址,而是表示数据的含义,通过设置标识符的优先级,可实现不同数据的优先传输。
3. 可靠性高:CAN协议具有完善的错误检测和处理机制,当检测到错误时,会自动重发数据,以确保数据传输的准确性。
4. 通信速率快:CAN总线的通信速率在不同的网络规模下有所不同,最高可达1Mbps(在40米距离内),适用于对实时性要求较高的应用场景。
5. 节点数量多:CAN总线可挂接的节点数主要取决于总线驱动电路,目前可达110个。
CAN通信广泛应用于汽车电子、工业自动化、智能楼宇、医疗器械等领域。例如在汽车中,它连接发动机控制单元、防抱死制动系统、仪表盘等多个电子控制单元,实现各部件之间的高效数据交互。
DP、DM:
USB(通用串行总线)中的 DP 和 DM 分别指的是数据线的正、负差分信号线。差分信号传输是一种利用两根信号线之间的电压差来传输数据的方式,具有抗干扰能力强的特点。DP 为正差分信号线,DM 为负差分信号线,它们共同负责在 USB 设备与主机之间传输数据。在 USB 通信过程中,数据通过 DP 和 DM 线以差分信号的形式进行传输,接收端通过检测 DP 和 DM 之间的电压差来还原数据。
全双工和半双工的区别:
全双工和半双工是通信领域中两种不同的数据传输模式,它们的区别如下:
单工通信是指数据只能在一个方向上传输,就像广播电台向听众广播消息,听众无法向电台发送反馈,是一种单向的传输方式。
同步通信和异步通信:
同步通信和异步通信是数据通信的两种重要方式,区别如下:
单端信号与差分信号:
串口引脚的高低电平对应GND的电压差,所以单端信号的通信的双方必须共地,就是把GND连接在一起。不接地无法通信。
点对点通信和多设备通信:
点对点通信和多设备通信是两种不同的通信模式,它们的区别如下:
串口通信
串口通信是一种常用的串行通信方式,数据按位顺序逐位传输。其特点如下:
硬件电路
电平标准
电平标准是数据1和数据0的表达方式,是传输线缆中人为规定的电压与数据的对应关系,串口常用的电平标准有如下三种:
有关串口和电平标准可参考此文章区分:串口,COM口,UART,USART_uart和串口的区别-CSDN博客
串口参数及时序
通用同步异步收发器(USART)
串口时序
串口外设
USART简介
硬件数据流控
USART框图
引脚定义表:
引脚复用
USART基本结构 
数据帧
起始位侦测
数据采样
1个停止位:对1个停止位的采样在第8,第9和第10采样点上进行
当在接收帧中检测到噪音时,在RXNE位的上升沿设置NE标志
波特率发生器
实际使用库函数会帮我们自动算。
CH340模块原理图:32:19
作者:傍晚冰川