(57)【要約】 【課題】専用インタフェイスを設けることなく、電子機器を構成する各モジュールの制御プログラムの書き換えを高速化するとともにモジュール間のプログラム転送の信頼性を確保する。【解決手段】双方向通信可能な第１のバスに接続された第１および第２のコントローラを、第１のバスよりも高速で第１のコントローラから第２のコントローラへのデータ転送にのみ対応した複数の第２のバスで接続し、第１のコントローラは、第２のコントローラ用の新たな制御プログラムを外部から入力された場合、その転送を開始する旨を第１のバス経由で通知した後に、その制御プログラムを複数の第２のバスの各々へ送出し、第２のコントローラは、上記通知を受けた場合に、複数の第２のバスの各々を介して受信した制御プログラムを互いに比較し、同一である制御プログラムの数が所定の閾値以上である場合に、その制御プログラムを記憶する。【選択図】図１
2007156914.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、該ＣＰＵにその制御対象の駆動制御を実行させるための制御プログラムが予め書き込まれているメモリと、外部からのデータ入力を受け付ける外部入力手段と、を含む第１のコントローラと、
ＣＰＵと、該ＣＰＵにその制御対象の駆動制御を実行させるための制御プログラムが予め書き込まれているメモリと、を含む第２のコントローラと、
前記第１のコントローラと前記第２のコントローラとの間のデータ転送を双方向に仲介する第１のバスと、
前記第１のコントローラから前記第２のコントローラへのデータ転送を仲介する第２のバスであって、前記第１のバスよりも高速な第２のバスを複数有する電子機器において、
前記第１のコントローラは、
前記第２のコントローラ向けの新たな制御プログラムが前記外部入力手段を介して入力された場合に、前記新たな制御プログラムの転送を開始する旨の制御信号を前記第１のバスを介して前記第１のコントローラへ送信し、その後、前記新たな制御プログラムを前記複数の第２のバスの各々へと送出し、
前記第２のコントローラは、
前記第１のバスを介して前記制御信号を受信した場合に、その後、前記複数の第２のバスの各々を介して受信した制御プログラムを互いに比較し、同一である制御プログラムの個数が予め定められた閾値以上である場合に、該同一である制御プログラムでメモリの格納内容を更新する
ことを特徴とする電子機器。
【請求項２】
前記第１のコントローラは、
前記新たな制御プログラムを前記複数の第２のバスの各々へと送出した後に、その再送信を要求する旨の応答信号を前記第１のバスを介して前記第２のコントローラから受信した場合には、前記複数の第２のバスまたは前記第１のバスの何れかを介して前記新たな制御プログラムを再送信し、
前記第２のコントローラは、
前記複数の第２のバスの各々を介して受信した制御プログラムを互いに比較した結果、同一である制御プログラムの個数が前記予め定められた閾値未満である場合には、前記応答信号を前記第１のバスを介して前記第１のコントローラへ返信する
ことを特徴とする請求項１に記載の電子機器。
【請求項３】
前記第２のコントローラは、
前記応答信号を返信する際には、前記複数の第２のバスを介した通信のエラー発生状況または前記第２のコントローラのメモリへの書き込み状況を検出し、その検出結果を前記応答信号に付加して返信し、
前記第１のコントローラは、
前記第１のバスを介して受信した応答信号に付加されている前記検出結果に応じて、前記新たな制御プログラムを再送信する際に使用するバスを切り替える
ことを特徴とする請求項２に記載の電子機器。
【請求項４】
前記第２のコントローラを複数有することを特徴とする請求項１〜３の何れか１に記載の電子機器。
【請求項５】
ＣＰＵと、該ＣＰＵにその制御対象の駆動制御を実行させるための制御プログラムが予め書き込まれているメモリと、外部からのデータ入力を受け付ける外部入力手段と、を含む第１のコントローラと、
ＣＰＵと、該ＣＰＵにその制御対象の駆動制御を実行させるための制御プログラムが予め書き込まれているメモリと、を含む第２のコントローラと、
前記第１のコントローラと前記第２のコントローラとの間のデータ転送を双方向に仲介する第１のバスと、
前記第１のコントローラから前記第２のコントローラへの片方向のデータ転送を仲介する第２のバスであって、前記第１のバスよりも高速な複数の第２のバスと、を有する電子機器内で前記外部入力手段により前記第１のコントローラが取得した前記第２のコントローラ向けの制御プログラムを前記第１のコントローラから前記第２のコントローラへ転送する制御プログラム転送方法において、
前記第１のコントローラが、前記新たな制御プログラムの転送を開始する旨の制御信号を前記第１のバスを介して前記第１のコントローラへと送信した後に、前記新たな制御プログラムを前記複数の第２のバスの各々へと送出する第１のステップと、
前記第２のコントローラが、前記第１のバスを介して前記制御信号を受信した後に前記複数の第２のバスの各々を介して受信した制御プログラムを互いに比較し、同一である制御プログラムの個数が予め定められた閾値以上である場合に、該同一である制御プログラムでメモリの格納内容を更新する第２のステップと、
を含んでいることを特徴とする制御プログラム転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器の駆動制御を行うための制御プログラムを書き換えるための技術に関する。
【背景技術】
【０００２】
近年、画像処理装置の高性能化および高機能化に伴い、その駆動制御を行うための制御プログラムのプログラム構造が複雑になってきているとともに、そのプログラム規模も大きくなってきている。その一方で、市場への新製品の投入サイクルは短縮化する傾向にあり、制御プログラムの開発期間も短縮化される傾向にある。このため、制御プログラムの開発段階でプログラムテストに充分な時間をかけることができず、製品出荷後に制御プログラムの不良（所謂バグ）が顕在化し、製品出荷後に制御プログラムの書き換えを行う頻度が増加している。また、制御プログラムのプログラム規模の増加に伴い、その書き換え作業に要する時間も長くなってきている。
【０００３】
ところで、画像処理装置は、その画像処理装置全体の駆動制御や外部とのデータの入出力を行うシステムコントローラやそのシステムコントローラの制御下で画像処理エンジンの駆動制御を行うエンジンコントローラなどの複数のモジュールで構成されており、各モジュールがＣＰＵとそのＣＰＵに実行させる制御プログラムが書き込まれたメモリとを含んでいることが一般的である。
このような画像処理装置において、その製品出荷後に、例えばエンジンコントローラ用の制御プログラムを書き換える場合には、新たな制御プログラムをシステムコントローラによって外部から取得し、その制御プログラムをエンジンコントローラへ転送（以下、「ダウンロード」とも呼ぶ）してその書き換えを行わせる。そして、システムコントローラからエンジンコントローラへの制御プログラムの転送には、双方向通信が可能でパリティチェックなどによりデータ化けの発生を検出することが可能なシリアルバスが用いられることが一般的であった。
【０００４】
しかしながら、制御プログラムの転送にシリアルバスを用いる態様では、メモリへの制御プログラムの書き込み速度に比較してシリアルバスの転送速度が遅く、制御プログラムの書き換え処理の高速化が難しいといった問題点があった、このような問題点を解決するために、シリアルバスの転送速度を向上させることも提案されてはいるが（特許文献１参照）、転送データにデータ化けが生じているか否かをチェックするチェック作業がボトルネックになってしまい、結局、制御プログラムの書き換えを高速化することはできない。
そこで、制御プログラムの書き換えを高速化するための技術が従来より種々提案されており、その一例としては、特許文献２や特許文献３に開示された技術が挙げられる。特許文献２には、画像処理装置を構成する各モジュール間で制御プログラムの転送を行う際に、シリアルバスよりも高速なパラレルバスである画像データバスを用いるようにする技術が開示されている。また、特許文献３には、制御プログラムをダウンロードするための専用インタフェイスを設けることにより、制御プログラムの書き換えを高速化する技術が開示されている。
【特許文献１】特開２００１−３１８８００号公報
【特許文献２】特開２００１−３１３７６７号公報
【特許文献３】特開２００２−２４７２５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、画像データバスは、一般に、片方向の通信（すなわち、システムコントローラからエンジンコントローラへのデータ転送）のみにしか対応していないため、パリティチェックなどによるデータ化けの検出が不可能であり、前述したシリアルバス経由のデータ転送に比較して、データ転送の信頼性が著しく低下してしまう、といった問題点がある。
【０００６】
また、特許文献３に開示された技術のように、プログラム転送用の専用インタフェイスを設けるようにすれば、データ転送の信頼性を確保しつつその転送速度を向上させることが可能になるが、このような専用インタフェイスを設けることは画像処理装置の製造コストを上昇させてしまい、好ましくない。なお、上記各問題点は、画像処理装置に限ったことではなく、複数のモジュールにより構成され、各モジュールの駆動制御が制御プログラムにしたがって行われるような電子機器に共通の問題点である。
【０００７】
本発明は、上記課題に鑑みて為されたものであり、プログラム転送用の専用インタフェイスを設けることなく、電子機器を構成する各モジュールの駆動制御を行うための制御プログラムの書き換えを高速化するとともに、モジュール間でのプログラム転送の信頼性を確保することを可能にする技術を提供することを目的としている。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明は、ＣＰＵと、該ＣＰＵにその制御対象の駆動制御を実行させるための制御プログラムが予め書き込まれているメモリと、外部からのデータ入力を受け付ける外部入力手段と、を含む第１のコントローラと、ＣＰＵと、該ＣＰＵにその制御対象の駆動制御を実行させるための制御プログラムが予め書き込まれているメモリと、を含む第２のコントローラと、前記第１のコントローラと前記第２のコントローラとの間のデータ転送を双方向に仲介する第１のバスと、前記第１のコントローラから前記第２のコントローラへのデータ転送を仲介する第２のバスであって、前記第１のバスよりも高速な第２のバスを複数有する電子機器において、前記第１のコントローラは、前記第２のコントローラ向けの新たな制御プログラムが前記外部入力手段を介して入力された場合に、前記新たな制御プログラムの転送を開始する旨の制御信号を前記第１のバスを介して前記第１のコントローラへ送信し、その後、前記新たな制御プログラムを前記複数の第２のバスの各々へと送出し、前記第２のコントローラは、前記第１のバスを介して前記制御信号を受信した場合に、その後、前記複数の第２のバスの各々を介して受信した制御プログラムを互いに比較し、同一である制御プログラムの数が予め定められた閾値以上である場合に、該同一である制御プログラムでメモリの格納内容を更新することを特徴とする電子機器、を提供する。
このような態様によれば、外部入力手段を介して入力された第２のコントローラ向けの制御プログラムが上記第１のバスよりも高速な上記複数の第２のバスの各々を介して第１のコントローラから第２のコントローラへと転送される。そして、上記複数の第２のバスの各々を介して受信した制御プログラムを互いに比較した結果、同一である制御プログラムの個数が予め定められた閾値以上である場合に、該同一である制御プログラムで第２のコントローラのメモリの格納内容が更新される。逆に、第２のバスを介した転送過程でのデータ化けなどのエラー発生頻度が高いと、上記同一である制御プログラムの個数は上記閾値に達せず制御プログラムの書き換えが行われることはない。これにより、データ化けによる影響を回避し、データ転送の信頼性を維持することが可能になる。
【０００９】
より好ましい態様においては、前記第１のコントローラは、前記新たな制御プログラムを前記複数の第２のバスの各々へと送出した後に、その再送信を要求する旨の応答信号を前記第１のバスを介して前記第２のコントローラから受信した場合には、前記複数の第２のバスまたは前記第１のバスの何れかを介して前記新たな制御プログラムを再送信し、前記第２のコントローラは、前記複数の第２のバスの各々を介して受信した制御プログラムを互いに比較した結果、同一である制御プログラムの数が前記予め定められた閾値未満である場合には、前記応答信号を前記第１のバスを介して前記第１のコントローラへ返信することを特徴としている。
【００１０】
さらに好ましい態様においては。前記第２のコントローラは、前記応答信号を返信する際には、前記複数の第２のバスを介した通信のエラー発生状況または前記第２のコントローラのメモリへの書き込み状況を検出し、その検出結果を前記応答信号に付加して返信し、前記第１のコントローラは、前記第１のバスを介して受信した応答信号に付加されている前記検出結果に応じて、前記新たな制御プログラムを再送信する際に使用するバスを切り替えることを特徴としている。
なお、上記各態様において、前記第２のコントローラを複数有するとしても良いことは勿論である。
【００１１】
また、上記課題を解決するために本発明は、ＣＰＵと、該ＣＰＵにその制御対象の駆動制御を実行させるための制御プログラムが予め書き込まれているメモリと、外部からのデータ入力を受け付ける外部入力手段と、を含む第１のコントローラと、ＣＰＵと、該ＣＰＵにその制御対象の駆動制御を実行させるための制御プログラムが予め書き込まれているメモリと、を含む第２のコントローラと、前記第１のコントローラと前記第２のコントローラとの間のデータ転送を双方向に仲する第１のバスと、前記第１のコントローラから前記第２のコントローラへのデータ転送を仲介する第２のバスであって、前記第１のバスよりも高速な複数の第２のバスと、を有する電子機器内で前記外部入力手段により前記第１のコントローラが取得した前記第２のコントローラ向けの制御プログラムを前記第１のコントローラから前記第２のコントローラへ転送する制御プログラム転送方法において、前記第１のコントローラが、前記新たな制御プログラムの転送を開始する旨の制御信号を前記第１のバスを介して前記第１のコントローラへと送信した後に、前記新たな制御プログラムを前記複数の第２のバスの各々へと送出する第１のステップと、前記第２のコントローラが、前記第１のバスを介して前記制御信号を受信した後に前記複数の第２のバスの各々を介して受信した制御プログラムを互いに比較し、同一である制御プログラムの数が予め定められた閾値以上である場合に、該同一である制御プログラムでメモリの格納内容を更新する第２のステップと、を含んでいることを特徴とする制御プログラム転送方法、を提供する。
【発明の効果】
【００１２】
本発明によれば、プログラム転送用の専用インタフェイスを設けることなく、電子機器を構成する各モジュールの駆動制御を行うための制御プログラムの書き換えを高速化するとともに、モジュール間でのプログラム転送の信頼性を確保することが可能になる、といった効果を奏する。
【発明を実施するための最良の形態】
【００１３】
以下、図面の参照しつつ本発明の実施形態について説明する。
（Ａ．構成）
図１は、本発明に係る電子機器の１実施形態である画像形成装置の構成例を示すブロック図である。この画像形成装置は、複数のモジュールにより構成されており、具体的には、印刷用紙などの記録材上に電子写真方式で画像形成（画像の印刷）を行う画像形成部、この画像形成部の駆動制御を行うエンジンコントローラ２００、エンジンコントローラ２００の駆動制御および外部とのデータ授受を行うシステムコントローラ１００、を有している。
図１に示すように、システムコントローラ１００とエンジンコントローラ２００とは、双方向通信が可能な第１のバスであるシリアルバス３００と、Ｒ、ＧおよびＢの各色に対応した画像データをシステムコントローラ１００からエンジンコントローラ２００へ転送するための第２のバスとして機能する画像データバス４００Ｒ、４００Ｇおよび４００Ｂに接続されている。上記各画像データバスは、パラレルバスであり、シリアルバス３００よりも高速にデータ転送を行うことが可能である。
【００１４】
システムコントローラ１００は、図１に示すように、ＣＰＵ１１０、不揮発性メモリ１２０、揮発性メモリ１３０、外部入力部１４０、ハードディスクドライブ（図１では、ＨＤＤ）１５０および画像処理部１６０を有している。
【００１５】
不揮発性メモリ１２０は、例えばＥＥＰＲＯＭ（Electronically Erasable and Programmable Read Only Memory）である。この不揮発性メモリ１２０には、システムコントローラ１００の制御対象であるエンジンコントローラ２００の駆動制御や画像形成装置の外部とのデータ授受を行うための制御プログラムがその画像形成装置の工場出荷時点で予め書き込まれている。なお、本実施形態では、不揮発性メモリ１２０が、ＥＥＰＲＯＭである場合について説明するが、データの書き換えが可能であり、かつ、データを不揮発に記憶するメモリであれば、どのようなメモリであっても良い。
揮発性メモリ１３０は、例えばＲＡＭ（Random Access Memory）であり、上記制御プログラムをＣＰＵ１１０が実行する際にワークリエアとして利用される。
【００１６】
外部入力部１４０は、例えばＮＩＣ（Network Interface Card）であり、ＬＡＮ（Local Area Network）やインターネットなどの通信網に接続されている。この外部入力部１４０は、上記通信網を介して受信したデータをＣＰＵ１１０へと引き渡す。本実施形態では、システムコントローラ１００やエンジンコントローラ２００向けの新たな制御プログラムや、画像形成部により印刷用紙などの記録材に形成するべき画像を表す画像データが、外部入力部１４０を介して画像形成装置の外部から入力される。なお、本実施形態では、画像形成装置へ画像データや制御プログラムを入力するための外部入力部１４０がＮＩＣである場合について説明したが、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）などのコンピュータ装置読み取り可能な記録媒体に書き込まれている画像データや制御プログラムをその記録媒体から読み取る記録媒体読み取り手段（例えば、ＣＤ−ＲＯＭドライブ）であっても良いことは勿論である。
【００１７】
画像処理部１６０は、図１に示すように、分配手段１６０ａとＦＩＦＯ１６０ｂとを有しており、ＦＩＦＯ１６０ｂは前述した画像データバス４００Ｒ、４００Ｇおよび４００Ｂに接続されている。分配手段１６０ａは、ＣＰＵ１１０の制御の下、画像データを引き渡された場合には、その画像データをＦＩＦＯ１６０ｂを介してその色成分毎に対応する画像データバスへと送出し、エンジンコントローラ２００向けの新たな制御プログラムを引き渡された場合には、その制御プログラムを上記画像データバスの数分だけ複製し、その各々を１つづつ上記画像データバスの各々へと送出する。
【００１８】
一方、エンジンコントローラ２００は、図１に示すように、ＣＰＵ２１０、不揮発性メモリ２２０、揮発性メモリ２３０、エンジン制御部２４０および画像処理部２６０を有している。なお、不揮発性メモリ２２０は、不揮発性メモリ１２０と同様にＥＥＰＲＯＭであり、エンジンコントローラ２００の制御対象である画像形成部の駆動制御をＣＰＵ２１０に実行させるための制御プログラムが、画像形成装置の工場出荷時点で予め書き込まれている。また、揮発性メモリ２３０は、揮発性メモリ１３０と同様にＲＡＭであり、上記制御プログラムの実行過程で、ＣＰＵ２１０によってワークエリアとして利用される。
【００１９】
エンジン制御部２４０は、ＣＰＵ２１０の制御の下、画像形成部の駆動制御を行うものである。
画像処理部２６０は、図１に示すように比較手段２６０ａとＦＩＦＯ２６０ｂとを有しおり、ＦＩＦＯ２６０ｂは、ＦＩＦＯ１６０ｂと同様に上記３本の画像データバスに接続されている。比較手段２６０ａは、ＣＰＵ２１０の制御下で、上記３本の画像データバスを介して受信した制御プログラムを互いに比較し、それらが互いに一致しているか否かを判定し、その判定結果をＣＰＵ２１０へと引き渡す。詳細については後述するが、本実施形態では、ＣＰＵ２１０は、制御プログラムを送信する旨の制御信号をシリアルバス３００を介して受信した場合にのみ、上記比較手段２６０ａを作動させ、比較手段２６０ａによる比較の結果、同一である制御プログラムの個数が所定の閾値（本実施形態では、２）以上である場合に、その制御プログラムで不揮発性メモリ２２０に書き込まれている制御プログラムを更新する。
【００２０】
さて、図１に示す画像形成装置においては、図示せぬ電源が投入されると、ＣＰＵ１１０は、不揮発性メモリ１２０から制御プログラムを読み出して揮発性メモリ１３０に書き込み（以下、「制御プログラムの揮発性メモリへのロード」という）、揮発性メモリ１３０にロードした制御プログラムを実行する。一方、ＣＰＵ２１０は、不揮発性メモリ２２０に記憶されている制御プログラムを揮発性メモリ２３０へロードし、これを実行する。
【００２１】
そして、揮発性メモリ１３０にロードされた制御プログラムにしたがって作動しているＣＰＵ１１０は、外部入力部１４０から引き渡されたデータをＨＤＤ１５０へ一旦蓄積した後、そのデータをＨＤＤ１５０から読み出して画像処理部１６０へと引き渡すとともに、それらデータの受け取り手であるエンジンコントローラ２００に対して、そのデータの種別およびそのデータの大きさを示す制御信号をシリアルバス３００を介して送信する。
【００２２】
一方、揮発性メモリ２３０にロードされた制御プログラムにしたがって作動しているＣＰＵ２１０は、画像データを送信する旨の制御信号がシリアルバス３００を介して送信されてきた場合には、その制御信号に後続して上記３本の画像データバスを介して送信されてくる各画像データを画像処理部２６０により受信し、それら画像データに応じた画像を形成するようにエンジン制御部２４０の駆動制御を行う。また、揮発性メモリ２３０にロードされた制御プログラムにしたがって作動しているＣＰＵ２１０は、新たな制御プログラムを送信する旨の制御信号をシリアルバス３００を介して受信した場合には、その制御信号に後続して上記３本の画像データバス経由で送信されてくる各制御プログラムを画像処理部２６０により受信し、それら制御プログラムを比較手段２６０ａにより比較することで、それら制御プログラムの転送過程でデータ化けなどのエラーが発生したか否かを判定し、エラーが発生していないと判定された場合に、その新たな制御プログラムで不揮発性メモリ２２０に格納されている制御プログラムを更新する。
以上が、本実施形態に係る画像形成装置の構成である。
【００２３】
（Ｂ．動作）
次いで、本実施形態に係る画像形成装置のエンジンコントローラ２００の制御プログラムの書き換えを行う場合に、ＣＰＵ１１０およびＣＰＵ２１０が実行する動作について図面を参照しつつ説明する。なお、以下に説明する動作例では、ＣＰＵ１１０は揮発性メモリ１３０にロードされた制御プログラムにしたがって作動しており、ＣＰＵ２１０は揮発性メモリ２３０にロードされた制御プログラムにしたがって作動しているものとする。
【００２４】
例えば、エンジンコントローラ２００向けの新たな制御プログラムが、図１に示す画像形成装置が接続されている通信網を介して送信されてくるなど上記新たな制御プログラムが外部入力部１４０へ入力されると、ＣＰＵ１１０は、揮発性メモリ１３０にロードされている制御プログラムにしたがって、図３に示す制御プログラム送信動作を実行する。
図３に示すように、ＣＰＵ１１０は、まず、新たな制御プログラムを送信する旨の制御信号をシリアルバス３００を介してＣＰＵ２１０へ送信し（ステップＳＡ１００）、その後、上記新たな制御プログラムを画像処理部１６０へ引き渡し、その制御プログラムを上記３つの画像データバスの各々へ送出する（ステップＳＡ１１０）。
【００２５】
一方、揮発性メモリ２３０にロードされている制御プログラムにしたがって作動しているＣＰＵ２１０は、図３に示すように、シリアルバス３００を介してＣＰＵ１１０から送られてくる制御信号を受信（ステップＳＢ１００）すると、その制御信号に後続して画像データバスを介して送られてくるデータが制御プログラムであるのか否かをその制御信号の内容から判定する（ステップＳＢ１１０）。
【００２６】
ステップＳＢ１１０の判定結果が“Ｎｏ”である場合（すなわち、画像データバスを介して送られてくるデータが画像データであると判定した場合）には、ＣＰＵ２１０は、画像処理部２６０により受信した画像データをエンジン制御部２４０へ引き渡し、画像形成処理を実行する（ステップＳＢ１２０）。具体的には、ＣＰＵ２１０は、その画像データに応じた画像の形成が為されるようにエンジン制御部２４０の駆動制御を行う。
逆に、ステップＳＢ１１０の判定結果が“Ｙｅｓ”である場合には、各画像データバスを介して受信した制御プログラムを互いに比較し（ステップＳＢ１３０）、同一である制御プログラム（すなわち、ビット配列が同一である制御プログラム）の数が所定の閾値（本実施形態では、２）以上であるか否かを判定する（ステップＳＢ１４０）。
【００２７】
ステップＳＢ１４０の判定結果が“Ｙｅｓ”である場合には、ＣＰＵ２１０は、上記同一である制御プログラムの何れかで不揮発性メモリ２２０に格納されている制御プログラムを更新し（ステップＳＢ１５０）、制御プログラムを正しく受信したことを示す応答信号をシリアルバス３００を介してＣＰＵ１１０へ返信する（ステップＳＢ１６０）。以降、ＣＰＵ２１０は、更新後の制御プログラム（すなわち、新たな制御プログラム）を揮発性メモリ２３０へロードし、その新たな制御プログラムを実行する。
逆に、ステップＳＢ１４０の判定結果が“Ｎｏ”である場合には、ＣＰＵ２１０は、制御プログラムの転送過程でデータ化けが生じたものとみなし、制御プログラムの再送信を要求する旨の応答信号をシリアルバス３００を介してＣＰＵ１１０へ返信する（ステップＳＢ１７０）。
【００２８】
図２に戻って、ＣＰＵ１１０は、シリアルバス３００を介してＣＰＵ２１０から返信されてくる応答信号を受信（ステップＳＡ１２０）すると、その応答信号が制御プログラムの再送信を要求する旨の応答信号であるか否かを判定する（ステップＳＡ１３０）。
そして、ＣＰＵ１１０は、ステップＳＡ１１０の判定結果が“Ｙｅｓ”である場合には、ステップＳＡ１００以降の処理を再度実行することにより、エンジンコントローラ２００向けの新たな制御プログラムの再送信を実行する。
【００２９】
以上に説明した動作の結果、本実施形態に係る画像形成装置においては、シリアルバスに比較して高速なパラレルバスである画像データバス経由で制御プログラムの転送が行われるため、シリアルバス経由で制御プログラムの転送を行う従来の技術に比較して、その転送速度を向上させることが可能になる。
【００３０】
また、画像データバスは、片方向通信にのみに対応しているため、画像データバス経由で制御プログラムの転送を行う従来の技術では、双方向通信に対応しているシリアルバス経由で制御プログラムの転送を行う場合に比較して信頼性を確保することができなかったが、本実施形態に係る画像形成装置においては、各画像データバス経由で受信した制御プログラムを比較することによって、その転送過程でのデータ化けの有無が判定され、データ化けが発生したと判定された場合（すなわち、ステップＳＢ１４０の判定結果が“Ｎｏ”である場合）には、その制御プログラムの再送信を要求する旨の応答信号がシリアルバス３００経由でエンジンコントローラ２００からシステムコントローラ１００へと返信され、上記制御プログラムの再送信が実行される。これにより、データ化けに起因する信頼性の低下を回避することが可能になる。
【００３１】
つまり、本実施形態に係る画像形成装置によれば、その構成要素であるシステムコントローラ１００からエンジンコントローラ２００へ新たな制御プログラムを転送する際に、データ転送の信頼性を確保しつつその転送速度を向上させることが可能になる。
【００３２】
（Ｃ．変形）
以上、本発明の1実施形態について説明したが、係る実施形態に以下に述べるような変形を加えても良いことは勿論である。
（１）上述した実施形態では、画像形成装置に本発明を適用する場合について説明したが、画像読み取り機能と画像形成機能とを備えた復号機に本発明を適用するとしても勿論良い。具体的には、図４に示すように、エンジンコントローラ２００とスキャナ（図示省略）を制御するためのスキャナコントローラを有し、エンジンコントローラ２００とスキャナコントローラの駆動制御をシステムコントローラ１００により行う複合機（すなわち、画像読み取り機能と画像形成機能とを備えた画像処理装置）に本発明を適用するとしても勿論良い。要は、各モジュールがシリアルバスの他に、そのシリアルバスよりも高速な画像データバスを介して通信することが可能なように構成された画像処理装置であれば、本発明を適用することは可能である。
【００３３】
また、本発明の適用対象は、画像形成装置や復号機などの画像処理装置に限定されるものではなく、ＣＰＵとそのＣＰＵに制御対象の駆動制御を実行させるための制御プログラムが書き込まれた不揮発性メモリとを含む１または複数の副コントローラと、ＣＰＵとそのＣＰＵに各副コントローラの駆動制御を実行させるための制御プログラムが書き込まれた不揮発性メモリと外部からのデータ入力を受け付ける外部入力手段とを有する主コントローラと、各副コントローラと主コントローラとの間の双方向通信を仲介する第１のバスと、第１のバスよりも高速で主コントローラから各副コントローラへのデータ転送を仲介する複数の第２のバスと、を有する電子機器であれば、本発明を適用することが可能である。
【００３４】
（２）上述した実施形態では、３本の画像データバスの各々を介して受信した制御プログラムのうち、同一である制御プログラムの個数が所定の閾値（上記実施形態では、２）未満である場合には、データ化けが発生したと判定し、制御プログラムの転送を再度実行させるようにした。しかしながら、上記閾値の値は２に限定されるものではなく、確保されるべき信頼性の度合いに応じて適宜定めるようにすれば良い。例えば、上記閾値に３（すなわち、画像データバスの本数）を設定した場合には、画像データバスの各々を介して受信した制御プログラムの全てが同一である場合にのみ、データ化けが発生しなかったと判定されることになる。
【００３５】
また、上述した実施形態では、システムコントローラ１００とエンジンコントローラ２００の間に、Ｒ、ＧおよびＢの各色に対応した３つの画像データバスが設けられている場合について説明したが、システムコントローラ１００とエンジンコントローラ２００の間に設けられる画像データバスの本数は３に限定されるものではなく、Ｙ、Ｍ、ＣおよびＫの各色に対応した４本であっても勿論良い。そして、画像データバスの本数が４本である場合には、それら４本の画像データバスの各々を介して受信した４つの制御プログラムの全てが一致している場合に、データ化けは発生しなかったと判定しても良く、また、上記４つの制御プログラムのうちの何れか３つまたは２つが一致している場合に、データ化けが発生しなかったと判定するようにしても良い。
【００３６】
（３）上述した実施形態では、エンジンコントローラ２００用の制御プログラムを、システムコントローラ１００の分配手段１６０ａに画像データバスの数分だけ複製させ、その各々を各画像データバスに分配して転送させる場合について説明した。しかしながら、上記画像データバスの数分だけ複製した制御プログラムの各々を所定のデータサイズを有するデータブロックに分割し、そのデータブロック単位で各画像データバスへと送出し、そのデータブロック単位でデータ化けの有無の判定および再送信を実行するようにしても良い。
【００３７】
（４）上述した実施形態では、各画像データバスを介して受信した制御プログラムの比較結果に応じて、制御プログラムの再送信を要求する旨の応答信号または制御プログラムを正しく受信したことを示す応答信号の何れかをＣＰＵ２１０に返信させる場合について説明した。しかしながら、制御プログラムの再送信を要求する旨の応答信号を返信する場合に、複数の画像データバスを介した通信のエラー発生状況または不揮発性メモリ２２０への書き込み状況をＣＰＵ２１０に検出させ、その検出結果を前記応答信号に付加して返信させるとともに、シリアルバス３００を介して受信した応答信号に付加されている前記検出結果に応じて、新たな制御プログラムを再送信する際に使用するバスをＣＰＵ１１０に切り替えさせるようにしても良い。具体的には、画像データバスを介した通信のエラー発生頻度が所定の閾値を超えている場合には、画像データバスではなく、シリアルバスを介して上記新たな制御プログラムを送信させるようにしても良い。
【００３８】
（５）上述した実施形態では、新たな制御プログラムを送信する旨の制御信号をＣＰＵ１１０に送信させた後、即座に、その新たな制御プログラムをＣＰＵ１１０に送信させる場合について説明したが、上記制御信号に対する応答信号（例えば、エンジンコントローラ２００が新たな制御プログラムを受け入れ可能な状態になったことを示す応答信号）がシリアルバス３００を介してＣＰＵ２１０から返信されてくることを待ち受け、その応答信号を受信した場合に、新たな制御プログラムをＣＰＵ１１０に送信させるようにしても勿論良い。このようにすると、エンジンコントローラ２００が新たな制御プログラムを受け入れ不可能な状態であるにも拘わらず、新たな制御プログラムが送信されることを確実に回避することが可能になる。また、各画像データバスを介して上記新たな制御プログラムをＣＰＵ１１０に送信させる場合には、所定の圧縮アルゴリズムによる圧縮を行った後に、送信させる一方、ＣＰＵ２１０には、上記圧縮アルゴリズムに対応する解凍アルゴリズムによる解凍処理を実行させるようにしても良い。
【００３９】
（６）上述した実施形態では、不揮発性メモリ１２０に書き込まれている制御プログラムにしたがってＣＰＵ１１０に図２に示す動作を実行させる一方、不揮発性メモリ２２０に書き込まれている制御プログラムにしたがってＣＰＵ２１０に図３に示す動作を実行させる場合について説明した。しかしながら、ＣＰＵ１１０にその制御対象（上述した実施形態では、エンジンコントローラ２００）の駆動制御を実行させるための制御プログラムとは個別に、図２に示す動作をＣＰＵ１１０に実行させるためのプログラムを不揮発性メモリ１２０に書き込んでおき、そのプログラムをＣＰＵ１１０に実行させることによって図２に示す動作をＣＰＵ１１０に実行させるようにしても良い。同様に、ＣＰＵ２１０にその制御対象（上述した実施形態では、画像形成部）の駆動制御を実行させるための制御プログラムとは個別に、図３に示す動作をＣＰＵ２１０に実行させるためのプログラムを不揮発性メモリ１２０に書き込んでおき、そのプログラムをＣＰＵ２１０に実行させることによって図３に示す動作をＣＰＵ２１０に実行させるようにしても良い。
【図面の簡単な説明】
【００４０】
【図１】本発明に係る電子機器の１実施形態である画像形成装置の構成例を示す図である。
【図２】同画像形成装置を構成するシステムコントローラ１００のＣＰＵ１１０が不揮発性メモリ１２０に格納されている制御プログラムにしたがって行う動作の流れを示すフローチャートである。
【図３】同エンジンコントローラ２００のＣＰＵ２１０が不揮発性メモリ２２０に格納されている制御プログラムにしたがって行う動作の流れを示すフローチャートである。
【図４】変形例１に係る画像処理装置の構成例を示す図である。
【符号の説明】
【００４１】
１００…システムコントローラ、２００…エンジンコントローラ、１１０，２１０…ＣＰＵ、１２０，２２０…不揮発性メモリ、１３０、２３０…揮発性メモリ、１４０…外部入力部、１５０…ハードディスク、２４０…エンジン制御部、１６０，２６０…画像処理部、３００…シリアルバス、４００、４００Ｒ、４００Ｇ、４００Ｂ…画像データバス。
【図１】
2007156914.tif 000003
【図２】
2007156914.tif 000004
【図３】
2007156914.tif 000005
【図４】
2007156914.tif 000006