JP3654239B2 - 拡張カード動作制御方法およびシステム - Google Patents
拡張カード動作制御方法およびシステム Download PDFInfo
- Publication number
- JP3654239B2 JP3654239B2 JP2001360353A JP2001360353A JP3654239B2 JP 3654239 B2 JP3654239 B2 JP 3654239B2 JP 2001360353 A JP2001360353 A JP 2001360353A JP 2001360353 A JP2001360353 A JP 2001360353A JP 3654239 B2 JP3654239 B2 JP 3654239B2
- Authority
- JP
- Japan
- Prior art keywords
- host device
- expansion card
- data
- card
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Digital Computer Display Output (AREA)
- Electrophonic Musical Instruments (AREA)
Description
【発明の属する技術分野】
この発明は、拡張カード動作制御方法およびシステムに関し、特にホスト機器に各種の拡張カードを挿入して機能拡張する際、拡張カードごとにそのインストールを行なう必要がなく汎用的な手順で拡張カードの動作を制御できる方法およびシステムに関するものである。
【0002】
【従来の技術】
ディジタルミキサー、電子楽器、あるいはパーソナルコンピュータ(以下、パソコンと呼ぶ)などの各種の電子機器では、プラグインカードなどと呼ばれる各種の拡張カードを例えば背面に設けられたスロットに挿入して機能拡張するようになっているものがある。パソコンでは、拡張カードを挿入したときは、通常、拡張カードごとにインストールあるいはセットアップと呼ばれる処理を行なう。インストールあるいはセットアップにより、ホスト機器側に当該拡張カードに特有の処理を行なうプログラムが設定される。ディジタルミキサーや電子楽器では、あらかじめ挿入される拡張カードが決まっているのでインストールやセットアップは不要である。その代わりに、拡張カードの設定を行なうプログラムなどはあらかじめホスト機器側のROM(リードオンリメモリ)に格納されている。ホスト機器では、インストールされたプログラム(パソコンの場合)やROM内のプログラム(ミキサや電子楽器の場合)を起動し、拡張カードに特有の設定画面を表示し、その画面で当該拡張カードに関する各種の設定を行なう。
【0003】
【発明が解決しようとする課題】
ところで、一般的には拡張カードの設定画面や設定項目は拡張カードごとに異なる。したがって、新たに拡張カードが開発される度にホスト機器側のプログラムを開発する必要がある。また、パソコンでは新たな拡張カードを挿入する度にインストールあるいはセットアップの処理が必要である。ディジタルミキサーや電子楽器では、あらかじめ想定されていない新たな拡張カードを古いホスト機器で使用するためには、プログラムROMの交換が必要である。
【0004】
この発明は、上述の従来技術における問題点に鑑み、古いホスト機器で新たに開発されたプラグインカードを利用する場合でも、ホスト機器側のプログラムを開発する必要がなく、またインストールやセットアップ処理、およびROMの交換などを不要にする拡張カード動作制御方法およびシステムを提供することを目的とする。
【0005】
【課題を解決するための手段】
この目的を達成するため、請求項1に係る発明は、ホスト機器に拡張カードを接続して機能拡張する場合に、前記ホスト機器に備えられている操作子および表示手段を用いて前記拡張カードの動作を制御する拡張カード動作制御方法であって、任意の拡張カードに対し、前記ホスト機器の操作子が操作されたときに該操作情報を前記拡張カードに転送する共通のプロトコルを規定しておき、該プロトコルにしたがって前記ホスト機器の操作子の操作情報を前記拡張カードに転送するとともに、任意の拡張カードに対し、その拡張カードが持つ画面表示用ビットマップデータを前記ホスト機器に転送する共通のプロトコルを規定しておき、該プロトコルにしたがって前記拡張カードが持つ画面表示用ビットマップデータを前記ホスト機器に転送し、該画面表示用ビットマップデータを受信した前記ホスト機器では表示手段に該画面表示用ビットマップデータを表示することを特徴とする。
【0006】
請求項2に係る発明は、ホスト機器に拡張カードを接続して機能拡張する場合に、前記ホスト機器に備えられている操作子および表示手段を用いて前記拡張カードの動作を制御する拡張カード動作制御方法であって、前記ホスト機器で操作子の操作情報を取得するステップと、取得した操作情報を、拡張カードの種類によらない共通のプロトコルにしたがって、前記拡張カードに転送するステップと、前記拡張カードで、受信した操作情報に応じた処理を行なうステップと、前記拡張カードが持つ画面表示用ビットマップデータを、拡張カードの種類によらない共通のプロトコルにしたがって、前記ホスト機器に転送するステップと、前記ホスト機器で、受信した画面表示用ビットマップデータを表示するステップとを備えたことを特徴とする。
【0007】
請求項3に係る発明は、ホスト機器と、該ホスト機器に接続して機能拡張する拡張カードとを備えた拡張カード動作制御システムであって、前記ホスト機器は、ユーザが操作するための操作子と、各種の情報を表示する表示手段と、操作子の操作情報を取得し、該操作情報を、拡張カードの種類によらない共通のプロトコルにしたがって、前記拡張カードに転送する手段と、前記拡張カードから、拡張カードの種類によらない共通のプロトコルにしたがって、画面表示用ビットマップデータが転送されたときに、該画面表示用ビットマップデータを前記表示手段に表示する表示制御手段とを備え、前記拡張カードは、前記共通のプロトコルにしたがって前記操作子の操作情報が転送されたとき、該操作情報に応じた処理を行なう手段と、前記ホスト機器の表示手段に表示させる画面表示用ビットマップデータを、前記共通のプロトコルにしたがって前記ホスト機器に転送する手段とを備えたことを特徴とする。
【0008】
【発明の実施の形態】
以下、図面を用いてこの発明の実施の形態を説明する。
【0009】
図1は、この実施の形態のシステムのホスト機器のブロック構成を示す。ここではホスト機器100として、音響信号のミキシングや録音を行なうディジタルミキシングレコーダを例に説明する。図1のディジタルミキシングレコーダ100は、中央処理装置(CPU)101、リードオンリメモリ(ROM)102、ランダムアクセスメモリ(RAM)103、ハードディスク(HDD)104、コンパクトディスク装置(CDD)105、操作子106、液晶表示装置(LCD)107、各種インターフェース(I/F)108、ディジタルシグナルプロセッサ(DSP)109、RAM110、プラグインI/F111、およびバスライン112を備える。
【0010】
CPU101は、このホスト機器100全体の動作を制御する処理装置である。ROM102は、CPU101が実行する各種のプログラムや、動作時に使用する各種のデータなどを記憶する不揮発メモリである。RAM103は、プログラムをロードして実行したり、各種のデータの一時記憶に用いる揮発性メモリである。ハードディスク装置104は、各種のプログラムやデータを記憶する記憶装置であり、特にディジタル音響データを保存(録音)するのに用いる。CD装置105は、CD(コンパクトディスク)の読み取り装置である。
【0011】
操作子106は、ユーザが操作するためパネル上に設けられた操作子であり、各種のスイッチ、ホイール、フェーダ、およびマウスなどを含む。LCD107は、パネル上に設けられた液晶表示装置であり、CPU101からの指示に基づいて各種のデータを表示する。各種I/F108は、アナログディジタル変換器(ADC)へのアナログ入力、ディジタルアナログ変換器(DAC)へのディジタル入力、およびオーディオ信号の入出力インターフェースである。DSP109は、CPU101からの指示に基づいてマイクロプログラムを実行することによりディジタル音響信号のミキシングや効果付与などを行なう信号処理プロセッサである。RAM110は、DSP109がワークメモリとして使用する一時記憶装置である。
【0012】
プラグインI/F111は、プラグインカード200との間で各種の情報を入出力するためのインターフェースである。このホスト機器(ディジタルミキシングレコーダ)100では、プラグインカードを差し込むためのスロットが2つ設けられており、それらのスロットにそれぞれプラグインカード200を挿入することで機能拡張できる。プラグインI/F111は、プラグインカード200のコミュニケーションI/F(COMM I/F)と接続され、これによりホスト機器100とプラグインカード200との間で各種のコマンドやデータのやり取りができる。
【0013】
図2は、この実施形態のシステムのプラグインカード200のブロック構成を示す。プラグインカード200は、CPU201、USB(UniversalSerial Bus)I/F202、ROM/RAM203、コミュニケーション(COMM)I/F204、DSP205、RAM206、オーディオI/O(入出力)I/F207、およびバスライン208を備える。
【0014】
CPU201は、このプラグインカード200の全体の動作を制御する中央処理装置である。CPU201は、USB I/F202を介して各種の外部機器と情報のやりとりを行なうことができる。ROM/RAM203は、CPU201が実行するプログラムや各種データを格納したり、ワーク領域に用いる不揮発性/揮発性の記憶装置である。COMM I/F204は、ホスト機器100のプラグインI/F111と接続するためのインターフェースである。DSP205は、CPU201からの指示に基づいて各種のマイクロプログラムを実行し、信号処理を行なう信号処理プロセッサである。RAM206は、DSP205がワーク領域として利用する一時記憶装置である。オーディオ入出力I/F207は、オーディオデータの入力および出力を行なうインターフェースである。
【0015】
この実施の形態のシステムでは、各種の操作子や表示装置などのマンマシンインターフェースに係る部分は、原則としてホスト機器100側に設けられている。プラグインカード200に対する各種の設定は、ホスト機器100のLCD107に所定の画面を表示し、ホスト機器100の操作子106を操作することにより行なう。ホスト機器100の操作子106の操作情報は、ホスト機器100からプラグインカード200に送られる。プラグインカード200に対する各種の設定を行なう画面は、プラグインカード200から表示データをホスト機器100に送信し、ホスト機器100がその表示データをLCD107に表示することで表示される。プラグインカード200は、拡張機能に関するプログラムを持ち、ホスト機器100からの操作指示に応じて拡張機能に係る信号処理を行なう。どのようなプラグインカード200が接続されたとしても、ホスト機器100から操作子106の操作情報をプラグインカード200に送り、またプラグインカード200から表示データをホスト機器100に送ってLCD107に表示する処理手順は変わらない。したがって、どのようなプラグインカードを挿入したとしても、ホスト機器100側でインストールの処理は行なう必要はない。
【0016】
図3は、ホスト機器100のパネル上に設けられた操作子の例を示す。310はホイール、320はDECキー、321はINCキー、322は左カーソルキー、323は右カーソルキー、324は上カーソルキー、325は下カーソルキー、326はエンター(ENTER)キー、327はシフト(SHIFT)キーである。
【0017】
図4は、ホスト機器100のLCD107に表示される設定画面の表示例である。画面400は、大きく3つの表示領域に分かれている。3つの表示領域とは、上部領域401、中部領域402、および下部領域403である。設定画面では、当該画面が各種設定を行なうための設定画面であることを示すための見出し表示411が上部領域401に表示される。下部領域403には、ページを示すタブ431〜433が表示されている。これらのタブ431〜433は、それぞれ、LCD画面400の下側に設けられているF1〜F4のファンクションキー404と対応している。すなわち、F1キーをオンすることにより、「Main」と表示されているタブ431が指定されたこととなり、このときホスト機器100に関する各種設定を行なう画面が表示される。F2キーをオンすることにより、「Plug−in1」と表示されているタブ432が指定されたこととなり、このときプラグインカード1に関する各種設定を行なう画面が表示される。F3キーをオンすることにより、「Plug−in2」と表示されているタブ433が指定されたこととなり、このときプラグインカード2に関する各種設定を行なう画面が表示される。なお、第1スロットに挿入されたプラグインカードをプラグインカード1(Plug−in1)と呼び、第2スロットに挿入されたプラグインカードをプラグインカード2(Plug−in2)と呼ぶ。ファンクションキー404を用いる代わりに、マウスでタブ431〜433をクリックすることで各設定画面を表示させることもできる。
【0018】
上述したように、このホスト機器100はプラグインカードを挿入するスロットを2つ設けてあるので、プラグインカードに関する設定ページは、タブ432のページとタブ433のページとの2つある。中部領域402には、各タブに対応する実際の設定画面が表示される。図4では、第1スロットにプラグインカード1が挿入されていないので、「NO PLUG−IN CARD」と表示されている。
【0019】
図5は、第1スロットにプラグインカード1が挿入されている場合の設定画面の表示例を示す。このプラグインカード1は、楽音にコンプレッサやリバーブなどの効果を付与する拡張機能を有するカードであるものとする。501〜503は、楽音にどのような効果を付与するかを指定するボタンである。ロード(LOAD)ボタン504は当該画面での設定を所定のファイルからロードするためのボタンであり、セーブ(SAVE)ボタン505は当該画面での設定状態をファイルにセーブするためのボタンである。これらのボタン類は、マウスによりクリックすることによりオン/オフできる。ボタン類の右側領域には、各種設定状態を示すメーターやスライドボリュームなどが表示されている。領域510に表示されているスライドボリューム511では、マウスなどを用いてその設定を変更することができる。
【0020】
図6は、ホスト機器100とプラグインカード200との間でデータ転送を行なうために利用するレジスタを示す。これらのレジスタは、ホスト機器100およびプラグインカード200の両方から書き込みおよび読み出しができる位置に設ければよいが、ここではプラグインカード側に設けてあるものとする。
【0021】
HPDRは、ホスト・トゥ・プラグイン・データ・レジスタ(Host toPlugin Data Register)である。レジスタHPDRは、ホスト機器100からプラグインカード200へ転送するワードデータ(16ビット)の一時記憶レジスタである。HPFRは、ホスト・トゥ・プラグイン・フラグ・レジスタ(Host to Plugin Flag Register)である。レジスタHPFRは、上記一時記憶レジスタHPDRへの書き込み準備あるいは読み出し準備ができたかどうかを確認するために用いるフラグレジスタである。PHDRは、プラグイン・トゥ・ホスト・データ・レジスタ(Plugin to Host Data Register)である。レジスタPHDRは、プラグインカード200からホスト機器100へ転送するワードデータの一時記憶レジスタである。PHFRは、プラグイン・トゥ・ホスト・フラグ・レジスタ(Plugin to Host Flag Register)である。レジスタPHFRは、上記一時記憶レジスタPHDRへの書き込み準備あるいは読み出し準備ができたかどうかを確認するために用いるフラグレジスタである。
【0022】
以上のレジスタを用いてデータ転送する基本的な手順を説明する。
【0023】
ホスト機器100からプラグインカード200へデータ転送する場合は、次の▲1▼〜▲6▼の手順にしたがう。なお、H**は16進表記を表す。例えば、H00は16進の「00」、H01は16進の「01」である。
▲1▼ホスト機器100のCPU101が、レジスタHPFR=H00を確認する。
▲2▼ホスト機器100のCPU101が、レジスタHPDRに、転送すべきワードデータを書き込む。
▲3▼ホスト機器100のCPU101が、レジスタHPFRにH01をセットする。
▲4▼プラグインカード200のCPU201が、レジスタHPFR=H01を確認する。
▲5▼プラグインカード200のCPU201が、レジスタHPDRのワードデータを読み込む。
▲6▼プラグインカード200のCPU201が、レジスタHPFRをH00にリセットする。
【0024】
プラグインカード200からホスト機器100へデータ転送する場合は、次の▲1▼〜▲6▼の手順にしたがう。
▲1▼プラグインカード200のCPU201が、レジスタPHFR=H00を確認する。
▲2▼プラグインカード200のCPU201が、レジスタPHDRに、転送すべきワードデータを書き込む。
▲3▼プラグインカード200のCPU201が、レジスタPHFRにH01をセットする。
▲4▼ホスト機器100のCPU101が、レジスタPHFR=H01を確認する。
▲5▼ホスト機器100のCPU101が、レジスタPHDRのワードデータを読み込む。
▲6▼ホスト機器100のCPU101が、レジスタPHFRをH00にリセットする。
【0025】
図7は、ホスト機器100の操作子106(図3のホイールやキーなど、および不図示のフェーダやマウス)の操作が行なわれたときにホスト機器100からプラグインカード200へ転送される操作子操作情報のフォーマットを示す。
【0026】
図7(a)は、転送データの基本的なフォーマットを示す。左側の列0,1,2,…は、先頭位置を0とする相対アドレス(バイトで数える)で示した位置を表す。アドレス0には、バイトカウント(Byte Count)が格納される。バイトカウントは、これ以降に続く転送データのバイト数を示し、この転送データ全体のバイト数から1を引いた値となる。アドレス1には、オペレーションモード(Operation Mode)が格納される。オペレーションモードは、転送処理における各種モードを示す情報であるが、本実施形態では使用しないので常に0と考えてよい。アドレス2には、データタイプ(Data Type)が格納される。データタイプは、これ以降に続くデータがどのような種類のデータであるかを示す情報である。データタイプに基づいて、これ以降に続くデータの長さも決まる。アドレス3以降に、当該データタイプの種類のデータそのものが続き、最後にチェックサム(Checksum)が付加されて、転送データが構成される。
【0027】
図7(b)は、ホスト機器100のパネル上の操作子106のうち、図3の320〜327に示すキーがオン/オフ操作されたときに、ホスト機器100からプラグインカード200に転送される転送データを示す。転送データ全体の長さは6バイトであり、バイトカウントは「5」である。オペレーションモードは「0」である。データタイプは、この転送データがキーのオン/オフ情報であることを示すH20である。続いてアドレス3にキーナンバ(Key Number)であるkが格納され、アドレス4に当該キーのオン/オフの別が格納される。キーナンバkは操作されたキーを特定する情報であり、DECキー320は「0」、INCキー321は「1」、左カーソルキー322は「2」、右カーソルキー323は「3」、上カーソルキー324は「4」、下カーソルキー325は「5」、エンターキー326は「6」、シフトキー327は「7」である。アドレス4のオン/オフ情報は、「1」でオンを示し、「0」でオフを示す。最後に、チェックサムが付加される。
【0028】
図7(c)は、図3のホイール310が操作されたとき、ホスト機器100からプラグインカード200に転送される転送データを示す。転送データ全体は6バイトであり、バイトカウントは「5」である。オペレーションモードは「0」である。データタイプは、この転送データがホイール310の操作情報であることを示すH21である。続いて、アドレス3にホイールナンバ(Wheel Number)が、アドレス4に値(Value)がそれぞれ設定される。ホイールナンバは、複数のホイールがあるときに各ホイールを特定するナンバであり、ここではホイールが1個だけであるので「0」とする。アドレス4に格納される値は、ホイールの現在値を示す−128〜127の範囲の値である。最後に、チェックサムが付加される。
【0029】
図3では図示していないが、このホスト機器100は、複数のフェーダと左右ボタンを備えたマウスとを備えている。図7(d)に、フェーダが操作されたときの転送データを示す。上述の転送データと同様のフォーマットであるが、データタイプは、フェーダの操作情報であることを示すH22が設定される。続いて、複数あるフェーダのうちの1つを特定するフェーダナンバNが格納され、アドレス4にはそのフェーダの現在値(Value)が0〜255の範囲で設定される。図7(e)は、マウスの操作情報を示す転送データである。上述の転送データと同様のフォーマットであるが、データタイプは、マウスの操作情報であることを示すH23が設定されている。アドレス3に格納される左右ボタン(L/Rbutton)の情報は、右ボタンおよび左ボタンのオン/オフを表す情報である。アドレス4〜アドレス7は画面のxy座標(ビットマップ)上でのマウスの位置を示す情報である。
【0030】
図8は、プラグインカード200からホスト機器100に転送されるグラフィック転送データのフォーマットを示す。このようなフォーマットの転送データをプラグインカード200からホスト機器100に転送して、図5の中部領域402に示すような設定画面を表示する。
【0031】
図8(a)は、グラフィック転送データの基本的なフォーマットを示す。アドレス0のバイトカウントは、これ以降に続くデータのバイト数(当該転送データの全体長さから1を引いた値)である。アドレス1のオペレーションモードは、ここでは「0」とする。アドレス2のデータタイプは、グラフィック転送データであることを示すH11を格納する。アドレス3の上位アドレス(Address H)とアドレス4の下位アドレス(Address L)により、当該転送データをホスト機器100のLCD107のビットマップ上でどの位置に表示すべきかを指定する。アドレス5以降b−1までのData[0]〜Data[k]のデータが、表示すべきデータの実体である。最後にチェックサムが付加される。
【0032】
図8(b)は、ホスト機器100のLCD107のビットマップ上の所定位置に表示する「A」の表示例を示す。図8(c)は、図8(b)の表示を行なうために転送するグラフィック転送データを示す。この転送データを説明する前に、図9を参照してホスト機器100のLCD107のビットマップについて説明する。
【0033】
図9(a)は、ホスト機器100のLCD107全体のビットマップを示す。LCD107の画面全体は、横320ドット×縦240ドット=76800ドットからなる。バイト単位で付けるビットマップ上のアドレスは、第1行目の左端をアドレス0とし、その位置から右方向に向かってアドレス1,2,…としていく。第1行目の右端の1バイトはアドレス39となり、その次の第2行目の左端位置を次のアドレス40とする。以下同様にしてアドレスを付けていき、画面の右下の1バイトのアドレス9599が最終のアドレスとなる。この全体ビットマップのうち、第1〜44行の領域は図4および図5の画面の上部領域401に相当し、第45〜224行の領域は中部領域402に相当し、第225〜240行の領域は下部領域403に相当する。
【0034】
図9(b)は、図9(a)の全体ビットマップのうち第45〜224行の範囲を取り出して、その左上から新たにバイト単位のアドレスを付与したものである。プラグインカードから図8に示すフォーマットで転送されたグラフィック転送データは、図9(b)のプラグイン表示領域(図4および図5の中部領域402)に表示されるので、以降は図9(b)に示すアドレスで位置を表現するものとする。
【0035】
図8(c)に戻って、図8(b)のように「A」と表示するためのグラフィック転送データについて説明する。「A」と表示するためには、図8(b)のように6ドット×8ドットの表示を行なう。各矩形が1ドットに対応する1ビットを表すものとし、当該ドットを白抜き表示にしたい場合は対応する1ビットを「0」とし、当該ドットを黒表示にしたい場合は対応する1ビットを「1」とするものとする。図8(b)で斜線を付けた矩形が「A」を形作るための黒表示部分である。第0行目の1バイトは、ビット2〜5が「1」で、ビット0,1,6,7が「0」であるから、16進のH3Cとなる。同様にして、第1〜5行目の各バイトは、16進のH42、H42、H7E、H42、H42となる。第0〜5行目の6バイトを、順に、CHARACT0〜CHARACT5と呼ぶ。
【0036】
図8(c)は、上記のCHARACT0〜CHARACT5を順にホストに転送するための転送データである。CHARACT0〜CHARACT5は全部で6バイトあるので、各バイトを順に転送するため転送データは801〜806の6つある。何れの転送データも、バイトカウントは「6」、オペレーションモードは「0」、データタイプはグラフィック転送データであることを示すH11である。転送データ801のアドレス3,4のAddress HとAddress Lの値ADAは、CHARACT0を表示する位置を表すアドレスであり、図9(b)で説明したビットマップ上のアドレスで表現されている。例えば、CHARACT0を図9(b)のアドレス42に表示したければ、ADA=42(10進)とすればよい。
【0037】
図9(b)から判るように、ビットマップ上では1行が40バイトからなるので、CHARACT0を表示した位置の直下の位置のアドレスはADA+40となる。したがって、転送データ802ではADA+40の位置にCHARACT1を表示する設定になっている。以下同様にして、転送データ803〜806で、ADA+80の位置にCHARACT2を表示し、ADA+120の位置にCHARACT3を表示し、ADA+160の位置にCHARACT4を表示し、ADA+200の位置にCHARACT5を表示する。これにより図8(b)に示すような6×8ドットの「A」の表示が実現される。
【0038】
次に、ホスト機器100の操作子106を操作したときに、その操作情報をホスト機器100からプラグインカード200へ転送する処理手順を説明する。ここでは、図3のエンターキー326がオンあるいはオフされたとき、図7(b)のフォーマットの転送データを転送する例で説明する。
【0039】
図10は、エンターキー操作イベントをホスト機器100からプラグインカード200へ転送する処理手順を示すフローチャートである。この処理は、ホスト機器100のCPU101で実行されるものであり、図6を参照して説明した転送の基本的な手順にしたがうものである。
【0040】
ステップ1001で、エンターキー326の操作を検出する。ステップ1002で、エンターキー326のオンイベントであるか否か判別する。オンイベントであるときは、ステップ1003でレジスタHPFRを読み出し、ステップ1004で当該レジスタの値がH00であるか否か判別する。H00でないときは、ステップ1003に戻る。レジスタHPFRがH00であるときは、レジスタHPDRに転送データを書き込んでよいということであるから、ステップ1005で、バイトカウントとオペレーションモードをレジスタHPDRにセットする。ここではエンターキー326のオンイベントであるから(5,0)をセットすることになる。ステップ1006で、レジスタHPFRにH01をセットする。なお、ステップ1005でレジスタHPDRに書き込まれたデータは、後述する図11のステップ1103でプラグインカード200側に読み出される。
【0041】
次に、ステップ1007でレジスタHPFRを読み出し、ステップ1008でその値がH00になったか否か判別する。H00になっていないときは、ステップ1007に戻る。H00になったときは、レジスタHPDRに転送データを書き込んでよいということであるから、ステップ1009で、レジスタHPDRにデータタイプとキーナンバーをセットする。ここでは(H20,6)をセットすることになる。次にステップ1010で、レジスタHPFRにH01をセットする。なお、ステップ1009でレジスタHPDRに書き込まれたデータは、後述する図11のステップ1107でプラグインカード200側に読み出される。
【0042】
次に、ステップ1011でレジスタHPFRを読み出し、ステップ1012でその値がH00になったか否か判別する。H00になっていないときは、ステップ1011に戻る。H00になったときは、ステップ1013で、レジスタHPDRにオン/オフを示すデータおよびチェックサムをセットする。ここでは(1,c)をセットすることになる。次にステップ1014でレジスタHPFRにH01をセットして、送信を終了する。
【0043】
ステップ1002でエンターキー326のオンイベントでないときは、ステップ1015でエンターキー326のオフイベントであるか否か判別する。オフイベントでないときは、そのまま終了する。オフイベントであるときは、ステップ1016に進む。ステップ1016〜1027の処理は、ステップ1003〜1014と同様である。ただし、エンターキー326のオフイベントであるので、ステップ1026ではオン/オフを示すデータとして「0」をセットしている。
【0044】
図11は、図10のようにホスト機器100から送信されたデータをプラグインカード200側で受信する処理手順を示すフローチャートである。この処理は、プラグインカード200のCPU201で実行されるものであり、図6を参照して説明した転送の基本的な手順にしたがうものである。
【0045】
ステップ1101でレジスタHPFRを読み出し、ステップ1102でその値がH01であるか否か判別する。H01でないときは、ステップ1101に戻る。H01であるときは、レジスタHPDRに転送データがセットされているということであるから、ステップ1103でレジスタHPDR(内容は図10のステップ1005でセットしたバイトカウントとオペレーションモードである)を読み出し、ステップ1104でそのバイトカウントの値から1を引いた値をレジスタDCOUNTERにセットする。バイトカウントから1を引いているのは、この段階でバイトカウントとオペレーションモードを受信しているので転送データの残りバイト数はバイトカウント−1になるからである。次にステップ1105で、レジスタHPDRの読み出しが終わったことを示すため、レジスタHPFRにH00をセットする。
【0046】
次にステップ1106でワークレジスタjに0をセットする。ステップ1107でレジスタHPFRを読み出し、ステップ1108でその値がH01になったか否か判別する。H01でないときは、ステップ1107に戻る。H01になっていたときは、ステップ1109で、レジスタHPDRの内容をバッファREADBUFFjに格納する。READBUFFjは受信したデータを格納するバッファであり、添字j=0,1,2,…としたREADBUFF0,READBUFF1,READBUFF2,…はそれぞれ16ビットである。次にステップ1110でレジスタHPFRにH00をセットし、ステップ1111でjの値をインクリメントする。ステップ1112では、jの値が、BCOUNTERを2で割って四捨五入した整数値(roundは四捨五入する関数を示す)に等しくなっているか否か判別する。転送データはワード(16ビット)単位での転送であるため、j=round(BCOUNTER/2)になったときは、転送データの受信が終了したことになる。ステップ1112で受信データが未だあるときはステップ1107に戻って読み出しを続ける。受信が終了したときは、ステップ1113で、バッファREADBUFFに格納されたデータを分析し、それに応じた処理を行ない、本処理を終了する。
【0047】
なお、ステップ1113では、チェックサムによるデータ誤り有無確認処理を行ない、誤りがあるときは再送信を要求するようにしている。受信したデータのオペレーションモードおよびデータタイプなどからデータの種類および意味を分析し、かつ付随するデータ値などを得る。その結果に応じて、プラグインカード200側では対応する処理を行なう。例えば、エンターキー326のオンイベントが転送されたときは、バッファREADBUFFに図7(b)のフォーマットのオンイベントデータが格納されるので、ステップ1113ではそれを検出し、そのオンイベントに応じた処理を行なう。
【0048】
上記図10および図11の処理は、エンターキーのオン/オフ情報を送受信する例で説明したが、他のキーについても同様の手順でホスト機器100からプラグインカード200に操作情報を転送する。また、ホイールやフェーダなどのリアルタイムに操作情報を転送すべきものでは、上述の手順による操作情報の送受信を所定時間間隔で繰り返し実行することにより連続的に操作情報を転送する。マウスポインタの位置情報も同様に転送すればよい。
【0049】
図12は、プラグインカード200からホスト機器100への表示文字転送処理の手順を示すフローチャートである。この処理は、プラグインカード200のCPU201で実行されるものであり、図6を参照して説明した転送の基本的な手順にしたがうものである。ここでは、図8(b)および(c)で説明した「A」を表示させる例で説明する。
【0050】
ステップ1201で、ワークレジスタiに0を、変数kにプラグイン表示領域アドレスADA(図9(b)で説明したアドレスで表す)をセットする。変数kは、転送データ(ここでは図8(c)で説明したCHARACT0〜5のそれぞれ)を表示するアドレスを格納する変数であるので、以下では変数kにセットされたデータを表示アドレスkと呼ぶ。ステップ1202でレジスタPHFRを読み出し、ステップ1203で当該レジスタがH00であるか否か判別する。H00でないときは、ステップ1202に戻る。H00であるときは、ステップ1204で、レジスタPHDRに、最初に転送すべきデータであるバイトカウントとオペレーションモードをセットする。ここでは(6,0)をセットすることになる。
【0051】
次にステップ1205で、レジスタHPFRにH01をセットする。ステップ1206でレジスタPHFRを読み出し、当該レジスタがH00であるか否か判別する。ステップ1207で、当該レジスタがH00でないときは、ステップ1206に戻る。H00であるときは、ステップ1208で、レジスタPHDRに、次に転送すべきデータであるデータタイプおよび上位アドレス(Address H)をセットする。ここでは(H11,High[k])をセットすることになる。なお、High[k]は、表示アドレスkの上位バイトを示す。
【0052】
次にステップ1209で、レジスタHPFRにH01をセットする。ステップ1210でレジスタPHFRを読み出し、ステップ1211で当該レジスタがH00であるか否か判別する。H00でないときは、ステップ1210に戻る。H00であるときは、ステップ1212で、レジスタPHDRに、次に転送すべきデータである下位アドレス(Address L)およびデータData[i]をセットする。ここでは(Low[k],CHARACTi)をセットすることになる。なお、Low[k]は、表示アドレスkの下位バイトを示す。
【0053】
次にステップ1213で、レジスタHPFRにH01をセットする。ステップ1214でレジスタPHFRを読み出し、ステップ1215で当該レジスタの値がH00であるか否か判別する。H00でないときは、ステップ1214に戻る。H00であるときは、ステップ1216で、レジスタPHDRにチェックサムと補填文字をセットする。ここでは、(Checksum,H00)をセットすることになる。次にステップ1217で、レジスタHPFRにH01をセットする。
【0054】
ここまでで、図8(c)の転送データ801の転送の指示が終了したことになる。次にステップ1218で、レジスタiをインクリメントし、表示アドレスkを40だけ増加させる。ステップ1219でiの値が6であるか否か判別する。6でないときは、ステップ1202に戻って、次の転送データ802〜806の転送処理を続ける。iが6であるときは、転送データ801〜806をすべて転送指示したと言うことであるから、本処理を終了する。
【0055】
図13は、図12のようにプラグインカード200から転送したデータをホスト機器100で受信する処理のフローチャートを示す。この処理は、ホスト機器100のCPU101で実行されるものであり、図6を参照して説明した転送の基本的な手順にしたがうものである。
【0056】
ステップ1301でレジスタPHFRを読み出し、ステップ1302で当該レジスタの値がH01であるか否か判別する。H01でないときはステップ1301に戻る。H01であるときは、ステップ1303でレジスタPHDRを読み出し、ステップ1304でレジスタHBCOUNTERにバイトカウントから1を引いた値をセットする。ここではバイトカウントとオペレーションモードを受信しているので、残るバイト数はバイトカウントから1を引いた値となる。次にステップ1305で、レジスタPHFRにH00をセットする。
【0057】
次にステップ1306で、レジスタjに0をセットする。ステップ1307で、レジスタPHFRを読み出し、ステップ1308で当該レジスタの値がH01であるか否か判別する。H01でないときは、ステップ1307に戻る。H01であるときは、ステップ1309で、バッファHREADBUFFjにレジスタPHDRの内容をセットする。HREADBUFFjは受信したデータを格納するバッファであり、添字j=0,1,2,…としたHREADBUFF0,HREADBUFF1,HREADBUFF2,…はそれぞれ16ビットである。次にステップ1310でレジスタPHFRにH00をセットし、ステップ1311でレジスタjをインクリメントする。ステップ1312では、レジスタjの値がHBCOUNTER/2を四捨五入した整数値に至ったか否か判別する。レジスタjの値が前記四捨五入整数値に至っていないときは、ステップ1307に戻る。レジスタjの値が前記四捨五入整数値に至ったときは、ステップ1313で、バッファHREADBUFFに格納されたデータを分析し、分析結果に応じた処理を行ない、本処理を終了する。
【0058】
なおステップ1313では、チェックサムによるデータ誤りの意味を確認する処理を行ない、誤りがあるときは再送信を要求するなどを実行している。また、受信したデータのオペレーションモードおよびデータタイプなどからデータの種類および意味を分析し、かつ付随するデータ値などを得る。その結果に応じて、その後、対応する処理を行なう。受信データがグラフィックデータである場合はアドレス換算なども行なう。アドレス換算とは、図9(b)のアドレスで指定された表示位置を、図9(a)のアドレスに換算する処理である。
【0059】
例えば図13の手順を繰り返して図8(c)の転送データ801〜806を受信したときには、ステップ1313では、データタイプからグラフィック転送データであることが分かるから、指定されたアドレスに指定されたデータを表示する処理を行なう。これにより、図8(b)のような表示が実現される。
【0060】
【発明の効果】
以上説明したように、この発明によれば、拡張カードの種類によらない共通のプロトコルでホスト機器の操作子の操作情報を拡張カードに転送し、拡張カードでは受信した操作情報に応じた処理を行ない、また拡張カードの種類によらない共通のプロトコルで拡張カードが持つ画面表示データをホスト機器に転送し、ホスト機器では受信した画面表示データを表示するようにしているので、新たに拡張カードが開発された場合でも、ホスト機器側の操作情報を転送する手順や受信した画面表示データを表示する手順は変える必要がない。したがって、新たにホスト機器側のプログラムを開発する必要がない。また、インストールやセットアップ処理、およびROMの交換なども不要である。
【図面の簡単な説明】
【図1】この発明の実施の形態に係るシステムのホスト機器のブロック構成図
【図2】プラグインカードのブロック構成図
【図3】ホスト機器のパネル上に設けられた操作子の例を示す図
【図4】ホスト機器のLCDに表示される設定画面の表示例を示す図
【図5】第1スロットにプラグインカードが挿入されている場合の設定画面の表示例を示す図
【図6】ホスト機器とプラグインカードとの間でデータ転送を行なうために利用するレジスタを示す図
【図7】ホスト機器からプラグインカードへ転送される操作情報のフォーマットを示す図
【図8】プラグインカードからホスト機器に転送されるグラフィック転送データのフォーマットを示す図
【図9】LCDのビットマップを示す図
【図10】エンターキー操作イベントをホスト機器からプラグインカードへ転送する処理手順を示すフローチャート図
【図11】プラグインカード側で受信する処理手順を示すフローチャート図
【図12】プラグインカードからホスト機器への表示文字転送処理の手順を示すフローチャート図
【図13】ホスト機器で受信する処理のフローチャート図
【符号の説明】
100…ディジタルミキシングレコーダ、101…中央処理装置(CPU)、102…リードオンリメモリ(ROM)、103…ランダムアクセスメモリ(RAM)、104…ハードディスク(HDD)、105…コンパクトディスク装置(CDD)、106…操作子、107…液晶表示装置(LCD)、108…各種インターフェース(I/F)、109…ディジタルシグナルプロセッサ(DSP)、110…RAM、111…プラグインI/F、112…バスライン112、200…プラグインカード、201…CPU、202…USB I/F、203…ROM/RAM、204…コミュニケーション(COMM)I/F、205…DSP、206…RAM、207…オーディオI/O(入出力)I/F、208…バスライン。
Claims (3)
- ホスト機器に拡張カードを接続して機能拡張する場合に、前記ホスト機器に備えられている操作子および表示手段を用いて前記拡張カードの動作を制御する拡張カード動作制御方法であって、
任意の拡張カードに対し、前記ホスト機器の操作子が操作されたときに該操作情報を前記拡張カードに転送する共通のプロトコルを規定しておき、該プロトコルにしたがって前記ホスト機器の操作子の操作情報を前記拡張カードに転送するとともに、
任意の拡張カードに対し、その拡張カードが持つ画面表示用ビットマップデータを前記ホスト機器に転送する共通のプロトコルを規定しておき、該プロトコルにしたがって前記拡張カードが持つ画面表示用ビットマップデータを前記ホスト機器に転送し、該画面表示用ビットマップデータを受信した前記ホスト機器では表示手段に該画面表示用ビットマップデータを表示する
ことを特徴とする拡張カード動作制御方法。 - ホスト機器に拡張カードを接続して機能拡張する場合に、前記ホスト機器に備えられている操作子および表示手段を用いて前記拡張カードの動作を制御する拡張カード動作制御方法であって、
前記ホスト機器で操作子の操作情報を取得するステップと、
取得した操作情報を、拡張カードの種類によらない共通のプロトコルにしたがって、前記拡張カードに転送するステップと、
前記拡張カードで、受信した操作情報に応じた処理を行なうステップと、
前記拡張カードが持つ画面表示用ビットマップデータを、拡張カードの種類によらない共通のプロトコルにしたがって、前記ホスト機器に転送するステップと、
前記ホスト機器で、受信した画面表示用ビットマップデータを表示するステップと
を備えたことを特徴とする拡張カード動作制御方法。 - ホスト機器と、該ホスト機器に接続して機能拡張する拡張カードとを備えた拡張カード動作制御システムであって、
前記ホスト機器は、
ユーザが操作するための操作子と、
各種の情報を表示する表示手段と、
操作子の操作情報を取得し、該操作情報を、拡張カードの種類によらない共通のプロトコルにしたがって、前記拡張カードに転送する手段と、
前記拡張カードから、拡張カードの種類によらない共通のプロトコルにしたがって、画面表示用ビットマップデータが転送されたときに、該画面表示用ビットマップデータを前記表示手段に表示する表示制御手段と
を備え、
前記拡張カードは、
前記共通のプロトコルにしたがって前記操作子の操作情報が転送されたとき、該操作情報に応じた処理を行なう手段と、
前記ホスト機器の表示手段に表示させる画面表示用ビットマップデータを、前記共通のプロトコルにしたがって前記ホスト機器に転送する手段と
を備えたことを特徴とする拡張カード動作制御システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001360353A JP3654239B2 (ja) | 2001-11-27 | 2001-11-27 | 拡張カード動作制御方法およびシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001360353A JP3654239B2 (ja) | 2001-11-27 | 2001-11-27 | 拡張カード動作制御方法およびシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003162493A JP2003162493A (ja) | 2003-06-06 |
JP3654239B2 true JP3654239B2 (ja) | 2005-06-02 |
Family
ID=19171182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001360353A Expired - Fee Related JP3654239B2 (ja) | 2001-11-27 | 2001-11-27 | 拡張カード動作制御方法およびシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3654239B2 (ja) |
-
2001
- 2001-11-27 JP JP2001360353A patent/JP3654239B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003162493A (ja) | 2003-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2016110459A (ja) | プログラマブル・ロジック・コントローラ及びプログラマブル・ロジック・コントローラの拡張ユニット、制御方法および制御プログラム | |
JP3654239B2 (ja) | 拡張カード動作制御方法およびシステム | |
US5778417A (en) | Digital signal processing for audio mixing console with a plurality of user operable data input devices | |
JP2601451B2 (ja) | テキストフアイル修正方式 | |
JPS6015777A (ja) | 連続した直線の作図方式 | |
JP2871956B2 (ja) | 印刷制御装置及びそのインタフェースの設定方法 | |
US7013381B2 (en) | Function-variable type digital signal processing apparatus, and method of and program for controlling the same | |
JPH10221130A (ja) | 分析装置 | |
JPS638975A (ja) | Cad図面表示装置 | |
JPH0361212B2 (ja) | ||
JP2862369B2 (ja) | 画像表示制御装置 | |
JP2604066B2 (ja) | テキストファイル修正格納方法 | |
JP3177423B2 (ja) | 周辺装置の試験システム | |
JPS5828998B2 (ja) | 遠隔制御装置 | |
JPS5852755A (ja) | スキャンイン方式 | |
JPH02308353A (ja) | システム構成情報記憶回路 | |
JPH0337024Y2 (ja) | ||
JP2007172297A (ja) | 情報処理装置、データベース修復システム、及び、プログラム。 | |
US20030222885A1 (en) | Method of storing color pattern display data and method of processing the same | |
JPS63153661A (ja) | パーソナルコンピュータ | |
JPH08161006A (ja) | プログラム制御装置 | |
JPH11248496A (ja) | モジュール型計測器及びモジュール型計測器の連携処理プログラムを記録した記録媒体 | |
JPS5854416A (ja) | コンピユ−タの運転方法 | |
JPS60189785A (ja) | 数値制御装置 | |
JPH05143544A (ja) | コマンド列選択編集方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040609 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040615 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040816 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050208 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050221 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090311 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090311 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100311 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110311 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110311 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120311 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130311 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140311 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |