串口

1. 通信基础

1.1 串行通信与并行通信

1.2 全双工、半双工及单工通信

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

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

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

1.3 同步通信与异步通信

同步通信

异步通信

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

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

1.4 通信速率

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

1. 比特率(Bit rate):

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

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

2. 波特率(Baud rate):

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

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

3. tips

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

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

2. 串口通信简介

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

串口通信的接口类型包括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

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简介

Universal synchronous asynchronous receiver transmitter,通用同步异步收发器

Universal asynchronous receiver transmitter,通用异步收发器

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

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

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

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

4. USART框图

5.串口实验

小实验1:通过串口发送/ 接收一个字符

小实验2 :串口接收不定长数据( 接收中断 )

主函数编写

小实验3 :串口接收不定长数据 ( 空闲中断 )

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