I2Cバスでは、デバイス間のデータのやり取りを実現するためにSCLとSDAの2本の信号ラインしか使用されていないため、ハードウェアリソースとPCBボードのレイアウトスペースの使用が大幅に簡素化されます。そのため、I2Cバスは、EEPROM、実クロック、小型LCD、CPUなどのデバイス間のインタフェースに広く使用されています。
LinuxはシステムのI2Cドライバアーキテクチャを定義していますLinuxシステムでは、I2Cドライバは3つの部分、すなわちI2Cコア、I2Cバスドライバ、およびI2Cデバイスドライバで構成されています。これら3つの部分が連携して、非常に用途が広く適応性の高いI2Cフレームワークを形成しています。
この章の最初のセクションでは、Linux I2Cアーキテクチャを分析し、3つのコンポーネントの機能と相互接続について説明します。
第2章では、Linux I2Cコアを分析し、i2c-core.cファイルの機能と主な機能の実装について説明します。
セクション3と4では、それぞれI2CバスドライバとI2Cデバイスドライバの書き込み方法について詳しく説明し、参考のためにデザインテンプレートを示します。
セクション5と6は、セクション3と4に記載されているデザインテンプレートに基づいて、S3C2410 ARMプロセッサのI2Cバスドライバとそれに搭載されているSAA7113Hビデオアナログ/デジタルコンバータチップデバイスを説明します。メソッドを書く
15.1 Linux I2Cアーキテクチャ
Linux I2Cアーキテクチャは3つのコンポーネントに分かれています。
?I2Cコア
I2CコアはI2Cバスを提供します。ドライバとデバイスドライバの登録、ログアウト方法、I2C通信方法(すなわち「アルゴリズム」、誤解を避けるために、文字通りの翻訳は「計算方法」は適切ではないと思います、以下は直接「アルゴリズム」を使用します特定のアダプタおよび検出装置に関連しないコード、検出装置アドレスの上位層コードなど。
?I2Cバスドライバ
I2Cバスドライバは、I2Cハードウェアアーキテクチャのアダプタ側を実装したもので、CPUによって制御することも、直接CPUに組み込むこともできます。
I2Cバス・ドライバ・アダプタは、主にI2Cデータ構造i2c_adapter、I2Cアダプタ制御アルゴリズムとデータ構造i2c_algorithmアダプタI2C通信信号生成機能を備えています。
I2Cバスによって駆動されるコードを使用すると、スレーブモードでスタートビット、ストップビット、読み書きサイクル、読み書き、ACKなどを生成するようにI2Cアダプタを制御できます。
I2CのI2Cデバイスドライバがデバイス側のハードウェアアーキテクチャに実装され、装置は一般I2Cアダプタによって制御CPUに搭載されている
ログイン
?I2Cデバイスドライバ、CPUとアダプタI2Cデータ交換を介して。
I2Cデバイスドライバには、主にデータ構造体i2c_driverおよびi2c_clientが含まれていますので、特定のデバイスに応じてメンバ関数を実装する必要があります。
図15.1 Linux I2Cアーキテクチャ
Linux 2.6カーネルでは、すべてのI2Cデバイスがsysfsファイルシステムに表示され、/sys /bus /にあります。以下のように、アダプターアドレスとチップアドレスの形式でリストされたI2c /ディレクトリー。
$ tree /sys /bus /i2c /
/sys /bus /i2c /
1のLinuxでのリモート接続のSSHとVNCグラフィカルモードは、VNCは/停止/再起動#serviceが開始vncserverを起動/停止/再起動して、特定のコマンドのvncserverをシャット
Technologeeko Windows 7エクスプローラの左上隅にあるアイコン、[お気に入り]、[デスクトップ]、およびさまざまな[ライブラリ]のアイコンにより、多くの人が非常に不快になります。
1 vSphere Clientを起動します。 2仮想マシンを起動します[VMを右クリックして[Power]を選択し、[Open]をクリックして開きます)。仮想マシンが正常に起動するかどうか VM
を使用したマウント Linuxパーティションはfdiskと呼ばれるより便利で便利なツールです。 チュートリアルを使用してパーティションを追加し、パーティションをマウントします。 パーティションを追加