亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 工业技术

SPI I2C UART- 通信协议和使用

微控制器开发是电子组装中的一个重要过程。但是串行协议和通信接口的输入促进了这项工作。在本文中,我们打算详尽探索SPI I2C UART接口和UART等串行通信协议。我们将分析串行协议的特性、优点、缺点和示例。

1。 UART接口

什么是UART?

图 1:Arduino 上的 UART 协议

通用异步接收和传输( UART ) 是一种串行通信协议,便于主机与辅助设备进行通信。首先,它支持串行数据传输。此外,它还具有异步通信和双向传输的能力。

简单协议还具有两条数据线:处理传输 (Tx) 和其他信号接收 (Rx)。通常情况下,信号是通过数字引脚 0 发送,而接收是通过数字引脚 1。

此外,它还有助于同步管理计算机和外部串行设备。

它是如何工作的?

图 2:DIY 电子 USB UART 板

本质上,UART通过以下方式管理两个设备之间的信号通信:

单工涉及单向数据传输,而半双工意味着两个设备之间在任一方向上的非同时通信。最后,全双工需要在任一方向上同时传输数据。

一般情况下,连接后,从发送 UART 的数据线到接收 UART 会有数据传输。它通过以下原理发生;

  1. 首先,发送 UART 会将主设备的并行数据转换为串行形式,以传输到接收 UART。同样,接收 UART 将串行数据更改为并行数据,以供连接的接收设备使用。
  2. 由于 UART 需要异步通信,它没有时钟。因此,UART 将生成开始和停止位来指示消息的开始和结束。
  3. 两个 UART 必须以相同的波特率或 UART 数据传输速度运行。理想情况下,这是为了确保数据位的准确时序,因为超过 10% 的差异会使数据无用。

UART 工作协议

数据传输和接收

  1. 对于传输,发送 UART 需要从数据总线(例如 CPU)接收数据。
  2. 接下来,它添加三个位,即起始位、奇偶校验位和停止位。三者将形成一个数据包,通过 TX 引脚发送到接收 UART。
  3. 在发送 UART 中的数据用完后,数据传输停止。

中断控制

数据中断在自动发送缓冲区内容时很方便。以下情况可能会提示中断控制:

先进先出操作

图 3. Arduino 上的 UART 接口

Stellaris 系列 UART 模块具有两个 16 字节 FIFO,一个用于数据接收,另一个用于传输。此外,您可以在不同的深度配置它们以提供不同的中断。例如,你可能有 1/8 深度、1/4 深度、1/2 深度等。

发送FIFO的工作流程

  1. 首先,数据传输在数据输入后开始。此外,由于耗时,数据输入是连续的,直到发送 FIFO 已满。
  2. 填满后,您必须停止数据输入,以免丢失所有新数据。
  3. 接下来,发送 FIFO 会逐位发送数据,直到为空。最后,发送 FIFO 将创建一个额外的插槽。

接收FIFO的工作流程

  1. 硬件接收到上述步骤的数据后,将其存储在接收FIFO中。理想情况下,接收 FIFO 程序接收和擦除数据是一个自动过程。因此,接收 FIFO 中应有足够的空间。
  2. 它还具有一个收发器 FIFO,这对于解决 CPU 效率低下问题至关重要。此外,它有助于解决频繁的 UART 收发器中断问题。
  3. 最后,FIFO 不会丢失数据,因为它预先密封了所有可能的丢失途径。

环回

UART 有一个内部环回,用于调试和诊断 RX 输入将在何处接收发送的数据。

串行红外协议

UART 具有作为编码器/解码器模块运行的 IrDA 串行红外 (SIR)。它在转换半双工串行 SIR 接口和异步 UART 数据流时非常方便。

此外,串行通信协议向 UART 提供解码输入和数字编码输出。

使用 UART 的优势

  1. 简单的通信协议是一个文档齐全且易于使用的模块。
  2. 其次,它不需要串行时钟线。
  3. 第三,它有一个奇偶校验位,可以进行错误检查。

使用 UART 的缺点

  1. UART 接口的数据帧大小限制为 9 位,并且传输速度较慢。
  2. 此外,它无法使用许多主系统和从设备。
  3. 此外,它还具有 10% 以内的强制波特率,以防止数据丢失。
  4. 第四,设备之间的数据传输速度通常较慢。

微控制器中的 UART 示例

2。 I2C接口

什么是 I2C?

图 4:使用 I2C 的差压传感器

内部集成电路 (I2C) 通信协议类似于 UART。但是,虽然 UART 被指定用于 PC 设备通信,但 I2C 在传感器和模块应用中很有用。

此外,双向两线同步串行总线可以连接多个设备,而不会影响通信路径。这要归功于它的共享总线和地址系统属性。

但与 SPI 相比,此功能的代价是设备之间的通信相对较慢。它的速度取决于外部噪声、线路质量和数据速度。

最后,两线接口可以连接低速设备,例如 EEPROM、模拟/数字转换器和微控制器。

它是如何工作的?

I2C 协议具有两条线:串行数据线接受端口 (SDA) 和串行时钟线 (SCL)。 SCL 促进传输同步,而 SDA 代表用于发送和接收数据位的数据线。

传输过程中,主设备提示总线数据传输。同时,它会生成一个时钟来打开传输设备。在这种情况下,传输中的寻址设备是从设备。

值得注意的是,主设备和从设备不具有恒定的数据传输速率。相反,它们的关系依赖于传输时的数据传输方向。

此外,单个主设备必须在开始数据传输之前通知从选择设备。同样,它需要在从从站接收数据之前通知从站。

将上拉电阻连接到 I2C 电源以实现最佳功能也很重要。

I2C 工作协议

