前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux系统驱动之I2C系统的重要结构体

Linux系统驱动之I2C系统的重要结构体

作者头像
韦东山
发布2021-12-08 10:39:19
1.9K0
发布2021-12-08 10:39:19
举报
文章被收录于专栏:韦东山嵌入式

资料下载

coding无法使用浏览器打开,必须用git工具下载:

代码语言:javascript
复制
git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git

视频观看

百问网驱动大全

I2C系统的重要结构体

参考资料:

  • Linux驱动程序: drivers/i2c/i2c-dev.c
  • I2CTools: https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/

1. I2C硬件框架

在这里插入图片描述
在这里插入图片描述

2. I2C传输协议

  • 写操作
在这里插入图片描述
在这里插入图片描述
  • 读操作
在这里插入图片描述
在这里插入图片描述

3. Linux软件框架

在这里插入图片描述
在这里插入图片描述

4. 重要结构体

使用一句话概括I2C传输:APP通过I2C Controller与I2C Device传输数据。

在Linux中:

  • 怎么表示I2C Controller
    • 一个芯片里可能有多个I2C Controller,比如第0个、第1个、……
    • 对于使用者,只要确定是第几个I2C Controller即可
    • 使用i2c_adapter表示一个I2C BUS,或称为I2C Controller
    • 里面有2个重要的成员:
      • nr:第几个I2C BUS(I2C Controller)
      • i2c_algorithm,里面有该I2C BUS的传输函数,用来收发I2C数据
    • i2c_adapter
在这里插入图片描述
在这里插入图片描述

5. 内核里怎么传输数据

使用一句话概括I2C传输:

  • APP通过I2C Controller与I2C Device传输数据
  • APP通过i2c_adapter与i2c_client传输i2c_msg
  • 内核函数i2c_transfer
    • i2c_msg里含有addr,所以这个函数里不需要i2c_client
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/08/25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 资料下载
  • 视频观看
  • I2C系统的重要结构体
    • 1. I2C硬件框架
      • 2. I2C传输协议
        • 3. Linux软件框架
          • 4. 重要结构体
            • 5. 内核里怎么传输数据
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档