歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Linux下I2C驅動架構全面分析

  I2C是philips提出的外設總線.

  I2C只有兩條線,一條串行數據線:SDA,一條是時鐘線SCL ,使用SCL,SDA這兩根信號線就實現了設備之間的數據交互,它方便了工程師的布線。

  因此,I2C總線被非常廣泛地應用在EEPROM,實時鐘,小型LCD等設備與CPU的接口中。

  第一種方法的優點就是第二種方法的缺點,
  第一種方法的缺點就是第二種方法的優點。    

I2C架構概述

    Linux的I2C體系結構分為3個組成部分:
  I2C核心:I2C核心提供了I2C總線驅動和設備驅動的注冊,注銷方法,I2C通信方法(”algorithm”)上層的,與具體適配器無關的代碼以及探測設備,檢測設備地址的上層代碼等。
  I2C總線驅動:I2C總線驅動是對I2C硬件體系結構中適配器端的實現,適配器可由CPU控制,甚至可以直接集成在CPU內部。
  I2C設備驅動:I2C設備驅動(也稱為客戶驅動)是對I2C硬件體系結構中設備端的實現,設備一般掛接在受CPU控制的I2C適配器上,通過I2C適配器與CPU交換數據。    

linux驅動中i2c驅動架構

 

  

 

  上圖完整的描述了linux i2c驅動架構,雖然I2C硬件體系結構比較簡單,但是i2c體系結構在linux中的實現卻相當復雜。

  那麼我們如何編寫特定i2c接口器件的驅動程序?就是說上述架構中的那些部分需要我們完成,而哪些是linux內核已經完善的或者是芯片提供商已經提供的?

 

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-05/101648p2.htm

Copyright © Linux教程網 All Rights Reserved