본문 바로가기

정리글

IIO - Linux Industrial I/O subsystem

IIO

IIO, The Industrial I/O는 ADC, DAC, 센서 등의 장비들을 위한 하위시스템이다.

어플리케이션에서 다양한 센서, 드라이버와 통신을 하거나 조작할 수 있는 인터페이스를 제공한다.

Analog Devices Wiki 의 개요
ST 의 개요

IIO의 기능

  • 장치 등록 및 제어
  • sysfs 를 통한 장치 채널의 폴링 액세스
  • chrdevs 이벤트
  • 하드웨어 원형 버퍼 지원
  • 버퍼링을 이용한 CPU 부하 감소
  • kfifo (linux kernel에서 제공하는 Queue) 지원

IIO 에서 제공하는 순환 버퍼

* 그래서 IIO라는게 무엇일까?

사실 IIO라는게 잘 알진 못한다.

실제로 써보진 않았기 때문이다.

이론상으로는 IIO, 즉, 보드와 연결된 장치들을 제어하는 API를 제공하는 인터페이스이다.

아날로그-디지털 변환기, 센서 등을 제어할 수 있는 기능이다.

이러한 기능들을 사용할 수 있는 라이브러리가 libiio이다.

libiio는 이러한 장치들을 sysfs를 이용하여 kernel과 통신하는 local backend,

IIOD 라는 네트워크 서버와 링크하여 데이터를 전송하는 Networ backend로 구성된다.

libiio

실제 STM 보드에서 iio_info를 입력하면 iio로 연결된 장치들의 리스트가 나타난다.

STM 보드에서 입력한 iio_info

 

참조링크

wiki.analog.com/software/linux/docs/iio/iio

 

Linux Industrial I/O Subsystem [Analog Devices Wiki]

 

wiki.analog.com

wiki.st.com/stm32mpu/wiki/IIO_overview

 

IIO overview - stm32mpu

This article gives information about the Linux® IIO framework. It explains how to activate the IIO interface and, based on examples, how to use it. 1 Framework purpose[edit] IIO (Industrial I/O) is a subsystem for Analog to Digital Converters (ADCs), Digi

wiki.st.com