(57)【要約】【課題】  ＲＯＭに記憶されたものと異なる処理を実行させる修正プログラムを生成する。【解決手段】  分岐点アドレスを含む制御プログラムを記憶したＲＯＭと、分岐点アドレスが設定される第１レジスタと、ＣＰＵが実行する命令のアドレスが第１レジスタに設定された分岐点アドレスと一致した場合に、次の命令とは別の命令を実行させる命令出力回路とを備えたマイクロコンピュータであって、分岐点アドレスが入力されると（Ｓ０３）、分岐点アドレスをＥＥＰＲＯＭに書き込むステップ（Ｓ０４）と、第１レジスタとは別の第２レジスタのアドレスと設定値とを受付けるステップ（Ｓ０５）と、第２レジスタを受付けられた設定値に設定するための命令をＥＥＰＲＯＭに書き込むステップ（Ｓ０６）と、分岐点アドレスの次のアドレスに復帰する命令をＥＥＰＲＯＭに書き込むステップ（Ｓ０７）とをＣＰＵに実行させる修正プログラム生成プログラムがＲＯＭに記憶される。【選択図】        図３
2006268738.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの分岐点アドレスを含むプログラムを記憶した読出専用メモリと、
前記読出専用メモリに記憶された命令を順に読出し実行する中央演算装置と、
不揮発性メモリと、
前記分岐点アドレスが設定される第１レジスタと、
前記中央演算装置が実行する命令のアドレスが、前記第１レジスタに設定された分岐点アドレスと一致した場合に、前記中央演算装置が実行する予定の次の命令とは別の命令を実行させる分岐手段と、
外部から信号を受信する受信手段とを備えた情報処理装置であって、
前記読出専用メモリは、
前記分岐点アドレスが入力されると、前記入力された分岐点アドレスを前記不揮発性メモリに書き込むステップと、
前記第１レジスタとは別の第２レジスタのアドレスと設定値とを受付けるステップと、
前記受付けられたアドレスの前記第２レジスタを前記受付けられた設定値に設定するための命令を前記不揮発性メモリに書き込むステップと、
前記分岐点アドレスの次のアドレスに復帰する命令を前記不揮発性メモリに書き込むステップとを前記中央演算装置に実行させる修正プログラム生成プログラムを記憶する、情報処理装置。
【請求項２】
前記読出専用メモリは、
前記不揮発性メモリに前記分岐点アドレスが記憶されている場合に、該分岐点アドレスを前記第１レジスタに設定するステップを前記中央演算装置に実行させるイニシャライズプログラムをさらに記憶する、請求項１に記載の情報処理装置。
【請求項３】
前記修正プログラム生成プログラムは、予め定められた分岐点情報と、前記少なくとも１つの分岐点アドレスとを関連付けるステップと、
前記分岐点情報の受付けに応じて、該受付けられた分岐点情報に関連付けられた分岐点アドレスを特定するステップとをさらに含む、請求項１に記載の情報処理装置。
【請求項４】
少なくとも１つの分岐点アドレスを含むプログラムを記憶した読出専用メモリと、
前記読出専用メモリに記憶された命令を順に読出し実行する中央演算装置と、
不揮発性メモリと、
前記分岐点アドレスが設定される第１レジスタと、
前記中央演算装置が実行する命令のアドレスが、前記第１レジスタに設定された分岐点アドレスと一致した場合に、前記中央演算装置が実行する予定の次の命令とは別の命令を実行させる分岐手段と、
外部から信号を受信する受信手段とを備えた情報処理装置で実行される修正プログラム生成方法であって、
前記読出専用メモリに記憶された修正プログラム生成プログラムは、
前記分岐点アドレスが入力されると、前記入力された分岐点アドレスを前記不揮発性メモリに書き込むステップと、
前記第１レジスタとは別の第２レジスタのアドレスと設定値とを受付けるステップと、
前記受付けられたアドレスの前記第２レジスタを前記受付けられた設定値に設定するための命令を前記不揮発性メモリに書き込むステップと、
前記分岐点アドレスの次のアドレスに復帰する命令を前記不揮発性メモリに書き込むステップとを前記中央演算装置に実行させる、修正プログラム生成方法。
【請求項５】
少なくとも１つの分岐点アドレスを含むプログラムを記憶した読出専用メモリと、
前記読出専用メモリに記憶された命令を順に読出し実行する中央演算装置と、
不揮発性メモリと、
前記分岐点アドレスが設定される第１レジスタと、
前記中央演算装置が実行する命令のアドレスが、前記第１レジスタに設定された分岐点アドレスと一致した場合に、前記中央演算装置が実行する予定の次の命令とは別の命令を実行させる分岐手段と、
外部から信号を受信する受信手段とを備えた情報処理装置で実行される修正プログラム生成プログラムであって、
前記読出専用メモリに記憶され、
前記分岐点アドレスが入力されると、前記入力された分岐点アドレスを前記不揮発性メモリに書き込むステップと、
前記第１レジスタとは別の第２レジスタのアドレスと設定値とを受付けるステップと、
前記受付けられたアドレスの前記第２レジスタを前記受付けられた設定値に設定するための命令を前記不揮発性メモリに書き込むステップと、
前記分岐点アドレスの次のアドレスに復帰する命令を前記不揮発性メモリに書き込むステップとを前記中央演算装置に実行させる、修正プログラム生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報処理装置、修正プログラム生成方法および修正プログラム生成プログラムに関し、特に読出し専用メモリに記憶されたプログラムとは異なる処理をＣＰＵに実行させるためのプログラムを生成する情報処理装置、修正プログラム生成方法および修正プログラム生成プログラムに関する。
【背景技術】
【０００２】
従来、多くの電気製品はマイクロコンピュータが搭載されている。このマイクロコンピュータは、演算するための中央演算装置（ＣＰＵ）と、プログラムを記録した読出し専用メモリ（ＲＯＭ）と、作業エリアとして用いられるランダムアクセスメモリ（ＲＡＭ）とを備えている。ＣＰＵは、ＲＯＭに記憶されたプログラムに従って演算を実行する。
【０００３】
ＲＯＭに記憶されたプログラムはＲＯＭを作製した後に変更できない。一方、製品の開発期間が非常に短くなっている現在においては、ＲＯＭを早期に生産することが望まれ、ＲＯＭに記憶するプログラムを早期の段階で決定しなければならない。
【０００４】
しかしながら、ＲＯＭの生産を開始した後に製品の仕様が変更されることがあり、その場合にＲＯＭに記憶されたプログラムを変更するのは困難である。そこで、ＲＯＭに記憶されたプログラムとは一部が異なるプログラムを実行させる技術が特開平０８−９５９４６号公報（特許文献１）に記載されている。特開平０８−９５９４６号公報には次の記載がある。なお、図番は変更してある。
【０００５】
図５を参照して、フェッチポインタ１は、ＲＯＭ３又はＲＡＭ４から命令キュー１５に取り込むべきプログラムのアドレスを示す１６ビットのカウンタである。アドレスバス２はアドレスデータを、データバス１１はデータを転送するための１６ビットのバスである。
【０００６】
ＲＯＭ３は、読み出し専用のメモリで、アドレス００００Ｈ〜ＥＦＦＦＨ（Ｈは１６進数を表す）のメモリ空間に対応し、ここにプログラムが格納される。ＲＡＭ３は、読み書き可能なメモリで、アドレスＦ０００Ｈ〜ＥＦＦＦＨのメモリ空間に対応する。
【０００７】
外部に配置されたメモリ１４には、バグ部分の先頭アドレスと修正プログラムが格納されている。
【０００８】
シリアルインタフェース１０は、メモリ１４内のバグ部分の先頭アドレスと修正プログラムをマイクロコンピュータ１３内に取り込む。
【０００９】
レジスタ６は、シリアルインタフェース１０とデータバス１１を介して取り込んだバグ部分の先頭アドレスを格納記憶する。
【００１０】
比較回路５は、レジスタ６の内容と、アドレスバス２を介して入力されたフェッチポインタ１の内容と、を比較し、これらが互いに一致した場合にはハイレベルとされ、一致しなかった場合にはロウレベルとされる選択信号１２を出力する。
【００１１】
分岐命令出力回路９は、ＲＡＭ４上のアドレスＦ０００Ｈへの分岐命令を出力する。
【００１２】
選択回路８は、比較回路５からの選択信号１２がハイレベル（＝アクティブ）のときに分岐命令出力回路９からの分岐命令を命令キュー１５に出力し、選択信号１２がロウレベル（＝インアクティブ）のときにはＲＯＭ３又はＲＡＭ４上のプログラムを命令キュー１５に出力する。
【００１３】
命令キュー１５は、ＣＰＵ７が命令を実行している間に先読み（プリフェッチ）された命令が格納される５バイトのバッファである。
【００１４】
ＣＰＵ７は、命令キュー１５から命令を取り出し命令デコーダ部（不図示）にて命令を解読し、実行ユニット（不図示）にて解読された命令を実行する。
【００１５】
ここで、図６のメモリマップに示すように、プログラムはＲＯＭ３上のアドレス１０００Ｈ〜７ＦＦＦＨに存在し、そのうちアドレス４０００Ｈ〜４００ＦＨにバグが存在するものと仮定する。
【００１６】
また、図６を参照して、プログラム開始アドレス設定のためのベクター・テーブル００００Ｈには、プログラム開始アドレス１０００Ｈがセットされており、これにより、マイクロコンピュータ１３のリセット解除後、アドレス１０００Ｈがフェッチポインタ１にセットされ、アドレス１０００Ｈからプログラムの実行が開始される。
【００１７】
予め、バグの存在を想定して、プログラムのイニシャライズ部分には、シリアルインタフェース１０を介して、メモリ１４からバグ部分の先頭アドレスと修正プログラムをマイクロコンピュータ１３内に取り込むためのルーチンを挿入しておく。
【００１８】
このイニシャライズ部分の実行により、バグ部分の先頭アドレス４０００Ｈと修正プログラムがメモリ１４からマイクロコンピュータ１３内に取り込まれ、マイクロコンピュータ１３内に取り込まれたバグ部分の先頭アドレスはレジスタ６にセットされ、また修正プログラムはＲＡＭ４のアドレスＦ０００Ｈ以降に格納される。
【００１９】
この後、フェッチポインタ１がバグ部分の先頭アドレスに達するまで、ＣＰＵ７はＲＯＭ３上のプログラムを実行し続ける。
【００２０】
そして、フェッチポインタ１がバグ部分の先頭アドレスに達すると、すなわちフェッチポインタ１とレジスタ６の内容とが互いに一致すると、比較回路５はハイレベルの選択信号１２を出力し、選択回路８は選択信号１２を受けてＲＯＭ３上のプログラムから分岐命令出力回路９の出力に切り換えて、分岐命令を命令キュー１５へ出力する。
【００２１】
ここで分岐命令出力回路９は、アドレスＦ０００Ｈへの分岐命令「ＢＲ ！Ｆ０００Ｈ」を出力するため、ＣＰＵ７は、命令キュー１５からの分岐命令を受け取り実行する。
【００２２】
一般に、分岐命令の実行により命令キューの内容はクリアされるよう構成されており、分岐命令により命令キュー１５の内容はクリアされる。また、フェッチポインタ１はＦ０００Ｈにセットされ、図６に示すように、ＲＡＭ４上の修正プログラムがＣＰＵ７により実行されることになる。
【００２３】
修正プログラムの最後の部分に、アドレス４０１０Ｈへの分岐命令「ＢＲ ！４０１０Ｈ」を入れておくことにより、修正プログラム実行後、元のＲＯＭ３上のプログラムに戻り、本来のプログラムが実行されるようになる。
【００２４】
しかしながら、特開平０８−９５９４６号公報に記載のマイクロコンピュータでは、ＲＯＭに記憶されたプログラムを開発した設備、コンパイラなどの開発環境が整っていることが必要である。開発環境が整っていなければ、ＲＯＭに記憶されているプログラムのうちから分岐させる命令アドレスの位置、復帰させる命令アドレスの位置を見つけ出すことができない。さらに、修正プログラムを生成することが困難であるといった問題がある。
【特許文献１】特開平０８−９５９４６号公報
【発明の開示】
【発明が解決しようとする課題】
【００２５】
この発明は上述した問題点を解決するためになされたもので、この発明の目的の１つは、ＲＯＭに記憶されたプログラムの開発環境に関わらず、そのプログラムと異なる処理を実行させるための修正プログラムを容易に生成することが可能な情報処理装置、修正プログラム生成方法および修正プログラム生成プログラムを提供することである。
【課題を解決するための手段】
【００２６】
上述した目的を達成するためにこの発明のある局面によれば、情報処理装置は、少なくとも１つの分岐点アドレスを含むプログラムを記憶した読出専用メモリと、読出専用メモリに記憶された命令を順に読出し実行する中央演算装置と、不揮発性メモリと、分岐点アドレスが設定される第１レジスタと、中央演算装置が実行する命令のアドレスが、第１レジスタに設定された分岐点アドレスと一致した場合に、中央演算装置が実行する予定の次の命令とは別の命令を実行させる分岐手段と、外部から信号を受信する受信手段とを備えた情報処理装置であって、読出専用メモリは、分岐点アドレスが入力されると、入力された分岐点アドレスを不揮発性メモリに書き込むステップと、第１レジスタとは別の第２レジスタのアドレスと設定値とを受付けるステップと、受付けられたアドレスの第２レジスタを受付けられた設定値に設定するための命令を不揮発性メモリに書き込むステップと、分岐点アドレスの次のアドレスに復帰する命令を不揮発性メモリに書き込むステップとを中央演算装置に実行させる修正プログラム生成プログラムを記憶する。
【００２７】
好ましくは、読出専用メモリは、不揮発性メモリに分岐点アドレスが記憶されている場合に、該分岐点アドレスを第１レジスタに設定するステップを中央演算装置に実行させるイニシャライズプログラムをさらに記憶する。
【００２８】
好ましくは、修正プログラム生成プログラムは、予め定められた分岐点情報と、少なくとも１つの分岐点アドレスとを関連付けるステップと、分岐点情報の受付けに応じて、該受付けられた分岐点情報に関連付けられた分岐点アドレスを特定するステップとをさらに含む。
【００２９】
この発明の他の局面によれば、修正プログラム生成方法は、少なくとも１つの分岐点アドレスを含むプログラムを記憶した読出専用メモリと、読出専用メモリに記憶された命令を順に読出し実行する中央演算装置と、不揮発性メモリと、分岐点アドレスが設定される第１レジスタと、中央演算装置が実行する命令のアドレスが、第１レジスタに設定された分岐点アドレスと一致した場合に、中央演算装置が実行する予定の次の命令とは別の命令を実行させる分岐手段と、外部から信号を受信する受信手段とを備えた情報処理装置で実行される修正プログラム生成方法であって、読出専用メモリに記憶された修正プログラム生成プログラムは、分岐点アドレスが入力されると、入力された分岐点アドレスを不揮発性メモリに書き込むステップと、第１レジスタとは別の第２レジスタのアドレスと設定値とを受付けるステップと、受付けられたアドレスの第２レジスタを受付けられた設定値に設定するための命令を不揮発性メモリに書き込むステップと、分岐点アドレスの次のアドレスに復帰する命令を不揮発性メモリに書き込むステップとを中央演算装置に実行させる。
【００３０】
この発明のさらに他の局面によれば、修正プログラム生成プログラムは、少なくとも１つの分岐点アドレスを含むプログラムを記憶した読出専用メモリと、読出専用メモリに記憶された命令を順に読出し実行する中央演算装置と、不揮発性メモリと、分岐点アドレスが設定される第１レジスタと、中央演算装置が実行する命令のアドレスが、第１レジスタに設定された分岐点アドレスと一致した場合に、中央演算装置が実行する予定の次の命令とは別の命令を実行させる分岐手段と、外部から信号を受信する受信手段とを備えた情報処理装置で実行される修正プログラム生成プログラムであって、読出専用メモリに記憶され、分岐点アドレスが入力されると、入力された分岐点アドレスを不揮発性メモリに書き込むステップと、第１レジスタとは別の第２レジスタのアドレスと設定値とを受付けるステップと、受付けられたアドレスの第２レジスタを受付けられた設定値に設定するための命令を不揮発性メモリに書き込むステップと、分岐点アドレスの次のアドレスに復帰する命令を不揮発性メモリに書き込むステップとを中央演算装置に実行させる。
【００３１】
この発明に従えば、分岐点アドレスが入力されると、分岐点アドレスが不揮発性メモリに書込まれ、第１レジスタとは別の第２レジスタのアドレスと設定値とが受付けられると、受付けられたアドレスのレジスタを設定値に設定するための命令が不揮発性メモリに書込まれ、分岐点の次の命令アドレスに復帰する命令が不揮発性メモリに書込まれる。このため、読出専用メモリに記録されたプログラムと異なる処理を実行させるための修正プログラムを容易に生成することが可能な情報処理装置、修正プログラム生成方法および修正プログラム生成プログラムを提供することができる。
【発明を実施するための最良の形態】
【００３２】
以下、図面を参照しつつ、本発明の実施の形態について説明する。図１は、本発明の実施の形態の１つにおける監視カメラシステムの概略構成を示す図である。図１中、図５に示したのと同一の部材には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
【００３３】
監視カメラシステム１００は、監視カメラ１００とパーソナルコンピュータ１１０とで構成される。図では、監視カメラ１００とパーソナルコンピュータ１１０とをそれぞれ１台の例を示しているが、監視カメラ１００を複数台としてもよいし、パーソナルコンピュータ１１０を複数台としてもよいし、両者を複数台としてもよい。パーソナルコンピュータ１１０は、一般的なコンピュータであり、そのハードウエア構成および機能は当業者に周知であるので、ここでは説明を繰り返さない。なお、パーソナルコンピュータ１１０に代えて、監視カメラ１００を制御するための専用の監視装置であってもよい。
【００３４】
監視カメラ１００は、情報処理装置であり、それの全体を制御するためのマイクロコンピュータ１３と、マイクロコンピュータ１３のシリアルインタフェース１０に接続されたＥＥＰＲＯＭ（Electronically Erasable and Programmable
Read Only Memory）１４Ａと、レンズ２１と、ＣＣＤ（Charge Coupled Device）２２と、ＣＣＤ２２から出力される電気信号が入力されるＣＤＳ（Correlated Double Sampling）／ＡＧＣ(Auto Gain
Control)回路２３と、デジタルシグナルプロセッサ（ＤＳＰ）２４とを含む。
【００３５】
マイクロコンピュータ１３は、図５では、メモリ１４と接続されているが、ここでは、メモリ１４の具体例としてＥＥＰＲＯＭ１４Ａと接続される。また、図５では、レジスタ６と分岐命令出力回路９とがそれぞれ１つ示されているが、本実施の形態においては、レジスタ６と分岐命令出力回路９との組は、１以上ある。レジスタ６と分岐命令出力回路９との組は、後述する修正プログラムを複数生成するために、修正プログラムの数と同じ、またはそれ以上の数が必要とされる。
【００３６】
マイクロコンピュータ１３は、レンズ２１を制御して、焦点の調整、撮像倍率の変更、パンおよびチルトの撮像方向を変更させる。ＣＣＤ２２は、レンズ２１を透過した光を受光し電気信号を出力する光電変換素子である。ＣＣＤ２２が出力する信号は、ＣＤＳ／ＡＧＣ回路２３に出力される。
【００３７】
ＣＤＳ／ＡＧＣ回路２３は、ＣＣＤ２２が出力する電気信号の雑音を抑圧する処理、電気信号の利得を制御する処理を実行する。ＣＤＳ／ＡＧＣ回路２３は、マイクロコンピュータ１３に制御される。具体的には、雑音を抑圧する処理で用いられる係数値がマイクロコンピュータ１３からＣＤＳ／ＡＧＣ回路２３に与えられる。ＣＤＳ／ＡＧＣ回路２３は、与えられた係数値を用いて電気信号の雑音を抑圧する処理を実行する。また、利得制御における初期値がマイクロコンピュータ１３からＣＤＳ／ＡＧＣ回路２３に与えられる。ＣＤＳ／ＡＧＣ回路２３は、与えられた初期値から利得制御を開始する。
【００３８】
ＤＳＰ２４は、ＣＤＳ／ＡＧＣ２３で雑音除去および利得制御された電気信号を、画像処理して出力する。ＤＳＰ２４は、マイクロコンピュータ１３により制御される。具体的には、マイクロコンピュータ１３からビデオ信号制御レジスタが設定される。ビデオ信号制御レジスタは、撮影パラメータを設定するためのレジスタである。
【００３９】
マイクロコンピュータ１３に含まれるＲＯＭ３に記憶された制御プログラムには、ＣＤＳ／ＡＧＣ回路２３を制御するための係数値および初期値と、ＤＳＰ２４を制御するための値が記憶されている。ＤＳＰ２４を制御するための値は、ビデオ信号制御レジスタに設定するための値である。ここでは、これらの値を総称して設定値という。
【００４０】
監視カメラ１００は、パーソナルコンピュータ１１０と接続される。監視カメラ１００とパーソナルコンピュータ１１０とは、シリアル接続、パラレル接続のいずれであってもよく、またはローカルエリアネットワーク（ＬＡＮ）を介する接続であってもよい。さらにこれらの接続は、有線または無線の別を問わない。
【００４１】
パーソナルコンピュータ１１０は、監視カメラ１００にコマンド信号を送信することにより、監視カメラ１００を制御することができる。コマンド信号の具体例としては、レンズ２１の撮影方向を変更するためのコマンド信号、レンズ２１のズーム倍率を変更するためのコマンド信号などが挙げられる。監視カメラ１００で撮像された映像は、ＤＳＰ２４からパーソナルコンピュータ１１０に送信される。したがって、パーソナルコンピュータ１１０では、監視カメラ１００から受信した映像のディスプレイ出力、ハードディスクへの記録などすることが可能である。
【００４２】
本実施の形態における監視カメラシステムにおいては、パーソナルコンピュータ１１０から所定の設定値をマイクロコンピュータ１３に送信することにより、マイクロコンピュータ１３で、ＲＯＭ３に記憶されている設定値とは異なる設定値を用いて制御するための修正プログラムを生成させる。マイクロコンピュータ１３のＲＯＭ３には、この修正プログラムを生成するための修正プログラム生成プログラムが予め記憶されている。
【００４３】
なお、監視カメラ１００は、ＥＥＰＲＯＭ１４Ａを備える構成としたが、ＥＥＰＲＯＭ１４Ａに代えて、フラッシュメモリ等他の不揮発性の半導体メモリ、磁気記録媒体、光磁気記録媒体等を用いてもよい。
【００４４】
本実施の形態における監視カメラ１００においては、ＲＯＭ３に予めプログラムが記憶されている。具体的には、ＲＯＭ３には、レンズ２１、ＣＤＳ／ＡＧＣ２３およびＤＳＰを制御するための制御プログラムと、制御プログラムとは異なる処理を実行させるための修正プログラムを生成するための修正プログラム生成プログラムと、イニシャライズプログラムとが記憶されている。ＲＯＭ３に予め記憶されたプログラムは、修正プログラム生成プログラムを含む点と、制御プログラムに分岐点が予め定められている点とが異なる。
【００４５】
制御プログラムに予め定められる分岐点とは、修正プログラムを実行する時を定める情報であり、制御プログラムの１つのアドレスを示す。この分岐点は制御プログラムの作成時に決定される。分岐点を特定するためには、制御プログラムのアドレスそのものを用いることもできるが、ここでは分岐点指定情報を用いる。分岐点指定情報は、制御プログラムの分岐点を指定するための情報である。分岐点指定情報は、分岐点の順番、または、制御プログラムの処理の種類を特定する情報が含まれる。
【００４６】
図２は、分岐点指定情報を説明するための図である。図２（Ａ）は、分岐点指定情報を分岐点の順番とした場合の一例を示す図である。図２（Ａ）を参照して、分岐点指定情報は、順番で示され、その順番は制御プログラムの作成時に定まる。順番は分岐点の順を示し、制御プログラムのアドレスが小さいほど順序が前になる。ここでは、分岐点指定情報の順番「１」に対して、処理名「起動処理（パラメータ設定）」が対応つけられている。この分岐点で特定される制御プログラムのアドレスには、配列変数Ｘ［１］にフェッチポインタ１の値を設定する命令が記述される。また、分岐点指定情報の順番「２」に対して、処理名「タイマー処理」が対応つけられている。この分岐点で特定される制御プログラムのアドレスには、配列変数Ｘ［２］にフェッチポインタ１の値を設定する命令が記述される。さらに、分岐点指定情報の順番「３」に対して、処理名「割込処理」が対応つけられている。この分岐点で特定される制御プログラムのアドレスには、配列変数Ｘ［３］にフェッチポインタ１の値を設定する命令が記述される。
【００４７】
したがって、マイクロコンピュータ１３のＣＰＵ７で制御プログラムが実行されると、配列変数Ｘ[ｉ]（ｉは自然数）に分岐点の制御プログラムのアドレスが設定される。そして、マイクロコンピュータ１３は、分岐点指定情報の順番「ｉ」が入力されると、ｉ順番の配列変数Ｘ[ｉ]の値から分岐点の制御プログラムのアドレスを取得することが可能となる。なお、ここでは、順番を１〜３としたが、これより多くてもよく、少なくてもよい。
【００４８】
図２（Ｂ）は分岐点指定情報を制御プログラムの処理の種類を特定する情報とした場合の一例を示す図である。図２（Ｂ）を参照して、分岐点指定情報は、変数名で示される。変数名は、処理名に対応して制御プログラム作成時に定まる。ここでは、分岐点指定情報の変数名「ＫＩＤＯＵ」に対して、処理名「起動処理（パラメータ設定）」が対応つけられている。この分岐点で特定される制御プログラムのアドレスには、変数ＫＩＤＯＵにフェッチポインタ１の値を設定する命令が記述される。また、分岐点指定情報の変数名「ＴＩＭＥＲ」に対して、処理名「タイマー処理」が対応つけられている。この分岐点で特定される制御プログラムのアドレスには、変数ＴＩＭＥＲにフェッチポインタ１の値を設定する命令が記述される。さらに、分岐点指定情報の変数名「ＷＡＲＩＫＯＭＩ」に対して、処理名「割込処理」が対応つけられている。この分岐点で特定される制御プログラムのアドレスには、変数ＷＡＲＩＫＯＭＩにフェッチポインタ１の値を設定する命令が記述される。
【００４９】
したがって、マイクロコンピュータ１３のＣＰＵ７で制御プログラムが実行されると、各変数に分岐点の制御プログラムのアドレスが設定される。そして、マイクロコンピュータ１３は、変数名が入力されると、その変数名の変数の値から分岐点の制御プログラムのアドレスを取得することが可能となる。なお、ここでは、変数をＫＩＤＯＵ、ＴＩＭＥＲ、ＷＳＲＩＫＯＭＩの３つとしたが、変数の数はこれより多くてもよく、少なくてもよい。さらに、変数名は任意に定めることができる。
【００５０】
図３は、ＲＯＭ３に記憶されている修正プログラム生成プログラムの流れを示すフローチャートである。この修正プログラム生成プログラムは、マイクロコンピュータ１３のＣＰＵ７で実行され、それに接続されたパーソナルコンピュータ１１０から通信コマンドが受信された場合に、割込みが発生して実行される。すなわち、修正プログラム生成プログラムは、外部に接続されたパーソナルコンピュータ１１０から通信コマンドが受信されることを条件にマイクロコンピュータのＣＰＵ７で実行されるプログラムである。
【００５１】
図３を参照して、修正プログラム生成プログラムは、ＣＰＵ７の外部から通信コマンドが受信されると（ステップＳ０１）、受信された通信コマンドが修正プログラムの生成の開始を指示するためのコマンドか否かが判断される（ステップＳ０２）。真の場合にはステップＳ０３に進み、偽の場合には処理を終了する。偽の場合なら、受信された通信コマンドは他の処理の実行を指示するものであるために、その他の処理に対応するプログラムを実行するためである。
【００５２】
ステップＳ０３では、分岐点が受信される。ここでは、分岐点として制御プログラムのアドレスそのものが受信されてもよいし、分岐点指定情報が受信されてもよい。そして、次のステップＳ０４では、ステップＳ０３で受信された分岐点に対応する制御プログラムのアドレスが取得され、ＥＥＰＲＯＭ１４Ａの予め定めた所定のアドレスに書き込まれる。分岐点に対応する制御プログラムのアドレスは、受信された分岐点が制御プログラムのアドレス自身である場合にはそのアドレスである。受信された分岐点が分岐点指定情報の場合は、分岐点指定情報の順番ｉから配列変数Ｘ［ｉ］に設定されているアドレス、または、分岐点指定情報の変数（ＫＩＤＯＵ、ＴＩＭＥＲ、ＷＡＲＩＫＯＭＩ）に設定されているアドレスである。ＥＥＰＲＯＭ１４Ａに書き込むアドレスを予め定めた所定のアドレスとしたのは、後述するイニシャライズ処理で分岐点アドレスをレジスタ６に読み出す必要があるからである。
【００５３】
ステップＳ０５では、レジスタの値を変更するために、そのレジスタ（設定用レジスタ）を指定するためのアドレスと、変更後の値（設定値）とを受信する。設定用レジスタのアドレスと設定値とは、パーソナルコンピュータ１１０から受信される。なお、値を変更するレジスタが複数ある場合には、変更するレジスタの数だけ設定用レジスタのアドレスと設定値とがパーソナルコンピュータ１１０から受信され、ステップＳ０５が繰り返される。
【００５４】
次のステップＳ０６では、ステップＳ０５で受信された設定用レジスタのアドレスと設定値とから設定用レジスタに設定値を設定する命令がＥＥＰＲＯＭ１４Ａに書き込まれる。命令が書き込まれる領域は、予め定められている。ＣＰＵ７で後述するイニシャライズ処理が実行される場合、このイニシャライズ処理において、ＥＥＰＲＯＭ１４Ａの所定の領域に記憶されているプログラムがＲＡＭ４に読み出される。そのようにイニシャライズ処理がＣＰＵ７で実行されるようにイニシャライズプログラムが作成される。このため、イニシャライズプログラムがＣＰＵ７で実行される場合に、修正プログラムがＲＡＭに読み出されるように、ＥＥＰＲＯＭ１４Ａの所定の領域に修正プログラムが記録される。ステップＳ０５で設定用レジスタのアドレスと設定値とが複数受信された場合には、受信された順に命令が書き込まれる。
【００５５】
次のステップＳ０７では、修正プログラムから制御プログラムに復帰するための復帰命令がＥＥＰＲＯＭ１４Ａに書き込まれる。復帰するアドレスは、ステップＳ０４で分岐点に基づき定められた制御プログラムのアドレスの次のアドレスとするのが好ましい。なお、復帰アドレスをパーソナルコンピュータ１１０から受信して、そのアドレスに復帰するための復帰命令を書き込むようにしてもよい。ステップＳ０６で書き込まれた命令の１以上の命令と、ステップＳ０７で書き込まれた復帰命令とで修正プログラムが構成される。
【００５６】
次のステップＳ０８では、修正プログラムの生成を終了させることを示す終了コマンドが受信されたか否かが判断される。真の場合にはステップＳ０８に進み、偽の場合にはステップＳ０３に戻る。ステップＳ０３に戻る場合には、別の分岐点に対応する修正プログラムが生成される。この場合、ステップＳ０４で分岐点に対応する制御プログラムのアドレスを書き込むためのＥＥＰＲＯＭ１４Ａのアドレスは、２回目以降に書き込まれるものであり、ステップＳ０４が実行されるごとに異なるアドレスとなる。同様に、ステップＳ０５およびＳ０６で修正プログラムを書き込むためのＥＥＰＲＯＭ１４Ａのアドレスは、２回目以降に書き込まれるものであり、ステップＳ０５が実行されるごとに異なるアドレスとなる。
【００５７】
すなわち、修正プログラムは分岐点ごとに生成されて、分岐点に対応する制御プログラムのアドレスと修正プログラムとがＥＥＰＲＯＭ１４Ａに分岐点ごとに書き込まれる。換言すれば、複数の修正プログラムを生成することが可能であり、生成された複数の修正プログラムそれぞれは、分岐点に対応する制御プログラムのアドレスと関連付けてＥＥＰＲＯＭ１４Ａに記憶される。また、ＥＥＰＲＯＭ１４Ａに書き込まれる分岐点に対応する制御プログラムのアドレスと修正プログラムとは、ＥＥＰＲＯＭ１４Ａの予め定められた位置に書き込まれる。後述するイニシャライズ処理がＣＰＵ７で実行される場合に、分岐点に対応する制御プログラムのアドレスをレジスタ６に設定するために、ＥＥＰＲＯＭ１４Ａから読み出す必要があり、また、その分岐点に対応する修正プログラムをＲＡＭ４に読み出すために、ＥＥＰＲＯＭ１４から読み出す必要があるからである。したがって、複数の修正プログラムと複数の分岐点に対応する制御プログラムのアドレスとは、ＥＥＰＲＯＭ１４Ａのアドレスで関連つけられる。
【００５８】
ステップＳ０９では、イニシャライズ処理が実行される。その後、処理を終了する。これにより、ステップＳ０１で割り込みを発生した位置に処理が戻る。
【００５９】
図４は、図３のステップＳ０９で実行されるイニシャライズ処理の流れを示すフローチャートである。なお、このイニシャライズ処理は、従来の技術で説明したマイクロコンピュータで実行されるイニシャライズ処理と同様である。図４を参照して、イニシャライズ処理では、まず、ＥＥＰＲＯＭ１４Ａに記憶されているデータを読み出す（ステップＳ１１）。ここでは、ＥＥＰＲＯＭ１４Ａの予め定められた領域に修正プログラムが記憶されているか否かが判断される（ステップＳ１２）。上述したように修正プログラムと分岐点に対応する制御プログラムのアドレスとは関連付けられて対となって記憶されている。また、修正プログラムは複数を生成することが可能であるので、複数の修正プログラムが記録されるべきアドレスのすべてで修正プログラムの有無が判断される。少なくとも１つの修正プログラムが記憶されていれば、修正プログラムが記憶されていると判断して、処理をステップＳ１３に進める。修正プログラムが１つも記憶されていない場合には処理を終了する。なお、ここでは、修正プログラムの記録の有無を判断するようにしているが、分岐点に対応する制御プログラムのアドレスの記録の有無を判断するようにしてもよい。
【００６０】
ステップＳ１３では、分岐点に対応する制御プログラムのアドレスをレジスタ６に設定する。そして、次のステップＳ１４では、ＥＥＰＲＯＭ１４Ａに記憶されている修正プログラムがＲＡＭ４の所定の領域にコピーされる。所定の領域は、分岐命令出力回路９が出力する分岐命令により定まる。たとえば、分岐命令出力回路９が出力する命令を、ＲＡＭ４のアドレスＦ０００Ｈへの分岐命令とすれば、修正プログラムはアドレスＦ０００Ｈ以降に記憶される。修正プログラムが複数ある場合には、その数に応じたレジスタ６および分岐命令出力回路９が必要となるため、ＥＥＰＲＯＭ１４Ａに記憶されている制御プログラムのアドレスは対応するレジスタ６に設定される。また、複数の修正プログラムそれぞれは、それに対応する分岐命令出力回路９が出力する分岐命令に基づき定まるＲＡＭ４のアドレス以降にコピーされる。
【００６１】
これにより、比較回路５において、フェッチポインタ１のアドレスとレジスタ６のアドレスとが比較され、両者が一致した時点で、選択回路８において分岐命令出力回路９が出力する命令が実行される。分岐命令出力回路９が出力する分岐命令で定まるＲＡＭ４のアドレスに記憶された修正プログラムがＣＰＵ７により実行されることになる。
【００６２】
以上説明したように本実施の形態における監視カメラにおいては、制御プログラムの作成時に分岐点のアドレスを決定して、そのアドレス自体を記録しておく、または分岐点のアドレスに分岐点情報から分岐点のアドレスを得るための命令を制御プログラムに書き込んでおくものである。このため、パーソナルコンピュータ１１０から分岐点の指定が、制御プログラムのアドレス自体、または、分岐点情報として受け付けられることに応じて、分岐点に対応する制御プログラムのアドレスがＥＥＰＲＯＭ１４Ａの所定のアドレスに書込まれる。このため、制御プログラムの開発環境が整ってなく、制御プログラムを分岐させるアドレスを知ることができない場合であっても、記録された分岐点のアドレス自体、または分岐点情報をパーソナルコンピュータ１１０から指定するだけで、修正プログラム生成プログラムを実行するＣＰＵ１２は、制御プログラムの分岐点アドレスを容易に得ることができる。
【００６３】
そして、パーソナルコンピュータ１１０から設定レジスタのアドレスとその設定値とが受付けられると、受付けられたアドレスのレジスタを設定値に設定するための命令がＥＥＰＲＯＭ１４Ａに書込まれ、分岐点に対応する制御プログラムのアドレスの次のアドレスに復帰する命令がＥＥＰＲＯＭ１４Ａに書込まれる。制御プログラムの作成時に、レジスタとそこに設定される値がどの命令によって参照されるかを記録しておけば、修正プログラムの生成時にパーソナルコンピュータ１１０から設定レジスタのアドレスとその設定値とを指定することができる。このため、制御プログラムの開発環境が整っていなくても、制御プログラムがＣＰＵ１２で実行されてレジスタに設定された値を変更するための修正プログラムを容易に生成することができる。
【００６４】
また、イニシャライズ処理によって、制御プログラムのアドレスがレジスタ６に設定され、修正プログラムがＲＡＭ４の所定の領域にコピーされる。このため、ＣＰＵ７にＲＯＭ３に記録されたプログラムとは異なる処理を実行させるための修正プログラムを容易に生成することが可能となる。
【００６５】
レジスタの値の変更の具体例としては、色再現、輝度調整、自動利得制御（ＡＧＣ）等の画質に関連する処理に用いられるパラメータの変更、ＣＤＳ／ＡＧＣ２３で実行する雑音抑圧処理に用いられるパラメータの変更、ＤＳＰ２４の実行する処理で用いられる撮像パラメータの変更を適用することができる。さらにこれらのパラメータがＲＯＭ３のプログラムで固定されている場合であっても、監視カメラ１００が設置される環境に適したパラメータを設定することが可能となる。たとえば、逆光での撮影が多くなるような設置環境、廊下、地下室などの光の量が比較的少ない環境等に監視カメラ１００が設置される場合に有効である。
【００６６】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【００６７】
【図１】本発明の実施の形態の１つにおける監視カメラシステムの概略構成を示す図である。
【図２】分岐点指定情報を説明するための図である。
【図３】ＲＯＭに記憶されている修正プログラム生成プログラムの流れを示すフローチャートである。
【図４】図３のステップＳ０９で実行されるイニシャライズ処理の流れを示すフローチャートである。
【図５】従来のマイクロコンピュータの構成を示すブロック図である。
【図６】従来のマイクロコンピュータのメモリマップを示す図である。
【符号の説明】
【００６８】
１  フェッチポインタ、２  アドレスバス、５  比較回路、６  レジスタ、８  選択回路、９  分岐命令出力回路、１０  シリアルインタフェース、１１  データバス、１２  選択信号、１３  マイクロコンピュータ、１４Ａ  ＥＥＰＲＯＭ、１５  命令キュー、２１  レンズ、２２  ＣＣＤ、２３  ＣＤＳ／ＡＧＣ、２４  ＤＳＰ、１００  監視カメラ、１１０  パーソナルコンピュータ。
【図１】
2006268738.tif 000003
【図２】
2006268738.tif 000004
【図３】
2006268738.tif 000005
【図４】
2006268738.tif 000006
【図５】
2006268738.tif 000007
【図６】
2006268738.tif 000008