最近稍微看了下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讲的比较的清楚,我顺手将这个文档翻译成了中文,分享如下:
 
   内核说明文档也是极有参考价值的,并且较为详细。位置:drivers/staging/iio/Documentation
   我也顺手翻译了一下其中的overview.txt文件,分享如下:
 
   这里只是简单的了解一下这个系统。以后,我会继续分析这个系统,翻译内核文档,再写分析文档。

Linux IIO子系统分析的更多相关文章

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

    原文网址:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=20543672&id=2976189 最近稍微看了下LKML ...

  2. 【转】 linux iio子系统

    原文网址:http://blog.csdn.net/tsy20100200/article/details/47101661 最近由于工作的需要,接触了Linux iio子系统,对于这个目录其实以前是 ...

  3. linux iio子系统

    //============================================================================\\ || 系            统:W ...

  4. Linux input子系统分析

    输入输出是用户和产品交互的手段,因此输入驱动开发在Linux驱动开发中很常见.同时,input子系统的分层架构思想在Linux驱动设计中极具代表性和先进性,因此对Linux input子系统进行深入分 ...

  5. 7.Linux 输入子系统分析

    为什么要引入输入子系统? 在前面我们写了一些简单的字符设备的驱动程序,我们是怎么样打开一个设备并操作的呢? 一般都是在执行应用程序时,open一个特定的设备文件,如:/dev/buttons .... ...

  6. Linux Input子系统

    先贴代码: //input.c int input_register_handler(struct input_handler *handler) { //此处省略很多代码 list_for_each ...

  7. linux kernel input 子系统分析

    Linux 内核为了处理各种不同类型的的输入设备 , 比如说鼠标 , 键盘 , 操纵杆 , 触摸屏 , 设计并实现了一个对上层应用统一的试图的抽象层 , 即是Linux 输入子系统 . 输入子系统的层 ...

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

    专题文档汇总目录 Notes:ARM平台Clock/Timer架构:System counter.Timer以及两者之间关系:Per cpu timer通过CP15访问,System counter通 ...

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

    由于需要对ADC进行驱动设计,因此学习了一下Linux驱动的IIO子系统.本文翻译自<Linux Device Drivers Development >--John Madieu,本人水 ...

随机推荐

  1. php安装中的错误

    http://www.cnblogs.com/kristain/articles/3809243.html     借鉴php安装错误 2013-01-04 19:16:49 分类: 系统运维 环境: ...

  2. 常用的工具GCC GDB Make Makefile

    系统调用系统调用是操作系统提供给外部应用程序的一组特殊的接口.应用程序通过这组特殊“接口”来获得操作系统内核提供的服务.在 C 语言中,操作系统的系统调用通常通过函数调用的形式完成, 这是因为这些函数 ...

  3. javascript 对象的创建,引用,释放,删除方法

    1.用函数构造 A.声明时同时设置属性和方法 function func(){  this.name = "myname";  this.say = function(){aler ...

  4. DIV+CSS 网页布局之:一列布局

    1.网页布局 布局(layout)即对事物的全面规划和安排,页面布局是对页面的文字.图像或表格进行格式化版式排列.网页布局对改善网站的外观非常重要,又称版式布局,大多数网站会把内容安排到多个列中,就像 ...

  5. Windows下MySQL数据库备份脚本(二)

    说明: MySQL数据库安装目录:C:\Program Files\MySQL\MySQL Server 5.0 MySQL数据库存放目录:C:\Program Files\MySQL\MySQL S ...

  6. 缓存 Cache

    Controllers层 public class HomeController : Controller    {        //        // GET: /Home/       // ...

  7. uboot 顶层makefile细节分析

    uboot的源文件众多,学习庞然大物首先找到脊椎--顶层的makfile,逐一破解.但是,uboot的makefile同样是一个庞然大物,所以也要找到它的主线.倘若过分专注部分细节,很难做到把握全局, ...

  8. POJ 3349 Snowflake Snow Snowflakes Hash

    题目链接: http://poj.org/problem?id=3349 #include <stdio.h> #include <string.h> #include < ...

  9. Mvc学习笔记(3)

    控制器将处理后的数据"传"给视图的方式 public ActionResult Test() { List<Student> stuList = new List< ...

  10. iOS 之 多线程一

    iOS中实现多线程的技术方案 pthread 实现多线程操作 代码实现: void * run(void *param) {    for (NSInteger i = 0; i < 1000; ...