7、串口(上)
1 数据通信
1.1 串行与并行
串行通信:数据逐位按照顺序依次传输
并行通信:数据通过多条线同时传输
|
名称 |
传输速率 |
抗干扰能力 |
通信距离 |
IO资源占用 |
成本 |
|
串行通信 |
较低 |
较强 |
较长 |
较少 |
较低 |
|
并行通信 |
较高 |
较弱 |
较短 |
较多 |
较高 |
1.2 单工、半双工、全双工通信
单工通信:数据只能沿单方向传输
半双工通信:数据能够双向传输,但是同一时间内只能沿一个方向
全双工通信:数据能同时双向传输
1.3 同步、异步通信
同步通信:数据发送方与接收方共用同一时钟信号
异步通信:没有时钟信号,通过在数据信号中加入起始位和停止位等一些同步信号进行同步
1.4 波特率
比特率:每秒钟传输的比特数,单位bit/s
波特率:每秒钟传输的码元数,单位Baud
比特率=波特率×log2 M,M表示每个码元所承载的信息量,二进制码元携带的信息量即为1比特
1.5 常见串行通信接口
|
通信接口 |
接口引脚 |
数据同步方式 |
数据传输方向 |
|
UART |
TXD:发送端RXD:接收端 GND:公共地 |
异步通信 |
全双工 |
|
1-wire |
DQ:发送/接收端 |
异步通信 |
半双工 |
|
IIC |
SCL:同步时钟 SDA:数据输入/输出端 |
同步通信 |
半双工 |
|
SPI |
SCK:同步时钟 MISO:主机输入,从机输出 MOSI:从机输入,主机输出 CS:片选信号 |
同步通信 |
全双工 |
2 串口(RS-232)
2.1 串口的概念
串口:串行通信接口,是按位进行发送和接收的接口。
RS-232中共有9个接口,在异步通信中只使用Pin2(串口数据输入)、Pin3(串口数据输出)和Pin5(信号地)。
2.2 RS-232电平
逻辑1:-15V ~ -3V 逻辑0:+3V ~ +15V
2.3 RS-232异步通信协议
一个数据帧=启动位+有效数据位+(校验位)+停止位
启动位:必须占1位长,保持逻辑0电平
有效数据位:可选5~9个位长,最低有效位在前,最高有效位在后
校验位:可以选占1个字长,也可以没有
停止位:必须有,可占0.5、1、1.5或2位长,保持逻辑1电平
3 USART
3.1 USART简介
Universal Synchronous Asynchronous Receiver Transmitter(USART),通用同步异步收发器。
Universal Asynchronous Receiver Transmitter(UART),通用异步收发器。
3.2 USART特征
1、全双工异步通信
2、单条线可实现半双工通信
3、单独的发送器和接收器使能位
4、可配置使用DMA的多缓冲器通信
5、多个带标志的中断源
3.3 引脚对应
3.3 USART波特率设置
在串口通信中,双方应当使用相同的波特率,F1系列中的波特率计算公式如下所示:
baud=\textit{\frac{\textit{f_{ck}}}{16×USART\_DIV}}
其中fck是串口的时钟,USART1使用PCLK2,其他串口使用PCLK1。
3.4 USART寄存器
|
控制器名称 |
位 |
功能 |
参数 |
|
控制寄存器1 CR1 |
2 |
使能接收 |
0:禁止接收 1:使能接收 |
|
3 |
使能发送 |
0:禁止发送 1:使能发送 |
|
|
5 |
使能接收缓冲区非空中断 |
0:禁止产生中断 1:使能 |
|
|
10 |
检验控制 |
0:禁止检验控制 1:使能检验控制 |
|
|
12 |
配置数据位 |
0:8位数据 1:9位数据 |
|
|
13 |
使能USART |
0:禁止1:使能 |
|
|
控制寄存器2 CR2 |
12 ~ 13 |
设置停止位 |
00:1个停止位 01:0.5个停止位 10:2个停止位 11:1.5个停止位 |
|
控制寄存器3 CR3 |
3 |
设置半双工选择 |
0:不选择半双工 1:选择半双工 |
|
数据寄存器DR |
0 ~ 8 |
收发数据 |
- |
|
状态寄存器SR |
5 |
读数据寄存器状态 |
0:数据没有收到 1:收到数据,可以读出 |
|
6 |
发送完成检测 |
0:发送未完成 1:发送完成 |

浙公网安备 33010602011771号