ゲートとラッチを組み合わせて各種の制御を行うための回路を構成することが行われており、マイクロコンピュータで行うほど複雑でない制御を行う場合や、高速の制御処理を必要とする場合等に使用される。例えば、全体の処理はマイクロコンピュータのCPUが行い、一部の制御をこのような回路で行うといった具合に、マイクロコンピュータと組み合わせて使用する場合もある。
制御方式においては、制御の進行に応じて順次状態が遷移し、たとえ同一の信号が入力されてもその時の状態に応じて行う制御内容が変化する。このような制御の進行に応じて順次状態が遷移する方式を状態遷移方式と呼んでおり、上記のゲートとラッチを組み合わせた制御用回路で、状態が遷移するものをステートマシンと呼んでいる。
近年、ディジタル方式の移動体通信が普及しつつあるが、このような移動体通信における端末装置でも、送受信の制御にステートマシンが使用される。ここでは、ディジタル方式自動車電話システムを例として本発明の説明を行うが、本発明はこれに限られるものではない。
図13は、ディジタル方式自動車電話システムの端末装置の構成例を示す図である。
図13において、参照番号1は装置全体の制御を行うマイクロコンピュータであり、内部には中央処理装置(CPU)を有している。2は装置の使用者との間の各種の処理を行うためのマン・マシン・インターフェースであり、17はステートマシンであり、18は受信部であり、19はマイクロコンピュータ1により書き込まれた複数ビットの送信データを、シリアルデータに変換して送信する送信部であり、20は通信に必要なクロック信号を発生させるPLL(Phase Locked Loop )回路である。自動車電話システムでは、通信に使用する周波数帯が随時変化するため、PLL回路で、通信に使用する周波数帯に対応したクロック信号を発生する。
送信と受信に直接関係する処理は高速の処理が要求される。そのため、この処理をマイクロコンピュータで行わせると、マイクロコンピュータは常時受信部18や送信部19の状態を監視する必要があり、マイクロコンピュータのパフォーマンスが低下する。そこで、これらの処理は、ステートマシン17に行わせ、マイクロコンピュータはそれ以外の処理を行うようにするのが一般的である。
図14は、従来のステートマシンの構成を示す図である。
図14において、参照番号31はステートコントロール回路であり、32は状態ラッチであり、34はステートデコーダである。このステートマシンは、デコード方式と呼ばれるもので、ビット数の小さな状態ラッチ33で多数の制御信号ビットを出力できるが、ステートデコーダ34が必要である。
状態ラッチ33は、その時点の状態を示すビットデータを記憶しており、その出力はステートデコーダ34によってデコードされ、ステートマシン及び他の回路部分への制御信号として供給されると共に、ステートコントロール回路31に供給される。ステートコントロール回路31では、その時点の状態を示すビットデータと検出信号に応じて次の状態を示すビットデータを生成し、状態ラッチ33に供給する。状態ラッチ33はこのビットデータを状態遷移用のクロック信号CLKに従って、ラッチする。すなわち、ある状態から次の状態への遷移を指示する検出信号が入力されると、CLKの次の変化エッヂに応じて状態が変化することになる。
図15は、ステートマシンの状態遷移図の例を示す図である。
図15に示すように、リセットされた時には状態Aになる。状態Aにおいて、遷移条件ABが成立すると状態Bに遷移し、遷移条件ACが成立すると状態Cに遷移する。更に、状態Bにおいては、遷移条件BDが成立すると状態Dに遷移する。このように、ある状態において所定の条件が成立すると別の状態に遷移し、そこで更に所定の条件が成立すると更に別の状態に遷移するといった具合に、状態Aから状態Fまでのいずれかの状態に遷移していく。図16のタイムチャートは、この状態遷移を示す。
近年、携帯電話の需要が大きくなっており、特にディジタル携帯電話サービスにおけるセルラー方式システムで運用が行われている。セルラー方式のセル内では使用できる無線周波数帯が複数の更に狭い周波数帯に分割されており、携帯端末装置はその周波数帯の1つを用いて制御データ又は音声データ、情報データのやり取りを行っている。やり取りをするデータの種類として、とまり木チャンネル、制御チャンネル及び通信チャンネルが挙げられるが、これらのチャンネル毎に使用する周波数は異なる。また、移動中における連続的な通信を維持するため、必要に応じて通話中の基地局から他の基地局への切り換えが行われ、周波数の切り換えが行われる。
ステートマシンの状態遷移について、財団法人電波システム開発センタが発行するディジタル方式自動車電話システム標準規格(RCR STD−27B、以下RCR規格と称する。)のレイヤ1手順規格による移動局の状態遷移を例として、更に詳しく説明する。
この規格によると、移動局の取り得る状態はF1〜F11まで規定されており、その状態遷移図を図17に示す。図17の状態遷移図において、チャンネル停止状態F2からとまり木チャンネルの起動の際は、まずCPUはとまり木チャンネル周波数をPLL−LSIに設定する。PLLがロックしたことをCPUが認識すると、CPUよりとまり木チャンネル起動要求が発行され状態F10に遷移する。CPUがロックを検出する方法としては、PLL−LSIのロックディテクト時間をタイマで検出する方法、PLL−LSIからのロックディテクト信号を入出力ポートを介して検出する方法等が使用できる。また、通信チャンネル起動中状態F8において周波数切り換えが行われ、通信チャンネル同期中状態F5に遷移する場合においては、通信チャンネル起動中状態でPLL−LSIの周波数の切り換えが行われ、上記のロック状態をCPUが検出すると、通信チャンネル同期中状態F5に遷移する。この周波数切り換え時にかかる処理の間中は、状態F8のままであり、周波数が定まらない状態であるためレイヤ1状態としては状態F8であるわけにはいかない。そのため、周波数切り換え時には、状態F8をマスクする処理がCPUにより施されていた。マスクの例としては、PLL−LSIに周波数を設定した時にCPUよりロックがかかるまでレイヤ1状態信号をマスクする処理を行っていた。F8からF3、F8からF10、F4からF5F4からF10の時も同様である。
以上が、ステートマシンの状態遷移の説明であるが、ここで送信部19における処理について簡単に説明する。自動車電話システムにおいても、ディジタル化が進められており、TDMA(Time Division Multiple Access )方式が用いられるようになっている。TDMA方式においては、データの送受信は所定のバイト数のデータを1まとめにしたユニットデータを単位として行う。図18は一般的なユニットデータの構成を示す図である。一般的に、プロトコルの下位レベル(例えば物理レイヤ)で扱うこのようなユニットデータには、上位プロトコル階層の制御情報やメッセージが挿入されるが、第Kユニットのようにユニットデータ長より上位プロトコル階層のデータ長が短い場合がある。このような場合、一般的なプロトコルでは上位プロトコルの有効データがない部分は特定のフィルパターン(例えばすべて「0」)で満たすように規定されている。
図19は従来の送信部の基本構成を示す図である。
図19において、参照番号53は送信データ及びフィルパターンを書き込むデータレジスタ(DR)であり、54は送信バッファとして機能するFIFO(First In First Out)、55はFIFO54から出力されたパラレルデータをシリアルの送信データに変換するパラレル/シリアル変換器である。
図19の回路では、データレジスタ53に書き込まれたデータのみから送信用のデータユニットを組み立てるようになっていた。従って、マイクロコンピュータ1は、送信部19の送信データバッファ53に固定長(Nバイト)の送信データ(有効データとフィルパターン)を、各送信動作毎に必ず書き込む必要があった。従って、図18に示すようなデータユニットで構成されるメッセージを送信する場合、最終ユニットである第Kユニットでは、図20のフローチャートに示す処理手順でマイクロコンピュータ1がMバイトの有効データと(N−M)バイトのフィルパターンをデータレジスタに書き込んでいた。
図1は、以下に説明する本発明の第1乃至第3実施例が行われる携帯型通信端末装置の全体構成を示す図である。
図1において、参照番号11は中央処理装置(CPU)であり、12はROMであり、13はRAMであり、14はシステムバスであり、15はシステム用のRAMであり、16は入出力ポートであり、これらでマイクロコンピュータを構成する。17はステートマシンであり、18は受信部であり、19は送信部であり、20は通信のためのクロック信号を発生するPLL回路である。この端末装置が運用される通信システムでは、このシステムに割り当てられた周波数帯を更に狭い周波数帯のチャンネルに分割し、やり取りするデータの種類や通信先の基地局の切り換え等に応じて随時チャンネルを切り換える。
チャンネルを切り換える毎にPLL回路20は、発生するクロック信号を変更する必要がある。PLL回路20でのクロック信号の周波数の変更は、マイクロコンピュータがPLL回路20のレジスタをアクセスし、レジスタの内容を変更することによって行われるが、PLL回路が所定の周波数にロックするにはレジスタの変更後、ある程度の時間を要する。従来は、マイクロコンピュータが、PLL回路がロックしたことを検出した後、ステートマシンに起動要求を出しており、その間の処理をマイクロコンピュータが行っていた。PLL回路がロックしたことを検出する方法としては、PLL回路20からのロックディテクト信号を入出力ポート16を介して検出する方法や、レジスタの変更後PLL回路が所定の周波数にロックするまでに要する時間よりある程度長い時間を設定し、その時間をカウントした時点ではロックしたものと見なして、それ以後の処理を行っていた。いずれにしろ、この間の処理はマイクロコンピュータが行っていた。チャンネルの切り換えの間通信が途切れるため、チャンネルの切り換えに要する時間はできるだけ短いことが必要であり、マイクロコンピュータはこの処理の間常時ロックディテクト信号を監視したり、タイマを監視する必要があり、他の処理を行うことはできなかった。
以上が本発明の実施例が行われる携帯型通信端末装置の全体構成の説明であり、以下各実施例について説明する。
第1実施例は、図1のステートマシンの部分に本発明の第1の態様を適用した実施例であり、図2にそのブロック構成図を示す。
図2において、参照番号31はステートコントロール回路であり、33は状態ラッチ、34はステートデコーダであり、これらの部分は図14に示した従来例と同じである。図14と比較して明らかなように、図2では、レジスタ35と、切り換え回路(SEL)32と、ANDゲート36とが新たに設けられている。切り換え回路(SEL)32は、レジスタ35の1ビットの信号に応じて、ステートコントロール回路31の出力するデータとレジスタ35の6ビットが表すデータのいずれかを選択して、状態ラッチ33に出力する選択回路である。
図3はレジスタ35のビット構成と各ビットの機能を示す図である。
図3に示すように、レジスタ35は8ビットで構成され、最上位ビットD7は状態遷移モードビットであり、D6は状態遷移保持モードビットであり、D5〜D0は状態遷移コードビットである。通常動作を行わせる時にはD7を「0」に、レジスタ35のD5〜D0で設定される状態コードにする時にはD7を「1」に設定する。従って、切り換え回路(SEL)32は、D7が「0」に時にはステートコントロール回路31の出力するデータを選択する。従って、この場合には、通常のステートマシンをし、その時点の状態と検出信号に応じて状態が変化する。D7が「1」に時にはレジスタ35のD5〜D0のデータを選択し、ステートマシンは、D5〜D0のデータが示す状態に設定される。
前述のように、このステートマシンはステートデコーダ34を備えており、状態を表すビットデータをデコードして状態を示す信号を生成するデコード方式と呼ばれる方式のものである。ここでは、レジスタ35のD5〜D0が状態遷移コードビットに割り当てられており、全部で64通りの状態を設定できるが、実際に取り得る状態の個数がこれと等しい必要はなく、レジスタ35で設定できる状態の個数は実際に取り得る状態の個数以上であればよい。
ANDゲート36には、クロック信号CLKと状態遷移保持モードビットD6の反転したデータが入力され、その出力は状態ラッチ33にクロック信号として入力される。従って、D6が「0」の時には状態ラッチ33にクロック信号CLKが入力され、通常のステートマシンの動作が行われる。D6が「1」の時には状態ラッチ33にはクロック信号が入力されなくなるため、ラッチしているデータがそのまま保持される。従って、D6が「0」の時には通常動作、「1」の時には状態が保持されることになる。
図4は、第1実施例のステートマシンが図15のような状態遷移を行うとした場合の状態遷移を示すタイムチャートである。
図4に示すように、リセットすると、状態Aになり、D7とD6が「0」であれば、それぞれの遷移条件が成り立った時に状態が遷移する。状態Aの時に、状態遷移コードD5〜D0を「000101」、すなわち状態Fに設定し、D7を「1」にすると、次のクロック信号CLKの立ち上がりで、ステートマシンは状態Fに設定される。この状態で、D7を「0」に戻し、条件FAを成立するようにすると、状態Aに遷移する。また、状態遷移コードD5〜D0を任意のデータ、例えば状態Fを表す「000101」に設定した上で、D7を「1」にしても、D6が「1」であればそれまでの状態Aが保持される。
なお、外部から状態の設定だけを行うのであれば、レジスタ35のD6及びANDゲート36はなくてもよく、逆にデータの保持を行う必要がないのであれば、切り換え回路(SEL)32及びレジスタ35のビットD7、D5〜D0がなくてもよい。
本発明の第2実施例は図1に示した全体構成を有する携帯型通信端末装置であり、PLL回路20のロックディテクト信号LDETがステートマシン17に出力され、ステートマシン17から周波数設定要求信号ISETが割り込み信号としてCPU11に出力される点が従来例と異なる。
図5は第2実施例の装置のステートマシン17の状態遷移図である。この状態遷移図は、図17の状態遷移図に対応するRCR規格のレイヤ1の状態遷移図である。2つの図を比較して明らかなように、第2実施例では、切り換え用のとまり木チャンネル起動前状態F10’、制御チャンネル起動前状態F3’、通信チャンネル起動前状態F5’、通信チャンネル再起動前状態F11’が新たに設けられている点が従来例とは異なる。
図6は、第2実施例における状態遷移のタイムチャートである。この図を参照しながら第2実施例での処理を説明する。
従来の装置においては、チャンネル起動時又はチャンネル切り換え時においては、CPU11が起動又は切り換え先の周波数にロックしたことを監視し、チャンネル起動要求を発行していた。これに対して、本実施例においては、CPUはチャンネル起動又はチャンネル切り換えを行いたい時に、チャンネル起動要求を発行し、周波数設定要求ISETが割り込み信号としてCPU11に通知されるとPLL回路20に対して周波数を設定する。チャンネル起動要求がCPU11より発行されると、ステートマシン17は起動前状態に遷移する。例えば、通信チャンネル起動中状態F8’でとまり木チャンネル起動要求がCPU11から発行されると、とまり木チャンネル起動前状態F10’に遷移する。この状態に遷移することによって、状態F8から抜け出るなり、周波数切り換え前状態をマスクする処理が不要になり、CPU11とレイヤ1の制御を行うステートマシン17とのハンドシェイク処理が確実に行われることになる。ステートマシン17は、この起動前状態で、PLL回路20からのロックディテクト信号LDETを受けると自動的に次の状態に遷移する。
以上のように、CPUが周波数切り換え時の状態をマスクする必要もなくなり、PLL回路のロック状態を検出する必要がなくなる。また、チャンネル起動またはチャンネル切り換え時において要求が発行されると、CPUに対してPLL回路への周波数設定要求が割り込み信号として出力される。従って、CPUは割り込みが発生するとPLL回路に対して周波数データを設定すればよい。これにより、従来PLL回路がロックしたことをタイマで監視していた場合のタイムロス及びロックディテクト信号を監視していた場合のCPUの負担がなくなることになる。更に、これによりCPUの制御ファームの制御が簡潔になる。
第3実施例は、図1の送信部19に本発明の第3に態様を適用したものであり、その基本構成を図7に示す。
図7において、53は送信するデータを一時的に保持するデータレジスタであり、55はデータレジスタ53に保持されたデータを通信用のシリアルデータに変換するパラレル・シリアル変換器である。CPU11は、送信部19を1バイト単位でアクセスするので、フィルパターンも1バイトデータであり、データレジスタも1バイトを単位とする。従って、パラレル・シリアル変換器55は8ビットを1ビットのシリアルデータに変換する。更に、ユニットデータは8バイトであり、データレジスタ53は、1バイト単位で8バイト分の容量を有する。CPU11からの送信データのデータレジスタへの書き込みが終了すると、書き込み終了信号DLが出力される。なお、以下の例では、フィルパターンはすべてのビットが「0」のパターンとする。
図8はデータレジスタ53の一部を構成する入力データバッファの構成例であり、ここではユニットデータは8バイトであり、入力データバッファも8バイト分であり、8個の1バイトバッファBUF0、BUF1、…、BUF7がある。各データバッファの書き込み信号BUF0WE、BUF1WE、…、BUF7WEは図9の回路によって生成される。1バイトの書き込みを行う毎に書き込み信号DWEがCPUから出力され、これをデータカウンタ70でカウントする。書き込みが行われる毎にカウント値が増加するので、それをデータカウンタラッチ71でラッチし、それをデコーダ73でデコードすると、出力が「1」になるビット位置が順次移動する。このデコーダ72の出力とDWEをANDゲート73、74、…、75に入力し論理和をとると、各ANDゲートの出力BUF0WE、BUF1WE、…、BUF7WEは、最初の書き込み時にはBUF0WEの出力が「1」になり、次はBUF1WEが「1」になるという具合に、書き込み毎に順次「1」になる。
従って、入力データDTは、入力順にBUF0より順に格納されていき、送信データがユニットデータの8バイトより小さい場合には、書き込まれないデータバッファが生じることになる。後述するように、1回のユニットデータの書き込みと送信が終了する毎に、各データバッファは初期化され、各データバッファのビットは「0」に設定されるので、送信データが書き込まれないデータバッファの各ビットは「0」のままである。これがフィルパターンである。
データバッファに書き込まれたデータは、パラレル・シリアル変換器55に出力される。図8のマルチプレクサ(MPX)68は、データバッファBUF0、BUF1、…、BUF7に格納されたデータからパラレル・シリアル変換器55に出力するデータを選択する回路であり、読み出し信号BUF0RE、BUF1RE、…、BUF7REに従ってどのデータバッファのデータを出力するか選択する。
各データバッファは8ビット構成であり、1個のデータバッファのデータは、通信用クロック信号CKの8カウントでシリアルデータに変換される。従って、8カウントのCK毎に読み出し信号を変化させて読み出すデータバッファを変更すると共に、パラレル・シリアル変換器55にそのデータをラッチさせる信号PSLDを出力する必要がある。
図10は、BUF0RE、BUF1RE、…、BUF7RE、PSLD及び上記の各データバッファを初期化する信号LDENDを生成する回路を示す図である。
図10において、ビットカウンタ76は、上記の各データバッファの8ビット分のクロックCKをカウントするカウンタであり、それが8ビットカウントしたことをコンパレータ77が検出するとPSLDを出力する。ビットカウンタ76は8ビットをカウントするとキャリィCを発生するので、これをバイトカウンタ78でカウントする。バイトカウンタ78は何番目のデータッファを読み出すかを示しており、その値をデコーダ79でデコードして組み合わせ回路80でPSLDと論理積をとるとBUF0RE、BUF1RE、…、BUF7REが得られる。バイトカウンタ78は「8」をカウントするとLDENDを発生するようになっており、LDENDによってデータバッファの各ビットを「0」に初期化する。
次に上記のような1バイトのデータバッファが8個あり、すなわち送信のデータユニットが8バイトで、送信するデータが5バイトしかない場合を例とした第3実施例のタイムチャートを図11と図12に示す。図11が書き込みの動作におけるタイムチャートを、図12が送信動作におけるタイムチャートを示す。
書き込み動作においては、各データバッファBUF0〜BUF7は初期化されており、図11に示すように、CPUから書き込み信号DWEと書き込むデータが5回入力され、データバッファBUF0〜BUF4にデータが格納される。書き込みの行われないデータバッファBUF5〜BUF7の各ビットは「0」である。データ書き込み終了信号DLが入力されると、送信動作が開始される。
送信動作においては、図12に示すように、1個のデータバッファの8ビットのデータをPSLDに従ってパラレル・シリアル変換器55にラッチし、クロック信号CKに従って、シリアルデータに変換する。1個のデータバッファの8ビットのデータの変換が終了すると次のデータバッファのデータをシリアルデータに変換する。これを8個のデータバッファ分繰り返す。よってデータの書き込まれていないBUF5〜7には自動的にフィルパターンが格納される。
以上、第3実施例の送信部について説明したが、ここでは説明を簡単にするために、データバッファの書き込みが終了した後送信を開始するものとして説明したが、通常は図19に示すようなFIFO(First In First Out)回路を使用することにより、データバッファへの書き込みを開始すると同時にデータの送信を開始する。FIFO回路は、図8乃至図10の回路にFIFO動作を行わせるような制御回路を付加することにより実現できる。FIFO回路は従来から広く使用されており、それ自体は直接本発明に関係しないので、ここでは説明を省略する。
以上のように、送信部内部でフィルパターンを発生することにより、CPU11はフィルパターンの発生及び転送を行う必要がなくなり、CPUの負担が軽減される。それと共に、データ転送によるデータバスの専有率が低減されるためにシステム全体のパフォーマンスも向上する。従って、処理能力の低い安価なCPUの使用や動作クロックの遅い低消費電力のCPUの使用が可能になる。