I2C and SMBus ============= I2C と SMBus ============ I2C (pronounce: I squared C) is a protocol developed by Philips. It is a slow two-wire protocol (variable speed, up to 400 kHz), with a high speed extension (3.4 MHz). It provides an inexpensive bus for connecting many types of devices with infrequent or low bandwidth communications needs. I2C is widely used with embedded systems. Some systems use variants that don't meet branding requirements, and so are not advertised as being I2C. I2C (発音: アイ スクエア シー)はフィリップスによって開発されたプロト コルです。それは、高速拡張(3.4MHz)のある低速な二本線のプロトコルです (可変速度、最大400kHz)。それは、頻繁ではないか低帯域の通信を必要とす る多くの種類のデバイスに接続する廉価なバスを提供します。I2Cは組み込みシ ステムで広く使用されています。いくつかのシステムはブランドに関する要求 のために変種を使用し、I2Cとしては宣伝されません。 SMBus (System Management Bus) is based on the I2C protocol, and is mostly a subset of I2C protocols and signaling. Many I2C devices will work on an SMBus, but some SMBus protocols add semantics beyond what is required to achieve I2C branding. Modern PC mainboards rely on SMBus. The most common devices connected through SMBus are RAM modules configured using I2C EEPROMs, and hardware monitoring chips. SMBus(System Management Bus)はI2Cプロトコルに基づいており、大部分はI2C のプロトコルと信号のサブセットです。多くのI2CデバイスはSMBus上で動作す るでしょうが、いくつかのSMBusプロトコルはI2Cブランドを達成するのに必要 とする以上の動作を追加します。現代的なPCメインボードはSMBusに依存してい ます。SMBusを通じて接続される最も一般的なデバイスはI2C EEPROMを使用して 設定されるRAMモジュールと、ハードウェアモニタリングチップです。 Because the SMBus is mostly a subset of the generalized I2C bus, we can use its protocols on many I2C systems. However, there are systems that don't meet both SMBus and I2C electrical constraints; and others which can't implement all the common SMBus protocol semantics or messages. SMBusは多くの部分で一般的なI2Cバスのサブセットであるため、そのプロトコ ルを多くのI2Cシステムで使用することができます。しかしながら、SMBusと I2C両方の電気的な制約に適合できないシステムや、全ての共通なSMBusプロト コルの動作やメッセージを実装できないものもあります。 Terminology =========== 用語 ==== When we talk about I2C, we use the following terms: Bus -> Algorithm Adapter Device -> Driver Client I2Cについて語るとき、以下の用語を使用します: バス -> アルゴリズム アダプタ デバイス -> ドライバ クライアント An Algorithm driver contains general code that can be used for a whole class of I2C adapters. Each specific adapter driver either depends on one algorithm driver, or includes its own implementation. アルゴリズムドライバは全てのI2Cアダプタクラスで使用可能な一般的なコード を含みます。それぞれの固有なアダプタドライバは一つのアルゴリズムドライ バに依存するか、自分自身の実装に含まれます。 A Driver driver (yes, this sounds ridiculous, sorry) contains the general code to access some type of device. Each detected device gets its own data in the Client structure. Usually, Driver and Client are more closely integrated than Algorithm and Adapter. ドライバドライバ (ええ、これはおかしく聞こえます。すみません) はいくつ かの種類のデバイスにアクセスするための一般的なコードを含みます。それぞ れの検出されたデバイスはクライアント構造体の中にある固有のデータを取得 します。通常、ドライバとクライアントはアルゴリズムとアダプタと比べてよ り緊密に統合されています。 For a given configuration, you will need a driver for your I2C bus, and drivers for your I2C devices (usually one driver for each device). 与えられた設定により、I2Cバスのドライバと、I2Cデバイスのためのドライバ がが必要になります (一般的にはそれぞれのデバイスに対して一つのドライバ)。 At this time, Linux only operates I2C (or SMBus) in master mode; you can't use these APIs to make a Linux system behave as a slave/device, either to speak a custom protocol or to emulate some other device. 現段階では、LinuxはI2C (またはSMBus) をマスターモードでしか操作できませ ん; カスタムプロトコルを実装するか他のデバイスをエミュレートしないかぎ り、これらのAPIをスレーブ/デバイスとしてLinuxシステムを動作させるように 使用することはできません。 |