NDC 548.2, 549.3
多様なマイコンシステム問でデータ交換するための
汎用バスの開発
岡 田 正* 長 澤 克 美**
(平成2年8月23日受付)
Development of the General−purpose Bus for Data Exchange with a Variety of Microcomputer Systems
Tadashi OKADA* and Katsumi NAGASAWA* *
(Received August 23, 1990)
We develop a general−purpose bus to link with a variety of microcomputer systems from one−board to personal com−
puters, The bus connects a single bus−master board and a number of bus−slave boards with an arbiter in a consolidated system. The bus−master board controls the arbitration and protocol of the communication, and exchanges all data to be transferred iR the system. We design the bus−master board and the arbiter to be add to each bus−slave board, and make certain of fundamental functions as designed.
1.はじめに
マイクロコンピュータ(マイコン)システムにおいて,
共通信号を伝送するバスは重要な役目を果たしている。使 用するバスの性能によって,データ転送速度やメモリ拡張 容量といった,システムの重要な基本性能部分が決まる。
マイクロプロセッサとメモリのようなLSI間をつなぐ ボード内のバス,多様な機能のボードをつなぐ標準システ ムバス,マイコンシステムと周辺機器をつなぐ1/0バス など,種々のレベルのバスが使われている。
一方,マイコンの応用が進むにつれて,多様な形態のマ イコンシステムが使われるようになってきた。例えば,我々 の研究室でも,ボードレベルからパーソナルコンピュータ.
(パソコシ)レベルまで,雑多なマイコンシステムが利用 されている。これらのシステムは,それぞれの目的に応じ て使われており,多様な資産が蓄えられている。もし,こ れらのシステムを簡単に結合できて,自由にデータ交換で きるようになれば,利用上の利便性が大幅に向上するであ
ろう。
本論文は,システムレベルの異なる多様なマイコンを接 続する目的で開発した,汎用バスについて報告するもので
* 情報工学科
**電気工学科平成元年度卒業生,現在八重州無線㈱勤務
ある。特定マイクロプロセッサの特性に依存せず,標準シ ステムバスほど複雑でなく,少数の信号と簡単なデータ形 式でシステム間を結合できるバスについて,開発の意図と 仕様の概要を述べる。さらに,中心となるバスマスタボー ドの概要と,パソコンを使った動作確認についても報告す
る。
2.汎用バスの開発目的と基本構成 マイクロプロセッサ応用形態の多様化について,LSI
を組み合わせた機器組み込み用のボードを開発したり,パ ソコンをデータ処理やプログラム開発に利用するなど,シ ステムレベルの異なるマイコンが使用されるようになって いる。このような雑多なシステムの間で簡単な方法でデー タ交換ができれば,蓄積された資産の共有化により有効利 用が図れる。
ここで報告する汎用バスは,研究室内のような近距離に 置かれた,ボードマイコンからパソコンまでのレベルの異 なるシステムを結合するものである。筆者の一人は,マイ コン間のデータ通信を行う同様なシステムを,以前,報告 したことがある1)。このシステムは,1/0ポートを通し て接続しており,結合の自由度が低いものであった。そこ で,バスレベルで結合することで,.より高度な応用に対応 できるシステムを構想した。
今回開発する汎用バスの利用目的として,凍のような項
目を設定した。
①新しく開発するボードレベルのマイコンに対し,入出 力部分のハードウェア/ソフトウェアを共通化し,統合 開発環境を提供する。
②既存のパソコン等の多様なシステムを接続すること で,蓄積された資源の共有化を図る。
③最終的には,多様なシステムの結合によって,異質な 処理間の連携が可能なマルチプロセッサシステムを構築 する。
①でいえば,ボードマイコンを開発する場合に機種非依 存部分を共通化することで,パソコン上の使いなれた環境 を直接利用することを考えている。この場合,新しいシス テムに固有なマイクmプロセッサやメモリ周辺回路は,必 ず設計しなければならない。一方,キLボードやディスプ レイのような入出力装置の機能は,パソコン等のi整備され たシステムを利用してよい。汎用バスの目的の一つは,こ の機種非依存機能を提供することで,開発作業量を低減す ることにあるQ
②の目的は,既存システムd:簡単なハードウェアとソフ トウェアを追加するだけで,容易にデータ交換可能になる 共通バスを提供することである。MultibusやVMEbusに 代表される標準システムバスは,高度な能力を持っている。
その反面,たくさんの信号を複雑な制御手順で処理しなけ ればならず,簡単な処理を目指した今回のバスには採用で きない。また,RS−232Cのような1/0バスを使うこと
も考えられるが,拡張性や結合の自由度の点で問題がある。
このため,③の目的も考慮して独自のバス規格を開発する ことになった。
複数システムを結合してデータ交換する場合,まず,結 合方式を考えなければならない。一般に十数システムまで の結合では,拡張性・実現の容易さなどから,バス結合型 が向いている2)。ここでも,バス型の結合方式を採用する。
次にバスマスタになりうるシステムが複数存在するの で,アービトレーション(調停)方式を決めなければなら ない。一般に集中型と分散型のアービトレーション方式が 考えられる。我々は,両者の特徴をともに取り入れた。す なわち,アービタは各ボードに分散して,調停時間の短縮 と拡張の容易さを図る。一方,管理はシステムに一つだけ 存在できるバスマスタにより,集中処理させる。これによ
り,各ボードの負担を小さくできるにもかかわらず,拡張 性の高い処理が容易に実現できる。
これらのことから,今回開発した汎用バスをハードウェ ア的に見れば,図1のように,接続されるシステム各々が 分散アービタを持ち,バス型に結合されたものとなった。
しかし,システム全体は,唯一のバスマスタが管理してお り,論理的にはマスタ/スレーブ型のスター結合している と見える。これによって,接続されるシステムのハードウェ ア/ソフトウェアの負担を可能な限り低減し,あわせてジ ステムの自由な拡張を保証している。
バスマスタ
、有RAM
バススレーブ bPU爪一ド
バススレーブ fPUボード
バススレーブ
@パソコン等
CPU CPU CPU RAM RAM RAM
CPU ROM ROM ROM
RAM ンタフェー
ROM ド
アービタ アービタ アービタ
ヘー管〃iへ
制御バス
へ墨管〃1
データバス 共有剤分で点納♪
.々\
図1 汎用バスを使ったマイコンシステムの結合
3.汎用バスの規格
2.で述べた目的と基本構成に基づいて,汎用バスの信 の種類と制御手順を決めなければならない。データ転送と アービトレーションを,できるだけ少ない信号線で実現す
ることを目標に,制御手順の検討を行った。この中心にな るのはア・一・一ビトレーションであり,最終的に決定したアー ビタ回路図は,図2のようになった。ここで使われている 信号は,表1のようになっており,8ビットデータ用と11 種類の制御信号からなっている。制御信号の内,4本は制
多様なマイコンシステム間でデータ交換するための汎用バスの開発 岡田・長澤
御バス(マスタとアービタ接続)用,7本はスレーブとアー ビタ接続用である。
表1に示した信号によって,バス使用権の調停とデータ 転送を行う手順を簡単に設明する。バスは,①バスフリー,
②送信状態,③受信状態,④リセット状態を持つ。この間 をバスマスタの制御下で遷移しながら,バスマスタ経由で データ転送を行う。
例えば,バスフリーから送信状態への遷移を考える。複 数のバススレーブから送信要求が捌せられるので,バスマ スタは要求を出しているバススレーブを確認しなければな らない。確認操作は,バスマスタがSTROBを監視しなが らデータバスの値を変化させ,要求を発しているボードの
うち最大のID番号(スレーブボード固有の値)を持つボー ドを検索することである。検索した最大ID番号のスレー ブに対して,送信要求を許可する。送信を許可されたバス スレーブは,STROBとBUSYを使ったハンドシェイクに より,バスマスタヘデータを送る。
受信状態への遷移も上と同じように,マスタが使用権の 調停を行う。調停が完了すれば,データ転送に移る。この ような調停動作は,データバスを優先順位決定に流用する ことで,最小限の信号線で実現できている。しかし,ポー リングによりID番号を調査するため,決定までに時間が かかるという欠点がある。今回の汎用バスでは,前者の利 点の方を重視し,ブロック単位のデータ転送で効率を上げ
109〔1,な) 109(1/.21
GLREQ
PR i O j QbLR
ひR i Q
j QbLR GしAC
BUSY
レ 一
lCO
撃b1 1
PC2 PC3 P6
QCO Qc1QC2 QC3 yÒB
RST
hCの型番は、ア4シリーズTTLで示した。
2Y
P53
DAo
@IAO BO
DB.
cB1 D鬼 DB2
c馬 cA司 c薦
DB3
STRO
cAo−7 cBo−7
clR ARBIT
│ WE
@−
@ R巳
@ 一@R/W
A4 DB凋DB5
lCO
撃b1 1
PC2 PC3 P0 QCO QCi 2 Qc2QC3
Q信̀B D掘﹂︑
Al BlA2 B2
̀3 B3
@ 図
̀5 B5 s6 臼6
@ B7 cIR
@ 645
7 A7 DB7
π
153 巳
DBL
2
STAT D馬 DB3
4 5
PO QoI Q o2 Qo3 Q o4 Qo5 Q
o6 QP7 Q
@P;Q@P>Q
D廿G
ID設定
G
Dん^
D鬼 DB7
DB 684
図2 バスアービタの回路(推奨回路図)
表1 汎用バスの信号
記 号 名 称 信号の方向 意味・役目
DAo〜DA7
@ARBIT
@STROB
@ −@R/W
@BUSY
データバス
@ 調停
@ストローブ 梶[ド/ライト
@ ビジー
マスタ⇔アービタ }スタ→アービタ }スタ←アービタ }スタ→アービタ }スタ→アービタ
3状態双方向、転送データ・ID番号 oス調停中
]送データの要求またはバス使用権要求 ]送中の方向
]送中の遅延または調停中 DBo−DB7
@GLREQ fLACK
@DIR
│ WE
@酉
データバス oス要求 oス取得 ]送方向
@送信
@受信 oス状況
潟Zット
スレーブ曾アービタ Xレーブ→アービタ Xレーブ←アービタ Xレーブ←アービタ Xレーブ→アービタ Xレーブ→アービタ Xレーブ→アービタ Xレーブ←アービタ
3状態の双方向バス oス使用権の要求 oス使用権の取得確認 ]送方向
Xレーブのデータ出力 Xレーブのデータ入力
STAT qST
GLACK(Do)とDIR(D1)の出力 Xレーブの初期化
るようにしている。
これらデータ転送以外に,バスマスタによって,スレー ブボードのリセットができるようになっている。開発中の ボードで,バグが含まれている場合にも,システム全体の 動作を保証するためである。リセットされるボードは,デー
タバスを通してID番号で指定される。
バスの状態とデータバス・制御信号の関係を,表2にま とめて示す。調停と転送で同じ信号線を,異なった目的で 使っているので注意する必要がある。これによって,信号 線の数を減らすことができる。また,スレーブ側の制御は,
マイクロプロセッサのバスにつないで直接行ってもよい し,周辺LSIを通して1/Oとして扱ってもよい。
次に,デーータ転送を行う場合の,データ形式について述 べる。データはすべてバスマスタを通して転送され,この 意味でバスマスタを共有RAMと呼んでいる。使用権を得 たスレーブは,図3に示す形式を持ったフレームでデータ を送る。フレームは,次の5種類のフィールドしら成って
SiZE H幽しN蓋)LE FUNCT置0暦 置NF【〕観ATIO潤 ECS
図3 転送データの書式(フレーム)
いる。
①SIZEフィールドは2バイト長で, INFORMATION
フィールドの長さをバイト数で表す。
②HANDLEフィールドは2バイト長で,フレームの転
送先を示す。
③FUNCTIONフィールドは1バイト長で,フレームの
機能を表す。
④INFORMATIONフィールドはSIZEフィールドで示さ れる長さを持ち,FUNCTIONフィールドで示される意 味の情報を持つ。
⑤ECSフィールドは,フレームの誤り検出用で,フレー ム全体のバイト単位の総和を取り最下位8ビットが0に なるようにする。
表2 制御信号とバス状態一覧
R/W STROB BUSY ARBIT DAo−DA7 意 味
一 要求信号 一 L ID番号 要求中のバススレーブを検索
一 一 L → ID番号 バススレーブ選択
『 一 H → 80(16) 要求の発生を許可する
L L
一 H 送信データ 送信(スレーブからマスタへ)
H L
一 H 受信データ 受信(マスタからスレーブへ)
一 L L H } 転送不可
一 一 H L ID番号 個別のスレーブをリセット
一 H L 00(16) 全てのスレーブをリセット
(注)Hは高電圧レベルを、Lは低電圧レベルを,↑は立ち上がりを,それぞれ示す。
多様なマイコンシステム間でデータ交換するための汎用バスの開発 岡田・長澤
送信されたデータは,一時的に共有RAMに蓄えられ,
別のスレーブに転送される。このとき,データ送受信を誤 りなく行うために,共有RAM内にFIFOバッファの転 送経路(パイプライン)を作るようにした。パイプライン は,スレーブが宣言したタグ同士を連結することで形成さ れる。ここでタグは,名前・正負の極性・3種類の階層を 持つ。同じ名前の逆極性のタグのみを,階層で制限を付け ながら連結することで,多様な形式のデータであっても,
正常に転送できるようにしている。
なお,ここで概略を述べた汎用バスの規格は,別に仕様 書として詳細に規定してある。
4.共有RA.Mボードと動作確認
これまでに述べた機能を実現し動作を確認するために,
ハードウェアとソフトウェアの製作を行った。汎用バスを 制御するバスマスタ(共有RAMボード)の製作,バス制 御用ソフトウェアの製作,バススレーブの動作のシミュ
レーションによるバス動作の確認が主な内容である。
共有RAMボードを設計す、るにあたり, CPUの選択に 次の条件を与えた。
①大容量のメモリを接続できること。
②ボードの製作に対して特殊な部品が必要ないこと。
③ソフトウェアの開発に特殊な知識が必要ないこと。
これらの条件から,使用するCPUは, Z80と上位互換 の641803)に決定した。その他の主な仕様は,
○○○○○ メモリの容量:32Kバイトから256Kバイトまで可能 クロック:6.144MHz
外部インタフェース:RS−232C
プログラム;容量と速度の面からアセンブラで記述 ROM:バス制御プログラムのみ
となっている。
共有RAMボードの設計製作に続いて,バス制御のため のプログラムを開発した。2.で述べたデータ送受信の制 御プログラムを,アセンブリ言語で記述してある。さらに,
ボードレベルのマイコン開発環境のために,デバッガ機能 を持った「リモートモニタ」を製作した。リモートモニタ は,C(Lattice C 4))で記述されていて,拡張・修正・移 植が容易である。
リモートモニタは,共有RAMボードの機能を拡張する ためのものである。共有RAMボードのRS−232Cを通し てPC−9801に接続し, PC−9801上から開発中のボードを 操作することができる。主な特徴として,次のものが挙げ
られる。
○ 共有RAMボード自体のデバッグを行うことができ
る。
○ バススレーブのデバッグを行うことができる。
O MS−DOSのファイル管理機構を利用し,豊富な PC−9801の周辺機器の環境を提供する。
開発した汎用バスの動作を確認するため,P C 一98elの 並列入出力ボードをバスアービタに接続し,本システムの バスと結合した。パソコンからバススレーブ動作をシミュ レーションしたところ,バスの動作と共有RAMボードの 動作を確認した。これにより,設計した汎用バスが正常に 動作することだけでなく,マルチプロセッサシステムの要 素の一部として,パソコンを利用するシステムの動作も可 能であることがわかった。
5.あ と が き
システムレベルの異なるシステムが容易に結合できる汎 用バスを開発した。これによってボードマイコンの開発支 援環境を整えたり,多様なシステムを結合したマルチプロ セッサシステム構成の基礎部分を設計した。さらに,汎用 バスを制御するバスマスタ(共有RAMボード)の製作と,
パソコンを使ったバススレーブ動作のマルチプロセッサシ ステムシミュレーションを行い,設計通りの動作を確認し
た。
今回開発した汎用バスの機能によって,スレーブ間の基 本的な通信手段は実現できた。今後,開発援助機能の充実 と,本格的なマルチプロセッサシステム構築に向けての検 検討を行わなければならない。種々のCPUを搭載した
ボードを製作し,開発援助ソフトウェアの拡充を図りなが ら,タスクの自動割り振りのようなマルチプロセッサ動作 の検討を進めていきたい。
文 献
1)岡田・古林・山田:津山高専紀要,21(1983)41.
2)天野:日経エレクトロニクス,475(1989−6−12)328.
3) Zilog : Z64180 8−BIT HIGH INTEGRATION CMOS MPU (1986−12).
4)Lattice, Inc.,ライフボート:Lattince C COMPILER VER, 4 Reference Mannual (1988−7) .