「組み込み」ならではの基礎知識 ――スタートアップ・ルーチンからハードウェアまで

セサミアン3人組

tag: 組み込み

技術解説 2003年5月14日

●シフト・レジスタでパラレルをシリアルに変換する

 一方,制御するためではなく,主に通信に使われる「シリアル・ポート」と呼ばれるポートがあります.これは,パラレル(並列)データを時間軸でシリアル(直列)データに(もしくはシリアル・データをパラレル・データに)変換するものです(図8-7)

 シリアル・ポートは,CPUからパラレルでアクセスされるデータ・レジスタと,1ビットずつ順にずらしながら出力していくシフト・レジスタから構成されています(図8-8)

 送信側では,CPUが,パラレル・ポートのラッチと同じように,送りたいデータをデータ・レジスタに書き込みます.データ・レジスタに書き込まれた値は,シフト・レジスタに転送するとともに,ステータス・レジスタに「送信中」であると設定します.次にシフト・レジスタで順にシフト・アウトして1ビットずつ外部に出力します.

 全部のビットを送り終えると,ステータス・レジスタを「(次の)送信可能」に設定します.送信側では,このステータス・レジスタを監視して,「送信可能」になった時点で,次に送りたいデータをデータ・レジスタに書き込みます.

 一方,受信側では,外部から取り込んだ1ビットずつの値をシフト・レジスタに順次シフト・インして,全部のビットがそろったらデータ・レジスタを更新し,ステータス・レジスタを「受信完了」に設定します.データ・レジスタに値がまだ届いていないとき,ステータス・レジスタは「受信待ち」に設定されています.CPUは,ステータス・レジスタが「受信待ち」から「受信完了」になるのを確認した後,そろえられた受信データをデータ・レジスタから取り込みます.

 シリアル・ポートでは1ビットずつ転送するので,入出力に時間がかかります.ポートに接続されるデバイス(リレーやA-Dコンバータなど)によっては待ち時間が必要になります.ポーリングや割り込みを使いこなして対処しましょう.

f08_07.gif
〔図8-7〕パラレル・データ通信とシリアル・データ通信
パラレル・データ通信では,送りたい情報をある単位ずつまとめて送る.この図では,8ビットずつまとめて同時並列に送受信する.一方,シリアル・データ通信では,送りたい情報を1ビットずつ順番に送受信する.

f08_08.gif
〔図8-8〕 シリアル・ポートからの通信
送信側のCPUは,ステータス・レジスタを参照して「送信可能」になったら,データ・レジスタに送信したいデータをセットする.受信側のCPUは,ステータス・レジスタを参照して「受信完了」になったらデータ・レジスタを読む.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日