(嵌入式八股)第6章 通信协议(二)(后续通信协议相关会持续补充在这里)

6.11 同步通信与异步通信的区别

同步通信(Synchronous Communication)

同步通信是指数据传输过程中,发送方和接收方使用一个共同的时钟信号来同步传输和接收数据。在这种通信方式下,双方的时钟频率和相位必须严格一致,以确保数据在正确的时间点传输。

  • 时钟同步:同步通信依赖于一个共享的时钟信号,发送方和接收方的时钟是同步的,数据传输和接收的时序都依据这个时钟。
  • 数据帧结构:数据被划分为固定的时间片,或者说每一段时间是由时钟周期来决定的。在每一个时钟周期内,数据将被传输。
  • 时序要求:同步通信对时序要求较高。发送方和接收方的时钟必须精确匹配,以保证数据能够按时到达并被正确接收。
  • 效率:同步通信传输效率较高,因为没有额外的控制位(如起始位和停止位),因此可以传输更多的数据。
  • 应用:同步通信通常用于高效、快速的通信场景,如数据总线、网络协议以及一些高速的硬件通信接口(如SPI、I2C、SATA等)。
  • 异步通信(Asynchronous Communication)

    异步通信则不依赖于共同的时钟信号进行同步。每个数据传输单元(数据帧)由发送方和接收方在不共享时钟的情况下进行传输。为了正确传输数据,数据帧中会包含特定的控制位,如起始位和停止位,用于标识数据的开始和结束。

  • 时钟同步:异步通信不需要一个共享的时钟信号。每个数据帧都包含起始位和停止位,接收方根据这些控制位来识别数据帧的边界。
  • 数据帧结构:每个数据帧通常包括一个起始位、数据位、可选的校验位以及一个或多个停止位。起始位标识数据的开始,停止位标识数据的结束,确保接收方能正确地解析数据。
  • 时序要求:异步通信对时序的要求较低。通信双方无需精确同步,数据传输和接收依赖于控制位来保证数据的准确性。
  • 灵活性:异步通信比同步通信更灵活,因为发送和接收不依赖于时钟信号。但由于需要更多的控制位,因此其传输效率相对较低。
  • 应用:异步通信广泛应用于低速设备的通信,如串口通信(RS232、RS485)和一些较慢的传感器接口。
  • 同步通信与异步通信的主要区别

    总结

    • 同步通信适用于高效、实时、快速的数据传输场景,它要求发送方和接收方的时钟同步,因此具有较高的传输效率,但对时序的要求较严格。
    • 异步通信则不依赖于共享时钟,通信双方通过控制位来保证数据的准确传输,灵活性较高,但效率较低,适合低速、简单的通信场景。

    6.12 UART和USART

    什么是UART?

    UART(Universal Asynchronous Receiver/Transmitter)是常见的串行通信协议,用于数据传输。它通常用于在计算机与外部设备(如微控制器、传感器、GPS模块等)之间进行通信。UART工作方式是异步通信,这意味着它不需要外部时钟信号来同步发送和接收数据。

    UART工作原理

    UART协议的工作原理是将并行数据转换为串行数据,一位一位地进行传输。数据按特定格式发送,包括:

  • 空闲位:当通信线路处于空闲状态时,线路保持高电平(逻辑1)。
  • 起始位:数据传输开始时,发送方会发送一个低电平(逻辑0),标志着数据的开始。
  • 数据位:紧接着起始位,数据会被按位传输。通常使用8位数据,即一个字节的数据传输。
  • 奇偶校验位:如果启用校验位,数据传输后会进行奇偶校验,用于检测传输错误。
  • 停止位:传输数据结束后,发送方会发送一个或多个停止位,通常是高电平(逻辑1)信号,表示数据传输结束。
  • 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的两种工作模式

    1. 异步模式:与UART类似,数据在没有时钟信号的情况下传输。接收端和发送端必须预先约定好波特率以确保数据的正确同步。
    2. 同步模式:USART通过外部时钟信号同步数据的传输。在这种模式下,发送和接收设备通过时钟信号共同工作,保证数据的同步传输。

    USART与UART的区别:

    C代码示例:使用UART进行串行通信

    以下是一个简单的使用UART进行串行通信的C语言代码示例:

  • 初始化UARTUART_Init函数初始化UART,并设置波特率。在这个例子中,波特率被设置为9600。
  • 发送数据:通过UART_Transmit函数将字符发送到串口。该函数会等待直到发送缓冲区为空,然后发送数据。
  • 接收数据:通过UART_Receive函数接收一个字符。此函数会阻塞,直到接收到数据。
  • 输出示例:假设程序发送字符 'A',接收并打印出来,输出是 :Received data: A
  • 总结

    • UART:适用于简单的异步通信,不依赖时钟信号,主要用于低速数据传输。
    • USART:比UART更强大,除了支持异步通信外,还可以使用同步通信模式,通过外部时钟同步数据传输,适用于更复杂的应用场景。

    6.13 RS232与RS485对比及通信连接方式

    1. RS232通信简介

    RS232是一种用于短距离数据通信的标准协议,它将TTL电平信号(0V和+5V)转换为更高的电平信号(+12V为逻辑0,-12V为逻辑1)。RS232通信通常使用一对数据线(TX和RX)和一根共地线进行连接。

    RS232的通信方式一般包括以下特点:

  • TTL与RS232电平转换:TTL信号电平(0V为逻辑0,5V为逻辑1)与RS232信号电平(-12V为逻辑1,+12V为逻辑0)不同。RS232通常使用电平转换芯片将TTL信号转换为RS232电平。
  • 抗干扰能力:相比于TTL信号,RS232的抗干扰能力有所提高,但其传输距离仍然有限,约15米左右。
  • 数据帧格式:RS232的数据帧与标准串口通信格式相同,包括起始位、数据位、奇偶校验位和停止位。
  • 缺点:

  • 信号电平较高:RS232接口的信号电平较高,可能损坏接口电路。
  • 传输距离受限:RS232的传输距离通常较短,限制在约15米左右。
  • 共地传输问题:RS232接口使用共地的传输方式,容易受到共模干扰,导致抗噪声能力差。
  • 2. RS485通信简介

    RS485是一种差分信号传输协议,解决了RS232在传输距离和抗干扰能力方面的不足。它支持长距离、多节点连接,通常用于工业控制系统中。

    RS485的通信方式通常包括以下特点:

  • 差分信号传输:RS485使用差分信号进行数据传输,即通过两根信号线(A和B)表示数据。当两根信号线的电压差为+2V到+6V时,表示逻辑“1”;当电压差为-2V到-6V时,表示逻辑“0”。
  • 抗干扰能力强:由于采用差分信号传输方式,即使信号受到外部噪声干扰,两根线的电压变化是相同的,从而使电平差保持稳定,确保数据正确传输。
  • 长距离传输:RS485的传输距离远,通常可达到1500米,且能支持多个设备同时连接(多点传输)。
  • 半双工通信:RS485接口支持半双工通信模式,即同一时间只能进行发送或接收,不能同时进行。
  • 与TTL兼容:RS485信号电平较低,因此不容易损坏接口电路,可以方便地与TTL电路进行连接。
  • 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。

    全部评论
    已老实
    点赞 回复 分享
    发布于 03-20 18:16 辽宁
    优秀
    点赞 回复 分享
    发布于 03-12 20:40 重庆

    相关推荐

    秋招不是要开始了吗,我都打算润了,看大家还在找不敢润了
    一条从:因为不是人人都像佬一样有实习像我们这种二本仔秋招没有实习也是白忙活
    点赞 评论 收藏
    分享
    点赞 评论 收藏
    分享
    兄弟们你们进大厂靠的是什么项目啊
    DOTPHTP:课设改。其实项目什么的如果不是实习里面的生产项目的话,建议✍️那种自己想要做的。突出个人自驱力,而不是为了找工作不得不随波逐流这种
    点赞 评论 收藏
    分享
    评论
    6
    12
    分享

    创作者周榜

    更多
    牛客网
    牛客网在线编程
    牛客网题解
    牛客企业服务