日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

【转】 linux iio子系统

發布時間:2025/7/14 linux 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转】 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子系統)

?

2、簡介:
iiO子系統全稱是 Industrial I/O subsystem(工業 I/O 子系統),此子系統的目的在于填補那些分類時處在hwmon(硬件監視器)和輸入子系統之間的設備類型。在某些情況下,iio和hwmon、Input之間的相當大的重疊。

?

3、iio目錄結構架構:

[plain]?view plaincopy
  • iio??
  • ├──?accel?????????????
  • ├──?adc???????????????
  • ├──?addac?????????????
  • ├──?cdc???????????????
  • ├──?dac???????????
  • ├──?dds??
  • ├──?Documentation??
  • │???└──?dac??
  • ├──?gyro??
  • ├──?impedance-analyzer??
  • ├──?imu??
  • │???└──?mpu??
  • │???????└──?inv_test??
  • ├──?light??
  • ├──?magnetometer??
  • ├──?meter??
  • ├──?pressure??
  • ├──?resolver??
  • └──?trigger??
  • ?

    ?

    4、iio 目錄結構說明:

    進入相應目錄,里面都有相關IC的驅動,網上查閱資料,對iio子系統做如下簡要的說明:

    accel :
    該文件夾下是一些加速度傳感器,例如:adis16201、kxsd9、lis3l02dq、sca3000等


    adc :
    該文件夾下是一些模數轉換器,將模擬信號轉換成數字信號,例如:ad7192、adt7310(數字溫度傳感器)等


    addac :
    Temperature Sensor 溫度傳感器,例如:adt7316

    cdc :
    電容數字轉換,例如:ad7150

    dac :

    一些數模轉換器,將數字信號轉換成模擬信號,例如:ad5064、ad5791(單通道、20位、無緩沖電壓輸出DAC)等

    dds :
    頻率掃描儀,頻率合成器,例如:ad5930、ad9951等

    Documentation :
    iio子系統相關文檔說明,相關說明比較詳細,說明文檔是個好東西……

    gyro:
    陀螺儀,例如:adis16060(角速度陀螺儀)、adis16260(數字陀螺儀)、adxrs450(角速率陀螺儀)等

    impedance-analyzer :
    阻抗測量芯片,只有一個芯片ad5933

    imu:
    慣性陀螺儀、磁力計、加速度計,例如:adis16400,其中的mpu子目錄有些重要的傳感器(目前工作中正在使用)
    imu
    ??? └── mpu:有MPU3050(三軸)、MPU6050(六軸)、MPU9150(整合了MPU6050及AK8975電子羅盤)、MPU6515等

    light :
    光學傳感器,例如:isl29018、tsl2563等

    magnetometer :
    地磁傳感器、磁力計傳感器,例如:hmc5843、ak8975

    meter :?
    有功功率和電能計量,例如:ade7759(電能計量數據轉換器)、ade7753等


    pressure :
    壓力傳感器,例如:bmp182

    resolver :
    旋轉變壓器/數字轉換器,例如:ad2s1200(旋轉變壓器輸出的模擬信號轉化為數字信號)等

    trigger:

    觸發器

    ?

    5、iio子系統架構圖:

    ?

    6、iio子系統功能:

    (1)、設備注冊和處理

    (2)、通過虛擬文件系統(VFS)輪訓訪問設備

    (3)、chrdevs事件

    chrdevs事件包括閾值檢測器,自由下落檢測器和更復雜的動作檢測。chrdevs事件的輸入,iio為底層硬件觸發與用戶空間通行提供了通道,chrdevs事件本身已經不僅僅是一個事件的代碼和一個時間戳,與chrdevs事件相關聯的任何數據必須通過輪詢訪問。

    (4)、硬件環緩沖支持

    現在很多傳感器芯片上本身就包括?fifo / ring 緩沖,通過sensor自帶?fifo / ring 緩沖,可以大大的減少主芯片處理器的負擔。

    (6)、觸發和軟件緩沖區(kfifo)支持

    在許多數據分析中,觸發和軟件緩沖區(kfifo)支持就顯得非常有用,能夠更加高效的捕捉到外部信號數據。這些觸發包括(數據準備信號、GPIO線連接到外部系統、處理器周期中斷、用戶空間訪問sysfs中的特定文件等),都會產生觸發。

    ?

    7、iio子系統的內核接口

    為各種sensor提供了內核接口

    ?

    8、iio子系統環形緩沖區(如下圖)

    iio子系統采用環形緩沖區,環形緩沖區本質是一個數據結構(單一,固定大小,可調并首尾相連),這種結構非常適合緩沖數據流。這些緩沖區通常用來解決生產者消費者問題,在一些應用中,它被設計成生產者會(例如一個ADC)覆蓋消費者(例如一個用戶空間應用程序)無法暫時處理的過期數據。但是通常這種緩沖會被設置為適當的大小,以使這種情況不會發生。

    ?

    更多詳細的說明可以參照:WIKI 中的說明

    《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

    總結

    以上是生活随笔為你收集整理的【转】 linux iio子系统的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。