【自动驾驶汽车通讯协议】I2C(IIC)总线通讯技术详解

文章目录

      • [0. 前言](#0. 前言)
      • [1. I2C简介](#1. I2C简介)
      • 2.I2C的工作原理
        • [2.1 硬件要求:](#2.1 硬件要求:)
        • [2.2 半双工通信:](#2.2 半双工通信:)
      • [3. 通信时序](#3. 通信时序)
      • [4. 其他特性](#4. 其他特性)
        • [4.1 通信速率](#4.1 通信速率)
        • [4.2 抗干扰措施](#4.2 抗干扰措施)
        • [4.3 注意事项](#4.3 注意事项)
      • [5. 在自动驾驶汽车中的应用](#5. 在自动驾驶汽车中的应用)
        • [5.1 I2C操作模式](#5.1 I2C操作模式)
        • [5.2 I2C的用途](#5.2 I2C的用途)
      • [6. 总结](#6. 总结)

0. 前言

按照国际惯例,首先声明:本文只是我自己学习的理解,虽然参考了他人的宝贵见解及成果,但是内容可能存在不准确的地方。如果发现文中错误,希望批评指正,共同进步。

I2C(Inter-Integrated Circuit Communication,也写作IIC,或I 2 ^2 2C,读成"I方C")通讯是一种广泛应用的串行通信协议,通过总线连接微控制器与多个外围设备。由于其简单的设计和较低的成本,I2C成为了许多嵌入式系统中首选的通信方式之一。本文将详细介绍I2C通信的基本原理、工作方式、时序要求以及实际应用中的注意事项。

1. I2C简介

I2C是由NXP(前身为Philips)开发的一种两线式串行总线标准 ,用于连接单片机及其多个外围设备。I2C的主要特点是只需要两条信号线:SCL(时钟线)和SDA(数据线),并且支持多主控模式 ,即多个设备可以轮流担任主控角色。

2.I2C的工作原理

2.1 硬件要求:
  • SCL:用于同步数据传输的时钟信号。
  • SDA:用于数据的双向传输。
  • 上拉电阻:连接到电源,保证线路处于高电平时的数据稳定性。
  • 共地:所有设备必须共享同一接地参考点。
2.2 半双工通信:

I2C是一种半双工通信方式,意味着在同一时刻,数据线只能用于发送或接收数据,不能同时进行。

  • 主从模式:
    主设备:控制整个通信过程,包括产生时钟信号和发起通信。
    从设备:响应主设备的请求,接收或发送数据。
  • 寻址机制:
    每个从设备都有一个唯一的7位地址。
    主设备通过地址选择特定的从设备进行通信。

3. 通信时序

I2C通信的时序主要包括以下几个关键阶段:

  1. 开始信号:SCL保持高电平,SDA从高电平变为低电平。

  2. 地址传输:通信开始时,主设备发送从设备的地址,以选择通信目标。

  3. 数据传输:数据字节传输:每个字节传输后需要跟随一个应答位。

  4. 应答位:从设备接收到一个字节后,返回一个应答位(ACK,Acknowledgment)表示接收成功,或非应答位(NACK,Not Acknowledgment)表示接收失败。

  5. 停止信号:SCL保持高电平,SDA从低电平变为高电平。

4. 其他特性

4.1 通信速率

标准模式:最高可达100 kbps。

快速模式:最高可达400 kbps。

高速模式:某些设备支持高达1 Mbps甚至更高。

4.2 抗干扰措施

上拉电阻的选择:根据通信距离和所需速度选择合适的上拉电阻值。

屏蔽线缆:在长距离或电磁干扰严重的环境中使用屏蔽线缆。

4.3 注意事项

上拉电阻的稳定性:确保电源稳定,以减少干扰。

最大设备数量:理论上最多可连接128个设备,但实际应用中受限于总线负载能力。

总线冲突:多主模式下需注意避免总线冲突。

5. 在自动驾驶汽车中的应用

在 AGX Orin SOM(系统级模块)配备了8个通用I2C控制器,可以扩展系统以支持基于I2C的设备。I2C6端口还可以用作DP AUX(DisplayPort辅助通道)或传统的I2C功能。

5.1 I2C操作模式

I2C控制器支持以下几种操作模式:

  • 标准模式 (Sm, 最高速率可达100 Kbit/s)
  • 快速模式 (Fm, 最高速率可达372 Kbit/s)
  • 快速模式+ (Fm+, 最高速率可达985 Kbit/s)

这些模式允许与不同速度等级的设备进行通信。

5.2 I2C的用途

在AGX Orin中,I2C可以用于多种用途,包括但不限于:

  • 传感器连接:用于连接温度传感器、加速度计等。
  • 配置外设:配置GPIO(通用输入输出)扩展器或电源管理芯片。
  • 读取EEPROM:从非易失性存储器中读取设备配置信息。
  • 监控电源状态:监控电压水平、电流消耗等。
  • 连接显示接口:某些显示器或触摸屏控制器可能使用I2C进行配置。

6. 总结

I2C通信以其简洁的设计和高效的数据传输能力,在嵌入式系统中占据重要地位。理解和掌握I2C的工作原理可以帮助开发者更好地利用这一协议来构建可靠且高效的通信系统。

相关推荐
可待电子单片机设计定制(论文)2 小时前
【STM32设计】数控直流稳压电源的设计与实现(实物+资料+论文)
stm32·嵌入式硬件·mongodb
小麦嵌入式3 小时前
Linux驱动开发实战(十一):GPIO子系统深度解析与RGB LED驱动实践
linux·c语言·驱动开发·stm32·嵌入式硬件·物联网·ubuntu
触角010100014 小时前
STM32F103低功耗模式深度解析:从理论到应用实践(上) | 零基础入门STM32第九十二步
驱动开发·stm32·单片机·嵌入式硬件·物联网
昊虹AI笔记5 小时前
使用STM32CubeMX和Keil在STM32上创建并运行一个简单的FreeRTOS多任务程序
stm32·单片机·嵌入式硬件
王光环5 小时前
单片机使用printf,不用微库
单片机·嵌入式硬件
LS_learner5 小时前
小智机器人关键函数解析,Application::OutputAudio()处理音频数据的输出的函数
人工智能·嵌入式硬件
西城微科方案开发6 小时前
体重秤PCBA电路方案组成结构
单片机·嵌入式硬件
集和诚JHCTECH6 小时前
集和诚携手Intel重磅发布BRAV-7820边缘计算新品,为车路云一体化场景提供强大算力支撑
人工智能·嵌入式硬件·边缘计算
Qingniu017 小时前
「青牛科技」GC5849 12V三相无感正弦波电机驱动芯片
科技·单片机·嵌入式硬件·cpu散热风扇·vga显卡散热风扇·rgb机箱散热风扇·水冷泵及散热风扇
charlie1145141917 小时前
STM32F103C8T6单片机硬核原理篇:讨论GPIO的基本原理篇章1——只讨论我们的GPIO简单输入和输出
c语言·stm32·单片机·嵌入式硬件·gpio·数据手册