(嵌入式八股)第6章 通信协议(二)(后续通信协议相关会持续补充在这里)
6.11 同步通信与异步通信的区别
同步通信(Synchronous Communication)
同步通信是指数据传输过程中,发送方和接收方使用一个共同的时钟信号来同步传输和接收数据。在这种通信方式下,双方的时钟频率和相位必须严格一致,以确保数据在正确的时间点传输。
异步通信(Asynchronous Communication)
异步通信则不依赖于共同的时钟信号进行同步。每个数据传输单元(数据帧)由发送方和接收方在不共享时钟的情况下进行传输。为了正确传输数据,数据帧中会包含特定的控制位,如起始位和停止位,用于标识数据的开始和结束。
同步通信与异步通信的主要区别
总结
- 同步通信适用于高效、实时、快速的数据传输场景,它要求发送方和接收方的时钟同步,因此具有较高的传输效率,但对时序的要求较严格。
- 异步通信则不依赖于共享时钟,通信双方通过控制位来保证数据的准确传输,灵活性较高,但效率较低,适合低速、简单的通信场景。
6.12 UART和USART
什么是UART?
UART(Universal Asynchronous Receiver/Transmitter)是常见的串行通信协议,用于数据传输。它通常用于在计算机与外部设备(如微控制器、传感器、GPS模块等)之间进行通信。UART工作方式是异步通信,这意味着它不需要外部时钟信号来同步发送和接收数据。
UART工作原理
UART协议的工作原理是将并行数据转换为串行数据,一位一位地进行传输。数据按特定格式发送,包括:
UART硬件连接
UART通信通常需要以下三个基本连接:
- TX(传输端口):用于发送数据,连接到接收端的RX。
- RX(接收端口):用于接收数据,连接到发送端的TX。
- GND(地线):保证两个设备具有共同的参考电平,连接到两端的地线。
小知识:串口(UART)最少几根线通信?
最少两根线通信,其中必备GND保持共同参考电平,以及RX/TX中二选一。
波特率
波特率决定了每秒传输的比特数(bps)。常见的波特率有9600bps、115200bps等。例如,如果波特率是9600bps,表示每秒传输9600个比特。
什么是USART?
USART(Universal Synchronous/Asynchronous Receiver/Transmitter)是一个增强版的串行通信协议,它不仅支持异步通信,还支持同步通信。USART比UART功能更强大,可以在更多复杂的通信环境中使用。其工作原理与UART相似,但它还支持通过时钟信号进行同步通信。
USART的两种工作模式
- 异步模式:与UART类似,数据在没有时钟信号的情况下传输。接收端和发送端必须预先约定好波特率以确保数据的正确同步。
- 同步模式:USART通过外部时钟信号同步数据的传输。在这种模式下,发送和接收设备通过时钟信号共同工作,保证数据的同步传输。
USART与UART的区别:
C代码示例:使用UART进行串行通信
以下是一个简单的使用UART进行串行通信的C语言代码示例:
UART_Init
函数初始化UART,并设置波特率。在这个例子中,波特率被设置为9600。UART_Transmit
函数将字符发送到串口。该函数会等待直到发送缓冲区为空,然后发送数据。UART_Receive
函数接收一个字符。此函数会阻塞,直到接收到数据。总结
- UART:适用于简单的异步通信,不依赖时钟信号,主要用于低速数据传输。
- USART:比UART更强大,除了支持异步通信外,还可以使用同步通信模式,通过外部时钟同步数据传输,适用于更复杂的应用场景。
6.13 RS232与RS485对比及通信连接方式
1. RS232通信简介
RS232是一种用于短距离数据通信的标准协议,它将TTL电平信号(0V和+5V)转换为更高的电平信号(+12V为逻辑0,-12V为逻辑1)。RS232通信通常使用一对数据线(TX和RX)和一根共地线进行连接。
RS232的通信方式一般包括以下特点:
缺点:
2. RS485通信简介
RS485是一种差分信号传输协议,解决了RS232在传输距离和抗干扰能力方面的不足。它支持长距离、多节点连接,通常用于工业控制系统中。
RS485的通信方式通常包括以下特点:
3. RS485通信连接方式
RS485采用差分信号方式进行数据传输,通常使用两根双绞线(A和B线)。在RS485中,所有的设备(主设备和从设备)都连接到同一条总线上,通过差分电压传输数据。RS485具有以下特点:
- 支持多节点连接:可以在总线上连接多达32个设备,适合多设备网络。
- 屏蔽双绞线:为了防止外部干扰,RS485通信线一般使用屏蔽双绞线。
- 半双工模式:RS485通信不能同时发送和接收数据,因此采用半双工模式。主设备和从设备之间需要切换发送和接收的状态。
4. RS485的优势
- 长距离传输:RS485支持的最大通信距离可达到1500米以上。
- 高速度:RS485支持较高的数据传输速率,适合实时数据传输需求。
- 抗干扰能力:RS485采用差分信号传输方式,能够有效抵抗外界电磁干扰,保证数据传输的稳定性。
5. RS232与RS485对比
总结
- RS232适用于短距离、简单的点对点通信,信号电平较高,抗干扰能力较弱。
- RS485适用于长距离、多设备的通信,采用差分信号传输,具有较强的抗干扰能力和较长的通信距离,适合用于工业控制、自动化系统等领域。
6.14 I2C
I2C(Inter-Integrated Circuit)是一种串行通信总线协议,用于在集成电路(IC)之间进行通信。I2C协议由飞利浦公司(现在的NXP半导体)开发,广泛应用于嵌入式系统中,如微控制器与外部设备之间的数据传输。
I2C通信的特点包括:
- 主从结构:I2C支持主设备(Master)与多个从设备(Slave)之间进行通信,主设备控制通信的时序和数据流。
- 两根信号线:I2C通信使用两根信号线,分别为:SDA(串行数据线):用于传输数据。SCL(串行时钟线):用于传输时钟信号,控制数据的传输速率。
- 设备地址:每个I2C设备都有一个唯一的地址,通常是7位或10位地址,允许在同一总线上连接多个设备。
- 半双工通信:数据在两根线(SDA和SCL)上进行同步传输,通信是半双工的,即同一时间只能有一个设备发送数据。
I2C协议的优点包括简单、灵活和可靠,适用于连接多个低速设备,常用于连接传感器、存储器、显示器等外部设备。
I2C总线结构
I2C总线由两根主要信号线组成:
- SDA(串行数据线):负责传输数据,通常由主设备发送数据,或者从设备发送数据。
- SCL(串行时钟线):由主设备生成时钟信号,控制数据的传输速率。
总线空闲时,SDA和SCL都处于高电平状态,通过上拉电阻来实现。
I2C时序
I2C协议的时序图描述了数据的传输过程,包括起始条件、停止条件、地址传输、数据传输等。下面是I2C时序的详细解释:
开始条件(S):
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
作者简介:仅用几个月时间0基础天坑急转嵌入式开发,逆袭成功拿下华为、vivo、小米等15个offer,面试经验100+,收藏20+面经,分享求职历程与学习心得。 专栏内容:这是一份覆盖嵌入式求职过程中99%问题指南,详细讲解了嵌入式开发的学习路径、项目经验分享、简历优化技巧、面试心得及实习经验,从技术面,HR面,AI面,主管面,谈薪一站式服务,助你突破技术瓶颈、打破信息差,争取更多大厂offer。