图5:A针0.96寸OLED 128X64 OLED显示模块IIC I2C

数据传输方式

连接过程如下:

  1. 主要通过将 SDA 线从高电压电平切换到低电平,主输出将向连接的从设备发送传输信号。接下来,它将 SCL 线从高电压电平切换到低电平。
  2. 然后,主设备发送 7 位或 10 位地址并向每个从设备读取/写入位。
  3. 第三,奴隶将地址与自己的地址进行比较。如果匹配,它将返回一个 ACK​​ 位,将 SDA 线切换为低电平。但是,如果它们不匹配,从机将使 SDA 线保持高电平。
  4. 接下来,主机发送或接收数据帧(取决于匹配的地址)。然后,在完成数据传输后,接收组件向数据发送方返回一个 ACK​​ 位。它是确认一个完整的传输。
  5. 最后,主控将 SCL 切换为高电平,然后将 SDA 切换为通信结束。

时钟同步

每个主机都必须在 SCL 线路中生成其时钟信号以进行数据传输。此外,只有在时钟的高电平期间,数据才在 I2C 传输中保持有效。

传输模式

它主要通过两种方式传输,即:

快速模式

快速模式下的设备以 400kbit/s 的速率接收和传输数据。此外,快速模式 I2C 总线可以显着抑制毛刺,其输出具有斜率控制功能。

高速模式

高速模式下的 I2C 总线将以 3.4 Mbit/s 的比特率发送/接收数据。因此,它具有比以前的快速模式更快的数据传输速率。

I2C 的优势

  1. 即使您在主设备上连接了许多设备,它的引脚/信号数量也非常有限。
  2. 其次,I2C 设备凭借其多主设备和多从设备功能提供了灵活性。
  3. 此外,它使用起来也很简单,因为您只需要两条双向线即可连接到众多设备。
  4. 此外,它提供了广泛的适应性,还可以支持众多大师。

I2C的缺点

  1. 它的速度比较慢,必须使用上拉电阻,不像SPI只需要推挽电阻。此外,其开漏设计会降低其速度。
  2. 此外,电阻器占用的空间在 PCB 组装中至关重要。
  3. 当您连接了许多设备时,它并不容易使用。

微控制器中的 I2C 示例

3。 SPI接口

什么是 SPI?

图 6:SPI 接口在显示模块中很方便。

串行外设接口 (SPI) 被指定用于微控制器。此外,由于它以全双工方式工作,因此可以同时传输和接收数据。

SPI相对比I2C快,数据传输率至少为8位。首先,该模块的简单协议可实现更快的数据速率。因此,它在需要速度的应用中非常重要,例如显示模块和 SD 卡。

它在涉及信息突然变化的应用中也很重要,例如温度计。

它是如何工作的?

图 7:SD 卡使用 SPI

SPI 形式的设备将以以下两种方式之一运行:

您可以在 SPI 接口中连接任意数量的设备。但是,在大多数情况下,您会受到可用硬件选择行的限制。最后,在点对点通信期间,模块不需要寻址操作。

SPI 工作协议

SPI通过四个端口起作用,分别是:

  1. 主数据输出,从数据输入 (MOSI)
  2. 主数据输入,从数据输出 (MISO)
  3. 时钟信号 (SCLK)
  4. 启用从属信号 (NSS)

当使用多从机系统时,每个从机都需要一个唯一的使能信号。与 I2C 通信相比,此要求使硬件要求复杂化。

此外,SPI 接口具有两个移位寄存器。它允许在单个主设备(例如 CPU)与外围设备之间进行同步串行数据传输。

使用 SPI 的优势

  1. 它使用简单,因为与 I2C 不同,它缺少复杂的从机寻址系统。
  2. 其次,它是我们介绍的所有串行接口中速度最快的协议(比 UART 和 I2C 更快)。
  3. 它没有像 UART 通信那样的开始和停止位。因此,它允许连续的数据传输而不会中断。
  4. 最后,它具有独立的 MISO 和 MOSI 线路,可以同时发送和接收数据。

使用 SPI 的缺点

  1. 它的大部分 Pin 端口都被占用,这限制了您可以连接的设备数量。
  2. 此外,它缺少指定的流控制,并且与 I2C 不同,它没有确认数据已发送/接收的机制。
  3. 它需要使用 4 行,正如我们在上面强调的那样,并且与 UART 不同,它缺少错误检查机制。
  4. 第四,它还有一个主控。

微控制器中的 SPI 示例

比较 UART、I2C 和 SPI

这些通信外围设备中哪一个是“最好的”? UART、SPI 还是 I2C?

这三者中没有出色的通信外围设备,因为每个都有其主要的优点和缺点。因此,根据您的项目选择最适合的协议。例如,如果您正在寻找速度,SPI 将为您提供最佳服务。

但是,如果您想在没有复杂阵列的情况下连接大量设备,请选择 I2C。

结论

我们已经揭示了您需要了解的有关 UART、I2C 和 SPI 通信接口及其各种传输速率的所有关键见解。此外,我们在这里回答有关通信协议的任何疑问。联系我们,我们会立即为您提供帮助。


工业技术

  1. MQTT 和 DDS:物联网中的机器对机器通信
  2. 数据流
  3. 光数据通信
  4. 网络协议
  5. 数字记忆术语和概念
  6. 开发板 – 突破 Pi – I2C、UART、GPIO 等
  7. 14 纳米技术的不熟悉用途 |优点和应用
  8. 什么是银钎焊?- 工艺、棒材和用途
  9. 数据驱动制造:优势、挑战和策略
  10. 自动化数据摄取和优化决策
  11. 木材的种类及其用途
  12. 钨的过去和现在的用途