JP2004259093A - データ処理装置およびデータ処理のプログラム - Google Patents
データ処理装置およびデータ処理のプログラム Download PDFInfo
- Publication number
- JP2004259093A JP2004259093A JP2003050401A JP2003050401A JP2004259093A JP 2004259093 A JP2004259093 A JP 2004259093A JP 2003050401 A JP2003050401 A JP 2003050401A JP 2003050401 A JP2003050401 A JP 2003050401A JP 2004259093 A JP2004259093 A JP 2004259093A
- Authority
- JP
- Japan
- Prior art keywords
- data
- storage area
- voltage
- storage
- steady state
- 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.)
- Granted
Links
Images
Abstract
【解決手段】CPU1は、電圧が定常状態より低い過渡状態に変化する直前には、フラッシュメモリ6における2つの記憶エリアの中からデータが消去されている記憶エリアを指定して、RAM5のデータを読み出して当該指定した記憶エリアに書き込み、電圧が過渡状態から定常状態に変化した直後には、指定した記憶エリアのデータを読み出して再びRAM5に書き込み、電圧が過渡状態から定常状態に変化した後、30秒が経過したときには、フラッシュメモリ6において指定した記憶エリアとは異なる記憶エリアのデータを消去する。
【選択図】図1
Description
【発明の属する技術分野】
本発明は、データ処理装置およびデータ処理のプログラムに関する。
【0002】
【従来の技術】
データ処理装置の中には、供給されている電源の電圧の低下が発生したときに、DRAMなどの揮発性のメモリに記憶されているデータの消失を防止するために、SRAMやフラッシュメモリなどの不揮発性メモリにそのデータを転送してセーブするバックアップ機能をもったものがある。例えば、電子鍵盤機器やイコライザ機器などのように、楽音信号に関与するデータを処理するデータ処理装置においては、電源の電圧の低下が発生したときには、機器基本設定のパラメータや音色設定のパラメータなどの動作条件の設定状態のデータ、および、自動演奏のシーケンスデータなどを不揮発性メモリにバックアップする処理を行なっている。
【0003】
従来のデータ処理装置の一例として、動作条件の設定状態をバックアップする方法を改良した電子機器が提案されている。この提案によれば、機器の動作条件を簡単に設定することができ、設定された機器設定情報を安価な情報保存手段を用いて確実に保存・再現することができ、しかも、保存動作にタイムラグを感じないようにしている。
そのために、設定されるべき動作条件を表す機器設定情報を入力する手段と、入力された機器設定情報に基づいて、複数の動作条件から成る最新の機器設定情報を生成する手段と、最新の機器設定情報をセーブする指示を入力する手段と、入力されたセーブの指示に応じて、同一の最新の機器設定情報を、電源の非供給時にも記憶内容の維持が可能なバックアップメモリの2つの記憶ブロックに記憶させる手段とを具備する構成になっている。
この場合において、設定されるべき動作条件を表す機器設定情報を入力する手段と、機器設定情報が入力される度に、入力された機器設定情報を、順次、電源の供給時にも記憶内容の維持が可能なバックアップメモリに、追加的に記憶させる手段と、特定のタイミングにおいて、バックアップメモリに記憶された機器設定情報に基づき、複数の動作条件を表す最新の機器設定情報を生成する設定情報処理手段とを具備する構成になっている(例えば、特許文献1。)。
【0004】
【特許文献1】
特開2001−249852号公報(段落番号「0004」、「0005」)
【0005】
【発明が解決しようとする課題】
しかしながら、上記従来のデータ処理装置においては、新たな機器設定情報が入力される度に、それまでの機器設定情報をバックアップメモリとしてのフラッシュメモリに履歴データとして残した状態で、新たに入力された機器設定情報をさらに追加情報としてバックアップメモリに記憶するので、バックアップメモリの容量が大きくなり、製品の価格の上昇を招くとともに、小型軽量化が図れないという課題があった。
また、バックアップメモリに用いるフラッシュメモリにデータを書き込むためには、あらかじめ書込みエリアを消去しておく必要があるが、このデータ消去処理に多大な時間がかかってしまう上に、2つのバックアップメモリに同じ機器設定情報を記憶するので、機器設定情報の書込み処理のために、他の処理が大きく制限されてしまうという課題があった。特に、上記特許文献1における実施の形態に記載されている電子楽器のように、楽音信号の発生に関与する音色、効果などのパラメータ情報からなる機器設定情報を処理するデータ処理装置においては、機器設定情報の書込み処理のために発音処理が間に合わず、音切れやノイズが発生するおそれがある。
また、上記特許文献1における実施の形態の電子楽器においては、設定操作子により入力されてきた現状の機器設定情報を確定し、最新の設定状態のセーブを指示するために、セットスイッチを操作する必要がある。このセットスイッチを操作しない状態で、電源がオフになったり、何らかの原因で電圧が低下したときには、最新の機器設定情報は消滅してしまうという課題があった。
【0006】
本発明は、上記従来の技術の課題を解決するためのものであり、供給されている電源の電圧の低下が発生したときに、DRAMなどのメモリに記憶されているデータの消失を防止するためのバックアップ用のメモリの容量を少なくして、製品の価格の低減と小型軽量化とを図り、そのバックアップ用のメモリにデータを書き込むための時間を少なくして、他の処理が制限されるのを回避し、さらに、セットスイッチなどの操作を必要としなくても、電源がオフになったり、何らかの原因で電圧が低下したときは、自動的にデータのバックアップが可能なデータ処理装置およびデータ処理のプログラムを提供することを目的とする。
【0007】
【課題を解決するための手段】
請求項1に記載のデータ処理装置は、供給される電源の電圧が所定範囲の定常状態であるか又は所定範囲より低い過渡状態であるかを検出する電圧検出手段(実施形態においては、図1の電源電圧監視部8に相当する)と、電源の電圧が定常状態のときにデータの正常な書き込みおよび読み出しが可能な第1の記憶手段(実施形態においては、図1のRAM5に相当する)と、電源の電圧の状態にかかわらず書き込まれているデータを保持することが可能な複数の記憶エリア(実施形態においては、図2のBlockA、BlockB、WaveBlockに相当する)を有する第2の記憶手段と、電圧検出手段によって検出された電圧が定常状態から過渡状態に変化する直前には第2の記憶手段における複数の記憶エリアの中からデータが消去されている記憶エリアを指定して第1の記憶手段のデータを読み出して当該指定した記憶エリア(実施形態においては、例えば、図2のBlockAに相当する)に書き込み、電圧検出手段によって検出された電圧が過渡状態から定常状態に変化した直後には指定した記憶エリアのデータを読み出して再び第1の記憶手段に書き込むデータ転送手段(実施形態においては、図1のCPU1の機能に相当する)と、電圧検出手段によって検出された電圧が過渡状態から定常状態に変化した後に第2の記憶手段においてデータ転送手段が指定した記憶エリアとは異なる記憶エリア(実施形態においては、例えば、BlockBに相当する)のデータを消去するデータ消去手段(実施形態においては、図1のCPU1の機能に相当する)とを備えた構成になっている。
【0008】
この場合において、データ転送手段は、第1の記憶手段のデータとともに特定の設定情報(実施形態においては、図2のKeywordに相当する)を指定した記憶エリアに書き込み、特定の設定情報が有効な場合に指定した記憶エリアのデータを読み出して第1の記憶手段に書き込み、設定情報が無効である場合には他の記憶手段(実施形態においては、図1のROM4に相当する)にあらかじめ記憶されているデフォルトのデータ(実施形態においては、工場出荷時のデータに相当する)を読み込むように構成してもよい。
【0009】
また、データ消去手段は、メインルーチンの処理(実施形態においては、図3のフローチャートの処理に相当する)とは別系統のバックグラウンドの処理で異なる記憶エリアのデータを消去するように構成してもよい。
【0010】
また、データ消去手段は、異なる記憶エリアのデータを消去中において第2の記憶手段に対するアクセスが発生したときには当該データ消去を中断し当該アクセスが終了したときには当該データ消去を再開するように構成してもよい。
【0011】
また、データ消去手段は、電圧検出手段によって検出された電圧が過渡状態から定常状態に変化したときから所定時間(実施形態においては、30秒に相当する)が経過した後に異なる記憶エリアのデータを消去するように構成してもよい。
【0012】
また、データ転送手段が指定した記憶エリアへのデータを書き込みが完了した後に電源の供給停止処理を行なう電源制御手段(実施形態においては、図1のCPU1の機能に相当する)を備えた構成してもよい。
【0013】
また、操作に応じて電源の供給および供給停止を指示する操作手段(実施形態においては、図1のスイッチ部3の電源スイッチに相当する)をさらに備え、データ転送手段は、操作手段から供給停止の指示を受けたときには電圧検出手段による検出を待つことなく第2の記憶手段における複数の記憶エリアの中からデータが消去されている記憶エリアを指定して第1の記憶手段のデータを読み出して当該指定した記憶エリアに書き込むように構成してもよい。
【0014】
また、データ転送手段は、電圧検出手段によって検出された電圧が過渡状態から定常状態に変化した直後にはデータを書き込んだ複数の記憶エリア(実施形態の変形例におけるフラッシュメモリにおける複数の記憶エリアに相当する)の中で最新のデータを書き込んだ記憶エリアを指定してその最新のデータを読み出して再び第1の記憶手段に書き込むように構成してもよい。
【0015】
また、第1の記憶手段と第2の記憶手段との間においてデータ転送手段が読み出しおよび書込みを行なうデータは、楽音信号の発生に関与するデータ(実施形態においては、図2のSetupParam、ToneParam、SeqDataに相当する)であるように構成してもよい。
【0016】
本発明のデータ処理のプログラムは、供給される電源の電圧が所定範囲の定常状態であるか又は所定範囲より低い過渡状態であるかを検出する第1のステップ(実施形態においては、図9のステップSG2に相当する)と、第1のステップによって検出された電圧が定常状態から過渡状態に変化する直前には電源の電圧が定常状態のときにデータの正常な書き込みおよび読み出しが可能な第1の記憶手段(実施形態においては、図1のRAM5に相当する)のデータを読み出して電源の電圧の状態にかかわらず書き込まれているデータを保持することが可能な複数の記憶エリアを有する第2の記憶手段(実施形態においては、図1のフラッシュメモリ6に相当する)においてデータが消去されている記憶エリアを指定して当該指定した記憶エリアに書き込む第2のステップ(実施形態においては、図8のステップSF2に相当する)と、第1のステップによって検出された電圧が過渡状態から定常状態に変化した直後には指定した記憶エリアのデータを読み出して再び第1の記憶手段に書き込む第3のステップ(実施形態においては、図4のステップSB7に相当する)と、第1のステップによって検出された電圧が過渡状態から定常状態に変化した後に第2の記憶手段において第2のステップによって指定された記憶エリアとは異なる記憶エリアのデータを消去する第4のステップ(実施形態においては、図7のステップSE4に相当する)とを実行する構成になっている。
【0017】
この場合において、第1の記憶手段と第2の記憶手段との間において第2のステップおよび第3のステップが読み出しおよび書込みを行なうデータは、楽音信号の発生に関与するデータ(実施形態においては、図2のSetupParam、ToneParam、SeqDataに相当する)であるように構成してもよい。
【0018】
【発明の実施の形態】
以下、本発明によるデータ処理装置の実施形態について、電子鍵盤機器を例に採って、図を参照して説明する。
図1は、実施形態における電子鍵盤機器のシステム構成を示すブロック図である。この図において、CPU1は、システムバスを介して、鍵盤2、スイッチ部3、ROM4、RAM5、フラッシュメモリ6、表示部7、電源電圧監視部8、および楽音発生部9に接続され、これら各部との間で、コマンドおよびデータを授受しながら、この電子鍵盤機器全体を制御する。
【0019】
鍵盤2は、押鍵および離鍵の演奏に応じて、ノートオンやベロシティ、およびノートオフのデータをCPU1に入力する。
スイッチ部3は、電源をオン/オフする電源スイッチ、機器基本の設定スイッチ、音色の設定スイッチ、シーケンスデータによる自動演奏を行う自動演奏のスタート/ストップスイッチなどで構成され、操作に応じてオン/オフの状態をCPU1に入力する。なお、電源をオフにするには、電源スイッチの操作による他、CPU1の電源オフ処理によっても可能である。
【0020】
ROM4は、機器基本設定のパラメータ、音色設定のパラメータ、シーケンスデータなどのを処理するデータ処理、鍵盤2の演奏によるデータを処理する鍵盤処理、演奏に応じて楽音を発生するための波形データの処理、およびその他の処理をCPU1が実行するためのプログラムや、起動時のイニシャライズにおけるデフォルトのデータなどをあらかじめ記憶している。
RAM5は、CPU1によって処理される各種のデータを一時的に記憶するとともに、プログラムの実行に必要な各種のレジスタやフラグのエリアが設けられている。なお、RAM5は、供給されている電源が所定範囲の定常状態の場合にデータの正常な書込みおよび読み出しが可能なDRAMなどの揮発性メモリで構成されている。
フラッシュメモリ6は、電源オフの状態でもデータの保持が可能なバックアップ用の不揮発性のメモリであり、RAM5の一部のデータをバックアップするとともに、楽音信号を生成するための波形データを記憶している。バックアップするデータの内容については後述する。
【0021】
表示部7は、機器基本の設定状態や音色の設定状態などの状態、操作を促すメッセージ、自動演奏曲の楽譜データなどを表示する。
電源電圧監視部8は、供給される電源の状態を監視して、検出した電圧の状態をCPU1に入力する。
楽音生成部9は、CPU1の発音指示(ノートオンコマンド)および波形データに応じて、楽音信号を生成してD/A変換回路10に出力する。D/A変換回路10は、その楽音信号をディジタルからアナログに変換し、アンプ11を介してスピーカ12に供給して発音させ、CPU1の消音指示(ノートオフコマンド)に応じて発音を停止させる。
【0022】
図2は、図1におけるフラッシュメモリ6の記憶エリアの構成、および、各記憶エリアに書き込まれるデータを示す図である。フラッシュメモリ6は、BlockA、BlockB、WaveBlockからなる3つのブロックの記憶エリアで構成されている。BlockAおよびBlockBのそれぞれには、下記の5種類のデータが書き込まれる。
【0023】
すなわち、機器基本設定のデータであるSetupParam、音色設定のデータであるToneParam、自動演奏のシーケンスデータであるSeqData、BlockA、BlockBのどちらに最新のデータが書き込まれているかを判別するための、4バイトからなるシリアル番号のデータであるSerial、BlockAおよびBlockBの記憶内容が有効かどうかを判定するための、4バイトのデータであるKeywordの5種類のデータが書き込まれる。
また、WaveBlockには、楽音信号を生成するための波形データであるWaveDataがあらかじめ書き込まれている。
【0024】
BlockAおよびBlockBのデータのうち、SetupParam、ToneParam、SeqDataについては、後述するように、電源オン/オフ時に、RAM5との間で読み書きされるバックアップ対象のデータである。これに対して、WaveBlockのWaveDataは、電源オン/オフ時のRAMとの間の読み書きは行なわれない。なお、図には示さないが、工場出荷時などの初期状態のために、SetupParam、ToneParam、SeqDataのデフォルトのデータがROM4に記憶されている。
【0025】
次に、図1の電子鍵盤機器の動作について、図3ないし図10に示すフローチャートに基づいて説明する。
図3は、CPU1のメインルーチンのフローチャートであり、初期化処理(ステップSA1)の後、スイッチ処理(ステップSA2)、鍵盤処理(ステップSA3)、表示処理(ステップSA4)、電源オフ処理(ステップSA5)、その他の処理(ステップSA6)を繰り返し実行する。
【0026】
図4は、メインルーチンにおけるステップSA1の初期化処理のフローチャートである。電源スイッチがオンにされたときは、まず、BlockAのSerial、BlockAのKeyword、BlockBのSerial、BlockBのKeywordを、それぞれ変数SA、KA、SB、KBにストアする(ステップSB1)。次に、KAの値が正常か否かを判別する(ステップSB2)。KAの値が正常である場合には、さらにKBの値が正常であるか否かを判別する(ステップSB3)。
【0027】
KBの値が正常である場合、すなわち、BlockAおよびBlockBのKeywordが両方とも正常である場合には、SAの値がSBの値より大きいか否かを判別する(ステップSB4)。SAの値がSBの値より大きい場合には、データ消去の記憶エリアを指定する変数EraseBlockに「1」をセットし、データ読み出しの記憶エリアを指定する変数ReadBlockに「0」をセットする(ステップSB5)。ここで、「0」はBlockAを示し、「1」はBlockBを示すインデックスである。すなわち、この場合には、BlockBをデータ消去の記憶エリアに指定し、BlockAをデータ読み出しの記憶エリアに指定する。
なお、BlockAおよびBlockBのSerialの値については、後述する図8の書き込み処理において説明する。
【0028】
ステップSB3において、KBの値が正常でなく、KAの値のみが正常である場合にも、EraseBlockに「1」をセットし、ReadBlockに「0」をセットして(ステップSB5)、BlockBをデータ消去の記憶エリアに指定し、BlockAをデータ読み出しの記憶エリアに指定する。
ステップSB4において、SBの値がSAの値より大きい場合には、EraseBlockに「0」をセットし、ReadBlockに「1」をセットする(ステップSB6)。すなわち、BlockAをデータ消去の記憶エリアに指定し、BlockBをデータ読み出しの記憶エリアに指定する。
【0029】
ステップSB5又はステップSB6において、EraseBlockおよびReadBlockのそれぞれに「1」又は「0」をセットした後は、ReadBlockのSetupParam、ToneParam、SeqDataを読み出して、RAM5に転送して書き込む(ステップSB7)。
【0030】
ステップSB2において、KAの値が正常でない場合には、KBの値が正常であるか否かを判別する(ステップSB8)。KBの値が正常である場合には、EraseBlockに「0」をセットし、ReadBlockに「1」をセットする(ステップSB6)。すなわち、BlockAをデータ消去の記憶エリアに指定し、BlockBをデータ読み出しの記憶エリアに指定する。そして、ReadBlockのSetupParam、ToneParam、SeqDataを読み出して、RAM5に転送して書き込む(ステップSB7)。
【0031】
ステップSB8において、KBの値が正常でない場合には、EraseBlockに「0」をセットし、ReadBlockに「1」をセットする(ステップSB9)。ただし、この場合には、BlockAおよびBlockBのKeywordが両方とも正常でないので、この2つの記憶エリアのデータは正常でない可能性がある。この場合には、ROM4に記憶されている工場出荷時のデフォルトのSetupParam、ToneParam、SeqDataを読み出して、RAM5に転送して書き込む(ステップSB10)。
【0032】
ステップSB7又はステップSB10において、SetupParam、ToneParam、SeqDataをRAM5に転送した後は、データ消去の待ち時間の変数EraseWaitTimerに「3000」の数値をセットし、フラッシュメモリ6の状態を表す変数FlashStatusに、データ消去のリクエスト中を表すEraseReqをセットし、機器の電源を切断するリクエスト状態を表す変数PowerOffStatusにNop(なにもしない状態)をセットする(ステップSB11)。次に、その他の初期化処理を行い(ステップSB12)、図3のメインルーチンに戻る。
【0033】
図5は、フラッシュメモリ制御タイマ処理のフローチャートであり、10ms毎のタイマインタラプトに応じて実行される。まず、EraseWaitTimerの値が「0」より大きいか否かを判別し(ステップSC1)、「0」より大きい場合には、EraseWaitTimerの値を「1」だけデクリメントする(ステップSC2)。EraseWaitTimerの初期値は、図4のステップSB11において「3000」にセットされている。この値がタイマインタラプトに応じて10ms毎に「1」だけデクリメントされる。したがって、EraseWaitTimerに初期値がセットされた後、30秒が経過するとEraseWaitTimerの値が「0」に達することになる。
【0034】
ステップSC2においてEraseWaitTimerの値をデクリメントした後、又は、ステップSC1においてEraseWaitTimerの値が「0」に達しているときは、電源オフ準備処理を実行する(ステップSC3)。この後、消去処理(ステップSC4)、書き込み処理(ステップSC5)を実行して、図3のメインルーチンに戻る。
【0035】
図6は、図5のフラッシュメモリ制御タイマ処理におけるステップSC3の電源オフ準備処理のフローチャートである。まず、PowerOffStatusがWait(切断待ち状態)であるか否かを判別する(ステップSD1)。PowerOffStatusがWaitでない場合には、このフローを終了するが、PowerOffStatusがWaitである場合には、EraseWaitTimerの値が「0」に達しているか否かを判別する(ステップSD2)。この値が「0」に達している場合、すなわち、図4の初期化処理の時から30秒が経過したときには、フラッシュメモリ6の状態を表す変数FlashStatusがNop(なにもしない状態)であるか否かを判別する(ステップSD3)。すなわち、フラッシュメモリ6のデータ消去が完了したか否かを判別する。FlashStatusがNopでない場合には、フラッシュメモリ6のデータ消去が完了していないので、このフローを終了して、データ消去の完了を待つ。FlashStatusがNopである場合には、フラッシュメモリ6のデータ消去が完了しているので、PowerOffStatusにReq(電源切断リクエスト中)をセットする(ステップSD4)。そして、このフローを終了する。
【0036】
ステップSD2において、EraseWaitTimerの値が「0」より大きい場合、すなわち、電源の切断待ち状態で、かつ、図4の初期化処理の時から30秒が経過していない場合には、PowerOffStatusにReady(電源切断準備完了)をセットして(ステップSD5)、このフローを終了する。
【0037】
図7は、図5のフラッシュメモリ制御タイマ処理におけるステップSC4の消去処理のフローチャートである。このフローでは、FlashStatusの状態がEraseReq(消去リクエスト中)、EraseExec(消去実行中)、ErasePend(消去中断中)、Nop(なにもしない状態)のいずれであるかを判別し(ステップSE1)、その判別結果に応じて処理が分岐する。
【0038】
FlashStatusがEraseReqである場合には、EraseWaitTimerの値が「0」に達したか否かを判別する(ステップSE2)。この値が「0」である場合には、フラッシュメモリ6がアクセスされて、WaveBlockの記憶エリアのWaveDataが読み出されて発音中であるか否かを判別する(ステップSE3)。発音中でない場合には、EraseBlockのデータ消去を開始し、FlashStatusにEraseExecをセットする(ステップSE4)。
【0039】
ステップSE2において、EraseWaitTimerの値が「0」に達していない場合には、誤って電源がオンされて、すぐに(30秒が経過する前に)再び電源がオフされる可能性があるので、フラッシュメモリ6のデータ消去を行なわず、このフローを終了する。また、ステップSE3において、WaveDataが読み出されて発音中である場合には、フラッシュメモリ6にアクセスできないので、フラッシュメモリ6のデータ消去を行なわず、このフローを終了する。
【0040】
ステップSE1において、FlashStatusがEraseExecである場合には、EraseBlockのデータ消去が終了したか否かを判別する(ステップSE5)。EraseBlockのデータ消去が終了している場合には、FlashStatusをNopに変更して(ステップSE6)、このフローを終了する。EraseBlockのデータ消去が終了していない場合には、FlashStatusを変更することなく、このフローを終了する。
【0041】
ステップSE1において、FlashStatusがErasePendである場合には、フラッシュメモリ6のWaveDataが読み出されて発音中であるか否かを判別する(ステップSE7)。発音中でない場合には、EraseBlockのデータ消去を再開し、FlashStatusをEraseExecに変更する(ステップSE8)。そして、このフローを終了する。一方、フラッシュメモリ6のWaveDataが読み出されて発音中である場合には、FlashStatusを変更することなく、このフローを終了する。
【0042】
図8は、図5のフラッシュメモリ制御タイマ処理におけるステップSC5の書き込み処理のフローチャートである。まず、PowerOffStatusがReq(電源切断リクエスト中)であるか否かを判別する(ステップSF1)。PowerOffStatusがReqでない場合には、このフローを終了するが、Reqである場合には、RAM5のSetupParam、ToneParam、SeqDataを読み出して、EraseBlockに書き込む(ステップSF2)。
【0043】
次に、ReadBlockのKeywordが正常であるか否かを判別する(ステップSF3)。Keywordが正常である場合には、ReadBlockのデータが正常であるので、ReadBlockのSerialの値に「1」を加算した値をEraseBlockのSerialにセットする(ステップSF4)。一方、ReadBlockのKeywordが正常でない場合には、EraseBlockのSerialに「1」をセットする(ステップSF5)。
【0044】
例えば、ReadBlockがBlockB、EraseBlockがBlockAとした場合を想定する。まず、ReadBlockのKeywordが正常な場合には、ReadBlockのSerialも正常であるとみなすことができる。そして、その値が仮に「100」であるとすると、EraseBlockのSerialを「100」に「1」を加算した「101」とする。その結果、次の電源オンにおける図4の初期化処理において、SA=「101」、SB=「100」となり、ステップSB4からステップSB5に進み、Serialの値の大きなBlockAが今度はReadBlockとなる。
【0045】
一方、ReadBlockのKeywordが正常でない場合、例えば、工場出荷後の最初の電源オン時(図4のステップSB9)の後でこの経路を通るような場合には、ReadBlockのSerialの値は正常ではないと判定されるので、EraseBlockのSerialを「1」にする。この結果、その後の電源オンにおいて、図4のフローでKAが正常、KBが異常と判定されるので、ステップSB3からステップSB5に進み、Keywordが正常なBlockAがReadBlockとなる。それ以降においては、Keywordの正常なBlockAのSerialが「1」となる状態を基準として、BlockBのSerialが「2」、BlockAのSerialが「3」……と、交互に値が変化してゆく。
【0046】
ステップSF4又はステップSF5において、EraseBlockのSerialに値をセットした後は、KeywordをEraseBlockに書き込む(ステップSF6)。次に、PowerOffStatusにReady(電源切断準備完了)をセットして(ステップSF7)、このフローを終了する。
【0047】
図9は、図3のメインルーチンにおけるステップSA5の電源オフ処理のフローチャートである。このフローでは、PowerOffStatusがNopであるか、Readyであるか、その他(Wait)であるかを判別する(ステップSG1)。PowerOffStatusがNopである場合には、電源電圧監視部8からの情報により電圧降下があるか否かを判別する(ステップSG2)。電圧降下がある場合には、PowerOffStatusをWaitに変更して(ステップSG3)、図3のメインルーチンに戻る。
【0048】
ステップSG2において、電圧降下がない場合には、スイッチ部3の電源スイッチによって電源切断操作があるか否かを判別する(ステップSG4)。電源切断操作があったときは、PowerOffStatusをWaitに変更して(ステップSG3)、図3のメインルーチンに戻る。電源切断操作がない場合には、PowerOffStatusを変更することなく、図3のメインルーチンに戻る。
【0049】
ステップSG1において、PowerOffStatusがReadyである場合には、電源切断処理を行なって(ステップSG5)、図3のメインルーチンに戻る。すなわち、フラッシュメモリ制御タイマ処理の電源オフ準備処理において、PowerOffStatusにReadyがセットされた場合には、この電源オフ処理において電源を切断する。
【0050】
図10は、図3のメインルーチンにおけるステップSA3の鍵盤処理のフローチャートである。このフローでは、キーオンがあるか否かを判別する(ステップSH1)。すなわち、鍵盤2が押鍵されたか否かを判別する。キーオンがあったときは、フラッシュメモリ6の記憶エリアWaveBlockの波形データであるWaveDataを楽音信号の生成のために使用するか否かを判別する(ステップSH2)。WaveDataを使用する場合には、FlashStatusがEraseExec(データ消去実行中)であるか否かを判別する(ステップSH3)。FlashStatusがEraseExecである場合には、WaveDataを読み出せないので、EraseBlockのデータ消去を中断して、FlashStatusをErasePendに変更する(ステップSH4)。
【0051】
FlashStatusをErasePendに変更した後、又は、ステップSH2において、WaveDataを使用していない場合、若しくは、ステップSH3において、FlashStatusがEraseExecでない場合には、発音処理を実行する(ステップSH5)。発音処理の後、又は、ステップSH1において、キーオンがない場合には、その他の鍵盤処理、例えば、離鍵によるキーオフ処理などを行なって(ステップSH6)、図3のメインルーチンに戻る。
【0052】
以上のように、この実施形態によれば、CPU1は、電源電圧監視部8によって検出された電圧が定常状態から過渡状態に変化する直前には、フラッシュメモリ6における2つの記憶エリアであるBlockA、BlockBの中からデータが消去されている記憶エリアを指定して、RAM5のデータを読み出して当該指定した記憶エリアに書き込み、電源電圧監視部8によって検出された電圧が過渡状態から定常状態に変化した直後には、指定した記憶エリアのデータを読み出して再びRAM5に書き込み、電源電圧監視部8によって検出された電圧が過渡状態から定常状態に変化した後に、30秒が経過したときには、フラッシュメモリ6において指定した記憶エリアとは異なる記憶エリアのデータを消去するので、操作に応じて逐次フラッシュメモリにデータを書き込む従来の技術に比べて、操作性を改善でき、追記用の記憶エリアも不要となり、バックアップ用のメモリの容量およびデータを書き込むための時間を少なくできるとともに、電源オフや電圧低下のときには自動的にデータのバックアップができる。
【0053】
また、上記実施形態によれば、CPU1は、RAM5のSetupParam、ToneParam、SeqDataのデータおよびKeywordを、フラッシュメモリ6の指定した記憶エリア(例えば、BlockA)に書き込み、Keywordが有効な場合に指定した記憶エリアであるBlockAのSetupParam、ToneParam、SeqDataのデータを読み出して、RAM5に書き込み、Keywordが無効である場合には、ROM4のデフォルトのデータすなわち、工場出荷時のデータを読み込むので、RAM5からフラッシュメモリ6に転送したSetupParam、ToneParam、SeqDataのデータが正常である場合に、そのデータをRAM5に復帰させることにより、データ転送の誤りを防止することができる。
【0054】
また、上記実施形態によれば、CPU1は、メインルーチンの処理とは別系統のバックグラウンドの処理でフラッシュメモリ6の記憶エリアのデータを消去するので、多くの時間を必要とするデータ消去処理によって、メインルーチンの処理が制限されることがない。
【0055】
また、上記実施形態によれば、CPU1は、フラッシュメモリ6の記憶エリアのデータを消去中において、フラッシュメモリ6へのアクセスが発生したときには、そのデータ消去を中断し、そのアクセスが終了したときにはデータ消去を再開するので、フラッシュメモリ6のデータ消去中に、鍵盤2が押鍵されてノートオンコマンドによる発音処理を行なう場合には、データ消去を中断して、フラッシュメモリ6のWaveDataの読み出しを可能にして発音処理を優先させ、音切れやノイズの発生を防止できる。
【0056】
また、上記実施形態によれば、CPU1は、電源電圧監視部8によって検出された電圧が過渡状態から定常状態に変化したときから、30秒が経過した後に、フラッシュメモリ6のデータを消去するので、ユーザが誤って電源をオフにした後、すぐに電源をオンにするような事態が発生しても、その短い電源オフの期間にフラッシュメモリ6のデータを消去しないので、誤操作のためにデータが消去されるのを防止できる。
【0057】
また、上記実施形態によれば、CPU1は、フラッシュメモリ6の指定した記憶エリアに対するデータを書き込みが完了した後に、電源の供給停止処理を行なうので、確実にデータのバックアップができる。
【0058】
また、上記実施形態によれば、CPU1は、操作に応じて電源の供給および供給停止を指示するスイッチ部3の電源スイッチから供給停止の指示を受けたときには、電源電圧監視部8による電圧降下の検出を待つことなく、フラッシュメモリ6における2つの記憶エリアであるBlockAおよびBlockBの中から、データが消去されている方の記憶エリアを指定して、RAM5のデータを読み出して、その指定した記憶エリアに書き込むので、データ書き込みの時間に十分な余裕をもつことにより、確実なデータ書き込みを行なえる。
【0059】
また、上記実施形態によれば、RAM5とフラッシュメモリ6との間においてCPU1が読み出しおよび書込みを行なうデータは、楽音信号の発生に関与する機器基本設定のデータSetupParam、音色設定のデータToneParam、自動演奏のシーケンスデータSeqDataであるので、従来の電子鍵盤機器のように操作に応じて逐次フラッシュメモリにデータを書き込む場合に比べて、操作性を改善でき、追記用の記憶エリアも不要となり、バックアップ用のメモリの容量およびデータを書き込むための時間を少なくできるとともに、電源オフや電圧低下のときには自動的にデータのバックアップができる。したがって、電子鍵盤機器の安価を図り、小型軽量化を実現できる。
【0060】
なお、上記実施形態においては、データをバックアップするために、フラッシュメモリ6にBlockAおよびBlockBの2つの記憶エリアを設けた例を説明したが、実施形態の変形例として、3つ以上の複数の記憶エリアを設ける構成にしてもよい。このような構成によれば、前回の電源オフ時だけでなく、それ以前の電源オフ時のバックアップも保持できるので、CPU1は、必要に応じてデータを読み出す記憶エリアを選択することができる。
【0061】
上記実施形態においては、図1のROM4にあらかじめ記憶されているデータ処理のプログラムをCPU1が実行する構成のデータ処理装置について説明したが、FD(フレキシブルディスク)、CD−ROMなどの外部記憶媒体に記憶されているデータ処理のプログラムや、インターネットなどの通信網を介してダウンロードされるデータ処理のプログラムを、パソコンなどの汎用の情報処理装置にインストールして実行することも可能である。この場合には、プログラムの発明を構成する。
【0062】
すなわち、本発明のデータ処理のプログラムは、供給される電源の電圧が所定範囲の定常状態であるか又は所定範囲より低い過渡状態であるかを検出する第1のステップと、第1のステップによって検出された電圧が定常状態から過渡状態に変化する直前には電源の電圧が定常状態のときにデータの正常な書き込みおよび読み出しが可能な第1の記憶手段(RAM5)のデータを読み出して電源の電圧の状態にかかわらず書き込まれているデータを保持することが可能な複数の記憶エリアを有する第2の記憶手段(フラッシュメモリ6)においてデータが消去されている記憶エリアを指定して当該指定した記憶エリアに書き込む第2のステップと、第1のステップによって検出された電圧が過渡状態から定常状態に変化した直後には指定した記憶エリアのデータを読み出して再び第1の記憶手段に書き込む第3のステップと、第1のステップによって検出された電圧が過渡状態から定常状態に変化した後に第2の記憶手段において第2のステップによって指定された記憶エリアとは異なる記憶エリアのデータを消去する第4のステップとを実行する。
【0063】
また、上記実施形態においては、電子鍵盤機器を例にとってデータ処理装置の発明を説明したが、本発明の適用範囲は電子鍵盤機器に限定するものではない。パソコン、ワークステーション、メインフレームのコンピュータ、産業機器、計測機器などのように、データを処理するすべてのデータ処理装置にも適用できることは明らかである。
【0064】
【発明の効果】
本発明によれば、電源電圧が定常状態から低下する直前には、RAMなどの第1の記憶手段のデータを読み出して、フラッシュメモリなどの第2の記憶手段の複数の記憶エリアの中から指定した記憶エリアに書き込み、電源電圧が定常状態に上昇した直後には、指定した記憶エリアのデータを読み出して再び第1の記憶手段に書き込み、指定した記憶エリアとは異なる記憶エリアのデータを消去するので、バックアップ用のメモリの容量およびデータを書き込むための時間を少なくできるとともに、電源オフや電圧低下のときには自動的にデータのバックアップができるという効果が得られる。
【図面の簡単な説明】
【図1】本発明の実施形態における電子鍵盤機器のシステム構成を示すブロック図。
【図2】図1におけるフラッシュメモリの記憶エリアの構成、および、各記憶エリアに記憶されるデータを示す図。
【図3】CPUのメインルーチンのフローチャート。
【図4】メインルーチンにおける初期化処理のフローチャート。
【図5】フラッシュメモリ制御タイマ処理のフローチャート。
【図6】図5のフラッシュメモリ制御タイマ処理における電源オフ準備処理のフローチャート。
【図7】図5のフラッシュメモリ制御タイマ処理における消去処理のフローチャート。
【図8】図5のフラッシュメモリ制御タイマ処理における書き込み処理のフローチャート。
【図9】図3のメインルーチンにおける電源オフ処理のフローチャート。
【図10】図3のメインルーチンにおける鍵盤処理のフローチャート。
【符号の説明】
1 CPU
2 鍵盤
3 スイッチ部
4 ROM
5 RAM
6 フラッシュメモリ
7 表示部
8 電源電圧監視部
9 楽音生成部
10 D/A変換器
11 アンプ
12 スピーカ
Claims (11)
- 供給される電源の電圧が所定範囲の定常状態であるか又は前記所定範囲よりも低い過渡状態であるかを検出する電圧検出手段と、
前記電源の電圧が前記定常状態のときにデータの正常な書き込みおよび読み出しが可能な第1の記憶手段と、
前記電源の電圧の状態にかかわらず書き込まれているデータを保持することが可能で複数の記憶エリアを有する第2の記憶手段と、
前記電圧検出手段によって検出された電圧が前記定常状態から前記過渡状態に変化する直前には前記第2の記憶手段における複数の記憶エリアの中からデータが消去されている記憶エリアを指定して前記第1の記憶手段のデータを読み出して当該指定した記憶エリアに書き込み、前記電圧検出手段によって検出された電圧が前記過渡状態から前記定常状態に変化した直後には前記指定した記憶エリアのデータを読み出して再び前記第1の記憶手段に書き込むデータ転送手段と、
前記電圧検出手段によって検出された電圧が前記過渡状態から前記定常状態に変化した後に前記第2の記憶手段において前記データ転送手段が指定した記憶エリアとは異なる記憶エリアのデータを消去するデータ消去手段と、
を備えたデータ処理装置。 - 前記データ転送手段は、前記第1の記憶手段のデータとともに特定の設定情報を前記指定した記憶エリアに書き込み、前記特定の設定情報が有効な場合に前記指定した記憶エリアのデータを読み出して前記第1の記憶手段に書き込み、前記設定情報が無効である場合には他の記憶手段にあらかじめ記憶されているデフォルトのデータを読み込むことを特徴とする請求項1記載のデータ処理装置。
- 前記データ消去手段は、メインルーチンの処理とは別系統のバックグラウンドの処理で前記異なる記憶エリアのデータを消去することを特徴とする請求項1記載のデータ処理装置。
- 前記データ消去手段は、前記異なる記憶エリアのデータを消去中において前記第2の記憶手段に対するアクセスが発生したときには当該データ消去を中断し当該アクセスが終了したときには当該データ消去を再開することを特徴とする請求項1記載のデータ処理装置。
- 前記データ消去手段は、前記電圧検出手段によって検出された電圧が前記過渡状態から前記定常状態に変化したときから所定時間が経過した後に前記異なる記憶エリアのデータを消去することを特徴とする請求項1記載のデータ処理装置。
- 前記データ転送手段が前記指定した記憶エリアへのデータを書き込みが完了した後に電源の供給停止処理を行なう電源制御手段をさらに備えたことを特徴とする請求項1記載のデータ処理装置。
- 操作に応じて電源の供給および供給停止を指示する操作手段をさらに備え、前記データ転送手段は、前記操作手段から前記供給停止の指示を受けたときには前記電圧検出手段による検出を待つことなく前記第2の記憶手段における複数の記憶エリアの中からデータが消去されている記憶エリアを指定して前記第1の記憶手段のデータを読み出して当該指定した記憶エリアに書き込むことを特徴とする請求項1記載のデータ処理装置。
- 前記データ転送手段は、前記電圧検出手段によって検出された電圧が前記過渡状態から前記定常状態に変化した直後にはデータを書き込んだ複数の記憶エリアの中で最新のデータを書き込んだ記憶エリアを指定してその最新のデータを読み出して再び前記第1の記憶手段に書き込むことを特徴とする請求項1記載のデータ処理装置。
- 前記第1の記憶手段と前記第2の記憶手段との間において前記データ転送手段が読み出しおよび書込みを行なうデータは、楽音信号の発生に関与するデータであることを特徴とする請求項1ないし8のうちいずれか1項記載のデータ処理装置。
- 供給される電源の電圧が所定範囲の定常状態であるか又は前記所定範囲より低い過渡状態であるかを検出する第1のステップと、
前記第1のステップによって検出された電圧が前記定常状態から前記過渡状態に変化する直前には前記電源の電圧が前記定常状態のときにデータの正常な書き込みおよび読み出しが可能な第1の記憶手段のデータを読み出して前記電源の電圧の状態にかかわらず書き込まれているデータを保持することが可能な複数の記憶エリアを有する第2の記憶手段においてデータが消去されている記憶エリアを指定して当該指定した記憶エリアに書き込む第2のステップと、
前記第1のステップによって検出された電圧が前記過渡状態から前記定常状態に変化した直後には前記指定した記憶エリアのデータを読み出して再び前記第1の記憶手段に書き込む第3のステップと、
前記第1のステップによって検出された電圧が前記過渡状態から前記定常状態に変化した後に前記第2の記憶手段において前記第2のステップによって指定された記憶エリアとは異なる記憶エリアのデータを消去する第4のステップと、
を実行するデータ処理のプログラム。 - 前記第1の記憶手段と前記第2の記憶手段との間において前記第2のステップおよび前記第3のステップが読み出しおよび書込みを行なうデータは、楽音信号の発生に関与するデータであることを特徴とする請求項10記載のデータ処理のプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003050401A JP3979308B2 (ja) | 2003-02-27 | 2003-02-27 | データ処理装置およびデータ処理のプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003050401A JP3979308B2 (ja) | 2003-02-27 | 2003-02-27 | データ処理装置およびデータ処理のプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004259093A true JP2004259093A (ja) | 2004-09-16 |
JP3979308B2 JP3979308B2 (ja) | 2007-09-19 |
Family
ID=33115819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003050401A Expired - Fee Related JP3979308B2 (ja) | 2003-02-27 | 2003-02-27 | データ処理装置およびデータ処理のプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3979308B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006030566A1 (ja) * | 2004-09-17 | 2006-03-23 | Mitsubishi Denki Kabushiki Kaisha | フラッシュメモリの情報記録読出装置 |
JP2007004237A (ja) * | 2005-06-21 | 2007-01-11 | Rinnai Corp | データバックアップ装置 |
JP2008140373A (ja) * | 2006-11-02 | 2008-06-19 | Hitachi Ltd | 電子制御装置 |
JP2010128537A (ja) * | 2008-11-25 | 2010-06-10 | Casio Computer Co Ltd | 売上データ処理装置及びプログラム |
-
2003
- 2003-02-27 JP JP2003050401A patent/JP3979308B2/ja not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006030566A1 (ja) * | 2004-09-17 | 2006-03-23 | Mitsubishi Denki Kabushiki Kaisha | フラッシュメモリの情報記録読出装置 |
JP2007004237A (ja) * | 2005-06-21 | 2007-01-11 | Rinnai Corp | データバックアップ装置 |
JP2008140373A (ja) * | 2006-11-02 | 2008-06-19 | Hitachi Ltd | 電子制御装置 |
JP2010128537A (ja) * | 2008-11-25 | 2010-06-10 | Casio Computer Co Ltd | 売上データ処理装置及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP3979308B2 (ja) | 2007-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3198890B2 (ja) | 自動演奏データ処理装置 | |
JP3344544B2 (ja) | コンピュータシステム | |
US20060107825A1 (en) | Automatic accompaniment apparatus, method of controlling the apparatus, and program for implementing the method | |
JP3979308B2 (ja) | データ処理装置およびデータ処理のプログラム | |
JPH09114457A (ja) | 楽音発生装置及び方法 | |
JP3221314B2 (ja) | 楽音合成装置及び方法 | |
US6770806B2 (en) | Tone signal processing apparatus with intermittent clock supply | |
JP2004272764A (ja) | コンピュータシステムの機能拡張方法 | |
JP2016142911A (ja) | 波形読み込み装置、方法、プログラム、および電子楽器 | |
JP3765152B2 (ja) | 楽音合成装置 | |
JP3637577B2 (ja) | 楽音生成方法 | |
JP3862989B2 (ja) | 電子楽器 | |
JP3830546B2 (ja) | 信号処理装置の省電力化 | |
JP3528279B2 (ja) | 音源装置 | |
JP3653155B2 (ja) | 電子楽器および電子楽器の情報処理方法 | |
KR950012318A (ko) | 인터럽트 정보 발생 장치 및 음성정보처리장치 | |
JPH10149161A (ja) | カラオケ装置 | |
JP3627557B2 (ja) | 楽音発生装置及び方法 | |
JPH10124196A (ja) | 電子楽器のメモリ装置 | |
JP2595378B2 (ja) | 情報処理装置 | |
JP4920946B2 (ja) | 楽音発生装置 | |
JPH07110683A (ja) | 電子楽器における操作子の操作順序登録装置 | |
JPH09185530A (ja) | 情報処理方法とその装置 | |
JP4159439B2 (ja) | 電子楽器、楽音発生方法及びコンピュータプログラム | |
JP2005182557A (ja) | 信号処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20060208 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060223 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20060405 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070417 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070511 |
|
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: 20070605 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070618 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100706 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110706 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110706 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120706 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120706 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130706 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |