串口通信基础知识介绍

1. 通信基础

1.1 串行通信与并行通信

在通信和计算机科学中,串行通信(Serial Communication)是一个通用概念,泛指所有的串行的通信协议,如RS232、RS422、RS485、USB、I2C、SPI等。

串行通讯是指仅用一根接收线和一根发送线就能将数据以位进行传输的一种通讯方式。尽管串行通讯的比按字节传输的并行通信慢,但是串口可以在仅仅使用两根线的情况下就能实现数据的传输。

1.2 串口通讯模式

串口通讯模式包括单工通信、半双工通信和全双工通信。

单工通信:数据只能沿一个方向传输 

半双工通信:数据可以沿两个方向传输,但需要分时进行

全双工通信:数据可以同时进行双向传输。

1.3 同步通信与异步通信

同步通信:发送和接收双方按照预定的时钟节拍进行数据的发送和接收,双方的操作严格同步。

异步通信:双方不需要严格的时钟同步,每个数据块之间通过特定的起始位和停止位进行分隔,接收方可以独立地识别每个数据块。

1.4 通信速率

通信速率是指在通信系统中单位时间内传输的信息量,是评估通信系统性能的重要指标之一。

1. 比特率(Bit rate):

定义:比特率是指在通信线路(或系统)中单位时间(每秒)内传输的信息量,即每秒能传输的二进制位数。它用单位时间内传输的二进制代码的有效位(bit)数来表示,其单位为比特/秒(bit/s或bps)。

含义:比特率越高,表示单位时间内传送的数据量越大,信息传输的速率越快。它经常被用作连接速度、传输速度、信息传输速率和数字带宽容量的同义词。

2. 波特率(Baud rate):

定义:在电子通信领域,波特率表示每秒传送的码元的个数,即单位时间内载波调制状态变化的次数。它用单位时间内载波调制状态改变次数来表示,其单位为波特(Baud)。

含义:波特率描述的是单位时间内调制信号的能力,它决定了在给定时间内可以通过通信通道发送多少个离散的信号单元(码元)。在数字通信中,码元是表示数字信息的最小单位。

3. tips

比特率 = 波特率 * log2 M ,M表示每个码元承载的信息量

二进制系统中,波特率数值上等于比特率

2. 串口通信简介

串口,也称为串行接口或串行通信接口(通常指COM接口),是一种采用串行通信方式的扩展接口。它实现了数据一位一位地顺序传送,具有通信线路简单、成本低但传送速度慢的特点。只要一对传输线,串口就可以实现双向通信。

2.1 串口通信

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

2.2 电平标准

串口通信的接口类型包括TTL、CMOS、RS-232和RS-485等,它们分别代表了不同的电平标准。

TTL电平
逻辑1:5V,逻辑0:0V

CMOS电平
逻辑1:供电电压的最大值,逻辑0:0V

RS-232电平
逻辑1:-3V~-15V,逻辑0:+3~+15V

RS-485电平
采用差分信号,逻辑1:两线间的电压差为+(0.2~6)V,逻辑0:两线间的电压差为-(0.2~6)V

串口通信不同的电平需要互相转换才能进行通讯

2.3 串口参数

串口的引脚空闲状态为高电平,起始位为固定低电平,停止位为固定高电平。

波特率:串口通信的速率;
起始位:标志一个数据帧的开始,固定为低电平;
数据位:数据帧的有效载荷,1为高电平,0为低电平,低位先行
校验位:用于数据验证,奇校验、偶校验、无校验;
停止位:用于数据帧间隔,固定为高电平;

1. 起始位(Start Bit):起始位为低电平时,告诉接收方数据传输即将开始,准备接收。在通信开始时,发送端首先会发送一个起始位,它是一个逻辑0(低电平)的信号,用于同步发送和接收设备之间的时钟。接收端在检测到起始位后,会开始准备接收后续的数据位。

2. 有效数据位(Data Bits):数据位是由一系列二进制值组成,用于传输或接收实际的数据。数据位的数量决定了可以传输的不同二进制值的数量,常见的有5位、6位、7位、8位,LSB在前,MSB在后。数据位紧随起始位之后,包含了要传输的实际信息。

3. 校验位(Parity Bit):校验位用于验证数据的完整性,以确保传输过程中没有出现错误。常见的校验位选项有None(无校验位)、Odd(奇校验位)和Even(偶校验位)。在发送数据时,校验位会根据数据位中1的个数进行计算,并加入到数据中一起传输。接收端则会根据校验位的值进行校验,以判断数据是否存在错误。

4. 停止位(Stop Bit):停止位是一个逻辑高电平(1),用于指示数据传输的结束。当停止位出现时,接收端知道数据传输已经完成,并且可以开始处理接收到的数据。停止位位于数据位和校验位之后,它的作用是确保接收端有足够的时间来识别数据帧的结束,并为下一个数据帧的到来做好准备。

3. STM32 USART简介

USART(Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步/异步收发器。STM32内部集成的硬件外设,可根据数据寄存器的一个字节数据自动生成数据帧时序,从TX引脚发送出去,也可自动接收RX引脚的数据帧时序,拼接为一个字节数据,存放在数据寄存器里。

1. 全双工通信:USART支持全双工通信,即数据可以在两个方向上同时传输(A→B且B→A)。这使得USART能够满足许多需要双向通信的应用场景。

2. 同步与异步传输:尽管USART的“S”代表同步,但在实际应用中,USART更常用于异步通信。然而,它也支持同步通信模式,只是这种模式通常用于兼容其他协议或特殊模式,并且两个USART设备不能通过同步模式进行直接通信。

3. 波特率发生器:USART自带波特率发生器,最高可达4.5Mbits/s,可以根据需要配置不同的波特率。

4. 硬件流控制:USART支持硬件流控制,通过特定的信号线(如RTS/CTS)实现数据的可靠传输。当接收端没有准备好接收数据时,可以通过RTS信号通知发送端暂停发送;当接收端准备好接收数据时,再通过CTS信号通知发送端恢复发送。

3.1 USART框图

发送数据TX:首先判断发送移位寄存器是否为空,为空就将发送寄存器中的一个Byte值送入移位寄存器中发送。(数据从TDR转移到发送移位寄存器时标志位TXE(TX Empty)就置1,我们就可以往TDR写入新数据)。

接收数据RX:接收到1位数据时就存入接收移位寄存器中,当接收了一个Byte之后就整体将数据转移到接收数据寄存器RDR中,(接收移位寄存器满了之后标志位RXNE(RX Not Empty)置1,此时我们就将数据转移到RDR)。

若要使用硬件流控,RTS、CTS也要交叉连接,n代表低电平有效;
唤醒单元用于多个设备之间串口通信,给每个串口赋一个地址,当地址有效时才进行通信;
中断控制中:TXE、RXNE两个标志位比较重要;检查RXNE标志位是否为1可以判断是否接收到数据(也可以申请中断快速处理数据),当TXE置1时就可以发送新的数据。

USART框图

USART读写操作简图

3.2 USART基本结构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值