I2C SW Architecture
【driver 驱动层】由普通驱动工程师负责,【i2c 核心层】由 Linux 提供,【i2c 核心层】以下由芯片原厂负责。
I2C 子系统通过 i2c-core 将 i2c 设备驱动和 i2c 总线驱动进行了分离,从而使得 i2c 设备驱动中不用关心 i2c 总线传输细节,专注于 i2c 设备逻辑的实现。
抽象如下:
I2C 总线驱动重点是 I2C 适配器(控制器)驱动,这里用到两个重要的数据结构:i2c_adapter 和 i2c_algorithm。其中,Linux 内核将 SOC 的 I2C 适配器(控制器)抽象成 i2c_adapter,i2c_algorithm 只是一些 i2c 传输的实现函数合集。
在 Linux 系统中有如下节点:
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
子系统
+关注
关注
0文章
100浏览量
12265 -
I2C
+关注
关注
28文章
1347浏览量
120846
发布评论请先 登录
相关推荐
I2C规范,I2C总线原理
................................................... 3518 F/S 模式I2C 总线系统的双向电平转换器
发表于 04-09 18:34
MSP430的I2C通信
+ BIT7;// Assign I2C pins to USCI_B0UCB0CTL1 |= UCSWRST; // Enable SW resetUCB0CTL0 = UCMST + UCMODE_3
发表于 03-17 20:56
请问EVM6657的I2C boot模式开关中SW5 (Pins [6:4])的含义是什么?
])=与I2C无关SW5 (Pins [1:3])=与I2C无关SW5 (Pins [4])=Speed?SW5 (Pins [5])=Ad
发表于 06-25 03:52
PIC32MK I2C E12和E13由I2C4控制
1024MCF064)没有任何影响。只有I2C4,SDA始终是Low和SCL高。有人已经在PIC32 MK上实现这个模块(甚至使用和声,PLIB不工作)?似乎只有一种方法是使用SW解决方案?我需要I2C来配置一些组件
发表于 11-19 10:43
I2C简介
与 SMBus 2.0 兼容。它可以用于多种用途,包括 CRC 生成和验证、 SMBus(系统管理总线)以及 PMBus(电源管理总线)。根据器件的不同,可利用 DMA 功能来减轻 CPU 的工作量二.IIC物理层它是一个支持多设备的总线。“总线”指多个设备共用的信号线。在一个
发表于 08-10 08:10
I2C的简介
的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。I2C是半双工通信I2C只有两根双向通信线: 一根是时钟线SCL, 一根是数据线SDAI2C总线通过上拉电阻接电源
发表于 08-20 06:58
什么是软件I2C和硬件I2C
学习I2C总线通信协议,完成基于I2C硬件协议的AHT20温湿度传感器的数据采集,并将采集的温度-湿度值通过串口输出。具体任务:1)解释什么是“软件I2C”和“硬件I2C”? (阅读野
发表于 08-23 06:19
I2C使用步骤
Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要 USART、CAN 等通讯协议的外部收发设备现在被广泛地使用在系统内多个集成电路(IC)间的通讯。软件I2C将芯片的两个
发表于 08-23 06:22
linux I2C子系统的相关资料分享
文章目录linux I2C子系统框架在设备树中添加从设备信息,mpu5060I2C driver 程序的编写mpu6050 I2C程序具体实现linux
发表于 02-10 06:06
评论