Linux I2C 总线驱动分析 Linux I2C 总线驱动分析是 Linux 驱动程序中非常重要的一部分。I2C 总线驱动是对 I2C 硬件体系结构中的适配器端的实现,主要包含了 I2C 适配器数据结构 i2c_adapter、I2C 适配器的 algorithm 数据结构 i2c_algorithm 和控制 I2C 适配器产生通信信号的函数。 I2C 总线驱动的职责是为系统中每个 I2C 总线增加相应的读写方法。但是总线驱动本身并不会进行任何的通讯,它只是存在在那里,等待设备驱动调用其函数。 Linux 的 I2C 体系结构分为三个组成部分:I2C 核心、I2C 总线驱动和 I2C 设备驱动。 I2C 核心提供了 I2C 总线驱动和设备驱动的注册、注销方法,I2C 通信方法(即“algorithm”)上层的、与具体适配器无关的代码以及探测设备、检测设备地址的上层代码等。这部分是与平台无关的。 I2C 适配器是 struct,用于抽象一个物理 I2C 总线,而且还和 Linux 设备驱动架构柔和在一起。如果只说硬件的话,就是在 CPU 内部集成的一个 I2C 控制器(提供给用户的就是那几个 register),硬件上并没有所谓的 adapter,client 这些东西,adapter 和 client 都是 Linux 驱动软件抽象出来的东西。 struct i2c_adapter 中包括了多个成员变量,如 owner、id、class、algo、algo_data 等。algo 是一个指向 i2c_algorithm 结构体的指针,i2c_algorithm 结构体中包括了多个函数指针,如 master_xfer、smbus_xfer 等,这些函数指针是用来访问 I2C 总线的。 probe 是 I2C 设备驱动中非常重要的一个步骤,在 probe 中,我们需要根据设备的地址等信息来探测设备,并注册设备驱动。这一步骤非常重要,因为它决定了设备驱动的生命周期。 在 Linux 中,I2C 设备驱动的实现主要通过 struct i2c_driver 和 struct i2c_client 来实现。struct i2c_driver 中包括了设备驱动的注册、注销方法,以及设备驱动的探测和初始化方法。struct i2c_client 中包括了设备的地址、名称、驱动程序等信息。 Linux I2C 总线驱动分析是 Linux 驱动程序中非常重要的一部分,对于设备驱动和总线驱动的实现非常重要。
剩余11页未读,继续阅读
- zhouxinlin20092014-05-21还可以,有一定参考价值
- yxp13142015-12-02很不错,解决了我的疑惑
- haozhijian5945472013-08-22很好的文章,学习学习
- 粉丝: 9
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于JavaScript的水果超市前端设计源码
- 基于Android Studio的Java实现热点新闻APP设计源码
- 基于TypeScript、Python和JavaScript的多语言工具设计源码
- 三相SVG、APF静止无功补偿器 静止无功补偿器、有源电力滤波器 并联型APF 有源电力滤波器 Matlab Simulink仿
- 基于分布式驱动电动汽车的路面附着系数估计,分别采用无迹卡尔曼滤波和容积卡尔曼滤波对电动汽车四个车轮的路面附着系数进行估计 本模
- 基于Python、HTML、Shell的多功能WRF模式结果后处理设计源码
- 基于Python、HTML、JavaScript和CSS的cheetahfresh在线商城设计源码
- 双馈风机并网储能 电网频率支撑一次调频仿真 双馈风力发电机结合并网储能系统实现电网频率支撑仿真,包含完整的MATLAB Simu
- 基于Vue和Spring Boot的星云工资管理系统设计源码
- 基于Python语言的小学期课程设计源码