|
HOME >>(連載)シリアル・インターフェース >>新連載 1、2、3線シリアル・インターフェース (連載 第1回)
新連載 1、2、3線シリアル・インターフェース (連載 第1回)
最近の通信の主流はシリアル通信となっていますが、すぐに思いつくのはパソコンでおなじみのRS-232Cです。これは非同期シリアル通信の一種です。本来、RS-232Cとは信号レベルの規格で、通信フォーマットや手順の仕様ではありませんが、一般にRS-232Cといえば非同期(調歩同期)式シリアル通信を指すことが多くなっています。
マイコン同士やマイコンとパソコンの間で通信させる際にもRS-232Cを使うことがありますが、ペリフェラル(周辺機器)間に特化した高速な通信インターフェースがいくつも存在します。この連載では、PICなどのマイコン・チップに制御ハードウェアが搭載されているものや、比較的簡単にソフトウェアで実現できる、2線式のI2C、3線式のSPI、1線式の1-Wireの三つのシリアル・インターフェースについて紹介します。
なお、I2CとSPIは同期式、1-Wireは非同期式のシリアル・インターフェースですが、データ信号といっしょにクロック信号が伝送されるのが同期式、データ信号だけが伝送されるのが非同期式です。
これらのシリアル通信の大きな特徴は、通信機器(デバイス)同士がマスタとスレーブという主従関係にあり、同一バス上に複数のデバイスが容易に接続できるということです。RS-232Cのシリアル・インターフェースでも、工夫すれば複数機器間で通信させることはできますが、互換性や手順などの点でいろいろ面倒です。
筆者はこれまで、何個かのマイコンを接続して互いに通信させるようなものを製作する場合、通信のインターフェースに何を使うかが悩みの種でしたが(特に複数のデバイスを接続する場合)、I2CやSPIを使うようになって便利さを実感しています。
また、とりあえず、インターフェースだけを用意しておいて、後からデバイスを増設するなどして機能を拡張するような使い方もできます。
次に、各インターフェースについて簡単に説明します。
(1) I2C(Inter-Integrated Circuit);2線式
I2Cは、オランダのフィリップス社が提唱する2線式の同期式シリアル通信インターフェースです。シリアル・データ信号SDAとシリアル・クロック信号SCLの2本の信号で通信します。マスタ・デバイス一つ(マルチ・マスタ時は複数も可)に対して、複数のスレーブ・デバイスがバス接続された形になります。
通信レートには、標準モード(最大100kbps)とファースト・モード(最大400kbps)、高速モード(最大3.4Mbps)の三つが規定されています。
スレーブ・デバイスの代表的なものとしてEEPROMやA-Dコンバータなどがあり、その他、特定用途向けのものには温度センサやバッテリ充電コントローラなどいろいろなものがあります。

(2) SPI(Serial Peripheral Interface);3線式
SPIは、米国モトローラ社(現在フリースケール社)が提唱する3線式の同期式シリアル通信インターフェースです。データ出力信号SDO、データ入力信号SDI、クロック信号SCKの3本の信号で通信します。基本的にはマスタ・デバイス一つに対してスレーブ・デバイスが一つが接続されるような形になりますが、スレーブ選択する信号(SS)をマスタからスレーブへ与えることで、複数のスレーブをバス接続することもできます。

通信レートなどは規定されてませんが、通信手順や動作原理が単純なため、ハードウェアや伝送路次第ではI2Cよりも高速で通信できます。
SPIハードウェアのベースはシフトレジスタですので、比較的簡単にハードウェアを作ることができます(製作例は後の連載で紹介する予定)。
(3) 1-Wire(Dallas One Wire);1線式
1-Wireは、米国ダラス・セミコンダクタ社(現在マキシムの子会社)が提唱する1線式の非同期式シリアル・インターフェースです。一つのマスタ・デバイスに対して複数のスレーブ・デバイスが接続できます。

通信レートは、スタンダード・モード(最大16Kbps)とオーバドライブ・モード(最大142Kbps)が規定されています。I2CやSPIに比べると低速ですが、信号線が1本(GNDを含めると2本)で済むことと、DS18S20ディジタル温度センサのように信号線から電力を供給できる場合は、スレーブ側に電源が不要になるなど、面白い使い方ができます。
なお、1-Wireに関しては、プルアップ回路をアクティブ型にして、伝送路をツイスト・ペア線にするなどして、数百m以上の伝送距離を実現させるものもありますが、この場合は小規模なネットワーク・デバイスとも考えられます。
今回は三つのインターフェースについて、概要を簡単に説明しましたが、次回からは各インターフェースについてもう少し詳しく説明していきます。次回は、I2Cの通信の原理や手順を説明する予定です。
下記の写真は、これらのインターフェースをつないで実験をしているところです。


タグ:
1-Wire
I2C
SPI
投稿者: yoshida 日時: 2007年04月06日 12:58 | パーマリンク |TOPページへ ▲画面上へ
トラックバック
このエントリーのトラックバックURL: http://www.eleki-jack.com/mt/mt-tb.cgi/195
|