下図は通信デバイス(SIO/serial input output) 周辺のブロック図です。
fig3 通信デバイス
コンピュータで
通信とは
シリアル通信のことです, "
通信" を "
伝送" とも言います…従い
シリアル伝送 ということもあります。
SIO は送受信部 2チャンネル あり, 下図の上部が 汎用的なチャンネル,下部は USBメモリ用のチャンネルになっています。
SIO は「パラレルデータ\(\ \rightleftarrows\ \)シリアルデータ」 変換デバイスです, CPU は SIO を使うことで, CPUの通信負荷が分散され, CPUの高速化に繋がります。
次に下図を簡単に説明します。
fig4 送受信部とパラシリ変換
以下 シリアルを「シリ」, パラレルを「パラ」と呼びます
右の送信側は
①信号線8本のパラデータがメモリ(8bit)に入ります。
②そのパラデータをシリデータ変換(
※1)して送信1本で
シリアル送信します。
左の受信側は
③シリデータ線を受信し, 8bitのパラデータに変換(
※2)する。
④パラデータをメモリに入れ, データをSIOのデータピン(8個)への出力準備をする
⑤CPUの要求に対してデータをSIO はデータピンに出力する。
注:送信側はシリデータには後述する制御ビットの「スタートビット, パリティビット, ストップビット」が付加しす。
受信側はシリデータから制御ビットを取り除きます。
また図にはないが 送信側と受信側に次のシフトレジスタがある:
※1:パラシリ変換はPISOシフトレジスタ。(Parallel-In, Serial-Out)
※2:シリパラ変換はSIPOシフトレジスタ。(Serial-In, Parallel-Out)
シリアル通信の基礎
マイコンボードの殆どはパラデータ, 例えばデータバスは専用線が8本あり, 8bitのデータはパラデータなので瞬時に送受信できます。
シリデータは遠方との通信のとき, コスト減,省スペースのため, 送信1本・受信1本の2本線にしてデータを時分割(下図)にして送受信を行います。
シリアル通信には電気的な仕様の他に これから述べる
プロトコルと呼ばれる 通信するための取り決めが必要です。
シリアル通信には "同期式(USART)" と "非同期式(調歩同期式)(UART)" の2種類あります。
USARTはクロック同期式, UART は非同期式でスタートビットとストップビットでタイミングをとる方式で 多くに使われています。
またUARTには "送受信の専用の2本の信号線による"
全二重通信" と
糸電話のように, 1本の信号線で通信の方向を切り替えて使う"
半二重通信 があります。
半二重通信と全二重通信のイメージ:
上図は「左が聞く←右が発声」の一方向の糸電話のイメージです。
持ち替えて 方向を切り替えのを半二重通信といいます。
切り替えを不要のため 2つの糸電話を 用意して使うのを全二重通信と言います。
全二重通信は上図の"パラシリ変換と送受信"が2回線(互いに方向が逆)で構成される。
・UART:Universal Asynchronous Receiver Transmitter
・USART:Universal Synchronous & Asynchronous Receiver Transmitter
シリデータには送りたいデータに制御ビットの「スタートビット, パリティビット, ストップビット」が付加されます。
下図はデータ長8bit, スタートビット1bit, パリティビット1bit, ストップビット1bit のシリアルデータです。