通信接口之串口_USART

902 阅读4分钟

前言

这是通信接口系列文章的第一篇,我会整理一些常用通信接口方面的相关知识,进行梳理,并将这些知识结构化、体系化,以便能更全面深入的掌握。

常见通信接口列表

  • 通信的目的:将一个设备的数据传送到另一个设备,扩展硬件系统
  • 通信协议:制定通信的规则,通信双方按照协议规则进行数据收发
名称引脚双工时钟电平设备
USARTTX、RX全双工异步单端点对点
I2CSCL、SDA半双工同步单端多设备
SPISCLK、MOSI、MISO、CS全双工同步单端多设备
CANCAN_H、CAN_L半双工异步差分多设备
USBDP、DM半双工异步差分点对点

双工:同时有输出与输入数据线的就是全双工

时钟

同步 - 具有时钟线,通信双方按照这个时钟频率进行同步;
异步 - 双方约定采用一个采样频率,并且通过协议制定约束,如数据格式,帧头、帧尾,进行采样位置的对齐;

电平特性

单端:共地,需要接一个GND引脚;

差分:靠两个差分引脚的电压差来传输信号,通讯时可以不需要GND,但不绝对,USB有的时候还是需要GND。使用差分信号可以极大地提高抗干扰特性,所以差分信号一般传输速度和距离都会非常高。

串口通信(Serial Communication)

  • 串口是一种应用十分广泛的通讯接口,串口成本低、容易使用、通信线路简单,可实现两个设备的互相通信
  • 单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信,极大地扩展了单片机的应用范围,增强了单片机系统的硬件实力

USB转串口TTL CH340.png

USB转串口TTL CH340

蓝牙串口模块 HC-05.png

蓝牙串口模块 HC-05

硬件电路

  • 简单双向串口通信有两根通信线(发送端TX和接收端RX)
  • TX与RX要交叉连接
  • 当只需单向的数据传输时,可以只接一根通信线 (单工)
  • 当电平标准不一致时,需要加电平转换芯片

常见串口接线图.png

常见串口接线图

VCC 如果通信双方都具备独立供电可以不接 TX TX GND 三根线必须连,GND也算是一根通信线

电平标准

电平标准是数据1和数据0的表达方式,是传输线缆中人为规定的电压与数据的对应关系,串口常用的电平标准有如下三种:

  • TTL电平:+3.3V或+5V表示1,0V表示0
  • RS485电平:两线压差+2~+6V表示1,-2~-6V表示0(差分信号,抗干扰,长距离)
  • RS232电平:-3~-15V表示1,+3~+15V表示0 (大型机器上使用)

串口参数及时序

串口协议规定

  • 波特率:串口通信的速率
  • 起始位:标志一个数据帧的开始,固定为低电平
  • 数据位:数据帧的有效载荷,1为高电平,0为低电平,低位先行
  • 校验位:用于数据验证,根据数据位计算得来(奇偶校验仅进行有限校验,大学时这个问题特意问过老师
  • 停止位:用于数据帧间隔,固定为高电平

无奇偶校验位10位数据时序图.png

无奇偶校验位10位数据时序图

有奇偶校验位11位数据时序图.png

有奇偶校验位11位数据时序图

串口通信小结

一句话概括: TX引脚定时输出翻转的高低电平,RX引脚定时读取翻转的高低电平,每个字节的数据加上起始位、停止位、可选的校验位,打包成数据帧,依次输出在TX引脚,另一端RX引脚依次接收,这样就完成了字节数据的传递。

这就是串口通信。

USART

简介

  • USART(Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步/异步收发器
  • USART是STM32内部集成的硬件外设,可根据数据寄存器的一个字节数据自动生成数据帧时序,从TX引脚发送出去,也可自动接收RX引脚的数据帧时序,拼接为一个字节数据,存放在数据寄存器里
  • 自带波特率发生器,最高达4.5Mbits/s
  • 可配置数据位长度(8/9)、停止位长度(0.5/1/1.5/2)
  • 可选校验位(无校验/奇校验/偶校验)
  • 支持同步模式、硬件流控制、DMA、智能卡、IrDA、LIN

USART基本结构

USART框图.png

USART框图

USART基本结构.png

USART基本结构

--

TODO

数据帧

起始位侦测

数据采样

波特率发生器