原文网址: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):
- ADCs(模数转换器)
- 加速度传感器
- 陀螺仪
- IMUs(惯性测量单位)
- 电容-数字转换器(CDCs)
- 压力、温度和光线传感器
从源码的目录中可以看出,还有:磁力计传感器、电能功率计、旋变数字转换器
可以看出这些外设的确都是工业领域使用的,当然其中的部分在其他领域也用到了,比如
- 加速度传感器、陀螺仪、温度和光线传感器在移动设备(手机、平板)中也有广泛应用。
IIO主要框架如下(ADI的WiKi内容):
对于IIO的介绍,ADI的WiKi讲的比较的清楚,我顺手将这个文档翻译成了中文,分享如下:
内核说明文档也是极有参考价值的,并且较为详细。位置:drivers/staging/iio/Documentation
我也顺手翻译了一下其中的overview.txt文件,分享如下:
这里只是简单的了解一下这个系统。以后,我会继续分析这个系统,翻译内核文档,再写分析文档。