プログラムダウンロードシステム及びその方法、並びにプログラム供給装置と制御装置
【課題】 何のプログラムも格納されていないサブ基板の不揮発性メモリに対して、許可されたメイン基板からのみのブートプログラムを初めとして各種プログラムのダウンロードを可能にする。
【解決手段】 サブ基板20はメイン基板10に対して、サブ基板20側のメモリ空間におけるブート領域の一部であるチェックプログラム領域のみを開放し、メイン基板10は、開放された該領域に対してチェックプログラムをダウンロードする。サブ基板20は、ダウンロードされた該チェックプログラムを起動して、接続されているメイン基板10がプログラムのダウンロードが許可された許可対象であるか否かを判断し、許可対象であればサブ基板20におけるメモリ空間のブート領域を開放し、許可対象でなければブート領域を開放しない。
【解決手段】 サブ基板20はメイン基板10に対して、サブ基板20側のメモリ空間におけるブート領域の一部であるチェックプログラム領域のみを開放し、メイン基板10は、開放された該領域に対してチェックプログラムをダウンロードする。サブ基板20は、ダウンロードされた該チェックプログラムを起動して、接続されているメイン基板10がプログラムのダウンロードが許可された許可対象であるか否かを判断し、許可対象であればサブ基板20におけるメモリ空間のブート領域を開放し、許可対象でなければブート領域を開放しない。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置が有する当該制御装置を動作させるためのプログラムを格納するための不揮発性メモリに対して、プログラムを書き込むためのプログラムダウンロードシステム及び方法、並びに該システムを構成するプログラム供給装置と制御装置に関するものである。
【背景技術】
【0002】
たとえば、複合機等においては、印刷動作や画像処理などを実行するメイン基板(制御装置)に対して、各種機能を追加できるようにオプション設定されるサブ基板(制御装置)を増設できるものがある。このようなサブ基板としては、LAN基板やUSB基板などが提供されている。
【0003】
これらメイン基板及びサブ基板は一般的に、プログラムを実行するプロセッサであるCPUと、基板内外における各種データの送受信を制御するASICと、基板を動作させるためのプログラムを格納するためのROMと、RAM等で構成されている。そして、今日では、基板を動作させるためのプログラムを格納するためのROMとしては、アップグレードに対応するために、フラッシュ・メモリ等の不揮発性メモリを搭載するものが主流となってきている。
【0004】
基板を動作させるためのプログラムは、通常、基板を最低限動作させるためのブートプログラムと、基板の全機能を動作させるためのメインプログラムとで構成されている。基板の初期設定や初期診断は、ブートプログラムにより行われる。
【0005】
基板に対してのブートプログラムの提供は、フラッシュ・メモリ・ライタ(フラッシュROMライタ)などを使用してフラッシュ・メモリにブートプログラムを予めダウンロードしておき、該ダウンロード済のフラッシュ・メモリを基板上に実装することでなされることが一般的である。
【0006】
また、その他の手法として、フラッシュ・メモリを含む周辺回路を、基板本体から独立したフラッシュ・メモリDIMM基板等の別基板とし、該別基板を、基板本体に対して着脱自在な構成としているものもある。このような構成では、基板への部品実装の段階において必ずしもフラッシュ・メモリへのブートプログラムのダウンロード作業は必要なく、基板へ部品実装をした後からでも、基板より該別基板を外すことで、別基板に搭載されたフラッシュ・メモリに、専用プログラムライタなどを使用して、ブートプログラムをダウンロードすることができる。しかしながら、このような構成は、フラッシュ・メモリを別基板に搭載しているので、基板全体として必要な部品コストが高いというデメリットがある。
【0007】
一方、特許文献1では、サブ基板のMPUが、サブ基板に入力された書き換え用プログラム(ダウンロード用プログラムに相当)を、直接またはメイン基板のMPUを介してメイン基板上のRAMに格納し、該メイン基板のRAMに格納された書き換え用プログラムをサブ基板上のフラッシュ・メモリに直接またはメイン基板のCPUを介して書き込むデータ書き換え方法が提案されている。
【特許文献1】特開2002-259148号(2002年9月13日公開)
【発明の開示】
【発明が解決しようとする課題】
【0008】
ところが、事前にブートプログラムを書き込んだフラッシュ・メモリを基板上に実装する従来の技術では、将来的に、サブ基板が複数種のメイン基板の共通オプションとなった場合、各種メイン基板に対応したブートプログラムを書き込んだサブ基板を各々用意する必要があり、共通オプションのメリットが生かせない。また、将来的に、ブートプログラムが機能拡張されたとしても、ブートプログラムのバージョンアップを実現することができない。
【0009】
なお、フラッシュ・メモリを、基板に対して着脱自在に構成された別基板に搭載する従来の技術においては、接続されるメイン基板に対応させてブートプログラムを書き込むことができるため、上のような問題は発生しないが、前述したように、別基板としているので、部品コストが高いといったデメリットがあり、好ましくない。
【0010】
このような課題に対する解決策の一つとして、メイン基板側からサブ基板のフラッシュ・メモリにサブ基板のプログラムを直接ダウンロードする構成が考えられる。これによれば、サブ基板のフラッシュ・メモリには、メイン基板からそれに応じたブートプログラムがダウンロードされるので、対応するブートプログラムが書き込まれたサブ基板をメイン基板の種類に応じて用意しなくても済む。
【0011】
しかしながら、この場合、何の工夫もなく、サブ基板のフラッシュ・メモリをメイン基板に対して開放すると、メイン基板はサブ基板のフラッシュ・メモリに対して自由にデータをダウンロードすることが可能となるため、メイン基板からサブ基板に対して不正なデータをダウンロードして、サブ基板が本来意図していない用途に用いられるといった惧れがある。また、誤ったプログラムをサブ基板にダウンロードした場合、サブ基板が起動しなくなる可能性もある。
【0012】
なお、上記した特許文献1では、サブ基板のCPUを動作させるためのプログラムが最低限必要であり、サブ基板にプログラムが何もない状態からのデータのダウンロード方法については、特に言及するものではない。
【0013】
本発明は上記課題に鑑みなされたものであって、プログラムが何もない状態の制御装置に、許可されているプログラム供給装置からのみ選択的にプログラムをダウンロードさせることが可能なプログラムダウンロードシステム及びその方法、並びに該プログラムダウンロード方法を実施し、該システムを構成するプログラム供給装置と制御装置を提供することであり、ひいては、ある制御装置が複数種の他の主たる制御装置の共通オプションとなった場合でも、共通オプションのメリットが生かせ、また、ブートプログラムが機能拡張されたとしても、ブートプログラムのバージョンアップにも容易に対応可能にすることを目的としている。
【課題を解決するための手段】
【0014】
本発明に係るプログラムダウンロード方法は、上記課題を解決するために、制御装置が有する該制御装置を動作させるためのプログラムを格納するための不揮発性メモリに、該制御装置を動作させるためのプログラムをプログラム供給装置からダウンロードさせるプログラムダウンロードシステムのプログラムダウンロード方法であって、上記制御装置は、上記プログラム供給装置に対して、上記不揮発性メモリにおけるブートプログラム領域の一部の所定領域のみを開放し、上記プログラム供給装置は、上記制御装置において開放された上記所定領域にチェックプログラムをダウンロードさせ、上記制御装置は、上記プログラム供給装置よりダウンロードされた上記チェックプログラムを起動して、接続されている上記プログラム供給装置が当該制御装置へのプログラムのダウンロードを許可されている許可対象であるか否かを判断し、許可対象であれば上記不揮発性メモリにおける上記所定領域以外の領域も開放し、許可対象でなければ上記不揮発性メモリにおける上記所定領域以外の領域を開放しないことを特徴としている。
【0015】
これによれば、制御装置では、その不揮発性メモリにおけるブートプログラム領域の一部の所定領域にプログラム供給装置よりダウンロードされたチェックプログラムを起動することで、接続されているプログラム供給装置が自装置へのプログラムのダウンロードを許可されている許可対象であるか否かを判断し、許可対象であれば不揮発性メモリにおける上記所定領域以外の領域も開放するが、許可対象でなければ不揮発性メモリにおける上記所定領域以外の領域を開放しない。
【0016】
しかも、制御装置がプログラム供給装置に対して、チェックプログラムをダウンロードするために解放する不揮発性メモリにおける領域は、ブートプログラム領域の一部の所定領域のみであるので、プログラム供給装置が、該所定領域にブートプログラムをダウンロードさせようとしても、ブートプログラムを全て格納することはできず制御装置を動作させることはできない。
【0017】
したがって、制御装置に対しては、その不揮発性メモリに何のプログラムも格納されていない状態であっても、許可されているプログラム供給装置からのみ選択的にブートプログラムを始めとして、種々のプログラム(ダウンロード用プログラム)をダウンロードさせることが可能となり、制御装置に対して、不正なデータがダウンロードされてしまい、本来意図していない用途に使用されたり、制御装置が起動しなくなったりすることがない。
【0018】
上記した本発明のプログラムダウンロード方法においては、さらに、制御装置は、プログラム供給装置が許可対象であれば、上記不揮発性メモリにおけるブートプログラム領域分を開放することが好ましい。
【0019】
これによれば、チェックプログラムにより、制御装置と接続されているプログラム供給装置が、プログラムのダウンロードが許可されている許可対象であると判断されたとしても、制御装置は、自装置を最低限動作させるために必要なブートプログラム領域のみを開放するので、ブートプログラム領域以外の領域に対して、本来意図していないプログラムがダウンロードされることを未然に防止することができる。
【0020】
上記した本発明のプログラムダウンロード方法においては、さらに、上記チェックプログラムには、プログラム供給装置に付されている装置固有の識別情報が含まれており、制御装置における許可対象であるか否かの判断に、プログラム供給装置から取得される上記識別情報を用いることが好ましい。
【0021】
これによれば、制御装置側に、許可対象であるプログラム供給装置の識別情報リスト等は必要になるものの、制御装置が、接続されているプログラム供給装置からの識別情報を基に許可対象であるか否かを判断することができるので、許可されていないプログラム供給装置からのプログラムのダウンロードを一切排除することができる。
【0022】
上記した本発明のプログラムダウンロード方法においては、さらに、制御装置における許可対象であるか否かの判断に、制御装置に設けられるジャンパの設定を用いることが好ましい。
【0023】
これによれば、制御装置に設けたジャンパ設定により、接続されているプログラム供給装置を許可対象に指定することができるので、制御装置側に許可対象であるプログラム供給装置の識別情報リスト等を具備させておかなくても、許可対象のプログラム供給装置を簡単に指定することができる。
【0024】
本発明のプログラム供給装置は、制御装置と接続され、該制御装置とI/Fメモリ空間を共有し、該制御装置が有する該制御装置を動作させるためのプログラムを格納するための不揮発性メモリに、該制御装置を動作させるプログラムを上記I/Fメモリ空間を介してダウンロードさせるプログラム供給装置であって、接続されている上記プログラム供給装置が上記制御装置へのプログラムのダウンロードを許可されている許可対象であるか否かを判断し、許可対象であれば上記制御装置が有する不揮発性メモリのメモリ領域をI/Fメモリ空間に対して開放し、許可対象でなければ上記不揮発性メモリのメモリ領域をI/Fメモリ空間に対して開放しない処理を実行させるチェックプログラムを、上記制御装置が有する上記不揮発性メモリにおけるブートプログラム領域にダウンロードさせるチェックプログラムダウンロード手段を備えることを特徴としている。
【0025】
本発明のプログラム供給装置のプログラム供給方法は、上記課題を解決するために、制御装置と接続され、該制御装置とI/Fメモリ空間を共有し、該制御装置が有する該制御装置を動作させるためのプログラムを格納するための不揮発性メモリに、該制御装置を動作させるプログラムを上記I/Fメモリ空間を介してダウンロードさせるプログラム供給装置のプログラム供給方法であって、接続されている上記プログラム供給装置が上記制御装置へのプログラムのダウンロードを許可されている許可対象であるか否かを判断し、許可対象であれば上記制御装置が有する不揮発性メモリのメモリ領域をI/Fメモリ空間に対して開放し、許可対象でなければ上記不揮発性メモリのメモリ領域をI/Fメモリ空間に対して開放しない処理を実行させるチェックプログラムを、上記制御装置が有する上記不揮発性メモリにおけるブートプログラム領域にダウンロードさせるチェックプログラムダウンロードステップを含むことを特徴としている。
【0026】
本発明の制御装置は、上記課題を解決するために、プログラム供給装置と接続され、該プログラム供給装置とI/Fメモリ空間を共有し、該プログラム供給装置から、自装置が有する自装置を動作させるためのプログラムを格納するための不揮発性メモリに対して、自装置を動作させるためのプログラムがダウンロードされる制御装置であって、自装置が有する上記不揮発性メモリのブートプログラム領域にブートプログラムが格納されていない状態で、上記不揮発性メモリのブートプログラム領域の一部の所定領域のみを上記I/Fメモリ空間に対して開放するチェックプログラム受付手段を備えることを特徴としている。
【0027】
本発明の制御装置の制御方法は、上記課題を解決するために、プログラム供給装置と接続され、該プログラム供給装置とI/Fメモリ空間を共有し、該プログラム供給装置から、自装置が有する自装置を動作させるためのプログラムを格納するための不揮発性メモリに対して、自装置を動作させるためのプログラムがダウンロードされる制御装置の制御方法であって、自装置が有する上記不揮発性メモリのブートプログラム領域にブートプログラムが格納されていない状態で、上記不揮発性メモリのブートプログラム領域の一部の所定領域のみを上記I/Fメモリ空間に対して開放するチェックプログラム受付ステップを含むことを特徴としている
これによれば、プログラム供給装置は、チェックプログラムダウンロード手段が、接続されている制御装置における不揮発性メモリのブートプログラム領域に対して、接続されているプログラム供給装置が該制御装置へのプログラムのダウンロードを許可されている許可対象であるか否かを判断し、許可対象であれば該制御装置が有する不揮発性メモリのメモリ領域をI/Fメモリ空間に対して開放し、許可対象でなければ不揮発性メモリのメモリ領域をI/Fメモリ空間に対して開放しない処理を実行させるチェックプログラムをダウンロードさせる。
【0028】
一方、制御装置では、チェックプログラム受付手段が、自装置が有する不揮発性メモリのブートプログラム領域にブートプログラムが格納されていない状態で、不揮発性メモリのブートプログラム領域の一部の所定領域のみを上記I/Fメモリ空間に対して開放する。
【0029】
したがって、チェックプログラムダウンロード手段を備えたプログラム供給装置とチェックプログラム受付手段を備えた制御装置とにより、前述した本発明のプログラムダウンロードシステムにおけるプログラムダウンロード方法を容易に実施することができる。
【0030】
上記した本発明のプログラム供給装置においては、さらに、上記チェックプログラムダウンロード手段は、プログラム格納領域に格納されているチェックプログラムを参照して上記制御装置に送信するためのチェックプログラムを生成するプログラム生成手段と、該チェックプログラム生成手段にて生成されたチェックプログラムを、上記I/Fメモリ空間を介して上記制御装置へと転送するプログラム送信手段とで構成することができる。
【0031】
また、本発明のプログラム供給装置においては、さらに、自装置に付されている装置固有の識別情報を格納する識別情報格納領域を備え、上記チェックプログラム生成手段は、上記識別情報格納領域を参照して、チェックプログラムに自装置の識別情報を組み入れる構成とすることができる。
【0032】
そして、このようなプログラム供給装置とでプログラムダウンロードシステムを構成する本発明の制御装置としては、さらに、上記不揮発性メモリに、自装置へのプログラムのダウンロードが許可されている許可対象のプログラム供給装置に付された識別情報のリストが格納されている構成とすることが好ましい。
【0033】
このようなプログラム供給装置と制御装置の構成とすることで、前述した、制御装置側で接続されているプログラム供給装置からの識別情報を基に許可対象であるか否かを判断して、許可されていないプログラム供給装置からのプログラムのダウンロードを一切排除することができるといった、本発明のプログラムダウンロード方法を容易に実施することができる。
【0034】
また、本発明の制御装置においては、自装置と接続されているプログラム供給装置が、自装置へのプログラムのダウンロードが許可されている許可対象であることを指定するためのジャンパが設けられている構成とすることもできる。
【0035】
このような構成とすることで、前述した、制御装置側に許可対象であるプログラム供給装置の識別情報リスト等を具備させておかなくても、許可対象のプログラム供給装置を簡単に指定することができるといった、本発明のプログラムダウンロード方法を容易に実施することができる。
【0036】
さらに、本発明のプログラム供給装置においては、上記チェックプログラムに、チェックプログラムのダウンロードの終了を示すチェックプログラムダウンロード終了情報を上記プログラム供給装置へ送信する処理を実行させる終了報知プログラムがさらに含まれている構成としてもよい。
【0037】
これによれば、制御装置からチェックプログラムを正常にダウンロードできたことが通知されてくるので、プログラム供給装置側で、チェックプログラムのダウンロードが正常に終了したことを確認することができる。
【0038】
さらに、本発明のプログラム供給装置においては、上記制御装置より上記チェックプログラムダウンロード終了情報を受信したか否かを判断する解析手段をさらに備え、上記チェックプログラムダウンロード手段は、チェックプログラムを送信後、上記解析手段がチェックプログラムダウンロード終了情報を受信していない場合に、上記制御装置に対して上記チェックプログラムを再送する構成としてもよい。
【0039】
これによれば、プログラム供給装置から制御装置に対してチェックプログラムをダウンロードする時に、何らかの影響でチェックプログラムを正常にダウンロードできず、プログラム供給装置の解析手段が、制御装置からのチェックプログラムダウンロード終了情報を受信できない場合、チェックプログラムダウンロード手段が制御装置に対してチェックプログラムを再送して再度ダウンロードさせるので、チェックプログラムダウンロード作業を確実に実施することができる。
【0040】
さらに、本発明のプログラム供給装置においては、上記制御装置へのチェックプログラムのダウンロード状態をユーザに報知するダウンロード状態報知手段をさらに備える構成としてもよい。
【0041】
報知されるダウンロード状態としては、例えば、チェックプログラムのダウンロード中であること、チェックプログラムのダウンロードが終了したこと、或いはチェックプログラムのダウンロードが許可されていないことなどを挙げることができる。
【0042】
このように、チェックプログラムダウンロードの状態をユーザに報知することで、チェックプログラムのダウンロード途中に、プログラム供給装置あるいは制御装置の電源を落とされることに対して未然に注意を促すことができる、またはプログラムのダウンロードが許可されていないプログラム供給装置に対して制御装置を誤って装着している場合に、プログラムダウンロードが許可されていない旨をユーザに報知することができる。
【0043】
さらに、本発明のプログラム供給装置においては、自装置の電源が投入されたか否かを判断する電源監視手段をさらに備え、上記チェックプログラムダウンロード手段は、上記電源監視手段にて電源が投入されたと判断されると、上記制御装置にチェックプログラムをダウンロードさせる動作を開始する構成としてもよい。
【0044】
これによれば、プログラム供給装置に電源が投入された時に、プログラム供給装置に装着されている制御装置に対して自動的にチェックプログラムがダウンロードされるので、チェックプログラムのダウンロードをユーザによるオペレーションを介在することなく実施することができる。
【0045】
さらに、本発明のプログラム供給装置においては、上記電源監視手段にて電源が投入されたと判断されると、上記制御装置にチェックプログラムをダウンロードさせる動作を開始することの可否を、上記チェックプログラムダウンロード手段に対して設定する設定手段をさらに備える構成としてもよい。
【0046】
これによれば、設定手段によって、プログラム供給装置への電源投入時におけるチェックプログラムの自動ダウンロードの可否を設定することができるので、例えば、プログラム供給装置の不揮発性メモリに格納されているチェックプログラムのバージョンが古い場合など、ユーザが制御装置へのチェックプログラムのダウンロードを希望しない場合は、上記設定手段を用いて自動ダウンロードを拒否することができる。
【0047】
さらに、本発明のプログラム供給装置においては、上記制御装置にチェックプログラムをダウンロードさせる動作の開始を、上記チェックプログラムダウンロード手段に対して指示する指示入力手段をさらに備える構成としてもよい。
【0048】
これによれば、指示入力手段を用いて、ユーザは所望のタイミングで制御装置に対してチェックプログラムをダウンロードさせることが可能となる。
【0049】
さらに、本発明のプログラム供給装置においては、外部装置と接続され、情報の入出力を可能にする入出力部を少なくとも2つ備えると共に、上記制御装置と接続される入出力部とは別の入出力部を介して上記チェックプログラムを含む上記制御装置に対するダウンロード用プログラムを取得し、取得したダウンロード用プログラムが上記プログラム格納領域に格納されていない場合は取得したダウンロード用プログラムを格納する一方、既に格納されている場合は両ダウンロード用プログラムの比較を行い、取得したダウンロード用プログラムの方が新しければ上記プログラム格納領域の内容を更新するプログラム受信手段をさらに備える構成としてもよい。
【0050】
これによれば、制御装置とプログラム供給装置とが接続され、制御装置へのプログラムのダウンロードが必要となった時に、プログラム供給装置は、制御装置と接続されている入出力部とは異なる別の入出力部を経由して、その都度、ダウンロードするダウンロード用プログラム(チェックプログラムを含む)を取得することが可能となるので、ダウンロード用プログラムをプログラム供給装置のプログラム格納領域に常時格納しておく必要がなく、プログラム供給装置におけるプログラム格納領域を圧迫することがない。
【0051】
さらに、本発明のプログラム供給装置においては、上記プログラム格納領域に、上記チェックプログラムを含む上記制御装置に対するダウンロード用プログラムが圧縮されて格納されている構成としてもよい。
【0052】
このように、ダウンロード用プログラムをプログラム供給装置のプログラム格納領域に圧縮して格納しておくことで、プログラム供給装置におけるプログラム格納領域の圧迫を軽減することができる。
【発明の効果】
【0053】
本発明に係るプログラムダウンロード方法は、以上のように、制御装置が有する該制御装置を動作させるためのプログラムを格納するための不揮発性メモリに、該制御装置を動作させるためのプログラムをプログラム供給装置からダウンロードさせるプログラムダウンロードシステムのプログラムダウンロード方法であって、上記制御装置は、上記プログラム供給装置に対して、上記不揮発性メモリにおけるブートプログラム領域の一部の所定領域のみを開放し、上記プログラム供給装置は、上記制御装置において開放された上記所定領域にチェックプログラムをダウンロードさせ、上記制御装置は、上記プログラム供給装置よりダウンロードされた上記チェックプログラムを起動して、接続されている上記プログラム供給装置が当該制御装置へのプログラムのダウンロードを許可されている許可対象であるか否かを判断し、許可対象であれば上記不揮発性メモリにおける上記所定領域以外の領域も開放し、許可対象でなければ上記不揮発性メモリにおける上記所定領域以外の領域を開放しないものである。
【0054】
本発明のプログラム供給装置は、以上のように、制御装置と接続され、該制御装置とI/Fメモリ空間を共有し、該制御装置が有する該制御装置を動作させるためのプログラムを格納するための不揮発性メモリに、該制御装置を動作させるプログラムを上記I/Fメモリ空間を介してダウンロードさせるプログラム供給装置であって、接続されている上記プログラム供給装置が上記制御装置へのプログラムのダウンロードを許可されている許可対象であるか否かを判断し、許可対象であれば上記制御装置が有する不揮発性メモリのメモリ領域をI/Fメモリ空間に対して開放し、許可対象でなければ上記不揮発性メモリのメモリ領域をI/Fメモリ空間に対して開放しない処理を実行させるチェックプログラムを、上記制御装置が有する上記不揮発性メモリにおけるブートプログラム領域にダウンロードさせるチェックプログラムダウンロード手段を備える構成である。
【0055】
本発明の制御装置は、以上のように、プログラム供給装置と接続され、該プログラム供給装置とI/Fメモリ空間を共有し、該プログラム供給装置から、自装置が有する自装置を動作させるためのプログラムを格納するための不揮発性メモリに対して、自装置を動作させるためのプログラムがダウンロードされる制御装置であって、自装置が有する上記不揮発性メモリのブートプログラム領域にブートプログラムが格納されていない状態で、上記不揮発性メモリのブートプログラム領域の一部の所定領域のみを上記I/Fメモリ空間に対して開放するチェックプログラム受付手段を備える構成である。
【0056】
これにより、制御装置に対しては、その不揮発性メモリに何のプログラムも格納されていない状態であっても、許可されているプログラム供給装置からのみ選択的にプログラムをダウンロードさせることが可能となり、制御装置に対して、不正なデータがダウンロードされてしまい、本来意図していない用途に使用されたり、制御装置が起動しなくなったりすることがない。
【0057】
それゆえ、制御装置が複数種の他のプログラム供給装置の共通オプションとなった場合でも、共通オプションのメリットが生かせると共に、ブートプログラムが機能拡張されたとしても、ブートプログラムのバージョンアップにも容易に対応できるといった効果を奏する。
【発明を実施するための最良の形態】
【0058】
本発明の一実施形態について、図1〜図22に基づいて説明すると以下の通りである。
【0059】
まず、図1を用いて、本実施形態におけるプログラムダウンロードシステムにおける全体構成を説明する。図1は、本実施形態におけるメイン基板(プログラム供給装置)10及びサブ基板(制御装置)20の各ハードウェア構成、及びメイン基板10とサブ基板20との接続関係を示している。
【0060】
メイン基板10は、メイン基板10の制御を行うCPU11、メイン基板内外とのデータ送受信の制御を行うASIC12、メイン基板10のプログラムが格納されている書き換え可能な読み出し専用メモリであるフラッシュ・メモリ(図ではFlash)13、一時的にプログラムやデータを記憶させておくRAM14、第1のI/Fポート15、及び第2のI/Fポート16を備えている。
【0061】
サブ基板20は、サブ基板20の制御を行うCPU21、サブ基板内外とのデータ送受信を行うASIC22、サブ基板20の制御プログラムが格納されている書き換え可能な読み出し専用メモリであるフラッシュ・メモリ23、一時的にプログラムやデータを記憶させておくRAM24及びI/Fポート25で構成されている。
【0062】
そして、これらメイン基板10とサブ基板20とは、メイン基板10の第1のI/Fポート15及びサブ基板20のI/Fポート25を介して接続されている。
【0063】
具体的な例で説明すると、メイン基板10は、複合機におけるプリンタコントローラ基板であり、サブ基板20は、プリンタコントローラ基板に機能拡張するためのLAN(local area network)基板やUSB(universal serial bus)基板などである。
【0064】
なお、本発明は上記例に限定するものではなく、図1に示すようなメイン基板10及びサブ基板20の構成及び接続関係にあり、サブ基板20にプログラムが何もない状態でも、メイン基板10からI/Fポート25を介して、サブ基板20のフラッシュ・メモリ23にアクセスできるものであれば、どんな形態のものであってもよい。
【0065】
図2に、メイン基板10とサブ基板20の各メモリ空間の関係を示す。メイン基板10のメモリ空間は、メイン基板10におけるフラッシュ・メモリ13とRAM14とで構成され、サブ基板20のメモリ空間は、サブ基板20におけるフラッシュ・メモリ23とRAM14とで構成される。
【0066】
メイン基板10のメモリ空間とサブ基板20のメモリ空間とは、I/Fメモリ空間を介して接続されている。I/Fメモリ空間は、メイン基板10とサブ基板20のどちらからでもアクセス可能な共有メモリである。該共有メモリは、メイン基板10のASIC12、サブ基板20のASIC22、あるいはメイン基板10及びサブ基板20の双方のASIC12・22内部に存在する。
【0067】
図2の例では、サブ基板20のメモリ空間におけるアドレス空間0x05_0000_0000〜0x0A_FFFF_FFFFがプログラム領域に割り当てられており、プログラム領域となる該アドレス空間は、フラッシュ・メモリ13に対応している。そして、該アドレス空間0x05_0000_0000〜0x0A_FFFF_FFFFのうち、アドレス空間0x05_0000_0000〜0x09_FFFF_FFFFまでがメインプログラムのメイン領域に、アドレス空間0x0A_0000_0000〜0x0A_FFFF_FFFFまでがブートプログラムのブート領域(ブートプログラム領域)に、さらに細かく割り当てられている。
【0068】
サブ基板20の上記プログラム領域には、初期状態において、サブ基板20を動作させるためのプログラムは何も書き込まれておらず、メイン基板10よりサブ基板20を動作させるためのプログラムがダウンロードされて初めて動作可能となる。
【0069】
その場合、メイン基板10よりサブ基板20に対してプログラムをダウンロードできるように、サブ基板20の上記プログラム領域を全て開放することも考えられる。しかしながら、プログラム領域の全てをメイン基板10に対して解放すると、該プログラム領域に対してメイン基板10が不正なデータを書き込み、サブ基板20が本来意図していない用途として使用される恐れがある。
【0070】
そこで、本実施形態では、サブ基板20はメイン基板10に対して、サブ基板20のプログラム領域におけるブート領域の一部であるチェックプログラム領域のみを開放するようになっている。チェックプログラム領域は、後述するチェックプログラムを書き込むための領域であり、ブート領域の先頭アドレスより始まる空間である。図2の例では、アドレス空間0x0A_FFFF_0000〜0x0A_FFFF_FFFFが、チェックプログラム領域にあたる。そして、該チェックプログラム領域の空間サイズはブート領域に比して小さく、メイン基板10がチェックプログラム領域へブートプログラムをダウンロードしたとしても、ブートプログラムを書き込みきることはできず、サブ基板20を動作させることはできない。
【0071】
上記チェックプログラムは、サブ基板20のフラッシュ・メモリ23にダウンロードされ、サブ基板20がパワーオン/リセットし、チェックプログラムを起動することで、サブ基板20が、当該サブ基板20に接続されている相手側基板、つまりメイン基板10が、サブ基板20へのプログラムのダウンロードを許可してもよいダウンロード許可対象(許可対象基板)であるか否かを判断する処理と、ダウンロード許可対象であればサブ基板20におけるフラッシュ・メモリ23におけるプログラム領域を開放し、ダウンロード許可対象でなければサブ基板20のフラッシュ・メモリ23のプログラム領域を開放しない処理とを実行するものである。
【0072】
メイン基板10に対してのチェックプログラム領域の開放は、具体的には、予め、サブ基板20のASIC22において、初期設定値によりチェックプログラム領域を開放するよう指定しておく。サブ基板20のASIC22によるI/F初期化時、サブ基板20のASIC22は、サブ基板20のメモリ空間におけるチェックプログラム領域0x0A_FFFF_0000〜0x0A_FFFF_FFFFのみを、メイン基板10と接続しているI/Fメモリ空間のチェックプログラム領域0x0F_FFFF_0000〜0x0F_FFFF_FFFFに開放する。これにより、メイン基板10は、I/Fメモリ空間の0x0F_FFFF_0000〜0x0F_FFFF_FFFFにアクセスすることで、サブ基板20のメモリ空間におけるチェックプログラム領域0x0A_FFFF_0000〜0x0A_FFFF_FFFFにデータを書き込むことができる。
【0073】
図3に、メイン基板10上で動作するプログラムの機能ブロック図を示す。同図に示すように、メイン基板10には、CPU11、ASIC12、フラッシュ・メモリ13、及びRAM14を適時動作させることによって、プログラム生成部(プログラム生成手段)31、プログラム格納領域32、ID格納領域33、プログラム送信部(プログラム送信手段)34、電源監視部(電源監視手段)35、プログラムダウンロード指示部(指示入力手段)36、解析部(解析手段)37、ダウンロード状態報知部(ダウンロード状態報知手段)38、ダウンロード切替え設定部(設定手段)39、プログラム圧縮/伸張部40、及びプログラム受信部(プログラム受信手段)41が構成される。
【0074】
上記プログラム格納領域32には、図4に示すように、少なくとも、チェックプログラムと、サブ基板20用のブートプログラムとが格納されている。このうち、チェックプログラムは、サブ基板20上に図5に示す各処理部と格納領域とを実現するための各プログラムとチェックプログラムのバージョンを表すチェックプログラムバージョン情報とを含んでいる。
【0075】
また、上記ID格納領域33には、例えば、メイン基板10のMACアドレスや機種名、シリアルナンバー等の、各メイン基板10を個別に識別できるような文字列等のID(識別情報)が格納されている。なお、ここでは、メイン基板10のIDとしてMACアドレスを使用した場合の説明を行う。
【0076】
図5に、サブ基板20上で動作する、メイン基板10よりダウンロードされたチェックプログラムの機能ブロック図を示す。同図に示すように、チェックプログラムを起動して、CPU21、ASIC22、フラッシュ・メモリ23、及びRAM24を適時動作させることによって、サブ基板20には、ダウンロード可否判断部51、ジャンパ情報抽出部52、ダウンロード許可ID抽出部53、ブート領域開放部54、メイン基板情報格納領域55、及び通知部56が構成される。上記メイン基板情報格納領域55には、チェックプログラムに含まれるメイン基板情報(メイン基板ID)が格納されている。
【0077】
また、本実施形態では、サブ基板20に、図6に示すようなジャンパ60が適宜設けられている。図6は、ジャンパ60の構成とその設定方法を説明する図面であり、(a)はジャンパ60を横から見た図面、(b)はジャンパピンの結線図である。
【0078】
ジャンパ60は、ジャンパピン61とジャンパソケット62とで構成され、ジャンパソケット62が装着されたジャンパピン61のピン間が導通するようになっている。たとえば、ジャンパピン61の1pin(ピン)が電源層(Vcc)に接続され、ジャンパピン61の3pinがGND層に接続されている構成にしておけば、同図のようにジャンパソケット62を、ジャンパピン61の1pinと2pinとに装着することで、ジャンパピン61の2pinは電源層(Vcc)に接続されることとなる。このように、ジャンパ60は、ジャンパソケット62の装着箇所に依存して、ジャンパピン61の2pinの電圧レベルを切替えることができるものである。なお、サブ基板20におけるジャンパ60の具体的な利用方法については後述する。
【0079】
以下、本実施形態のプログラムダウンロードシステムにおける動作について説明する。
【0080】
まず、メイン基板10で実施される基本処理であるチェックプログラム送信処理について説明する。
【0081】
チェックプログラム送信処理とは、プログラム生成部31が、チェックプログラム生成要求にしたがってID格納領域33及びプログラム格納領域32より情報を収集してチェックプログラムを作成し、プログラム送信部34が作成されたチェックプログラムをサブ基板20に送信して、ダウンロードさせる処理である。
【0082】
プログラム生成部31へのチェックプログラム生成要求は、電源監視部35、プログラムダウンロード指示部(指示入力手段)36、及び解析部37の3つの処理部より送信することができ、これについては後述する。
【0083】
図7のフローチャートを用いて、チェックプログラム送信処理の手順を説明する。チェックプログラム生成要求があると、プログラム生成部31は、プログラム格納領域32からチェックプログラムを取得し(S1)、次いで、ID格納領域33からメイン基板10のIDを取得する(S2)。そして、プログラム生成部31は、取得したメイン基板10のIDを取得したチェックプログラムに組み込み、チェックプログラムを完成させる(S3)。完成されたチェックプログラムは、プログラム送信部34へと送られる。
【0084】
次に、プログラム送信部34が、メイン基板10とサブ基板20とが接続されているI/Fメモリ空間にアクセスして、サブ基板20が開放しているサブ基板20のメモリ空間に対応するアドレス情報を取得する(S4)。プログラム送信部34は、プログラム生成部31より送られてきたチェックプログラムをI/Fメモリ空間における取得したアドレス情報の空間に書き込む(S5)。これにより、I/Fメモリ空間を介してサブ基板20のメモリ空間にチェックプログラムがダウンロードされ、チェックプログラム送信処理が終了する。
【0085】
図2の例では、サブ基板20のメモリ空間におけるチェックプログラム領域0x0A_FFFF_0000〜0x0A_FFFF_FFFFには、I/Fメモリ空間の0x0F_FFFF_0000〜0x0F_FFFF_FFFFが対応している。したがって、S5において、プログラム送信部34は、この0x0F_FFFF_0000〜0x0F_FFFF_FFFFにチェックプログラムを書き込む。サブ基板20のメモリ空間へは、I/Fメモリ空間の該0x0F_FFFF_0000〜0x0F_FFFF_FFFFに書き込まれたデータのみが移動し、ダウンロードされる。
【0086】
次に、サブ基板20の各処理部における基本処理であるダウンロード可否判断処理及びブート領域開放処理について説明する。サブ基板20は、メイン基板10よりダウンロードされたチェックプログラムを起動することで、ダウンロード可否判断処理を実施する。
【0087】
ダウンロード可否判断処理とは、ダウンロード可否判断部51が、チェックプログラムをダウンロードした相手先のメイン基板10がダウンロード許可対象であるか否かを判断する処理である。ダウンロード可否判断処理にてダウンロード許可対象であると判断されると、ブート領域開放部54がブート領域開放処理を実施し、ダウンロード許可対象ではないと判断されると、ブート領域開放部54はブート領域開放処理を実施しない。ここでは、より好ましい対応として、ダウンロード許可対象でない場合、通知部56が、チェックプログラムのダウンロードを拒否することを示すチェックプログラムダウンロード拒否コマンドを、メイン基板10に対して応答するようになっている。
【0088】
ブート領域開放処理とは、ブート領域開放部54が、メイン基板10がサブ基板20のブート領域に対してデータをダウンロードできるように開放する処理である。ここでは、より好ましい対応として、チェックプログラムのダウンロードが正常終了したことを示すチェックプログラム終了コマンド(チェックプログラム終了情報)を、メイン基板10に対して応答するようになっている。これは、チェックプログラム内に、チェックプログラムダウンロード終了を示すコマンドをメイン基板に対して送信する処理を実行させるプログラム(終了報知プログラム)を含めておくことで実現されており、サブ基板20は、チェックプログラムが正常にダウンロードできたことをメイン基板10に対して通知するので、メイン基板10側では、チェックプログラムのダウンロードが正常に終了したことを確認することができる。
【0089】
また、本実施形態のサブ基板20では、ダウンロード可否判断処理において、相手先のメイン基板10がダウンロード許可対象であるか否かの判断を、チェックプログラムに格納されているメイン基板IDを基にする場合と、ダウンロード許可判断のためのジャンパ設定を基にする場合との、2つが可能となっている。
【0090】
メイン基板IDを基にする判断は、ダウンロード許可ID抽出部53が、サブ基板20のフラッシュ・メモリ内に格納されているダウンロード許可IDリストを抽出し、ダウンロード可否判断部51が、メイン基板情報格納領域55に格納されているメイン基板IDが、該リスト内に含まれているか否かで判断を行う。図8に、ダウンロード許可IDリスト65の例を示す。ダウンロード許可IDリスト65は、ダウンロード許可ID66‥で構成されている。
【0091】
また、ジャンパ設定を基にする場合は、サブ基板20に設けられているダウンロード許可判断のためのジャンパの設定を、ジャンパ情報抽出部52が抽出し、ダウンロード可否判断部51が、抽出されたジャンパの設定を基に判断を行う。
【0092】
このようなジャンパ設定によるダウンロード許可対象であるか否かの判断を可能にしておくことで、サブ基板20にダウンロード許可IDリスト65を予め持たせずとも、ダウンロード許可対象となるメイン基板10を指定可能となる。
【0093】
具体的には、図9(a)のように、たとえば、サブ基板20に接続可能なメイン基板10がA〜Cの3種類ある場合、サブ基板20上に3つのジャンパJ1・J2・J3を設け、A〜Cの3種類のメイン基板10に対するダウンロード許可/拒否の判断を、これら3つのジャンパJ1〜J3にて設定する構成が考えられる。
【0094】
ここでは、図9(b)の設定テーブルに示すように、ジャンパJ1の設定がA種のメイン基板10のダウンロード許可/未許可に対応しており、ジャンパJ2の設定がB種のメイン基板10のダウンロード許可/未許可に、ジャンパJ3の設定がC種のメイン基板10のダウンロード許可/未許可に対応している。
【0095】
サブ基板20は、設定表に従い、例えば、ジャンパJ1の2pinの電圧レベルがVccであればA種のメイン基板10をダウンロード許可対象とし、ジャンパJ1の2pinの電圧レベルがGNDであれば、A種のメイン基板10をダウンロード未許可とする。
【0096】
さらに、本実施形態のサブ基板20では、プログラムダウンロード可否判断を実行するか否か自体をジャンパにて設定できるようになっており、プログラムダウンロード可否判断のためのジャンパが設けられている。ダウンロード可否判断処理においては、ジャンパ情報抽出部52が該ジャンパの設定を抽出し、ダウンロード可否判断部51が、抽出された該ジャンパの設定を基に、プログラムダウンロード可否を判断し、可能に設定されている場合のみ、ダウンロード可否判断処理を続ける。
【0097】
プログラムダウンロード可否判断のためのジャンパを設けることで、メイン基板10からのチェックプログラムダウンロードを、ダウンロード許可対象であるか否かとは関係なく、強制的に拒否することが可能となる。
【0098】
具体的には、プログラムダウンロード可否判断のためのジャンパがダウンロード拒否に設定されている場合、どんなメイン基板10が接続されたとしても、サブ基板20はブート領域を開放せず、メイン基板10に対して、チェックプログラムダウンロードを拒否するチェックプログラムダウンロード拒否コマンドを送信する。
【0099】
ここでは、図10(a)(b)に示すように、プログラムダウンロード可否判断のためのジャンパJP1の1pinがVccに、ジャンパJP1の3pinがGNDに接続されている。そして、プログラムダウンロード可否判断用のジャンパソケットによって、ジャンパJP1の2pinの電圧レベルがVccであれば、プログラムダウンロード可否判断を実行し、ジャンパJP1の2pinの電圧レベルがGNDであれば、プログラムダウンロード可否判断を実行しないというように、予め取り決められている。
【0100】
なお、ジャンパ設定を用いる以外の手法で、プログラムダウンロード許可対象か否かの判断を実行するか否かを切り替えるようにしてもよい。
【0101】
図11のフローチャートに、ダウンロード可否判断処理の手順を示す。チェックプログラムがダウンロードされ、サブ基板20がこれを起動することで、該処理は開始される。まず、ジャンパ情報抽出部52が、図10に示した、プログラムダウンロード可否判断のためのジャンパJP1の設定情報を抽出する(S11)。次に、ダウンロード可否判断部51は、S11で抽出された設定情報であるジャンパJP1の2pinの電圧レベルがVccかGNDかを判断し(S12)、ジャンパJP1の2pinの電圧レベルがVccであればS13に進み、ジャンパJP1の2pinの電圧レベルがGNDであればS19に進む。
【0102】
S13では、ダウンロード可否判断部51は、メイン基板情報格納領域55よりメイン基板IDを抽出する。次に、ダウンロード可否判断部51は、ダウンロード許可対象であるか否かの判断を、サブ基板20上のフラッシュ・メモリ内に格納されているダウンロード許可IDリスト65を用いて行うかどうかを判断する(S14)。S14における判断は、サブ基板20のフラッシュ・メモリ23内に、図8に示したダウンロード許可IDリスト65があるかないかで判断する。
【0103】
ダウンロード許可IDリスト65があれば、ダウンロード許可IDリスト65によりダウンロード許可対象を判断するとして、S15に進む。一方、ダウンロード許可IDリストがなければ、サブ基板20上のジャンパ設定によりダウンロード許可対象を判断するとして、S16に進む。
【0104】
S15では、ダウンロード許可抽出部53が、ダウンロード許可IDリスト65を読み出し、S17に進む。S16では、ジャンパ情報抽出部52が、サブ基板20上のダウンロード許可用のジャンパJ1〜J3の設定を抽出し、同じくS17に進む。S17では、ダウンロード可否判断部51が、S15或いはS16で抽出された情報に基づいて、ダウンロード許可対象か否かを判断する。
【0105】
S17において、ダウンロード許可対象と判断されれば、S18に進み、後述するブート領域開放処理が行われる。一方、ダウンロード許可対象ではないと判断されれば、S19に進み、通知部56が、チェックプログラムのダウンロードを拒否することを示すチェックプログラムダウンロード拒否コマンドをメイン基板10に送信し、プログラムダウンロード可否判断処理を終了する。
【0106】
図12のフローチャートに、ブート領域開放処理の手順を示す。ブート領域開放部54は、サブ基板20上のブート領域(図2の例では、0x0A_0000_0000〜0x0A_FFFF_FFFF)を開放するように、サブ基板20のASIC22の初期設定値を変更する(S21)。次に、通知部56が、メイン基板10の解析部37に対して、チェックプログラムダウンロード終了コマンドを送信する(S22)。
【0107】
この後、メイン基板10及びサブ基板20がパワーオン/リセットし、各基板10・20が再起動する(S23)。なお、メイン基板10は、チェックプログラムダウンロード終了コマンドに再起動を指示するコマンドが含まれており、該コマンドを受け取ることでメイン基板10は再起動する。一方、サブ基板20は、チェックプログラムダウンロード終了コマンドを送信すると再起動がかかるように設定されている。
【0108】
サブ基板20では、再起動がかかることで、そのASIC22の初期設定値にしたがい、サブ基板20のブート領域を開放し(S24)、ブート領域開放処理を終了する。
【0109】
このようなブート領域開放処理により、メイン基板10側からサブ基板20のブート領域にアクセスすることが可能になり、メイン基板10側からサブ基板20用のブートプログラムをダウンロードさせることが可能となる。
【0110】
図2の例では、サブ基板20のメモリ空間におけるブート領域0x0A_0000_0000〜0x0A_FFFF_FFFFには、I/Fメモリ空間の0x0F_0000_0000〜0x0F_FFFF_FFFFが対応している。メイン基板10がこの0x0F_0000_0000〜0x0F_FFFF_FFFFにブートプログラムを書き込むことで、サブ基板20のメモリ空間へは、該I/Fメモリ空間の該0x0F_0000_0000〜0x0F_FFFF_FFFFに書き込まれたデータのみが移動し、ダウンロードされる。
【0111】
次に、より好ましい対応としてメイン基板10で実施される、チェックプログラム再送処理について説明する。チェックプログラム再送処理とは、メイン基板10の解析部37がサブ基板20の通知部56から、チェックプログラムダウンロード終了コマンドも、チェックプログラムダウンロード拒否コマンドも受信できていない場合に、メイン基板10からサブ基板20に対して、再度、チェックプログラムのダウンロードを行う処理である。
【0112】
図13のフローチャートに、チェックプログラム再送処理の手順を示す。プログラム送信部34は、サブ基板20に対してのチェックプログラムのダウンロードが終了したか否かを判断しており(S31)、チェックプログラムのダウンロードが終了していなければ、チェックプログラムのダウンロードが終了するまで、チェックプログラムのダウンロードが終了したか否かの判断を繰り返す。
【0113】
S31において、チェックプログラムのダウンロードの終了が確認されると、解析部37は、サブ基板20の通知部56よりチェックプログラム終了コマンドを受信したか否かを判断し(S32)、チェックプログラム終了コマンドを受信していれば、チェックプログラム再送処理を終了する。
【0114】
一方、S32において、チェックプログラム終了コマンドを受信していなければ、解析部37は、サブ基板20の通知部56よりチェックプログラム拒否コマンドを受信したか否かをさらに判断し(S33)、チェックプログラム拒否コマンドを受信していれば、チェックプログラム再送処理を終了する。ここで、チェックプログラム拒否コマンドも受信していなければ、解析部37は、プログラム生成部31にチェックプログラム生成要求を出力する(S34)。これにより、図7で説明したチェックプログラム送信処理が、再度、開始される。
【0115】
このように、メイン基板10からサブ基板20に対してチェックプログラムをダウンロードする時に、何らかの影響でチェックプログラムを正常にダウンロードできなかった場合、サブ基板20からのチェックプログラムダウンロード終了を示すコマンドの応答がないことをトリガーとして、自動的にメイン基板10からサブ基板に対してチェックプログラムが再ダウンロードされるので、メイン基板10からサブ基板20へのチェックプログラムダウンロード作業を確実に実施することができる。
【0116】
次に、より好ましい対応としてメイン基板10で実施される、ダウンロード状態報知処理について説明する。ダウンロード状態報知処理とは、ダウンロード状態報知部38にて実施される、メイン基板10からサブ基板20に対して、チェックプログラムのダウンロード中であること、またはチェックプログラムのダウンロードが終了したこと、またはチェックプログラムのダウンロードが許可されていないことを、ユーザが認識できるように、報知する処理である。
【0117】
報知の仕方としては、例えばメイン基板10が装着されている機器のオペレーションパネル上に各内容を報知することが挙げられる。具体例で説明すると、図14(a)〜(c)のように、チェックプログラムのダウンロード中であれば、オペレーションパネル70の表示画面上に『プログラムダウンロード中…』と表示し、チェックプログラムのダウンロードが終了すれば、オペレーションパネル70の表示画面上に『プログラムのダウンロードが終了しました。』と表示し、チェックプログラムのダウンロードが許可されていないのであれば、オペレーションパネル70の表示画面上に『プログラムのダウンロードが許可されていません。』と表示する、等が考えられる。
【0118】
なお、上記説明した具体例に限らず、チェックプログラムがダウンロード中であること、またはチェックプログラムのダウンロードが終了したこと、またはチェックプログラムのダウンロードが許可されていないことをユーザが視認できる方法であれば、どんな形態でも構わない。例えば、上記例とは別の方法で、メイン基板10上にステータスLEDを設けて、チェックプログラムがダウンロード中であればステータスLEDが点滅し、チェックプログラムのダウンロードが終了すればステータスLEDが消灯し、チェックプログラムのダウンロードが許可されていないならばステータスLEDが点灯するなどの構成でも構わない。
【0119】
図15のフローチャートに、ダウンロード状態報知処理の手順を示す。本フローチャートでは、メイン基板10が装着されている機器のオペレーションパネル70(図14参照)上に、ダウンロード状態を表示する。
【0120】
ダウンロード状態報知部38は、まず、プログラム送信部34にアクセスして、チェックプログラムをサブ基板20にダウンロード中か否かを判断する(S41)。チェックプログラムのダウンロード中であれば、S42に進んで、オペレーションパネル70の表示画面上に『プログラムダウンロード中…』と表示し、再度S41に戻る。一方、チェックプログラムのダウンロード中でなければS43に進み、解析部37にアクセスして、サブ基板20に対してチェックプログラムのダウンロードが終了したか否かを判断する。
【0121】
チェックプログラムのダウンロードが終了していれば、ダウンロード状態報知部38は、オペレーションパネルの表示画面上に『プログラムのダウンロードが終了しました。』と表示し(S44)、ダウンロード状態報知処理を終了する。
【0122】
一方、チェックプログラムのダウンロードが終了していなければ、ダウンロード状態報知部38は、解析部307にアクセスして、サブ基板20からチェックプログラムダウンロード拒否コマンドを受信していないかどうか判断し(S45)、チェックプログラムダウンロード拒否コマンドを受信していれば、オペレーションパネル70の表示画面上に『プログラムのダウンロードが許可されていません。』と表示し(S46)、ダウンロード状態報知処理を終了する。サブ基板20からチェックプログラムダウンロード拒否コマンドを受信していなければ、再度S41に戻る。
【0123】
このように、メイン基板10からサブ基板20に対するチェックプログラムダウンロードのステータスをユーザに報知することで、チェックプログラムダウンロード途中に、メイン基板10あるいはサブ基板20の電源を落とされることに対して未然に注意を促すことができる、またはプログラムダウンロード許可対象でないメイン基板10に対してサブ基板20を誤って装着している場合に、プログラムダウンロードが許可されていない旨をユーザに報知することができる。
【0124】
次に、より好ましい対応としてメイン基板10で実施される、電源監視処理について説明する。電源監視処理とは、電源監視部35が、メイン基板10に電源が投入されたか否かを監視し、メイン基板10に電源が投入されると同時に、プログラム生成部31に対して、前述したチェックプログラム生成要求を行う処理である。
【0125】
図16のフローチャートに、電源監視処理の手順を示す。電源監視部35は、メイン基板10に対して電源が投入されたか否かを判断し(S51)、メイン基板10に対して電源が投入されていないならば、再度S51に戻り、電源が投入されたか否かを判断する。
一方、メイン基板10に対して電源が投入されたら、プログラム生成部31にチェックプログラム生成要求を出力する(S52)。これにより、図7で説明したチェックプログラム送信処理が開始される。
【0126】
このように、メイン基板10に電源が投入時に、メイン基板10に装着されているサブ基板20に対して自動的にチェックプログラムをダウンロードする構成にすることで、チェックプログラムのダウンロードをユーザによるオペレーションを介在することなく実施することができる。
【0127】
但し、このような電源投入時にサブ基板20に対してチェックプログラムが自動的にダウンロードされることをユーザが希望しない場合も考えられる。例えば、メイン基板10のフラッシュ・メモリ13にチェックプログラムが格納されていない場合や、メイン基板10のフラッシュ・メモリ13に格納されているチェックプログラムのバージョンが古い場合である。このような場合、電源投入時におけるチェックプログラムのダウンロードを実施しないようにユーザ側にて設定できる構成が好ましい。
【0128】
そこで、本実施形態のメイン基板10においては、より好ましい対応として、電源投入時にチェックプログラムをダウンロードするか否かを、ユーザサイドで指定できるようになっており、ダウンロード切替え設定部39が、ユーザに指定されている場合に、電源投入時にチェックプログラムをダウンロードするようになっている。
【0129】
具体的には、メイン基板10上にダウンロード切替え用のジャンパJP2が設けられており、ダウンロード切替え用のジャンパソケットの装着位置によって、メイン基板10からサブ基板20へのチェックプログラムのダウンロードタイミングを切替えることができる。本実施形態では、ダウンロード切替え設定部39は、ジャンパJP2の2pinの電圧レベルがVccであれば、図16で説明した電源監視処理により、メイン基板10への電源投入時にチェックプログラムのダウンロードを行い、ジャンパJP2の2pinの電圧レベルがGNDであれば、メイン基板10への電源投入時にチェックプログラムのダウンロードを行わない。
【0130】
なお、上記説明した具体例に限らず、ダウンロードの処理を切替えることができる方法であれば、どんな形態でも構わない。たとえば、上記例とは別の方法で、メイン基板10上にスイッチを設けて、スイッチがON状態であれば、メイン基板10への電源投入時にチェックプログラムのダウンロードを行い、スイッチがOFF状態であれば、メイン基板10への電源投入時にチェックプログラムのダウンロードを行わないようにするなどの構成でも構わない。
【0131】
図18のフローチャートに、メイン基板10のダウンロード切替え設定部39におけるダウンロード切替え処理の手順を示す。本フローチャートでは、ダウンロード切替え用ジャンパJP2を用いる。ダウンロード切替え設定部38は、ダウンロード切替え用のジャンパJP2の2pinの電圧レベルがVccであるか否かを判断し(S61)、Vccであれば、S62に進んで、図16で説明した電源監視処理を行う。一方、Vccでなければ、そのまま処理を終了し、電源監視部35による電源開始処理は実施されない。
【0132】
次に、より好ましい対応としてメイン基板10で実施される、プログラムダウンロード指示処理について説明する。メイン基板10への電源投入時にチェックプログラムのダウンロードを行わない設定時に、チェックプログラムのダウンロード実行のユーザ指示を可能にするものであって、チェックプログラムのダウンロードを指示する操作をユーザが行うことで、ユーザが意図しているタイミングでチェックプログラムのダウンロードを実行することができる。
【0133】
たとえば、図19に示すように、メイン基板10が装着されている機器のオペレーションパネル70の表示画面上に、プログラムダウンロード実行メニュー71と、OKボタン72及びキャンセルボタン73を表示させ、ユーザがOKボタン72を押下することで、チェックプログラムのダウンロードが実行される構成が考えられる。
【0134】
なお、上記説明した具体例に限らず、チェックプログラムのダウンロード実行を指示できる方法であれば、どんな形態でも構わない。たとえば、上記例とは別の方法で、メイン基板10上にプッシュスイッチを設けて、プッシュスイッチを押下したら、チェックプログラムのダウンロードを実行する構成でも構わない。
【0135】
図20のフローチャートに、プログラムダウンロード指示部36におけるプログラムダウンロード指示処理を示すフローチャートである。本フローチャートでは、メイン基板10が装着されている機器のオペレーションパネル70での操作により、チェックプログラムのダウンロードを実行する。
【0136】
プログラムダウンロード指示部36は、まず、オペレーションパネル70の表示画面上にプログラムダウンロード実行メニュー71を表示する(S71)。次に、OKボタン72が押下されたか否かを判断し(S72)、OKボタン72が押下されれば、プログラム生成部31にチェックプログラム生成要求を出力する(S73)。これにより、図7で説明したチェックプログラム送信処理が開始される。
【0137】
一方、OKボタン72が押下されなければ、S74に進んで、キャンセルボタン73が押下されたか否かを判断し、キャンセルボタン73が押下されれば、プログラムダウンロード指示処理を終了する。キャンセルボタン73も押下されていなければ、再び、S72に戻り、OKボタン72が押下されたか否かを判断する。
【0138】
次に、より好ましい対応としてメイン基板10において実施される、プログラム受信処理について説明する。プログラム受信処理とは、プログラム受信部41が、サブ基板20と接続する第1のI/Fポート15とは別の第2のI/Fポート16を経由して取得したサブ基板20に対してダウンロードするためのプログラムデータ(ダウンロード用プログラム)を、プログラム格納領域32に格納する処理である。プログラム受信部41は、チェックプログラムを含めダウンロード用プログラムを受信すると、プログラム格納領域32に受信した該プログラムデータが格納されていない時はそのまま格納し、既に格納されている場合は、受信したプログラムの方が新しい場合には格納する(更新する)。
【0139】
ダウンロード用プログラムとしてチェックプログラムを例に説明すると、具体的には、メイン基板10の第2のI/F16としては、LAN、USB、RS−232Cなどが考えられ、PCから当該I/Fポートを経由してチェックプログラムをメイン基板10に対してダウンロードする構成が考えられる。このプログラム受信処理により、サブ基板20にダウンロードするためのチェックプログラムをメイン基板10のプログラム格納領域32に常時格納しておく必要は無く、チェックプログラムのダウンロードが必要な時に、メイン基板10の第2のI/F16を経由して、その都度チェックプログラムを取得すればよい。また、将来的にチェックプログラムが機能拡張されたとしても、チェックプログラムのバージョンアップを容易に実現することができる。
【0140】
図21のフローチャートに、プログラム受信処理の手順を示す。プログラム受信部41は、基板10がサブ基板20と接続する第1のI/Fポート15とは別の第2のI/Fポート16を経由して、チェックプログラムデータを受信したか否かを判断する(S81)。チェックプログラムデータを受信していなければ、再度S81に戻り、チェックプログラムデータを受信したか否かを判断する。一方、チェックプログラムデータを受信すると、プログラム格納領域32にチェックプログラムデータが既に格納されているか否かを判断する(S82)。
【0141】
S82において、プログラム格納領域32にチェックプログラムデータが格納されていない場合は、S81で取得したチェックプログラムデータをプログラム格納領域32に格納して、再度、S81に戻る。
【0142】
一方、S82において、プログラム格納領域32にチェックプログラムデータが格納されている場合は、S81で取得したチェックプログラムデータのプログラムバージョン情報と、プログラム格納領域32に既に格納されているチェックプログラムのプログラムバージョン情報とを比較して、どちらのプログラムの方が新しいかを判断する(S83)。
【0143】
S83において、新しく取得したチェックプログラムデータの方が新しい場合は、プログラム格納領域32に既に格納されているチェックプログラムデータを削除した上で、該取得したチェックプログラムデータを格納(上書き)し、再度、S81に戻る。一方、S83において、プログラム格納領域32に既に格納されているチェックプログラムデータの方が新しい場合は、S81で取得したチェックプログラムデータを削除し(S86)、再度、S81に戻る。なお、該処理の終了については特に記載していないが、メイン基板10の電源がオフされた時点などで終了する。
【0144】
また、プログラム受信処理にて、第2のI/Fポート16を経由して取得される対象プログラムはチェックプログラムに限定されるものではなく、同様の手順にて、ブートプログラムを取得することも可能である。つまり、プログラム受信処理において、サブ基板20と接続する第1のI/Fポート15とは別の第2のI/Fポート16を経由してブートプログラムデータが受信されると、プログラム格納領域32にブートプログラムデータが格納されていない時はそのままプログラム格納領域32に格納され、プログラム格納領域32に既に格納されている場合は、受信したブートプログラムの方が新しい場合に格納される(上書きする)。
【0145】
これにより、サブ基板20にダウンロードするためのブートプログラムをメイン基板10のプログラム格納領域32に常時格納しておく必要は無く、ブートプログラムのダウンロードが必要な時に、メイン基板10の第2のI/Fポート16を経由して、その都度ブートプログラムを取得すればよい。また、将来的にブートプログラムが機能拡張されたとしても、ブートプログラムのバージョンアップを容易に実現することができる。
【0146】
また、上述のプログラム受信処理においては、さらに、第2のI/Fポート16を経由して取得したチェックプログラムデータ或いはブートプログラムデータが、プログラム格納領域32に既に格納されているチェックプログラムデータ或いはブートプログラムデータより新しい場合、取得したチェックプログラムデータ或いはブートプログラムデータをプログラム格納領域32に上書き格納する一方、格納を完了した時点で、プログラム受信部41が、プログラム生成部31にチェックプログラム生成要求を出力する構成としてもよい。これにより、図7で説明したチェックプログラム送信処理が開始されるので、新しく取得したチェックプログラムを、或いは新しく取得したブートプログラムを、サブ基板20に対してダウンロードすることが可能となる。
【0147】
また、本メイン基板10では、サブ基板20に対してダウンロードするプログラムをメイン基板10のフラッシュ・メモリ13に格納するにあたり、圧縮状態データで格納しておく構成でもよい。これにより、メイン基板10のフラッシュ・メモリ13の領域の圧迫を軽減することができる。
【0148】
次に、より好ましい対応としてメイン基板10にて実施される、プログラム伸張処理について説明する。プログラム伸張処理とは、プログラム圧縮/伸張部40が、サブ基板20に対してダウンロードするプログラムがメイン基板10のフラッシュ・メモリ13上に圧縮された状態で格納されている場合に当該プログラムを伸張する処理である。
【0149】
プログラム圧縮/伸張部40は、メイン基板10からサブ基板20へと、チェックプログラムやブートプログラムをダウンロードする際に、メイン基板10のプログラム格納領域32においてこれらプログラムが圧縮されたデータとして格納されている場合に、当該プログラムデータの伸張処理を行う。
【0150】
図22のフローチャートに、プログラム圧縮/伸張部40におけるプログラム伸張処理の手順を示す。プログラム圧縮/伸張部40は、プログラム生成部31がプログラム送信処理を実施するか否かを判断し(S91)、プログラム送信処理が実施されない場合は、再度S91に戻る。一方、プログラム送信処理を実施する場合は、次に、プログラム格納領域32に格納されている送信すべきプログラムデータが圧縮状態かどうかを判断する(S92)。ここで、圧縮状態であれば、当該プログラムデータを伸張し(S93)、伸張したプログラムデータを、メイン基板10のフラッシュ・メモリ13内に格納する。一方、送信すべきプログラムデータが圧縮されていない状態であれば、再度、S91に戻る。なお、該処理の終了についても特に記載していないが、メイン基板10の電源がオフされた時点などで終了する。
【0151】
また、プログラム圧縮/伸張部40は、チェックプログラムやブートプログラム等のサブ基板20へとダウンロードすべきプログラムデータが、メイン基板10に対して既に圧縮された状態でダウンロードされる場合は圧縮処理を実施しないが、圧縮されない状態でダウンロードされた場合は、圧縮処理を実施した後、プログラム格納領域32に格納する。
【0152】
また、本発明のプログラムダウンロード方法は、メイン基板にプロセッサとメイン基板を動作させるためのプログラムが格納されている不揮発性メモリおよびRAMとを備え、サブ基板にプロセッサとサブ基板を動作させるためのプログラムを格納する不揮発性メモリおよびRAMとを備え、メイン基板からサブ基板の不揮発性メモリに対してサブ基板を動作させるためのプログラムをダウンロードするプログラムダウンロード方法において、サブ基板はメイン基板に対して、不揮発性メモリにおけるチェックプログラムを書き込める領域のみを開放し、メイン基板は当該領域に対してチェックプログラムをダウンロードし、チェックプログラムをダウンロード後、サブ基板は当該チェックプログラムを起動して、サブ基板に接続されているメイン基板がプログラムダウンロード許可対象であるか否かを判断し、許可対象であれば、サブ基板の不揮発性メモリにおける領域を開放して、メイン基板はサブ基板にプログラムをダウンロードし、許可対象でなければ、サブ基板の不揮発性メモリにおける領域を開放せず処理を終了することを特徴としているとも換言できる。
【産業上の利用可能性】
【0153】
プログラムが何もない状態の制御装置に、許可されているプログラム供給装置からのみ選択的にブートプログラムを始めとする、該制御装置を動作させるためのプログラムをダウンロードさせることができるので、例えば複合機におけるメイン基板と、機能を追加できるようにオプション設定されるサブ基板であって、複数種のメイン基板に対して共有オプションとして用いられるサブ基板との間に利用することができる。
【図面の簡単な説明】
【0154】
【図1】本発明における実施の一形態を示すもので、プログラムダウンロードシステムにおけるプログラム供給装置であるメイン基板と制御装置であるサブ基板とにおける各ハードウェア構成及び接続関係を示す構成図である。
【図2】上記プログラムダウンロードシステムにおけるメイン基板とサブ基板とのメモリ関係を説明するための図面である。
【図3】上記メイン基板上で動作するプログラムの機能ブロック図である。
【図4】上記メイン基板のプログラム格納領域に格納されているデータを説明するための図面である。
【図5】上記メイン基板より上記サブ基板に対してダウンロードされ、サブ基板上で動作するチェックプログラムの機能ブロック図である。
【図6】(a)(b)共に、メイン基板或いはサブ基板に設けられるジャンパを説明するための図面である。
【図7】上記メイン基板で実施されるチェックプログラム送信処理の手順を示すフローチャートである。
【図8】上記サブ基板に具備されるダウンロード許可IDリストを説明する図面である。
【図9】(a)(b)共に、サブ基板に設けられる、ダウンロード許可のジャンパ設定を説明する図面である。
【図10】(a)(b)共に、サブ基板に設けられる、ダウンロード可否判断のジャンパ設定を説明する図面である。
【図11】上記サブ基板で実施されるダウンロード可否判断処理の手順を示すフローチャートである。
【図12】上記サブ基板で実施されるブート領域開放処理の手順を示すフローチャートである。
【図13】上記メイン基板で実施されるチェックプログラム再送処理の手順を示すフローチャートである。
【図14】(a)〜(c)共に、上記メイン基板にて実施されるチェックプログラムのダウンロード状態の報知例である。
【図15】上記メイン基板で実施されるプログラムダウンロード状態報知処理の手順を示すフローチャートである。
【図16】上記メイン基板で実施される電源監視処理の手順を示すフローチャートである。
【図17】(a)(b)共に、メイン基板に設けられる、ダウンロード切替えのジャンパ設定を説明する図面である。
【図18】上記メイン基板で実施される、ダウンロード切替え処理の手順を示すフローチャートである。
【図19】上記メイン基板にて実施されるプログラムダウンロード指示処理において、オペレーションパネルでの操作により、チェックプログラムのダウンロードを実行する方法を説明した図面である。
【図20】上記メイン基板で実施されるプログラムダウンロード指示処理の手順を示すフローチャートである。
【図21】上記メイン基板で実施されるプログラム受信処理の手順を示すフローチャートである。
【図22】上記メイン基板で実施されるプログラム伸張処理の手順を示すフローチャートである。
【符号の説明】
【0155】
10 メイン基板(プログラム供給装置)
15 第1のI/Fポート(入出力部)
16 第2のI/Fポート(入出力部)
20 サブ基板(制御装置)
22 ASIC(チェックプログラム受付手段)
23 フラッシュ・メモリ(不揮発性メモリ)
31 プログラム生成部(チェックプログラムダウンロード手段)
32 プログラム格納領域
33 ID格納領域(識別情報格納領域)
34 プログラム送信部(チェックプログラムダウンロード手段)
35 電源監視部(電源監視手段)
36 プログラムダウンロード指示部(指示入力手段)
37 解析部(解析手段)
39 切替え設定部(設定手段)
38 ダウンロード情報報知部(ダウンロード情報報知手段)
41 プログラム受信部(プログラム受信手段)
【技術分野】
【0001】
本発明は、制御装置が有する当該制御装置を動作させるためのプログラムを格納するための不揮発性メモリに対して、プログラムを書き込むためのプログラムダウンロードシステム及び方法、並びに該システムを構成するプログラム供給装置と制御装置に関するものである。
【背景技術】
【0002】
たとえば、複合機等においては、印刷動作や画像処理などを実行するメイン基板(制御装置)に対して、各種機能を追加できるようにオプション設定されるサブ基板(制御装置)を増設できるものがある。このようなサブ基板としては、LAN基板やUSB基板などが提供されている。
【0003】
これらメイン基板及びサブ基板は一般的に、プログラムを実行するプロセッサであるCPUと、基板内外における各種データの送受信を制御するASICと、基板を動作させるためのプログラムを格納するためのROMと、RAM等で構成されている。そして、今日では、基板を動作させるためのプログラムを格納するためのROMとしては、アップグレードに対応するために、フラッシュ・メモリ等の不揮発性メモリを搭載するものが主流となってきている。
【0004】
基板を動作させるためのプログラムは、通常、基板を最低限動作させるためのブートプログラムと、基板の全機能を動作させるためのメインプログラムとで構成されている。基板の初期設定や初期診断は、ブートプログラムにより行われる。
【0005】
基板に対してのブートプログラムの提供は、フラッシュ・メモリ・ライタ(フラッシュROMライタ)などを使用してフラッシュ・メモリにブートプログラムを予めダウンロードしておき、該ダウンロード済のフラッシュ・メモリを基板上に実装することでなされることが一般的である。
【0006】
また、その他の手法として、フラッシュ・メモリを含む周辺回路を、基板本体から独立したフラッシュ・メモリDIMM基板等の別基板とし、該別基板を、基板本体に対して着脱自在な構成としているものもある。このような構成では、基板への部品実装の段階において必ずしもフラッシュ・メモリへのブートプログラムのダウンロード作業は必要なく、基板へ部品実装をした後からでも、基板より該別基板を外すことで、別基板に搭載されたフラッシュ・メモリに、専用プログラムライタなどを使用して、ブートプログラムをダウンロードすることができる。しかしながら、このような構成は、フラッシュ・メモリを別基板に搭載しているので、基板全体として必要な部品コストが高いというデメリットがある。
【0007】
一方、特許文献1では、サブ基板のMPUが、サブ基板に入力された書き換え用プログラム(ダウンロード用プログラムに相当)を、直接またはメイン基板のMPUを介してメイン基板上のRAMに格納し、該メイン基板のRAMに格納された書き換え用プログラムをサブ基板上のフラッシュ・メモリに直接またはメイン基板のCPUを介して書き込むデータ書き換え方法が提案されている。
【特許文献1】特開2002-259148号(2002年9月13日公開)
【発明の開示】
【発明が解決しようとする課題】
【0008】
ところが、事前にブートプログラムを書き込んだフラッシュ・メモリを基板上に実装する従来の技術では、将来的に、サブ基板が複数種のメイン基板の共通オプションとなった場合、各種メイン基板に対応したブートプログラムを書き込んだサブ基板を各々用意する必要があり、共通オプションのメリットが生かせない。また、将来的に、ブートプログラムが機能拡張されたとしても、ブートプログラムのバージョンアップを実現することができない。
【0009】
なお、フラッシュ・メモリを、基板に対して着脱自在に構成された別基板に搭載する従来の技術においては、接続されるメイン基板に対応させてブートプログラムを書き込むことができるため、上のような問題は発生しないが、前述したように、別基板としているので、部品コストが高いといったデメリットがあり、好ましくない。
【0010】
このような課題に対する解決策の一つとして、メイン基板側からサブ基板のフラッシュ・メモリにサブ基板のプログラムを直接ダウンロードする構成が考えられる。これによれば、サブ基板のフラッシュ・メモリには、メイン基板からそれに応じたブートプログラムがダウンロードされるので、対応するブートプログラムが書き込まれたサブ基板をメイン基板の種類に応じて用意しなくても済む。
【0011】
しかしながら、この場合、何の工夫もなく、サブ基板のフラッシュ・メモリをメイン基板に対して開放すると、メイン基板はサブ基板のフラッシュ・メモリに対して自由にデータをダウンロードすることが可能となるため、メイン基板からサブ基板に対して不正なデータをダウンロードして、サブ基板が本来意図していない用途に用いられるといった惧れがある。また、誤ったプログラムをサブ基板にダウンロードした場合、サブ基板が起動しなくなる可能性もある。
【0012】
なお、上記した特許文献1では、サブ基板のCPUを動作させるためのプログラムが最低限必要であり、サブ基板にプログラムが何もない状態からのデータのダウンロード方法については、特に言及するものではない。
【0013】
本発明は上記課題に鑑みなされたものであって、プログラムが何もない状態の制御装置に、許可されているプログラム供給装置からのみ選択的にプログラムをダウンロードさせることが可能なプログラムダウンロードシステム及びその方法、並びに該プログラムダウンロード方法を実施し、該システムを構成するプログラム供給装置と制御装置を提供することであり、ひいては、ある制御装置が複数種の他の主たる制御装置の共通オプションとなった場合でも、共通オプションのメリットが生かせ、また、ブートプログラムが機能拡張されたとしても、ブートプログラムのバージョンアップにも容易に対応可能にすることを目的としている。
【課題を解決するための手段】
【0014】
本発明に係るプログラムダウンロード方法は、上記課題を解決するために、制御装置が有する該制御装置を動作させるためのプログラムを格納するための不揮発性メモリに、該制御装置を動作させるためのプログラムをプログラム供給装置からダウンロードさせるプログラムダウンロードシステムのプログラムダウンロード方法であって、上記制御装置は、上記プログラム供給装置に対して、上記不揮発性メモリにおけるブートプログラム領域の一部の所定領域のみを開放し、上記プログラム供給装置は、上記制御装置において開放された上記所定領域にチェックプログラムをダウンロードさせ、上記制御装置は、上記プログラム供給装置よりダウンロードされた上記チェックプログラムを起動して、接続されている上記プログラム供給装置が当該制御装置へのプログラムのダウンロードを許可されている許可対象であるか否かを判断し、許可対象であれば上記不揮発性メモリにおける上記所定領域以外の領域も開放し、許可対象でなければ上記不揮発性メモリにおける上記所定領域以外の領域を開放しないことを特徴としている。
【0015】
これによれば、制御装置では、その不揮発性メモリにおけるブートプログラム領域の一部の所定領域にプログラム供給装置よりダウンロードされたチェックプログラムを起動することで、接続されているプログラム供給装置が自装置へのプログラムのダウンロードを許可されている許可対象であるか否かを判断し、許可対象であれば不揮発性メモリにおける上記所定領域以外の領域も開放するが、許可対象でなければ不揮発性メモリにおける上記所定領域以外の領域を開放しない。
【0016】
しかも、制御装置がプログラム供給装置に対して、チェックプログラムをダウンロードするために解放する不揮発性メモリにおける領域は、ブートプログラム領域の一部の所定領域のみであるので、プログラム供給装置が、該所定領域にブートプログラムをダウンロードさせようとしても、ブートプログラムを全て格納することはできず制御装置を動作させることはできない。
【0017】
したがって、制御装置に対しては、その不揮発性メモリに何のプログラムも格納されていない状態であっても、許可されているプログラム供給装置からのみ選択的にブートプログラムを始めとして、種々のプログラム(ダウンロード用プログラム)をダウンロードさせることが可能となり、制御装置に対して、不正なデータがダウンロードされてしまい、本来意図していない用途に使用されたり、制御装置が起動しなくなったりすることがない。
【0018】
上記した本発明のプログラムダウンロード方法においては、さらに、制御装置は、プログラム供給装置が許可対象であれば、上記不揮発性メモリにおけるブートプログラム領域分を開放することが好ましい。
【0019】
これによれば、チェックプログラムにより、制御装置と接続されているプログラム供給装置が、プログラムのダウンロードが許可されている許可対象であると判断されたとしても、制御装置は、自装置を最低限動作させるために必要なブートプログラム領域のみを開放するので、ブートプログラム領域以外の領域に対して、本来意図していないプログラムがダウンロードされることを未然に防止することができる。
【0020】
上記した本発明のプログラムダウンロード方法においては、さらに、上記チェックプログラムには、プログラム供給装置に付されている装置固有の識別情報が含まれており、制御装置における許可対象であるか否かの判断に、プログラム供給装置から取得される上記識別情報を用いることが好ましい。
【0021】
これによれば、制御装置側に、許可対象であるプログラム供給装置の識別情報リスト等は必要になるものの、制御装置が、接続されているプログラム供給装置からの識別情報を基に許可対象であるか否かを判断することができるので、許可されていないプログラム供給装置からのプログラムのダウンロードを一切排除することができる。
【0022】
上記した本発明のプログラムダウンロード方法においては、さらに、制御装置における許可対象であるか否かの判断に、制御装置に設けられるジャンパの設定を用いることが好ましい。
【0023】
これによれば、制御装置に設けたジャンパ設定により、接続されているプログラム供給装置を許可対象に指定することができるので、制御装置側に許可対象であるプログラム供給装置の識別情報リスト等を具備させておかなくても、許可対象のプログラム供給装置を簡単に指定することができる。
【0024】
本発明のプログラム供給装置は、制御装置と接続され、該制御装置とI/Fメモリ空間を共有し、該制御装置が有する該制御装置を動作させるためのプログラムを格納するための不揮発性メモリに、該制御装置を動作させるプログラムを上記I/Fメモリ空間を介してダウンロードさせるプログラム供給装置であって、接続されている上記プログラム供給装置が上記制御装置へのプログラムのダウンロードを許可されている許可対象であるか否かを判断し、許可対象であれば上記制御装置が有する不揮発性メモリのメモリ領域をI/Fメモリ空間に対して開放し、許可対象でなければ上記不揮発性メモリのメモリ領域をI/Fメモリ空間に対して開放しない処理を実行させるチェックプログラムを、上記制御装置が有する上記不揮発性メモリにおけるブートプログラム領域にダウンロードさせるチェックプログラムダウンロード手段を備えることを特徴としている。
【0025】
本発明のプログラム供給装置のプログラム供給方法は、上記課題を解決するために、制御装置と接続され、該制御装置とI/Fメモリ空間を共有し、該制御装置が有する該制御装置を動作させるためのプログラムを格納するための不揮発性メモリに、該制御装置を動作させるプログラムを上記I/Fメモリ空間を介してダウンロードさせるプログラム供給装置のプログラム供給方法であって、接続されている上記プログラム供給装置が上記制御装置へのプログラムのダウンロードを許可されている許可対象であるか否かを判断し、許可対象であれば上記制御装置が有する不揮発性メモリのメモリ領域をI/Fメモリ空間に対して開放し、許可対象でなければ上記不揮発性メモリのメモリ領域をI/Fメモリ空間に対して開放しない処理を実行させるチェックプログラムを、上記制御装置が有する上記不揮発性メモリにおけるブートプログラム領域にダウンロードさせるチェックプログラムダウンロードステップを含むことを特徴としている。
【0026】
本発明の制御装置は、上記課題を解決するために、プログラム供給装置と接続され、該プログラム供給装置とI/Fメモリ空間を共有し、該プログラム供給装置から、自装置が有する自装置を動作させるためのプログラムを格納するための不揮発性メモリに対して、自装置を動作させるためのプログラムがダウンロードされる制御装置であって、自装置が有する上記不揮発性メモリのブートプログラム領域にブートプログラムが格納されていない状態で、上記不揮発性メモリのブートプログラム領域の一部の所定領域のみを上記I/Fメモリ空間に対して開放するチェックプログラム受付手段を備えることを特徴としている。
【0027】
本発明の制御装置の制御方法は、上記課題を解決するために、プログラム供給装置と接続され、該プログラム供給装置とI/Fメモリ空間を共有し、該プログラム供給装置から、自装置が有する自装置を動作させるためのプログラムを格納するための不揮発性メモリに対して、自装置を動作させるためのプログラムがダウンロードされる制御装置の制御方法であって、自装置が有する上記不揮発性メモリのブートプログラム領域にブートプログラムが格納されていない状態で、上記不揮発性メモリのブートプログラム領域の一部の所定領域のみを上記I/Fメモリ空間に対して開放するチェックプログラム受付ステップを含むことを特徴としている
これによれば、プログラム供給装置は、チェックプログラムダウンロード手段が、接続されている制御装置における不揮発性メモリのブートプログラム領域に対して、接続されているプログラム供給装置が該制御装置へのプログラムのダウンロードを許可されている許可対象であるか否かを判断し、許可対象であれば該制御装置が有する不揮発性メモリのメモリ領域をI/Fメモリ空間に対して開放し、許可対象でなければ不揮発性メモリのメモリ領域をI/Fメモリ空間に対して開放しない処理を実行させるチェックプログラムをダウンロードさせる。
【0028】
一方、制御装置では、チェックプログラム受付手段が、自装置が有する不揮発性メモリのブートプログラム領域にブートプログラムが格納されていない状態で、不揮発性メモリのブートプログラム領域の一部の所定領域のみを上記I/Fメモリ空間に対して開放する。
【0029】
したがって、チェックプログラムダウンロード手段を備えたプログラム供給装置とチェックプログラム受付手段を備えた制御装置とにより、前述した本発明のプログラムダウンロードシステムにおけるプログラムダウンロード方法を容易に実施することができる。
【0030】
上記した本発明のプログラム供給装置においては、さらに、上記チェックプログラムダウンロード手段は、プログラム格納領域に格納されているチェックプログラムを参照して上記制御装置に送信するためのチェックプログラムを生成するプログラム生成手段と、該チェックプログラム生成手段にて生成されたチェックプログラムを、上記I/Fメモリ空間を介して上記制御装置へと転送するプログラム送信手段とで構成することができる。
【0031】
また、本発明のプログラム供給装置においては、さらに、自装置に付されている装置固有の識別情報を格納する識別情報格納領域を備え、上記チェックプログラム生成手段は、上記識別情報格納領域を参照して、チェックプログラムに自装置の識別情報を組み入れる構成とすることができる。
【0032】
そして、このようなプログラム供給装置とでプログラムダウンロードシステムを構成する本発明の制御装置としては、さらに、上記不揮発性メモリに、自装置へのプログラムのダウンロードが許可されている許可対象のプログラム供給装置に付された識別情報のリストが格納されている構成とすることが好ましい。
【0033】
このようなプログラム供給装置と制御装置の構成とすることで、前述した、制御装置側で接続されているプログラム供給装置からの識別情報を基に許可対象であるか否かを判断して、許可されていないプログラム供給装置からのプログラムのダウンロードを一切排除することができるといった、本発明のプログラムダウンロード方法を容易に実施することができる。
【0034】
また、本発明の制御装置においては、自装置と接続されているプログラム供給装置が、自装置へのプログラムのダウンロードが許可されている許可対象であることを指定するためのジャンパが設けられている構成とすることもできる。
【0035】
このような構成とすることで、前述した、制御装置側に許可対象であるプログラム供給装置の識別情報リスト等を具備させておかなくても、許可対象のプログラム供給装置を簡単に指定することができるといった、本発明のプログラムダウンロード方法を容易に実施することができる。
【0036】
さらに、本発明のプログラム供給装置においては、上記チェックプログラムに、チェックプログラムのダウンロードの終了を示すチェックプログラムダウンロード終了情報を上記プログラム供給装置へ送信する処理を実行させる終了報知プログラムがさらに含まれている構成としてもよい。
【0037】
これによれば、制御装置からチェックプログラムを正常にダウンロードできたことが通知されてくるので、プログラム供給装置側で、チェックプログラムのダウンロードが正常に終了したことを確認することができる。
【0038】
さらに、本発明のプログラム供給装置においては、上記制御装置より上記チェックプログラムダウンロード終了情報を受信したか否かを判断する解析手段をさらに備え、上記チェックプログラムダウンロード手段は、チェックプログラムを送信後、上記解析手段がチェックプログラムダウンロード終了情報を受信していない場合に、上記制御装置に対して上記チェックプログラムを再送する構成としてもよい。
【0039】
これによれば、プログラム供給装置から制御装置に対してチェックプログラムをダウンロードする時に、何らかの影響でチェックプログラムを正常にダウンロードできず、プログラム供給装置の解析手段が、制御装置からのチェックプログラムダウンロード終了情報を受信できない場合、チェックプログラムダウンロード手段が制御装置に対してチェックプログラムを再送して再度ダウンロードさせるので、チェックプログラムダウンロード作業を確実に実施することができる。
【0040】
さらに、本発明のプログラム供給装置においては、上記制御装置へのチェックプログラムのダウンロード状態をユーザに報知するダウンロード状態報知手段をさらに備える構成としてもよい。
【0041】
報知されるダウンロード状態としては、例えば、チェックプログラムのダウンロード中であること、チェックプログラムのダウンロードが終了したこと、或いはチェックプログラムのダウンロードが許可されていないことなどを挙げることができる。
【0042】
このように、チェックプログラムダウンロードの状態をユーザに報知することで、チェックプログラムのダウンロード途中に、プログラム供給装置あるいは制御装置の電源を落とされることに対して未然に注意を促すことができる、またはプログラムのダウンロードが許可されていないプログラム供給装置に対して制御装置を誤って装着している場合に、プログラムダウンロードが許可されていない旨をユーザに報知することができる。
【0043】
さらに、本発明のプログラム供給装置においては、自装置の電源が投入されたか否かを判断する電源監視手段をさらに備え、上記チェックプログラムダウンロード手段は、上記電源監視手段にて電源が投入されたと判断されると、上記制御装置にチェックプログラムをダウンロードさせる動作を開始する構成としてもよい。
【0044】
これによれば、プログラム供給装置に電源が投入された時に、プログラム供給装置に装着されている制御装置に対して自動的にチェックプログラムがダウンロードされるので、チェックプログラムのダウンロードをユーザによるオペレーションを介在することなく実施することができる。
【0045】
さらに、本発明のプログラム供給装置においては、上記電源監視手段にて電源が投入されたと判断されると、上記制御装置にチェックプログラムをダウンロードさせる動作を開始することの可否を、上記チェックプログラムダウンロード手段に対して設定する設定手段をさらに備える構成としてもよい。
【0046】
これによれば、設定手段によって、プログラム供給装置への電源投入時におけるチェックプログラムの自動ダウンロードの可否を設定することができるので、例えば、プログラム供給装置の不揮発性メモリに格納されているチェックプログラムのバージョンが古い場合など、ユーザが制御装置へのチェックプログラムのダウンロードを希望しない場合は、上記設定手段を用いて自動ダウンロードを拒否することができる。
【0047】
さらに、本発明のプログラム供給装置においては、上記制御装置にチェックプログラムをダウンロードさせる動作の開始を、上記チェックプログラムダウンロード手段に対して指示する指示入力手段をさらに備える構成としてもよい。
【0048】
これによれば、指示入力手段を用いて、ユーザは所望のタイミングで制御装置に対してチェックプログラムをダウンロードさせることが可能となる。
【0049】
さらに、本発明のプログラム供給装置においては、外部装置と接続され、情報の入出力を可能にする入出力部を少なくとも2つ備えると共に、上記制御装置と接続される入出力部とは別の入出力部を介して上記チェックプログラムを含む上記制御装置に対するダウンロード用プログラムを取得し、取得したダウンロード用プログラムが上記プログラム格納領域に格納されていない場合は取得したダウンロード用プログラムを格納する一方、既に格納されている場合は両ダウンロード用プログラムの比較を行い、取得したダウンロード用プログラムの方が新しければ上記プログラム格納領域の内容を更新するプログラム受信手段をさらに備える構成としてもよい。
【0050】
これによれば、制御装置とプログラム供給装置とが接続され、制御装置へのプログラムのダウンロードが必要となった時に、プログラム供給装置は、制御装置と接続されている入出力部とは異なる別の入出力部を経由して、その都度、ダウンロードするダウンロード用プログラム(チェックプログラムを含む)を取得することが可能となるので、ダウンロード用プログラムをプログラム供給装置のプログラム格納領域に常時格納しておく必要がなく、プログラム供給装置におけるプログラム格納領域を圧迫することがない。
【0051】
さらに、本発明のプログラム供給装置においては、上記プログラム格納領域に、上記チェックプログラムを含む上記制御装置に対するダウンロード用プログラムが圧縮されて格納されている構成としてもよい。
【0052】
このように、ダウンロード用プログラムをプログラム供給装置のプログラム格納領域に圧縮して格納しておくことで、プログラム供給装置におけるプログラム格納領域の圧迫を軽減することができる。
【発明の効果】
【0053】
本発明に係るプログラムダウンロード方法は、以上のように、制御装置が有する該制御装置を動作させるためのプログラムを格納するための不揮発性メモリに、該制御装置を動作させるためのプログラムをプログラム供給装置からダウンロードさせるプログラムダウンロードシステムのプログラムダウンロード方法であって、上記制御装置は、上記プログラム供給装置に対して、上記不揮発性メモリにおけるブートプログラム領域の一部の所定領域のみを開放し、上記プログラム供給装置は、上記制御装置において開放された上記所定領域にチェックプログラムをダウンロードさせ、上記制御装置は、上記プログラム供給装置よりダウンロードされた上記チェックプログラムを起動して、接続されている上記プログラム供給装置が当該制御装置へのプログラムのダウンロードを許可されている許可対象であるか否かを判断し、許可対象であれば上記不揮発性メモリにおける上記所定領域以外の領域も開放し、許可対象でなければ上記不揮発性メモリにおける上記所定領域以外の領域を開放しないものである。
【0054】
本発明のプログラム供給装置は、以上のように、制御装置と接続され、該制御装置とI/Fメモリ空間を共有し、該制御装置が有する該制御装置を動作させるためのプログラムを格納するための不揮発性メモリに、該制御装置を動作させるプログラムを上記I/Fメモリ空間を介してダウンロードさせるプログラム供給装置であって、接続されている上記プログラム供給装置が上記制御装置へのプログラムのダウンロードを許可されている許可対象であるか否かを判断し、許可対象であれば上記制御装置が有する不揮発性メモリのメモリ領域をI/Fメモリ空間に対して開放し、許可対象でなければ上記不揮発性メモリのメモリ領域をI/Fメモリ空間に対して開放しない処理を実行させるチェックプログラムを、上記制御装置が有する上記不揮発性メモリにおけるブートプログラム領域にダウンロードさせるチェックプログラムダウンロード手段を備える構成である。
【0055】
本発明の制御装置は、以上のように、プログラム供給装置と接続され、該プログラム供給装置とI/Fメモリ空間を共有し、該プログラム供給装置から、自装置が有する自装置を動作させるためのプログラムを格納するための不揮発性メモリに対して、自装置を動作させるためのプログラムがダウンロードされる制御装置であって、自装置が有する上記不揮発性メモリのブートプログラム領域にブートプログラムが格納されていない状態で、上記不揮発性メモリのブートプログラム領域の一部の所定領域のみを上記I/Fメモリ空間に対して開放するチェックプログラム受付手段を備える構成である。
【0056】
これにより、制御装置に対しては、その不揮発性メモリに何のプログラムも格納されていない状態であっても、許可されているプログラム供給装置からのみ選択的にプログラムをダウンロードさせることが可能となり、制御装置に対して、不正なデータがダウンロードされてしまい、本来意図していない用途に使用されたり、制御装置が起動しなくなったりすることがない。
【0057】
それゆえ、制御装置が複数種の他のプログラム供給装置の共通オプションとなった場合でも、共通オプションのメリットが生かせると共に、ブートプログラムが機能拡張されたとしても、ブートプログラムのバージョンアップにも容易に対応できるといった効果を奏する。
【発明を実施するための最良の形態】
【0058】
本発明の一実施形態について、図1〜図22に基づいて説明すると以下の通りである。
【0059】
まず、図1を用いて、本実施形態におけるプログラムダウンロードシステムにおける全体構成を説明する。図1は、本実施形態におけるメイン基板(プログラム供給装置)10及びサブ基板(制御装置)20の各ハードウェア構成、及びメイン基板10とサブ基板20との接続関係を示している。
【0060】
メイン基板10は、メイン基板10の制御を行うCPU11、メイン基板内外とのデータ送受信の制御を行うASIC12、メイン基板10のプログラムが格納されている書き換え可能な読み出し専用メモリであるフラッシュ・メモリ(図ではFlash)13、一時的にプログラムやデータを記憶させておくRAM14、第1のI/Fポート15、及び第2のI/Fポート16を備えている。
【0061】
サブ基板20は、サブ基板20の制御を行うCPU21、サブ基板内外とのデータ送受信を行うASIC22、サブ基板20の制御プログラムが格納されている書き換え可能な読み出し専用メモリであるフラッシュ・メモリ23、一時的にプログラムやデータを記憶させておくRAM24及びI/Fポート25で構成されている。
【0062】
そして、これらメイン基板10とサブ基板20とは、メイン基板10の第1のI/Fポート15及びサブ基板20のI/Fポート25を介して接続されている。
【0063】
具体的な例で説明すると、メイン基板10は、複合機におけるプリンタコントローラ基板であり、サブ基板20は、プリンタコントローラ基板に機能拡張するためのLAN(local area network)基板やUSB(universal serial bus)基板などである。
【0064】
なお、本発明は上記例に限定するものではなく、図1に示すようなメイン基板10及びサブ基板20の構成及び接続関係にあり、サブ基板20にプログラムが何もない状態でも、メイン基板10からI/Fポート25を介して、サブ基板20のフラッシュ・メモリ23にアクセスできるものであれば、どんな形態のものであってもよい。
【0065】
図2に、メイン基板10とサブ基板20の各メモリ空間の関係を示す。メイン基板10のメモリ空間は、メイン基板10におけるフラッシュ・メモリ13とRAM14とで構成され、サブ基板20のメモリ空間は、サブ基板20におけるフラッシュ・メモリ23とRAM14とで構成される。
【0066】
メイン基板10のメモリ空間とサブ基板20のメモリ空間とは、I/Fメモリ空間を介して接続されている。I/Fメモリ空間は、メイン基板10とサブ基板20のどちらからでもアクセス可能な共有メモリである。該共有メモリは、メイン基板10のASIC12、サブ基板20のASIC22、あるいはメイン基板10及びサブ基板20の双方のASIC12・22内部に存在する。
【0067】
図2の例では、サブ基板20のメモリ空間におけるアドレス空間0x05_0000_0000〜0x0A_FFFF_FFFFがプログラム領域に割り当てられており、プログラム領域となる該アドレス空間は、フラッシュ・メモリ13に対応している。そして、該アドレス空間0x05_0000_0000〜0x0A_FFFF_FFFFのうち、アドレス空間0x05_0000_0000〜0x09_FFFF_FFFFまでがメインプログラムのメイン領域に、アドレス空間0x0A_0000_0000〜0x0A_FFFF_FFFFまでがブートプログラムのブート領域(ブートプログラム領域)に、さらに細かく割り当てられている。
【0068】
サブ基板20の上記プログラム領域には、初期状態において、サブ基板20を動作させるためのプログラムは何も書き込まれておらず、メイン基板10よりサブ基板20を動作させるためのプログラムがダウンロードされて初めて動作可能となる。
【0069】
その場合、メイン基板10よりサブ基板20に対してプログラムをダウンロードできるように、サブ基板20の上記プログラム領域を全て開放することも考えられる。しかしながら、プログラム領域の全てをメイン基板10に対して解放すると、該プログラム領域に対してメイン基板10が不正なデータを書き込み、サブ基板20が本来意図していない用途として使用される恐れがある。
【0070】
そこで、本実施形態では、サブ基板20はメイン基板10に対して、サブ基板20のプログラム領域におけるブート領域の一部であるチェックプログラム領域のみを開放するようになっている。チェックプログラム領域は、後述するチェックプログラムを書き込むための領域であり、ブート領域の先頭アドレスより始まる空間である。図2の例では、アドレス空間0x0A_FFFF_0000〜0x0A_FFFF_FFFFが、チェックプログラム領域にあたる。そして、該チェックプログラム領域の空間サイズはブート領域に比して小さく、メイン基板10がチェックプログラム領域へブートプログラムをダウンロードしたとしても、ブートプログラムを書き込みきることはできず、サブ基板20を動作させることはできない。
【0071】
上記チェックプログラムは、サブ基板20のフラッシュ・メモリ23にダウンロードされ、サブ基板20がパワーオン/リセットし、チェックプログラムを起動することで、サブ基板20が、当該サブ基板20に接続されている相手側基板、つまりメイン基板10が、サブ基板20へのプログラムのダウンロードを許可してもよいダウンロード許可対象(許可対象基板)であるか否かを判断する処理と、ダウンロード許可対象であればサブ基板20におけるフラッシュ・メモリ23におけるプログラム領域を開放し、ダウンロード許可対象でなければサブ基板20のフラッシュ・メモリ23のプログラム領域を開放しない処理とを実行するものである。
【0072】
メイン基板10に対してのチェックプログラム領域の開放は、具体的には、予め、サブ基板20のASIC22において、初期設定値によりチェックプログラム領域を開放するよう指定しておく。サブ基板20のASIC22によるI/F初期化時、サブ基板20のASIC22は、サブ基板20のメモリ空間におけるチェックプログラム領域0x0A_FFFF_0000〜0x0A_FFFF_FFFFのみを、メイン基板10と接続しているI/Fメモリ空間のチェックプログラム領域0x0F_FFFF_0000〜0x0F_FFFF_FFFFに開放する。これにより、メイン基板10は、I/Fメモリ空間の0x0F_FFFF_0000〜0x0F_FFFF_FFFFにアクセスすることで、サブ基板20のメモリ空間におけるチェックプログラム領域0x0A_FFFF_0000〜0x0A_FFFF_FFFFにデータを書き込むことができる。
【0073】
図3に、メイン基板10上で動作するプログラムの機能ブロック図を示す。同図に示すように、メイン基板10には、CPU11、ASIC12、フラッシュ・メモリ13、及びRAM14を適時動作させることによって、プログラム生成部(プログラム生成手段)31、プログラム格納領域32、ID格納領域33、プログラム送信部(プログラム送信手段)34、電源監視部(電源監視手段)35、プログラムダウンロード指示部(指示入力手段)36、解析部(解析手段)37、ダウンロード状態報知部(ダウンロード状態報知手段)38、ダウンロード切替え設定部(設定手段)39、プログラム圧縮/伸張部40、及びプログラム受信部(プログラム受信手段)41が構成される。
【0074】
上記プログラム格納領域32には、図4に示すように、少なくとも、チェックプログラムと、サブ基板20用のブートプログラムとが格納されている。このうち、チェックプログラムは、サブ基板20上に図5に示す各処理部と格納領域とを実現するための各プログラムとチェックプログラムのバージョンを表すチェックプログラムバージョン情報とを含んでいる。
【0075】
また、上記ID格納領域33には、例えば、メイン基板10のMACアドレスや機種名、シリアルナンバー等の、各メイン基板10を個別に識別できるような文字列等のID(識別情報)が格納されている。なお、ここでは、メイン基板10のIDとしてMACアドレスを使用した場合の説明を行う。
【0076】
図5に、サブ基板20上で動作する、メイン基板10よりダウンロードされたチェックプログラムの機能ブロック図を示す。同図に示すように、チェックプログラムを起動して、CPU21、ASIC22、フラッシュ・メモリ23、及びRAM24を適時動作させることによって、サブ基板20には、ダウンロード可否判断部51、ジャンパ情報抽出部52、ダウンロード許可ID抽出部53、ブート領域開放部54、メイン基板情報格納領域55、及び通知部56が構成される。上記メイン基板情報格納領域55には、チェックプログラムに含まれるメイン基板情報(メイン基板ID)が格納されている。
【0077】
また、本実施形態では、サブ基板20に、図6に示すようなジャンパ60が適宜設けられている。図6は、ジャンパ60の構成とその設定方法を説明する図面であり、(a)はジャンパ60を横から見た図面、(b)はジャンパピンの結線図である。
【0078】
ジャンパ60は、ジャンパピン61とジャンパソケット62とで構成され、ジャンパソケット62が装着されたジャンパピン61のピン間が導通するようになっている。たとえば、ジャンパピン61の1pin(ピン)が電源層(Vcc)に接続され、ジャンパピン61の3pinがGND層に接続されている構成にしておけば、同図のようにジャンパソケット62を、ジャンパピン61の1pinと2pinとに装着することで、ジャンパピン61の2pinは電源層(Vcc)に接続されることとなる。このように、ジャンパ60は、ジャンパソケット62の装着箇所に依存して、ジャンパピン61の2pinの電圧レベルを切替えることができるものである。なお、サブ基板20におけるジャンパ60の具体的な利用方法については後述する。
【0079】
以下、本実施形態のプログラムダウンロードシステムにおける動作について説明する。
【0080】
まず、メイン基板10で実施される基本処理であるチェックプログラム送信処理について説明する。
【0081】
チェックプログラム送信処理とは、プログラム生成部31が、チェックプログラム生成要求にしたがってID格納領域33及びプログラム格納領域32より情報を収集してチェックプログラムを作成し、プログラム送信部34が作成されたチェックプログラムをサブ基板20に送信して、ダウンロードさせる処理である。
【0082】
プログラム生成部31へのチェックプログラム生成要求は、電源監視部35、プログラムダウンロード指示部(指示入力手段)36、及び解析部37の3つの処理部より送信することができ、これについては後述する。
【0083】
図7のフローチャートを用いて、チェックプログラム送信処理の手順を説明する。チェックプログラム生成要求があると、プログラム生成部31は、プログラム格納領域32からチェックプログラムを取得し(S1)、次いで、ID格納領域33からメイン基板10のIDを取得する(S2)。そして、プログラム生成部31は、取得したメイン基板10のIDを取得したチェックプログラムに組み込み、チェックプログラムを完成させる(S3)。完成されたチェックプログラムは、プログラム送信部34へと送られる。
【0084】
次に、プログラム送信部34が、メイン基板10とサブ基板20とが接続されているI/Fメモリ空間にアクセスして、サブ基板20が開放しているサブ基板20のメモリ空間に対応するアドレス情報を取得する(S4)。プログラム送信部34は、プログラム生成部31より送られてきたチェックプログラムをI/Fメモリ空間における取得したアドレス情報の空間に書き込む(S5)。これにより、I/Fメモリ空間を介してサブ基板20のメモリ空間にチェックプログラムがダウンロードされ、チェックプログラム送信処理が終了する。
【0085】
図2の例では、サブ基板20のメモリ空間におけるチェックプログラム領域0x0A_FFFF_0000〜0x0A_FFFF_FFFFには、I/Fメモリ空間の0x0F_FFFF_0000〜0x0F_FFFF_FFFFが対応している。したがって、S5において、プログラム送信部34は、この0x0F_FFFF_0000〜0x0F_FFFF_FFFFにチェックプログラムを書き込む。サブ基板20のメモリ空間へは、I/Fメモリ空間の該0x0F_FFFF_0000〜0x0F_FFFF_FFFFに書き込まれたデータのみが移動し、ダウンロードされる。
【0086】
次に、サブ基板20の各処理部における基本処理であるダウンロード可否判断処理及びブート領域開放処理について説明する。サブ基板20は、メイン基板10よりダウンロードされたチェックプログラムを起動することで、ダウンロード可否判断処理を実施する。
【0087】
ダウンロード可否判断処理とは、ダウンロード可否判断部51が、チェックプログラムをダウンロードした相手先のメイン基板10がダウンロード許可対象であるか否かを判断する処理である。ダウンロード可否判断処理にてダウンロード許可対象であると判断されると、ブート領域開放部54がブート領域開放処理を実施し、ダウンロード許可対象ではないと判断されると、ブート領域開放部54はブート領域開放処理を実施しない。ここでは、より好ましい対応として、ダウンロード許可対象でない場合、通知部56が、チェックプログラムのダウンロードを拒否することを示すチェックプログラムダウンロード拒否コマンドを、メイン基板10に対して応答するようになっている。
【0088】
ブート領域開放処理とは、ブート領域開放部54が、メイン基板10がサブ基板20のブート領域に対してデータをダウンロードできるように開放する処理である。ここでは、より好ましい対応として、チェックプログラムのダウンロードが正常終了したことを示すチェックプログラム終了コマンド(チェックプログラム終了情報)を、メイン基板10に対して応答するようになっている。これは、チェックプログラム内に、チェックプログラムダウンロード終了を示すコマンドをメイン基板に対して送信する処理を実行させるプログラム(終了報知プログラム)を含めておくことで実現されており、サブ基板20は、チェックプログラムが正常にダウンロードできたことをメイン基板10に対して通知するので、メイン基板10側では、チェックプログラムのダウンロードが正常に終了したことを確認することができる。
【0089】
また、本実施形態のサブ基板20では、ダウンロード可否判断処理において、相手先のメイン基板10がダウンロード許可対象であるか否かの判断を、チェックプログラムに格納されているメイン基板IDを基にする場合と、ダウンロード許可判断のためのジャンパ設定を基にする場合との、2つが可能となっている。
【0090】
メイン基板IDを基にする判断は、ダウンロード許可ID抽出部53が、サブ基板20のフラッシュ・メモリ内に格納されているダウンロード許可IDリストを抽出し、ダウンロード可否判断部51が、メイン基板情報格納領域55に格納されているメイン基板IDが、該リスト内に含まれているか否かで判断を行う。図8に、ダウンロード許可IDリスト65の例を示す。ダウンロード許可IDリスト65は、ダウンロード許可ID66‥で構成されている。
【0091】
また、ジャンパ設定を基にする場合は、サブ基板20に設けられているダウンロード許可判断のためのジャンパの設定を、ジャンパ情報抽出部52が抽出し、ダウンロード可否判断部51が、抽出されたジャンパの設定を基に判断を行う。
【0092】
このようなジャンパ設定によるダウンロード許可対象であるか否かの判断を可能にしておくことで、サブ基板20にダウンロード許可IDリスト65を予め持たせずとも、ダウンロード許可対象となるメイン基板10を指定可能となる。
【0093】
具体的には、図9(a)のように、たとえば、サブ基板20に接続可能なメイン基板10がA〜Cの3種類ある場合、サブ基板20上に3つのジャンパJ1・J2・J3を設け、A〜Cの3種類のメイン基板10に対するダウンロード許可/拒否の判断を、これら3つのジャンパJ1〜J3にて設定する構成が考えられる。
【0094】
ここでは、図9(b)の設定テーブルに示すように、ジャンパJ1の設定がA種のメイン基板10のダウンロード許可/未許可に対応しており、ジャンパJ2の設定がB種のメイン基板10のダウンロード許可/未許可に、ジャンパJ3の設定がC種のメイン基板10のダウンロード許可/未許可に対応している。
【0095】
サブ基板20は、設定表に従い、例えば、ジャンパJ1の2pinの電圧レベルがVccであればA種のメイン基板10をダウンロード許可対象とし、ジャンパJ1の2pinの電圧レベルがGNDであれば、A種のメイン基板10をダウンロード未許可とする。
【0096】
さらに、本実施形態のサブ基板20では、プログラムダウンロード可否判断を実行するか否か自体をジャンパにて設定できるようになっており、プログラムダウンロード可否判断のためのジャンパが設けられている。ダウンロード可否判断処理においては、ジャンパ情報抽出部52が該ジャンパの設定を抽出し、ダウンロード可否判断部51が、抽出された該ジャンパの設定を基に、プログラムダウンロード可否を判断し、可能に設定されている場合のみ、ダウンロード可否判断処理を続ける。
【0097】
プログラムダウンロード可否判断のためのジャンパを設けることで、メイン基板10からのチェックプログラムダウンロードを、ダウンロード許可対象であるか否かとは関係なく、強制的に拒否することが可能となる。
【0098】
具体的には、プログラムダウンロード可否判断のためのジャンパがダウンロード拒否に設定されている場合、どんなメイン基板10が接続されたとしても、サブ基板20はブート領域を開放せず、メイン基板10に対して、チェックプログラムダウンロードを拒否するチェックプログラムダウンロード拒否コマンドを送信する。
【0099】
ここでは、図10(a)(b)に示すように、プログラムダウンロード可否判断のためのジャンパJP1の1pinがVccに、ジャンパJP1の3pinがGNDに接続されている。そして、プログラムダウンロード可否判断用のジャンパソケットによって、ジャンパJP1の2pinの電圧レベルがVccであれば、プログラムダウンロード可否判断を実行し、ジャンパJP1の2pinの電圧レベルがGNDであれば、プログラムダウンロード可否判断を実行しないというように、予め取り決められている。
【0100】
なお、ジャンパ設定を用いる以外の手法で、プログラムダウンロード許可対象か否かの判断を実行するか否かを切り替えるようにしてもよい。
【0101】
図11のフローチャートに、ダウンロード可否判断処理の手順を示す。チェックプログラムがダウンロードされ、サブ基板20がこれを起動することで、該処理は開始される。まず、ジャンパ情報抽出部52が、図10に示した、プログラムダウンロード可否判断のためのジャンパJP1の設定情報を抽出する(S11)。次に、ダウンロード可否判断部51は、S11で抽出された設定情報であるジャンパJP1の2pinの電圧レベルがVccかGNDかを判断し(S12)、ジャンパJP1の2pinの電圧レベルがVccであればS13に進み、ジャンパJP1の2pinの電圧レベルがGNDであればS19に進む。
【0102】
S13では、ダウンロード可否判断部51は、メイン基板情報格納領域55よりメイン基板IDを抽出する。次に、ダウンロード可否判断部51は、ダウンロード許可対象であるか否かの判断を、サブ基板20上のフラッシュ・メモリ内に格納されているダウンロード許可IDリスト65を用いて行うかどうかを判断する(S14)。S14における判断は、サブ基板20のフラッシュ・メモリ23内に、図8に示したダウンロード許可IDリスト65があるかないかで判断する。
【0103】
ダウンロード許可IDリスト65があれば、ダウンロード許可IDリスト65によりダウンロード許可対象を判断するとして、S15に進む。一方、ダウンロード許可IDリストがなければ、サブ基板20上のジャンパ設定によりダウンロード許可対象を判断するとして、S16に進む。
【0104】
S15では、ダウンロード許可抽出部53が、ダウンロード許可IDリスト65を読み出し、S17に進む。S16では、ジャンパ情報抽出部52が、サブ基板20上のダウンロード許可用のジャンパJ1〜J3の設定を抽出し、同じくS17に進む。S17では、ダウンロード可否判断部51が、S15或いはS16で抽出された情報に基づいて、ダウンロード許可対象か否かを判断する。
【0105】
S17において、ダウンロード許可対象と判断されれば、S18に進み、後述するブート領域開放処理が行われる。一方、ダウンロード許可対象ではないと判断されれば、S19に進み、通知部56が、チェックプログラムのダウンロードを拒否することを示すチェックプログラムダウンロード拒否コマンドをメイン基板10に送信し、プログラムダウンロード可否判断処理を終了する。
【0106】
図12のフローチャートに、ブート領域開放処理の手順を示す。ブート領域開放部54は、サブ基板20上のブート領域(図2の例では、0x0A_0000_0000〜0x0A_FFFF_FFFF)を開放するように、サブ基板20のASIC22の初期設定値を変更する(S21)。次に、通知部56が、メイン基板10の解析部37に対して、チェックプログラムダウンロード終了コマンドを送信する(S22)。
【0107】
この後、メイン基板10及びサブ基板20がパワーオン/リセットし、各基板10・20が再起動する(S23)。なお、メイン基板10は、チェックプログラムダウンロード終了コマンドに再起動を指示するコマンドが含まれており、該コマンドを受け取ることでメイン基板10は再起動する。一方、サブ基板20は、チェックプログラムダウンロード終了コマンドを送信すると再起動がかかるように設定されている。
【0108】
サブ基板20では、再起動がかかることで、そのASIC22の初期設定値にしたがい、サブ基板20のブート領域を開放し(S24)、ブート領域開放処理を終了する。
【0109】
このようなブート領域開放処理により、メイン基板10側からサブ基板20のブート領域にアクセスすることが可能になり、メイン基板10側からサブ基板20用のブートプログラムをダウンロードさせることが可能となる。
【0110】
図2の例では、サブ基板20のメモリ空間におけるブート領域0x0A_0000_0000〜0x0A_FFFF_FFFFには、I/Fメモリ空間の0x0F_0000_0000〜0x0F_FFFF_FFFFが対応している。メイン基板10がこの0x0F_0000_0000〜0x0F_FFFF_FFFFにブートプログラムを書き込むことで、サブ基板20のメモリ空間へは、該I/Fメモリ空間の該0x0F_0000_0000〜0x0F_FFFF_FFFFに書き込まれたデータのみが移動し、ダウンロードされる。
【0111】
次に、より好ましい対応としてメイン基板10で実施される、チェックプログラム再送処理について説明する。チェックプログラム再送処理とは、メイン基板10の解析部37がサブ基板20の通知部56から、チェックプログラムダウンロード終了コマンドも、チェックプログラムダウンロード拒否コマンドも受信できていない場合に、メイン基板10からサブ基板20に対して、再度、チェックプログラムのダウンロードを行う処理である。
【0112】
図13のフローチャートに、チェックプログラム再送処理の手順を示す。プログラム送信部34は、サブ基板20に対してのチェックプログラムのダウンロードが終了したか否かを判断しており(S31)、チェックプログラムのダウンロードが終了していなければ、チェックプログラムのダウンロードが終了するまで、チェックプログラムのダウンロードが終了したか否かの判断を繰り返す。
【0113】
S31において、チェックプログラムのダウンロードの終了が確認されると、解析部37は、サブ基板20の通知部56よりチェックプログラム終了コマンドを受信したか否かを判断し(S32)、チェックプログラム終了コマンドを受信していれば、チェックプログラム再送処理を終了する。
【0114】
一方、S32において、チェックプログラム終了コマンドを受信していなければ、解析部37は、サブ基板20の通知部56よりチェックプログラム拒否コマンドを受信したか否かをさらに判断し(S33)、チェックプログラム拒否コマンドを受信していれば、チェックプログラム再送処理を終了する。ここで、チェックプログラム拒否コマンドも受信していなければ、解析部37は、プログラム生成部31にチェックプログラム生成要求を出力する(S34)。これにより、図7で説明したチェックプログラム送信処理が、再度、開始される。
【0115】
このように、メイン基板10からサブ基板20に対してチェックプログラムをダウンロードする時に、何らかの影響でチェックプログラムを正常にダウンロードできなかった場合、サブ基板20からのチェックプログラムダウンロード終了を示すコマンドの応答がないことをトリガーとして、自動的にメイン基板10からサブ基板に対してチェックプログラムが再ダウンロードされるので、メイン基板10からサブ基板20へのチェックプログラムダウンロード作業を確実に実施することができる。
【0116】
次に、より好ましい対応としてメイン基板10で実施される、ダウンロード状態報知処理について説明する。ダウンロード状態報知処理とは、ダウンロード状態報知部38にて実施される、メイン基板10からサブ基板20に対して、チェックプログラムのダウンロード中であること、またはチェックプログラムのダウンロードが終了したこと、またはチェックプログラムのダウンロードが許可されていないことを、ユーザが認識できるように、報知する処理である。
【0117】
報知の仕方としては、例えばメイン基板10が装着されている機器のオペレーションパネル上に各内容を報知することが挙げられる。具体例で説明すると、図14(a)〜(c)のように、チェックプログラムのダウンロード中であれば、オペレーションパネル70の表示画面上に『プログラムダウンロード中…』と表示し、チェックプログラムのダウンロードが終了すれば、オペレーションパネル70の表示画面上に『プログラムのダウンロードが終了しました。』と表示し、チェックプログラムのダウンロードが許可されていないのであれば、オペレーションパネル70の表示画面上に『プログラムのダウンロードが許可されていません。』と表示する、等が考えられる。
【0118】
なお、上記説明した具体例に限らず、チェックプログラムがダウンロード中であること、またはチェックプログラムのダウンロードが終了したこと、またはチェックプログラムのダウンロードが許可されていないことをユーザが視認できる方法であれば、どんな形態でも構わない。例えば、上記例とは別の方法で、メイン基板10上にステータスLEDを設けて、チェックプログラムがダウンロード中であればステータスLEDが点滅し、チェックプログラムのダウンロードが終了すればステータスLEDが消灯し、チェックプログラムのダウンロードが許可されていないならばステータスLEDが点灯するなどの構成でも構わない。
【0119】
図15のフローチャートに、ダウンロード状態報知処理の手順を示す。本フローチャートでは、メイン基板10が装着されている機器のオペレーションパネル70(図14参照)上に、ダウンロード状態を表示する。
【0120】
ダウンロード状態報知部38は、まず、プログラム送信部34にアクセスして、チェックプログラムをサブ基板20にダウンロード中か否かを判断する(S41)。チェックプログラムのダウンロード中であれば、S42に進んで、オペレーションパネル70の表示画面上に『プログラムダウンロード中…』と表示し、再度S41に戻る。一方、チェックプログラムのダウンロード中でなければS43に進み、解析部37にアクセスして、サブ基板20に対してチェックプログラムのダウンロードが終了したか否かを判断する。
【0121】
チェックプログラムのダウンロードが終了していれば、ダウンロード状態報知部38は、オペレーションパネルの表示画面上に『プログラムのダウンロードが終了しました。』と表示し(S44)、ダウンロード状態報知処理を終了する。
【0122】
一方、チェックプログラムのダウンロードが終了していなければ、ダウンロード状態報知部38は、解析部307にアクセスして、サブ基板20からチェックプログラムダウンロード拒否コマンドを受信していないかどうか判断し(S45)、チェックプログラムダウンロード拒否コマンドを受信していれば、オペレーションパネル70の表示画面上に『プログラムのダウンロードが許可されていません。』と表示し(S46)、ダウンロード状態報知処理を終了する。サブ基板20からチェックプログラムダウンロード拒否コマンドを受信していなければ、再度S41に戻る。
【0123】
このように、メイン基板10からサブ基板20に対するチェックプログラムダウンロードのステータスをユーザに報知することで、チェックプログラムダウンロード途中に、メイン基板10あるいはサブ基板20の電源を落とされることに対して未然に注意を促すことができる、またはプログラムダウンロード許可対象でないメイン基板10に対してサブ基板20を誤って装着している場合に、プログラムダウンロードが許可されていない旨をユーザに報知することができる。
【0124】
次に、より好ましい対応としてメイン基板10で実施される、電源監視処理について説明する。電源監視処理とは、電源監視部35が、メイン基板10に電源が投入されたか否かを監視し、メイン基板10に電源が投入されると同時に、プログラム生成部31に対して、前述したチェックプログラム生成要求を行う処理である。
【0125】
図16のフローチャートに、電源監視処理の手順を示す。電源監視部35は、メイン基板10に対して電源が投入されたか否かを判断し(S51)、メイン基板10に対して電源が投入されていないならば、再度S51に戻り、電源が投入されたか否かを判断する。
一方、メイン基板10に対して電源が投入されたら、プログラム生成部31にチェックプログラム生成要求を出力する(S52)。これにより、図7で説明したチェックプログラム送信処理が開始される。
【0126】
このように、メイン基板10に電源が投入時に、メイン基板10に装着されているサブ基板20に対して自動的にチェックプログラムをダウンロードする構成にすることで、チェックプログラムのダウンロードをユーザによるオペレーションを介在することなく実施することができる。
【0127】
但し、このような電源投入時にサブ基板20に対してチェックプログラムが自動的にダウンロードされることをユーザが希望しない場合も考えられる。例えば、メイン基板10のフラッシュ・メモリ13にチェックプログラムが格納されていない場合や、メイン基板10のフラッシュ・メモリ13に格納されているチェックプログラムのバージョンが古い場合である。このような場合、電源投入時におけるチェックプログラムのダウンロードを実施しないようにユーザ側にて設定できる構成が好ましい。
【0128】
そこで、本実施形態のメイン基板10においては、より好ましい対応として、電源投入時にチェックプログラムをダウンロードするか否かを、ユーザサイドで指定できるようになっており、ダウンロード切替え設定部39が、ユーザに指定されている場合に、電源投入時にチェックプログラムをダウンロードするようになっている。
【0129】
具体的には、メイン基板10上にダウンロード切替え用のジャンパJP2が設けられており、ダウンロード切替え用のジャンパソケットの装着位置によって、メイン基板10からサブ基板20へのチェックプログラムのダウンロードタイミングを切替えることができる。本実施形態では、ダウンロード切替え設定部39は、ジャンパJP2の2pinの電圧レベルがVccであれば、図16で説明した電源監視処理により、メイン基板10への電源投入時にチェックプログラムのダウンロードを行い、ジャンパJP2の2pinの電圧レベルがGNDであれば、メイン基板10への電源投入時にチェックプログラムのダウンロードを行わない。
【0130】
なお、上記説明した具体例に限らず、ダウンロードの処理を切替えることができる方法であれば、どんな形態でも構わない。たとえば、上記例とは別の方法で、メイン基板10上にスイッチを設けて、スイッチがON状態であれば、メイン基板10への電源投入時にチェックプログラムのダウンロードを行い、スイッチがOFF状態であれば、メイン基板10への電源投入時にチェックプログラムのダウンロードを行わないようにするなどの構成でも構わない。
【0131】
図18のフローチャートに、メイン基板10のダウンロード切替え設定部39におけるダウンロード切替え処理の手順を示す。本フローチャートでは、ダウンロード切替え用ジャンパJP2を用いる。ダウンロード切替え設定部38は、ダウンロード切替え用のジャンパJP2の2pinの電圧レベルがVccであるか否かを判断し(S61)、Vccであれば、S62に進んで、図16で説明した電源監視処理を行う。一方、Vccでなければ、そのまま処理を終了し、電源監視部35による電源開始処理は実施されない。
【0132】
次に、より好ましい対応としてメイン基板10で実施される、プログラムダウンロード指示処理について説明する。メイン基板10への電源投入時にチェックプログラムのダウンロードを行わない設定時に、チェックプログラムのダウンロード実行のユーザ指示を可能にするものであって、チェックプログラムのダウンロードを指示する操作をユーザが行うことで、ユーザが意図しているタイミングでチェックプログラムのダウンロードを実行することができる。
【0133】
たとえば、図19に示すように、メイン基板10が装着されている機器のオペレーションパネル70の表示画面上に、プログラムダウンロード実行メニュー71と、OKボタン72及びキャンセルボタン73を表示させ、ユーザがOKボタン72を押下することで、チェックプログラムのダウンロードが実行される構成が考えられる。
【0134】
なお、上記説明した具体例に限らず、チェックプログラムのダウンロード実行を指示できる方法であれば、どんな形態でも構わない。たとえば、上記例とは別の方法で、メイン基板10上にプッシュスイッチを設けて、プッシュスイッチを押下したら、チェックプログラムのダウンロードを実行する構成でも構わない。
【0135】
図20のフローチャートに、プログラムダウンロード指示部36におけるプログラムダウンロード指示処理を示すフローチャートである。本フローチャートでは、メイン基板10が装着されている機器のオペレーションパネル70での操作により、チェックプログラムのダウンロードを実行する。
【0136】
プログラムダウンロード指示部36は、まず、オペレーションパネル70の表示画面上にプログラムダウンロード実行メニュー71を表示する(S71)。次に、OKボタン72が押下されたか否かを判断し(S72)、OKボタン72が押下されれば、プログラム生成部31にチェックプログラム生成要求を出力する(S73)。これにより、図7で説明したチェックプログラム送信処理が開始される。
【0137】
一方、OKボタン72が押下されなければ、S74に進んで、キャンセルボタン73が押下されたか否かを判断し、キャンセルボタン73が押下されれば、プログラムダウンロード指示処理を終了する。キャンセルボタン73も押下されていなければ、再び、S72に戻り、OKボタン72が押下されたか否かを判断する。
【0138】
次に、より好ましい対応としてメイン基板10において実施される、プログラム受信処理について説明する。プログラム受信処理とは、プログラム受信部41が、サブ基板20と接続する第1のI/Fポート15とは別の第2のI/Fポート16を経由して取得したサブ基板20に対してダウンロードするためのプログラムデータ(ダウンロード用プログラム)を、プログラム格納領域32に格納する処理である。プログラム受信部41は、チェックプログラムを含めダウンロード用プログラムを受信すると、プログラム格納領域32に受信した該プログラムデータが格納されていない時はそのまま格納し、既に格納されている場合は、受信したプログラムの方が新しい場合には格納する(更新する)。
【0139】
ダウンロード用プログラムとしてチェックプログラムを例に説明すると、具体的には、メイン基板10の第2のI/F16としては、LAN、USB、RS−232Cなどが考えられ、PCから当該I/Fポートを経由してチェックプログラムをメイン基板10に対してダウンロードする構成が考えられる。このプログラム受信処理により、サブ基板20にダウンロードするためのチェックプログラムをメイン基板10のプログラム格納領域32に常時格納しておく必要は無く、チェックプログラムのダウンロードが必要な時に、メイン基板10の第2のI/F16を経由して、その都度チェックプログラムを取得すればよい。また、将来的にチェックプログラムが機能拡張されたとしても、チェックプログラムのバージョンアップを容易に実現することができる。
【0140】
図21のフローチャートに、プログラム受信処理の手順を示す。プログラム受信部41は、基板10がサブ基板20と接続する第1のI/Fポート15とは別の第2のI/Fポート16を経由して、チェックプログラムデータを受信したか否かを判断する(S81)。チェックプログラムデータを受信していなければ、再度S81に戻り、チェックプログラムデータを受信したか否かを判断する。一方、チェックプログラムデータを受信すると、プログラム格納領域32にチェックプログラムデータが既に格納されているか否かを判断する(S82)。
【0141】
S82において、プログラム格納領域32にチェックプログラムデータが格納されていない場合は、S81で取得したチェックプログラムデータをプログラム格納領域32に格納して、再度、S81に戻る。
【0142】
一方、S82において、プログラム格納領域32にチェックプログラムデータが格納されている場合は、S81で取得したチェックプログラムデータのプログラムバージョン情報と、プログラム格納領域32に既に格納されているチェックプログラムのプログラムバージョン情報とを比較して、どちらのプログラムの方が新しいかを判断する(S83)。
【0143】
S83において、新しく取得したチェックプログラムデータの方が新しい場合は、プログラム格納領域32に既に格納されているチェックプログラムデータを削除した上で、該取得したチェックプログラムデータを格納(上書き)し、再度、S81に戻る。一方、S83において、プログラム格納領域32に既に格納されているチェックプログラムデータの方が新しい場合は、S81で取得したチェックプログラムデータを削除し(S86)、再度、S81に戻る。なお、該処理の終了については特に記載していないが、メイン基板10の電源がオフされた時点などで終了する。
【0144】
また、プログラム受信処理にて、第2のI/Fポート16を経由して取得される対象プログラムはチェックプログラムに限定されるものではなく、同様の手順にて、ブートプログラムを取得することも可能である。つまり、プログラム受信処理において、サブ基板20と接続する第1のI/Fポート15とは別の第2のI/Fポート16を経由してブートプログラムデータが受信されると、プログラム格納領域32にブートプログラムデータが格納されていない時はそのままプログラム格納領域32に格納され、プログラム格納領域32に既に格納されている場合は、受信したブートプログラムの方が新しい場合に格納される(上書きする)。
【0145】
これにより、サブ基板20にダウンロードするためのブートプログラムをメイン基板10のプログラム格納領域32に常時格納しておく必要は無く、ブートプログラムのダウンロードが必要な時に、メイン基板10の第2のI/Fポート16を経由して、その都度ブートプログラムを取得すればよい。また、将来的にブートプログラムが機能拡張されたとしても、ブートプログラムのバージョンアップを容易に実現することができる。
【0146】
また、上述のプログラム受信処理においては、さらに、第2のI/Fポート16を経由して取得したチェックプログラムデータ或いはブートプログラムデータが、プログラム格納領域32に既に格納されているチェックプログラムデータ或いはブートプログラムデータより新しい場合、取得したチェックプログラムデータ或いはブートプログラムデータをプログラム格納領域32に上書き格納する一方、格納を完了した時点で、プログラム受信部41が、プログラム生成部31にチェックプログラム生成要求を出力する構成としてもよい。これにより、図7で説明したチェックプログラム送信処理が開始されるので、新しく取得したチェックプログラムを、或いは新しく取得したブートプログラムを、サブ基板20に対してダウンロードすることが可能となる。
【0147】
また、本メイン基板10では、サブ基板20に対してダウンロードするプログラムをメイン基板10のフラッシュ・メモリ13に格納するにあたり、圧縮状態データで格納しておく構成でもよい。これにより、メイン基板10のフラッシュ・メモリ13の領域の圧迫を軽減することができる。
【0148】
次に、より好ましい対応としてメイン基板10にて実施される、プログラム伸張処理について説明する。プログラム伸張処理とは、プログラム圧縮/伸張部40が、サブ基板20に対してダウンロードするプログラムがメイン基板10のフラッシュ・メモリ13上に圧縮された状態で格納されている場合に当該プログラムを伸張する処理である。
【0149】
プログラム圧縮/伸張部40は、メイン基板10からサブ基板20へと、チェックプログラムやブートプログラムをダウンロードする際に、メイン基板10のプログラム格納領域32においてこれらプログラムが圧縮されたデータとして格納されている場合に、当該プログラムデータの伸張処理を行う。
【0150】
図22のフローチャートに、プログラム圧縮/伸張部40におけるプログラム伸張処理の手順を示す。プログラム圧縮/伸張部40は、プログラム生成部31がプログラム送信処理を実施するか否かを判断し(S91)、プログラム送信処理が実施されない場合は、再度S91に戻る。一方、プログラム送信処理を実施する場合は、次に、プログラム格納領域32に格納されている送信すべきプログラムデータが圧縮状態かどうかを判断する(S92)。ここで、圧縮状態であれば、当該プログラムデータを伸張し(S93)、伸張したプログラムデータを、メイン基板10のフラッシュ・メモリ13内に格納する。一方、送信すべきプログラムデータが圧縮されていない状態であれば、再度、S91に戻る。なお、該処理の終了についても特に記載していないが、メイン基板10の電源がオフされた時点などで終了する。
【0151】
また、プログラム圧縮/伸張部40は、チェックプログラムやブートプログラム等のサブ基板20へとダウンロードすべきプログラムデータが、メイン基板10に対して既に圧縮された状態でダウンロードされる場合は圧縮処理を実施しないが、圧縮されない状態でダウンロードされた場合は、圧縮処理を実施した後、プログラム格納領域32に格納する。
【0152】
また、本発明のプログラムダウンロード方法は、メイン基板にプロセッサとメイン基板を動作させるためのプログラムが格納されている不揮発性メモリおよびRAMとを備え、サブ基板にプロセッサとサブ基板を動作させるためのプログラムを格納する不揮発性メモリおよびRAMとを備え、メイン基板からサブ基板の不揮発性メモリに対してサブ基板を動作させるためのプログラムをダウンロードするプログラムダウンロード方法において、サブ基板はメイン基板に対して、不揮発性メモリにおけるチェックプログラムを書き込める領域のみを開放し、メイン基板は当該領域に対してチェックプログラムをダウンロードし、チェックプログラムをダウンロード後、サブ基板は当該チェックプログラムを起動して、サブ基板に接続されているメイン基板がプログラムダウンロード許可対象であるか否かを判断し、許可対象であれば、サブ基板の不揮発性メモリにおける領域を開放して、メイン基板はサブ基板にプログラムをダウンロードし、許可対象でなければ、サブ基板の不揮発性メモリにおける領域を開放せず処理を終了することを特徴としているとも換言できる。
【産業上の利用可能性】
【0153】
プログラムが何もない状態の制御装置に、許可されているプログラム供給装置からのみ選択的にブートプログラムを始めとする、該制御装置を動作させるためのプログラムをダウンロードさせることができるので、例えば複合機におけるメイン基板と、機能を追加できるようにオプション設定されるサブ基板であって、複数種のメイン基板に対して共有オプションとして用いられるサブ基板との間に利用することができる。
【図面の簡単な説明】
【0154】
【図1】本発明における実施の一形態を示すもので、プログラムダウンロードシステムにおけるプログラム供給装置であるメイン基板と制御装置であるサブ基板とにおける各ハードウェア構成及び接続関係を示す構成図である。
【図2】上記プログラムダウンロードシステムにおけるメイン基板とサブ基板とのメモリ関係を説明するための図面である。
【図3】上記メイン基板上で動作するプログラムの機能ブロック図である。
【図4】上記メイン基板のプログラム格納領域に格納されているデータを説明するための図面である。
【図5】上記メイン基板より上記サブ基板に対してダウンロードされ、サブ基板上で動作するチェックプログラムの機能ブロック図である。
【図6】(a)(b)共に、メイン基板或いはサブ基板に設けられるジャンパを説明するための図面である。
【図7】上記メイン基板で実施されるチェックプログラム送信処理の手順を示すフローチャートである。
【図8】上記サブ基板に具備されるダウンロード許可IDリストを説明する図面である。
【図9】(a)(b)共に、サブ基板に設けられる、ダウンロード許可のジャンパ設定を説明する図面である。
【図10】(a)(b)共に、サブ基板に設けられる、ダウンロード可否判断のジャンパ設定を説明する図面である。
【図11】上記サブ基板で実施されるダウンロード可否判断処理の手順を示すフローチャートである。
【図12】上記サブ基板で実施されるブート領域開放処理の手順を示すフローチャートである。
【図13】上記メイン基板で実施されるチェックプログラム再送処理の手順を示すフローチャートである。
【図14】(a)〜(c)共に、上記メイン基板にて実施されるチェックプログラムのダウンロード状態の報知例である。
【図15】上記メイン基板で実施されるプログラムダウンロード状態報知処理の手順を示すフローチャートである。
【図16】上記メイン基板で実施される電源監視処理の手順を示すフローチャートである。
【図17】(a)(b)共に、メイン基板に設けられる、ダウンロード切替えのジャンパ設定を説明する図面である。
【図18】上記メイン基板で実施される、ダウンロード切替え処理の手順を示すフローチャートである。
【図19】上記メイン基板にて実施されるプログラムダウンロード指示処理において、オペレーションパネルでの操作により、チェックプログラムのダウンロードを実行する方法を説明した図面である。
【図20】上記メイン基板で実施されるプログラムダウンロード指示処理の手順を示すフローチャートである。
【図21】上記メイン基板で実施されるプログラム受信処理の手順を示すフローチャートである。
【図22】上記メイン基板で実施されるプログラム伸張処理の手順を示すフローチャートである。
【符号の説明】
【0155】
10 メイン基板(プログラム供給装置)
15 第1のI/Fポート(入出力部)
16 第2のI/Fポート(入出力部)
20 サブ基板(制御装置)
22 ASIC(チェックプログラム受付手段)
23 フラッシュ・メモリ(不揮発性メモリ)
31 プログラム生成部(チェックプログラムダウンロード手段)
32 プログラム格納領域
33 ID格納領域(識別情報格納領域)
34 プログラム送信部(チェックプログラムダウンロード手段)
35 電源監視部(電源監視手段)
36 プログラムダウンロード指示部(指示入力手段)
37 解析部(解析手段)
39 切替え設定部(設定手段)
38 ダウンロード情報報知部(ダウンロード情報報知手段)
41 プログラム受信部(プログラム受信手段)
【特許請求の範囲】
【請求項1】
制御装置が有する該制御装置を動作させるためのプログラムを格納するための不揮発性メモリに、該制御装置を動作させるためのプログラムをプログラム供給装置からダウンロードさせるプログラムダウンロードシステムのプログラムダウンロード方法であって、
上記制御装置は、上記プログラム供給装置に対して、上記不揮発性メモリにおけるブートプログラム領域の一部の所定領域のみを開放し、
上記プログラム供給装置は、上記制御装置において開放された上記所定領域にチェックプログラムをダウンロードさせ、
上記制御装置は、上記プログラム供給装置よりダウンロードされた上記チェックプログラムを起動して、接続されている上記プログラム供給装置が当該制御装置へのプログラムのダウンロードを許可されている許可対象であるか否かを判断し、許可対象であれば上記不揮発性メモリにおける上記所定領域以外の領域も開放し、許可対象でなければ上記不揮発性メモリにおける上記所定領域以外の領域を開放しないことを特徴とするプログラムダウンロード方法。
【請求項2】
上記制御装置は、上記プログラム供給装置が許可対象であれば、上記不揮発性メモリにおけるブートプログラム領域分を開放することを特徴とする請求項1に記載のプログラムダウンロード方法。
【請求項3】
上記チェックプログラムには、上記プログラム供給装置に付されている装置固有の識別情報が含まれており、
上記制御装置における許可対象であるか否かの判断に、上記プログラム供給装置から取得される上記識別情報を用いることを特徴とする請求項1に記載のプログラムダウンロード方法。
【請求項4】
上記制御装置における許可対象であるか否かの判断に、上記制御装置に設けられるジャンパの設定を用いることを特徴とする請求項1に記載のプログラムダウンロード方法。
【請求項5】
制御装置と接続され、該制御装置とI/Fメモリ空間を共有し、該制御装置が有する該制御装置を動作させるためのプログラムを格納するための不揮発性メモリに、該制御装置を動作させるプログラムを上記I/Fメモリ空間を介してダウンロードさせるプログラム供給装置であって、
接続されている上記プログラム供給装置が上記制御装置へのプログラムのダウンロードを許可されている許可対象であるか否かを判断し、許可対象であれば上記制御装置が有する不揮発性メモリのメモリ領域をI/Fメモリ空間に対して開放し、許可対象でなければ上記不揮発性メモリのメモリ領域をI/Fメモリ空間に対して開放しない処理を実行させるチェックプログラムを、上記制御装置が有する上記不揮発性メモリにおけるブートプログラム領域にダウンロードさせるチェックプログラムダウンロード手段を備えることを特徴とするプログラム供給装置。
【請求項6】
上記チェックプログラムダウンロード手段は、
プログラム格納領域に格納されているチェックプログラムを参照して上記制御装置に送信するためのチェックプログラムを生成するプログラム生成手段と、
該チェックプログラム生成手段にて生成されたチェックプログラムを、上記I/Fメモリ空間を介して上記制御装置へと転送するプログラム送信手段とを備えることを特徴とする請求項5に記載のプログラム供給装置。
【請求項7】
自装置に付されている装置固有の識別情報を格納する識別情報格納領域を備え、
上記チェックプログラム生成手段は、上記識別情報格納領域を参照して、チェックプログラムに自装置の識別情報を組み入れることを特徴とする請求項6に記載のプログラム供給装置。
【請求項8】
上記チェックプログラムに、チェックプログラムのダウンロードの終了を示すチェックプログラムダウンロード終了情報を上記プログラム供給装置へ送信する処理を実行させる終了報知プログラムがさらに含まれていることを特徴とする請求項5に記載のプログラム供給装置。
【請求項9】
上記制御装置より上記チェックプログラムダウンロード終了情報を受信したか否かを判断する解析手段をさらに備え、
上記チェックプログラムダウンロード手段は、チェックプログラムを送信後、上記解析手段がチェックプログラムダウンロード終了情報を受信していない場合に、上記制御装置に対して上記チェックプログラムを再送することを特徴とする請求項8に記載のプログラム供給装置。
【請求項10】
上記制御装置へのチェックプログラムのダウンロード状態をユーザに報知するダウンロード状態報知手段を、さらに備えることを特徴とする請求項5に記載のプログラム供給装置。
【請求項11】
自装置の電源が投入されたか否かを判断する電源監視手段をさらに備え、
上記チェックプログラムダウンロード手段は、上記電源監視手段にて電源が投入されたと判断されると、上記制御装置にチェックプログラムをダウンロードさせる動作を開始すること特徴とする請求項5に記載のプログラム供給装置。
【請求項12】
上記電源監視手段にて電源が投入されたと判断されると、上記制御装置にチェックプログラムをダウンロードさせる動作を開始することの可否を、上記チェックプログラムダウンロード手段に対して設定する設定手段を、さらに備えることを特徴とする請求項11に記載のプログラム供給装置。
【請求項13】
上記制御装置にチェックプログラムをダウンロードさせる動作の開始を、上記チェックプログラムダウンロード手段に対して指示する指示入力手段を、さらに備えることを特徴とする請求項5、又は12に記載のプログラム供給装置。
【請求項14】
外部装置と接続され、情報の入出力を可能にする入出力部を少なくとも2つ備えると共に、
上記制御装置と接続される入出力部とは別の入出力部を介して上記チェックプログラムを含む上記制御装置に対するダウンロード用プログラムを取得し、取得したダウンロード用プログラムが上記プログラム格納領域に格納されていない場合は取得したダウンロード用プログラムを格納する一方、既に格納されている場合は両ダウンロード用プログラムの比較を行い、取得したダウンロード用プログラムの方が新しければ上記プログラム格納領域の内容を更新するプログラム受信手段を、さらに備えることを特徴とする請求項6に記載のプログラム供給装置。
【請求項15】
上記プログラム格納領域に、上記チェックプログラムを含む上記制御装置に対するダウンロード用プログラムが圧縮されて格納されていることを特徴とする請求項6に記載のプログラム供給装置。
【請求項16】
制御装置と接続され、該制御装置とI/Fメモリ空間を共有し、該制御装置が有する該制御装置を動作させるためのプログラムを格納するための不揮発性メモリに、該制御装置を動作させるプログラムを上記I/Fメモリ空間を介してダウンロードさせるプログラム供給装置のプログラム供給方法であって、
接続されている上記プログラム供給装置が上記制御装置へのプログラムのダウンロードを許可されている許可対象であるか否かを判断し、許可対象であれば上記制御装置が有する不揮発性メモリのメモリ領域をI/Fメモリ空間に対して開放し、許可対象でなければ上記不揮発性メモリのメモリ領域をI/Fメモリ空間に対して開放しない処理を実行させるチェックプログラムを、上記制御装置が有する上記不揮発性メモリにおけるブートプログラム領域にダウンロードさせるチェックプログラムダウンロードステップを含むことを特徴とするプログラム供給方法。
【請求項17】
プログラム供給装置と接続され、該プログラム供給装置とI/Fメモリ空間を共有し、該プログラム供給装置から、自装置が有する自装置を動作させるためのプログラムを格納するための不揮発性メモリに対して、自装置を動作させるためのプログラムがダウンロードされる制御装置であって、
自装置が有する上記不揮発性メモリのブートプログラム領域にブートプログラムが格納されていない状態で、上記不揮発性メモリのブートプログラム領域の一部の所定領域のみを上記I/Fメモリ空間に対して開放するチェックプログラム受付手段を備えることを特徴とする制御装置。
【請求項18】
上記不揮発性メモリに、自装置へのプログラムのダウンロードが許可されている許可対象のプログラム供給装置に付された識別情報のリストが格納されていることを特徴とする請求項17に記載の制御装置。
【請求項19】
接続されているプログラム供給装置が、自装置へのプログラムのダウンロードが許可されている許可対象であることを指定するためのジャンパが設けられていることを特徴とする請求項17に記載の制御装置。
【請求項20】
プログラム供給装置と接続され、該プログラム供給装置とI/Fメモリ空間を共有し、該プログラム供給装置から、自装置が有する自装置を動作させるためのプログラムを格納するための不揮発性メモリに対して、自装置を動作させるためのプログラムがダウンロードされる制御装置の制御方法であって、
自装置が有する上記不揮発性メモリのブートプログラム領域にブートプログラムが格納されていない状態で、上記不揮発性メモリのブートプログラム領域の一部の所定領域のみを上記I/Fメモリ空間に対して開放するチェックプログラム受付ステップを含むことを特徴とする制御方法。
【請求項21】
制御装置が有する該制御装置を動作させるためのプログラムを格納するための不揮発性メモリに、該制御装置を動作させるためのプログラムをプログラム供給装置からダウンロードさせるプログラムダウンロードシステムであって、
請求項5〜15の何れか1項に記載のプログラム供給装置と、請求項17〜19の何れか1項に記載の制御装置とからなるプログラムダウンロードシステム。
【請求項1】
制御装置が有する該制御装置を動作させるためのプログラムを格納するための不揮発性メモリに、該制御装置を動作させるためのプログラムをプログラム供給装置からダウンロードさせるプログラムダウンロードシステムのプログラムダウンロード方法であって、
上記制御装置は、上記プログラム供給装置に対して、上記不揮発性メモリにおけるブートプログラム領域の一部の所定領域のみを開放し、
上記プログラム供給装置は、上記制御装置において開放された上記所定領域にチェックプログラムをダウンロードさせ、
上記制御装置は、上記プログラム供給装置よりダウンロードされた上記チェックプログラムを起動して、接続されている上記プログラム供給装置が当該制御装置へのプログラムのダウンロードを許可されている許可対象であるか否かを判断し、許可対象であれば上記不揮発性メモリにおける上記所定領域以外の領域も開放し、許可対象でなければ上記不揮発性メモリにおける上記所定領域以外の領域を開放しないことを特徴とするプログラムダウンロード方法。
【請求項2】
上記制御装置は、上記プログラム供給装置が許可対象であれば、上記不揮発性メモリにおけるブートプログラム領域分を開放することを特徴とする請求項1に記載のプログラムダウンロード方法。
【請求項3】
上記チェックプログラムには、上記プログラム供給装置に付されている装置固有の識別情報が含まれており、
上記制御装置における許可対象であるか否かの判断に、上記プログラム供給装置から取得される上記識別情報を用いることを特徴とする請求項1に記載のプログラムダウンロード方法。
【請求項4】
上記制御装置における許可対象であるか否かの判断に、上記制御装置に設けられるジャンパの設定を用いることを特徴とする請求項1に記載のプログラムダウンロード方法。
【請求項5】
制御装置と接続され、該制御装置とI/Fメモリ空間を共有し、該制御装置が有する該制御装置を動作させるためのプログラムを格納するための不揮発性メモリに、該制御装置を動作させるプログラムを上記I/Fメモリ空間を介してダウンロードさせるプログラム供給装置であって、
接続されている上記プログラム供給装置が上記制御装置へのプログラムのダウンロードを許可されている許可対象であるか否かを判断し、許可対象であれば上記制御装置が有する不揮発性メモリのメモリ領域をI/Fメモリ空間に対して開放し、許可対象でなければ上記不揮発性メモリのメモリ領域をI/Fメモリ空間に対して開放しない処理を実行させるチェックプログラムを、上記制御装置が有する上記不揮発性メモリにおけるブートプログラム領域にダウンロードさせるチェックプログラムダウンロード手段を備えることを特徴とするプログラム供給装置。
【請求項6】
上記チェックプログラムダウンロード手段は、
プログラム格納領域に格納されているチェックプログラムを参照して上記制御装置に送信するためのチェックプログラムを生成するプログラム生成手段と、
該チェックプログラム生成手段にて生成されたチェックプログラムを、上記I/Fメモリ空間を介して上記制御装置へと転送するプログラム送信手段とを備えることを特徴とする請求項5に記載のプログラム供給装置。
【請求項7】
自装置に付されている装置固有の識別情報を格納する識別情報格納領域を備え、
上記チェックプログラム生成手段は、上記識別情報格納領域を参照して、チェックプログラムに自装置の識別情報を組み入れることを特徴とする請求項6に記載のプログラム供給装置。
【請求項8】
上記チェックプログラムに、チェックプログラムのダウンロードの終了を示すチェックプログラムダウンロード終了情報を上記プログラム供給装置へ送信する処理を実行させる終了報知プログラムがさらに含まれていることを特徴とする請求項5に記載のプログラム供給装置。
【請求項9】
上記制御装置より上記チェックプログラムダウンロード終了情報を受信したか否かを判断する解析手段をさらに備え、
上記チェックプログラムダウンロード手段は、チェックプログラムを送信後、上記解析手段がチェックプログラムダウンロード終了情報を受信していない場合に、上記制御装置に対して上記チェックプログラムを再送することを特徴とする請求項8に記載のプログラム供給装置。
【請求項10】
上記制御装置へのチェックプログラムのダウンロード状態をユーザに報知するダウンロード状態報知手段を、さらに備えることを特徴とする請求項5に記載のプログラム供給装置。
【請求項11】
自装置の電源が投入されたか否かを判断する電源監視手段をさらに備え、
上記チェックプログラムダウンロード手段は、上記電源監視手段にて電源が投入されたと判断されると、上記制御装置にチェックプログラムをダウンロードさせる動作を開始すること特徴とする請求項5に記載のプログラム供給装置。
【請求項12】
上記電源監視手段にて電源が投入されたと判断されると、上記制御装置にチェックプログラムをダウンロードさせる動作を開始することの可否を、上記チェックプログラムダウンロード手段に対して設定する設定手段を、さらに備えることを特徴とする請求項11に記載のプログラム供給装置。
【請求項13】
上記制御装置にチェックプログラムをダウンロードさせる動作の開始を、上記チェックプログラムダウンロード手段に対して指示する指示入力手段を、さらに備えることを特徴とする請求項5、又は12に記載のプログラム供給装置。
【請求項14】
外部装置と接続され、情報の入出力を可能にする入出力部を少なくとも2つ備えると共に、
上記制御装置と接続される入出力部とは別の入出力部を介して上記チェックプログラムを含む上記制御装置に対するダウンロード用プログラムを取得し、取得したダウンロード用プログラムが上記プログラム格納領域に格納されていない場合は取得したダウンロード用プログラムを格納する一方、既に格納されている場合は両ダウンロード用プログラムの比較を行い、取得したダウンロード用プログラムの方が新しければ上記プログラム格納領域の内容を更新するプログラム受信手段を、さらに備えることを特徴とする請求項6に記載のプログラム供給装置。
【請求項15】
上記プログラム格納領域に、上記チェックプログラムを含む上記制御装置に対するダウンロード用プログラムが圧縮されて格納されていることを特徴とする請求項6に記載のプログラム供給装置。
【請求項16】
制御装置と接続され、該制御装置とI/Fメモリ空間を共有し、該制御装置が有する該制御装置を動作させるためのプログラムを格納するための不揮発性メモリに、該制御装置を動作させるプログラムを上記I/Fメモリ空間を介してダウンロードさせるプログラム供給装置のプログラム供給方法であって、
接続されている上記プログラム供給装置が上記制御装置へのプログラムのダウンロードを許可されている許可対象であるか否かを判断し、許可対象であれば上記制御装置が有する不揮発性メモリのメモリ領域をI/Fメモリ空間に対して開放し、許可対象でなければ上記不揮発性メモリのメモリ領域をI/Fメモリ空間に対して開放しない処理を実行させるチェックプログラムを、上記制御装置が有する上記不揮発性メモリにおけるブートプログラム領域にダウンロードさせるチェックプログラムダウンロードステップを含むことを特徴とするプログラム供給方法。
【請求項17】
プログラム供給装置と接続され、該プログラム供給装置とI/Fメモリ空間を共有し、該プログラム供給装置から、自装置が有する自装置を動作させるためのプログラムを格納するための不揮発性メモリに対して、自装置を動作させるためのプログラムがダウンロードされる制御装置であって、
自装置が有する上記不揮発性メモリのブートプログラム領域にブートプログラムが格納されていない状態で、上記不揮発性メモリのブートプログラム領域の一部の所定領域のみを上記I/Fメモリ空間に対して開放するチェックプログラム受付手段を備えることを特徴とする制御装置。
【請求項18】
上記不揮発性メモリに、自装置へのプログラムのダウンロードが許可されている許可対象のプログラム供給装置に付された識別情報のリストが格納されていることを特徴とする請求項17に記載の制御装置。
【請求項19】
接続されているプログラム供給装置が、自装置へのプログラムのダウンロードが許可されている許可対象であることを指定するためのジャンパが設けられていることを特徴とする請求項17に記載の制御装置。
【請求項20】
プログラム供給装置と接続され、該プログラム供給装置とI/Fメモリ空間を共有し、該プログラム供給装置から、自装置が有する自装置を動作させるためのプログラムを格納するための不揮発性メモリに対して、自装置を動作させるためのプログラムがダウンロードされる制御装置の制御方法であって、
自装置が有する上記不揮発性メモリのブートプログラム領域にブートプログラムが格納されていない状態で、上記不揮発性メモリのブートプログラム領域の一部の所定領域のみを上記I/Fメモリ空間に対して開放するチェックプログラム受付ステップを含むことを特徴とする制御方法。
【請求項21】
制御装置が有する該制御装置を動作させるためのプログラムを格納するための不揮発性メモリに、該制御装置を動作させるためのプログラムをプログラム供給装置からダウンロードさせるプログラムダウンロードシステムであって、
請求項5〜15の何れか1項に記載のプログラム供給装置と、請求項17〜19の何れか1項に記載の制御装置とからなるプログラムダウンロードシステム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【公開番号】特開2007−58561(P2007−58561A)
【公開日】平成19年3月8日(2007.3.8)
【国際特許分類】
【出願番号】特願2005−242964(P2005−242964)
【出願日】平成17年8月24日(2005.8.24)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】
【公開日】平成19年3月8日(2007.3.8)
【国際特許分類】
【出願日】平成17年8月24日(2005.8.24)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】
[ Back to top ]