解決策
フィリップス・セミコンダクターズ(現NXP)は1982年、低速の周辺機器をメインチップに接続する際に、機器ごとにピンと配線を専用に割り当てる必要のない、シンプルな内部バスとしてI2Cを発明した。
このプロトコルは、デバイス間でSDAデータ線とSCLクロック線の2本だけを必要とする。アドレスバイトがデバイスを選択した後、データがクロックに同期して入力または出力される。アドレスバイトの8ビット目は読み取りか書き込みかを示し、7ビットで最大128個のアドレスを提供する。
配線が非常に少なく、高価な部品も不要だったため、I2Cは継続的に使われ続け、2006年10月6日以降はライセンスなしで無償実装できるようになった。TWIやSMBusといったサブセット、および10ビットアドレッシングやより高速なクロックまでの変種により、低速インターコネクトのデフォルトであり続けた。
達成したこと
2本のワイヤとデバイスアドレスで大きなことが可能になる
うまくいった理由
2本のワイヤで十数個のチップを接続し、制約のある基板上でピンを節約できる
アドレッシングがプロトコルに組み込まれているため、デバイスに個別のセレクト線が不要
低速だが、SPIの4線コストやRS-232の1対1の制限から解放される
フィリップスが公開し、後にライセンス料を撤廃した
応用できること
ピンや配線を追加できないときは、アドレッシング自体をプロトコルに担わせるように設計せよ。小さく安価なバスは、配線コストがより高い高速な競合より長く生き残ることができる。
その後
I2Cは、センサー、ディスプレイ、EEPROM、管理チップをマイクロコントローラに接続する標準的な方法となり、40年以上の標準化によりデバイスは大部分が相互運用可能になった。組み込みシステム、電話、自動車エレクトロニクスで遍在している。
出典をたどる
出典
- Intro to I2C: Multi-Device Communication with Minimal Pins Embedded Computing Design · embeddedcomputing.com ·
- I2C Wikipedia · en.wikipedia.org