(57)【要約】      （修正有）【課題】バスラインで制御されるバッファメモリ装置を持つ出力表示機器の高性能化と低価格化をともに図る。【解決手段】ホストとの通信をおこなうためのバッファであるＶＦＤモジュールは、１バイト単位の受信データまたは送信データを蓄える受信レジスタ、送信レジスタを備え、２バイト以上の容量を有し、２のべき乗のバイト数の容量のＲＡＭの領域をリングバッファとして用いる。そして、リングバッファの容量に応じた相対アドレスを特定するために値がインクリメントするポインタをＣＰＵで発生させ、このポインタが特定する相対アドレスを下位ビットとして、さらに、上位ビットを付加して、ＲＡＭのリングバッファ領域をアクセスし、リングバッファと受信レジスタ、送信レジスタとの間の転送速度を向上させ、ホスト機器とＶＦＤモジュールとの間におけるデータの転送速度を高速化する場合でも円滑にデータのやり取りができるようにした。【選択図】図１
2008102694.tif 000002
【特許請求の範囲】
【請求項１】
ホスト機器との通信をおこなうためのバッファメモリ装置を備える出力表示機器であって、
前記バッファメモリ装置は、
前記ホスト機器とのインターフェイスとしての所定のビット長で構成される１バイト単位の受信データを蓄える少なくとも１バイト以上の容量を有する暫定メモリと、
前記暫定メモリよりも容量が大きく、２のべき乗のバイト数の容量を有し、前記暫定メモリからの前記受信データを順次保存するアドレスバスで制御されるリングバッファと、
前記リングバッファの容量に応じた相対アドレスを特定するために循環的に値が変化する書き込みポインタを発生するための書き込みポインタ生成手段と、
前記ポインタが特定する相対アドレスを下位ビットとして、前記下位ビットに上位ビットを付加して、前記リングバッファの絶対アドレスを特定するアドレス情報を生成するアドレス生成手段と、
を備える出力表示機器。
【請求項２】
ホスト機器との通信をおこなうためのバッファメモリ装置を備える出力表示機器であって、
前記バッファメモリ装置は、
前記ホスト機器とのインターフェイスとしての所定のビット長で構成される１バイト単位の送信データを蓄える少なくとも１バイト以上の容量を有する暫定メモリと、
前記暫定メモリよりも容量が大きく、２のべき乗のバイト数の容量を有し、前記暫定メモリへ送る前記送信データを順次保存するアドレスバスで制御されるリングバッファと、
前記リングバッファの容量に応じた相対アドレスを特定するために循環的に値が変化する読み出しポインタを発生するための読み出しポインタ生成手段と、
前記ポインタが特定する相対アドレスを下位ビットとして、前記下位ビットに上位ビットを付加して、前記リングバッファの絶対アドレスを特定するアドレス情報を生成するアドレス生成手段と、
を備える出力表示機器。
【請求項３】
前記リングバッファの前記相対アドレスを特定するアドレスバスのバス幅が、前記１バイトを構成するビット数よりも小さく設定されることを特徴とする請求項１または請求項２に記載の出力表示機器。
【請求項４】
前記リングバッファの前記相対アドレスを特定するアドレスバスのバス幅が、前記１バイトを構成するビット数と等しく設定されることを特徴とする請求項１または請求項２に記載の出力表示機器。
【請求項５】
前記バッファメモリ装置は、
暫定メモリと、前記ポインタ生成手段と、を有する中央演算装置と、
前記リングバッファをその一部として含む書き換えが可能なランダムアクセスメモリと、
前記中央演算装置で実行される、前記ポインタ生成手段と前記ランダムアクセスメモリとを制御する手順を記録したプログラムと、
を具備することを特徴とする請求項１または請求項２に記載の出力表示機器。
【請求項６】
前記ホスト機器との通信をシリアル通信とするために、さらに、前記暫定メモリと同じビット数のシフトレジスタを備えることを特徴とする請求項１または請求項２に記載の出力表示機器。
【請求項７】
前記リングバッファに前記暫定メモリから受信のデータを書き込む処理が、前記暫定メモリに前記受信データが取り込まれたことを契機としておこなわれることを特徴とする請求項１に記載の出力表示機器。
【請求項８】
前記リングバッファから前記暫定メモリに送信データを読み出す処理が、前記暫定メモリから前記送信データが取り出されたことを契機としておこなわれることを特徴とする請求項２に記載の出力表示機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、出力表示機器に関し、特に、バッファメモリ装置を備える出力表示機器に関する。
【背景技術】
【０００２】
従来から、マン・マシーン・インターフェイスとしての各種の出力表示機器が採用されている。例えば、一定時間毎に変化する文字や画像をデスプレイに表示して、人が視認することを可能とする蛍光表示管（ＶＦＤ）や電界放出デスプレイ（ＦＥＤ）、文字や画像を印刷という手段によって紙等に出力表示するプリンター等が、これらの出力表示機器を代表するものとして挙げられる。これらの各種出力表示機器には、ホスト機器、例えばコンピュータ、から、表示の態様に応じたデータがデジタルデータ（表示データと以下称する）として順次送られてくる。そして、各種の出力表示機器の側では、出力表示の態様に応じて、出力表示機器は動作する。例えば、ＶＦＤ、ＦＥＤにおいては画素毎の発光位置および輝度が変化し、プリンターにおいては表示データに応じた態様で印刷がおこなわれる。ここで、ホスト機器は表示データをバースト的に各種出力表示機器に対して出力し、一方、各種の出力表示機器は出力表示機器自身が定める手順に従って連続的あるいは間欠的に表示の動作をするようになされている。すなわち、表示データの転送の動作と出力表示機器の表示の動作とは、非同期であるのが一般的である。このように非同期とすることによって、ホスト機器と各種の出力表示機器とは、他方の装置の技術的制約に煩わされることなく独立して進歩を遂げてきた。
【０００３】
そして、ホスト機器と出力表示機器のインターフェイスとして、バッファメモリを出力機器の側に配することによって、ホスト機器からの表示データの出力の速度（転送速度）と出力表示機器の制御の速度（機器動作速度）との時間的な整合性を保つようになされている。ここで、バッファメモリ回路としては、リングバッファメモリが採用されている（例えば、特許文献１を参照）。
【０００４】
かかるリングバッファメモリでは、バッファメモリの終了番地にバッファメモリの先頭番地がつづくようにメモリが構成されている。そして、このバッファメモリへの書き込み、読み出しは以下の手順で行われる。まず、書き込みアドレスを書き込みの処理毎に監視し、書き込みアドレスが終了番地と一致しない場合には、その書き込みアドレスに表示データを書き込み、そのアドレス値を１だけインクリメントして次の書き込みに備え、一方、書き込みアドレスが終了番地と一致するとアドレス変換回路によって次に指定される書き込みアドレスを先頭番地に書き換え次の書き込みに備える処理をおこなっていた。このようにして、所定の範囲に配置されたメモリに順次、上書きをおこなうので、リングバッファメモリを採用して、バッファメモリの容量を少ないものとできた。また、このようなバッファメモリを備えることによって、ホスト機器からの表示データの転送速度によらず、出力表示機器の動作は滞りなくおこなわれた。
【０００５】
また、出力表示機器に対しては、性能面においては高性能化、例えば、高細精度化が要求されるとともに、機器の低コスト化が要求される傾向があるところから、汎用のマイクロプロセッサ（ＭＰＵ）を採用して性能の向上の要請と機器の低コスト化の要請とを両立させることが一般的な技術となってきている。ＭＰＵを用いる場合には、出力表示を所定のタイミングでおこなうための一定時間毎の割込処理がおこなわれ（出力割込処理と称する）、ホスト機器からの表示データを含む受信データの受信も割込処理でおこなわれるようになされ（受信割込処理と称する）、さらに、ホスト機器からの要求に応じた出力表示機器に関する情報の出力も割込処理でおこなわれるようになされている（送信割込処理と称する）。このようにして、ＭＰＵを採用した低価格なユーザ・フレンドリーな出力表示機器が市場において大量に拡販されることによって産業の発展に寄与してきた。
【特許文献１】特開昭６０−２４５０４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
近年は、半導体技術の進歩によって、ホスト機器の処理速度は一段と向上し、また、高細精度化等に対応して表示データの量も増大しており、この結果、表示データの転送速度も向上している。一方、出力表示機器においても、高細精度化等に対応して、出力割込処理によって処理するステップ数も増加するとともに、出力割込処理の割込周期も短くなる傾向がある。一方、このような性能面における要請を満足するとともに、より一層の出力表示機器の低コスト化が要求される傾向がある。このような、状況下において、上述したようなＭＰＵを採用した低価格な出力表示機器のバッファメモリを特許文献１に示したような処理手順によって制御することによっては、受信割込処理または送信割込処理と、出力表示機器自身が定める手順に従った連続的に処理される表示の動作に必要な処理とが競合して、出力表示機器の円滑なる動作が妨げられる事態が発生している。
【０００７】
例えば、受信割込処理の優先度が出力割込処理の優先度よりも高い場合には、受信割込処理に必要とされる時間が、出力割込処理の時間を侵食して、出力割込処理の周期内においては、所定のステップ数の処理をおこなうことが困難となる傾向がある。この傾向は、上述したように、高細精度化の傾向にともなって出力表示装置の割込処理以外の通常処理ルーチンのステップ数が増加していることも相俟って、近年より顕著なものとなっている。この結果、無理に出力表示の動作を続行する場合には、例えば、ＶＦＤ、ＦＥＤにおいては画素毎の発光位置および輝度等が正確に制御できず、プリンターにおいては、所謂、文字化け、ビットマップ化けが生じることとなる。
【０００８】
そこで、上述したバッファメモリ回路を、ＭＰＵの外部に配して、ホスト機器からの表示データのバースト的な転送速度に応じた高速なものとして、バッファメモリの容量も増加させ、表示データのバッファメモリにおけるオーバーフロー等の発生を防止することが考えられる。しかしながら、この場合には、出力表示機器の低コスト化を達成できない。また、ＭＰＵを高性能なものとして、ＭＰＵに設けられた中央演算装置（ＣＰＵ）とランダムアクセスメモリ（ＲＡＭ）およびこれらを制御するソフトウエアによって構成されるバッファメモリ装置の速度を向上させることも考えられるが、この場合にも、ＭＰＵの価格が高くなって、出力表示機器の低コスト化を達成できない。
【０００９】
本発明は、上述した課題を解決して、ＭＰＵ等のバスラインで制御されるバッファメモリ装置を採用する出力表示機器の高性能化と低価格化とを、ともに図ることができる出力表示機器を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の出力表示機器は、ホスト機器との通信をおこなうためのバッファメモリ装置を備える出力表示機器であって、前記バッファメモリ装置は、前記ホスト機器とのインターフェイスとしての所定のビット長で構成される１バイト単位の受信データを蓄える少なくとも１バイト以上の容量を有する暫定メモリと、前記暫定メモリよりも容量が大きく、２のべき乗のバイト数の容量を有し、前記暫定メモリからの前記受信データを順次保存するアドレスバスで制御されるリングバッファと、前記リングバッファの容量に応じた相対アドレスを特定するために循環的に値が変化する書き込みポインタを発生するための書き込みポインタ生成手段と、前記ポインタが特定する相対アドレスを下位ビットとして、前記下位ビットに上位ビットを付加して、前記リングバッファの絶対アドレスを特定するアドレス情報を生成するアドレス生成手段と、を備えるものである。
【００１１】
本発明の出力表示機器では、少なくとも１バイト以上の容量を有する暫定メモリに高速にホスト機器からの受信データを蓄えることができる。そして、暫定メモリよりも容量が大きく、暫定メモリからの受信データを順次保存するアドレスバスで制御されるリングバッファを有することによって、出力表示機器での処理をホスト機器の処理速度に合わせること無く非同期で受信データの処理ができる。また、リングバッファとして構成して、メモリの容量を少ないものとしながら、無限に受信データを記憶することができる。書き込みポインタ生成手段は、リングバッファの容量に応じた相対アドレスを特定するために循環的に値が変化するポインタを発生するので、リングバッファの現在アクセスしているアドレスを書き込み毎に最後のアドレスであるか否かを判断して、最後のアドレスをアクセスした後に再び最初のアドレスをポインタが指し示すようにする処理は必要とされず、処理の負担が軽減される。アドレス生成手段は、リングバッファが、２のべき乗のバイト数の容量を有しているので、ポインタが特定する相対アドレスを下位ビットとして、下位ビットに上位ビットを付加して、リングバッファの絶対アドレスを特定するアドレス情報を生成することができる。このようにして、リングバッファと暫定メモリとの間の転送速度を向上させ、さらに、ホスト機器と出力表示機器との間のデータの転送速度を高速化できる。
【００１２】
本発明の別の出力表示機器は、ホスト機器との通信をおこなうためのバッファメモリ装置を備える出力表示機器であって、前記バッファメモリ装置は、前記ホスト機器とのインターフェイスとしての所定のビット長で構成される１バイト単位のデータを蓄える少なくとも１バイト以上の容量を有する暫定メモリと、前記暫定メモリよりも容量が大きく、２のべき乗のバイト数の容量を有し、前記暫定メモリに送る送信データを順次保存するアドレスバスで制御されるリングバッファと、前記リングバッファの容量に応じた相対アドレスを特定するために循環的に値が変化する読み出しポインタを発生するための読み出しポインタ生成手段と、前記ポインタが特定する相対アドレスを下位ビットとして、前記下位ビットに上位ビットを付加して、前記リングバッファの絶対アドレスを特定するアドレス情報を生成するアドレス生成手段と、を備えるものである。このようにして、リングバッファと暫定メモリとの間の転送速度を向上させ、さらに、ホスト機器と出力表示機器との間のデータの転送速度を高速化できる。
【００１３】
本発明の別の出力表示機器では、少なくとも１バイト以上の容量を有する暫定メモリに高速にホスト機器に送信する送信データを蓄えることができる。そして、暫定メモリよりも容量が大きく、暫定メモリからの前記受信データを順次保存するアドレスバスで制御されるリングバッファを有することによって、出力表示機器での処理をホスト機器の処理速度に合わせること無く非同期で送信データの処理ができる。また、リングバッファとして構成して、メモリの容量を少ないものとしながら、無限に送信データを記憶することができる。読み出しポインタ生成手段は、リングバッファの容量に応じた相対アドレスを特定するために循環的に値が変化するポインタを発生するので、リングバッファの現在アクセスしているアドレスを読み出し毎に最後のアドレスであるか否かを判断して、最後のアドレスをアクセスした後に再び最初のアドレスをポインタが指し示すようにする処理は必要とされず、処理の負担が軽減される。アドレス生成手段は、リングバッファが、２のべき乗のバイト数の容量を有しているので、ポインタが特定する相対アドレスを下位ビットとして、下位ビットに上位ビットを付加して、リングバッファの絶対アドレスを特定するアドレス情報を生成することができる。
【発明の効果】
【００１４】
本発明によれば、ＭＰＵ等のバスラインで制御されるバッファメモリ装置を採用する出力表示機器の高性能化と低価格化とを、ともに図ることができる出力表示機器を提供することができる。
【発明を実施するための最良の形態】
【００１５】
本発明を実施するための最良の形態（以下、実施形態という）について説明する。実施形態としての出力表示機器は、ホスト機器との通信をおこなうためのバッファメモリ装置を備える出力表示機器であって、バッファメモリ装置に特徴があるものである。
【００１６】
ホスト機器からの受信データを受信するためのバッファメモリ装置は、所定のビット長、例えば、８ビットで構成される受信データ（この所定のビット長の受信データの単位を１バイトと称する）を蓄える少なくとも１バイト以上の容量を有する暫定メモリと、暫定メモリよりも容量が大きく、２のべき乗のバイト数の容量を有し、暫定メモリからの受信データを順次保存するアドレスバスで制御されるリングバッファと、リングバッファの容量に応じた相対アドレスを特定するために、例えば、１ずつインクリメントまたはデクリメントして無限に繰り返す、循環的に値が変化する書き込みポインタを発生するための書き込みポインタ生成手段と、ポインタが特定する相対アドレスを下位ビットとして、下位ビットに上位ビットを付加して、リングバッファの絶対アドレスを特定するアドレス情報を生成するアドレス生成手段と、を備えるようにされている。
【００１７】
ホスト機器に送信データを送信するためのバッファメモリ装置は、所定のビット長、例えば、８ビットで構成される送信データ（この所定のビット長の送信データの単位を１バイトと称する）を蓄える少なくとも１バイト以上の容量を有する暫定メモリと、暫定メモリよりも容量が大きく、２のべき乗のバイト数の容量を有し、暫定メモリへ送る送信データを順次保存するアドレスバスで制御されるリングバッファと、リングバッファの容量に応じた相対アドレスを特定するために、例えば、１ずつインクリメントまたはデクリメントして無限に繰り返す、循環的に値が変化する読み出しポインタを発生するための読み出しポインタ生成手段と、ポインタが特定する相対アドレスを下位ビットとして、下位ビットに上位ビットを付加して、リングバッファの絶対アドレスを特定するアドレス情報を生成するアドレス生成手段と、を備えるようにされている。
【００１８】
本実施形態においては、マイクロプロセッサ（ＭＰＵ）は、このようなバッファメモリ装置の１実施形態であり、また、蛍光表示管（ＶＦＤ）モジュールは出力表示装置の１実施形態である。また、ランダムアクセスメモリ（ＲＡＭ）はリングバッファの１実施形態であり、受信レジスタ、送信レジスタは暫定メモリの１実施形態であり、マイクロプロセッサ（ＭＰＵ）の中央演算装置（ＣＰＵ）、ランダムアクセスメモリ（ＲＡＭ）およびソフトウエアを格納したリードオンリメモリ（ＲＯＭ）は、ポインタ生成手段およびアドレス生成手段の１実施形態である。
【００１９】
図１は、出力表示機器の一実施例としての蛍光表示管（ＶＦＤ）モジュール１０を示すものである。ＶＦＤモジュール１０は、マイクロプロセッサ（ＭＰＵ）２１、グラフィック表示をおこなうグラフィックディスプレイとして機能するＶＦＤ２２、ＶＦＤ２２のグリッド電極（図２を参照）を駆動するグリッドドライバ部２３、ＶＦＤ２２のアノード電極（図２を参照）を駆動するアノードドライバ部２４およびＶＦＤモジュール１０の各部に種々の電圧の電力を供給するためのＤＣ／ＤＣコンバータ２５から構成されている。まず、以下にＶＦＤモジュール１０の全体の構成の要点のみを極めて簡単に説明する。
【００２０】
ＭＰＵ２１は、中央演算装置（ＣＰＵ）３１、リードオンリメモリ（ＲＯＭ）３２およびランダムアクセスメモリ（ＲＡＭ）３３から構成されている。ＣＰＵ３１、ＲＯＭ３２およびＲＡＭ３３は、例えば、１６ビット幅のデータバスを共有しており、この１６ビット幅のアドレスバスによってＣＰＵ３１が、データの読み込み、書き出しをおこなうＲＯＭ３２およびＲＡＭ３３のアドレスが特定される。また、データバスの幅は８ビット幅としている。
【００２１】
ＣＰＵは、複数の汎用レジスタ、プログラムカウンタ、命令を実行するための論理演算ユニット（ＡＬＵ）、割込制御にも用いられるタイマカウンタ、ＩＯポート等（いずれも図１には図示せず）の一般的なＣＰＵが備えている構成を有している。また、これらに加え、本実施形態の要部となる、シリアルインターフェイスの要素とし機能する受信シフトレジスタ４１、送信シフトレジスタ４２を備え、この受信シフトレジスタ４１は端子ＤＳＲ（図１を参照）を介してホスト機器５０からの受信データを受信するようになされ、この送信シフトレジスタ４２からのＶＦＤモジュール１０の情報に関する送信データは、端子ＤＳＳを介してホスト機器５０へ送信されるようになされている。ここで、インターフェイスをシリアルインターフェイスとしたのは、ホスト機器５０とＶＦＤモジュール１０との接続を簡便なものとするためである。また、この受信シフトレジスタ４１には、ホスト機器５０からの受信クロックが端子Ｃｋ１（図１を参照）を介して入力されるようになされ、この送信シフトレジスタ４２には、ホスト機器５０からの送信クロックが端子Ｃｋ２（図１を参照）を介して入力されるようになされている。なお、非同期の場合には、受信クロックおよび送信クロックを使用せず、端子ＤＳＲに入力される受信データおよび端子ＤＳＳから出力される送信データのみがホスト機器５０とＶＦＤモジュール１０との間でやり取りされる。
【００２２】
ＲＯＭ３２は、マスクＲＯＭ、プログラマブルＲＯＭ（ＰＲＯＭ）、フラッシュメモリのいずれかが用いられ、ＣＰＵで実行されるプログラムおよび出力表示のためのパターン変換マップ等が予め記憶されている。ＲＡＭ３３は、一般的なダイナミックＲＡＭ（ＤＲＡＭ）が用いられている。アドレスバスによって特定されるＲＯＭ３２のアドレス空間とアドレスバスによって特定されるＲＡＭ３３のアドレス空間とは共通部分を有することがないようになされている。後述する受信リングバッファ領域および送信リングバッファ領域はＲＡＭ３３に配される。
【００２３】
ＶＦＤ２２はグラフィックディスプレイ型とされている。すなわち、ガラスの真空の閉空間の中に、電子の衝突によって発光する蛍光体を塗布し、横、縦のいずれの方向についても等間隔に多数高密度に配置されたセグメントと、アノード電極と、グリッド電極と、電子を放出するためのフィラメント４５が配されている。アノード電極は、横方向に延びる線状の電極として配置され、グリッド電極は、縦方向に延びる帯状のメッシュ電極として配置され、アノード電極とグリッド電極とは横、縦のマトリックス状に配置されている。このアノード電極とグリッド電極とに与える電位に応じて種々の表示が可能とされている。図２にＶＦＤ２２のアノード電極とグリッド電極との配置を模式的に示す。アノード電極は、アノード電極１Ａないしアノード電極ＭＡとして図２に示すように、縦方向に相互に平行に配されている。一方、グリッド電極は、グリッド電極１Ｇないしグリッド電極ＮＧとして図２に示すように、横方向に相互に平行に配されている。
【００２４】
図２には、アノード電極とグリッド電極との各々の電極の一部のみが記載され他は省略されている、また、少なくともグリッド電極の隣り合う電極の間には空間が設けられている。このような構成を有する電極構造を採用する場合には、アノード電極とグリッド電極との両方がフィラメント４５の電位に対して正の電位となる領域に存在するセグメントのみに電子が衝突して発光することとなる。例えば、アノード電極１Ａとグリッド電極１Ｇとを正の電位とすることによって、セグメント１Ａ１Ｇが発光することとなり、アノード電極ＭＡとグリッド電極ＮＧとを正の電位とすることによって、セグメントＭＡＮＧが発光することとなる。ここで、発光を可能とするアノード電極、グリッド電極の電位を電位「１」と標記し、発光を不可能とするアノード電極、グリッド電極の電位を電位「０」と標記して以下の説明に用いるものとする。
【００２５】
複数のアノード電極と複数のグリッド電極との少なくとも一方の電極について、所定の時間間隔で順次、各々の電極を「１」にして、その他の電極を「０」とすれば、その交点に存在するセグメントのみが発光して任意のグラフィックスを表示することが可能となる。例えば、アノード電極１Ａないしアノード電極ＭＡの中の１の電極のみに、電位「１」を与え、他のアノード電極には電位「０」を与え、グリッド電極１Ｇないしグリッド電極ＮＧの中の１の電極を順次、電位「１」とすれば、横方向に発光点をスキャンすることができる。
【００２６】
ここで、人が視認する場合に残像が残る程度の速い速度でスキャンをおこなえば、横方向の１ラインについて明暗のパターンを生じさせることができるものである。横方向の１ラインについてスキャンが終了した後に、同様にして、隣接するアノード電極を順次、電位「１」とすることによって、２次元の面について明暗のパターンを生じさせることができる。
【００２７】
また、グリッド電極１Ｇないしグリッド電極ＮＧの各々を電位「１」とできる時間長において、実際に電位「１」とする時間の割合（時比率）を変化させることによって、発光の明度を調整することができるものである。
【００２８】
グリッドドライバ部２３はグリッド電極を駆動するための電力増幅部であり、その出力の形態は、消費電力を削減し、電力回路の簡略化のためにパルス幅変調（ＰＷＭ）信号とされる。電力回路はグリッド電極の数に応じた数とされ、グリッドドライバ部２３はシリアル入力、パラレル出力のインターフェイスを備え、その電力回路の各々がＭＰＵ２１からのシリアル出力信号としてのグリッドコントロール信号によって制御される。ここで、グリッドコントロール信号はＣＰＵ３１のＩＯポート（グリッドコントロールポート）から出力される。
【００２９】
また、アノードドライバ部２４はアノード電極を駆動するための電力増幅部であり、その出力の形態は、消費電力を削減し、電力回路の簡略化のためにパルスＰＷＭ信号とされる。電力回路はアノード電極の数に応じた数とされ、アノードドライバ部２４はシリアル入力、パラレル出力のインターフェイスを備え、その電力回路の各々がＭＰＵ２１からのシリアル出力信号としてのアノードコントロール信号によって制御される。ここで、アノードコントロール信号はＣＰＵ３１のＩＯポート（アノードコントロールポート）から出力される。
【００３０】
ＤＣ／ＤＣコンバータ２５は、一つの電圧から複数の電圧を作り出してＶＦＤ２２の各部に供給するためのものであり、ＭＰＵを動作させるための電圧Ｖｃから、ＶＦＤのフィラメント４５を動作させるための電圧Ｅｆ、グリッドドライバ部２３を動作させるための電圧ｅｃｃ、アノードドライバ部２４を動作させるための電圧ｅｂｂを生成している。
【００３１】
以下に、本実施形態の要部である、シリアルインターフェイスについてより詳細に説明する。シリアルインターフェイスは、受信シフトレジスタ４１と、ＲＡＭ３２に配されたシリアルインターフェイス用の受信リングバッファ領域とをハードウエアとして有し、さらに、これらのハードウエアを制御するためのＲＯＭ３２に格納され、ＣＰＵ３１におけるシリアルインターフェイスの処理手順である受信割込処理を記憶したソフトウエアを有して構成されている。
【００３２】
シリアルインターフェイスのハードウエアについて説明する。受信シフトレジスタ４１は、表示データを含む受信データを例えばＬＳＢ（Ｌｅａｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）から順に受信クロックに同期して取り込み、８ビット分取り込んだ場合には、パラレルデータとして受信レジスタに自動的に転送されるようにＣＰＵ３１の内部でハードウエアが構成されている。ここで、受信シフトレジスタ４１への取り込みは、受信クロックの立ち上がりエッジに同期しておこなわれるので、受信クロックが変化しない場合には取り込みの処理はおこなわれない。また、受信レジスタに８ビットの受信データが転送された後は、再び、受信シフトレジスタ４１は、次のシリアル受信データを、端子ＤＳＲを介して順に取り込むこととなる。上述した、受信シフトレジスタ４１へのデータの転送、受信シフトレジスタ４１から受信レジスタへのデータの転送は、ＣＰＵ３１のハードウエアの制御でおこなわれ、ＣＰＵ３１で実行されるソフトウエア処理は介在しない。そして、受信シフトレジスタ４１から受信レジスタへの１バイトのデータの転送完了毎に、所謂、ベクタ割込が生じるようにＣＰＵ３１のハードウエアが構成されている。
【００３３】
シリアルインターフェイスを制御するソフトウエアは、ベクタ割込が生じることによって、ベクタ割込テーブルに後述する受信割込処理の先頭番地が書かれ、その番地から処理が開始する割込処理とされている。
【００３４】
次に、図３ないし図５を参照して、ＣＰＵ３１が実行する処理の概要をフローチャートで示す。
【００３５】
図３にメイン処理の概要を示す。ＶＦＤモジュール１０に電圧Ｖｃが供給された時点でパワーオンリセットがなされ、ハードウエア割込が発生して、ベクタ割込テーブルのパワーオンリセット・ハードウエア割込に対応する番地にメイン処理の開始の先頭番地が書かれており、メイン処理が開始する。なお、図１においては、パワーオンリセット回路は記載が省略されている。メイン処理は、ステップＳＴ１０からステップＳＴ１２に表す初期設定をした後に、一連の処理を繰り返すループとされている。
【００３６】
ステップＳＴ１０では、割込を禁止している。初期設定の前に割込が発生すると処理が暴走するので、これを防ぐためである。ステップＳＴ１１でおこなわれる初期設定の主なる処理は、後述する複数の割込の優先順位の設定、後述するタイマ割込時間設定、受信リングバッファ書き込みポインタの初期値設定、受信リングバッファ読み出しポインタの初期値設定、送信リングバッファ書き込みポインタの初期値設定、送信リングバッファ読み出しポインタの初期値設定、その他のＣＰＵ３１に配された複数のレジスタのクリアである。この他、ＩＯポートの初期値設定等もおこなわれる。そして、ステップＳＴ１２では、初期設定後に、割込を許可するようにしている。
【００３７】
ステップＳＴ１５のメイン処理ルーチンでは、受信データにもとづいた処理を始めとする種々の表示のための処理をおこなう。メイン処理ルーチンは複数のサブルーチンから構成されており、例えば、受信データを解読してその後の処理を決定する受信データ解読処理ルーチン、受信データから表示データを抜き出して表示データに応じたビットマップを作成する出力表示データ作成処理、ＶＦＤ２２の発光輝度を設定する輝度設定処理、時間を例えば時計の絵柄として表示するか否かの制御をする時計表示処理等を有している。そして、メイン処理ルーチンはループとして繰り返すように構成されている。メイン処理ルーチンでおこなう処理の内容は後述する。
【００３８】
図４に、本実施形態の要部である受信割込処理の概要を示す。受信割込処理は、上述したように、受信レジスタにデータが転送された場合、すなわち、受信レジスタにデータが転送された直後に生じる割込処理である。ステップＳＴ４０では、受信レジスタにデータが１バイト移動する毎にその１バイトのデータをリングバッファに順次書き込むが、どのようにして、この書き込みの制御をおこなうかについての説明の詳細は後述する。
【００３９】
ここで、受信リングバッファの構成について説明をする。受信リングバッファはＲＡＭ３３の所定の領域であるリングバッファ領域に連続したアドレスを有して配されている、受信リングバッファのバイト数は２のべき乗となる数、例えば、２バイトから１０２４バイト程度の数とされている。この受信リングバッファのバイト数（容量）が多い程、ホスト機器５０とＶＦＤモジュール１０との間のバースト転送レートを向上させることができるので、本実施形態では、受信リングバッファの容量は２５６バイトとしている。この結果として、受信リングバッファのアドレス空間は８ビットで指定される相対番地を有している。
【００４０】
受信リングバッファの容量を２５６バイトとし、受信リングバッファに記憶された未処理データのバイト数がＬバイトである場合には、２５６−Ｌ（バイト）の受信データの連続転送が可能となる。つまり、リングバッファにおいては、バッファ領域に繰り返し上書きがされるので、未処理領域に上書きすると未処理データはその後、ＣＰＵ３１における処理の対象として使えないからである。受信リングバッファのバイト数を２のべき乗となる数とする理由は後述する。
【００４１】
図５に出力表示割込処理の概要を示す。出力表示割込処理は、ＣＰＵ３１の内部に構成されるハードウエアタイマーからの割込信号で所定周期毎におこなわれる。この所定周期は、ＣＰＵのマスタークロックを分周比が可変とされるハードウエアカウンタで分周して定められ、この所定周期は、上述したタイマ割込時間設定として初期設定される。出力表示割込処理でおこなわれる処理の内容は、スキャン（アノード電極、グリッド電極に印加される電圧を順次、変化させて、ＶＦＤ２２のセグメントをどのように順次、発光させるかの手順）の方式にしたがって、上述した出力表示データ作成処理のルーチンで作成されたＶＦＤアドレスを参照して、このアドレスに格納された出力表示データをグリッドコントロールポートに書き込むステップＳＴ３０に示す処理と、スキャンの手順にしたがって、上述した出力表示データ作成処理のルーチンで作成されたＶＦＤアドレスを参照して、このアドレスに格納された出力表示データをアノードコントロールポートに書き込むステップＳＴ３１に示す処理とである。
【００４２】
この処理がタイマ割込処理としておこなわれる理由は、スキャンの速度が一定ではないと、グラフィック画面がちらつく等の視覚的な問題が生じる虞があるからである。すなわち、ステップＳＴ３０の処理の内容は、後述する出力表示バッファ領域のデータに基づいて、どのグリッド電極に電圧を印加するかの情報をスキャンのタイミング毎に発生して、グリッドコントロールポートを介して、グリッドドライバ部２３に伝達するものである。また、ステップＳＴ３１の処理の内容は、出力表示バッファ領域のデータに基づいて、どのアノード電極に電圧を印加するかの情報をスキャンのタイミング毎に発生して、アノードコントロールポートを介して、アノードドライバ部２４に伝達するものである。
【００４３】
ここで、不定期に生じる割り込みである受信割込処理と、一定の周期で生じる割り込みである出力表示割込処理のいずれの優先順位を高く設定するかについて説明する。いずれの優先順位を高く設定するかについては、一方の処理をおこなっている時に、優先順位の高い割込処理が先におこなわれ、他方の処理は、優先順位が高い方の割込処理が終了後にしか割込処理ができない点で問題となるものである。例えば、出力表示割込処理の方を受信割込処理よりも優先順位を高く設定する場合には、受信割込処理の処理途中であれば、一旦処理を退避し、出力表示割込処理が終了後、再び受信割込処理がおこなわれ、出力表示割込処理の処理途中に受信割込処理の割込が生じた場合には、受信割込処理は待機して、出力表示割込処理が終了後に受信割込処理がおこなわれる。そして、割込処理終了後にメインルーチンに戻る。
【００４４】
しかしながら、上述した出力表示割込処理の方を受信割込処理よりも優先順位を高く設定する場合において、ホスト機器５０がＶＦＤモジュール１０の動作に同期することなく、受信データを次々と送る場合においては、受信レジスタからリングバッファに受信データを移動させることができないうちに、次々と受信レジスタの内容が書き換えられ正しいデータをリングバッファに書き込めない場合があり得ることとなる。
【００４５】
一方、受信割込処理の方を出力表示割込処理よりも優先順位を高く設定する場合には、このような受信エラー発生の問題は生じないが、本来、タイマ割込によって所定間隔で割込処理がおこなわれるべき出力表示割込処理の処理間隔が一定ではなく、ばらつくこととなる。その結果、一部のドットの輝度が変化し表示がちらつくこととなる。一般的には受信レジスタからリングバッファに受信データを確実に移動させることを設計の前提条件とした上で、出力表示割込処理の方を受信割込処理よりも優先順位を高く設定している。
【００４６】
このような、優先順位を採用する場合には、出力表示割込処理の速度を向上させることによって、受信割込処理が開始するまでの待ち時間を短くしている。背景技術として上述した公知の技術による場合には、待ち時間を短くするためには、より、高速で働くＣＰＵをＣＰＵ３１として採用することとなる。しかしながら、このようなＣＰＵは価格が高く、ＶＦＤモジュール１０のコストを高くしてしまい、装置（ＶＦＤモジュール１０）を採用するユーザの期待に応えることができない。
【００４７】
また、図６に示す送信割込処理についても上述した受信割込処理と同様の事態が発生する。すなわち、ホスト機器５０が送信データを要求した場合に、表示が乱れないように、ステップＳＴ５０における送信割込処理よりも出力表示割込処理の優先順位を高く設定している。なお、受信割込処理と送信割込処理との競合は、ホスト機器５０が、その、いずれについても割込が発生するタイミングについて支配権を有しているので、予め、ＶＦＤモジュール１０の仕様書に基づき、ホスト機器５０のソフトウエアが設計されていれば、いずれの、優先度が高い場合にも何ら問題を生じるものではないが、一般的には、受信割込処理、送信割込処理は同じ順位とし、それらより出力表示割込処理を優先させるよう割込優先順位が設定される。
【００４８】
送信割込処理に関連したハードウエアについて簡単に説明する。ホスト機器５０は、送信クロックをＶＦＤモジュール１０の送信シフトレジスタ４２に対して送出する。ＣＰＵ３１は、送信クロックに同期して１ビットずつ送信シフトレジスタ４２の送信データをＬＳＢ（Ｌｅａｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）から順に送信クロックに同期してホスト機器５０に送出する。送信シフトレジスタ４２からホスト機器５０へデータを送り終わると、送信レジスタから送信シフトレジスタ４２へ１バイト分のデータが移動する。このシリアルの転送、および、送信レジスタから送信シフトレジスタ４２へのデータの転送は、ＣＰＵ３１のソフトウエアに基づく処理手順を介すことなく、ハードウエアのみでおこなわれる。
【００４９】
そして、送信レジスタから送信シフトレジスタ４２へデータが移動した場合には、次の１バイト分のデータを要求するベクタ割込が生じるようにＣＰＵ３１のハードウエアが構成されている。
【００５０】
図６は、上述したＣＰＵ３１の構成によっておこなわれる送信割込処理の概要を示すものである。送信割込処理は、上述したように、送信シフトレジスタ４２に送信レジスタからデータが転送された直後に生じる割込処理である。ステップＳＴ５０では、送信レジスタから送信シフトレジスタ４２へ送信データが１バイト移動する毎に、次に送信レジスタに書き込むべき１バイトのデータを送信リングバッファから順次転送するが、どのようにして、この転送の処理をおこなうかについての説明の詳細は後述する。
【００５１】
ここで、送信リングバッファの構成について説明をする。送信リングバッファはＲＡＭ３３の所定の領域に配されている。送信リングバッファのバイト数は２のべき乗となる数、例えば、２バイトから１０２４バイト程度の数とされている。この送信リングバッファのバイト数（容量）が多い程、ホスト機器５０とＶＦＤモジュール１０との間のバースト転送レートを向上させることができるので、本実施形態では、送信リングバッファの容量は２５６バイトとされ、送信リングバッファのアドレス空間は８ビットで指定される相対番地を有している。ここで、送信リングバッファ領域と受信リングバッファ領域とは異なる領域とされており、送信リングバッファも受信リングバッファと同様に連続したアドレスで指定される領域とされている。
【００５２】
送信リングバッファの容量を２５６バイトとし、送信リングバッファに記憶された送信レジスタに既に転送された送信データのバイト数がＫバイトである場合には、２５６−Ｋ（バイト）の送信データの連続転送が可能となる。つまり、送信リングバッファにおいては、受信リングバッファと同様にして、バッファ領域に繰り返し上書きがされるので、送信レジスタに対してデータが未転送の領域に上書きするとそのデータはホスト機器５０に転送されないこととなるためである。
【００５３】
シリアルインターフェイスを介して転送される受信データおよび送信データのフォーマット構成について説明する。
【００５４】
受信データは、ＶＦＤモジュール１０の動作を制御する制御命令データと、ＶＦＤモジュール１０に表示する表示の内容である表示データおよび制御の内容を示すデータである制御内容データがある。各々１バイト（８ビット）で構成されている。
【００５５】
制御命令データとしては、例えば、再び制御命令が来るまでの受信データが、表示データであることを示し、さらに、表示データが所定フォントのキャラクタデータであるかビットマップデータであるかを併せて表す、表示データ転送命令、ＶＦＤ２２の発光輝度を指定する発光輝度設定命令、予め定められた位置に、短針（時間単位の経過を表す）と長針（分単位の経過を表す）とで時間を示す時計の図柄を表示するか否かを設定する時計表示命令、ＶＦＤ２２のスキャンをどの様におこなうのかのスキャン制御命令（例えば、図２に示す、アノード電極とグリッド電極とのスキャンをともにおこなうのか、グリッド電極１Ｇからグリッド電極ＮＧまでスキャンが終了した後に、アノード電極の電位が「１」となる電極の位置を変化させる態様のスキャンとするか、アノード電極１Ａからグリッド電極ＭＡまでスキャンが終了した後に、グリッド電極の電位が「１」となる電極の位置を変化させる態様のスキャンとするか等を制御する命令）、ＶＦＤ２２の発光を停止させるためにフィラメントに供給する電圧Ｅｆを低電圧または零電圧とし、さらには、その他の各部に供給される電圧を零電圧とする待機命令、ＶＦＤモジュール１０の各部に適正な電圧を供給しながら、ＶＦＤの発光を停止させるブランキング命令等である。このようして、ＭＰＵ２１をＶＦＤモジュール１０の構成要素として採用する場合には、種々の制御命令を定義することによって、ＭＰＵ２１に接続される種々のハードウエアを広範囲にホスト機器５０から制御することが可能となる。
【００５６】
制御内容データは、例えば、制御命令データに続く、１バイトまたは複数のバイト数の受信データである。すなわち、制御命令データが単独で存在する場合と、制御命令データに付随して１バイトまたは複数のバイトの制御内容データが付加され、直前の制御命令の内容を詳細に記述する場合がある。例えば、ブランキング命令は、制御内容データが付加されない１バイト長で完結する制御命令データである。また、別の例の発光輝度設定命令では、制御内容データとして発光輝度データが付加されており、発光輝度設定命令に続く発光輝度データは、１バイトで表され、発光輝度データの内容が７ＦＨである場合にはＶＦＤ２２の発光輝度は最も大きなものとされ、輝度データの内容が００Ｈである場合にはＶＦＤ２２の発光輝度は最も小さなものとされる。さらに、別の例では、表示データ転送命令では、１バイト長の表示アドレスデータとそれに続く１バイト長の表示データからなる２バイト構成として、制御内容データは構成されている。１バイト目の表示アドレスデータは、００Ｈから７ＦＨまでの値でその表示がされるＶＦＤ２２における空間的な位置を表し、２バイト目の表示データは、表示の内容を表す。表示データは、ビットマップとして構成されている場合にはその内容、表示データが、ＶＦＤモジュール１０が予め対応可能とされている所定のキャラクタである場合には、それらのキャラクタの各々に割り振られたコード（キャラクタコード）等であり、００Ｈから７ＦＨまでの値をとるものである。
【００５７】
上述のように、制御命令データおよび制御内容データは各々８ビットの１バイト長とされているが、ＶＦＤモジュール１０で処理をおこなうに際しては、制御命令データで有るか制御内容データであるかを区別する必要があるので、制御命令データは、ＭＳＢ（Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）を１に設定し、制御内容データは、ＭＳＢを０に設定するようにした。したがって、実際には、制御命令データおよび制御内容データの取る得る情報は７ビットとなり、それ以上を表示する場合には、この７ビットの情報を連結して、任意のビットサイズの情報を表すこととなる。
【００５８】
また、制御命令データとしては、装置診断命令が設けられており、ＶＦＤモジュール１０の各部の状態、動作設定等の情報をホスト機器５０が知ることができるようになされている。装置診断命令をＣＰＵ３１が受け取り、解読後に、装置診断命令に応じて診断内容をＣＰＵ３１は、送信レジスタに書き込む。一方、ホスト機器５０は、装置診断命令を発行後、診断のためのデータが読み出し可能となる所定時間が経過した後、送信クロックを送出して装置診断命令に応じたデータを１バイトずつ受け取る。装置診断命令で要求するデータとしては、上述した制御命令データがどのようなものとして設定されているかの情報をＶＦＤモジュール１０に要求する命令、各部に供給される電源の電圧値、ＶＦＤモジュール１０が温度検出器（図１には図示せず）を備える場合には、温度検出器が示す温度、表示データがビットマップとして構成されている場合にはそのビットマップの内容、表示データがキャラクタコードである場合にはキャラクタコードの内容である。
【００５９】
（受信割込処理）
図７を参照して、図４にステップＳＴ４０として、概要を示した受信割込処理の内容をより詳細に説明する。受信割込処理は、上述したように、メイン処理の実行中、あるいは、出力表示割込処理の実行中において、受信シフトレジスタ４１から受信レジスタへデータが移動した場合に生じるハードウエア割り込みによって処理が開始し、所定の処理内容の実行後に、再び、処理中であった処理ルーチンに戻る処理である。
【００６０】
ステップＳＴ４０１では、現在の受信リングバッファ書き込みポインタの値Ｎを読み取る。受信リングバッファ書き込みポインタの値Ｎは、受信リングバッファの相対アドレスを示すものであって、１バイト（８ビット）で表されるデータがＣＰＵ３１の所定のレジスタに格納されている。ここで、受信リングバッファは２５６バイトとしているので、受信リングバッファ書き込みポインタを８ビットとして、受信リングバッファ領域のすべての受信リングバッファの相対アドレスを指定できることとなる。
【００６１】
ステップＳＴ４０２では、受信リングバッファ書き込みポインタの値を８ビット幅から１６ビット幅に拡張し、アドレスを２バイト（１６ビット）の値とする。具体的には、上位８ビットを受信リングバッファが配置されるアドレスのアドレス値に合わせた所定の値とする。これによって、ＲＡＭ３３に配された受信リングバッファにアクセスできるようになる。すなわち、ＭＰＵ２１におけるアドレスバスは１６ビットのバス幅を有し、ＲＡＭ３３、ＲＯＭ３２、グリッドドライバ部２３を制御するＩＯポート、アノードドライバ部２４を制御するＩＯポートの各々が、この１６ビットのアドレスで制御される。そして、ＲＡＭ３３における受信リングバッファは、上位の８ビットがＸＸＨ（１６進数でＸＸ）として、アドレス値ＸＸ００Ｈからアドレス値ＸＸＦＦＨの範囲とされているので、上述した操作が必要となるものである。
【００６２】
ステップＳＴ４０３では、アドレス値ＸＸ００Ｈに相対アドレスの値Ｎを加算した値の１６ビットのアドレスで指定される受信リングバッファに、受信レジスタの１バイト長の受信データを転送する。
【００６３】
ステップＳＴ４０４では、受信リングバッファ書き込みポインタの値を１だけインクリメントする。そして、処理は、割込処理の発生前の処理ルーチンへ戻る。
【００６４】
上述の処理においては、ステップＳＴ４０３以外は、１バイト長の情報しか取り扱わないので、これらのステップにおける命令の実行時間の各々は１バイト長に対応した時間となる。また、上述の処理は、レジスタからメモリへの転送命令と、レジスタの操作命令であるので、命令処理時間は比較的短時間となる。
【００６５】
また、上述の説明では受信リングバッファは、８ビットで表される２５６バイトであるとしたが、例えば、７ビットで表される１２８バイト、６ビットで表される６４バイト、５ビットで表される３２バイト、４ビットで表される１６バイト、３ビットで表される８バイト、４ビットで表される１６バイト、３ビットで表される８バイト、２ビットで表される４バイト、１ビットで表される２バイトのいずれであっても良いものである。ここで、受信リングバッファのバイト数を２のべき乗としたのはこのようにすれば、ポインタの値が順次インクリメントする場合において、上位ビットをマスクすれば、受信リングバッファを適正にアクセスできるからである。マスクする上位ビットの数は、リングバッファの容量が２５６バイトである場合には８ビット、リングバッファの容量が１２８バイトである場合には９ビット、リングバッファの容量が６４バイトである場合には１０ビット、リングバッファの容量が３２バイトである場合には１１ビット、リングバッファの容量が１６バイトである場合には１２ビット、リングバッファの容量が８バイトである場合には１３ビット、リングバッファの容量が４バイトである場合には１４ビット、リングバッファの容量が２バイトである場合には１５ビットとなる。
【００６６】
図８には、上述した図７に示したフローチャートと比較のために、背景技術に示した技術にもとづく、受信割込処理を示す。
【００６７】
ステップＳＴ４１１では、現在の受信リングバッファ書き込みポインタの値Ｎを読み取る。受信リングバッファ書き込みポインタの値Ｎは、受信リングバッファの絶対アドレスを示すものであって、２バイト（１６ビット）で表されるアドレスのデータがＣＰＵ３１の所定のレジスタ（２つのレジスタをつないだ２バイト長のレジスタ）に格納されている。
【００６８】
ステップＳＴ４１２では、アドレス値Ｎ（ＸＸＸＸＨ）の１６ビットのアドレスで指定される受信リングバッファに、受信レジスタの１バイト長の受信データを転送する。
【００６９】
ステップＳＴ４１３では、受信リングバッファ書き込みポインタの値を１だけインクリメントする。
【００７０】
ステップＳＴ４１４では、受信リングバッファ書き込みポインタの値が、連続する受信リングバッファ領域の最終アドレス値＋１か否かを判断する。そして、判断結果が、Ｙｅｓ、すなわち、現在の、受信リングバッファ書き込みポインタの値が受信リングバッファ領域の最終アドレス値＋１である場合には、処理はステップＳＴ４１５へ跳ぶ。また、ステップＳＴ４１４における判断結果が、Ｎｏ、すなわち、現在の、受信リングバッファ書き込みポインタの値が受信リングバッファ領域の最終アドレス値＋１である場合ではない場合には、処理は、割込処理の発生前の処理ルーチンへ戻る。
【００７１】
ステップＳＴ４１５では、受信リングバッファ書き込みポインタの値を受信リングバッファ領域の最初のアドレス値とする。そして、処理は、割込処理の発生前の処理ルーチンへ戻る。
【００７２】
上述の処理においては、処理は、２バイト長の数を取り扱うので、これらのステップにおける命令の実行時間は、図７に示す本実施形態における１バイト長に対応した時間に較べて、各々のステップにおける処理実行時間となる。さらに、ステップＳＴ４１４における条件分岐命令は、レジスタ・メモリ間の転送命令に較べて、より、実行時間が長いものである。また、ＣＰＵ３１において使用可能なレジスタの数には制限があるので、ＣＰＵ３１のレジスタを２バイト長必要とされる受信リングバッファ書き込みポインタの記憶領域として割り当てることが困難となる場合には、ＲＡＭ３３の領域を受信リングバッファ書き込みポインタの記憶領域として割り当てることとなり、受信リングバッファ書き込みポインタの値を読み出す場合にＣＰＵ３１のレジスタではなく、ＲＡＭ３３にアクセスしなければならず、アクセスのための処理時間はより長いものとなる。
【００７３】
（送信割込処理）
また、図９を参照して、図６にステップＳＴ５０として示した、本実施形態の送信割込処理の内容をより詳細に説明し、図１０を参照して、図９に示す実施形態の比較例としての背景技術に示した技術にもとづく、送信割込処理を示すものである。基本的な処理内は、受信割込処理と同様であるので、簡単に以下、説明する。
【００７４】
送信割込処理は、上述したように、メイン処理の実行中、あるいは、出力表示割込処理の実行中において、送信レジスタから送信シフトレジスタ４２へデータが移動した場合に生じるハードウエア割り込みによって処理が開始し、所定の処理内容の実行後に、再び、処理中であった処理ルーチンに戻る処理である。
【００７５】
ステップＳＴ５０１では、現在の送信リングバッファ読み出しポインタの値Ｍを読み取る。送信リングバッファ読み出しポインタの値Ｍは、送信リングバッファの相対アドレスを示すものであって、１バイト（８ビット）で表されるデータがＣＰＵ３１の所定のレジスタに格納されている。ここで、送信リングバッファは２５６バイトとしているので、送信リングバッファ読み出しポインタを８ビットとして、送信リングバッファ領域のすべての送信リングバッファの相対アドレスを指定できることとなる。
【００７６】
ステップＳＴ５０２では、送信リングバッファ読み出しポインタの値を８ビット幅から１６ビット幅に拡張する。上位の８ビットが＊＊Ｈ（１６進数で＊＊）として、送信リングバッファ領域はアドレス値＊＊００Ｈからアドレス値＊＊ＦＦＨの範囲とされているので、上述した操作が必要となるものである。
【００７７】
ステップＳＴ５０３では、アドレス値＊＊００Ｈに相対アドレスの値Ｍを加算した値の１６ビットのアドレスで指定される送信リングバッファから送信レジスタへ１バイト長の送信データを転送する。
【００７８】
ステップＳＴ５０４では、送信リングバッファの値を１だけインクリメントする。そして、処理は、割込処理の発生前の処理ルーチンへ戻る。また、上述の説明では送信リングバッファのバイト数は２５６バイトとしたが、上述した受信リングバッファの数と同様に、２のべき乗で表される、２５６バイト未満の数とすることができ、このようにしても、同様の効果を得ることができる。
【００７９】
図１０に比較のための背景技術に示す技術を用いる場合の送信割込処理の説明をする。ステップＳＴ５１１では、現在の送信リングバッファ読み出しポインタの値Ｍを読み取る。送信リングバッファ読み出しポインタの値Ｍは、送信リングバッファの絶対アドレスを示すものであって、２バイト（１６ビット）で表されるアドレスのデータがＣＰＵ３１の所定のレジスタ（２つのレジスタをつないだ２バイト長のレジスタ）に格納されている。
【００８０】
ステップＳＴ５１２では、アドレス値Ｍ（＊＊＊＊Ｈ）の１６ビットのアドレスで指定される送信リングバッファから送信レジスタに１バイト長の送信データを転送する。
【００８１】
ステップＳＴ５１３では、送信リングバッファ読み出しポインタの値を１だけインクリメントする。
【００８２】
ステップＳＴ５１４では、送信リングバッファ読み出しポインタの値が、連続する送信リングバッファ領域の最終アドレス値＋１か否かを判断する。そして、現在の、送信リングバッファ読み出しポインタの値が送信リングバッファ領域の最終アドレス値＋１である場合（Ｙｅｓ）にはステップＳＴ５１５へ跳ぶ。また、ステップＳＴ５１４における判断結果として、現在の、送信リングバッファ読み出しポインタの値が送信リングバッファ領域の最終アドレス値＋１である場合ではない場合（Ｎｏ）には、処理は、割込処理の発生前の処理ルーチンへ戻る。
【００８３】
ステップＳＴ５１５では、送信リングバッファ書き込みポインタの値を送信リングバッファ領域の最初のアドレス値とする。そして、処理は、割込処理の発生前の処理ルーチンへ戻る。
【００８４】
上述の処理においては、処理は、２バイト長の数を取り扱うので、これらのステップにおける命令の実行時間は、図９に示す本実施形態における１バイト長に対応した時間に較べて、各々のステップにおける処理実行時間となる。さらに、ステップＳＴ５１４における条件分岐命令は、レジスタ・メモリ間の転送命令に較べて、より、実行時間が長いものである。また、ＣＰＵ３１において使用可能なレジスタの数には制限があるので、ＣＰＵ３１のレジスタを２バイト長必要とされる送信リングバッファ書き込みポインタの記憶領域として割り当てることが困難となる場合には、ＲＡＭ３３の領域を送信リングバッファ書き込みポインタの記憶領域として割り当てることとなり、送信リングバッファ書き込みポインタの値を読み出す場合にＣＰＵ３１のレジスタではなく、ＲＡＭ３３にアクセスしなければならず、アクセスのための処理時間はより長いものとなる。
【００８５】
（メイン処理ルーチン）
図１１を参照して、図３に示すメイン処理のステップＳＴ１５で実行されるメイン処理ルーチンの概要を説明する。
【００８６】
メイン処理ルーチンでは、種々の処理がおこなわれるが、図１１に示すのは、その中の代表的な一部である、ステップＳＴ１５１で示す受信データ読み取り解読処理、ステップＳＴ１５３で示す出力表示データ作成処理、ステップＳＴ１５５で示す輝度設定処理、ステップＳＴ１５７で示す時計表示処理である。上述した各々の処理はサブルーチンとして構成されている。各々のサブルーチンの処理をおこなうか否かについては、該当する処理に対応したフラグが１であるか０であるかに応じて決められる。すなわち、フラグが１である場合には該当するサブルーチンへ跳び処理をおこない、フラグが０である場合には処理をおこなわずに次のステップへ処理は移動する。以下に、受信データ読み取り解読処理、出力表示データ作成処理、輝度設定処理の各々について、その処理内容を簡単に説明する。
【００８７】
（受信データ読み取り解読処理）
図１２を参照して、図１１にステップＳＴ１５１に示す受信データ読み取り解読処理の説明をより詳細におこなう。受信データ読み取り解読処理は、ＣＰＵ３１において必要な処理をするために受信リングバッファから受信データを読み取る処理である。
【００８８】
ステップＳＴ１５１１では、受信リングバッファ読み出しポインタ（受信リングバッファ読み取り解読処理を説明する部分においては、読み出しポインタと記載を省略して用いる）を発生する。読み出しポインタとして、どの様な１６ビットのアドレスを発生するかは重要なものである。読み出しポインタの発生の手順は省略するが、図７において示す受信割込処理によって書き込まれた受信データを読み出すに際しては、既に読み出された受信データを２回以上読み出さないように処理手順は構成されている。すなわち、現在の受信リングバッファ書き込みポインタの値Ｎを考慮して、書き込まれてから１回も読まれていないリングバッファメモリ領域を指し示し、その値が１ずつインクリメントされるような読み出しポインタを発生するようになされている。ここで、読み出しポインタの上位の８ビットの値は固定とされ、下位の８ビットの値はＦＦＨに達すると再び００Ｈに戻る。仮に、リングバッファからの受信データを２度以上読み出すこととなる場合には、図示はしないが、ステップＳＴ１５１１の処理は、中断して、この割込処理は終了し、新しい受信データが書き込まれるまで、処理は次のステップであるステップＳＴ１５１２に移動することはない。
【００８９】
逆に、受信割込処理において受け付ける受信データの量が、受信リングバッファ読み取り解読処理における処理量を処理できない場合には、１度も処理されない受信データが発生することとなるので、この点を考慮して、メイン処理ルーチンにおける処理のステップ数が設定されている。そして、受信割込処理における書き込みポインタの値Ｎの進行が速すぎる場合には、ホスト機器５０からの装置診断命令によって、ホスト機器５０はその旨を知るようにすることもできる。
【００９０】
ステップＳＴ１５１２では、ＣＰＵ３１は、読み出しポインタが指すリングバッファのアドレスから１バイト分の受信データを読み出す。
【００９１】
ステップＳＴ１５１３では、受信データが制御命令であるか否かを判断する。制御命令である場合（Ｙｅｓ）には処理はステップＳＴ１５１４へ移り、受信データが制御命令である場合では無い場合（Ｎｏ）、すなわち、制御内容データである場合には、このサブルーチンから抜ける。
【００９２】
ステップＳＴ１５１４では、表示転送命令であるか否かを判断する。表示転送命令である場合（Ｙｅｓ）には処理はステップＳＴ１５１５へ移り、受信データが表示転送命令である場合では無い場合（Ｎｏ）には、処理はステップＳＴ１５１６へ移る。
【００９３】
ステップＳＴ１５１５では、制御フラグをクリア（制御フラグを００Ｈに設定）後に出力表示フラグを１に設定する。さらに、表示転送命令に含まれる情報がビットマップであることを示す場合には制御フラグに含まれるビットマップフラグを１に、表示転送命令に含まれる情報がキャラクタコードであることを示す場合にはビットマップフラグを０に設定する。ここで、制御フラグはＲＡＭ３３の所定領域に制御命令の数に応じて確保された、１バイトまたは２バイトの記憶領域にビット単位で書き換えて格納されるようになされている。
【００９４】
ステップＳＴ１５１６では、受信データが輝度設定命令であるか否かを判断する。輝度設定命令である場合（Ｙｅｓ）には処理はステップＳＴ１５１７へ移り、受信データが輝度設定命令である場合では無い場合（Ｎｏ）には、処理はステップＳＴ１５１８へ移る。
【００９５】
ステップＳＴ１５１７では、制御フラグをクリア後に輝度設定フラグを１に設定する。その後、処理はステップＳＴ１５１８へ移る。
【００９６】
ステップＳＴ１５１８では、受信データが時計表示命令であるか否かを判断する。時計表示命令である場合（Ｙｅｓ）には処理はステップＳＴ１５１９へ移り、受信データが時計表示命令である場合では無い場合（Ｎｏ）には、処理はステップＳＴ１５２０へ移る。
【００９７】
ステップＳＴ１５１９では、制御フラグをクリア後に時計表示フラグを１に設定する。その後、処理はステップＳＴ１５２０へ移る。
【００９８】
ステップＳＴ１５２０は以下の種々の制御命令を代表して、その他の命令と記載をしている。ステップＳＴ１５２０では、受信データがその他の命令（例えば、スキャン制御命令、待機命令、ブランキング命令、装置診断命令等）であるか否かを判断する。その他の命令である場合（Ｙｅｓ）には処理は、ステップＳＴ１５２１へ移り、受信データがその他の命令である場合では無い場合（Ｎｏ）には、このサブルーチンの処理は終了する。
【００９９】
ステップＳＴ１５２１では、その他の制御命令に該当する所定フラグを１に設定する。その後、このサブルーチンの処理は終了する。
【０１００】
（出力表示データ作成処理）
図１３を参照して、図１１のステップＳＴ１５３で実行される処理である出力表示データ作成処理の内容を示す。出力表示データ作成処理は、表示データ転送命令を受信する毎に、ＶＦＤ２２に表示するキャラクタを変更するためのデータを作成するものである。なお、表示データ転送命令が新たに発行されるまでは、ＶＦＤ２２に表示されるグラフィックは、変化しないで、以前の状態を保つようになされている。
【０１０１】
ステップＳＴ１５３１では、制御命令に続く１バイト目の制御内容データ（表示アドレスデータ）であるか否かを検出する。１バイト目である場合（Ｙｅｓ）には、処理はステップＳＴ１５３２に移り、１バイト目である場合ではない場合（Ｎｏ）には、処理はステップＳＴ１５３３に移る。この１バイト目であるか否かの検出はソフトウエアカウンタを用いる。すなわち、制御フラグとともにクリアされ、出力表示データ作成処理のルーチンを通過する毎にカウントアップするソフトウエアカウンタをＲＡＭ３３の所定領域に設け、このソフトウエアカウンタの値を読み取ることによって容易におこなえる。
【０１０２】
ステップＳＴ１５３１では、ＶＦＤ２２に表示される表示位置（ＶＦＤアドレス）を読み取る。図１４は、ＶＦＤアドレスを説明するための模式図である。例えば、図２の拡大図を用いて図１４では、説明をおこなう。図１４では、アノード電極に沿った７個のセグメント毎に左上から順に右下まで付与されている。ＶＦＤアドレス０（１０進数）は、ＶＦＤ２２の左上隅の７個のセグメント（セグメント１Ａ１Ｇ、セグメント１Ａ２Ｇ、セグメント１Ａ３Ｇ、セグメント１Ａ４Ｇ、セグメント１Ａ５Ｇ、セグメント１Ａ６Ｇ、セグメント１Ａ７Ｇ）を示し、ＶＦＤアドレス１（１０進数）は、ＶＦＤアドレス０（１０進数）の右隣の７セグメント（セグメント１Ａ８Ｇ・・・・、セグメント１Ａ１４Ｇ（図示せず））を示す。グリッド電極の本数が、７の倍数であるとして、横方向のセグメント数をＮｓとすると、同様にして、縦方向の左側２段目の７個のセグメント（セグメント２Ａ１Ｇ、セグメント２Ａ２Ｇ、セグメント２Ａ３Ｇ、セグメント２Ａ４Ｇ、セグメント２Ａ５Ｇ、セグメント２Ａ６Ｇ、セグメント２Ａ７Ｇ）のＶＦＤアドレスは、Ｎ／７＋１（１０進数）として表される。ここで、Ｎは、図２に示すグリッド電極の数であり、７で割っているのは、１個のＶＦＤアドレスが７本のグリッド電極に対応するからである。また、図２では、グリッド電極の数は、７の倍数となるように設定されている。
【０１０３】
同様にして、縦方向の左側３段目の７個のセグメント（セグメント３Ａ１Ｇ、セグメント３Ａ２Ｇ、セグメント３Ａ３Ｇ、セグメント３Ａ４Ｇ、セグメント３Ａ５Ｇ、セグメント３Ａ６Ｇ、セグメント３Ａ７Ｇ）のＶＦＤアドレスは、２（Ｎ／７）＋１（１０進数）として表され、縦方向の左側４段目の７個のセグメント（セグメント４Ａ１Ｇ、セグメント４Ａ２Ｇ、セグメント４Ａ３Ｇ、セグメント４Ａ４Ｇ、セグメント４Ａ５Ｇ、セグメント４Ａ６Ｇ、セグメント４Ａ７Ｇ）のＶＦＤアドレスは、３Ｎ（Ｎ／７）＋１（１０進数）として表され、他についても同様である。なお、この例はＶＦＤアドレスを決める１例に過ぎず、どのようにして、ＶＦＤアドレスを設定しても構わない。要は、表示アドレスデータとＶＦＤアドレスとが１対１に対応していればいかなるものであっても良い。また、表示アドレスデータの有効なビット数は７ビットであるが、表示アドレスデータを２バイトで表すことにすれば、有効なビット数を１４ビットとすることができる。また、図１４に符号Ｄを付して示す出力表示データのビット数（セグメントの数）も、表示データを２バイトで表すようにすれば、ビット数は１４に拡張できる。
【０１０４】
このようにして、ステップＳＴ１５３２では、ＶＦＤアドレスを読み取り、ＲＡＭ３３の所定領域にこの値を格納する。そして、処理はサブルーチンを抜けて、図１１に示す、ステップＳＴ１５４に跳ぶ、ここで、表示データ作成フラグが１である場合には、ビットマップフラグ以外は１となることはあり得ず、処理は、ステップＳＴ１５６、ステップＳＴ１５８を通過して、再び、ステップＳＴ１５１に戻り、図１２に示す、ステップＳＴ１５１１で受信リングバッファの読み出しポインタの値を１だけインクリメントし、ステップＳＴ１５１２で、この読み出しポインタの値が指す受信リングバッファのアドレスから１バイト分の受信データ（２バイト目の表示データ）を読み出す。この受信データは、表示データであるので、制御フラグの値には影響を与えない。そして、ステップＳＴ１５１３で制御命令ではないと判断され、処理はステップＳＴ１５１から抜けだして、図１１に示すステップＳＴ１５２に移る。そして、出力表示データ作成フラグは１であるので、処理は再び、ステップＳＴ１５３に戻る。
【０１０５】
図１３に示す、ステップＳＴ１５３１での判断の結果、今回は１バイト目ではなく、２バイト目の表示データであるので、処理はステップＳＴ１５３３に移る。
【０１０６】
ステップＳＴ１５３３では、表示データの内容を読み取り、処理はステップＳＴ１５３４に移る。
【０１０７】
ステップＳＴ１５３４では、制御フラッグのビットマップフラグが１であるか否かを判断する。ビットマップフラグが１である場合（Ｙｅｓ）には、処理はステップＳＴ１５３５に移り、ビットマップフラグが１である場合ではない場合（Ｎｏ）には、処理はステップＳＴ１５３６に移る。
【０１０８】
ステップＳＴ１５３５では、ビットマップデータの内容を出力表示バッファ領域に書き込む。そして、このサブルーチンにおける処理は終了する。この場合の出力表示バッファ領域の相対アドレスは、ステップＳＴ１５３２で読み取ったＶＦＤアドレスで特定される。出力表示バッファ領域は、ＲＡＭ３３に確保されている記憶領域であり、ＶＦＤアドレスに対応してその記憶領域の大きさは定められている。
【０１０９】
ステップＳＴ１５３６では、キャラクタコードからビットマップデータに展開する。ここで、キャラクタコードからビットマップへの展開のテーブルは、パターン変換マップとして、予めＲＯＭ３２に記憶されている。例えば、キャラクタとしての「Ａ」をコードが示す場合のビットマップは、図１４に示すように、ＶＦＤアドレスが０（１０進数）に対しては０００００００（２進数）、ＶＦＤアドレスがＮ／７＋１（１０進数）に対しては０００１１００（２進数）、ＶＦＤアドレスが２（Ｎ／７）＋１（１０進数）に対しては００１００１０（２進数）、ＶＦＤアドレスが３（Ｎ／７）＋１（１０進数）に対しては０１００００１（２進数）、ＶＦＤアドレスが４（Ｎ／７）＋１（１０進数）に対しては０１００００１（２進数）、ＶＦＤアドレスが５（Ｎ／７）＋１（１０進数）に対しては０１１１１１１（２進数）、ＶＦＤアドレスが６（Ｎ／７）＋１（１０進数）に対しては０１００００１（２進数）、ＶＦＤアドレスが７（Ｎ／７）＋１（１０進数）に対しては０００００００（２進数）と一度に８個のＶＦＤアドレスに対してのビットマップが、パターン変換マップを参照して得られるので、この内容を出力表示バッファ領域に書き込む。そして、このサブルーチンにおける処理は終了する。
【０１１０】
（輝度設定処理、時計表示処理）
輝度設定処理について極めて簡単に説明する。輝度設定フラグが１である場合には、処理は輝度設定処理に移り、ＶＦＤ２２の輝度を制御する。ＶＦＤ２２の発光の輝度は、アノード電極またはグリッド電極に電圧を印加する時間（時比率）を制御するＰＷＭ方式によっておこなわれる。より具体的には、ステップＳＴ１５５において、アノードコントロールポートまたはグリッドコントロールポートを制御して、アノードドライバ部２４またはグリッドドライバ部２３に設けられたＰＷＭドライバにパルス幅を設定することによって、発光輝度設定命令の内容に応じて輝度が調整される。
【０１１１】
時計表示処理について極めて簡単に説明する。時計表示フラグが１である場合には、処理は時計表示処理に移り、ＶＦＤ２２に予めグラフィック表示されるようにされた時計の絵柄の短針（時間）と長針（分）と秒針（秒）の形態を制御する。絵柄の変更、例えば、秒針の移動等は、ＣＰＵ３１で発生する、タイマ割込時間設定において設定した時間毎の割込、例えば、１秒毎のタイマ割込処理によって制御され正確な時間を表示する。時計表示フラグが０である場合には、時計表示はなされない。
【０１１２】
上述した、実施形態のＶＦＤモジュール１０によれば、汎用ＭＰＵを用い、低価格なＶＦＤモジュールを製造できる。ここで、ＶＦＤモジュールを低価格とすることができる技術的な理由は、ＭＰＵを用いることにより、ＶＦＤモジュールの電気構成部品を大幅に削減できるからである。すなわち、電力系統としてＤＣ／ＤＣコンバータ、アノードドライバ部、グリッドドライバ部以外の電気部品は不要とできる。そして、低価格な汎用ＭＰＵを用いることによって従来に無い低価格なＶＦＤモジュールとすることができる。
【０１１３】
また、汎用ＭＰＵを用いることによって、極めて適応性の高いＶＦＤモジュールとすることができ、ホスト機器からの制御によってその機能の制御を容易なものとなすことができるようになる。
【０１１４】
上述したように、実施形態に示す受信割込処理、送信割込処理を採用することによって、低価格の汎用ＭＰＵを用いることが可能となる。すなわち、ホスト機器とのデータ転送において、リングバッファのアドレスを特定するための、書込みポインタ、読込みポインタの変化範囲を下位ビットで指定できる範囲とする上述した技術の採用によって、書込みポインタ、読込みポインタの値が変更される毎にチェックする処理を不要として、ＭＰＵの処理速度を向上し、ホスト機器との間におけるデータの転送速度が向上されることによるものである。
【０１１５】
なお、本発明は上述した実施形態に限定されるものではなく、実施形態は必要に応じて変更することができるものである。
【図面の簡単な説明】
【０１１６】
【図１】出力表示機器の一実施例としてのＶＦＤモジュールを示すものである。
【図２】ＶＦＤのアノード電極とグリッド電極との配置を模式的に示す図である。
【図３】メイン処理の概要を示すフローチャートである。
【図４】受信割込処理の概要を示すフローチャートである。
【図５】出力表示割込処理の概要を示すフローチャートである。
【図６】送信割込処理の概要を示すフローチャートである。
【図７】図４に概要を示した受信割込処理の内容をより詳細に示すフローチャートである。
【図８】図７に示したフローチャートと比較のために、背景技術に示した技術にもとづく、受信割込処理を示すフローチャートである。
【図９】図６に概要を示した送信割込処理の内容をより詳細に示すフローチャートである。
【図１０】図９に示したフローチャートと比較のために、背景技術に示した技術にもとづく、送信割込処理を示すフローチャートである。
【図１１】図３に示すメイン処理のステップＳＴ１５で実行されるメイン処理ルーチンをより詳細に示すフローチャートである。
【図１２】図１１にステップＳＴ１５１に示す受信データ読み取り解読処理をより詳細に示すフローチャートである。
【図１３】図１１のステップＳＴ１５３に示す出力表示データ作成処理をより詳細に示すフローチャートである。
【図１４】ＶＦＤアドレスを説明するための模式図である。
【符号の説明】
【０１１７】
１Ａ〜ＭＡ  アノード電極、１Ｇ〜ＮＧ  グリッド電極、１Ａ１Ｇ〜ＭＡＮＧ  セグメント、１０  ＶＦＤモジュール、２１  ＭＰＵ、２２  ＶＦＤ、２３  グリッドドライバ部、２４  アノードドライバ部、２５  ＤＣ／ＤＣコンバータ、３２  ＲＯＭ、３３  ＲＡＭ、３１  ＣＰＵ、４１  受信シフトレジスタ、４２  送信シフトレジスタ、４５  フィラメント、５０  ホスト機器
【図１】
2008102694.tif 000003
【図２】
2008102694.tif 000004
【図３】
2008102694.tif 000005
【図４】
2008102694.tif 000006
【図５】
2008102694.tif 000007
【図６】
2008102694.tif 000008
【図７】
2008102694.tif 000009
【図８】
2008102694.tif 000010
【図９】
2008102694.tif 000011
【図１０】
2008102694.tif 000012
【図１１】
2008102694.tif 000013
【図１２】
2008102694.tif 000014
【図１３】
2008102694.tif 000015
【図１４】
2008102694.tif 000016