(57)【特許請求の範囲】
【請求項１】
ネットワークに接続される特定の通信装置であって、
ファームウェアを格納するための格納部と、
前記ネットワークに接続された複数の通信装置と通信する制御部であって、前記複数の通信装置のそれぞれは、自己のファームウェアに従って動作する、前記制御部と、
を備え、
前記制御部は、
前記格納部に現在格納されている特定のファームウェアのバージョン情報を含む第１ファームウェア情報を、前記ネットワークにブロードキャストする情報送信部と、
前記複数の通信装置の中に、前記特定のファームウェアの前記バージョン情報よりも古いファームウェアを有する第１種の通信装置が存在する場合に、前記第１ファームウェア情報のブロードキャストから所定時間が経過する前に、前記第１種の通信装置から前記第１ファームウェア情報に応じて送信される第１ファームウェア要求を受信する要求受信部と、
（１）前記第１ファームウェア情報のブロードキャストから前記所定時間が経過する前に、第２ファームウェア情報が受信されない場合に、前記第１種の通信装置からの前記第１ファームウェア要求に応じて、前記特定のファームウェアを前記第１種の通信装置に送信し、（２）前記第１ファームウェア情報のブロードキャストから前記所定時間が経過する前に、前記第２ファームウェア情報が受信される場合に、前記特定のファームウェアを前記第１種の通信装置に送信しないファームウェア送信部であって、前記第２ファームウェア情報は、前記複数の通信装置の中に、前記第１ファームウェアの前記バージョン情報よりも新しいファームウェアを有する第２種の通信装置が存在する場合に、前記第２種の通信装置から前記第１ファームウェア情報に応じて前記ネットワークにブロードキャストされる情報であり、前記新しいファームウェアのバージョン情報を含む、前記ファームウェア送信部と、
前記第１ファームウェア情報のブロードキャストから前記所定時間が経過する前に、前記第２ファームウェア情報が受信される場合に、第２ファームウェア要求を前記第２種の通信装置に送信する要求送信部と、
前記第２種の通信装置から前記第２ファームウェア要求に応じて送信される前記新しいファームウェアを受信するファームウェア受信部と、
前記格納部に現在格納されている前記特定のファームウェアを前記新しいファームウェアに更新する更新部と、
を備える特定の通信装置。
【請求項２】
前記第２ファームウェア情報は、前記第２種の通信装置の機種情報をさらに含み、
前記要求送信部は、前記第１ファームウェア情報のブロードキャストから前記所定時間が経過する前に、前記第２ファームウェア情報が受信される場合であって、前記第２種の通信装置の前記機種情報が前記特定の通信装置の機種情報に一致する場合に、前記第２ファームウェア要求を前記第２種の通信装置に送信する、請求項１に記載の特定の通信装置。
【請求項３】
前記情報送信部は、前記特定のファームウェアの起動時に前記第１ファームウェア情報を前記ネットワークにブロードキャストする、請求項１又は２に記載の特定の通信装置。
【請求項４】
前記情報送信部は、前記特定のファームウェアの起動時に、ランダムな期間が経過した後に、前記第１ファームウェア情報を前記ネットワークにブロードキャストする、請求項３に記載の特定の通信装置。
【請求項５】
前記情報送信部は、
前記ランダムな期間が経過する前に、前記複数の通信装置のうちのいずれかの通信装置から送信される第３ファームウェア情報が受信される場合に、前記第１ファームウェア情報を前記ネットワークにブロードキャストせず、
前記ランダムな期間が経過する前に、前記第３ファームウェア情報が受信されない場合に、前記第１ファームウェア情報を前記ネットワークにブロードキャストし、
前記第３ファームウェア情報は、前記特定のファームウェアの前記バージョン情報に一致するバージョン情報、又は、前記特定のファームウェアの前記バージョン情報よりも新しいバージョン情報を含む、請求項４に記載の特定の通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファームウェアに従って動作する通信装置に関する。
【背景技術】
【０００２】
例えば、特許文献１には、ファームウェアに従って動作する通信装置と、ファームウェア配信サーバと、を備えるシステムが開示されている。ファームウェア配信サーバは、通信装置に配信するためのファームウェアを格納する。ファームウェア配信サーバは、新たなファームウェアを格納した時、又は、通信装置からの要求を受信した時に、自己が格納しているファームウェアのバージョン情報を通信装置に送信する。通信装置は、ファームウェア配信サーバからのバージョン情報が、自己が現在使用しているファームウェアのバージョン情報よりも新しい場合に、ファームウェア配信サーバから新たなファームウェアをダウンロードし、ファームウェアのバージョンアップを行なう。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−５９９１号公報
【特許文献２】特開２００５−５６０３６号公報
【特許文献３】特開２００５−７１１５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記のファームウェア配信サーバは、通信装置に配信するためのファームウェアに従って動作するものではない。即ち、特許文献１の技術では、自己が動作するのに必要とされないファームウェアを格納して通信装置に配信する他の制御装置が必要である。本明細書では、他の制御装置を利用しなくても、通信装置が使用するファームウェアのバージョンアップを行なうことができる技術を提供する。
【課題を解決するための手段】
【０００５】
本発明は、ネットワークに接続される特定の通信装置であって、ファームウェアを格納するための格納部と、前記ネットワークに接続された複数の通信装置と通信する制御部であって、前記複数の通信装置のそれぞれは、自己のファームウェアに従って動作する、前記制御部と、を備え、前記制御部は、前記格納部に現在格納されている特定のファームウェアのバージョン情報を含む第１ファームウェア情報を、前記ネットワークにブロードキャストする情報送信部と、前記複数の通信装置の中に、前記特定のファームウェアの前記バージョン情報よりも古いファームウェアを有する第１種の通信装置が存在する場合に、前記第１ファームウェア情報のブロードキャストから所定時間が経過する前に、前記第１種の通信装置から前記第１ファームウェア情報に応じて送信される第１ファームウェア要求を受信する要求受信部と、（１）前記第１ファームウェア情報のブロードキャストから前記所定時間が経過する前に、第２ファームウェア情報が受信されない場合に、前記第１種の通信装置からの前記第１ファームウェア要求に応じて、前記特定のファームウェアを前記第１種の通信装置に送信し、（２）前記第１ファームウェア情報のブロードキャストから前記所定時間が経過する前に、前記第２ファームウェア情報が受信される場合に、前記特定のファームウェアを前記第１種の通信装置に送信しないファームウェア送信部であって、前記第２ファームウェア情報は、前記複数の通信装置の中に、前記第１ファームウェアの前記バージョン情報よりも新しいファームウェアを有する第２種の通信装置が存在する場合に、前記第２種の通信装置から前記第１ファームウェア情報に応じて前記ネットワークにブロードキャストされる情報であり、前記新しいファームウェアのバージョン情報を含む、前記ファームウェア送信部と、前記第１ファームウェア情報のブロードキャストから前記所定時間が経過する前に、前記第２ファームウェア情報が受信される場合に、第２ファームウェア要求を前記第２種の通信装置に送信する要求送信部と、前記第２種の通信装置から前記第２ファームウェア要求に応じて送信される前記新しいファームウェアを受信するファームウェア受信部と、前記格納部に現在格納されている前記特定のファームウェアを前記新しいファームウェアに更新する更新部と、を備える。
本明細書の一つの実施形態では、ネットワークに接続される第１通信装置を開示する。この第１通信装置は、ファームウェアを格納するための格納部と、制御部と、を備える。なお、上記の「ファームウェア」という用語は、例えば、「プログラム」と言い換えてもよい。制御部は、ネットワークに接続された複数の通信装置と通信する。上記の複数の通信装置のそれぞれは、自己のファームウェアに従って動作する。
【０００６】
制御部は、情報受信部と要求送信部とファームウェア受信部と更新部とを備える。情報受信部は、上記の複数の通信装置のうちの第２通信装置から送信されるファームウェア情報であって、第２通信装置が有する第２ファームウェアのバージョン情報を含むファームウェア情報を受信する。要求送信部は、第２ファームウェアのバージョン情報が格納部に現在格納されている第１ファームウェアのバージョン情報よりも新しい第１の場合に、ファームウェア要求を第２通信装置に送信する。ファームウェア受信部は、ファームウェア要求に応じて第２通信装置から送信される第２ファームウェアを受信する。更新部は、格納部に現在格納されている第１ファームウェアを第２ファームウェアに更新する。
【０００７】
上記の第１通信装置によると、自己の第１ファームウェアよりも新しい第２ファームウェアに従って動作する第２通信装置から第２ファームウェアを取得し、自己の第１ファームウェアを第２ファームウェアに更新することができる。自己が動作するのに必要とされないファームウェアを格納する他の制御装置を利用しなくても、第１通信装置が使用する第１ファームウェアを第２ファームウェアにバージョンアップすることができる。
【０００８】
上記のファームウェア情報は、第２通信装置の機種情報をさらに含んでいてもよい。この場合、要求送信部は、上記の第１の場合であって、第２通信装置の機種情報が第１通信装置の機種情報に一致する場合に、ファームウェア要求を第２通信装置に送信してもよい。この構成によると、第１通信装置は、同じ機種情報を有する第２通信装置から第２ファームウェアを取得することができる。
【０００９】
上記の構成には、さらに、以下の構成を付加してもよい。即ち、要求送信部は、上記の第１の場合であって、第２通信装置の機種情報が第１通信装置の機種情報に一致しない場合に、ファームウェア要求を第２通信装置に送信しなくてもよい。第１通信装置と第２通信装置とが異なる機種である場合には、それらの通信装置が使用可能なファームウェアが異なる可能性が高い。上記の構成によると、第１通信装置は、自己の機種情報と異なる機種情報を有する第２通信装置にファームウェア要求を送信しないために、使用不可能なファームウェアを第２通信装置から取得することがない。使用不可能なファームウェアを第１通信装置が取得するという無駄な通信処理が行なわれるのを抑制することができる。
【００１０】
制御部は、第１の情報送信部と第１の要求受信部と第１のファームウェア送信部とをさらに備えていてもよい。第１の情報送信部は、更新部が第２ファームウェアに更新した後に、第２ファームウェアのバージョン情報を含む更新済ファームウェア情報を上記の複数の通信装置に送信してもよい。第１の要求受信部は、上記の複数の通信装置のうちの第３通信装置であって、第２ファームウェアのバージョン情報よりも古い第３ファームウェアを有する第３通信装置から送信されるファームウェア要求を受信してもよい。第１のファームウェア送信部は、第３通信装置からのファームウェア要求に応じて、格納部に現在格納されている第２ファームウェアを第３通信装置に送信してもよい。この構成によると、自己が動作するのに必要とされないファームウェアを格納する他の制御装置を利用しなくても、第１通信装置から第３通信装置に第２ファームウェアを提供することができる。
【００１１】
なお、上記の更新済ファームウェア情報は、第１通信装置の機種情報をさらに含んでいてもよい。第１の要求受信部は、第１通信装置の機種情報に一致する機種情報を有する第３通信装置であって、第２ファームウェアのバージョン情報よりも古い第３ファームウェアを有する第３通信装置から送信されるファームウェア要求を受信してもよい。この構成によると、第１通信装置は、自己と同じ機種である第３通信装置に第２ファームウェアを提供することができる。
【００１２】
第１の情報送信部は、第２ファームウェアの起動時に更新済ファームウェア情報を送信してもよい。なお、上記の「第２ファームウェアの起動時」は、第１通信装置の電源がＯＮされることによって第２ファームウェアが起動する時であってもよいし、第１通信装置がリブート（再起動）されることによって第２ファームウェアが起動する時であってもよい。なお、第１の情報送信部は、第２ファームウェアの起動時に更新済ファームウェア情報を送信せず、例えば、定期的（例えば１時間毎）に更新済ファームウェア情報を送信してもよい。また、第１の情報送信部は、第２ファームウェアの起動時に、ランダムな期間が経過した後に、更新済ファームウェア情報を送信してもよい。
【００１３】
第１の情報送信部が更新済ファームウェア情報を送信する前に、上記の複数の通信装置のうちの第４通信装置から送信されるファームウェア情報であって、第４通信装置が有する第４ファームウェアのバージョン情報を含むファームウェア情報を、情報受信部が受信する場合には、以下の構成を採用してもよい。即ち、第４ファームウェアのバージョン情報が第２ファームウェアのバージョン情報に一致する第２の場合に、第１の情報送信部は、更新済ファームウェア情報を送信しなくてもよい。この構成によると、第１通信装置は、第４通信装置が送信したファームウェア情報と同じ内容の更新済ファームウェア情報（同じバージョン情報を含む更新済ファームウェア情報）を送信せずに済み、この結果、同じ内容の複数のファームウェア情報がネットワークに送信されるのを抑制することができる。また、第４ファームウェアのバージョン情報が第２ファームウェアのバージョン情報に一致しない第３の場合に、第１の情報送信部は、更新済ファームウェア情報を送信してもよい。
【００１４】
なお、上記の「第１の情報送信部が更新済ファームウェア情報を送信する」という用語は、第２ファームウェアに更新された後に、第１の情報送信部が更新済ファームウェア情報を初めて送信することに限られない。例えば、第２ファームウェアに更新された後に、リブートされたことに起因して第１の情報送信部が１回目の更新済ファームウェア情報を送信し、その後に、電源がＯＦＦされて電源が再びＯＮされたことに起因して第１の情報送信部が２回目の更新済ファームウェア情報を送信する場合において、上記の用語は、１回目の更新済ファームウェア情報を送信することも含むし、２回目の更新済ファームウェア情報を送信することも含む。
【００１５】
上記の第３の場合であって、第４ファームウェアのバージョン情報が第２ファームウェアのバージョン情報よりも新しい場合に、要求送信部は、ファームウェア要求を第４通信装置に送信してもよい。また、上記の第３の場合であって、第４ファームウェアのバージョン情報が第２ファームウェアのバージョン情報よりも古い場合に、第１の情報送信部は、更新済ファームウェア情報を送信してもよい。
【００１６】
上記の構成には、さらに、以下の構成を付加してもよい。上記の第３の場合であって、第４ファームウェアのバージョン情報が第２ファームウェアのバージョン情報よりも新しい場合に、ファームウェア受信部は、ファームウェア要求に応じて第４通信装置から送信される第４ファームウェアを受信してもよい。また、更新部は、格納部に現在格納されている第２ファームウェアを第４ファームウェアに更新してもよい。この構成によると、第１通信装置は、自己の第２ファームウェアよりも新しい第４ファームウェアに従って動作する第４通信装置から第４ファームウェアを取得し、自己の第２ファームウェアを第４ファームウェアにバージョンアップすることができる。
【００１７】
第４通信装置から送信されるファームウェア情報は、第４通信装置の機種情報をさらに含んでいてもよい。第４通信装置の機種情報が第１通信装置の機種情報に一致しない場合に、第１の情報送信部は、更新済ファームウェア情報を送信してもよい。この構成によると、第１通信装置は、自己と異なる機種である第４通信装置からファームウェア情報を受信しても、更新済ファームウェア情報を送信することができる。これにより、第１通信装置は、自己と同じ機種である他の通信装置からファームウェア要求を受信し得る。第１通信装置は、上記の他の通信装置からのファームウェア要求に応じて、第２ファームウェアを上記の他の通信装置に送信することができる。また、上記の第２の場合であって、第４通信装置の機種情報が第１通信装置の機種情報に一致する場合に、第１の情報送信部は、更新済ファームウェア情報を送信しなくてもよい。さらに、上記の第３の場合であって、第４通信装置の機種情報が第１通信装置の機種情報に一致する場合に、第１の情報送信部は、更新済ファームウェア情報を送信してもよい。
【００１８】
なお、第１の情報送信部が更新済ファームウェア情報を送信した後に、第２ファームウェアのバージョン情報よりも新しい特定のファームウェアを有する特定の通信装置から送信されるファームウェア情報を受信する場合に、第１のファームウェア送信部は、第３通信装置からのファームウェア要求に応じて第２ファームウェアを第３通信装置に送信しなくてもよい。第１通信装置が有する第２ファームウェアよりも新しい上記の特定のファームウェアが存在する場合には、第３通信装置は、第２ファームウェアではなく、上記の特定のファームウェアにバージョンアップされるべきである。上記の構成によると、第３通信装置においてバージョンアップされるべきではない第２ファームウェアを第３通信装置に提供するという無駄な通信処理が行なわれるのを抑制することができる。
【００１９】
制御部は、第２の情報送信部と第２の要求受信部と第２のファームウェア送信部とをさらに備えていてもよい。第２の情報送信部は、第２通信装置からのファームウェア情報に含まれる第２ファームウェアのバージョン情報が、格納部に現在格納されている第１ファームウェアのバージョン情報よりも古い第４の場合に、第１ファームウェアのバージョン情報を含むファームウェア情報を上記の複数の通信装置に送信してもよい。第２の要求受信部は、第２通信装置から送信されるファームウェア要求を受信してもよい。第２のファームウェア送信部は、第２通信装置からのファームウェア要求に応じて、格納部に現在格納されている第１ファームウェアを第２通信装置に送信してもよい。この構成によると、自己が動作するのに必要とされないファームウェアを格納する他の制御装置を利用しなくても、第１通信装置から第２通信装置に第１ファームウェアを提供することができる。
【００２０】
なお、第２の情報送信部は、第２通信装置からのファームウェア情報に含まれる第２ファームウェアのバージョン情報が格納部に現在格納されている第１ファームウェアのバージョン情報に一致する場合に、第１ファームウェアのバージョン情報を含むファームウェア情報を上記の複数の通信装置に送信しなくてもよい。この構成によると、第１通信装置は、第２通信装置が送信済みのファームウェア情報と同じ内容の更新済ファームウェア情報（同じバージョン情報を含む更新済ファームウェア情報）を送信しない。同じ内容の複数のファームウェア情報がネットワークに送信されるのを抑制することができる。
【００２１】
本明細書では、ネットワークに接続される第２通信装置も開示する。この第２通信装置は、ファームウェアを格納するための格納部と、制御部と、を備える。制御部は、ネットワークに接続された複数の通信装置と通信する。上記の複数の通信装置のそれぞれは、自己のファームウェアに従って動作する。なお、制御部は、ネットワークに接続された複数の通信装置と通信する機能を備えていればよい。制御部は、情報送信部と要求受信部とファームウェア送信部とを備える。情報送信部は、格納部に現在格納されている第２ファームウェアのバージョン情報を含むファームウェア情報を上記の複数の通信装置に送信する。要求受信部は、上記の複数の通信装置のうちの第１通信装置であって、第２ファームウェアのバージョン情報よりも古い第１ファームウェアを有する第１通信装置から送信されるファームウェア要求を受信する。ファームウェア送信部は、ファームウェア要求に応じて、格納部に現在格納されている第２ファームウェアを第１通信装置に送信する。この構成によると、自己が動作するのに必要とされないファームウェアを格納する他の制御装置を利用しなくても、第２通信装置から第１通信装置に第２ファームウェアを提供することができる。
【００２２】
情報送信部は、第２ファームウェアの起動時に、ファームウェア情報を上記の複数の通信装置に送信してもよい。なお、上記の「第２ファームウェアの起動時」は、第２通信装置の電源がＯＮされることによって第２ファームウェアが起動する時であってもよいし、第２通信装置がリブートされることによって第２ファームウェアが起動する時であってもよい。
【００２３】
なお、上記の各通信装置（第１〜第４通信装置）を実現するための制御方法、及び、コンピュータプログラムも、新規で有用である。また、上記の各通信装置を備える通信システムも、新規で有用である。
【図面の簡単な説明】
【００２４】
【図１】通信システムの構成の一例を示す。
【図２】第１プリンタが第２プリンタからファームウェアを取得して自己のファームウェアを更新する場合のシーケンス図を示す。
【図３】ファームウェア更新後の第１プリンタが第３プリンタにファームウェアを提供する場合のシーケンス図を示す。
【図４】第１プリンタがファームウェア情報に応答しない場合のシーケンス図を示す。
【図５】第１プリンタが第３プリンタ及び第４プリンタにファームウェアを提供する場合のシーケンス図を示す。
【図６】第４プリンタが第１プリンタ及び第３プリンタにファームウェアを提供する場合のシーケンス図を示す。
【図７】ファームウェア要求を受信した第１プリンタがウェイトする場合のシーケンス図を示す。
【図８】電源ＯＮ又はリブートされた時にプリンタが実行する処理のフローチャートを示す。
【図９】待機状態処理のフローチャートを示す。
【発明を実施するための形態】
【００２５】
（システムの構成）
図面を参照して実施例を説明する。図１は、本実施例の通信システム２の概略図を示す。通信システム２は、複数のプリンタ１０，５０，６０，７０，８０と、ＬＡＮ１００と、を備える。各プリンタ１０等は、ＬＡＮ１００に接続されている。各プリンタ１０等は、ＬＡＮ１００を介して、相互に通信可能である。
【００２６】
（プリンタの構成）
続いて、プリンタ１０等の構成について説明する。まず、第１プリンタ１０の構成を説明する。第１プリンタ１０は、制御部１２と印刷部１４と記憶部１６とネットワークインターフェイス４０とを備える。制御部１２は、記憶部１６に記憶されているプログラム２２，２４に従って処理を実行する。印刷部１４は、ＬＡＮ１００に接続された図示省略の外部装置（ＰＣ等）から送信される印刷データに従って印刷する。ネットワークインターフェイス４０は、ＬＡＮ１００に接続されている。
【００２７】
記憶部１６は、ファームウェア格納部２０と情報記憶部３０とを備える。ファームウェア格納部２０は、ファームウェア２２を格納する。制御部１２は、ファームウェア２２に従って様々な処理を実行する。即ち、第１プリンタ１０は、ファームウェア２２に従って動作する。情報記憶部３０は、機種情報３２とファームウェア名情報（以下では「ＦＷ名情報」と呼ぶ）３４とバージョン情報３６とを格納する。機種情報３２は、第１プリンタ１０の機種を示す情報である。機種情報３２は、例えば、第１プリンタ１０の機種名（モデル名）である。ＦＷ名情報３４は、ファームウェア格納部２０に現在格納されているファームウェア２２の種類を示す情報である。バージョン情報３６は、ファームウェア格納部２０に現在格納されているファームウェア２２のバージョンを示す情報である。ファームウェア格納部２０に現在格納されているファームウェア２２が新しいバージョンのファームウェアに更新された場合、バージョン情報３６は、新しいバージョンを示す情報に更新される。なお、記憶部１６は、ファームウェア２２以外のプログラム２４をさらに記憶する。プログラム２４は、ファームウェア格納部２０に現在格納されているファームウェア２２を更新するためのプログラムを含む。プログラム２４は、ファームウェア格納部２０に格納されるプログラム（ファームウェア２２）と異なり、更新されるものではない。
【００２８】
他の第２プリンタ５０〜第５プリンタ８０のそれぞれは、第１プリンタ１０と同様の構成を備える。従って、第２プリンタ５０〜第５プリンタ８０のそれぞれも、ファームウェアを格納するためのファームウェア格納部と、機種情報等を格納するための情報記憶部と、を備える。
【００２９】
（各プリンタが実行する処理）
続いて、各プリンタ１０等が実行する処理について説明する。図２は、第１プリンタ１０と第２プリンタ５０と第５プリンタ８０とが実行する処理の一例のシーケンス図を示す。図２では、第１プリンタ１０の機種情報３２とプリンタ５０の機種情報５２とが共に「ＸＸＸ」であり、第５プリンタ８０の機種情報８２が「ＺＺＺ」である。即ち、第１プリンタ１０と第２プリンタ５０とは同じ機種であり、第５プリンタ８０は第１プリンタ１０等と異なる機種である。また、図２では、第１プリンタ１０のＦＷ名情報３４と第２プリンタ５０のＦＷ名情報５４が共に「ＹＹＹ」である。即ち、第１プリンタ１０と第２プリンタ５０とは同じ種類のファームウェアを有する。また、第１プリンタ１０のバージョン情報３６が「１．００」であり、第２プリンタ５０のバージョン情報５６が「１．０１」である。本実施例では、バージョン情報の数字が大きくなる程、ファームウェアが新しいことを意味する。なお、以下の説明では、バージョンＶ（Ｖは１．００等の数字）のファームウェアのことを「ＦＷＶ（例えばＦＷ１．００）」と表現する。
【００３０】
図２では、第５プリンタ８０が電源ＯＮ状態である場合に、第１プリンタ１０と第２プリンタ５０とがほぼ同時に電源がＯＮされる（Ｓ２，Ｓ４）。第１プリンタ１０は、所定範囲の期間（例えば０〜３０秒）の中からランダムに期間ｔ１を決定し、期間ｔ１が経過するまで待機する（Ｓ８）。同様に、第２プリンタ５０も、ランダムに期間ｔ２を決定し、期間ｔ２が経過するまで待機する（Ｓ１０）。図２では、期間ｔ２が期間ｔ１より短く、第２プリンタ５０は、第１プリンタ１０よりも早く待機状態を終了する。第２プリンタ５０は、待機状態を終了すると、自己の機種情報５２（ＸＸＸ）とＦＷ名情報５４（ＹＹＹ）とバージョン情報５６（１．０１）とを含むファームウェア情報（以下ではＦＷ情報と呼ぶ）１１０をブロードキャストする。これにより、ＬＡＮ１００（図１参照）に接続されている各プリンタ１０，８０等にＦＷ情報１１０が送信される。
【００３１】
各プリンタ１０，８０等は、ＦＷ情報１１０を受信する。この場合、第５プリンタ８０は、ＦＷ情報１１０に含まれる機種情報５２と自己の機種情報８２とが一致するのか否かを判断する。２つの機種情報５２，８２が異なるために、第５プリンタ８０は、ＦＷ情報１１０に対するレスポンスを送信しない。第１プリンタ１０は、ＦＷ情報１１０に含まれる機種情報５２と自己の機種情報３２とが一致するのか否かを判断する。２つの機種情報５２，３２が一致する場合、第１プリンタ１０は、ＦＷ情報１１０に含まれるＦＷ名情報５４と自己のＦＷ名情報３４とが一致するのか否かをさらに判断する。２つのＦＷ名情報５４，３４が一致する場合、第１プリンタ１０は、ＦＷ情報１１０に含まれるバージョン情報５６が自己のバージョン情報３６よりも新しいのか否かをさらに判断する。図２の例では、バージョン情報５６（１．０１）がバージョン情報３６（１．００）よりも新しい。この場合、第１プリンタ１０は、ＦＷ情報１１０に対するレスポンスとして、ファームウェア要求（以下では「ＦＷ要求」と呼ぶ）１２０を第２プリンタ５０に送信する。
【００３２】
第２プリンタ５０は、ＦＷ要求１２０に応じて、自己のファームウェア格納部に格納されているＦＷ１．０１を第１プリンタ１０に送信する。第１プリンタ１０は、ＦＷ１．０１を受信する。第１プリンタ１０は、自己のファームウェア格納部に格納されているＦＷ１．００をＦＷ１．０１に更新する（Ｓ１２）。次いで、第１プリンタ１０は、リブート（再起動）を実行する（Ｓ１４）。
【００３３】
なお、図２において、仮に、第１プリンタ１０の機種情報３２と第２プリンタ５０の機種情報５２とが一致しない場合、第１プリンタ１０は、ＦＷ情報１１０に対するレスポンスを送信しない。また、仮に、第２プリンタ５０のバージョン情報５６が第１プリンタ１０のバージョン情報３６に一致する場合、第１プリンタ１０は、ＦＷ情報１１０に対するレスポンスを送信しない。また、仮に、第２プリンタ５０のバージョン情報５６が第１プリンタ１０のバージョン情報３６よりも古い場合、第１プリンタ１０は、ＦＷ要求１２０を送信しないが、自己の各情報３２，３４，３６を含むＦＷ情報をブロードキャストする。
【００３４】
以下では、各プリンタ１０が電源ＯＮ又はリブートからランダムな期間ｔ（例えばｔ１）が経過するまで待機することを「期間ｔのランダムウェイト」と呼ぶ。また、各プリンタ１０等がＦＷ情報（例えば１１０）に含まれる機種情報と自己の機種情報とが一致するのか否かを判断することを「機種判断処理」と呼ぶ。各プリンタ１０等がＦＷ情報に含まれるＦＷ名情報と自己のＦＷ名情報とが一致するのか否かを判断することを「ＦＷ名判断処理」と呼ぶ。さらに、各プリンタ１０等がＦＷ情報に含まれるバージョン情報と自己のバージョン情報とを比較することを「バージョン比較処理」と呼ぶ。
【００３５】
図３は、第１プリンタ１０と第２プリンタ５０と第３プリンタ６０とが実行する処理の一例のシーケンス図を示す。図３は、第１プリンタ１０が図２のＳ１４でリブートを実行した以降の処理を示す。従って、図２の場合と異なり、第１プリンタ１０のバージョン情報３６は「１．０１」に更新されている（ＦＷ１．０１に更新されている）。第３プリンタ６０は、第１プリンタ１０等と同じ機種情報６２（ＸＸＸ）とＦＭ名情報６４（ＹＹＹ）とを有する。第３プリンタ６０のバージョン情報６６は「１．００」である。なお、本実施例では、第２プリンタ５０がＦＷ情報１１０（図２参照）を送信する時点において、第３プリンタ６０は、ＦＷ情報１１０を受信することができない状態（例えば、通信障害が発生している状態、電源ＯＦＦの状態等）であることを想定している。従って、第３プリンタ６０は、ＦＷ情報１１０に対するレスポンスとしてＦＷ要求を送信することができず、その結果、第３プリンタ６０のＦＷ１．００がＦＷ１．０１に更新されていない。
【００３６】
第１プリンタ１０は、リブートを実行すると（Ｓ１４）、期間ｔ３のランダムウェイトを実行する（Ｓ１６）。次いで、第１プリンタ１０は、第１プリンタ１０の機種情報３２とＦＷ名情報３４と更新後のバージョン情報３６（１．０１）とを含むＦＷ情報１３０をブロードキャストする。第２プリンタ５０は、ＦＷ情報１３０を受信すると、機種判断処理とＦＷ名判断処理とを実行する。これらの判断処理で肯定的に判断された場合、第２プリンタ５０は、バージョン比較処理をさらに実行する。図３の例では、第１プリンタ１０のバージョン情報３６（１．０１）が第２プリンタ５０のバージョン情報５６（１．０１）に一致する。この場合、第２プリンタ５０は、ＦＷ情報１３０に対するレスポンスを送信しない。
【００３７】
第３プリンタ６０は、ＦＷ情報１３０を受信すると、機種判断処理とＦＷ名判断処理とバージョン比較処理とを実行する。図３では、第１プリンタ１０のバージョン情報３６（１．０１）が第３プリンタ６０のバージョン情報６６（１．００）よりも新しい。この場合、第３プリンタ６０は、ＦＷ情報１３０に対するレスポンスとして、ＦＷ要求１４０を第１プリンタ１０に送信する。第１プリンタ１０は、ＦＷ要求１４０に応じて、自己のファームウェア格納部２０（図１参照）に格納されているＦＷ１．０１を第３プリンタ６０に送信する。第３プリンタ６０は、ＦＷ１．０１を受信する。第３プリンタ６０は、自己のファームウェア格納部に格納されているＦＷ１．００をＦＷ１．０１に更新する（Ｓ１８）。次いで、第３プリンタ６０は、リブートを実行する（Ｓ２０）。
【００３８】
なお、Ｓ２０より後の処理については図示していないが、第３プリンタ６０は、リブートを実行すると、ランダムウェイトを実行し、次いで、更新後のバージョン情報６６（１．０１）等を含むＦＷ情報をブロードキャストする。第１プリンタ１０と第２プリンタ５０とは、第３プリンタ６０のバージョン情報６６（１．０１）と同じバージョン情報３６，５６を有するために、第３プリンタ６０からのＦＷ情報に対するレスポンスを送信しない。
【００３９】
図４は、第１プリンタ１０と第４プリンタ７０と第３プリンタ６０とが実行する処理の一例のシーケンス図を示す。図４は、第１プリンタ１０が図２のＳ１４でリブートを実行した以降の処理を示す。第３プリンタ６０は、図３の場合と同じ状態である。第４プリンタ７０は、第１プリンタ１０等と同じ機種情報７２（ＸＸＸ）とＦＭ名情報７４（ＹＹＹ）とバージョン情報７６（１．０１）とを有する。なお、第４プリンタ７０は、第１プリンタ１０の場合と同様に、第２プリンタ５０からのＦＷ情報１１０（図２参照）に対するレスポンスとしてＦＷ要求を送信している。その結果、第４プリンタ７０は、ＦＷ１．０１に更新され、第１プリンタ１０のリブート（Ｓ１４）とほぼ同時にリブートを実行する（Ｓ２２）。
【００４０】
各プリンタ１０，７０は、ランダムウェイトを実行する（Ｓ２４，２６）。図４では、第４プリンタ７０の期間ｔ５が第１プリンタ１０の期間ｔ４よりも短いために、第４プリンタ７０は、第１プリンタ１０よりも早く、自己の各情報７２，７４，７６を含むＦＷ情報１５０をブロードキャストする。
【００４１】
第１プリンタ１０は、ＦＷ情報１５０を受信すると、機種判断処理とＦＷ名判断処理とバージョン比較処理とを実行する。図４では、第４プリンタ７０のバージョン情報７６（１．０１）が第１プリンタ１０のバージョン情報３６（１．０１）に一致する。この場合、第１プリンタ１０は、ＦＷ情報１５０に対するレスポンスを送信しない。上述したように、図３では、第１プリンタ１０は、リブート（Ｓ１４）の後にＦＷ情報１３０を送信している。これに対し、図４では、第１プリンタ１０は、ＦＷ情報をブロードキャストしない。なお、仮に、第４プリンタ７０からのＦＷ情報１５０に含まれる機種情報７２とＦＷ名情報７４の少なくとも一方が、第１プリンタ１０の機種情報３２とＦＷ名情報３４に一致しない場合には、第１プリンタ１０は、自己の各情報３２，３４，３６を含むＦＷ情報をブロードキャストする。
【００４２】
第３プリンタ６０は、ＦＷ情報１５０に対するレスポンスとして、ＦＷ要求１６０を第４プリンタ７０に送信する。第４プリンタ７０は、ＦＷ要求１６０に応じて、自己のＦＷ１．０１を第３プリンタ６０に送信する。第３プリンタ６０は、自己のＦＷ１．００をＦＷ１．０１に更新し（Ｓ２８）、リブートを実行する（Ｓ３０）。
【００４３】
図５は、第１プリンタ１０と第４プリンタ７０と第３プリンタ６０とが実行する処理の一例のシーケンス図を示す。図５は、第１プリンタ１０が図２のＳ１４でリブートを実行した後に、電源ＯＦＦ状態になり、Ｓ３２で再び電源ＯＮ状態になる例を示す。また、図５では、図３及び図４の場合と異なり、第３プリンタ６０及び第４プリンタ７０は、第１プリンタ１０が図２のＳ２の電源ＯＮからＳ１４のリブートを経て電源ＯＦＦ状態になるまでの間は、電源ＯＦＦ状態に維持されている。第３プリンタ６０及び第４プリンタ７０は、第１プリンタ１０が電源ＯＮ状態になるタイミング（Ｓ３２のタイミング）とほぼ同時に電源ＯＮ状態になる（Ｓ３４，Ｓ３６）。第３プリンタ６０及び第４プリンタ７０は、第１プリンタ１０が有するＦＷ１．０１よりも古いＦＷ１．００を有する。
【００４４】
各プリンタ１０，６０，７０は、ランダムウェイトを実行する（Ｓ３８，Ｓ４０，Ｓ４２）。図５では、第４プリンタ７０の期間ｔ７が第１プリンタ１０及び第３プリンタ６０の期間ｔ６，ｔ８よりも短いために、第４プリンタ７０は、第１プリンタ１０及び第３プリンタ６０よりも早く、自己の各情報７２，７４，７６を含むＦＷ情報１７０をブロードキャストする。
【００４５】
第１プリンタ１０は、ＦＷ情報１７０を受信すると、機種判断処理とＦＷ名判断処理とバージョン比較処理とを実行する。図５では、第４プリンタ７０のバージョン情報７６（１．００）が第１プリンタ１０のバージョン情報３６（１．０１）よりも古い。この場合、第１プリンタ１０は、自己の各情報３２，３４，３６を含むＦＷ情報１８０をブロードキャストする。
【００４６】
第３プリンタ６０は、第４プリンタ７０からのＦＷ情報１７０を受信すると、機種判断処理とＦＷ名判断処理とバージョン比較処理とを実行する。図５では、第４プリンタ７０のバージョン情報７６（１．００）が第３プリンタ６０のバージョン情報６６（１．００）に一致する。この場合、第３プリンタ６０は、ＦＷ情報１７０に対するレスポンスを送信しない。
【００４７】
第４プリンタ７０は、第１プリンタ１０からのＦＷ情報１８０を受信すると、機種判断処理とＦＷ名判断処理とバージョン比較処理とを実行する。図５の例では、第１プリンタ１０のバージョン情報３６（１．０１）が第４プリンタ７０のバージョン情報７６（１．００）よりも新しい。この場合、第４プリンタ７０は、ＦＷ要求１９０を第１プリンタ１０に送信する。同様に、第３プリンタ６０は、第１プリンタ１０からのＦＷ情報１８０を受信すると、ＦＷ要求２００を第１プリンタ１０に送信する。第１プリンタ１０は、ＦＷ要求１９０，２００に応じて、自己のＦＷ１．０１を第３プリンタ６０及び第４プリンタ７０に送信する。第３プリンタ６０及び第４プリンタ７０は、自己のファームウェアをＦＷ１．０１に更新し（Ｓ４４，Ｓ４８）、リブートを実行する（Ｓ４６，Ｓ５０）。
【００４８】
図６は、第１プリンタ１０と第４プリンタ７０と第３プリンタ６０とが実行する処理の一例のシーケンス図を示す。第１プリンタ１０は、図５の場合と同じ状態である。また、第３プリンタ６０及び第４プリンタ７０は、第４プリンタ７０のバージョン情報７６が「１．０２」である点を除くと、図５の場合と同じ状態である。各プリンタ１０，６０，７０は、ほぼ同時に電源ＯＮ状態になる（Ｓ５２，Ｓ５４，Ｓ５６）。
【００４９】
各プリンタ１０，６０，７０は、ランダムウェイトを実行する（Ｓ５８，Ｓ６０，Ｓ６２）。図６では、第４プリンタ７０の期間ｔ１０が第１プリンタ１０及び第３プリンタ６０の期間ｔ９及びｔ１１よりも短いために、第４プリンタ７０は、第１プリンタ１０及び第３プリンタ６０よりも早く、自己の各情報７２，７４，７６を含むＦＷ情報２１０をブロードキャストする。
【００５０】
第１プリンタ１０は、ＦＷ情報２１０を受信すると、機種判断処理とＦＷ名判断処理とバージョン比較処理とを実行する。図６では、第４プリンタ７０のバージョン情報７６（１．０２）が第１プリンタ１０のバージョン情報３６（１．０１）よりも新しい。この場合、第１プリンタ１０は、ＦＷ要求２２０を第４プリンタ７０に送信する。同様に、第３プリンタ６０は、ＦＷ情報２１０を受信すると、ＦＷ要求２３０を第４プリンタ７０に送信する。第４プリンタ７０は、ＦＷ要求２２０，２３０に応じて、自己のＦＷ１．０２を第１プリンタ１０及び第３プリンタ６０に送信する。第１プリンタ１０及び第３プリンタ６０は、自己のファームウェアをＦＷ１．０２に更新し（Ｓ６４，Ｓ６８）、リブートを実行する（Ｓ６６，Ｓ７０）。
【００５１】
図７は、第１プリンタ１０と第４プリンタ７０と第３プリンタ６０とが実行する処理の一例のシーケンス図を示す。各プリンタ１０，６０，７０は、図６の場合と同じ状態である。各プリンタ１０，６０，７０は、ほぼ同時に電源ＯＮ状態になる（Ｓ７２，Ｓ７４，Ｓ７６）。
【００５２】
各プリンタ１０，６０，７０は、ランダムウェイトを実行する（Ｓ７８，Ｓ８０，Ｓ８２）。図７では、第１プリンタ１０の期間ｔ１２が第３プリンタ６０及び第４プリンタ７０の期間ｔ１３及びｔ１４よりも短いために、第１プリンタ１０は、第３プリンタ６０及び第４プリンタ７０よりも早く、自己の各情報３２，３４，３６を含むＦＷ情報２４０をブロードキャストする。
【００５３】
第３プリンタ６０は、ＦＷ情報２４０を受信すると、機種判断処理とＦＷ名判断処理とバージョン比較処理とを実行する。図７では、第１プリンタ１０のバージョン情報３６（１．０１）が第３プリンタ６０のバージョン情報６６（１．００）よりも新しい。この場合、第３プリンタ６０は、ＦＷ要求２５０を第１プリンタ１０に送信する。
【００５４】
第１プリンタ１０は、第３プリンタ６０からのＦＷ要求２５０を受信しても、自己のＦＷ１．０１を第３プリンタ６０にすぐに送信しない。第１プリンタ１０は、ＦＷ情報２４０を送信してから所定時間待機する（Ｓ８４）。第１プリンタ１０は、Ｓ８４の待機状態が終了するまでの間に、自己のバージョン情報３６（１．０１）よりも新しいバージョン情報を含む特定のＦＷ情報を受信することを監視する。上記の特定のＦＷ情報を受信しなかった場合、第１プリンタ１０は、自己のＦＷ１．０１を第３プリンタ６０に送信する（この例は図示省略している）。一方において、上記の特定のＦＷ情報を受信した場合、第１プリンタ１０は、自己のＦＷ１．０１を第３プリンタ６０に送信しない。第４プリンタ７０は、第１プリンタ１０からのＦＷ情報２４０を受信すると、機種判断処理とＦＷ名判断処理とバージョン比較処理とを実行する。第１プリンタ１０のバージョン情報３６（１．０１）が第４プリンタ７０のバージョン情報７６（１．０２）よりも古い。この場合、第４プリンタ７０は、自己の各情報７２，７４，７６を含むＦＷ情報２６０をブロードキャストする。この場合、第１プリンタ１０は、Ｓ８４の待機状態の間に上記の特定のＦＷ情報を受信することになり、自己のＦＷ１．０１を第３プリンタ６０に送信しない。
【００５５】
第１プリンタ１０は、ＦＷ情報２６０を受信すると、ＦＷ要求２７０を第４プリンタ７０に送信する。同様に、第３プリンタ６０は、ＦＷ情報２６０を受信すると、ＦＷ要求２８０を第４プリンタ７０に送信する。第４プリンタ７０は、自己のＦＷ１．０２を第１プリンタ１０及び第３プリンタ６０に送信する。第１プリンタ１０及び第３プリンタ６０は、自己のファームウェアをＦＷ１．０２に更新し（Ｓ８６，Ｓ９０）、リブートを実行する（Ｓ８８，Ｓ９２）。
【００５６】
（プリンタが実行する処理の詳細）
続いて、第１プリンタ１０の制御部１２が実行する処理の詳細を説明する。他のプリンタ５０等の制御部も、同様の処理を実行する。図８及び図９は、制御部１２が実行する処理のフローチャートを示す。図８及び図９の処理によって、図２〜図７で示される各処理が実現される。図８の処理は、電源ＯＮ又はリブートをトリガとして開始される。
【００５７】
制御部１２は、ランダムウェイトを実行すべき期間Ｔ１を決定し、タイマをスタートする（Ｓ１００）。制御部１２は、タイマ値がＳ１００で決定されたＴ１に到達するまで待機する（Ｓ１０２）。Ｓ１０２の処理は、図２〜図７において、ランダムウェイトを実行する処理（図２のＳ８、Ｓ１０等）に対応する。タイマ値がＴ１に到達すると（Ｓ１０２でＹＥＳ）、制御部１２は、タイマ値がＴ１に到達する前に（即ちＳ１０２の待機状態の間に）、第１の特定のＦＷ情報を受信したのか否かを判断する（Ｓ１０４）。第１の特定のＦＷ情報は、以下の（１）〜（３）の全ての条件を満たすＦＷ情報である。（１）自己の機種情報３２に一致する機種情報を含む。（２）自己のＦＷ名情報３４に一致するＦＷ名情報を含む。（３）自己のバージョン情報３６に一致するバージョン情報、又は、自己のバージョン情報３６よりも新しいバージョン情報、を含む。即ち、制御部１２は、上記の機種判断処理とＦＷ名判断処理とバージョン比較処理とを実行する。
【００５８】
Ｓ１０４でＮＯの場合、制御部１２は、自己の各情報３２，３４，３６（図１参照）を含むＦＷ情報をブロードキャストする（Ｓ１０６）。Ｓ１０６の処理は、図２〜図７において、ＦＷ情報（図２のＦＷ情報１１０等）を送信する処理に対応する。次いで、制御部１２は、タイマをスタートし、タイマ値が予め決められているＴ２に到達するまで待機する（Ｓ１０８）。Ｓ１０８の処理は、図７のＳ８４の処理に対応する。
【００５９】
一方において、Ｓ１０４でＹＥＳの場合、制御部１２は、ＦＷ情報をブロードキャストせずに（Ｓ１０６をスキップし）、Ｓ１１０に進む。Ｓ１０６をスキップすること（ＦＷ情報をブロードキャストしないこと）は、例えば、図２及び図４において、第１プリンタ１０がＦＷ情報１１０，１５０を受信した後に、ＦＷ情報をブロードキャストしないことに対応する。
【００６０】
タイマ値がＴ２に到達すると（Ｓ１０８でＹＥＳ）、制御部１２は、電源ＯＮ又はリブートが実行された以降（例えばＳ１０２の待機状態又はＳ１０８の待機状態の間）に、第２の特定のＦＷ情報を受信したのか否かを判断する（Ｓ１１０）。第２の特定のＦＷ情報は、以下の（１）〜（３）の全ての条件を満たすＦＷ情報である。（１）自己の機種情報３２に一致する機種情報を含む。（２）自己のＦＷ名情報３４に一致するＦＷ名情報を含む。（３）自己のバージョン情報３６よりも新しいバージョン情報、を含む。例えば、Ｓ１０２の待機状態の間に上記の第２の特定のＦＷ情報（これは上記の第１の特定のＦＷ情報にも相当する）を受信すると、Ｓ１０４でＹＥＳと判断されるとともに、Ｓ１１０でＹＥＳと判断される。また、例えば、Ｓ１０８の待機状態の間に上記の第２の特定のＦＷ情報を受信すると、Ｓ１１０でＹＥＳと判断される。
【００６１】
Ｓ１１０でＹＥＳの場合、制御部１２は、上記の第２の特定のＦＷ情報の送信元にＦＷ要求を送信する。Ｓ１１２の処理は、例えば、図２において、第１プリンタ１０がＦＷ要求１２０を送信する処理に対応する。なお、図３及び図４において、第３プリンタ６０がＦＷ要求１４０，１６０を送信する処理は、Ｓ１１２の処理ではなく、後述する図９のＳ１４６の処理に対応する。また、図７において、第３プリンタ６０が１回目のＦＷ要求２５０を送信する処理は、Ｓ１１２の処理に対応するが、２回目のＦＷ要求２８０を送信する処理は、Ｓ１１２の処理ではなく、図９のＳ１４６の処理に対応する。Ｓ１１２を終えると、制御部１２は、Ｓ１１８に進む。
【００６２】
Ｓ１１０でＮＯの場合、制御部１２は、Ｓ１０８の待機状態の間にＦＷ要求を受信したのか否かを判断する（Ｓ１１４）。ここでＹＥＳの場合、制御部１２は、自己のファームウェア格納部２０（図１参照）に現在格納されているファームウェアを、ＦＷ要求の送信元に送信する（Ｓ１１６）。Ｓ１１６の処理は、例えば、図２において、第１プリンタ１０がＦＷ１．０１を送信する処理に対応する。Ｓ１１６を終えると、Ｓ１１８に進む。なお、Ｓ１１４でＮＯの場合、Ｓ１１６をスキップしてＳ１１８に進む。
【００６３】
続いて、Ｓ１１８で実行される待機状態処理について説明する。図９は、待機状態処理のフローチャートを示す。制御部１２は、ファームウェアを受信することを監視する（Ｓ１３０）。例えば、図８のＳ１１２でＦＷ要求を送信した場合、又は、後述するＳ１４６でＦＷ要求を送信した場合、ＦＷ要求の送信先は、ＦＷ要求に応じてファームウェアを送信する。この場合、制御部１２は、ファームウェアを受信し、Ｓ１３０でＹＥＳと判断する。Ｓ１３０でＹＥＳの場合、制御部１２は、自己のファームウェア格納部２０に格納されているファームウェアを、受信したファームウェアに更新する（Ｓ１３２）。Ｓ１３２の処理は、例えば、図２のＳ１２の処理に対応する。上述したように、制御部１２は、ファームウェアを更新すると、リブートを実行する（例えば図２のＳ１４参照）。この結果、図８のＳ１００以降の処理が再び実行される。
【００６４】
制御部１２は、さらに、ＦＷ情報を受信することを監視する（Ｓ１３４）。例えば、第１プリンタ１０が図９の待機状態処理を実行している間に、他のプリンタが電源ＯＮ又はリブートされた場合、上記の他のプリンタは、ＦＷ情報をブロードキャストする（図８のＳ１０６参照）。この場合、制御部１２は、ＦＷ情報を受信し、Ｓ１３４でＹＥＳと判断する。Ｓ１３４でＹＥＳの場合、制御部１２は、自己の機種情報３２と、Ｓ１３４で受信したＦＷ情報に含まれる機種情報と、が一致するのか否かを判断する（Ｓ１３６）。Ｓ１３６でＮＯの場合、制御部１２は、Ｓ１３８以降の処理を実行せず、Ｓ１３０に戻る。Ｓ１３６でＮＯの場合にＳ１３８以降の処理を実行しないことは、例えば、図２において、第５プリンタ８０がＦＷ情報１１０に対するレスポンスを送信しないことに対応する。
【００６５】
Ｓ１３６でＹＥＳの場合、制御部１２は、自己のＦＷ名情報３４と、Ｓ１３４で受信したＦＷ情報に含まれるＦＷ名情報と、が一致するのか否かを判断する（Ｓ１３８）。Ｓ１３８でＮＯの場合、制御部１２は、Ｓ１４０以降の処理を実行せず、Ｓ１３０に戻る。Ｓ１３８でＹＥＳの場合、制御部１２は、自己のバージョン情報３６が、Ｓ１３４で受信したＦＷ情報に含まれるバージョン情報よりも新しいのか否かを判断する（Ｓ１４０）。Ｓ１４０でＹＥＳの場合、制御部１２は、自己の各情報３２，３４，３６を含むＦＷ情報をブロードキャストする（Ｓ１４２）。一方において、Ｓ１４０でＮＯの場合、制御部１２は、自己のバージョン情報３６が、Ｓ１３４で受信したＦＷ情報に含まれるバージョン情報よりも古いのか否かを判断する（Ｓ１４４）。Ｓ１４４でＹＥＳの場合、制御部１２は、Ｓ１３４で受信したＦＷ情報の送信元にＦＷ要求を送信する（Ｓ１４６）。Ｓ１４６の処理は、例えば、図７において、第３プリンタ６０が２回目のＦＷ要求２８０を送信する処理に対応する。
【００６６】
制御部１２は、さらに、ＦＷ要求を受信することを監視する（Ｓ１４８）。ここでＹＥＳの場合、制御部１２は、Ｓ１４８で受信したＦＷ要求に応じて、自己のファームウェア格納部２０に格納されているファームウェアを送信する（Ｓ１５０）。
【００６７】
本実施例の通信システム２について詳しく説明した。図２において、第１プリンタ１０は、自己のバージョン情報３６（１．００）よりも新しい第２プリンタ５０のバージョン情報５６（１．０１）を含むＦＷ情報１１０を受信すると、ＦＷ要求１２０を第２プリンタ５０に送信する。第１プリンタ１０は、ＦＷ要求１２０に応じて第２プリンタ５０から送信されるＦＷ１．０１を受信し、自己のＦＷ１．００をＦＷ１．０１に更新する。本実施例によると、自己が動作するのに必要とされないファームウェアを格納する他の制御装置（各プリンタ１０等以外の制御装置）を利用しなくても、各プリンタ１０等が使用するファームウェアのバージョンアップを行なうことができる。本実施例によると、例えば、通信システム２の管理者が１台のプリンタ（例えば第２プリンタ５０）を最新のファームウェアにアップデートすれば、その１台のプリンタから他の複数台のプリンタに最新のファームウェアが送信されるために、複数のプリンタのファームウェアを容易にアップデートすることができる。
【００６８】
図２において、第２プリンタ５０からのＦＷ情報１１０に含まれる第２プリンタ５０の機種情報５２及びファームウェア情報５４が、第１プリンタ１０の機種情報３２及びファームウェア情報３４に一致する場合に、第１プリンタ１０は、ＦＷ要求１２０を第２プリンタ５０に送信する。仮に、第２プリンタ５０の機種情報５２及びファームウェア情報５４の少なくとも一方が、第１プリンタ１０の機種情報３２及びファームウェア情報３４に一致しない場合（図８のＳ１１０でＮＯの場合）に、第１プリンタ１０は、ＦＷ要求１２０を第２プリンタ５０に送信しない。この構成によると、使用不可能なファームウェアを第１プリンタ１０が取得するという無駄な通信処理が行なわれるのを抑制することができる。
【００６９】
また、図３において、第１プリンタ１０は、図２のＳ１２でファームウェアの更新を行なった後に、更新後のバージョン情報３６（１．０１）を含むＦＷ情報１３０をブロードキャストする。第１プリンタ１０は、更新後のバージョン情報３６（１．０１）よりも古いバージョン情報６６（１．００）を有する第３プリンタ６０からＦＷ要求１４０を受信し、ＦＷ要求１４０に応じてＦＷ１．０１を第３プリンタ６０に送信する。このため、自己が動作するのに必要とされないファームウェアを格納する他の制御装置を利用しなくても、第１プリンタ１０から第３プリンタ６０にＦＷ１．０１を提供することができる。
【００７０】
本実施例では、各プリンタ１０等は、電源ＯＮ又はリブートが実行されたことをトリガとして、ＦＷ情報（例えばＦＷ情報１１０等）をブロードキャストする。この構成によると、各プリンタ１０がＦＷ情報を定期的にブロードキャストする構成と比べて、ＦＷ情報の送信頻度を低減し得る。これにより、例えば、ネットワーク（ＬＡＮ１００）の通信負荷を低減することができる。
【００７１】
また、図４において、第１プリンタ１０及び第４プリンタ７０は、ほぼ同時にリブートが実行される。本実施例では、ランダムウェイト（図４のＳ１４，Ｓ２２）を利用するために、第１プリンタ１０及び第４プリンタ７０がＦＷ情報をブロードキャストするタイミングが異なる。図４では、第１プリンタ１０と同じバージョンのファームウェア１．０１を有する第４プリンタ７０が先にＦＷ情報１５０をブロードキャストし、この結果、第１プリンタ１０は、ＦＷ情報をブロードキャストしない。同じ内容の複数のＦＷ情報がブロードキャストされるのを抑制することができる。
【００７２】
また、図５では、第１プリンタ１０よりも古いバージョンのファームウェア１．００を有する第４プリンタ７０が先にＦＷ情報１７０をブロードキャストする。この場合、第１プリンタ１０は、ＦＷ情報１８０をブロードキャストする。第４プリンタ７０は、ＦＷ要求１９０を第１プリンタ１０に送信する。第１プリンタ１０は、ＦＷ要求１９０に応じてＦＷ１．０１を第４プリンタ７０に送信する。自己が動作するのに必要とされないファームウェアを格納する他の制御装置を利用しなくても、第１プリンタ１０から第４プリンタ７０にＦＷ１．０１を提供することができる。
【００７３】
また、図６では、第１プリンタ１０よりも新しいバージョンのファームウェア１．０２を有する第４プリンタ７０が、先にＦＷ情報２１０をブロードキャストする。この場合、第１プリンタ１０は、ＦＷ要求２２０を第４プリンタ７０に送信する。第４プリンタ７０は、ＦＷ要求２２０に応じてＦＷ１．０２を第１プリンタ１０に送信する。第１プリンタ１０は、自己のＦＷ１．０１をＦＷ１．０２にバージョンアップすることができる。自己が動作するのに必要とされないファームウェアを格納する他の制御装置を利用しなくても、第１プリンタ１０のファームウェアをバージョンアップすることができる。
【００７４】
また、図７において、第１プリンタ１０は、ＦＷ情報２４０をブロードキャストした後にＦＷ要求２５０を受信しても、ＦＷ１．０１をすぐに第３プリンタ６０に送信せず、ウェイトを実行する（Ｓ８４）。第１プリンタ１０は、Ｓ８４のウェイトの間に、第１プリンタ１０よりも新しいバージョンのファームウェア１．０２を有する第４プリンタ７０からＦＷ情報２６０を受信すると、ＦＷ１．０１を第３プリンタ６０に送信しない。これにより、最新ではないＦＷ１．０１が第１プリンタ１０から第３プリンタ６０に送信されるという無駄な通信処理が行なわれるのを抑制することができる。
【００７５】
以上の説明から明らかなように、本実施例の第１プリンタ１０、第２プリンタ５０、第３プリンタ６０、第４プリンタ７０が、それぞれ、本発明の第１通信装置、第２通信装置、第３通信装置、第４通信装置の一例である。図２の例において、第１プリンタ１０がＦＷ情報１１０を受信する処理、ＦＷ要求１２０を送信する処理、ＦＷ１．０１を受信する処理、Ｓ１２のアップデートを実行する処理が、それぞれ、本発明の情報受信部、要求送信部、ファームウェア受信部、更新部が実行する処理の一例である。また、図３のＦＷ情報１３０及び図５のＦＷ情報１８０が、本発明の更新済ファームウェア情報の一例である。従って、図３及び図５において、第１プリンタ１０がＦＷ情報１３０及びＦＷ情報１８０をブロードキャストする処理が、本発明の第１の情報送信部が実行する処理の一例である。また、図３において、第１プリンタ１０がＦＷ要求１４０を受信する処理、ＦＷ１．０１を送信する処理が、それぞれ、第１の要求受信部、第１のファームウェア送信部が実行処理の一例である。
【００７６】
また、図４において、第１プリンタ１０が第４プリンタ７０からＦＷ情報１５０を受信する場合が、本発明の第２の場合の一例であり、図５において、第１プリンタ１０が第４プリンタ７０からＦＷ情報１７０を受信する場合が、本発明の第３の場合の一例である。また、図５において、仮に、第４プリンタ７０の代わりに、第４プリンタ７０が有する各情報７２，７４，７６と同じ情報を有する第２プリンタ５０を用いる場合に、第１プリンタ１０が第２プリンタ５０からのＦＷ情報１７０を受信する場合が、本発明の第４の場合の一例である。従って、第１プリンタ１０がＦＷ情報１８０を送信する処理、ＦＷ要求１９０を受信する処理、ＦＷ１．０１を送信する処理が、それぞれ、本発明の第２の情報送信部、第２の要求受信部、第２のファームウェア送信部の一例である。また、図２において、第２プリンタ５０がＦＷ情報１１０を送信する処理、ＦＷ要求１２０を受信する処理、ＦＷ１．０１を送信する処理が、それぞれ、本発明の情報送信部、要求受信部、ファームウェア送信部の一例である。
【００７７】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【００７８】
（１）制御部１２は、図８のＳ１０６でＦＷ情報をブロードキャストした後に、Ｓ１０８の待機処理を実行する。これと同様に、制御部１２は、図９のＳ１４２の後に、待機処理を実行してもよい。この待機処理の間に、特定のＦＷ要求を受信し、かつ、自己のバージョン情報３６よりも新しいバージョン情報を含む特定のＦＷ情報を受信すると、制御部１２は、上記の特定のＦＷ要求に応じてファームウェアを送信しなくてもよい。この場合、制御部１２は、上記の特定のＦＷ情報の送信元にＦＷ要求を送信してもよい。
【００７９】
（２）上記の図９の待機状態処理では、制御部１２は、Ｓ１４０でＹＥＳの場合にのみＦＷ情報をブロードキャストする。しかしながら、図９の待機状態処理において、ＦＷ情報を定期的にブロードキャストするように構成してもよい。なお、上記の実施例ではＦＷ情報をブロードキャストしているが、他の手法（例えばマルチキャスト、ユニキャスト等）を用いてＬＡＮ１００内の各プリンタ１０等にＦＷ情報を送信してもよい。
【００８０】
（３）上記の実施例では、複数のプリンタ１０等を含む通信システム２を開示している。しかしながら、本実施例は、他の種類の複数の通信装置（例えば、ＰＣ、サーバ、ＰＤＡ、携帯電話、ファクシミリ、コピー機、スキャナ、多機能機等）を含む通信システムにも適用することができる。
【００８１】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【００８２】
２：通信システム、１０：第１プリンタ、１２：制御部、２０：ファームウェア格納部、３６：バージョン情報、５０：第２プリンタ、５６：バージョン情報、６０：第３プリンタ、７０：第４プリンタ、８０：第５プリンタ
【図１】
0005444865.tif 000002
【図２】
0005444865.tif 000003
【図３】
0005444865.tif 000004
【図４】
0005444865.tif 000005
【図５】
0005444865.tif 000006
【図６】
0005444865.tif 000007
【図７】
0005444865.tif 000008
【図８】
0005444865.tif 000009
【図９】
0005444865.tif 000010