【转】 Linux IIO子系统分析-1-概述

原文网址:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=20543672&id=2976189

最近稍微看了下LKML,发现里面有一个子系统叫做“IIO”。以前没有接触过,所以Google了下。

IIO子系统全称是 Industrial I/O subsystem(工业 I/O 子系统),现在还处在有待完善的阶段,在内核树中位于drivers/staging/iio目录下。

根据内核说明文档的描述:工业I/O子系统旨在提供那些在某种意义上作为模数转换器(ADC)的设备支持。此子系统的目的在于填补那些分类时处在hwmon(硬件监视器)和输入子系统之间的设备类型。在某些情况下,IIO和hwmon、Input之间的相当大的重叠。

属于IIO的设备如下(参考ADI的WiKi):

  1. ADCs(模数转换器)
  2. 加速度传感器
  3. 陀螺仪
  4. IMUs(惯性测量单位)
  5. 电容-数字转换器(CDCs)
  6. 压力、温度和光线传感器

从源码的目录中可以看出,还有:磁力计传感器、电能功率计、旋变数字转换器

      可以看出这些外设的确都是工业领域使用的,当然其中的部分在其他领域也用到了,比如

  1. 加速度传感器、陀螺仪、温度和光线传感器在移动设备(手机、平板)中也有广泛应用。
  2.  

IIO主要框架如下(ADI的WiKi内容):

对于IIO的介绍,ADI的WiKi讲的比较的清楚,我顺手将这个文档翻译成了中文,分享如下:

 IIO Overview.pdf.rar

内核说明文档也是极有参考价值的,并且较为详细。位置:drivers/staging/iio/Documentation

我也顺手翻译了一下其中的overview.txt文件,分享如下:

 IIO_overview.txt.pdf.rar

这里只是简单的了解一下这个系统。以后,我会继续分析这个系统,翻译内核文档,再写分析文档。

时间: 2024-10-05 05:50:17

【转】 Linux IIO子系统分析-1-概述的相关文章

Linux IIO子系统分析

最近稍微看了下LKML,发现里面有一个子系统叫做“IIO”.以前没有接触过,所以Google了下. IIO子系统全称是 Industrial I/O subsystem(工业 I/O 子系统),现在还处在有待完善的阶段,在内核树中位于drivers/staging/iio目录下. 根据内核说明文档的描述:工业I/O子系统旨在提供那些在某种意义上作为模数转换器(ADC)的设备支持.此子系统的目的在于填补那些分类时处在hwmon(硬件监视器)和输入子系统之间的设备类型.在某些情况下,IIO和hwmo

【转】 linux iio子系统

原文网址:http://blog.csdn.net/tsy20100200/article/details/47101661 最近由于工作的需要,接触了Linux iio子系统,对于这个目录其实以前是很少接触,接下了对 Linux iio 子系统进行分析. 1.首先 iio子系统在内核树中位置:drivers/staging/iio 详细的iio子系统说明文档位置:drivers/staging/iio/Documentation(文档是个好东西,详细阅读文档,有利于更深层次的理解iio子系统)

全网络对Linux input子系统最清晰、详尽的分析

Linux input分析之二:解构input_handler.input_core.input_device 输入输出是用户和产品交互的手段,因此输入驱动开发在Linux驱动开发中很常见.同时,input子系统的分层架构思想在Linux驱动设计中极具代表性和先进性,因此对Linux input子系统进行深入分析很有意义. 本文继续在<Linuxinput子系统分析之一:软件分层>的基础上继续深入研究Linux输入子系统的分层架构思想以及其实现.软件分层探讨的是输入消息从底层硬件到内核.应用层

Linux输入子系统框架分析(1)

在Linux下的输入设备键盘.触摸屏.鼠标等都可以用输入子系统来实现驱动.输入子系统分为三层,核心层和设备驱动层,事件层.核心层和事件层由Linux输入子系统本身实现,设备驱动层由我们实现.我们在设备驱动层将输入事件上报给核心层input.c,核心层找到匹配的事件层,将事件交给事件层处理,事件层处理完后传递到用户空间. 我们最终要搞清楚的是在用户空间调用open和read最终在内核中是怎样处理的,向内核上报的事件又是谁处理的,处理完后是怎样传递到用户空间的? 上面两个图是输入子系统的框架. 下面

linux kernel input 子系统分析

Linux 内核为了处理各种不同类型的的输入设备 , 比如说鼠标 , 键盘 , 操纵杆 , 触摸屏 , 设计并实现了一个对上层应用统一的试图的抽象层 , 即是Linux 输入子系统 . 输入子系统的层次结构体如下 从底层到上层 , input 子系统由 设备驱动层 , 核心层 , 以及事件处理层3个部分组成 当一个鼠标移动, 一个按键按下或弹起 , 它都需要从底层设备驱动-->核心层-->事件处理层 -->用户空间 , 层层上报 , 一直到运用程序. 应用这个input  子系统有如下优

Linux MTD子系统 _从模型分析到Flash驱动模板

MTD(Memory Technology Device)即常说的Flash等使用存储芯片的存储设备,MTD子系统对应的是块设备驱动框架中的设备驱动层,可以说,MTD就是针对Flash设备设计的标准化硬件驱动框架.本文基于3.14内核,讨论MTD驱动框架. MTD子系统框架 设备节点层:MTD框架可以在/dev下创建字符设备节点(主设备号90)以及块设备节点(主设备号31), 用户通过访问此设备节点即可访问MTD字符设备或块设备. MTD设备层: 基于MTD原始设备, Linux在这一层次定义出

Linux时间子系统(十七) ARM generic timer驱动代码分析

一.前言 关注ARM平台上timer driver(clocksource chip driver和clockevent chip driver)的驱动工程师应该会注意到timer硬件的演化过程.在单核时代,各个SOC vendor厂商购买ARM core的IP,然后自己设计SOC上的peripherals,这里面就包括了timer的硬件.由于没有统一的标准,各个厂商的设计各不相同,这给驱动工程师带来了工作量.然而,如果仅仅是工作量的话就还好,实际上,不仅仅如此.linux的时间子系统要求硬件t

linux input输入子系统分析《四》:input子系统整体流程全面分析

1      input输入子系统整体流程 本节分析input子系统在内核中的实现,包括输入子系统(Input Core),事件处理层(Event Handler)和设备驱动层.由于上节代码讲解了设备驱动层的写法,因此在开头部分会从设备驱动层做为线索,分析输入子系统和事件处理层是如何配合的,最后从用户角度出发,从"/dev/input/*"接口如何使用输入子系统提供的服务. 既然需要详细分析,有一个这样的流程图能够帮助我们在被绕进代码的过程中,找到出口,你能够知道你现在位于代码框架的什

Linux设备驱动之IIO子系统——IIO框架及IIO数据结构

由于需要对ADC进行驱动设计,因此学习了一下Linux驱动的IIO子系统.本文翻译自<Linux Device Drivers Development >--John Madieu,本人水平有限,若有错误请大家指出. IIO Framework 工业I / O(IIO)是专用于模数转换器(ADC)和数模转换器(DAC)的内核子系统.随着越来越多的具有不同代码实现的传感器(具有模拟到数字或数字到模拟,功能的测量设备)分散在内核源上,收集它们变得必要.这就是IIO框架以通用的方式所做的事情.自20