USART(串口通信协议)
【通信的目的】将一个设备的数据传输到另外一个设备,拓展硬件系统
【 通信协议】制定通信的规则,通信双方按照协议进行数据的收发
串口通信中各个参数的含义
【TX】 | 数据接收脚 |
【RX】 | 数据发送脚 |
【SCL】 | 时钟 |
【SDA】 | 数据 |
【SCLK】 | 时钟 |
【MOSI】 | 主机输出数据脚 |
【MISO】 | 主机输入数据脚 |
【CS】 | 片选,指定通信的对象 |
【CAN_H】,【CAN_L】 | 差分数据脚,使用两个引脚表示一个差分数据 |
【DP】 D+ ,【DM】D- | 差分数据脚 |
数据传输不同的方式
【全双工】 | 由两根数据线,一根用来接收,一根用来发送 |
【半双工】 | 一根数据线,既可以用来发送,也可以用来接收 |
【单工】 | 无法做到同时发送和接受数据 |
【同步通信】 | 有时间线,不需要约定采样频率 |
【异步通信】 | 需要约定合适的采样频率,用于在约定的频率内采集数据 |
串口通信
def:串口是一种应用广泛的通讯接口,串口的成本低,容易使用,通信线路简单,可以实现两个设备之间的相互通信【串口通信方式既可以同步通信也可以异步通信】
def:单片机的串口可以使单片机与单片机,单片机与电脑,单片机与各式各样的模块进行通信,极大的拓展了单片机的应用范围,增强了单片机系统的硬件实力
串口和芯片简介
【串口的硬件电路】
注:
- 【简单的双向串口通信有两根通信线(发送端TX和接收端RX)】
- 【TX与RX要交叉连接】
- 【当只需单项的数据传输时可以只接一根通信线】
- 【当电平标准不一致时,需要加电平转换芯片】
发送接收原理图
部分电平标准(简要介绍)
注:
电平标准是数据0和数据1的表达方式,是传输线缆中认为规定的电压和数据的对应关系,串口常用的电平标准有以下的几种
- 【TTL电平】 :+3.3v或 + 5v表示1,0V表示0
- 【RS232电平】 :-3~ 15v 表示1, +3~+15v表示0
- 【RS485电平】 :两线压差+2~+6v表示1,-2~-6v表示0(差分信号)
【串口参数及时序】
注:
- 【波特率】 串口通信的速率
- 【起始位】 标志一个数据帧的开始,固定为低电平
- 【数据位】 数据帧的有效载荷,1为高电平,0为低电平,低位先行
- 【校验位】 用于数据验证,根据数据位计算得来
- 【停止位】 用于数据帧间隔,固定为高电平
图中的意思是可以有八位,第一个位是起始位,最后一位是截止位,中间的数据位数是数据位
在没有进入起始位之间电平的极性【注:呈现出高电平特性】,在进入起始位后电平转换为低点平表示开始发送数据,数据呈现出8个字节一位的特性,进入最后一位后电平转化为高电平,方便下一次数据的发送,大概原理入下图所示。
注:校验的方式有【奇校验】,【偶校验】,【循环冗余校验】
串口时序参考
USART 同步异步收发器
定义
【USART】:是STM32内部集成的硬件外设,可根据数据寄存器的一个字节数据自动生成数据帧时序,从TX引脚发送出出去,也可以自动接收RX引脚的数据帧时序,拼接为一个字节数据,存放在数据寄存器中。
- 【自带波特率发生器,最高达4.5Mbits/s】
- 【可自动配置数据长度(8/9),停止位长度(0.5/1/1.5/2】
- 【可以选择奇偶校验或者无校验】
- 【支持同步模式,硬件流控制,DMA...】
- 【STM32F103C8T6 -------------> USART资源:USART1,USART2,USART3】
USART1 是APB2总线上的设备,USART2/3是APB1总线上的设备
STM32F103C8T6引脚定义表
【引脚定义表取用自江科大的STM32配套资料,学习自江科大的STM32视频资料】
【波特率发生器:用于产生约定的通信速率】
【发送控制器】【接收控制器】:分别用于发送移位和接收移位
【发送数据寄存器和>>发送移位寄存器>> 】经过CPIO的复用输出到TX引脚
【接收数据寄存器和>>发送移位寄存器>> 】经过CPIO的复用输出到RX引脚
【开关控制】
我对以上表示含义的理解【不一定准确,可以去参考一下手册】