- 製品情報
-
- 個人・家庭向けプリンター
<用途から選ぶ>
- <カテゴリーから選ぶ>
- 法人・業務向けプリンター・複合機
- 産業向けプリンター・デジタル印刷機
- 消耗品
- 産業向け製品
- <インクジェットソリューション>
- 個人・家庭向けプリンター
マイコンが他のデバイスとデータをやり取りする方法には、大きく分けて2つの種類があります。
パラレルインタフェース
パラレルインタフェースは、例えば、8ビット長のデータを1クロックで送受信する方法です。理論的に転送速度は高速ですが、データビット長分の配線を必要とし、機器の小型化を妨げる要因になります。それに対して少ない信号線で送受信を行う方法がシリアルインタフェースです。例えば、8ビット長のデータであれば1本の信号線を用い、時間を区切って1ビットずつ合計8回送受信します。
図1.1 8ビットSRAMとのインタフェース回路例
図1.2 UART通信における接続例
かつてパラレルインタフェースは高速、シリアルインタフェースは低速とされてきました。しかし、デバイスの進化と差動信号*1によりノイズ耐性を高め、メガHz・ギガHzといった高速シリアルインタフェースも一般的になってきました。パラレルインタフェースを高速化しようとした場合、複数の信号線を同期させることが難しいといったこともあり、現在ではパラレルインタフェースに比べ、シリアルインタフェースのほうが高速な送受信を実現しています。
*1:差動信号
正と負の2本の信号線を用い、その差分をデータとして扱うことにより、外部ノイズの影響を受けにくく高速で高品質な通信が可能な方式。高速なシリアル通信で取り入れられている。
本文では、差動信号を用いず、汎用的なマイコンに搭載されているシリアルインタフェースについて解説します。
マイコンの基礎と選び方(評価の仕方)・比較フォーマット
マイコンに関して下記のようなPDF資料がダウンロードできます。マイコン選定などにご活用ください。
汎用的なマイコンに搭載されているUART、SPI、I2Cの3種類のシリアルインタフェースについて、概要を説明します。
本方式は古くよりパソコンと周辺機器とのインタフェースに用いられています。通信速度は低速ですが、GNDレベルを共通にする以外は、送信信号線と受信信号線各1本の配線で済みますので、高速転送を必要としない多くのケースで採用されています。
通信方式としは、送信側、受信側それぞれでタイマを持ち、予め決められたタイミングでデータを受信、あるいは送信を行います。
【 送信 】
初期信号は、必ずHレベルであり、また、送信の開始時は、必ずLレベルへの立下りからスタートします。その後、あらかじめ決められたタイミング毎に送信したいデータを1ビットずつ送信します。送信するデータを最上位ビットから送るのか、最下位ビットから送るのかは、予め通信機器間で取り決めておく必要があります。また、送信終了後は、必ずHレベルにする必要があります。
なお、送信データ末尾には、受信側が受け取ったデータが正しいかどうか、チェックするためのパリティビットを付加することもできます。
図2.1 UART送信フォーマット例
【 受信 】
初期信号レベルは、必ずHレベルであるため、受信側は信号が立ち下がるタイミングを待ち続けます。信号立下りをトリガとして、受信タイマを起動し、予め取り決められたタイミング、ビット長でデータの取り込みを行います。データをすべて受信したら、信号線はHレベルになりますので、このHレベルを確認して、送受信が完了したことになります。但し、何らかの理由で最後の信号レベルがHレベルでなかった場合は、フレーミングエラーとなり、例えば、データの再送信を要求するなどのエラー処理が必要です。
図2.2 UART受信サンプリングタイミング例
UARTでは、送受信機器双方がタイマを用いて時間を計測し、通信タイミングを合わせていました。これに対して、SPIでは送受信双方が専用クロック信号に同期してデータの送受信を行うものです。チップセレクト信号も用いることが可能であり、本信号線を使用することにより、1対複数台の機器と送受信を行うこともできます。UARTに比べて不利な点は、通信を行うために必要な信号線が、多くなってしまうことです。
図2.3 MCUをマスタとし外部機器3台を接続した場合の回路例
【送信(マスタ→スレーブ)】
マスタ側から同期クロックを出力するとともに、本同期クロックに合わせてデータを出力します。
図2.4 SPI送信フォーマット例
【受信 (マスタ→スレーブ)】
スレーブ側から送信されたデータを本同期クロックの立ち上がりエッヂで受け取ります。
図2.5 SPI受信フォーマット例
なお、データの送信順序(最上位ビット、最下位ビットどちらを先に送るか)、使用するクロックの極性、データの送信/取り込みエッヂなどは、予め決めて設定しておく必要があります。
I2CもSPIのように1対複数台の接続が可能です。SPIとの大きな相違は、個々のスレーブがアドレスを持っており、マスタは通信したいスレーブのアドレスを送信することにより、アドレスが一致したスレーブのみと通信することが可能になります。 また、信号線、クロック線ともNチャンネルオープンドレイン*2方式で出力することになっており、出力はLレベルのみ、その他の期間においては、外部のプルアップ抵抗によりHレベルに引き上げられます。
図2.6 I2C通信回路例
*2:Nチャンネルオープンドレイン
Hレベル、Lレベル双方を出力するコンプリメンタリ出力に対して、Lレベルのみを出力する方式をNチャンネルオープンドレイン、Hレベルのみ出力する方式をPチャンネルオープンドレインと称す。オープンドレイン方式の場合は、NチャンネルならH側の出力がなく、プルアップ抵抗抵抗を付加して信号線をHレベルにし、ハイインピーダンス(HでもLでもない状態)を防ぐ。
図2.7 (a)コンプリメンタリ出力回路
図2.7(b) Nチャンネルオープンドレイン出力回路
【 送信 (マスタ→スレーブ) 】
マスタは、最初にスレーブアドレスを送信し、スレーブからのアクノリッジ信号を受け取ります。以降、マスタは送信データをスレーブに対して送信するとともに、データごとのアクノリッジ信号を受け取ります。
図2.8 I2C通信におけるマスタからスレーブへの転送フォーマット
【 受信 (マスタ←スレーブ) 】
マスタは、最初にスレーブアドレスを送信し、スレーブからはアクノリッジ信号を受け取ります。以降、マスタはスレーブから出力されるデータを受信し、各データを受信する毎にアクノリッジ信号を出力します。
図2.9 I2C通信におけるスレーブからマスタへの転送フォーマット
なお、クロック(SCL)、スタートコンディション、ストップコンディションは、以下の通りです。SCLがHの区間に、SDAが立ち下がればスタートとなり、SCLがHの区間にSDAが立ち上がればストップとなります。
図2.10 I2C通信におけるスタートコンディションとストップコンディション
マイコンの基礎と選び方(評価の仕方)・比較フォーマット
マイコンに関して下記のようなPDF資料がダウンロードできます。マイコン選定などにご活用ください。