【発明の詳細な説明】
レジスタモデル化無線装置の間で可変長のメツセージを通信するための方法およ
び装置
発明の分野
この発明は一般的には通信装置に関し、かつより特定的には複数のサブセクショ
ンを有する通信装置に関する。
発明の背景
この発明の必要性はレジスタモデル化(register−modeled)無
線装置の間での高速度の通信の問題から生じる。今日のレジスタモデル化無線通
信装置は固定長の情報パケットを含む通信プロトコルを使用して互いに通信する
。部品技術の進歩に伴って、無線通信装置は今や以前には携帯用または移動無線
装置では不可能であったサイズのメモリ部品を使用する。特に、電子的に消去可
能なプログラム可能リードオンリメモリ(EEPROM)およびフラッシュメモ
リは通信装置のオペレーティングシステムが記憶できる大きさで利用できる。無
線機がレジスタモデル化プロトコルを使用してプログラムされる装置においては
、現在利用可能な固定長のメツセージプロトコルを使用するとかなりの量の時間
が必要である。この時間的要求は現在利用可能な固定長のメッセージングによっ
て必要とされる大きなオーバヘッドによる。これらの固定長のメッセージングプ
ロトコルは米国特許第4,637.022号および第4.684,941号に記
載されている。無線機のプログラミング時間を実質的に低減するために、従来技
術の欠点を克服する、改善されたレジスタモデル化システムおよび該レジスタモ
デル化要素の間の通信方法が望まれる。
発明の概要
無線システムが開示され、該システムは複数のアドレス可能なプロセッサ手段お
よび通信手段を具備する。該通信手段は前記アドレス可能なプロセッサ手段を相
互接続するためのシリアル通信リンクを含む。該無線システムはまた第1および
第2の通信プロトコルを含む。第1の通信プロトコルはパラメータデータをアド
レス可能なプロセッサ手段へとまたは該アドレス可能なプロセッサ手段から受け
渡すための複数の固定長情報パケットを含む。第2の通信プロトコルはパラメー
タのデータをアドレス可能なプロセッサ手段へとまたはアドレス可能なプロセッ
サ手段から選択可能な速度で受け渡すために複数の可変長の情報パケットを含む
。これによって、前記アドレス可能なプロセッサ手段の動作状態は前記アドレス
可能なプロセッサ手段からまたは前記アドレス可能なプロセッサ手段へと、それ
ぞれ、パラメータデータを通信することにより決定できまたは変更できる。
図面の簡単な説明
図1は、本発明に係わるレジスタモデル化通信システムのブロック図である。
図2は、本発明に係わるプログラミングサブシステムの非常に単純化したブロッ
ク図である。
図3は、本発明にしたがって通信プロトコルを変更するために使用される方法の
フローチャートである。
図4は、本発明にしたがって通信のボーレートを変更するために使用される方法
のフローチャートである。
図5、図6および図7は、本発明にしたがってシリアルバス拡張プロトコル(S
B E P)モードに入る方法を示すタイミングチャートである。
図8、図9および図10は、本発明にしたがって前記5BEPモードから退出す
る方法を示すタイミングチャートである。
図11は、本発明に係わるプロトコルにおいて使用されるサンプルメツセージを
示す。
図12および図13は、本発明に係わる放送方法を示す。
図14は、本発明に係わる5BEP応答を示す。
図15および図16は、本発明に係わるリトライのタイミングチャートを示す。
図17は、本発明に係わるアクルッジメントのタイミングを示す。
図18は、本発明に係わるネガティブなアクルッジメントのタイミングを示す。
図19は、本発明に係わるリセット放送タイミングを示す。
図20、図21および図22は、本発明に係わる良好な書込み応答を有する第1
のメモリのプログラミングのバス処理を示す。
図23、図24および図25は、本発明に係わる良好なおよび悪い書込み応答を
有する第2のメモリのプログラミングのバス処理を示す。
好ましい実施例の詳細な説明
図1を参照すると、本発明に係わる1組の規定されたアドレス可能なサブセクシ
ョンを有する、無線通信装置1゜Oが示されている。この図面は現在および将来
のシステムのオプションおよびコマンド/制御サブシステムを共通のリンケージ
によって構築され一体化された2方向移動または携帯用無線システムへと統合す
るための概念的なアーキテクチャを示す。
3つのサブセクション、ずなゎぢ制御サブセクション150、外部オプションサ
ブセクション180および無線サブセクション200が示されている。これらの
ザブセクションは本発明のレジスタモデル化されたアドレス可能プロセッサ手段
を提供する。これらのサブセクションはレジスタモデル化されたプロセッサと見
ることができるが、それはこれらは相互通信に関する限りレジスタと見ることが
できるからである。これらのサブセクションの内容は次に無線装置100が行な
うべき動作を規定するために使用できる。装置100および/またはサブセクシ
ョン150.180および200の実際の(virtual)状態は、それぞれ
、前記複数のサブセクションへと情報を通信しおよび前記複数のサブセクション
から情報を通信することにより決定しまたは変更することができる。この通信は
本発明にしたがってシリアルバス230を介して行なわれる。この基本構造は無
線システム100に不必要な冗長性を持たせる事なく単一の無線システムで様々
な種々の無線機、機能、特徴および増強性を有する能力を提供する。
各々のサブセクションはマイクロプロセッサユニット(M P U)およびメモ
リ要素からなる1つまたはそれ以上のレジスタを含む。前記制御サブセクション
150は制御MPU158、表示装置152、キーボード156およびメモリ要
素154を含む。キーボード156は数字、英数字、ファンクションキー、また
はブツシュトーク(PTT)のような特徴機能作動キーの任意の組合わせを含む
。外部オプションはMPU182を含むものとして示されている。
必要に応じてこのサブセクションに他のレジスタを加えることができる。無線機
サブセクション200は受信機204、MPU206およびいくっがのメモリ要
素208,210および212を含む。これらのメモリ要素は、制御、アドレス
、およびデータラインを含む、バス214を介してMPU206に結合される。
MPU158,182および206はアトし・ス可能であり、それによって前記
通信システム100にそのサブセクション150,180および2000間で1
対1の通信を提供することが好ましい。
サブセクション150,180および200のメモリ要素のいずれかの内容を操
作するために、1組のオペレーション:]−F (Op Codes)が規定さ
れている。これらの命令はデータ転送およびシステム制御のために使用される。
これらのOpコードはリセット、読出し、書込み(変更)、ピットセット、ビッ
トクリア、アクルッジメント(ACK)、およびネガティブアクルッジメント(
N A K)を含む。これらのOpコードは前記シリアルバス230によって送
信され前記サブセクションのいずれかにおけるいずれかのアドレスされたレジス
タに関しデータを書込み、読出し、修正し、または試験することができる。
種々のサブセクションの機能がシリアルバス230によって通信されるメツセー
ジの内容によって制御される。これらのメツセージは単一の命令または同様の原
始的な機能の組合わせ(macros)とすることができる。この特徴はサブセ
クションが実際に新しいコマンドのOpコードを実行することなく新しい「コマ
ンド」に応答する能力を与える。これは前記原始的な命令セットを安定に維持す
ることができ、周辺装置180の」三位互換性を促進する。
無線機のMPU206は直接受信機204および任意選択的な送信機とインタフ
ェースし、かつ特定の受信機に関りは動作周波数の発生のためのシンセサイザの
制御、送信電力レベルの制御、オーディオのミューティング、チャネルの操作、
受信/′送信および送信/受信シーケンスのタイミング、可聴範囲外の(sub
audible)信号発生および検出(P L/D P L コード)、ハー
ドウェア診断、その他を含むことができる。
前記無線機MPU206はまた各々の関連するタスクが制御MPU158または
他のMPU182にとって利用可能なシリアルバス230へのインタフェースを
提供する。
これらのタスクはメモリの間合わせ、プログラミング命令、表示メツセージの処
理、キーボードメツセージの処理、その他を含む。
制御MPU158は無線システム100への人間のインタフェースに加えて全て
のサブセクション1,80および200へのコマンドを提供する。その機能は表
示装置152の制御、ユーザへのシリアルバス230によって受信したまたは局
部的に発生したデータおよびステータス情報の表示を含む。MPU158はまた
キーボード156からデータおよび制御情報を受信し、かつ選択的にそれらを他
のすブセクシタンのMPUによってさらに処理するために前記表示装置1152
またはバス230へと導く。
周波数情報、ユニットのIDコード、P L/D P Lコード、モードリンケ
ージ、走査リスト、その他のような無線システム100の任意のかつ全ての独自
のパラメータが無線機プロセッサ206によって全てのシステムの周辺装置に与
えられる。それはシステム100のデータベースを提供しかつ他のMPtJが監
視するためにこの情報をバス230を介して転送する。1つの例は無線機MPU
206上に存在するP L/D P Lドライバによって与えられる。全ての組
のPLおよびDPLに対する可能なコードは前記EEPROM208またはRO
M212内にハードプログラムすることができる。このEEPROM208およ
びROM212のデータベースは前記シリアルバス230からその情報を必要と
する他のMPUに対してアクセス可能である。
音声およびスケルチのような、アナログ制御機能はキーボード156からデジタ
ルまたはアナログ形式で制御できる。これらの制御機能を表すアナログ信号は直
接キーボード156から無線機200へと図示しない直接の信号ラインを介して
結合できる。あるいは、アナログ信号は前記制御MPU158内のアナログ−デ
ジタル変換器(D A C)によってデジタル形式に変換され、かつ次にシリア
ルバス230によって無線機200に送ることができる。表示装置152は前記
制御MPU158によって制御され、かつステータスおよび監視目的並びにキー
ボードエントリのフィードバックのためにシステム100内の他のMPUによっ
てバス230を介してアクセス可能である。
外部オプションのMPU182は無線システム100のオプション180および
拡張のためのサポートを提供する。
無線機および制御ユニットのプログラミング、デジタル音声記憶、電話のシグナ
リング、マルチ周波数および単一周波数トランキング、その池のような、主たる
通信機能は全て外部オプションのサブセクション180によってサポートできる
機能の例である。
シリアルバス230は無線システム100内の全てのMPU158.182およ
び206の物理的インタフェースを提供する。それが3線リンク(信号、ビジー
、およびグランド)からなりかつ図示しない他の内部または外部サブセクション
にバス接続することができる。外部で使用される場合、該ケーブルはツィステッ
ドペア、シールドされたオーディオまたは光ファイバとすることができる。該リ
ンクはまた赤外線、超音波またはRFを介して遠隔的に結合することができる。
特定の用途はこれらの要求を増大する。
例えば、移動無線機の用途においては、前記信号ラインは一般にバス+/バスー
ラインとも称される、平衡信号子/信号−ラインに分割しノイズ排除のため相補
的な信号を形成する。前記信号ライン(単数または複数)は実際のシリアルデー
タが送信されかつ受信される場合は双方向ラインである。5B9600モードに
おいては、双方向ビジー(B U S Y)ラインが使用されてデータが信号ラ
イン上にあることを指示する。それは処理の開始および終了が生じたことを示し
かつまたNAKを示すために使用される。好ましい実施例では、内部的であれ外
部的であれ、前記信号ラインおよびビジーラインへとタップ接続する全てのサブ
セクションは[ワイヤードORJ構成を使用する。
シリアルバス230はシステム100のMPU158゜182および206の間
でまたはこれらのMPUのいずれかと外部MPU (単数または複数)との間で
通信の必要性が存在する場合にはいずれの時でも使用できる。5B9600モー
ドにおいては、MPUの間の通信は前記双方向シリアルバス230によって毎秒
9600ビツト(B P S)で送信されるシリアルデータを使用して行なわれ
る。該アーキテクチャは充分に一般的であるから数多くの異なるアプリケーショ
ンが構想できる。システムにおける種々のプロセッサへのアクセスは、技術的に
知られた、コンピュータのローカルエリアネットワークにおいてしばしば使用さ
れるC3MA/CD(Carrier 5ence、Multiple Acc
ess with Co11ision Detection)と同様の技術を
使用して双方向データラインおよび双方向ビジーラインを介して得ることができ
る。
シリアルバス230によって行なわれる通信は2つのプロトコルを利用する。初
めに、全てのサブセクションによって理解されている、5B9600固定長プロ
トコルが使用される。第2のプロトコル、シリアルノくス拡張プロトコル(Se
rial Bus Expanded Protoco l : 5BEP)は
一度に2つのMPUによって使用できる。5BEPプロトコルを使用することを
望む場合は、発信MPU(ホスト)から受信MPU (目標または相手:tar
get)へと5B9600プロトコルを使用してメツセージが送られ5BEPモ
ードへの変更を要求する。このメツセージは固定長情報パケットを介して送信さ
れる。
受信ユニットは固定長の情報パケットの命令に注意するよう動作を進める。好ま
しい実施例では、この情報/ぐケ・ソトは受信ユニットに対し第2の動作モード
、5BEPへと切り換えるよう要求する。いったんこのモードに入ると、可変長
メツセージが種々のボーレートで通信可能であり、サブセクションの間での通信
を大幅にスピードア・ツブする。
プロトコルの切り換えならびに5BEPプロトコルの他の特徴については後に説
明する。
本発明をより良く理解するため、5B9600プロトコルの特徴の概要が与える
れる。このプロトコルは後に非常に詳細に説明する5BEPプロトコルと混同す
べきではない。
ある装置が前記ビジーラインが不作動であること(これはまた[空き(free
)Jとも称される)を知るため初めにチェックを行なうことによってバスにアク
セスする。
もしそれが空きでなければ、装置は再び試みる前にある期間待機しなければなら
ない。もしそれが空きであれば、ただちにビジーをアクティブに引っ張り、前記
ビジーラインによって送信し、かつ次に前記ビジーラインを解放しなければなら
ない。
5B9600が構築される基本的な基礎単位(bulding block)は
8ビツトのデータバイトである。
スタートおよびストップビットを備えた該データバイト(合計10ビツト)は「
データパケット」と称される。これらのデータパケットは単一の「メツセージ」
を形成するよう連結される。メツセージは典型的には、1つのOpコードバケッ
ト、
アドレスパケット、
データ(アーギュメント)パケット、
およびCRC(巡回冗長符号)パケットからなる
システム】00において許容されている2つの夕・rブのメツセージは要求(R
equests)および放送(Broadcasts)である。要求はシステ1
1内の他のプロセッサから情報を得るために使用される。放送は特定の要求に対
する応答(請願された(solicited)放送または返答)であるかあるい
は、ボタンが作動された時のように、自発的に発生されか一つシステム内の全て
の装置に送信される(請願されない放送)である。
前記シリアルバスにおけるビジーラインは主にバス上にメツセージが存在するこ
とを示す働きをする双方向ラインである。メツセージがバス上で送信できる前に
、送信することを希望する装置はまず前記ビジーラインがアクティブであること
を調べなければならない。もしそれがアクティブでなければ、該装置はビジーラ
インをアクティブに引っ張りかつメツセージを送信する。もしある装置がその送
信に対して応答を期待すれば、前記ビジーラインは前記返答(Reply)の最
初のバイトを受信した後にまたはタイマが経過した後に解放しなけれはならない
。もし応答が期待されなければ、ビジーラインはメツセージの最後のパケットを
送信した後に解放されなければならない。ビジーラインはまたNAKを処方しく
formulate)およびテストするために使用される。
あるメツセージがCRCエラーを有する場合、あるいはもしパケット間遅延違反
が生じれば、受信装置はただちに前記ビジーラインをアクティブに引かなければ
ならない。
放送を送信した後、もとの送信機はビジーラインを解放しかつ次にサンプルして
それが依然としてアクティブに保持され、メツセージが正しく受信されなかった
ことを示しているか否かを調べる。もしビジーが依然としてアクティブに保持さ
れていれば、メツセージはNAK応答を受けておりかつ発信元の送信機はメツセ
ージを再び送信することができる。再送信の間、ビジーは決して状態を変えない
(常にアクティブである)ことに注目すべきである。いったん有効なメツセージ
が受信されると、全てのその後のメツセージはビン−が状態を変えるまで無視さ
れるべきである。
エラーは外部のノイズ発生源、衝突、または不適切なシステムの使用によって生
じる。データ送信におけるエラーはCRCにより、タイミング違反により、ある
いは衝突を検出することにより検出される。衝突の検出は送信された情報を発信
元のMPUにおいて監視することによって達成される。そのようなエラーが生じ
た時、ネガティブアクルッジメント(N A K)が送信される。N A Kは
放送に続< rNAK期間」の間にビジーラインをアクティブに引くことからな
る。この時間インターバルにお1」るアクティブなビジーの単なる存在は少なく
とも1つの聴取者がエラーを検出したことを示す。NAKはいずれかの放送が再
送信されるようにする。
もしノイズがバスを汚染しあるいはもし2つまたはそれ以上のMPUがバスの制
御をまったく同じ時間に取れば、受信されたCRCは期待されるものではなくな
る。送信の間、各々のパケットは1つのパケット時間内で前のパケットに続かな
ければならない(パケット間遅延)。もし「パケット間遅延違反」が発生すれば
、受信機はただちにNAKを行なわなければならない。パケ゛ット間遅延違反が
発生した場合には常に、受信したメツセージは無視されかつ受信機は新しいメツ
セージを受信するために再初期化されなければならない。
システムにおける各々のオプション、制御ヘッドおよび無線機はそれにグループ
および装置アドレスが割当てられている。2つのオプションは同じ装置アドレス
およびグループを持たない。装置アドレスは特定の装置を指定する必要がある場
合にメツセージと共に送信される。
図2を参照すると、プログラム装fi!1195が、シリアルバス230を介し
て無線機200に結合されている。無線機200は本発明にしたがってプログラ
ム装置195およ機200は本発明にしたがってシリアルバス230を介してプ
ログラム装置!195に結合されているものとして示されている。プログラム装
fil 195は無線機200に対して外部オプション180として結合されて
いる。この実施例では、プログラム装ff1195はホストとして動作するが、
それは情報パケットの形でプログラミングメツセージを発生ずるからである。こ
れに対し、無線機200は目標または相手装置として機能するが、それは該無線
機200がプログラム装置195によって発行されるプログラミングコマンドを
受信しかつ実行するからである。
無線機200をプログラミングする上で、プログラム装置195は5B9600
プロトコル、すなわち第1のかつ固定されたボーレートの通信プロトコル、を使
用して通信プロトコルの変更を要求する。無線機200は言い換えれば、アイド
ル状態で待っており、バス230によって動作するいずれかのサブセクションか
ら5B9600情報を受信することを期待している。無線機200はプロトコル
変更要求の受信をプログラム装置195に対してアクルッジする。このアクルッ
ジメントにより、プログラム装置195および無線機200は5BEPモード、
すなわち第2のかつ可変長の通信プロトコル、に切り換わる。プログラム装置1
95および無線機200の双方が5BEPモードになることにより、プログラミ
ングが始まる。プログラム装置195から通信されるプログラミング情報はサブ
パケットからなる情報パケットである。これらのサブパケットは可変長Opコー
ドのサブパケット、可変長のメツセージサイズのサブパケット、データのサブパ
ケット、アドレス、エラー検出用サブパケット、その他を含む。このハンドシェ
イクおよびプログラミングのより詳細な説明は5BEPモードへのエントリを示
す図3および図4を参照して説明する。
図3を参照すると、5BEPによる首尾良い移行(changeover)およ
び通信を行なうためにプログラム装置195によって使用される手順のフローチ
ャートが示されている。無線機200のプログラミングはフローチャート600
の通信部分を使用する。さらに、このプログラミングは無線機200の実質上の
状態(virtualstate)の変更を生じる。スタートブロック601が
ら、ホストは、ブ岬ツク602によって、5BEPモードへの切り換えを要求す
る5B9600メツセージを送信する。無線機200はこの5B9600メツセ
ージの受信を該メツセージをNAK応答しないことによりアクルッジする。この
アクルッジメント(NAKの欠如)は、ブロック604により、無線機200が
エラーなしにメツセージを受信したことを示す。ブロック604の出方はブロッ
ク606に結合されており、そこでプログラム装置195はビジーラインをアク
ティベイトする。このビジーラインは他の装置にプログラム装置195が無線機
200に通信している間シリアルバス230がら離れているように通知するため
に使用される。ビジーラインがアクティベイトされることにより、ホストは、ブ
ロック614により、5BEPメツセージを送信する。
ブロック614から、条件ブロック616がプログラム装置からの5BEPメツ
セージにおいてなんらかのエラーが受信されたか否かを判定する。プログラム装
置195がら無線機200へと通信されたメツセージがエラーを伴って受信され
たことを示すノー(NO)出方はブロック618に結合され、そこで無線機20
0は5BEPネガティブアクルッジメントメッセージ(N A K)をプログラ
ム装置195に返送していくっがのエラーが受信されたメツセージに検出された
ことを示す。このネガティブアクルッジメントは5BEP NAKであり、5B
EPモードにおいて通信されるいずれか他のメツセージと同様のデータバイトで
ある。エラーの検出は技術的によく知られたいくつかの利用可能な方法の内の任
意のものによって行なうことができる。好ましい実施例では、検査台fli(c
hecksum)エラー検出が使用され検査合計パケットが通信される。巡回冗
長検査(CRC)パケットのような他のエラー訂正技術を同じまたはより良好な
エラー検出性能をもって検査合計パケットと置き換えることもできる。ブロック
618の動作の一部として、NAKトライアルの数が1だけ増大される。NAK
が相手からホストへと送信される回数が次に、ブロック620および621によ
って、監視される。ブロック620および621はメツセージが通信される時に
該メツセージを汚染する無線機200とプログラム装置1195との間のリンク
に大きな問題が存在する場合にトライアルの数を制限するよう構成される。この
問題はシリアルバスにおける物理的なものかもしれずあるいはリンク上に加えら
れたノイズかもしれず、ともに反復的なエラーを引き起こす。トライアルの数は
特定のシステムの特性に基づき選択される。好ましい実施例では、エラーを有す
る大きな数のトライアルを示すフラグが上げられる前に3回のトライアルが許容
される。大きな回数のエラーは条件ブロック621のイエス(YES)出力を生
成し、これはブロック610に結合され、そこでホストはビジーラインを解放し
かつ5BEPモードを終了する。この時点で5B9600から5BEPモードへ
の切り換えを再開するにはホストから新しい変更要求を行なわなければならない
。
条件ブロック616のイエス出力はブロック624に結合され、そこでアクルッ
ジメント(A CK)が無線機200からプログラム装置195に送信される。
トライアルの数はこの時点でまたはブロック614の前の任意のポイントでゼロ
にセットされることが理解できる。ブロック616および626を結合する経路
は、図示しない、トライアルの数をクリアするブロックを含む。いったんACK
が返送されると、無線機200は、ブロック626によって、5BEPメツセー
ジによって要求される動作を行なうことになる。プログラミングの特別の場合に
は、無線機200はプログラム装置195からプログラミング情報を受信しかつ
それらをRAM210およびEEPROM208s、:、格納するよう進行する
。
ブロック626は条件ブロック628に結合され、そこでプログラム装置1i1
195の要求に関して判断が行なわれる。
無線機200に通信されたメツセージの種類に応じて、新しい返答(reply
)が予期できる。一般に、要求がホストによって返送された時返答が必要とされ
る。しかしながら、放送(b roadcas t)は返答を必要としない。
種々の形式のメツセージについての詳細は後に説明する。
条件ブロック628は前記通信されたメツセージが無線機200からの応答を要
求しているか否かを判定する。イエス出力はブロック630に結合され、そこで
無線機200はプログラム装置195に返答を送り返す。このブロックから、動
作は条件ブロック608に結合され、そこで全てのホストの要求がサービスされ
たか否かに対し判断が行なわれる。ブロック608のイエス出力はブロック61
0に結合され、そこでホスト195はビジーラインを解放して5BEPモードの
終了を示す。ブロック612はホストおよび目標の双方を5B9600のモード
へと戻す。条件ブロック608のノー出力はブロック614へとつながる。
無線機200のプログラミングにおいては該無線機はホストに対して特定の情報
パケットによって応答することは必要ないかもしれないが、本発明の他の態様に
おいては、プログラミング装置195は実際には無線機200から情報を要求し
得ることが理解される。1つのそのような用途はプログラム装置195によって
発行される読取りコマンドであり、該コマンドは、無線システム100のサブシ
ステムのいずれかにおける、メモリの一部がそこに転送し戻されることを要求す
る。この状況では、無線機200はそのメモリの内容をプログラム装置195に
転送し戻すよう処理することが分かる。いったん返答がプログラム装置195に
戻されると、動作は条件ブロック608に戻りホストからの最後の要求がサービ
スされたか否かを判定する。
条件ブロック628のノー出力はまた条件ブロック608に戻される。
フローチャート600の重要な観点はプログラム装置195および無線機200
の間で受信されかつ送信されるメツセージは可変長とすることができ、かつした
がって各々のメツセージはプログラム装置195からの完全な要求または無線機
200からの完全な応答を含み得ることである。
これは固定長のメツセージが受信および送信されて通信のプロトコルに対し大き
なオーバヘッドを生じている現在入手可能なシステムに対し意義深いことである
。5BEPプロトコルによって提供される可変長の利点は無線通信装置が現在入
手可能な機構に比較して遥かに短い期間でプログラムできるようにする。本発明
の他の利点は無線通信装置が今やブートストラップモードにおいて効率的にプロ
グラムできることである。
図4およびフローチャート500を参照すると、本発明に係わる無線システム1
00のレジスタモデル化要素の間での通信プロトコルで使用されるボーレートを
変更する方法が示されている。スタートブロック501から、ホストは、ブロッ
ク502によって、新しいボーレートへの切り換えを要求する5BEPメツセー
ジを送信する。明かに、ブロック502はホストがすでに5BEPモードへの切
り換えを要求しておりかつプログラム装置195および無線機200がすでにこ
の動作モードに切り換えているものと仮定し、ている。いったんボーレート切換
メツセージが送信されるど、条件ブロック504は該ボーレート変更要求が無線
機によってエラーなしに受信されたか否かを判定する。
エラーが発見されたことを示す、ノー出力はブロック508に結合され、そこで
ネガティブアク、Jレッジメン)・(NAK)が無線機からホストへと古いボー
レートで送信される。ブロック508の出力はトライアルの回数を監視するブロ
ック506を介してブロック502に戻される。ブロック506は通信リンク2
30における散発的でないエラーを検出するためにトライアルの回数を監視する
。条件ブロック504のイエス出力はブロック510に結合され、そこでアクル
ッジメント(A CK)が古いボーレートでホストに返送され、かつボーレート
が、無線機において、要求された新しいものへと変更される。ブロック510の
出力は条件ブロック512に結合され、そこでホストによって受信されるA C
Kの条件に関して問い合わせが行なわれる。条件ブロック512のイエス出力は
プロ・ツク51−4に結合され、そこでホストは新(7いボーレート八−と切り
換える。条件ブロック512の八−出力はさらに他の条件ブロック518に結合
され、そこでタイマが監視される。この条件ブロックはタイマの経過を調べる。
タイマが経過したことを示すイエス出力はブロック502に戻され、そこでホス
トはボーレートを変更する第2の要求を送信する。
ホストがアクルッジメントを受信するのに割当てられた時間が経過していないこ
とを示すノー出力はブロック516に続き、そこでホストにアクル・ソジメント
につ(1てチェックを行なわせる。ブロック516の出力は条件ブロック512
に戻り、そこでACKの受信が判定される。
フローチャート500により、2つの構成要素の間での通信は何らのl\−ドウ
エアの相互作用なしに変更できることが分かる。好ましい実施例では、高いボー
レートが望ましく、それは無線システム100のサブセクションのプログラミン
グは多量のデータが転送されることを必要とするからである。このボーレートの
変更のルーチンはプログラミングに限定されるものではなくかつ任意のデータの
転送に使用できることが理解される。
本発明の重要な利点はフラッシュEEPROMの利用によって実現される。電気
的に消去可能なメモリにファームウェアを記憶するこれらのメモリ要素の利用可
能性はも:よや到達不能なものではなくかつ容易に実施できるものである。しカ
ルながら、現存の通信プロトコル(こよれば、大きなメモリ要素、すなわち25
6キロノ(イトのデノ(イス、をプログラムするための時間は過剰なものであり
力九つ効率的なものではない。さらに、5B9600のような、利用可能なプロ
トコルはそれらの固定されたアドレスフィールドによりアドレス範囲を制限する
。本発明によって得られる利点は5BEPプロトコルのボーレートによって何ら
の制約も課されないことであり、したがってシリアルレノくスζこよってメモリ
装置がプログラムされる速度は大幅客こ改善できる。さらに、5BEPによって
提供されるアドレシング能力の増強のため16メガバイトまでの装置およびそれ
より大きな装置もこの新しいプロトコルを使用してプログラムできる。メモリの
プログラミング時間は可変長メツセージを使用すると10の係数で低減されるこ
とが予期できる。
これは主に小さなオーバヘッドを有する多量のデータを送信する利点を有するこ
とにより達成され、プロトコルを高度に効率的なものにする。本発明の1つの他
の利点はシリアルバスを使用する場合に無線機の表示を更新することによるもの
である。このプロトコルを使用する場合、可変長メツセージおよび可変ボーレー
トを使用することにより表示装置上に情報を表示する効率が大幅に改善されるこ
とが再び認識できる。
好ましい実施例では、前記5BEPはシリアルバスによるオプションの間でまた
は外部コンピュータと無線機またはそのオプションのメインプロセッサとの間で
高いデータ転送レートを達成するために使用される。シリアルバス上のノードの
間でまたはホストから接続されても良くあるいは接続されなくても良いオプショ
ンへの1対1の通信に向けられている。前記メツセージは、要求、放送、応答ま
たは返答(Replies)、アクノレツジ(A CK)およびネガティブアク
ルッジ(N A K)からなる。要求は目標または相手(target)が接続
されることを要求し、放送は要求しない。返答は要求に応じて送信するのみであ
る。
前記5BEPは特定の構成がどのボーレートを使用するかを選択できるようにす
ることによって高いスルーブツトを達成する。好ましい実施例は38.4にボー
までのレートをサポートする。より高速のプラットホームを使用するより高いレ
ートも実現できることが充分理解される。プロトコルそれ自体はSCIバイト時
間に関して最高の(m。
st)タイミングを指定する。また、5BEPメツセージにおける可変バイトの
カウントおよび単一バイトのアクルッジメントも高いスループットに寄与する。
一般に、かつ好ましい実施例においては、5BEPは一時的なシリアルバス「モ
ード」である。以後ホストと称される、5BEPの発信元はグループ/アドレス
によって識別されるバスにより1つのノードに5B9600メツセージを送信す
る。前記グループ/アドレスにより目標とされるノード、すなわち以後目標また
は相手装置と称される、無線機200はこの5BEPREQメツセージにより5
BEPを達成するよう要求する。該相手装置は存在しなくても良く、その場合は
ホストは5B9600のNAKがないものとして進行する。この状況の間は、放
送メツセージのみが意味を持つ。5B9600から5BEPプロトコルに入るこ
とができることに加えて、それはブートストラップモードを介して直接入ること
ができる。言い換えれば、相手装置はその内部プロセッサが前記シリアルバスを
介しての5BEPメツセージによりそのファームウェア装置(フラッシュまたは
UVEPROM)を再プログラムできるようにする。前記ファームウェアデバイ
スは相手装置が製造された時に空っぽにされる(blank)可能性があるから
、このプロトコルはプロセッサのブートストラップモードのために書かれたアル
ゴリズムと組合わせて無線機のプロセッサがファームウェアをそのプログラムス
ペースのデバイスに書き込みできるようにする。
5BEPプロトコルの性能の詳細を示すために、いくつかのタイミングおよび流
れ図を参照する。これらの図は5B9600から5BEPへの切り換えを含む5
BEPプロトコルの特徴のいくつかを理解する上での助けを与えることを意図し
ている。これらの図は好ましい実施例の特定のものを表わしておりかつ本発明に
対する制限であると解釈されるべきできない。
図5は、5BEPモードへのエントリのタイミングおよび流れ図を示す。相手先
または目標のプロセッサがそのEEPROM内にファームウェアを有する場合、
それは5B9600モードで動作している。5BEPモードへと切り換えるため
に、相手装置に対してホストが5BEP動作を始めることを希望することを指令
する5B9600のopコードがある。ホストは5BEPREQ 5B9600
バスメツセージ710を送信する。この要求に続き、ビジーラインが解放され、
706、その間に相手装置からのNAKを調べる。もし、期間706のロー状態
の間の一時的なハイによって識別される、NAKが存在すれば、ホストはりトラ
イを行なう。NAKが続くリトライは5BEPモードへのエントリの不許可とな
る。もし5B9600のNAKが発生されなければ、ホストは再び「ビジー」ラ
インをアクティブに引かなければならなず(730) 、かつ5BEPメツセー
ジ712を送信するよう進行する。全ての他のバスのオプションは5BEI’R
EQのOpコードを見た後は静止状態に(quiet)留まっておりかつ5BE
Pはビジーラインがアクティブに留まっている限り進行することができる(73
0)。もし相手装置が存在しなければ、5BEPへのエントリはあたかもそれが
存在するかのように進行する。
相手装置が接続されている場合に5BEPに入ると、それ(相手装置)は準備が
でき次第でるだけ速(5BEPボーレートでACKを送らなければならない。ホ
ストは5BEPボーレートにおいて5 SCI/<イト時間の間このACKを待
機すべきであり、かつ5 3CIバイト時間の後にACKが見られなければ相手
装置は存在しない可能性がある。SCIバイト時間は一般に動作しているボーレ
ートで1バイト(8ビツト)のデータに加えてスタートおよびストップビットを
送信するのに必要とされる時間量として定義される。この初期ACKはホストに
それが5 3Ciバイト時間の間待機するよりはむしろ直ちにメツセージを送信
できることを通知するために使用される。もし相手装置がACKを行なうのが遅
れるとかつホストが要求または放送を送信するよう進行すると、たぶん衝突が起
きるであろう。そのような衝突が起きかつバス上に相手装置がある場合、該相手
装置は該要求または放送に対しNAK応答するであろう。ホストは相手装置が完
全なメツセージを受信しなかったのでリトライを行なう責務を有する。
もし相手装置が、新しい無線機の場合のように、開始のためのファームウェアを
持たない場合、ホストは該相手装置が5BEPREQ 710を発行した後に5
BEPモードに入ることを期待できない。5BEPREQ 710は依然として
発行され他のバスオプションが5BEPがバス上で行なわれようとしていること
に気がつくようにしなければならない。相手装置は到達不能であるから、該相手
装置と通信する唯一の手段は該相手装置をブートストラップモードにしかつブー
トストラップコードをそれにダウンロードすることである。好ましい実施例では
、マイクロプロセッサユニット300はMC68HC11型マイクロプロセツサ
である。このプロセッサはブートストラップモードをパワーアップするためにM
ODA/Bラインをローにすることによりリセットから逃れなければならない。
相手装置がリセットするときMODA/Bがローであることを保証するのはホス
トの責務である。任意選択的には、無線機のアーキテクチャ−が外部制御によっ
て要求されたラインによりこれが生じることができるようにし得る。
図6は、相手装置がファームウェアを持たない場合の5BEPへのエントリを示
す。言い換えれば、この図はプロセッサをブートストラップモードにするのに必
要な事象を示している。リセットパルス802は相手装置がシリアルバスによっ
てリセットするよう指令され得ないから5B9600メツセージまたは5BEP
メツセージの使用によって発生することができない。工場での環境では、リセッ
トパルス802は相手装置からリセットを引き起こすのに充分長い期間の間型源
を自動的に除去することにより引き起こされる。しかしながら、現場ではこのリ
セットパルス802は再プログラム機器を操作する人間によって手動により行な
わなければならない。通常の状況では、オペレータが手動により相手装置をリセ
ットさせなければならない場合は現場ではほんの少ししかない。
ブートストラップコードをダウンロードするためのプロトコルはプロセッサおよ
びそのクロック速度に依存することに注目すべきである。情報をダウンロードす
るために、MC688C11のリファレンスマニュアルを参照すべきである。5
BEPへのエントリについて考察すべき最後の場合は相手装置が5B9600に
よって通信するファームウェアを有するが、それをブートストラップモードに置
かなければならない場合である。これは相手装置のファームウェアがアップグレ
ードされるべき場合である。このエントリ手順が図7に示されている。相手装置
におけるプロセッサはそのROM内にファームウェアを有するから、該プロセッ
サは5B9600モードで動作する。5BEPモードへの切り換えのために、ホ
ストは5BEr’REQ 5B9600バスメツセージ710を送信し、かつも
し相手装置がそれを受信しかつ5B9600のNAKを発生しなければ、ホスト
は「ビジー」をアクティブに引かなければならない(730)。全ての他のバス
オプションは5BEPREQのopコードを見た後静止状態に留まっておりかつ
5BEPはビジーラインがアクティブに留まっている限り進行できる。もし相手
装置が存在しなければ、5BEPへのエントリはあたかもそれが存在するかのよ
うに進行する。
RESET−REQのopコードがホストから送信されて相手装置がそれ自身の
リセットパルスを発生すべきことを指示し、ブートストラップモードを生じる。
相手が接続されている場合に5BEPに入ると、それ(相手装置)は準備ができ
次第でるだけ速< 5BEPボーレートでACKを送らなければならない。ホス
トは5BEPボーレートで5 3CIバイト時間の間このACKを待機すべきで
あり、かつもしACKが5 3CIバイト時間の後に見られなければ、相手装置
は存在しない可能性がある。この初期ACKはホストにそれが5 3CIバイト
時間の間待つよりはむしろ、直ちにメツセージを送信できることを通知するため
に使用される。もし相手装置が遅れてACKを送ればかつホストが要求または放
送を送信するよう進行すれば、たぶん衝突が生じるであろう。そのような衝突が
生じた場合、バス上に相手装置があり、かつ該相手装置は該要求または放送に対
しNAKを送信するであろう。
ホストは相手装置が完全なメツセージを受信しないため要求に応じてリトライを
行なう責務を有する。
次に、図8、図9および図10を参照すると、3つの異なる動作モードに対して
5BEPモードからの退出(exit)について示されている。5B9600か
ら5BEPに入りかつ相手装置がブートストラップモードに入らなかった場合に
は、5BEPからの退出はビジーライン1002を解放することにより達成でき
る。いったんビジーラインが解放されると、相手プロセッサは5B9600に戻
らな(ではならない。これは図8に示されている。全ての他のバスオプションは
ビジーラインが)1イに移るのを観察しかつそれら自身を5B9600モードで
再びアクティベイトする。
あるいは、図9に示されるように、ホストは相手装置に対してリセット−放送(
RESET−BROADCAST)メツセージ1106を発行することにより相
手装置を5BEPから退出させることができる。前記リセット放送メツセージ1
16は相手装置にリセットを行なわせかつそれによって通常の5B9600バス
プロトコルの動作をパワーアップさせる。ビジーラインにおいて、前記パルス1
102は相手装置のプロセッサにより発生される通常の「パワーオン」ビジー状
態を示す。このパルスの立上りエツジは5B9600モードでの相手装置のパワ
ーアップを開始させる。バス要求ライン上のパルス1104は相手装置のプロセ
ッサによって発生される通常の「パワーアップ」形リセットである。
図10に示されるように、さらに他の選択肢として、もし相手装置がブートスト
ラップモードにありそのファームウェアがプログラムされていれば、5BEPリ
セット−放送メツセージ1106が該相手装置に送信されなければならなず、か
つそれがもともとブートストラップモードに移ることができた条件を除去しなけ
ればならない(MODA/Bがローにセットされる)。もし相手装置が実行すべ
きファームウェアを有しておれば、それは取り上げられ5B9600モードを動
作させることになる。パルス1202は相手装置のプロセッサにおけるcopタ
イムアウトによって引き起こされるリセットパルスを表わす。再び相手装置が点
線1204で示されるように5B9600においてパワーアップする。
5BEPメツセージのフォーマットはメツセージが1バイトからスタートして2
16+4バイトの長さまで可変長にできる点で非常に柔軟性がある。実際に、最
大のメッセージ長は目標または相手装置において利用できるRAMの量によって
制限される。
最初のバイトのメツセージは常に何が続くかを決定する。
表1は最初のバイトに対する可能性およびそれが引き続くバイトがなにを意味す
るかにどのように影響を与えるかを示す。
msn lsn メツセージのリセットに対する関係
($0−$E) ($0−$E) 拡張なし、lsnにおける検査合計へのカウ
ント
($0−$E) (SF) 2つの拡張されたサイズのバイトが続く
(SF) ($0−$E) 1つの拡張されたopコードバイトが続く、Isn
に
おける検査合計へのカウント
(SF) (SF) 1つの拡張されたOpコードのバイト、2つの拡張された
サイズのバイトが続く
表I 5EEPメツセージの最初のバイト前記5BEPメツセージの最初のバイ
トはニブル毎のベースで(per n1bble basis)考えられるべき
である。すなわち、最初のニブルまたは最上位ニブル(msn)はOpコード情
報を含み、かつ第2のニブルまたは最下位ニブル(lsn)は引き続くバイトの
数に関する情報を含む。したがって、もし前記1snが$0であれば、引き続く
バイトはもはやなく、かつ$0をlsnとして持つ全ての初期バイトは1バイト
のメツセージである。
ACKおよびNAKは1バイトのメツセージであり検査合計を有しない。
前記最初のバイトのlsnは$0からSFまでの値を取り得る。前記1snが$
0〜$Eである場合は、それは特定のメツセージにおいて引き続くバイトの数を
表わす。それがSFである場合は、それは拡張サイズの2つの付加的なバイトが
続きかつこれらはメツセージサイズを含むことを意味する。
前記最初のバイトのmsnはopコードである。それは$0からSFまでの値を
取り得る。それが$0〜$Eである場合は、それはOpコードである。もしそれ
がSFであれば、拡張されたopコードである引き続く付加的なバイトがある。
第3の組合わせはm s nにSFを含み、付加的なOpコードバイトが続くこ
とを示している。拡張されたopコードは前記1snのカウントの部分ではなく
、それはmsnがSFであるという事実により拡張されたopコードがそこにあ
ることが知られているからである。
メツセージの最後のバイトとして常に検査合計があり前記最初のバイトのlsn
におけるあるいは1またはそれ以上の拡張されたサイズにおけるカウントを含ん
でいる。検査合計(checksum)は次のように計算される。
検査合計=$FF−((メツセージ中の全てのバイトの和)モジュラス256)
図11は、5BEPメツセージフオーマツトにより可能な種々のサイズのいくつ
かのサンプルメツセージを示す。
これらのサンプルメツセージの提示は読者に5BEPプロトコルのために使用さ
れるメッセージ長グ(messaging)の良好な理解を与えることを意図し
たものである。
単一バイトのメツセージ902は所望の可変長オペレーションコード(opコー
ド)を示す最初のニブル9022を含むものとして示されている。第2のニブル
は、もしあれば、検査合計バイトを含む引き続くバイトの数を示す。前記可変長
のopコードは、リセット操作コード、読み出し操作コード、書き込み操作コー
ド、ピットセット操作コード、ビットクリア操作コード、アクルッジ操作コード
、およびネガティブアクルッジ操作コードからなるコードのグループから選択さ
れた1つまたはそれ以上のコードとすることができる。
いくつかの複数バイト(multi−byte)メツセージがこのメツセージフ
ォーマットが提供する広範囲の異なる可能性を与えるためにこの図において示さ
れている。
複数バイトメツセージ904は、最初のバイトで表わされる、opコードおよび
バイトカウントを含む。第2のバイトは検査合計バイト9042であり、これは
エラー検出目的のために使用される。第2のニブルにおけるバイトカウントの内
容は最初のバイトに単一のバイトが続くことを示すものである。マルチバイトメ
ツセージ906はデータ部分9062を含む。該データ部分9062はこのメツ
セージでは単一バイトを含む。カウントニブルは検査合計を含む2バイトのデー
タが続くことを示している。同様に、メツセージ908はバイトカウントによっ
て示されるように4バイトのデータを含む。
メツセージ910は拡張されたopコード9102を含む。拡張されたopコー
ドの存在は最初のニブルにおける$Fによって示されている。この$Fは前記カ
ウントニブルの後の最初のバイトが拡張されたopコードであることを示してい
る。これは5B9600プロトコルによって以前には利用できなかった数多くの
機能を達成する上で有益である。メツセージ912は第2のニブルにおいて拡張
されたバイトカウント9122が使用されることを示す$Fを含む。この拡張さ
れたバイトカウントはデータバイトの数が単−二プルで提供される13を超えて
いる状況において使用される。2つのカウントバイトが利用できることにより、
合計64にバイトから1を減算した数のデータが一度に転送できる。当業者は単
一メツセージの大きさを拡張するためにデータ転送はさらに該カウントのために
より多くのバイトを割当てることによって拡張できることを理解するであろう。
第1および第2のニブルの$Fの組合わせは拡張されたOpコードおよび拡張さ
れたバイトカウントの双方が続くことを示している。これはメツセージ914に
よって示されている。メツセージ916は拡張されたOpコードがゼロでないデ
ータカウントと共に使用されるさらに他の組合わせを示している。最後に、メツ
セージ918は拡張されたopコードとそれに続く検査合計を示している。
メツセージ902および916は、それぞれ、検査合計のない単一バイトおよび
複数バイトのメツセージである。
これらのメツセージは好ましい実施例においては、ネガティブまたはポジティブ
の、アクルッジメントのために使用される。これは前に述べたように検査合計の
使用によって遭遇するメッセージングのオーバヘッドを最小にすることを意図し
ている。
好ましい実施例では、5BEPプロトコルは、常にホストおよび目標または相手
装置があるという概念に依存している。ホストは5BEPのイニシェーク(in
itiator)、すなわち、始めに5B9600 5BEPREQメツセージ
を送信する装置、であるものと定義される。5BEPの全期間(session
)に対し、1つのホストのみが存在する。前記相手装置はそのアドレスが始めの
5B9600 5BEPREQメツセージにある装置である。
該相手装置はホストからの放送に応じてACK、NAK。
およびホストからの要求に応じてACK、NAKまたは返答のみを発生すること
ができる。5BEP期間の持続期間の間(ビジーがローに保持されている全時間
)、ホストは制御に留まっておりかつメツセージを開始しなければならない。相
手装置は「スレイブ」に留まっておりかつホストによって送信されたメツセージ
に応答するのみである。無線機は5BEPの期間の間ホストまたは相手装置とな
ることかできる。ホストのメツセージはどの様な種類のアクノレツジが要求され
るかに基づき2つのカテゴリに分類される。それらは放送(Broadcast
s)および要求(Requests)である。相手装置のメツセージはACK、
NAKおよび返答(Replies)である。各々の説明は以下に行なう。
図12および図13を参照すると、本発明に係わる5BEP放送の2つの例につ
いてのタイミング図が示されている。前に述べたように、放送は何らの特定の相
手情報を持たずにホストから送信されるメツセージである。放送はホストから開
始されかつACKまたはNAKを要求しないが、もしそれが存在すれば受け入れ
ることになる。放送は無線機が無線機内で生じている事象を外部世界に通知する
ためにホストとして5BEPを開始する場合に使用することを意図している。目
標または相手装置は接続されているかもしれずあるいは接続されていないかもし
れないから、ACKまたはNAKは放送については要求されない。放送を開始す
るホストはA CK/N A Kは任意選択的なものであることに気が付かなけ
ればならない。
放送のためには、目標または相手装置は接続されている必要はない。5BEPは
半2重(half−duplex)のハードウェアのハンドシェイクのない環境
で動作するよう設計されており、かつしたがってそのエラー回復においてそうで
ない場合になり得るほど頑健(robust)ではない。該プロトコルは相手装
置へデータを書く場合に、ダウンローFのボーレートまたは相手装置における装
置へのプログラム時間がスループットへの制限要因となるよう設計されている。
もし相手装置が接続されていれば、それは放送に対しACKまたはNAKを行な
わなければならない。もし相手装置がACKを送れば、ホストはもし希望するな
らば他のメツセージを送ることができる。図12は、ACKが相手装置によって
返送された場合の状況を示す。もし相手装置がNAKを送れば、前記放送が到着
していないという積極的な確認があり、したがってホストはA CKが見られる
まであるいはACK/NAKが見られなくなるまで(相手装置がリトライにおい
て中途で除去された場合)4回までリトライを行なわなければならない。
図13を参照すると、もし相手装置が接続されていなければ、ホストは決してA
CKまたはNAKを見ることはない。ホストは最初の放送15o2を送信した後
に相手装置が接続されているか否かを知ることができないから、それはACKま
たはNAKがバス上に現われるかを見るために1OSCIバイト時間待機しなけ
ればならない。もしホストが1OSCIバイト時間(1504)に何も見なけれ
ば、それは相手装置が接続されていないものと想定することができ、かつ他の放
送、1506、を送信するよう進行する。明かに、ホストは相手装置が接続され
ていないことを認識した後決して要求を送信すべきではない。もし送信すると、
リトライシーケンスを行ないがっ決してACKy’ N A Kまたは返答を見
ることはない。もし相手装置が放送に対しA CKを送れば、これが必要なこと
の全てである。
要求はホストによって開始されかつACKまたはNAKを要求する。もしホスト
がいずれも検出しなければ、相手装置が接続されていないことを結論づけ、かつ
その要求がもはや意味を成さないことを結論づけなければならない。
これは相手装置が5BEP期間の中途で除去された場合であろう。要求は常にあ
る主の返答を要求する。それらは前記ACKの後に相手装置からホストへ送信さ
れることになる。ホストは最後の要求に対する返答が見られるまで他の要求また
は放送を送信することはできない。
ACKおよびNAKは検出された任意のメツセージ(放送または要求)に対し相
手装置によりホストへと送信される。ACKはいったん正しいメツセージの検査
合計が受信されると、相手装置によって直ちに送信できる。ACKはホストに対
しメツセージ(放送または要求)が相手装置によって正しく受信されたこと、お
よびホストがリトライを行なうべきでないことをホストに通知する働きを成す。
ACKは相手装置からホストへと送信されるのみであり、決してホストから相手
装置へと送信されない。ACKおよびNAKは図14、図15および図16にお
いて相手装置がACKを送った場合、NAKを送った場合、あるいは何らの応答
も送らなかった場合につきそれぞれ示されている。
ACKは相手装置によって検査合計が受信された後1゜SCIバイトの時間ウィ
ンドウ内で送信されなければならない。典型的には、ホストはこのACKをほと
んど直ちに送信することができるであろう。NAKは相手装置によってホストに
対し相手装置により汚染された(corrupted)メツセージが受信された
場合に送信される。悪い検査台8Iまたは正しくないバイトのカウントは相手装
置に悪い検査合計を知覚させかっNAKを送信するようセットアツプさせる。バ
スは双方向的であるがら、NAKはACKのように直ちには送信できず、それは
(カウントバイトが正しくない場合のように)相手装置がすてにNAKに移るこ
とを決定していても前記バスはより多くのバイトを送信するのに忙しくなってい
るからである。
NAKはバスがアイドルになってから5 8CIバイト時間後に送られなければ
ならない。すなわち、ホストはメツセージの送信を続けることができるが、相手
装置はバスがアイドルになるまで5 SC1バイト時間待たなければならない。
これは図15に示されている。NAKは最後のバイトが通過してから10 SC
Iバイト時間前に送信されなければならない。この時間制限(1702)はホス
トがいつりトライを行なうかを知るために必要とされる。相手装置がNAKを送
信するときは常にホストは4回までリトライ(1704)を行なわなければなら
ない。もしホストがNAKを見続ければ、それは通信が行なわれるためには物理
的な媒体があまりにもノイズが多いと結論づけるべきである。
相手装置がA CKまたはNAKをホストに返送する可能性があるが、それはホ
ストへの途中でバス上で汚染される。
この場合、ホストは相手装置が最後のメツセージを正しく受信しなかったものと
結論づけるべきであり、か−っ図16に示すように、最後のメツセージをリトラ
イすべきである。
このリトライ1704は前記最後のメツセージに対する検査合計が送信された後
10 SCIバイト時間の後にのみ行なわれるべきである、図16の1702゜
ホストが放送(これはACKまたはNAKを要求しない)を送信し、かつ検査合
計の後の1OSCIバイト時間のウィンドウ内にライン上で異常があった場合、
ホストは相手装置が接続されておりかつそのA CKまたはNAKが汚染された
と考えることになる。この場合、ホストはそれがA CK/N AKを得るかあ
るいは前記10 SCIバイト時間のウィンドウ内に何も得なくなるまで放送を
リトライしなければならない。ホストが最後の要求にリトライしようとしている
時に相手装置が応答1802を送るよう進行する可能性があることに注意を要す
る。この場合、衝突が生じるであろう。ホストは所望の応答が汚染されたことを
認識し、かつ最後の要求を再び送らなければならない。
もう一度図14を参照すると、返答(Replies)1602が要求に応じて
かつACKが送信された後にのみ相手装置によってホストに送信されることが分
かる。ホストはもし返答がホストへの途中で汚染されれば相手装置に対しA C
K/N A Kを送り返さない。この場合、ホストは最後の要求を再送しなけれ
ばならない。もし該要求のopコードが相手装置によってサポートされていなけ
れば、相手装置は依然としてACKを送らなければならない(ACKのみがメツ
セージが相手装置へ進んだことを示すからである)。
バスタイミングが正しく働くためは、ホストは決してそれがメツセージを送信し
ている間に、53CIバイトの時間より多く休止してはならない。もしホストが
5 8Clバイト時間より長く休止すれば、相手装置は自由にNAKを送ること
になり、これはホストがメツセージの中途で停止したように見えるからである。
返答の間、相手装置は各バイトの間で5 3CIバイト時間より多くの間体止す
ることはできない。
プロトコルのスループットを増大するために、ボーレートは5BEPメツセージ
に対して変更することができる。
始めの5BEPREQ 5B9600メツセージは5BEPメツセージの引き続
くボーレートが何であるかを示すビットを含む。ホストは前もって相手装置によ
ってどのようなボーレートがサポートされているかを知り、かつこれらの内の1
つを使用しなければならない。好ましい実施例では、いったん5BEPモードに
入ると、ボーレートはその5BEPの期間の間同じに留まっておりかつ変更でき
ない。
他の実施例では依然として5BEPモードにある間にボーレートを変更するため
のopコードを含むことができる。
ブートストラップモードにおいては、ボーレート選択は異なる様式で行なわれる
。ホストファイルにはヘッダがあり、ブートストラップモードの間に5BEPに
対してどのボーレートが使用されるべきかを示すブートストラップコードを含ん
でいる。ホストはそのボーレートをセットするためにこのファイルに受ける情報
を探す責務を有することになる。
図17を参照すると、ACKメツセージが1バイトのメツセージであるものとし
て示されており、これはホストに対しメツセージが相手装置によって正しい検査
合計1904と共に受信されたことを通知するために排他的に使用される。ホス
トがACKを受信した時、それはりトライを行なってはならない。ACKは正し
いメツセージが相手装置によって受信された後10 SCIバイト時間内に送信
されなければならない。ACKウィンドウ1902はこのタイムリミツトを規定
する。ACKをこの時間内に送信しないことはホストに対して相手装置が受信し
ていないことを示すことになり、ホストがリトライできるようにする。
図18を参照すると、NAKタイミング図が示されている。NAKメツセージは
ホストに対し前のメツセージが相手装置によって正しくない状態で受信されたこ
とを通知するために使用される。正しくなく受信されたメツセージは間違った検
査合計2006、メツセージ中の少なすぎるバイト、またはメツセージ中の多す
ぎるバイトによって引き起こされる。NAKはホストに直ちに返送することはで
きない。相手装置はバスがアイドルになるのを、2002で示されるように、N
AKを送信する前に5 3CIバイト時間の間荷機しなければならない。NAK
は、2o04によって示されるように、バスが5 3CIバイト時間の間アイド
ルになった後5 SCIバイト時間内に送信されなければならない。
図19を参照すると、本発明に係わるリセット−放送タイミング図が示されてい
る。リセット−放送メツセージ1106は相手装置にそれ自身をリセットするよ
う通知するために使用される(2104)。相手装置はこのメツセージの結果と
してハードウェアリセットを行なうべきである。
相手装置のプロセッサがそれ自身をリセットする1つの方法はCOPタイマのリ
フレッシュを停止することである。
このメツセージはブートストラップモードに入り、あるいは5BEPを退出する
ために使用される。相手装置はホストへのACKの返送の100ミリセカンド以
内にリセットからでてくるべきである。ホストがバス上の池のノードに対し相手
装置がリセットしていることを通知するために、相手装置はリセットの前に少な
くとも30ミリセカンド待たなければならない。この時間ウィンドウは2102
によって示されている。
好ましい実施例では、5BEPプロトコルは数多くの要求を取り扱うことができ
る。これらの要求のいくつかは、データ読取り要求(READ−DATA−RE
Q) 、検査合計要求(CHECKSUM−REQ) 、ステータス要求(ST
ATUS−REQ) 、フラッシュイレーズ要求(ERASE−FLASH−R
EQ) 、データ書込み要求(WRITE−DATA−REQ) 、および構成
要求(CONF I GURAT l0N−REQ)を含む。これらの要求メツ
セージの各々について以下に簡単な説明を行なう。
データ読取り要求は相手装置に特定のアドレスからのブロックのデータを送信す
るよう要求するために使用される。
このアドレスは該メツセージのアドレスバイトに含まれている。返送されなけれ
ばならないバイトのカウントはBYTE−CNT (バイトカウント)に含まれ
ている。BYTE−CNTは戻されなければならないデータバイトの実際の数で
あり、$00はゼロバイトが戻されるべきことを意味し、かつ$FFは255バ
イトである。このメツセージはデータ読取り要求メツセージによって要求された
データを含む。データ読取り返答(READ−DATA−REPLY)メツセー
ジは暗黙の(implied)レディー返答(READY−REPLY)である
。
前記検査合計要求メツセージは相手装置に対し前記カウントバイトに含まれてい
るバイトのカウントに対するメツセージアドレスバイトに含まれるアドレスでス
タートして検査合計操作を行なうよう指令する。どれだけ多くのバイトが加算さ
れなければならないかを示す2つのカウントバイトがある。加算は指定されたア
ドレスでスタートしかつ結果に対して許容されている16ビツトをオーバフロー
するいずれのビットも捨てるストレートサム(straight sum)とし
て定義される。このメツセージはフラッシュまたはE E P ROMプログラ
ミング期間の終りに使用されて前記部分が全てのロケーションが正しくプログラ
ムされることを保証する。この結果は検査合計返答(CHECKSUM−REP
LY)メツセージで戻される。このメツセージは相手装置によってそれが検査合
計要求において特定されたアドレスから得た検査合計と共にホストに戻される。
該検査合計は2バイトに含まれている。検査合計を計算する方法は前記検査合計
要求メツセージ記述に示されている。
前記構成要求メンセージは相手装置に5BEPの間におけるその内部バッファの
大きさについて問い合わせるために使用される。このopコードによって戻され
る値は構成返答(CONFIGURATION−REPLY)メツセージを介す
る。ホストはもしそれが相手装置が受け入れ可能な最大のメツセージサイズがい
くらであるかを知らない場合はこのメツセージを発行しなければならない。構成
返答メツセージは3つの付加的なバイトを含む。該付加的なバイトの最初の2バ
イトは相手装置が受け入れ可能な最大のメツセージサイズを表わすカウントを含
んでいる。
ステータス要求メツセージは相手装置のステータスを問い合わせるために使用さ
れる。これに応じて相手装置はホストに対し書込みまたは消去プロセスの間にど
のアドレスがアクセスされているかを示すためにアドレスフィールドを含むステ
ータス返答(STA、TUS−REPLY)メツセージを送信する。該ステータ
スはこの時には使用されずかつ必要に応じて無線機ごとのベースで規定されるこ
とになる。
前記フラッシュ消去メツセージは相手装置がブートストラップモードにありかつ
フラッシュEEPROMを含んでいる場合にのみ使用可能である。相手装置はこ
のメツセージの受信に応じてそのフラッシュメモリ部分を消去しなければならな
い。もしこのメツセージが相手装置に対しそれがブートストラップモードでない
場合に発行されれば、相手装置はサポートされていないOpコード返答(UNS
UPPORTED−OP C0DE REPLY)を送信しかつ該メツセージを
無視すべきである。
消去手順の終りに、これは数秒かかるがもしれないが、相手装置は「良好な書込
み返答(GOOD WRITEREPLY)Jを戻さなければならない。これは
ホストに対しそれが進行できることを示すものである。もし相手装置がフラッシ
ュを完全に消去できなければ、「悪い書込み返答(BAD−WRITE−REP
LY)Jが消去アルゴリズムが行なわれないアドレスと共に戻されなければなら
ない。
消去の前に全部分がプログラムされることを要求するフラッシュメモリ装置を備
えた相手装置はフラッシュ消去要求メツセージの前にこのメツセージを与えられ
なければならない。しかしながら、前記部分が空白であることか知られている場
合のように、もし前記部分がすでに消去されたことが知られている場合には、そ
れは任意選択的なものである。数秒かかるかもしれないゼロ化(zeroing
)手順の完了に応して、相手装置は「良好な書込み返答」を戻さなければならな
い。該良好な書込み返答に含まれるアドレスは重要ではない。これはホストに対
しそれが進行できることを示すものである。もし相手装置がフラッシュを完全に
ゼロにできなければ、「悪い書込み返答」が前記ゼロへのプログラミングが行な
われない部分のアドレスと共に戻されなければならない。
前記データ書込み要求は相手装置にそのメモリ装置の1つに書込みを行なわせる
ために使用される。これはRAM。
EEPROM (内部または外部)またはフラッシュEEPROMとすることが
できる。2つの種類のデータ書込み要求バス処理が好ましい実施例においては利
用でき、シングルおよびダブルバッファされた(buffered)の相手装置
である。図20.図21および図22は、これらの処理のタイミング図を示す。
これらは良好な書込み返答を有するメモリプログラミングのバス処理である。
データを書込む間に相手装置に対し最大の可能なスループットを達成するため、
5BEPプロトコルは相手装置がダブルバッファリングを行なうことができるよ
う設計されている。すなわち、相手装置はそれが最後のメツセージをメモリ装置
にプログラミングしている間、シリアルバスによってメツセージを受け入れ可能
なものとすることができる。ダブルバッファリングに対しては、相手装置は2つ
のRAMバッファを取っておかなければならなず、1つはそこから装置をプログ
ラムするものであり、かつ他方は新しいメツセージを同時に受け入れるためであ
る。
ホスト・は相手装置がダブルバッファリングを行なっているか否かは気にかけな
い。しかしながら、ホストは常にどのデータ書込み要求メツセージが良好な書込
み返答(GWR)または悪い書込み返答(BWR)を得たかを追跡しなければな
らない。GWRとならなかったメツセージをリトライすることはホストの責務で
ある。
5BEPプロトコルはホストからの各々のメツセージがそれが他のメツセージを
送信できる前にある種の返答を受信することを要求するから、相手装置は全て$
FFのアドレスを有する( G W R)を返送し、ホストに対し他のメツセー
ジを送信することを指示できるが、最初のメツセージが実際に装置に対し正しく
プログラムされたか否かについては何らの情報も与えない。ホストはこの時点で
相手装置がダブルバッファリングされた構成を行なっていることを認識し、かつ
他のメツセージを送信するよう進まなければならない。いったん相手装置が最初
のメツセージのプログラミングを終了すると、それは、ちょうど受信したもので
はなく、前のメツセージについてホストにGWRまたはBWRを与える準備がで
きることになる。実際上、前記返答に含まれるアドレスは常に受信された終りか
ら2番目のメツセージのものとなる。ホストは前記返答に含まれるアドレスが必
ずしも送信された最後のメツセージのアドレスでないことを認識するのに充分柔
軟でなければならない。最後のデータ書込み要求が相手装置に送信された後、相
手装置にもう1つのGWRまたはBWRがキューイングされることになる。ホス
トはゼロバイトのカウントを有するもう1つのデータ書込み要求を発行し、最後
の良好なまたは悪い書込み返答を送信するために相手装置をトリガしなければな
らない。
相手装置がデータ書込み要求メツセージを送信した時、データ書込み要求メツセ
ージ以外の他のメツセージはタイムアウトが満足されるまで許可されない。すな
わち、ホストデータ書込み要求とこれに続くデータ読み出し要求をメツセージ書
込みのためのタイムアウトが経過しない限り送信することはできない。このルー
ルは、GwRまたはBWRをACKと続かない限り送信しないことについてのル
ールと組合わせてGWRまたはBWRメツセージと相手装置がNAKを送信した
場合のデータ書込み要求のりトライとの間での衝突を防止することになる。
データ書込み要求メツセージに対するタイムアウトはプログラムされるべきデー
タの各バイトに対する20m5にセーフティ時間の付加的な’rOmsを加えた
ものである。
すなわち、もしデータ書込み要求メツセージがその中に10個のデータバイトを
有していれば、ホストはデータ書込み要求メツセージに対して受信した最後のA
CKの250m5以内にデータ書込み要求以外の他のメツセージを開始すること
はできない。
図20を参照すると、単一バッファの相手装置においては、各々のGWRは最後
のデータ書込み要求に対応する。
図21を参照すると、相手装置が最初のメツセージをプログラミングしている間
に第2のデータ書込み要求メツセージが受け入れられ、スループットを増大して
いることに注意を要する。これはホストがアスタリスクによってタグづけされた
「ダミーのJ GWRを見たから可能である。ボーレートまたはプログラミング
時間は、いずれがより低速であっても、相手装置における装置をプログラミング
する上での制限要因である。
好ましい実施例においては、上に述べた要求に応じて数多くの返答(repli
es)がサポートされている。これらの返答のうちのいくつかは、GWR,BW
R,サポートされていないopコード返答(UNSUPPORTED−〇P C
0DE−REPLY) 、構成返答(CONFIGURATION−REPLY
) 、検査合計返答、データ読取り返答、およびステータス返答を含む。
前記GWRはホストに対しデータ書込み要求メツセージが首尾よく指定されたメ
モリ装置にプログラムされたことを通知する働きをする。GWRメツセージはA
CKに続くことができるのみである。すなわち、もしホストからの最後のメツセ
ージがNAK応答を受けた場合、相手装置はホストが首尾よく相手装置に到達す
るまで、すなわち、データ書込み要求メツセージがACKを受けるまでGWRの
送信を待たなければならない。GWRはそのデータが正しくメモリに書き込まれ
たデータ書込み要求メツセージに含まれたアドレスを含んでいる。これはデータ
書込み要求に応じて送信されるが、データ書込み要求の説明において述べたよう
に、前記アドレスは最後のデータ書込み要求メツセージのものとすることはでき
ない。全て$FFのアドレスフィールドを有する書込み良好メツセージ(G O
OD −WRITE−MESSAGE)はホストに対し他のメツセージを送信す
るよう通知する働きを成す。ホストがGWRを受信した時は常にそれは他のメツ
セージを直ちに送信することができる。 ゛
前記BWRメツセージはホストに対し前記データ書込み要求メツセージに含まれ
たデータを指定されたメモリ装置にプログラミングする上で相手装置が不首尾で
あったことを通知する働きを成す。BWRメツセージはA CKに続くことがで
きるのみである。すなわち、もしホストからの最後のメツセージがNAKを受け
れば、相手装置はBWRを送信する前にホストが首尾よく相手装置に到達するま
で、すなわち、データ書込み要求メツセージがACKを受けるまで待たなければ
ならない。
前記BWRはそのデータがメモリに書き込まれなかったデータ書込み要求メツセ
ージに含まれるアドレスを含んでいる。それはデータ書込み要求に応答して送信
されるが、データ書込み要求の説明において述べたように、前記アドレスは最後
のデータ書込み要求メツセージのものとすることはできない。
ホストがBWRを受信した時は常に該ホストは他のメツセージを直ちに送信する
ことができる。図23、図24および図25は、悪い書込みがあった場合のバス
処理を示す。
これらの図面は本発明に係わる良好なおよび悪い応答を有するメモリプログラミ
ングのバス処理を示す。
説明したように、5BEPプロトコルは実施するのがかなり簡単であり、それは
該プロトコルを行なうのに必要なコードがマイクロプロセッサのブートストラッ
プRAMにロードするのに充分小さいからである。ブートストラップモードにお
いて無線機と通信できることにより、フラッシュEEPROM装置と組合わせて
、我々は今や該無線機を開くことなしに顧客の無線機のソフトウェアを変更する
ことができる。言い換えれば、利用可能なブートストラップ技術を使用して、無
線機は内部マイクロプロセッサのブートストラップモードを使用してスタートで
き、かつ次に高度に効率的なプロトコルを使用して所望のプログラムによってプ
ログラムされ得る。
要するに、本発明の重要な検知はボーレート変更要求と共に1つのプロトコルか
ら他のものへと切り換える可能性であることが開示された。これはどのオプショ
ンが切り換えるべきかを選択しかつ全ての他のオプションに対しバス動作を中止
するよう通知するために第1のプロトコルでメツセージを送信することによって
達成される。ビジーラインが使用されかつ全てのサブセクションに対しバスから
離れるよう通知するために第2のプロトコルで行なわれている全ての活動の期間
に対し該ビジーラインをアクティブ状態に保持する。いったん5BEPメツセー
ジが完了すると、前記ビジーラインは解放されかつ全てのオプションが5B96
00に戻る。5BEPプロトコルの双方向シリアルデータバスでの動作の可能性
は必要な接続の数を低減する。
これは機器が互いに近くになく長いケーブルを必要とする用途において極めて望
ましい。
5BEPプロトコルの1つの利点はその順応する能力であり、それによってボー
レートまたはプログラミング時間が通信速度における制限要因となる。このこと
は、このプロトコルがボーレートが増大しかつプログラミング時間が増大した場
合に同じ状態に留まり得るため非常に価値がある。本発明のさらに他の利点は1
つの構成されたフォーマットで可変長のメツセージを取り扱う能力を有すること
である。
好ましい実施例の説明は2つの特定のプロトコル5B9600および5BEPに
集中したが、本発明の原理は他のプロトコルによっても利益を受け得ることが充
分に理解されるべきである。特定の実施例の提示は本発明の理解を与えるための
ものでありかつその制限であると解釈されるべきではない。
FIG、1
FIG、4
FIG5
FYG、6
FIG、Z
lG3
1りγ19
1りγ110
l々て1H
FIG17
lG12
777/’Y Oハ
IG19
FIG、23
フロントページの続き
(72)発明者 ベーン・ロナルド エルアメリカ合衆国フロリダ州 3332
4、プラ(72)発明者 ニーマン・チャールズ エムアメリカ合衆国フロリダ
州 33324、プラ