欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

橙色 Pi 5 嵌入式应用程序编程] - 用户空间 I2C 通信

最编程 2024-10-04 21:18:45
...

用户空间I2C通信

文章目录

  • 用户空间I2C通信
    • 1、理解I2C协议
      • 1.1 什么是I2C协议
      • 1.2 I2C协议如何工作
      • 1.3 I2C数据传输步骤
      • 1.4 单主机多从机
      • 1.5 多主机多从机
      • 1.6 I2C的优缺点
    • 2、嵌入式Linux系统中的I2C
    • 3、Orange Pi 5的I2C配置及编程
      • 3.1 I2C配置
      • 3.2 I2C通信实现
        • 3.2.1 I2C通信函数定义
        • 3.2.2 I2C通信函数实现

1、理解I2C协议

1.1 什么是I2C协议

I2C或IC间通信是嵌入式系统中非常常见的低速通信方法。I2C 的最大优势在于易于实现,被半导*造商广泛采用,并且能够在同一总线上轻松添加多个节点,从而实现更高效的设计(甚至可能更具成本效益)。I2C由飞利浦半导体公司定义,后来被恩智浦半导体公司收购。I2C 基本上是主从总线,是纯粹的半双工。

I2C 是一种简单的低速 2 线总线,在嵌入式板上很常见,通常用于访问不在 SoC 上的外设,例如显示控制器、摄像头传感器、GPIO 扩展器等。在PC上可以找到一种称为系统管理总线(System Manager Bus,SMBus)的相关标准,用于访问温度和电压传感器。SMBus 是 I2C 的一个子集。

I2C 是一种主从协议,主设备是 SoC 上的一个或多个主机控制器。 从设备具有制造商分配的 7 位地址(阅读数据表),每条总线最多允许 128 个节点,但保留了 16 个节点,因此实际上只允许 112 个节点。主设备可以与其中一个从设备发起读取或写入事务。通常,第一个字节用于指定从机上的寄存器,其余字节是从该寄存器读取或写入该寄存器的数据。

推荐阅读