(57)【特許請求の範囲】
【請求項１】
ホスト機器に拡張カードを接続して機能拡張する場合に、前記ホスト機器に備えられている操作子および表示手段を用いて前記拡張カードの動作を制御する拡張カード動作制御方法であって、
任意の拡張カードに対し、前記ホスト機器の操作子が操作されたときに該操作情報を前記拡張カードに転送する共通のプロトコルを規定しておき、該プロトコルにしたがって前記ホスト機器の操作子の操作情報を前記拡張カードに転送するとともに、
任意の拡張カードに対し、その拡張カードが持つ画面表示用ビットマップデータを前記ホスト機器に転送する共通のプロトコルを規定しておき、該プロトコルにしたがって前記拡張カードが持つ画面表示用ビットマップデータを前記ホスト機器に転送し、該画面表示用ビットマップデータを受信した前記ホスト機器では表示手段に該画面表示用ビットマップデータを表示する
ことを特徴とする拡張カード動作制御方法。
【請求項２】
ホスト機器に拡張カードを接続して機能拡張する場合に、前記ホスト機器に備えられている操作子および表示手段を用いて前記拡張カードの動作を制御する拡張カード動作制御方法であって、
前記ホスト機器で操作子の操作情報を取得するステップと、
取得した操作情報を、拡張カードの種類によらない共通のプロトコルにしたがって、前記拡張カードに転送するステップと、
前記拡張カードで、受信した操作情報に応じた処理を行なうステップと、
前記拡張カードが持つ画面表示用ビットマップデータを、拡張カードの種類によらない共通のプロトコルにしたがって、前記ホスト機器に転送するステップと、
前記ホスト機器で、受信した画面表示用ビットマップデータを表示するステップと
を備えたことを特徴とする拡張カード動作制御方法。
【請求項３】
ホスト機器と、該ホスト機器に接続して機能拡張する拡張カードとを備えた拡張カード動作制御システムであって、
前記ホスト機器は、
ユーザが操作するための操作子と、
各種の情報を表示する表示手段と、
操作子の操作情報を取得し、該操作情報を、拡張カードの種類によらない共通のプロトコルにしたがって、前記拡張カードに転送する手段と、
前記拡張カードから、拡張カードの種類によらない共通のプロトコルにしたがって、画面表示用ビットマップデータが転送されたときに、該画面表示用ビットマップデータを前記表示手段に表示する表示制御手段と
を備え、
前記拡張カードは、
前記共通のプロトコルにしたがって前記操作子の操作情報が転送されたとき、該操作情報に応じた処理を行なう手段と、
前記ホスト機器の表示手段に表示させる画面表示用ビットマップデータを、前記共通のプロトコルにしたがって前記ホスト機器に転送する手段と
を備えたことを特徴とする拡張カード動作制御システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、拡張カード動作制御方法およびシステムに関し、特にホスト機器に各種の拡張カードを挿入して機能拡張する際、拡張カードごとにそのインストールを行なう必要がなく汎用的な手順で拡張カードの動作を制御できる方法およびシステムに関するものである。
【０００２】
【従来の技術】
ディジタルミキサー、電子楽器、あるいはパーソナルコンピュータ（以下、パソコンと呼ぶ）などの各種の電子機器では、プラグインカードなどと呼ばれる各種の拡張カードを例えば背面に設けられたスロットに挿入して機能拡張するようになっているものがある。パソコンでは、拡張カードを挿入したときは、通常、拡張カードごとにインストールあるいはセットアップと呼ばれる処理を行なう。インストールあるいはセットアップにより、ホスト機器側に当該拡張カードに特有の処理を行なうプログラムが設定される。ディジタルミキサーや電子楽器では、あらかじめ挿入される拡張カードが決まっているのでインストールやセットアップは不要である。その代わりに、拡張カードの設定を行なうプログラムなどはあらかじめホスト機器側のＲＯＭ（リードオンリメモリ）に格納されている。ホスト機器では、インストールされたプログラム（パソコンの場合）やＲＯＭ内のプログラム（ミキサや電子楽器の場合）を起動し、拡張カードに特有の設定画面を表示し、その画面で当該拡張カードに関する各種の設定を行なう。
【０００３】
【発明が解決しようとする課題】
ところで、一般的には拡張カードの設定画面や設定項目は拡張カードごとに異なる。したがって、新たに拡張カードが開発される度にホスト機器側のプログラムを開発する必要がある。また、パソコンでは新たな拡張カードを挿入する度にインストールあるいはセットアップの処理が必要である。ディジタルミキサーや電子楽器では、あらかじめ想定されていない新たな拡張カードを古いホスト機器で使用するためには、プログラムＲＯＭの交換が必要である。
【０００４】
この発明は、上述の従来技術における問題点に鑑み、古いホスト機器で新たに開発されたプラグインカードを利用する場合でも、ホスト機器側のプログラムを開発する必要がなく、またインストールやセットアップ処理、およびＲＯＭの交換などを不要にする拡張カード動作制御方法およびシステムを提供することを目的とする。
【０００５】
【課題を解決するための手段】
この目的を達成するため、請求項１に係る発明は、ホスト機器に拡張カードを接続して機能拡張する場合に、前記ホスト機器に備えられている操作子および表示手段を用いて前記拡張カードの動作を制御する拡張カード動作制御方法であって、任意の拡張カードに対し、前記ホスト機器の操作子が操作されたときに該操作情報を前記拡張カードに転送する共通のプロトコルを規定しておき、該プロトコルにしたがって前記ホスト機器の操作子の操作情報を前記拡張カードに転送するとともに、任意の拡張カードに対し、その拡張カードが持つ画面表示用ビットマップデータを前記ホスト機器に転送する共通のプロトコルを規定しておき、該プロトコルにしたがって前記拡張カードが持つ画面表示用ビットマップデータを前記ホスト機器に転送し、該画面表示用ビットマップデータを受信した前記ホスト機器では表示手段に該画面表示用ビットマップデータを表示することを特徴とする。
【０００６】
請求項２に係る発明は、ホスト機器に拡張カードを接続して機能拡張する場合に、前記ホスト機器に備えられている操作子および表示手段を用いて前記拡張カードの動作を制御する拡張カード動作制御方法であって、前記ホスト機器で操作子の操作情報を取得するステップと、取得した操作情報を、拡張カードの種類によらない共通のプロトコルにしたがって、前記拡張カードに転送するステップと、前記拡張カードで、受信した操作情報に応じた処理を行なうステップと、前記拡張カードが持つ画面表示用ビットマップデータを、拡張カードの種類によらない共通のプロトコルにしたがって、前記ホスト機器に転送するステップと、前記ホスト機器で、受信した画面表示用ビットマップデータを表示するステップとを備えたことを特徴とする。
【０００７】
請求項３に係る発明は、ホスト機器と、該ホスト機器に接続して機能拡張する拡張カードとを備えた拡張カード動作制御システムであって、前記ホスト機器は、ユーザが操作するための操作子と、各種の情報を表示する表示手段と、操作子の操作情報を取得し、該操作情報を、拡張カードの種類によらない共通のプロトコルにしたがって、前記拡張カードに転送する手段と、前記拡張カードから、拡張カードの種類によらない共通のプロトコルにしたがって、画面表示用ビットマップデータが転送されたときに、該画面表示用ビットマップデータを前記表示手段に表示する表示制御手段とを備え、前記拡張カードは、前記共通のプロトコルにしたがって前記操作子の操作情報が転送されたとき、該操作情報に応じた処理を行なう手段と、前記ホスト機器の表示手段に表示させる画面表示用ビットマップデータを、前記共通のプロトコルにしたがって前記ホスト機器に転送する手段とを備えたことを特徴とする。
【０００８】
【発明の実施の形態】
以下、図面を用いてこの発明の実施の形態を説明する。
【０００９】
図１は、この実施の形態のシステムのホスト機器のブロック構成を示す。ここではホスト機器１００として、音響信号のミキシングや録音を行なうディジタルミキシングレコーダを例に説明する。図１のディジタルミキシングレコーダ１００は、中央処理装置（ＣＰＵ）１０１、リードオンリメモリ（ＲＯＭ）１０２、ランダムアクセスメモリ（ＲＡＭ）１０３、ハードディスク（ＨＤＤ）１０４、コンパクトディスク装置（ＣＤＤ）１０５、操作子１０６、液晶表示装置（ＬＣＤ）１０７、各種インターフェース（Ｉ／Ｆ）１０８、ディジタルシグナルプロセッサ（ＤＳＰ）１０９、ＲＡＭ１１０、プラグインＩ／Ｆ１１１、およびバスライン１１２を備える。
【００１０】
ＣＰＵ１０１は、このホスト機器１００全体の動作を制御する処理装置である。ＲＯＭ１０２は、ＣＰＵ１０１が実行する各種のプログラムや、動作時に使用する各種のデータなどを記憶する不揮発メモリである。ＲＡＭ１０３は、プログラムをロードして実行したり、各種のデータの一時記憶に用いる揮発性メモリである。ハードディスク装置１０４は、各種のプログラムやデータを記憶する記憶装置であり、特にディジタル音響データを保存（録音）するのに用いる。ＣＤ装置１０５は、ＣＤ（コンパクトディスク）の読み取り装置である。
【００１１】
操作子１０６は、ユーザが操作するためパネル上に設けられた操作子であり、各種のスイッチ、ホイール、フェーダ、およびマウスなどを含む。ＬＣＤ１０７は、パネル上に設けられた液晶表示装置であり、ＣＰＵ１０１からの指示に基づいて各種のデータを表示する。各種Ｉ／Ｆ１０８は、アナログディジタル変換器（ＡＤＣ）へのアナログ入力、ディジタルアナログ変換器（ＤＡＣ）へのディジタル入力、およびオーディオ信号の入出力インターフェースである。ＤＳＰ１０９は、ＣＰＵ１０１からの指示に基づいてマイクロプログラムを実行することによりディジタル音響信号のミキシングや効果付与などを行なう信号処理プロセッサである。ＲＡＭ１１０は、ＤＳＰ１０９がワークメモリとして使用する一時記憶装置である。
【００１２】
プラグインＩ／Ｆ１１１は、プラグインカード２００との間で各種の情報を入出力するためのインターフェースである。このホスト機器（ディジタルミキシングレコーダ）１００では、プラグインカードを差し込むためのスロットが２つ設けられており、それらのスロットにそれぞれプラグインカード２００を挿入することで機能拡張できる。プラグインＩ／Ｆ１１１は、プラグインカード２００のコミュニケーションＩ／Ｆ（ＣＯＭＭ  Ｉ／Ｆ）と接続され、これによりホスト機器１００とプラグインカード２００との間で各種のコマンドやデータのやり取りができる。
【００１３】
図２は、この実施形態のシステムのプラグインカード２００のブロック構成を示す。プラグインカード２００は、ＣＰＵ２０１、ＵＳＢ（ＵｎｉｖｅｒｓａｌＳｅｒｉａｌ  Ｂｕｓ）Ｉ／Ｆ２０２、ＲＯＭ／ＲＡＭ２０３、コミュニケーション（ＣＯＭＭ）Ｉ／Ｆ２０４、ＤＳＰ２０５、ＲＡＭ２０６、オーディオＩ／Ｏ（入出力）Ｉ／Ｆ２０７、およびバスライン２０８を備える。
【００１４】
ＣＰＵ２０１は、このプラグインカード２００の全体の動作を制御する中央処理装置である。ＣＰＵ２０１は、ＵＳＢ  Ｉ／Ｆ２０２を介して各種の外部機器と情報のやりとりを行なうことができる。ＲＯＭ／ＲＡＭ２０３は、ＣＰＵ２０１が実行するプログラムや各種データを格納したり、ワーク領域に用いる不揮発性／揮発性の記憶装置である。ＣＯＭＭ  Ｉ／Ｆ２０４は、ホスト機器１００のプラグインＩ／Ｆ１１１と接続するためのインターフェースである。ＤＳＰ２０５は、ＣＰＵ２０１からの指示に基づいて各種のマイクロプログラムを実行し、信号処理を行なう信号処理プロセッサである。ＲＡＭ２０６は、ＤＳＰ２０５がワーク領域として利用する一時記憶装置である。オーディオ入出力Ｉ／Ｆ２０７は、オーディオデータの入力および出力を行なうインターフェースである。
【００１５】
この実施の形態のシステムでは、各種の操作子や表示装置などのマンマシンインターフェースに係る部分は、原則としてホスト機器１００側に設けられている。プラグインカード２００に対する各種の設定は、ホスト機器１００のＬＣＤ１０７に所定の画面を表示し、ホスト機器１００の操作子１０６を操作することにより行なう。ホスト機器１００の操作子１０６の操作情報は、ホスト機器１００からプラグインカード２００に送られる。プラグインカード２００に対する各種の設定を行なう画面は、プラグインカード２００から表示データをホスト機器１００に送信し、ホスト機器１００がその表示データをＬＣＤ１０７に表示することで表示される。プラグインカード２００は、拡張機能に関するプログラムを持ち、ホスト機器１００からの操作指示に応じて拡張機能に係る信号処理を行なう。どのようなプラグインカード２００が接続されたとしても、ホスト機器１００から操作子１０６の操作情報をプラグインカード２００に送り、またプラグインカード２００から表示データをホスト機器１００に送ってＬＣＤ１０７に表示する処理手順は変わらない。したがって、どのようなプラグインカードを挿入したとしても、ホスト機器１００側でインストールの処理は行なう必要はない。
【００１６】
図３は、ホスト機器１００のパネル上に設けられた操作子の例を示す。３１０はホイール、３２０はＤＥＣキー、３２１はＩＮＣキー、３２２は左カーソルキー、３２３は右カーソルキー、３２４は上カーソルキー、３２５は下カーソルキー、３２６はエンター（ＥＮＴＥＲ）キー、３２７はシフト（ＳＨＩＦＴ）キーである。
【００１７】
図４は、ホスト機器１００のＬＣＤ１０７に表示される設定画面の表示例である。画面４００は、大きく３つの表示領域に分かれている。３つの表示領域とは、上部領域４０１、中部領域４０２、および下部領域４０３である。設定画面では、当該画面が各種設定を行なうための設定画面であることを示すための見出し表示４１１が上部領域４０１に表示される。下部領域４０３には、ページを示すタブ４３１〜４３３が表示されている。これらのタブ４３１〜４３３は、それぞれ、ＬＣＤ画面４００の下側に設けられているＦ１〜Ｆ４のファンクションキー４０４と対応している。すなわち、Ｆ１キーをオンすることにより、「Ｍａｉｎ」と表示されているタブ４３１が指定されたこととなり、このときホスト機器１００に関する各種設定を行なう画面が表示される。Ｆ２キーをオンすることにより、「Ｐｌｕｇ−ｉｎ１」と表示されているタブ４３２が指定されたこととなり、このときプラグインカード１に関する各種設定を行なう画面が表示される。Ｆ３キーをオンすることにより、「Ｐｌｕｇ−ｉｎ２」と表示されているタブ４３３が指定されたこととなり、このときプラグインカード２に関する各種設定を行なう画面が表示される。なお、第１スロットに挿入されたプラグインカードをプラグインカード１（Ｐｌｕｇ−ｉｎ１）と呼び、第２スロットに挿入されたプラグインカードをプラグインカード２（Ｐｌｕｇ−ｉｎ２）と呼ぶ。ファンクションキー４０４を用いる代わりに、マウスでタブ４３１〜４３３をクリックすることで各設定画面を表示させることもできる。
【００１８】
上述したように、このホスト機器１００はプラグインカードを挿入するスロットを２つ設けてあるので、プラグインカードに関する設定ページは、タブ４３２のページとタブ４３３のページとの２つある。中部領域４０２には、各タブに対応する実際の設定画面が表示される。図４では、第１スロットにプラグインカード１が挿入されていないので、「ＮＯ  ＰＬＵＧ−ＩＮ  ＣＡＲＤ」と表示されている。
【００１９】
図５は、第１スロットにプラグインカード１が挿入されている場合の設定画面の表示例を示す。このプラグインカード１は、楽音にコンプレッサやリバーブなどの効果を付与する拡張機能を有するカードであるものとする。５０１〜５０３は、楽音にどのような効果を付与するかを指定するボタンである。ロード（ＬＯＡＤ）ボタン５０４は当該画面での設定を所定のファイルからロードするためのボタンであり、セーブ（ＳＡＶＥ）ボタン５０５は当該画面での設定状態をファイルにセーブするためのボタンである。これらのボタン類は、マウスによりクリックすることによりオン／オフできる。ボタン類の右側領域には、各種設定状態を示すメーターやスライドボリュームなどが表示されている。領域５１０に表示されているスライドボリューム５１１では、マウスなどを用いてその設定を変更することができる。
【００２０】
図６は、ホスト機器１００とプラグインカード２００との間でデータ転送を行なうために利用するレジスタを示す。これらのレジスタは、ホスト機器１００およびプラグインカード２００の両方から書き込みおよび読み出しができる位置に設ければよいが、ここではプラグインカード側に設けてあるものとする。
【００２１】
ＨＰＤＲは、ホスト・トゥ・プラグイン・データ・レジスタ（Ｈｏｓｔ  ｔｏＰｌｕｇｉｎ  Ｄａｔａ  Ｒｅｇｉｓｔｅｒ）である。レジスタＨＰＤＲは、ホスト機器１００からプラグインカード２００へ転送するワードデータ（１６ビット）の一時記憶レジスタである。ＨＰＦＲは、ホスト・トゥ・プラグイン・フラグ・レジスタ（Ｈｏｓｔ  ｔｏ  Ｐｌｕｇｉｎ  Ｆｌａｇ  Ｒｅｇｉｓｔｅｒ）である。レジスタＨＰＦＲは、上記一時記憶レジスタＨＰＤＲへの書き込み準備あるいは読み出し準備ができたかどうかを確認するために用いるフラグレジスタである。ＰＨＤＲは、プラグイン・トゥ・ホスト・データ・レジスタ（Ｐｌｕｇｉｎ  ｔｏ  Ｈｏｓｔ  Ｄａｔａ  Ｒｅｇｉｓｔｅｒ）である。レジスタＰＨＤＲは、プラグインカード２００からホスト機器１００へ転送するワードデータの一時記憶レジスタである。ＰＨＦＲは、プラグイン・トゥ・ホスト・フラグ・レジスタ（Ｐｌｕｇｉｎ  ｔｏ  Ｈｏｓｔ  Ｆｌａｇ  Ｒｅｇｉｓｔｅｒ）である。レジスタＰＨＦＲは、上記一時記憶レジスタＰＨＤＲへの書き込み準備あるいは読み出し準備ができたかどうかを確認するために用いるフラグレジスタである。
【００２２】
以上のレジスタを用いてデータ転送する基本的な手順を説明する。
【００２３】
ホスト機器１００からプラグインカード２００へデータ転送する場合は、次の▲１▼〜▲６▼の手順にしたがう。なお、Ｈ＊＊は１６進表記を表す。例えば、Ｈ００は１６進の「００」、Ｈ０１は１６進の「０１」である。
▲１▼ホスト機器１００のＣＰＵ１０１が、レジスタＨＰＦＲ＝Ｈ００を確認する。
▲２▼ホスト機器１００のＣＰＵ１０１が、レジスタＨＰＤＲに、転送すべきワードデータを書き込む。
▲３▼ホスト機器１００のＣＰＵ１０１が、レジスタＨＰＦＲにＨ０１をセットする。
▲４▼プラグインカード２００のＣＰＵ２０１が、レジスタＨＰＦＲ＝Ｈ０１を確認する。
▲５▼プラグインカード２００のＣＰＵ２０１が、レジスタＨＰＤＲのワードデータを読み込む。
▲６▼プラグインカード２００のＣＰＵ２０１が、レジスタＨＰＦＲをＨ００にリセットする。
【００２４】
プラグインカード２００からホスト機器１００へデータ転送する場合は、次の▲１▼〜▲６▼の手順にしたがう。
▲１▼プラグインカード２００のＣＰＵ２０１が、レジスタＰＨＦＲ＝Ｈ００を確認する。
▲２▼プラグインカード２００のＣＰＵ２０１が、レジスタＰＨＤＲに、転送すべきワードデータを書き込む。
▲３▼プラグインカード２００のＣＰＵ２０１が、レジスタＰＨＦＲにＨ０１をセットする。
▲４▼ホスト機器１００のＣＰＵ１０１が、レジスタＰＨＦＲ＝Ｈ０１を確認する。
▲５▼ホスト機器１００のＣＰＵ１０１が、レジスタＰＨＤＲのワードデータを読み込む。
▲６▼ホスト機器１００のＣＰＵ１０１が、レジスタＰＨＦＲをＨ００にリセットする。
【００２５】
図７は、ホスト機器１００の操作子１０６（図３のホイールやキーなど、および不図示のフェーダやマウス）の操作が行なわれたときにホスト機器１００からプラグインカード２００へ転送される操作子操作情報のフォーマットを示す。
【００２６】
図７（ａ）は、転送データの基本的なフォーマットを示す。左側の列０，１，２，…は、先頭位置を０とする相対アドレス（バイトで数える）で示した位置を表す。アドレス０には、バイトカウント（Ｂｙｔｅ  Ｃｏｕｎｔ）が格納される。バイトカウントは、これ以降に続く転送データのバイト数を示し、この転送データ全体のバイト数から１を引いた値となる。アドレス１には、オペレーションモード（Ｏｐｅｒａｔｉｏｎ  Ｍｏｄｅ）が格納される。オペレーションモードは、転送処理における各種モードを示す情報であるが、本実施形態では使用しないので常に０と考えてよい。アドレス２には、データタイプ（Ｄａｔａ  Ｔｙｐｅ）が格納される。データタイプは、これ以降に続くデータがどのような種類のデータであるかを示す情報である。データタイプに基づいて、これ以降に続くデータの長さも決まる。アドレス３以降に、当該データタイプの種類のデータそのものが続き、最後にチェックサム（Ｃｈｅｃｋｓｕｍ）が付加されて、転送データが構成される。
【００２７】
図７（ｂ）は、ホスト機器１００のパネル上の操作子１０６のうち、図３の３２０〜３２７に示すキーがオン／オフ操作されたときに、ホスト機器１００からプラグインカード２００に転送される転送データを示す。転送データ全体の長さは６バイトであり、バイトカウントは「５」である。オペレーションモードは「０」である。データタイプは、この転送データがキーのオン／オフ情報であることを示すＨ２０である。続いてアドレス３にキーナンバ（Ｋｅｙ  Ｎｕｍｂｅｒ）であるｋが格納され、アドレス４に当該キーのオン／オフの別が格納される。キーナンバｋは操作されたキーを特定する情報であり、ＤＥＣキー３２０は「０」、ＩＮＣキー３２１は「１」、左カーソルキー３２２は「２」、右カーソルキー３２３は「３」、上カーソルキー３２４は「４」、下カーソルキー３２５は「５」、エンターキー３２６は「６」、シフトキー３２７は「７」である。アドレス４のオン／オフ情報は、「１」でオンを示し、「０」でオフを示す。最後に、チェックサムが付加される。
【００２８】
図７（ｃ）は、図３のホイール３１０が操作されたとき、ホスト機器１００からプラグインカード２００に転送される転送データを示す。転送データ全体は６バイトであり、バイトカウントは「５」である。オペレーションモードは「０」である。データタイプは、この転送データがホイール３１０の操作情報であることを示すＨ２１である。続いて、アドレス３にホイールナンバ（Ｗｈｅｅｌ  Ｎｕｍｂｅｒ）が、アドレス４に値（Ｖａｌｕｅ）がそれぞれ設定される。ホイールナンバは、複数のホイールがあるときに各ホイールを特定するナンバであり、ここではホイールが１個だけであるので「０」とする。アドレス４に格納される値は、ホイールの現在値を示す−１２８〜１２７の範囲の値である。最後に、チェックサムが付加される。
【００２９】
図３では図示していないが、このホスト機器１００は、複数のフェーダと左右ボタンを備えたマウスとを備えている。図７（ｄ）に、フェーダが操作されたときの転送データを示す。上述の転送データと同様のフォーマットであるが、データタイプは、フェーダの操作情報であることを示すＨ２２が設定される。続いて、複数あるフェーダのうちの１つを特定するフェーダナンバＮが格納され、アドレス４にはそのフェーダの現在値（Ｖａｌｕｅ）が０〜２５５の範囲で設定される。図７（ｅ）は、マウスの操作情報を示す転送データである。上述の転送データと同様のフォーマットであるが、データタイプは、マウスの操作情報であることを示すＨ２３が設定されている。アドレス３に格納される左右ボタン（Ｌ／Ｒｂｕｔｔｏｎ）の情報は、右ボタンおよび左ボタンのオン／オフを表す情報である。アドレス４〜アドレス７は画面のｘｙ座標（ビットマップ）上でのマウスの位置を示す情報である。
【００３０】
図８は、プラグインカード２００からホスト機器１００に転送されるグラフィック転送データのフォーマットを示す。このようなフォーマットの転送データをプラグインカード２００からホスト機器１００に転送して、図５の中部領域４０２に示すような設定画面を表示する。
【００３１】
図８（ａ）は、グラフィック転送データの基本的なフォーマットを示す。アドレス０のバイトカウントは、これ以降に続くデータのバイト数（当該転送データの全体長さから１を引いた値）である。アドレス１のオペレーションモードは、ここでは「０」とする。アドレス２のデータタイプは、グラフィック転送データであることを示すＨ１１を格納する。アドレス３の上位アドレス（Ａｄｄｒｅｓｓ  Ｈ）とアドレス４の下位アドレス（Ａｄｄｒｅｓｓ  Ｌ）により、当該転送データをホスト機器１００のＬＣＤ１０７のビットマップ上でどの位置に表示すべきかを指定する。アドレス５以降ｂ−１までのＤａｔａ［０］〜Ｄａｔａ［ｋ］のデータが、表示すべきデータの実体である。最後にチェックサムが付加される。
【００３２】
図８（ｂ）は、ホスト機器１００のＬＣＤ１０７のビットマップ上の所定位置に表示する「Ａ」の表示例を示す。図８（ｃ）は、図８（ｂ）の表示を行なうために転送するグラフィック転送データを示す。この転送データを説明する前に、図９を参照してホスト機器１００のＬＣＤ１０７のビットマップについて説明する。
【００３３】
図９（ａ）は、ホスト機器１００のＬＣＤ１０７全体のビットマップを示す。ＬＣＤ１０７の画面全体は、横３２０ドット×縦２４０ドット＝７６８００ドットからなる。バイト単位で付けるビットマップ上のアドレスは、第１行目の左端をアドレス０とし、その位置から右方向に向かってアドレス１，２，…としていく。第１行目の右端の１バイトはアドレス３９となり、その次の第２行目の左端位置を次のアドレス４０とする。以下同様にしてアドレスを付けていき、画面の右下の１バイトのアドレス９５９９が最終のアドレスとなる。この全体ビットマップのうち、第１〜４４行の領域は図４および図５の画面の上部領域４０１に相当し、第４５〜２２４行の領域は中部領域４０２に相当し、第２２５〜２４０行の領域は下部領域４０３に相当する。
【００３４】
図９（ｂ）は、図９（ａ）の全体ビットマップのうち第４５〜２２４行の範囲を取り出して、その左上から新たにバイト単位のアドレスを付与したものである。プラグインカードから図８に示すフォーマットで転送されたグラフィック転送データは、図９（ｂ）のプラグイン表示領域（図４および図５の中部領域４０２）に表示されるので、以降は図９（ｂ）に示すアドレスで位置を表現するものとする。
【００３５】
図８（ｃ）に戻って、図８（ｂ）のように「Ａ」と表示するためのグラフィック転送データについて説明する。「Ａ」と表示するためには、図８（ｂ）のように６ドット×８ドットの表示を行なう。各矩形が１ドットに対応する１ビットを表すものとし、当該ドットを白抜き表示にしたい場合は対応する１ビットを「０」とし、当該ドットを黒表示にしたい場合は対応する１ビットを「１」とするものとする。図８（ｂ）で斜線を付けた矩形が「Ａ」を形作るための黒表示部分である。第０行目の１バイトは、ビット２〜５が「１」で、ビット０，１，６，７が「０」であるから、１６進のＨ３Ｃとなる。同様にして、第１〜５行目の各バイトは、１６進のＨ４２、Ｈ４２、Ｈ７Ｅ、Ｈ４２、Ｈ４２となる。第０〜５行目の６バイトを、順に、ＣＨＡＲＡＣＴ０〜ＣＨＡＲＡＣＴ５と呼ぶ。
【００３６】
図８（ｃ）は、上記のＣＨＡＲＡＣＴ０〜ＣＨＡＲＡＣＴ５を順にホストに転送するための転送データである。ＣＨＡＲＡＣＴ０〜ＣＨＡＲＡＣＴ５は全部で６バイトあるので、各バイトを順に転送するため転送データは８０１〜８０６の６つある。何れの転送データも、バイトカウントは「６」、オペレーションモードは「０」、データタイプはグラフィック転送データであることを示すＨ１１である。転送データ８０１のアドレス３，４のＡｄｄｒｅｓｓ  ＨとＡｄｄｒｅｓｓ  Ｌの値ＡＤＡは、ＣＨＡＲＡＣＴ０を表示する位置を表すアドレスであり、図９（ｂ）で説明したビットマップ上のアドレスで表現されている。例えば、ＣＨＡＲＡＣＴ０を図９（ｂ）のアドレス４２に表示したければ、ＡＤＡ＝４２（１０進）とすればよい。
【００３７】
図９（ｂ）から判るように、ビットマップ上では１行が４０バイトからなるので、ＣＨＡＲＡＣＴ０を表示した位置の直下の位置のアドレスはＡＤＡ＋４０となる。したがって、転送データ８０２ではＡＤＡ＋４０の位置にＣＨＡＲＡＣＴ１を表示する設定になっている。以下同様にして、転送データ８０３〜８０６で、ＡＤＡ＋８０の位置にＣＨＡＲＡＣＴ２を表示し、ＡＤＡ＋１２０の位置にＣＨＡＲＡＣＴ３を表示し、ＡＤＡ＋１６０の位置にＣＨＡＲＡＣＴ４を表示し、ＡＤＡ＋２００の位置にＣＨＡＲＡＣＴ５を表示する。これにより図８（ｂ）に示すような６×８ドットの「Ａ」の表示が実現される。
【００３８】
次に、ホスト機器１００の操作子１０６を操作したときに、その操作情報をホスト機器１００からプラグインカード２００へ転送する処理手順を説明する。ここでは、図３のエンターキー３２６がオンあるいはオフされたとき、図７（ｂ）のフォーマットの転送データを転送する例で説明する。
【００３９】
図１０は、エンターキー操作イベントをホスト機器１００からプラグインカード２００へ転送する処理手順を示すフローチャートである。この処理は、ホスト機器１００のＣＰＵ１０１で実行されるものであり、図６を参照して説明した転送の基本的な手順にしたがうものである。
【００４０】
ステップ１００１で、エンターキー３２６の操作を検出する。ステップ１００２で、エンターキー３２６のオンイベントであるか否か判別する。オンイベントであるときは、ステップ１００３でレジスタＨＰＦＲを読み出し、ステップ１００４で当該レジスタの値がＨ００であるか否か判別する。Ｈ００でないときは、ステップ１００３に戻る。レジスタＨＰＦＲがＨ００であるときは、レジスタＨＰＤＲに転送データを書き込んでよいということであるから、ステップ１００５で、バイトカウントとオペレーションモードをレジスタＨＰＤＲにセットする。ここではエンターキー３２６のオンイベントであるから（５，０）をセットすることになる。ステップ１００６で、レジスタＨＰＦＲにＨ０１をセットする。なお、ステップ１００５でレジスタＨＰＤＲに書き込まれたデータは、後述する図１１のステップ１１０３でプラグインカード２００側に読み出される。
【００４１】
次に、ステップ１００７でレジスタＨＰＦＲを読み出し、ステップ１００８でその値がＨ００になったか否か判別する。Ｈ００になっていないときは、ステップ１００７に戻る。Ｈ００になったときは、レジスタＨＰＤＲに転送データを書き込んでよいということであるから、ステップ１００９で、レジスタＨＰＤＲにデータタイプとキーナンバーをセットする。ここでは（Ｈ２０，６）をセットすることになる。次にステップ１０１０で、レジスタＨＰＦＲにＨ０１をセットする。なお、ステップ１００９でレジスタＨＰＤＲに書き込まれたデータは、後述する図１１のステップ１１０７でプラグインカード２００側に読み出される。
【００４２】
次に、ステップ１０１１でレジスタＨＰＦＲを読み出し、ステップ１０１２でその値がＨ００になったか否か判別する。Ｈ００になっていないときは、ステップ１０１１に戻る。Ｈ００になったときは、ステップ１０１３で、レジスタＨＰＤＲにオン／オフを示すデータおよびチェックサムをセットする。ここでは（１，ｃ）をセットすることになる。次にステップ１０１４でレジスタＨＰＦＲにＨ０１をセットして、送信を終了する。
【００４３】
ステップ１００２でエンターキー３２６のオンイベントでないときは、ステップ１０１５でエンターキー３２６のオフイベントであるか否か判別する。オフイベントでないときは、そのまま終了する。オフイベントであるときは、ステップ１０１６に進む。ステップ１０１６〜１０２７の処理は、ステップ１００３〜１０１４と同様である。ただし、エンターキー３２６のオフイベントであるので、ステップ１０２６ではオン／オフを示すデータとして「０」をセットしている。
【００４４】
図１１は、図１０のようにホスト機器１００から送信されたデータをプラグインカード２００側で受信する処理手順を示すフローチャートである。この処理は、プラグインカード２００のＣＰＵ２０１で実行されるものであり、図６を参照して説明した転送の基本的な手順にしたがうものである。
【００４５】
ステップ１１０１でレジスタＨＰＦＲを読み出し、ステップ１１０２でその値がＨ０１であるか否か判別する。Ｈ０１でないときは、ステップ１１０１に戻る。Ｈ０１であるときは、レジスタＨＰＤＲに転送データがセットされているということであるから、ステップ１１０３でレジスタＨＰＤＲ（内容は図１０のステップ１００５でセットしたバイトカウントとオペレーションモードである）を読み出し、ステップ１１０４でそのバイトカウントの値から１を引いた値をレジスタＤＣＯＵＮＴＥＲにセットする。バイトカウントから１を引いているのは、この段階でバイトカウントとオペレーションモードを受信しているので転送データの残りバイト数はバイトカウント−１になるからである。次にステップ１１０５で、レジスタＨＰＤＲの読み出しが終わったことを示すため、レジスタＨＰＦＲにＨ００をセットする。
【００４６】
次にステップ１１０６でワークレジスタｊに０をセットする。ステップ１１０７でレジスタＨＰＦＲを読み出し、ステップ１１０８でその値がＨ０１になったか否か判別する。Ｈ０１でないときは、ステップ１１０７に戻る。Ｈ０１になっていたときは、ステップ１１０９で、レジスタＨＰＤＲの内容をバッファＲＥＡＤＢＵＦＦｊに格納する。ＲＥＡＤＢＵＦＦｊは受信したデータを格納するバッファであり、添字ｊ＝０，１，２，…としたＲＥＡＤＢＵＦＦ０，ＲＥＡＤＢＵＦＦ１，ＲＥＡＤＢＵＦＦ２，…はそれぞれ１６ビットである。次にステップ１１１０でレジスタＨＰＦＲにＨ００をセットし、ステップ１１１１でｊの値をインクリメントする。ステップ１１１２では、ｊの値が、ＢＣＯＵＮＴＥＲを２で割って四捨五入した整数値（ｒｏｕｎｄは四捨五入する関数を示す）に等しくなっているか否か判別する。転送データはワード（１６ビット）単位での転送であるため、ｊ＝ｒｏｕｎｄ（ＢＣＯＵＮＴＥＲ／２）になったときは、転送データの受信が終了したことになる。ステップ１１１２で受信データが未だあるときはステップ１１０７に戻って読み出しを続ける。受信が終了したときは、ステップ１１１３で、バッファＲＥＡＤＢＵＦＦに格納されたデータを分析し、それに応じた処理を行ない、本処理を終了する。
【００４７】
なお、ステップ１１１３では、チェックサムによるデータ誤り有無確認処理を行ない、誤りがあるときは再送信を要求するようにしている。受信したデータのオペレーションモードおよびデータタイプなどからデータの種類および意味を分析し、かつ付随するデータ値などを得る。その結果に応じて、プラグインカード２００側では対応する処理を行なう。例えば、エンターキー３２６のオンイベントが転送されたときは、バッファＲＥＡＤＢＵＦＦに図７（ｂ）のフォーマットのオンイベントデータが格納されるので、ステップ１１１３ではそれを検出し、そのオンイベントに応じた処理を行なう。
【００４８】
上記図１０および図１１の処理は、エンターキーのオン／オフ情報を送受信する例で説明したが、他のキーについても同様の手順でホスト機器１００からプラグインカード２００に操作情報を転送する。また、ホイールやフェーダなどのリアルタイムに操作情報を転送すべきものでは、上述の手順による操作情報の送受信を所定時間間隔で繰り返し実行することにより連続的に操作情報を転送する。マウスポインタの位置情報も同様に転送すればよい。
【００４９】
図１２は、プラグインカード２００からホスト機器１００への表示文字転送処理の手順を示すフローチャートである。この処理は、プラグインカード２００のＣＰＵ２０１で実行されるものであり、図６を参照して説明した転送の基本的な手順にしたがうものである。ここでは、図８（ｂ）および（ｃ）で説明した「Ａ」を表示させる例で説明する。
【００５０】
ステップ１２０１で、ワークレジスタｉに０を、変数ｋにプラグイン表示領域アドレスＡＤＡ（図９（ｂ）で説明したアドレスで表す）をセットする。変数ｋは、転送データ（ここでは図８（ｃ）で説明したＣＨＡＲＡＣＴ０〜５のそれぞれ）を表示するアドレスを格納する変数であるので、以下では変数ｋにセットされたデータを表示アドレスｋと呼ぶ。ステップ１２０２でレジスタＰＨＦＲを読み出し、ステップ１２０３で当該レジスタがＨ００であるか否か判別する。Ｈ００でないときは、ステップ１２０２に戻る。Ｈ００であるときは、ステップ１２０４で、レジスタＰＨＤＲに、最初に転送すべきデータであるバイトカウントとオペレーションモードをセットする。ここでは（６，０）をセットすることになる。
【００５１】
次にステップ１２０５で、レジスタＨＰＦＲにＨ０１をセットする。ステップ１２０６でレジスタＰＨＦＲを読み出し、当該レジスタがＨ００であるか否か判別する。ステップ１２０７で、当該レジスタがＨ００でないときは、ステップ１２０６に戻る。Ｈ００であるときは、ステップ１２０８で、レジスタＰＨＤＲに、次に転送すべきデータであるデータタイプおよび上位アドレス（Ａｄｄｒｅｓｓ  Ｈ）をセットする。ここでは（Ｈ１１，Ｈｉｇｈ［ｋ］）をセットすることになる。なお、Ｈｉｇｈ［ｋ］は、表示アドレスｋの上位バイトを示す。
【００５２】
次にステップ１２０９で、レジスタＨＰＦＲにＨ０１をセットする。ステップ１２１０でレジスタＰＨＦＲを読み出し、ステップ１２１１で当該レジスタがＨ００であるか否か判別する。Ｈ００でないときは、ステップ１２１０に戻る。Ｈ００であるときは、ステップ１２１２で、レジスタＰＨＤＲに、次に転送すべきデータである下位アドレス（Ａｄｄｒｅｓｓ  Ｌ）およびデータＤａｔａ［ｉ］をセットする。ここでは（Ｌｏｗ［ｋ］，ＣＨＡＲＡＣＴｉ）をセットすることになる。なお、Ｌｏｗ［ｋ］は、表示アドレスｋの下位バイトを示す。
【００５３】
次にステップ１２１３で、レジスタＨＰＦＲにＨ０１をセットする。ステップ１２１４でレジスタＰＨＦＲを読み出し、ステップ１２１５で当該レジスタの値がＨ００であるか否か判別する。Ｈ００でないときは、ステップ１２１４に戻る。Ｈ００であるときは、ステップ１２１６で、レジスタＰＨＤＲにチェックサムと補填文字をセットする。ここでは、（Ｃｈｅｃｋｓｕｍ，Ｈ００）をセットすることになる。次にステップ１２１７で、レジスタＨＰＦＲにＨ０１をセットする。
【００５４】
ここまでで、図８（ｃ）の転送データ８０１の転送の指示が終了したことになる。次にステップ１２１８で、レジスタｉをインクリメントし、表示アドレスｋを４０だけ増加させる。ステップ１２１９でｉの値が６であるか否か判別する。６でないときは、ステップ１２０２に戻って、次の転送データ８０２〜８０６の転送処理を続ける。ｉが６であるときは、転送データ８０１〜８０６をすべて転送指示したと言うことであるから、本処理を終了する。
【００５５】
図１３は、図１２のようにプラグインカード２００から転送したデータをホスト機器１００で受信する処理のフローチャートを示す。この処理は、ホスト機器１００のＣＰＵ１０１で実行されるものであり、図６を参照して説明した転送の基本的な手順にしたがうものである。
【００５６】
ステップ１３０１でレジスタＰＨＦＲを読み出し、ステップ１３０２で当該レジスタの値がＨ０１であるか否か判別する。Ｈ０１でないときはステップ１３０１に戻る。Ｈ０１であるときは、ステップ１３０３でレジスタＰＨＤＲを読み出し、ステップ１３０４でレジスタＨＢＣＯＵＮＴＥＲにバイトカウントから１を引いた値をセットする。ここではバイトカウントとオペレーションモードを受信しているので、残るバイト数はバイトカウントから１を引いた値となる。次にステップ１３０５で、レジスタＰＨＦＲにＨ００をセットする。
【００５７】
次にステップ１３０６で、レジスタｊに０をセットする。ステップ１３０７で、レジスタＰＨＦＲを読み出し、ステップ１３０８で当該レジスタの値がＨ０１であるか否か判別する。Ｈ０１でないときは、ステップ１３０７に戻る。Ｈ０１であるときは、ステップ１３０９で、バッファＨＲＥＡＤＢＵＦＦｊにレジスタＰＨＤＲの内容をセットする。ＨＲＥＡＤＢＵＦＦｊは受信したデータを格納するバッファであり、添字ｊ＝０，１，２，…としたＨＲＥＡＤＢＵＦＦ０，ＨＲＥＡＤＢＵＦＦ１，ＨＲＥＡＤＢＵＦＦ２，…はそれぞれ１６ビットである。次にステップ１３１０でレジスタＰＨＦＲにＨ００をセットし、ステップ１３１１でレジスタｊをインクリメントする。ステップ１３１２では、レジスタｊの値がＨＢＣＯＵＮＴＥＲ／２を四捨五入した整数値に至ったか否か判別する。レジスタｊの値が前記四捨五入整数値に至っていないときは、ステップ１３０７に戻る。レジスタｊの値が前記四捨五入整数値に至ったときは、ステップ１３１３で、バッファＨＲＥＡＤＢＵＦＦに格納されたデータを分析し、分析結果に応じた処理を行ない、本処理を終了する。
【００５８】
なおステップ１３１３では、チェックサムによるデータ誤りの意味を確認する処理を行ない、誤りがあるときは再送信を要求するなどを実行している。また、受信したデータのオペレーションモードおよびデータタイプなどからデータの種類および意味を分析し、かつ付随するデータ値などを得る。その結果に応じて、その後、対応する処理を行なう。受信データがグラフィックデータである場合はアドレス換算なども行なう。アドレス換算とは、図９（ｂ）のアドレスで指定された表示位置を、図９（ａ）のアドレスに換算する処理である。
【００５９】
例えば図１３の手順を繰り返して図８（ｃ）の転送データ８０１〜８０６を受信したときには、ステップ１３１３では、データタイプからグラフィック転送データであることが分かるから、指定されたアドレスに指定されたデータを表示する処理を行なう。これにより、図８（ｂ）のような表示が実現される。
【００６０】
【発明の効果】
以上説明したように、この発明によれば、拡張カードの種類によらない共通のプロトコルでホスト機器の操作子の操作情報を拡張カードに転送し、拡張カードでは受信した操作情報に応じた処理を行ない、また拡張カードの種類によらない共通のプロトコルで拡張カードが持つ画面表示データをホスト機器に転送し、ホスト機器では受信した画面表示データを表示するようにしているので、新たに拡張カードが開発された場合でも、ホスト機器側の操作情報を転送する手順や受信した画面表示データを表示する手順は変える必要がない。したがって、新たにホスト機器側のプログラムを開発する必要がない。また、インストールやセットアップ処理、およびＲＯＭの交換なども不要である。
【図面の簡単な説明】
【図１】この発明の実施の形態に係るシステムのホスト機器のブロック構成図
【図２】プラグインカードのブロック構成図
【図３】ホスト機器のパネル上に設けられた操作子の例を示す図
【図４】ホスト機器のＬＣＤに表示される設定画面の表示例を示す図
【図５】第１スロットにプラグインカードが挿入されている場合の設定画面の表示例を示す図
【図６】ホスト機器とプラグインカードとの間でデータ転送を行なうために利用するレジスタを示す図
【図７】ホスト機器からプラグインカードへ転送される操作情報のフォーマットを示す図
【図８】プラグインカードからホスト機器に転送されるグラフィック転送データのフォーマットを示す図
【図９】ＬＣＤのビットマップを示す図
【図１０】エンターキー操作イベントをホスト機器からプラグインカードへ転送する処理手順を示すフローチャート図
【図１１】プラグインカード側で受信する処理手順を示すフローチャート図
【図１２】プラグインカードからホスト機器への表示文字転送処理の手順を示すフローチャート図
【図１３】ホスト機器で受信する処理のフローチャート図
【符号の説明】
１００…ディジタルミキシングレコーダ、１０１…中央処理装置（ＣＰＵ）、１０２…リードオンリメモリ（ＲＯＭ）、１０３…ランダムアクセスメモリ（ＲＡＭ）、１０４…ハードディスク（ＨＤＤ）、１０５…コンパクトディスク装置（ＣＤＤ）、１０６…操作子、１０７…液晶表示装置（ＬＣＤ）、１０８…各種インターフェース（Ｉ／Ｆ）、１０９…ディジタルシグナルプロセッサ（ＤＳＰ）、１１０…ＲＡＭ、１１１…プラグインＩ／Ｆ、１１２…バスライン１１２、２００…プラグインカード、２０１…ＣＰＵ、２０２…ＵＳＢ  Ｉ／Ｆ、２０３…ＲＯＭ／ＲＡＭ、２０４…コミュニケーション（ＣＯＭＭ）Ｉ／Ｆ、２０５…ＤＳＰ、２０６…ＲＡＭ、２０７…オーディオＩ／Ｏ（入出力）Ｉ／Ｆ、２０８…バスライン。
【図１】
0003654239.tif 000002
【図２】
0003654239.tif 000003
【図３】
0003654239.tif 000004
【図４】
0003654239.tif 000005
【図５】
0003654239.tif 000006
【図６】
0003654239.tif 000007
【図７】
0003654239.tif 000008
【図８】
0003654239.tif 000009
【図９】
0003654239.tif 000010
【図１０】
0003654239.tif 000011
【図１１】
0003654239.tif 000012
【図１２】
0003654239.tif 000013
【図１３】
0003654239.tif 000014