|
11| 5
|
[项目] 【花雕动手做】CanMV K230 AI视觉识别模块之使用 I2C 通讯 |
![]() 什么是 CanMV K230? CanMV K230是一款高性价比的RISC-V边缘AI平台,凭借低功耗、强视觉处理能力和开放的开发生态,成为嵌入式AI开发的理想选择,尤其适合需要快速部署视觉与AI功能的创客、中小企业及教育场景。CanMV 是一套 AI 视觉开发平台,K230 是其核心芯片。该模块结合了图像采集、AI推理、边缘计算等能力,适合嵌入式视觉应用开发。 CanMV:类似 OpenMV 的图像处理框架,支持 Python 编程,简化视觉识别开发流程。 K230 芯片:嘉楠科技推出的 AIoT SoC,采用 RISC-V 架构,内置第三代 KPU(AI加速单元),算力高达 6 TOPS,性能是 K210 的 13.7 倍。 ![]() |
|
什么是IIC (I2C, I²C) ? I²C(Inter-Integrated Circuit,也常写作 I2C 或 IIC)是一种由飞利浦(现恩智浦 / NXP)开发的短距离串行通信总线协议,主要用于连接集成电路(IC)之间的低速数据传输,其核心特点是通过两条线实现多设备间的通信,结构简单、成本低、扩展性强。 1、核心组成与工作原理 物理线路仅需两条双向信号线: SDA(Serial Data):串行数据线,用于传输实际数据。 SCL(Serial Clock):串行时钟线,由主设备(如 Arduino、MCU)提供时钟信号,同步数据传输节奏。 此外,所有设备需共地(GND),总线上通常接有上拉电阻(一般 4.7kΩ),确保空闲时线路处于高电平。 主从架构 主设备(Master):发起通信、控制时钟信号、决定数据传输方向(读 / 写),同一总线上可有多个主设备(需仲裁机制避免冲突)。 从设备(Slave):被动响应主设备的指令,每个从设备有唯一的 7 位或 10 位地址(7 位地址最常用,支持最多 128 个设备),通过地址被主设备选中。 通信过程基本流程为:主设备发送起始信号(SDA 从高到低,SCL 保持高电平)→ 发送从设备地址 + 读写位(1 位,读 = 1,写 = 0)→ 从设备返回应答信号(ACK)(SDA 拉低)→ 传输数据(每字节 8 位,后跟 ACK)→ 主设备发送停止信号(SDA 从低到高,SCL 保持高电平)。 2、主要特点 简单经济:仅需 2 根线,减少布线复杂度,适合小型设备(如传感器、OLED 屏、EEPROM)。 多设备支持:通过唯一地址区分从设备,总线上可挂接多个设备(受总线电容限制,通常建议不超过 10 个)。 低速传输:标准模式(100kbps)、快速模式(400kbps)、高速模式(3.4Mbps),适合非实时性数据(如温湿度、光照传感器数据)。 半双工通信:同一时间只能单向传输数据(主到从或从到主)。 3、典型应用场景 嵌入式系统:Arduino 与 OLED 屏(如 SSD1306)、温湿度传感器(如 SHT30)、加速度计(如 MPU6050)的通信。 消费电子:智能手机中的传感器模块(陀螺仪、磁力计)与主控芯片的连接。 工业控制:小型传感器(压力、液位)与 PLC 的低速数据交互。 存储设备:EEPROM(电可擦除存储器)与 MCU 的数据读写(如 AT24C02)。 4、与其他总线的对比 相比SPI:I²C 线数更少(2 线 vs SPI 的 4 线),但速度更低,适合轻量场景;SPI 支持全双工,速度更快(可达几十 Mbps)。 相比UART:I²C 支持多设备,而 UART 通常是点对点通信,且无需定义波特率(依赖时钟同步)。 总之,I²C 是一种 “以简单换效率” 的总线协议,在低速、多设备的短距离通信中应用广泛,尤其适合资源受限的嵌入式系统。 ![]() ![]() |
项目测试实验代码 |
|
关键知识点补充: 1、I2C总线特点: 双线制(SCL时钟线 + SDA数据线) 多主多从架构 地址寻址通信 2、SSD1306显示屏: 常见的128x32或128x64分辨率OLED驱动芯片 使用I2C接口时默认地址通常是0x3C或0x3D 3、FPIOA的重要性: K230芯片的特色功能,引脚功能可编程 必须正确配置才能使用各种外设功能 提供了极大的硬件连接灵活性 4、双缓冲显示: 绘图操作先在内存缓冲区进行 show()方法将缓冲区内容一次性发送到显示屏 避免闪烁,提高显示效率 这个示例完整展示了从硬件配置到应用层操作的完整I2C设备驱动流程。 |
沪公网安备31011502402448© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed