Description
JP 2010245743 20101101 20140820 G09G 5/00 G09G 5/39 G09G 5/393 patcit 1 : 特開平10−133944(JP,A)
patcit 2 : 特開2002−278919(JP,A)
patcit 3 : 特開2000−231473(JP,A)
patcit 4 : 特開平07−302073(JP,A)
JP2011051667 20110127 WO2012060114 20120510 20130411 橋本 直明
Technical Field
[0001]
本発明は、空気調和装置や照明装置等の遠隔操作に用いられるリモートコントローラ等のフルドット液晶画面に画像を描画する描画装置
、描画方法
及びプログラムに関する。
Background Art
[0002]
従来、空気調和装置や照明装置等の遠隔操作に用いられるリモートコントローラの表示画面には、例えばセブンセグメントタイプの単純なものが用いられてきた。しかしながら、最近では、フルドット液晶の表示画面を備えるものが増えている(例えば、特許文献1参照)。
[0003]
フルドット液晶の表示画面において文字などの2次元画像を表示する際には、マイクロコンピュータのプロセッサとは独立してデータ転送を行うDMAコントローラが用いられるようにするがの望ましい。DMAコントローラを用いてROM(Read Only Memory)から文字のビットマップ画像をVRAM(Video Random Access Memory)に転送すれば、プロセッサの不可は著しく軽減される。
Citation List
Patent Literature
[0004]
patcit 1 : 特開2010−175786号公報
Summary of Invention
Technical Problem
[0005]
ところが、ROMでは、各行のデータ列が上から順番に連結された状態でアドレス順に文字等のビットマップ画像が記憶されている。このため、一般的なDMA(Direct Memory Access)コントローラを用いて、ビットマップ画像のデータをそのままVRAMに転送しても、表示画面上でその文字の画像が正確に表示されるようにはならない。VRAMにその文字の画像を正確に表示するためには、1行分のデータ列が書き込まれる度に、VRAMにおける書き込み位置を改行する必要がある。
[0006]
このような背景から、現状では、ROMから読み込んだ画像データをVRAMに書き込む際にDMAコントローラは用いられていない。
[0007]
本発明は、上記実情に鑑みてなされたもので、フルドット液晶の表示画面に画像を表示する際のプロセッサの負荷を軽減することができる描画装置
、描画方法
及びプログラムを提供することを目的とする。
Technical Solution
[0008]
上記目的を達成するために、この発明に係る描画装置は、各行のデータ列が順番に連結されて記憶媒体に記憶された画像情報を読み出して、2次元の画像表示用メモリの所定の領域に書き込むことにより、画像情報に基づく画像を表示する。この描画装置において、読み出し部は、プロセッサとは独立して、記憶媒体に記憶された画像情報を、その先頭の読み出し開始位置から所定の単位で順次読み出していく。書き込み部は、プロセッサとは独立して、読み出し部によって読み出されたデータを、画像表示用メモリにおける書き込み開始位置から所定の単位で横方向に順次書き込んでいく。書き込み位置更新部は、書き込み部による各行のデータ列の書き込みが完了する度に、画像表示用メモリにおける書き込み開始位置を、次の行の同じ列の位置に更新する。
プロセッサと、記憶媒体と、画像表示用メモリと、読み出し部と、書き込み部とが、マイクロコンピュータに実装され、記憶媒体と画像表示用メモリとの間でデータの入出力が可能なバッファを有するデータ中継部がマイクロコンピュータの外部にさらに設けられる。読み出し部は、記憶媒体における読み出し開始位置と、画像情報全体の転送に必要な転送回数と、バッファにおける書き込み位置とがレジスタに設定される第1のDMAコントローラである。書き込み部は、バッファにおける読み込み位置と、画像情報の各行のデータ列の転送に必要な転送回数と、画像表示用メモリの書き込み開始位置とがレジスタに設定される第2のDMAコントローラである。
Advantageous Effects
[0009]
この発明によれば、書き込み位置更新部により、画像表示用メモリへの各行のデータ列の書き込みが完了する度に、画像表示用メモリにおける書き込み開始位置を改行する。これにより、画像情報を記憶媒体から読み込んで画像表示用メモリに書き込むのにDMAコントローラを用いることができる。この結果、フルドット液晶の表示画面に画像を表示する際のプロセッサの負荷を軽減することができる。
Brief Description of Drawings
[0010]
[fig. 1] この発明の実施の形態1に係る描画装置の構成を示すブロック図である。
[fig. 2] 図2(A)は、文字のビットマップ画像の一例を示す図である。図2(B)は、図2(A)の文字のビットマップ画像のデータがROMに格納されている様子を模式的に示す図である。
[fig. 3] 図1のDMAコントローラの構成を示すブロック図である。
[fig. 4] 図4(A)は、図3のDMAコントローラにおける第1の転送モードを説明するための図である。図4(B)は、図3のDMAコントローラにおける第2の転送モードを説明するための図である。図4(C)は、図3のDMAコントローラにおける第3の転送モードを説明するための図である。
[fig. 5] 図1のVRAMのメモリマップを説明するための図である。
[fig. 6] 図1の表示部の表示画面に表示される全体画像の一例を示す図である。
[fig. 7] 図1のコンパニオンチップの構成と、信号の流れを説明するためのブロック図である。
[fig. 8] 図1の描画装置の処理シーケンス図である。
[fig. 9] この発明の実施の形態2に係る描画装置の構成を示すブロック図である。
[fig. 10] 図9のコンパニオンチップの構成と、信号の流れを説明するためのブロック図である。
[fig. 11] 図9の描画装置の処理シーケンス図である。
[fig. 12] ROMのメモリマップの一例を示す図である。
[fig. 13] この発明の実施の形態3に係る描画装置の構成を示すブロック図である。
[fig. 14] オフセットを説明するための図である。
[fig. 15] 図15(A)及び図15(B)は、連続して横に並ぶ文字を1つの画像データとしてROMに記憶する方法を説明するための図である。
[fig. 16] 各文字の画像データを、連続して横に並ぶ2文字の画像データに変換してRAMに保持する様子を説明するための図である。
Description of Embodiments
[0011]
この発明の実施の形態について、図面を参照して詳細に説明する。
[0012]
実施の形態1.
まず、この発明の実施の形態1について説明する。
[0013]
まず、図1を参照して、本実施形態に係る描画装置100の構成について説明する。この描画装置100は、例えば、図示しない空気調和装置のリモートコントローラである。図1に示すように、描画装置100は、マイクロコンピュータ1、表示部2及びコンパニオンチップ3を備える。
[0014]
マイクロコンピュータ1は、CPU10、ROM11、RAM(Random Access Memory)12、DMAコントローラ13A、13B、13C、外部インターフェイス(I/F)14、VRAM15及び操作入力インターフェイス(I/F)16を備える。これらはバス17を介して互いにデータ送受信可能に接続されている。
[0015]
プロセッサとしてのCPU10は、描画装置100全体を統括制御する。CPU10は、描画装置(リモートコントローラ)100だけでなく、空気調和装置全体を統括制御するものであってもよい。また、CPU10は、複数の空気調和装置に跨る協調動作を行うものであってもよい。
[0016]
記憶媒体としてのROM11には、表示される複数の画像データが記憶されている。このような画像データには、文字や図形などの画像データが含まれている。図2(A)には、このような画像の一例として、文字「D」のビットマップ画像が示されている。このビットマップ画像は、16ビット×16ビットの画像データである。1バイトを8ビットとすると、このビットマップ画像は、32バイトの画像データとなる。
[0017]
ここで、ビットマップ画像の最上行の左側8ビットをまとめてデータD1とし、最上行の右側8ビットをデータD2とする。また、次の行の左側8ビットをまとめてデータD3とし、その行の右側8ビットをデータD4とする。同様にして、各行の左側8ビットと右側8ビットとをそれぞれまとめていくと、ビットマップ画像の最下行の右側8ビットは、データD32となる。
[0018]
このビットマップ画像のデータは、ROM11に、図2(B)のようにして記憶されている。図2(B)に示すように、図2(A)のビットマップ画像の最上行の左側8ビットのデータD1は、アドレスA1に格納されている。その次のアドレスA2には、データD2が格納されている。同様に、アドレスA3には、次の行の左側8ビットのデータD3が格納され、アドレスA4には、右側8ビットのデータD4が格納されている。そして、最後のアドレスA32には、最下行の右側8ビットのデータD32が格納されている。
[0019]
このように、ROM11には、表示されるべき文字等の画像データの各行のデータ列が順番に連結された状態で、アドレス順に記憶されている。
[0020]
RAM12には、CPU10で用いられるデータ等が必要に応じて書き込まれる。
[0021]
DMAコントローラ13A、13B、13Cは、CPU10とは独立してデータ転送を行う。図3には、DMAコントローラ13Aの構成が示されている。図3に示すように、DMAコントローラ13Aは、制御部20、読み出し開始アドレスレジスタ21、書き込み開始アドレスレジスタ22及び転送回数レジスタ23を備えている。
[0022]
制御部20は、バス17を介して転送元から転送先にデータを転送する。読み出し開始アドレスレジスタ21には、転送元における読み出し開始アドレスが設定される。書き込み開始アドレスレジスタ22には、転送先における書き込み開始アドレスが設定される。転送回数レジスタ23には、DMA転送を行う回数が設定される。1回の転送につき転送されるデータサイズは1バイトであるため、例えば32バイトのデータを転送する際の転送回数は32回となる。
[0023]
制御部20は、読み出し開始アドレスレジスタ21に設定された読み出し開始アドレスからデータをアドレス単位(1バイト)で読み取っていく。そして、制御部20は、読み取ったデータを、書き込み開始アドレスレジスタ22に設定された書き込み開始アドレスから順次書き込むことにより、転送元から転送先へデータをDMA転送する。DMA転送は、転送回数レジスタ23に格納された転送回数で終了する。
[0024]
DMAコントローラ13B、13Cの構成も、図3に示すDMAコントローラ13Aの構成と同じである。なお、以下では、読み出し開始アドレスレジスタ21、書き込み開始アドレスレジスタ22及び転送回数レジスタ23をまとめてレジスタ群とも呼ぶ。
[0025]
DMAコントローラ13A、13B、13Cは、3つの転送モードでのデータ転送が可能である。
[0026]
図4(A)には、第1の転送モードが模式的に示されている。図4(A)に示すように、第1の転送モードは、転送元のアドレス及び転送先のアドレスを両方1バイト書き込む度にシフトさせていく転送モードである。この第1の転送モードによれば、転送元のデータは転送先にそのままコピーされる。
[0027]
図4(B)には、第2の転送モードが模式的に示されている。図4(B)に示すように、第2の転送モードは、転送先のアドレスを固定する転送モードである。この第2の転送モードによれば、転送元のデータは、転送先の同じアドレス(書き込み開始アドレス)に上書きされる。
[0028]
図4(C)には、第3の転送モードが模式的に示されている。図4(C)に示すように、第3の転送モードは、転送元のアドレスを固定する転送モードである。この第3の転送モードによれば、読み出し開始アドレスに書き込まれた転送元のデータが、書き込み開始アドレスから、転送先の複数のアドレスに転送回数に応じたバイト数だけ書き込まれる。
[0029]
この実施の形態では、DMAコントローラ13Aが第2の転送モードで動作し、DMAコントローラ13Bが第3の転送モードで動作し、DMAコントローラ13Cが第1の転送モードで動作する。
[0030]
外部I/F14は、外部の機器とのデータ送受信を行うための通信インターフェイスである。外部I/F14には、コンパニオンチップ3が接続されている。これにより、コンパニオンチップ3は、CPU10、ROM11、RAM12、DMAコントローラ13A、13B、13C、外部I/F14及びVRAM15とデータ送受信が可能である。
[0031]
VRAM15は、2次元の画像表示用メモリである。図5には、VRAM15のメモリマップが模式的に示されている。図5に示すように、VRAM15におけるアドレスの方向は、列方向(横方向)となっている。最小のアドレスは、VRAM15の左上端となっており、最大のアドレスは、右下端となっている。
[0032]
仮に、VRAM15の特定の位置Pを基準に、画像データ4を書き込もうとする場合には、特定の位置Pに対応するアドレスから画像データ4を書き込んでいくようになる。この際、画像データ4における次の行のデータ列を書き込むには、転送先のアドレスを、次の行の書き込み開始アドレスと同列のアドレスに更新するか、オフセットを加算する必要がある。
[0033]
操作入力インターフェイス16は、ユーザによって操作されるボタン等の操作入力部を有するマンマシンインターフェイスである。
[0034]
表示部2は、フルドット液晶の表示画面を有する。この表示画面のサイズは、例えば、縦が120乃至240ドットで、横が250乃至320ドットとなっている。VRAM15に画像データが書き込まれると、この表示画面には、その画像データに基づく画像が表示される。図6には、表示部2に表示された画面の一例が示されている。なお、表示画面上には、タッチパネルが設けられていてもよい。
[0035]
図7には、コンパニオンチップ3の詳細な構成が示されている。図7に示すように、コンパニオンチップ3は、バッファ30と、制御部31と、レジスタデータメモリ(RDM)32とを備える。
[0036]
バッファ30は、例えば1バイトのデータを保持可能なメモリである。制御部31は、CPU10からの指示に従って、バッファ30を介したDMA転送を制御する。レジスタデータメモリ32は、DMAコントローラ13Bの読み出し開始アドレスレジスタ21、書き込み開始アドレスレジスタ22及び転送回数レジスタ23に設定されるデータを記憶するメモリである。
[0037]
コンパニオンチップ3の構成についてさらに詳細に説明する。
[0038]
バッファ30には、ROM11から1バイト分の画像データがDMA転送される。このDMA転送は、DMAコントローラ13Aによって実行される。
[0039]
このDMA転送に先立って、CPU10は、DMAコントローラ13Aのレジスタ群への設定を行う。この設定により、DMAコントローラ13Aの読み出し開始アドレスレジスタ21には、ROM11の画像データの先頭アドレスが設定される。また、書き込み開始アドレスレジスタ22には、コンパニオンチップ3のバッファ30のアドレスが設定される。また、転送回数レジスタ23には、画像データ全体のバイト数(すなわち画像データ全体の転送に必要な転送回数)が設定される。
[0040]
コンパニオンチップ3の制御部31は、DMAコントローラ13Aの制御部20に対して制御信号を出力する。制御部31が、DMA転送開始の制御信号を出力すると、DMAコントローラ13Aの制御部20は、ROM10からバッファ30へのDMA転送を開始する。
[0041]
バッファ30にDMA転送された1バイト分の画像データは、VRAM15へDMA転送される。このDMA転送は、DMAコントローラ13Bによって実行される。
[0042]
DMA転送に先立って、DMAコントローラ13Bのレジスタ群の設定が行われる。この設定により、DMAコントローラ13Bの読み出し開始アドレスレジスタ21には、コンパニオンチップ3のバッファ30のアドレスが設定される。また、書き込み開始アドレスレジスタ22には、VRAM15の書き込み開始アドレスが設定される。また、転送回数レジスタ23には、画像情報の各行のデータ列の長さに対応するバイト数(1行分のデータ列の転送に必要な転送回数)が設定される。このレジスタ群の設定は、以下のようにして行われる。
[0043]
描画装置100では、DMAコントローラ13Bのレジスタ群の設定のためにDMAコントローラ13Cが設けられている。DMAコントローラ13Bのレジスタ群に設定されるデータは、DMAコントローラ13Cにより、コンパニオンチップ3のレジスタデータメモリ32から、DMAコントローラ13Bのレジスタ群へDMA転送される。
[0044]
まず、CPU10は、DMAコントローラ13Cのレジスタ設定を行う。DMAコントローラ13Cの読み出し開始アドレスレジスタ21には、コンパニオンチップ3のレジスタデータメモリ32のアドレスが設定される。また、書き込み開始アドレスレジスタ22には、DMAコントローラ13Cのレジスタ群のアドレスが設定される。また、転送回数レジスタ23には、レジスタ群のバイト数が設定される。
[0045]
続いて、CPU10は、まず、コンパニオンチップ3の制御部31に対して、ROM11から読み出す画像データの縦横のバイト数や、VRAM15へその画像を描画する位置(VRAM15上の書き込み開始アドレス)を出力する。制御部31は、バッファ30のアドレスと、VRAM15上の書き込み開始アドレスと、1行のデータ列のバイト数とを、レジスタデータメモリ32に設定する。
[0046]
制御部31は、DMAコントローラ13Cの制御部20にDMA転送開始の制御信号を出力する。すると、DMAコントローラ13Cの制御の下で、コンパニオンチップ3のレジスタデータメモリ32に含まれるデータが、DMAコントローラ13Bのレジスタ群にDMA転送される。この結果、上述のように、DMAコントローラ13Bの読み出し開始アドレスレジスタ21には、コンパニオンチップ3のバッファ30のアドレスが設定される。また、書き込み開始アドレスレジスタ22には、VRAM15の書き込み開始アドレスが設定される。また、転送回数レジスタ23には、画像データの各行のデータ列の長さに対応するバイト数(各行のデータ列を転送するのに必要な転送回数)が設定される。
[0047]
この状態で、制御部31が、DMAコントローラ13A、13CへのDMA転送指示の制御信号を所定のタイミングで切り替えることにより、DMAコントローラ13AによるROM11→バッファ30へのDMA転送と、DMAコントローラ13Bによるバッファ30→VRAM15のDMA転送とが交互に行われる。
[0048]
コンパニオンチップ3の制御部31は、データの転送回数が、ROM11から読み出す画像データの1行のデータ列の転送に必要な転送回数に達したか否かにより、DMAコントローラ13Bによる各行のデータ列のVRAM15への書き込みが完了したか否かを判定している。書き込みが完了したと判定された場合、制御部31は、レジスタデータメモリ32の書き込み開始アドレスに対応する領域に、次の行の書き込み開始アドレスと同じ列のアドレスを設定する。
[0049]
続いて、制御部31は、DMAコントローラ13Cに、DMA転送開始の制御信号を出力する。これを受けて、DMAコントローラ13Cは、レジスタデータメモリ32のデータを、DMAコントローラ13Bのレジスタ群にDMA転送する。この結果、DMAコントローラ13Bの書き込み開始アドレスレジスタ21に設定されたアドレスは、次の行で書き込み開始アドレスと同列のアドレスに更新される。これにより、次からのバッファ30からVRAM15へのDMA転送は、更新された書き込み開始アドレスから行われるようになる。
[0050]
次に、この実施の形態に係る描画装置100の動作について、図8のシーケンス図を参照して説明する。
[0051]
図8には、CPU10が、ある文字を表示部2の表示画面の所定の位置に表示させる場合の処理シーケンスが示されている。ここでは、16ビット×16ビットの文字の画像データを表示部2の表示画面に表示させる場合について説明する。なお、DMAA、DMAB、DMACは、それぞれ、DMAコントローラ13A、13B、13Cを示している。
[0052]
まず、CPU10は、DMAコントローラ13Aのレジスタ設定を行う(ステップS1)。これにより、ROM11からコンパニオンチップ3のバッファ30へのDMA転送が可能な状態となる。
[0053]
続いて、CPU10は、DMAコントローラ13Cのレジスタ設定を行う(ステップS2)。これにより、コンパニオンチップ3のレジスタデータメモリ32からDMAコントローラ13Bのレジスタ群へのDMA転送が可能な状態となる。
[0054]
続いて、CPU10は、コンパニオンチップ3の制御部31に、表示する画像データの縦横のバイト数や、VRAM15の書き込み開始アドレスなどを含む描画命令を送信する(ステップS3)。
[0055]
この描画命令を受けて、コンパニオンチップ3の制御部31は、レジスタデータメモリ32に、バッファ30のアドレスと、VRAM15の書き込み開始アドレスと、1行分のバイト数(転送回数)とを、レジスタデータメモリ32に設定する(ステップS10)。
[0056]
続いて、制御部31は、DMAコントローラ13CにDMA転送開始の制御信号を出力する(ステップS11)。これにより、レジスタデータメモリ32からDMAコントローラ13Bのレジスタ群へのDMA転送が行われる(ステップS12)。この結果、バッファ30から、VRAM15へのDMA転送が可能となる。
[0057]
続いて、制御部31は、DMAコントローラ13AにDMA転送開始の制御信号を出力し(ステップS13)、DMAコントローラ13BにDMA転送開始の制御信号を出力する(ステップS14)。これにより、ROM11の画像データの先頭アドレスの1バイト分のデータが、コンパニオンチップ3のバッファ30に転送され(ステップS15)、バッファ30に転送されたデータが、VRAM15の書き込み開始アドレスに転送される(ステップS16)。
[0058]
続いて、ROM11の画像データの次のアドレスの1バイト分のデータが、コンパニオンチップ3のバッファ30に転送され(ステップS17)、バッファ30に転送されたデータが、VRAM15の書き込み開始アドレスの次のアドレス(書き込み開始アドレスの右横の位置)に転送される(ステップS18)。
[0059]
これらステップS10乃至S18の処理が1行目の書き込み処理である。
[0060]
制御部31は、この時点で、1行目の書き込みが終了したことを検出し、レジスタデータメモリ32の書き込み開始アドレスを、VRAM15上の次の行で、書き込み開始アドレスと列位置が同じアドレスに更新する(ステップS20)。続いて、制御部31は、DMAコントローラ13CにDMA転送開始の制御信号を出力する(ステップS21)。これにより、レジスタデータメモリ32からDMAコントローラ13Bのレジスタ群へのDMA転送が行われ(ステップS22)、DMAコントローラ13Bの書き込み開始アドレスレジスタ22のアドレスが、次の行の前回の書き込み開始アドレスの同列のアドレスに更新される。
[0061]
続いて、制御部31は、DMAコントローラ13AにDMA転送開始の制御信号を出力し(ステップS23)、DMAコントローラ13BにDMA転送開始の制御信号を出力する(ステップS24)。これにより、ROM11の画像データの3番目のアドレスの1バイト分のデータが、コンパニオンチップ3のバッファ30に転送され(ステップS25)、バッファ30に転送されたデータが、VRAM15の次の行の書き込み開始アドレスと同列のアドレスに転送される(ステップS26)。
[0062]
続いて、ROM11の画像データの4番目のアドレスの1バイト分のデータが、コンパニオンチップ3のバッファ30に転送され(ステップS27)、バッファ30に転送されたデータが、VRAM15のその次のアドレスに転送される(ステップS28)。
[0063]
これらステップS20乃至S28の処理が2行目の書き込み処理である。
[0064]
以降、2行目の書き込み処理と同様にして、3行目乃至16行目の書き込み処理が行われる。
[0065]
16行目の書き込みが完了すると、制御部31は、CPU10に完了通知の信号を出力する(ステップS30)。これにより、文字の画像データがVRAM15に書き込まれ、表示部2の表示画面に、その画像データに基づく文字が表示される。
[0066]
以上詳細に説明したように、この実施の形態によれば、コンパニオンチップ3により、VRAM15への各行のデータ列の書き込みが完了する度に、DMAコントローラ13Cを介して、VRAM15における書き込み開始位置を改行するので、画像データをROM11から読み込んでVRAM15に書き込むのにDMAコントローラ13A、13Bを用いることができる。この結果、フルドット液晶の表示画面に画像を表示する際のCPU10の負荷を軽減することができる。
[0067]
CPU10が、描画装置(リモートコントローラ)100だけでなく、空気調和装置全体を統括制御するものであったり、複数の空気調和装置に跨る協調動作を制御するものである場合には、CPU10の負荷を軽減することにより、それらの制御が円滑に行われるようになる。
[0068]
実施の形態2.
次に、この発明の実施の形態2について説明する。
[0069]
図9には、この実施の形態に係る描画装置100の構成が示されている。図9に示すように、この実施の形態に係る描画装置100では、DMAコントローラ13Cが設けられていない点が、上記実施の形態1に係る描画装置100と異なっている。
[0070]
図10には、この実施の形態に係るコンパニオンチップ3の構成が示されている。図10に示すように、この実施の形態では、コンパニオンチップ3にレジスタデータメモリ32が設けられていない点が、上記実施の形態1と異なっている。
[0071]
この実施の形態では、コンパニオンチップ3の制御部31が、1行分のデータ列が書き込まれる度に、1行分の書き込みの完了通知の信号をCPU10に送信する。CPU10は、1行分の書き込みの完了通知の信号を受信する度に、DMAコントローラ13Bの書き込み開始アドレスレジスタ21へ設定するアドレスを、次の行で最初の書き込み開始アドレスと同列のアドレスに更新する。
[0072]
次に、この実施の形態に係る描画装置100の動作について、図11のシーケンス図を参照して説明する。
[0073]
図11には、CPU10が、ある文字を表示部2の表示画面の所定の位置に表示させる場合の処理シーケンスが示されている。ここでは、16ビット×16ビットの文字の画像データを表示部2の表示画面に表示させる場合について説明する。
[0074]
まず、CPU10は、DMAコントローラ13Aのレジスタ設定を行う(ステップS1)。ROM11からコンパニオンチップ3のバッファ30へのDMA転送が可能な状態となる。
[0075]
続いて、CPU10は、DMAコントローラ13Bのレジスタ設定を行う(ステップS4)。これにより、バッファ30から、VRAM15へのDMA転送が可能となる。
[0076]
続いて、CPU10は、コンパニオンチップ3の制御部31に、表示する画像データの縦横のバイト数を含む描画命令を送信する(ステップS3)。
[0077]
続いて、制御部31は、DMAコントローラ13AにDMA転送開始の制御信号を出力し(ステップS13)、DMAコントローラ13BにDMA転送開始の制御信号を出力する(ステップS14)。これにより、ROM11の画像データの先頭アドレスの1バイト分のデータが、コンパニオンチップ3のバッファ30に転送され(ステップS15)、バッファ30に転送されたデータが、VRAM15の書き込み開始アドレスに転送される(ステップS16)。
[0078]
続いて、ROM11の画像データの次のアドレスの1バイト分のデータが、コンパニオンチップ3のバッファ30に転送され(ステップS17)、バッファ30に転送されたデータが、VRAM15の書き込み開始アドレスの次のアドレス(書き込み開始アドレスの右横の位置)に転送される(ステップS18)。
[0079]
これらステップS13乃至S18の処理が1行目の書き込み処理である。
[0080]
制御部31は、この時点で、1行目の書き込みが終了したことを検出し、1行分のデータの書き込み完了通知の信号をCPU20に出力する(ステップS40)。
[0081]
これを受けて、CPU20は、DMAコントローラ13Bの書き込み開始アドレスを次の行に更新する(ステップS41)。CPU20は、転送開始通知を、制御部31に通知する(ステップS42)。
[0082]
続いて、制御部31は、DMAコントローラ13AにDMA転送開始の制御信号を出力し(ステップS23)、DMAコントローラ13BにDMA転送開始の制御信号を出力する(ステップS24)。これにより、ROM11の画像データの次のアドレスの1バイト分のデータが、コンパニオンチップ3のバッファ30に転送され(ステップS25)、バッファ30に転送されたデータが、VRAM15の次の行の書き込み開始アドレスに転送される(ステップS26)。
[0083]
続いて、ROM11の画像データの次のアドレスの1バイト分のデータが、コンパニオンチップ3のバッファ30に転送され(ステップS27)、バッファ30に転送されたデータが、VRAM15のその次のアドレスに転送される(ステップS28)。
[0084]
これらステップS40乃至S42、S23乃至S28の処理が2行目の書き込み処理である。
[0085]
以降、2行目の書き込み処理と同様にして、3行目乃至16行目の書き込み処理が行われる。
[0086]
16行目の書き込みが完了すると、制御部31は、CPU10に完了通知の信号を出力する(ステップS30)。これにより、文字の画像データがVRAM15に書き込まれ、表示部2の表示画面に、その画像データに基づく文字が表示される。
[0087]
以上詳細に説明したように、この実施の形態においても、コンパニオンチップ3により、VRAM15への各行のデータ列の書き込みが完了する度に、CPU10が、VRAM15における書き込み開始位置を改行する。これにより、画像データをROM11から読み込んでVRAM15に書き込むのにDMAコントローラ13A、13Bを用いることができる。この結果、フルドット液晶の表示画面に画像を表示する際のCPU10の負荷を軽減することができる。
[0088]
この実施の形態では、DMAコントローラ13Cやレジスタデータメモリ32を設ける必要がないので、マイクロコンピュータ1やコンパニオンチップ3の部品点数を少なくすることができる。
[0089]
なお、上記各実施の形態では、DMA転送に先立って、CPU10からコンパニオンチップ3の制御部31へ、画像データの縦、横のバイト数の情報が送信された。しかしながら、他の方法により、制御部21へ画像データの縦、横のバイト数の情報が送信されるようにしてもよい。
[0090]
例えば、図12に示すように、ROM11に記憶される個々の画像データには、ヘッダ情報40が付加されるようにしてもよい。ヘッダ情報40には、その画像データの縦のバイト数(例えば2バイト)、横のバイト数(例えば2バイト)などの情報が記載されている。
[0091]
コンパニオンチップ3の制御部31は、ROM11からDMA転送された上位2バイトをヘッダ情報として読み取り、読み取ったヘッダ情報に基づいて、表示する画像データの各行のデータ列のバイト長(横のバイト長)と、行数(縦のビット長)とを求める。
[0092]
コンパニオンチップ3の制御部31は、求められた横のバイト長に基づいて、レジスタデータメモリ32の転送回数を設定する。そして、DMAコントローラ13CのDMA転送によりDMAコントローラ13Bの転送回数レジスタ23にこの転送回数が設定される。
[0093]
コンパニオンチップ3の制御部31は、3バイト目のデータがROM11からDMA転送されてきた時点で、DMAコントローラ13BにDMA転送開始の制御信号を出力する。これにより、3バイト目以降のデータが、VRAM15にDMA転送されるようにすることができる。
[0094]
なお、行数(縦のビット長)は、画像全ての書き込み完了の判定に用いられる。
[0095]
実施の形態3.
次に、この発明の実施の形態3について説明する。
[0096]
図13には、この実施の形態に係る描画装置100の構成が示されている。図13に示すように、この実施の形態に係る描画装置100は、3つのDMAコントローラ13A乃至13Cの代わりに、1つのDMAコントローラ13Dが設けられている点が、上記実施の形態1に係る描画装置100と異なる。また、コンパニオンチップ3が外部I/F14に接続されていない点も、上記実施の形態1に係る描画装置100と異なる。
[0097]
DMAコントローラ13Dには、読み出し開始アドレスレジスタ21、書き込み開始アドレスレジスタ22、転送回数レジスタ23に加え、繰り返しオフセットレジスタ24及び繰り返しカウンタレジスタ25が設けられている。
[0098]
繰り返しオフセットレジスタ24には、画像データの1行のデータ列の右端のアドレスと、改行後の書き込み開始アドレスとのオフセットが設定される。図14に示すように、画像データ4を書き込む場合には、offset1とoffset2との和がこのオフセットになる。
[0099]
繰り返しカウンタレジスタ25には、画像データの行数(縦のビット数)が設定される。
[0100]
まず、CPU10は、DMAコントローラ13Dの読み出し開始アドレスレジスタ21にROM11の画像データの先頭アドレスを設定し、書き込み開始アドレスレジスタ22に、VRAM15の画像データの書き込み先頭アドレスを設定し、転送回数レジスタ23に画像データの1行分のデータ列のバイト長(1行分のデータ列を転送するのに必要な転送回数)を設定し、さらに、繰り返しオフセットレジスタ24をオフセット(図14参照)に設定し、繰り返しカウンタレジスタ25に行数(画像データの縦のビット数)を設定する。
[0101]
そして、CPU10は、DMAコントローラ13DにDMA転送開始の制御信号を出力する。すると、DMAコントローラ13Dは、ROM11からVRAM15へのDMA転送を開始する。
[0102]
このDMA転送は、ROM11上の画像データの先頭アドレスと、VRAM15の書き込みアドレスとを開始位置として開始される。
[0103]
画像データの1行分のデータが書き込まれると、VRAM15の書き込みアドレスレジスタに繰り返しオフセットレジスタ24に設定されたオフセットが加算されたアドレスが、書き込み開始アドレスレジスタ21に設定されることにより、VRAM15への書き込みアドレスが、次の行の書き込み開始アドレスと同列のアドレスに更新される(図14参照)。そして、更新された書き込み開始アドレスから、データの書き込みが再開される。
[0104]
このような処理を繰り返すことにより、画像データの各行のデータ列が、VRAM15に書き込まれていく。繰り返し数が、繰り返しカウンタレジスタ25に設定された数に到達し、画像データの最後の1行分のデータが書き込まれると、画像データの書き込みが完了したとして、DMA転送が終了する。
[0105]
以上詳細に説明したように、この実施の形態によれば、コンパニオンチップ3を設けなくても、ROM11に記憶された画像データを、VRAM15にDMA転送することにより、表示部2にその画像を表示させることができる。
[0106]
なお、上記各実施の形態では、画像データの単位を画像1文字としたが、本発明はこれには限られない。例えば、図15(A)に示されるように、連続して横方向に並ぶ複数の文字の画像データであっても、VRAM15への書き込みは十分可能である。ここで、最上行1バイトずつのデータを左側からデータD1、D2、D3、D4とする。
[0107]
この場合、図15(B)に示すように、ROM11には、先頭アドレスから、データD1、D2、D3、D4という順で、記憶されるようになる。
[0108]
また、バッファ30への転送元をROM11とはせず、RAM12とするようにしてもよい。この場合、連続して横方向に並ぶ2つの文字の画像データを表示する場合には、CPU10は、DMA転送に先立って、ROM11から2つの文字の画像データを入力する。そして、CPU10は、それぞれの画像データを、図16に示すように、2文字分の1つの画像データに変換してRAM12に格納する。この場合、コンパニオンチップ3のバッファ30への転送元は、RAM12となる。
[0109]
なお、上記各実施の形態に係る描画装置100は、空気調和装置のリモートコントローラであったが、照明装置や他の電気機器のリモートコントローラであってもよい。
[0110]
この発明は、この発明の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、この発明を説明するためのものであり、この発明の範囲を限定するものではない。すなわち、この発明の範囲、実施の形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、この発明の範囲内とみなされる。
[0111]
本出願は、2010年11月1日に出願された、日本国特許出願2010−245743号に基づく。本明細書中に日本国特許出願2010−245743号の明細書、特許請求の範囲、図面全体を参照として取り込むものとする。
Industrial Applicability
[0112]
本発明は、空気調和装置や照明装置などの電気機器のリモートコントローラに好適である。
Reference Signs List
[0113]
1 マイクロコンピュータ
2 表示部
3 コンパニオンチップ
4 画像データ
10 CPU
11 ROM
12 RAM
13A、13B、13C、13D DMAコントローラ
14 外部インターフェイス(I/F)
15 VRAM
16 操作入力インターフェイス(I/F)
17 バス
20 制御部
21 読み出し開始アドレスレジスタ
22 書き込み開始アドレスレジスタ
23 転送回数レジスタ
24 繰り返しオフセットレジスタ
25 繰り返しカウンタレジスタ
30 バッファ
31 制御部
32 レジスタデータメモリ(RDM)
40 ヘッダ情報
100 描画装置
P 位置
Claims
[1]
各行のデータ列が順番に連結されて記憶媒体に記憶された画像情報を読み出して、2次元の画像表示用メモリの所定の領域に書き込むことにより、前記画像情報に基づく画像を表示する描画装置であって、
プロセッサとは独立して、前記記憶媒体に記憶された前記画像情報を、その先頭の読み出し開始位置から所定の単位で順次読み出していく読み出し部と、
前記プロセッサとは独立して、前記読み出し部によって読み出されたデータを、前記画像表示用メモリにおける書き込み開始位置から前記所定の単位で横方向に順次書き込んでいく書き込み部と、
前記書き込み部による前記各行のデータ列の書き込みが完了する度に、前記画像表示用メモリにおける前記書き込み開始位置を、次の行の同じ列の位置に更新する書き込み位置更新部と、
を備え、
前記プロセッサと、前記記憶媒体と、前記画像表示用メモリと、前記読み出し部と、前記書き込み部とが、マイクロコンピュータに実装され、
前記記憶媒体と前記画像表示用メモリとの間でデータの入出力が可能なバッファを有するデータ中継部が前記マイクロコンピュータの外部にさらに設けられ、
前記読み出し部は、
前記記憶媒体における前記読み出し開始位置と、前記画像情報全体の転送に必要な転送回数と、前記バッファにおける書き込み位置とがレジスタに設定される第1のDMAコントローラであり、
前記書き込み部は、
前記バッファにおける読み込み位置と、前記画像情報の各行のデータ列の転送に必要な転送回数と、前記画像表示用メモリの前記書き込み開始位置とがレジスタに設定される第2のDMAコントローラである、
描画装置。
[2]
前記データ中継部が保持するデータを、前記第2のDMAコントローラのレジスタに転送する第3のDMAコントローラをさらに備え、
前記データ中継部は、
前記バッファへのデータの転送回数が、前記画像情報の各行のデータ列の転送に必要な転送回数に達する度に、前記第3のDMAコントローラを用いて、前記第2のDMAコントローラにおける前記書き込み開始位置を、次の行の同じ列の位置に更新させる、
請求項1に記載の描画装置。
[3]
前記データ中継部は、
前記バッファへのデータの転送回数が、前記画像情報の各行のデータ列の転送に必要な転送回数に達する度に、前記プロセッサに完了信号を出力し、
前記書き込み位置更新部としての前記プロセッサは、
前記完了信号を入力したときに、前記第2のDMAコントローラにおける前記書き込み開始位置を、次の行の同じ列の位置に更新する、
請求項1に記載の描画装置。
[4]
前記記憶媒体には、前記画像情報のヘッダ部分に、前記画像情報の各行のデータ列の長さに関する情報が記憶されており、
前記データ中継部は、前記バッファに書き込まれた前記画像情報のヘッダ部分から各行のデータ列の長さに関する情報を抽出し、
抽出された情報を用いて、前記バッファへのデータの転送回数が、前記画像情報の各行のデータ列の転送に必要な転送回数に達したことを検出する、
請求項2又は3に記載の描画装置。
[5]
前記記憶媒体は、
横書きの連続文字を構成する画像を前記画像情報として記憶する、
請求項1乃至4のいずれか一項に記載の描画装置。
[6]
他の記憶媒体に記憶された複数の文字各々の前記画像情報を読み込んで、横書きの連続文字を構成する画像を前記画像情報として前記記憶媒体に記憶する変換部をさらに備える、
請求項1乃至4のいずれか一項に記載の描画装置。
[7]
マイクロコンピュータに実装された記憶媒体から、各行のデータ列が順番に連結されて記憶された画像情報を読み出して、前記マイクロコンピュータに実装された2次元の画像表示用メモリの所定の領域に書き込むことにより、前記画像情報に基づく画像を表示する描画方法であって、
前記マイクロコンピュータに実装されたプロセッサとは独立して動作し、前記記憶媒体における読み出し開始位置と、前記画像情報全体の転送に必要な転送回数と、前記マイクロコンピュータの外部に設けられたデータ中継部が有し前記記憶媒体と前記画像表示用メモリとの間でデータの入出力が可能なバッファにおける書き込み位置とがレジスタに設定される第1のDMAコントローラを用いて、前記記憶媒体に記憶された前記画像情報を、その先頭の読み出し開始位置から所定の単位で順次読み出して、前記データ中継部のバッファに転送する読み出し工程と、
前記プロセッサとは独立して動作し、前記バッファにおける読み込み位置と、前記画像情報の各行のデータ列の転送に必要な転送回数と、前記画像表示用メモリの前記書き込み開始位置とがレジスタに設定される第2のDMAコントローラを用いて、前記読み出し工程において読み出され前記データ中継部のバッファに格納されたデータを、前記画像表示用メモリにおける書き込み開始位置から前記所定の単位で横方向に順次書き込んでいく書き込み工程と、
前記書き込み工程における前記各行のデータ列の書き込みが完了する度に、前記画像表示用メモリにおける前記書き込み開始位置を、次の行の同じ列の位置に更新する書き込み位置更新工程と、
を含む描画方法。
[8]
マイクロコンピュータに実装された記憶媒体から、各行のデータ列が順番に連結されて記憶された画像情報を読み出して、前記マイクロコンピュータの外部に設けられ前記記憶媒体と前記マイクロコンピュータに実装された画像表示用メモリとの間でデータの入出力が可能なバッファを有するデータ中継部を介して、前記画像表示用メモリの2次元の所定の領域に書き込むことにより、前記画像情報に基づく画像を表示する描画装置を制御するコンピュータを、
前記マイクロコンピュータのプロセッサとは独立して、前記記憶媒体に記憶された前記画像情報を、その先頭の読み出し開始位置から所定の単位で順次読み出していく読み出し手段、
前記プロセッサとは独立して、前記読み出し手段によって読み出されたデータを、前記画像表示用メモリにおける書き込み開始位置から前記所定の単位で横方向に順次書き込んでいく書き込み手段、
前記書き込み手段による前記各行のデータ列の書き込みが完了する度に、前記画像表示用メモリにおける前記書き込み開始位置を、次の行の同じ列の位置に更新する書き込み位置更新手段、
として機能させ、
前記読み出し手段は、
前記記憶媒体における前記読み出し開始位置と、前記画像情報全体の転送に必要な転送回数と、前記バッファにおける書き込み位置とがレジスタに設定される第1のDMAコントローラを用いて読み出しを行い、
前記書き込み手段は、
前記バッファにおける読み込み位置と、前記画像情報の各行のデータ列の転送に必要な転送回数と、前記画像表示用メモリの前記書き込み開始位置とがレジスタに設定される第2のDMAコントローラを用いて書き込みを行う、
プログラム。
Drawings