我是靠谱客的博主 高贵舞蹈,最近开发中收集的这篇文章主要介绍Linux I2C驱动介绍:I2C是常见的一个串行通信接口,用于连接各种外设、传感器等。I2C 总线仅仅使用 SCL、SDA 这两根信号线就实现了设备之间的数据交互。,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

介绍:I2C是常见的一个串行通信接口,用于连接各种外设、传感器等。I2C 总线仅仅使用 SCL、SDA 这两根信号线就实现了设备之间的数据交互。

I2C的体系架构:由I2C核心,I2C总线驱动,I2C设备驱动三部分构成。

I2C核心:提供I2C总线驱动和设备驱动的注册,注销。

I2C总线驱动:I2C总线驱动是对硬件中适配器的实现,适配器可让CPU控制,也可以集成在CPU内部。

I2C 设备驱动:I2C 设备驱动是对 I2C 硬件体系结构中设备端的实现,设备一般挂接在受 CPU 控制的 I2C 适配器上,通过 I2C 适配器与 CPU 交换数据。

I2C 总线驱动

I2C 总线和 platform 总线差不多,只不过 platform 总线是虚拟出来的一条总线,而 I2C 总线是实际存在的。I2C 总线驱动的重点是 I2C 适配器驱动,主要涉及到两个结构体:i2c_adapter 和 i2c_algorithm。在 Linux 内核中用 i2c_adapter 结构体来表示 I2C 适配器。i2c_algorithm 就是 I2C 适配器与 IIC 设备进行通信的方法。

向系统注册设置好的 i2c_adapter有两个函数的原型如下:
int i2c_add_adapter(struct i2c_adapter *adapter)
int i2c_add_numbered_adapter(struct i2c_adapter *adap)

删除 I2C 适配器函数:

void i2c_del_adapter(struct i2c_adapter * adap)

I2C 设备驱动

在 I2C 设备驱动中主要有两个重要的结构体:i2c_client 和 i2c_driver。i2c_client 就是描述设备信息的,i2c_driver 描述驱动内容,类似于 platform_driver。

向 Linux 内核中注册 i2c 设备函数:

nt i2c_register_driver(struct module *owner,struct i2c_driver *driver)

向 Linux 内核中注销 i2c 设备函数:

void i2c_del_driver(struct i2c_driver *driver)

 I2C 核心

1 、i2c_adapter 注册/ 注销函数
int i2c_add_adapter(struct i2c_adapter *adapter)
int i2c_add_numbered_adapter(struct i2c_adapter *adap)
void i2c_del_adapter(struct i2c_adapter * adap)
2 、i2c_driver 注册/ 注销函数
int i2c_register_driver(struct module *owner, struct i2c_driver *driver)
int i2c_add_driver (struct i2c_driver *driver)
void i2c_del_driver(struct i2c_driver *driver)

I2C硬件配置:

工作频率:100K                     工作方式:半双工

地址:8位                               通信:主从机应答

最后

以上就是高贵舞蹈为你收集整理的Linux I2C驱动介绍:I2C是常见的一个串行通信接口,用于连接各种外设、传感器等。I2C 总线仅仅使用 SCL、SDA 这两根信号线就实现了设备之间的数据交互。的全部内容,希望文章能够帮你解决Linux I2C驱动介绍:I2C是常见的一个串行通信接口,用于连接各种外设、传感器等。I2C 总线仅仅使用 SCL、SDA 这两根信号线就实现了设备之间的数据交互。所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部