Linux 的 I
2
C 体系结构分为 3 个组成部分。
(1)I
2
C 核心。
I
2
C 核心提供了 I
2
C 总线驱动和设备驱动的注册、注销方法,I
2
C 通信方法(即“algorithm”,笔者认为
直译为“运算方法”并不合适,为免引起误解,下文将直接使用“algorithm”)上层的、与具体适配器无关
的代码以及探测设备、检测设备地址的上层代码等。
(2)I
2
C 总线驱动。
I
2
C 总线驱动是对 I
2
C 硬件体系结构中适配器端的实现,适
配器可由 CPU 控制,甚至可以直接集成在 CPU 内部。
I
2
C 总线驱动主要包含了 I
2
C 适配器数据结构 i2c_adapter、I
2
C
适配器的algorithm数据结构i2c_algorithm和控制I
2
C 适配器产生
通信信号的函数。
经由 I
2
C 总线驱动的代码,我们可以控制 I
2
C 适配器以主
控方式产生开始位、停止位、读写周期,以及以从设备方式被
读写、产生 ACK 等。
(3)I
2
C 设备驱动。
I
2
C 设备驱动是对 I
2
C 硬件体系结构中设备端的实现,设备
一般挂接在受 CPU 控制的 I
2
C 适配器上,通过 I
2
C 适配器与
CPU 交换数据。
I
2
C 设备驱动主要包含了数据结构 i2c_driver 和 i2c_client,
我们需要根据具体设备实现其中的成员
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !