(57)【要約】【課題】ユーザーの手を煩わせることなく、ネットワークＮＷに対応していない内部機器に関する識別情報を付与する。【解決手段】情報処理装置１は、外部装置１００とネットワークＮＷを介して通信可能であり、CPU１６を有するCPUボード１０と、CPUボード１０とネットワークＮＷとは異なる通信方式で通信可能であり、USBデバイスディスクリプターを有する内部機器であるプリンター２０と、を備え、CPU１６は、プリンター２０からUSBデバイスディスクリプターを取得し、取得したUSBデバイスディスクリプターに基づいてプリンター２０に対応する識別情報を生成し、外部装置１００からプリンター２０に対する照会要求を受信すると、生成した識別情報を示す第１応答情報を外部装置１００に送信する。【選択図】図１
2020035242.tif 000002
【特許請求の範囲】
【請求項１】
外部装置とネットワークを介して通信可能であり、制御部を有する制御機器と、
前記制御機器と前記ネットワークとは異なる通信方式で通信可能であり、機器情報を有する内部機器と、を備え、
前記制御部は、
前記内部機器から前記機器情報を取得し、取得した前記機器情報に基づいて前記内部機器に対応する識別情報を生成し、
前記ネットワークを介して、前記外部装置から前記内部機器に対する照会要求を受信すると、生成した前記識別情報を示す第１応答情報を前記外部装置に送信することを特徴とする情報処理装置。
【請求項２】
前記制御機器は、BIOSの設定値が記憶される第１記憶部を有し、
前記制御部は、生成した前記識別情報を前記第１記憶部に記憶させることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１記憶部とは異なる第２記憶部を備え、
前記制御部は、
所定の通信プロトコルに基づく通信を実現するための通信プログラムを、前記第２記憶部から読み出して実行し、
前記ネットワークを介して、前記外部装置から前記内部機器に対する通信要求を受信すると、前記第１記憶部に記憶されている前記識別情報を前記所定の通信プロトコルで利用可能な形式の第２応答情報に変換し、前記第２応答情報を前記外部装置に送信することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記制御機器と前記内部機器の間の通信方式はUSB通信規格に対応したものであり、
前記内部機器は、USB機器であり、
前記機器情報は、USBデバイスディスクリプターであり、
前記通信プログラムは、SMBIOSプログラムおよびSNMPエージェントプログラムの少なくとも一方を含むことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記制御部は、
少なくとも、前記制御機器の初回起動時に、前記識別情報を生成することを特徴とする請求項１ないし４のいずれか１項に記載の情報処理装置。
【請求項６】
前記制御部は、
前記制御機器の起動時に、前記第１記憶部に前記識別情報が記憶されているか否かを判別し、前記第１記憶部に前記識別情報が記憶されていないと判定した場合、前記識別情報を生成し、前記第１記憶部に前記識別情報が記憶されていると判定した場合、前記機器情報を生成しないことを特徴とする請求項２ないし４のいずれか１項に記載の情報処理装置。
【請求項７】
前記内部機器は、印刷機構を有することを特徴とする請求項１ないし６のいずれか１項に記載の情報処理装置。
【請求項８】
外部装置とネットワークを介して通信可能であり、制御部を有する制御機器と、
前記制御機器と前記ネットワークとは異なる通信方式で通信可能であり、機器情報を有する内部機器と、を備えた情報処理装置の制御方法であって、
前記内部機器から前記機器情報を取得し、取得した前記機器情報に基づいて前記内部機器に対応する識別情報を生成し、
前記ネットワークを介して、前記外部装置から前記内部機器に対する照会要求を受信すると、生成した前記識別情報を示す第１応答情報を前記外部装置に送信することを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部装置とネットワークを介して接続可能な情報処理装置および情報処理装置の制御方法に関する。
【背景技術】
【０００２】
特許文献１には、複数台のUSB機器と接続されると共に、ネットワークを介してPCと接続されたデバイスサーバーであって、USB機器がシリアル番号を備えていない場合、デバイスサーバーのデバイスサーバー情報と、デバイスサーバーとUSB機器を接続するインターフェース情報と、USB機器の機器情報と、に基づいて、USB機器の識別情報を生成する技術が開示されている。
【０００３】
一方、ネットワーク通信に対応していないUSB機器等の内部機器を、外部装置からネットワークを介して制御する方法として、CPUボード等の制御機器を、外部装置と内部機器との間に介在させる方法が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１０９４６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ネットワーク通信に対応していない内部機器を、外部装置からネットワークを介して制御する場合、内部機器に対応する識別情報を制御機器に付与する必要がある。特許文献１の技術では、内部機器に識別情報を付与することはできるが、制御機器に、内部機器に対応する識別情報を付与することはできない。もちろん、ユーザーが手入力により、内部機器に対応する識別情報を制御機器に付与することも考えられるが、手間がかかる。
【課題を解決するための手段】
【０００６】
本発明の情報処理装置は、外部装置とネットワークを介して通信可能であり、制御部を有する制御機器と、制御機器とネットワークとは異なる通信方式で通信可能であり、機器情報を有する内部機器と、を備え、制御部は、内部機器から機器情報を取得し、取得した機器情報に基づいて内部機器に対応する識別情報生成し、ネットワークを介して、外部装置から内部機器に対する照会要求を受信すると、生成した識別情報を示す第１応答情報を外部装置に送信する。
【０００７】
本発明の情報処理装置の制御方法は、外部装置とネットワークを介して通信可能であり、制御部を有する制御機器と、制御機器とネットワークとは異なる通信方式で通信可能であり、機器情報を有する内部機器と、を備えた情報処理装置の制御方法であって、内部機器から機器情報を取得し、取得した機器情報に基づいて内部機器に対応する識別情報を生成し、ネットワークを介して、外部装置から内部機器に対する照会要求を受信すると、生成した識別情報を示す第１応答情報を外部装置に送信する。
【図面の簡単な説明】
【０００８】
【図１】ネットワークシステムのブロック図である。
【図２】BIOSメニューの一例を示す図である。
【図３】BIOS処理を示すフローチャートである。
【図４】図３に続くフローチャートである。
【図５】Auto Fill処理を示すフローチャートである。
【図６】図５に続くフローチャートである。
【図７】第１応答処理を示すフローチャートである。
【図８】第２応答処理を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、一実施形態に係る情報処理装置および情報処理装置の制御方法について、添付図面を参照して説明する。図１は、ネットワークシステムＳＹのブロック図である。ネットワークシステムＳＹは、情報処理装置１と、ネットワークＮＷを介して情報処理装置１と接続された外部装置１００と、を備える。
【００１０】
情報処理装置１は、特に用途を限定しないが、例えば、会計処理を行うPOS（Point of Sale System）端末として機能する。また、外部装置１００は、例えば、POS端末を管理するPOSサーバーとして機能する。この場合、外部装置１００は、情報処理装置１から取得した会計情報に基づいて、レシート印刷データやクーポン印刷データを生成し、生成したこれらの印刷データを情報処理装置１に送信するなどの処理を行う。
【００１１】
ネットワークＮＷは、例えばインターネット網である。また、外部装置１００は、例えばWebサーバー装置、PC（Personal Computer）またはタブレット端末である。
【００１２】
情報処理装置１は、CPU（Central Processing Unit）ボード１０と、プリンター２０と、ディスプレー３０と、キーボード４０と、マウス５０と、HDD（Hard Disk Drive）６０と、を備える。CPUボード１０は、「制御機器」の一例である。また、プリンター２０は、「内部機器」および「USB機器」の一例である。また、HDD６０は、「第２記憶部」の一例である。なお、情報処理装置１のプリンター２０以外の構成、すなわち、CPUボード１０、ディスプレー３０、キーボード４０、マウス５０およびHDD６０は、例えばPCである。
【００１３】
プリンター２０は、例えば、レシートやクーポンを印刷するレシートプリンターである。また、プリンター２０は、ネットワーク通信に対応していないことを前提とする。本実施形態のネットワークシステムＳＹは、このプリンター２０を外部装置１００から制御するため、プリンター２０と外部装置１００との間にCPUボード１０を介在させた構成となっている。
【００１４】
CPUボード１０は、第１USBポート１１と、USBコントローラー１２と、ネットワークポート１３と、ネットワークコントローラー１４と、第１フラッシュメモリー１５と、CPU１６（プロセッサー）と、を備える。第１フラッシュメモリー１５は、「第１記憶部」の一例である。また、CPU１６は、「制御部」の一例である。なお、図１において、ネットワークポート１３は、「NWポート」と表記し、ネットワークコントローラー１４は、「NWコントローラー」と表記する。
【００１５】
第１USBポート１１は、CPUボード１０がプリンター２０とUSB通信を行うためのポートである。第１USBポート１１は、プリンター２０の第２USBポート２１と接続される。つまり、CPUボード１０とプリンター２０の間の通信方式はUSB通信規格に対応したものである。USBコントローラー１２は、CPU１６の命令に基づき、USB通信を制御する。
【００１６】
ネットワークポート１３は、CPU１６が外部装置１００とネットワーク通信を行うためのポートである。ネットワークポート１３は、外部装置１００の不図示のネットワークポートと接続される。なお、CPUボード１０と外部装置１００は、SMNP（Simple Network Management Protocol）に基づいて通信が行われる。SNMPは、「所定の通信プロトコル」の一例である。ネットワークコントローラー１４は、CPU１６の命令に基づき、ネットワーク通信を制御する。ネットワークコントローラー１４は、例えばネットワークカードとしてCPUボード１０に実装される。
【００１７】
第１フラッシュメモリー１５は、BIOS（Basic Input / Output System）およびSMBIOS情報を記憶する。BIOSは、CPUボード１０の起動時に実行されるプログラムである。CPU１６は、第１フラッシュメモリー１５からBIOSを読み出して実行し、CPUボード１０に接続された各種ハードウェアの初期化や、HDD６０内のOS（Operating System）の読み出しおよび起動、などを行う。
【００１８】
SMBIOS情報は、BIOS情報、システム情報およびUUID（Universally Unique Identifier）など、SMBIOSで定義される各種情報を含む。例えば、BIOS情報は、BIOSの設定値を含む。また、システム情報は、プリンター２０に対応する識別情報を含む。この識別情報は、プリンター２０から取得したUSBデバイスディスクリプターを用いて生成される。詳細については、後述する。
【００１９】
CPU１６は、バス７０を介して、ディスプレー３０、キーボード４０、マウス５０およびHDD６０と接続され、これらのハードウェアを制御する。また、CPU１６は、これらのハードウェアと協働して、BIOSの起動により実行されるBIOS処理や、プリンター２０および外部装置１００との通信処理など、各種処理を制御する。
【００２０】
プリンター２０は、第２USBポート２１と、プリンターエンジン２２と、第２フラッシュメモリー２３と、CPU(プロセッサー)を有するプリンターコントローラー２４と、を備える。第２USBポート２１は、プリンター２０がCPUボード１０とUSB通信を行うためのポートである。プリンターエンジン２２は、印刷ヘッド、用紙搬送機構、用紙切断機構などの印刷機構を含み、プリンターコントローラー２４の制御下で、レシート用紙などの印刷媒体に印刷を行う。
【００２１】
第２フラッシュメモリー２３は、プリンターエンジン２２を制御するファームウェアとUSBデバイスディスクリプターを記憶する。USBデバイスディスクリプターは、「機器情報」の一例である。USBデバイスディスクリプターは、「iManufacturer」、「iProduct」、「iSerial Number」などを含む。
【００２２】
プリンターコントローラー２４のCPUは、第２フラッシュメモリー２３からファームウェアを読み出して実行し、CPUボード１０からの印刷命令にしたがい、プリンターエンジン２２に印刷を実行させる。また、プリンターコントローラー２４は、CPUボード１０からの情報要求にしたがい、第２フラッシュメモリー２３に記憶されているUSBデバイスディスクリプターを読み出して、CPUボード１０に送信する。
【００２３】
ディスプレー３０は、BIOSメニューＭ（図２参照）など、各種情報を表示する。キーボード４０およびマウス５０は、BIOSメニューＭの操作など、ユーザーによる各種操作に用いられる。
【００２４】
HDD６０は、OS、SMBIOSプログラムおよびSNMPエージェントプログラムを記憶する。SMBIOSプログラムおよびSNMPエージェントプログラムは、「所定の通信プロトコルに基づく通信を実現するための通信プログラム」の一例である。
【００２５】
OSは、CPU１６が実行する基本ソフトウェアである。SMBIOSプログラムは、CPU１６がSMBIOS情報の読み取りや書き込みを行うために用いられる。また、SNMPエージェントプログラムは、CPU１６がSNMPに基づくネットワーク通信を行うために用いられる。なお、特に図示しないが、外部装置１００には、SNMPエージェントプログラムに対応するSNMPマネージャープログラムが記憶される。外部装置１００は、このSNMPマネージャープログラムによりSNMPマネージャーとして機能し、SNMPエージェントとなる情報処理装置１を管理する。
【００２６】
上記の構成により、CPUボード１０のCPU１６は、BIOS処理の一部として実行されるAuto fill処理（図５および図６参照）において、プリンター２０に対し、USBデバイスディスクリプターを要求する。CPU１６は、プリンター２０から返信されたUSBデバイスディスクリプターを、第１フラッシュメモリー１５の所定の記憶領域に記憶する。CPU１６は、SMBIOSプログラムを用いて、第１フラッシュメモリー１５に記憶されたUSBデバイスディスクリプターから、プリンター２０に対応する識別情報を生成し、SMBIOS情報の一部として記憶する。
【００２７】
また、CPU１６は、外部装置１００からプリンター２０に対する照会要求を受信すると、SMBIOS情報の一部として記憶されている識別情報を示す第１応答情報を外部装置１００に送信する（図７参照）。この識別情報は、外部装置１００が、CPUボード１０を介してプリンター２０を制御するために必要な情報である。また、CPU１６は、外部装置１００からプリンター２０に対する通信要求を受信すると、SMBIOS情報の一部として記憶されている識別情報を示す第２応答情報を外部装置１００に送信する（図８参照）。
【００２８】
また、CPU１６は、外部装置１００からXML（Extensible Markup Language）形式の印刷データを受信した場合、XML形式の印刷データを解析して、プリンター２０のファームウェアで実行可能な印刷命令である文字コードや画像データ、コマンドに変換する。CPU１６は、変換後の印刷命令を、プリンター２０に送信する。
【００２９】
図２は、BIOSメニューＭの一例を示す図である。BIOSメニューＭは、ユーザーの操作にしたがって、ディスプレー３０に表示される。BIOSメニューＭは、SMBIOSメニューＭ１と、SMBIOS Auto fillメニューＭ２と、を含む。
【００３０】
SMBIOSメニューＭ１は、Product Nameの情報８１と、Serial Numberの情報８２と、UUIDの情報８３と、を表示する。ここで、Product Nameの情報８１と、Serial Numberの情報８２が、プリンター２０に対応する識別情報に相当する。また、UUIDの情報８３は、ネットワークコントローラー１４のMAC（Media Access Control）アドレスを用いて生成される情報である。
【００３１】
SMBIOS Auto fillメニューＭ２は、Auto fill nowボタン８４と、Auto fill on bootの情報８５と、Target USB Portの情報８６と、Product suffixの情報８７と、S/N conversionの情報８８と、を表示する。
【００３２】
Auto fill nowボタン８４は、ユーザーが手動でAuto fill処理を実行させる場合に選択されるボタンである。Auto fill nowボタン８４が選択されると、SMBIOS情報が更新され、情報処理装置１が再起動される。
【００３３】
Auto fill on bootの情報８５としては、"Enabled"と"Disabled"のいずれかが選択される。"Enabled"が選択された場合、所定の条件を満たすとAuto fill処理を実行する。また、"Disabled"が選択された場合、所定の条件を満たす場合でもAuto fill処理を実行しない。所定の条件とは、後述する図３のＳ０２でＮｏとなり、Ｓ０３でＹｅｓとなる条件である。
【００３４】
Target USB Portの情報８６は、第１USBポート１１のポート名である。Product suffixの情報８７は、識別情報の一部となるProduct Nameの情報８１を生成する際の接尾辞である。例えば、CPU１６は、プリンター２０から取得したUSBデバイスディスクリプターの「iProduct」が「TM-T1234」である場合であって、Product suffixの情報８７が「-DT2」の場合、「iProduct」の後にProduct suffixの情報８７を付加した「TM-T1234-DT2」を、Product Nameの情報８１として生成する。
【００３５】
S/N conversionの情報８８としては、"Enabled"と"Disabled"のいずれかが選択される。"Enabled"が選択された場合、プリンター２０から取得したUSBデバイスディスクリプターの「iSerial Number」に対しシリアル番号変換処理を行って、識別情報の一部となるSerial Numberの情報８２を生成する。図２の例では、シリアル番号変換処理が行われた場合を示している。シリアル番号変換処理は、所定の変換規則にしたがって、USBデバイスディスクリプターの「iSerial Number」をSerial Numberの情報８２に変換する。また、S/N conversionの情報８８として"Disabled"が選択された場合、USBデバイスディスクリプターの「iSerial Number」に対しシリアル番号変換処理を行うことなく、「iSerial Number」をそのままSerial Numberの情報８２とする。
【００３６】
図３および図４は、BIOS処理を示すフローチャートである。BIOS処理は、第１フラッシュメモリー１５に記憶されているBIOSに基づいて、CPU１６により実行される処理である。CPU１６は、BIOSが起動されると、Auto fill on bootの情報８５が"Enabled"であるか否かを判別する（Ｓ０１）。CPU１６は、Auto fill on bootの情報８５が"Enabled"ではないと判定した場合（Ｓ０１：Ｎｏ）、Ｓ０６に進む。
【００３７】
CPU１６は、Auto fill on bootの情報８５が"Enabled"であると判定した場合（Ｓ０１：Ｙｅｓ）、「Auto fill loop guard flag」が設定されているか否かを判別する（Ｓ０２）。この「Auto fill loop guard flag」は、Auto fill処理を実行しても、Product Nameの情報８１と、Serial Numberの情報８２が空文字列（空白）の場合、すなわち、これらの情報が入力されていない状態の場合に無限ループとなることを防ぐためのフラグである。
【００３８】
CPU１６は、「Auto fill loop guard flag」が設定されていると判定した場合（Ｓ０２：Ｙｅｓ）、Ｓ０６に進み、「Auto fill loop guard flag」が設定されていないと判定した場合（Ｓ０２：Ｎｏ）、Product Nameの情報８１とSerial Numberの情報８２がいずれも空文字列であるか否かを判別する（Ｓ０３）。CPU１６は、Product Nameの情報８１とSerial Numberの情報８２がいずれも空文字列ではないと判定した場合（Ｓ０３：Ｎｏ）、すなわちProduct Nameの情報８１とSerial Numberの情報８２の少なくとも一方が入力された状態であると判定した場合は、Ｓ０６に進む。
【００３９】
CPU１６は、Product Nameの情報８１とSerial Numberの情報８２がいずれも空文字列であると判定した場合（Ｓ０３：Ｙｅｓ）、Auto fill処理（図５および図６参照）を実行する（Ｓ０４）。その後、CPU１６は、「Auto fill loop guard flag」を設定し（Ｓ０５）、Ｓ０１に戻る。
【００４０】
図４に示すように、CPU１６は、ユーザーがBIOSメニューＭ（図２参照）を表示するための操作を行ったか否かを判別する（Ｓ０６）。CPU１６は、ユーザーがBIOSメニューＭを表示するための操作を行っていないと判定した場合（Ｓ０６：Ｎｏ）、BIOS処理を終了する。また、CPU１６は、ユーザーがBIOSメニューＭを表示するための操作を行ったと判定した場合（Ｓ０６：Ｙｅｓ）、BIOSメニューＭを表示する（Ｓ０７）。
【００４１】
CPU１６は、BIOSメニューＭにおいて、ユーザーがAuto fill nowボタン８４を選択したか否かを判別する（Ｓ０８）。CPU１６は、ユーザーがAuto fill nowボタン８４を選択したと判定した場合（Ｓ０８：Ｙｅｓ）、Auto fill処理を実行し（Ｓ０９）、Ｓ０１に戻る。また、CPU１６は、ユーザーがAuto fill nowボタン８４を選択していないと判定した場合（Ｓ０８：Ｎｏ）、ユーザーがSMBIOSメニューＭ１を手動で編集したか否かを判別する（Ｓ１０）。CPU１６は、ユーザーがSMBIOSメニューＭ１を手動で編集したと判定した場合（Ｓ１０：Ｙｅｓ）、SMBIOS情報を更新して情報処理装置１を再起動し（Ｓ１１）、Ｓ１２に進む。
【００４２】
CPU１６は、ユーザーがBIOSメニューＭを終了するための操作を行ったか否かを判別し（Ｓ１２）、終了するための操作を行っていないと判定した場合は（Ｓ１２：Ｎｏ）、Ｓ０８に戻る。また、CPU１６は、ユーザーがBIOSメニューＭを終了するための操作を行ったと判定した場合は（Ｓ１２：Ｙｅｓ）、BIOSメニューＭを終了し（Ｓ１３）、BIOS処理を終了する。なお、CPU１６は、BIOS処理の終了後、OSを起動する。
【００４３】
図５および図６は、Auto fill処理を示すフローチャートである。Auto fill処理は、図３のＳ０４および図４のＳ０９に相当するサブフローチャートである。CPU１６は、Auto fill処理を開始すると、Target USB Portの値を取得し（Ｓ２１）、プリンター２０がTarget USB Port、すなわち第１USBポート１１に接続されているか否かを判別する（Ｓ２２）。
【００４４】
CPU１６は、プリンター２０がTarget USB Portに接続されていないと判定した場合（Ｓ２２：Ｎｏ）、Product Nameの情報８１とSerial Numberの情報８２を空文字列にして（Ｓ２３）、Ｓ３４に進む。また、CPU１６は、プリンター２０がTarget USB Portに接続されていると判定した場合（Ｓ２２：Ｙｅｓ）、USBデバイスディスクリプターの「iProduct」を取得する（Ｓ２４）。
【００４５】
CPU１６は、USBデバイスディスクリプターの「iProduct」を取得できたか否かを判別し（Ｓ２５）、取得できたと判定した場合（Ｓ２５：Ｙｅｓ）、「iProduct」の後にProduct suffixの情報８７を付加し、Product Nameの情報８１を設定する（Ｓ２６）。ここで、「Product Nameの情報８１を設定する」とは、SMBIOSのデータ構造にProduct Nameの情報８１を入力し、SNBIOS情報として記憶させることを意味する。また、CPU１６は、USBデバイスディスクリプターの「iProduct」を取得できなかったと判定した場合（Ｓ２５：Ｎｏ）、Product suffixの情報８７を空文字列にする（Ｓ２７）。なお、USBデバイスディスクリプターの「iProduct」を取得できない場合としては、プリンター２０が故障している場合や、プリンター２０に「iProduct」が記憶されていない場合、などが考えられる。
【００４６】
図６に示すように、CPU１６は、Ｓ２６またはＳ２７の後、USBデバイスディスクリプターの「iSerial Number」を取得する（Ｓ２８）。CPU１６は、USBデバイスディスクリプターの「iSerial Number」を取得できたか否かを判別し（Ｓ２９）、取得できなかったと判定した場合（Ｓ２９：Ｎｏ）、Serial Numberの情報８２を空文字列にし（Ｓ３０）、Ｓ３４に進む。USBデバイスディスクリプターの「iSerial Number」を取得できない場合としては、プリンター２０が故障している場合や、プリンター２０に「iSerial Number」が記憶されていない場合、などが考えられる。また、CPU１６は、USBデバイスディスクリプターの「iSerial Number」を取得できたと判定した場合（Ｓ２９：Ｙｅｓ）、S/N conversionの情報８８が"Enabled"であるか否かを判別する（Ｓ３１）。
【００４７】
CPU１６は、S/N conversionの情報８８が"Enabled"であると判定した場合（Ｓ３１：Ｙｅｓ）、プリンター２０から取得したUSBデバイスディスクリプターの「iSerial Number」に対しシリアル番号変換処理を行い（Ｓ３２）、Serial Numberの情報８２を設定する（Ｓ３３）。つまり、「iSerial Number」に対してシリアル番号変換処理を行った情報を、SNBIOS情報の一部として記憶する。また、CPU１６は、S/N conversionの情報８８が"Enabled"ではないと判定した場合（Ｓ３１：Ｎｏ）、「iSerial Number」に対してシリアル番号変換処理を行うことなく、Serial Numberの情報８２を設定する（Ｓ３３）。つまり、USBデバイスディスクリプターの「iSerial Number」を、そのままSNBIOS情報の一部として記憶する。その後、CPU１６は、ネットワークコントローラー１４のMACアドレスを用いてUUIDを生成し、UUIDの情報８３を設定して（Ｓ３４）、Auto fill処理を終了する。
【００４８】
図７は、第１応答処理を示すフローチャートである。第１応答処理は、図３および図４に示したBIOS処理が実行された後、外部装置１００からの照会要求に基づいて実行される処理である。ここで、「照会要求」とは、プリンター２０に対応する識別情報の送信要求を意味する。CPU１６は、ネットワークＮＷを介して、外部装置１００からプリンター２０に対する照会要求を受信すると（Ｓ４１：Ｙｅｓ）、SMBIOSプログラムを用いて、第１フラッシュメモリー１５からSMBIOS情報を読み出し、識別情報を取得する（Ｓ４２）。つまり、CPU１６は、識別情報として、Auto fill処理で設定されたProduct Nameの情報８１およびSerial Numberの情報８２を取得する。
【００４９】
また、CPU１６は、SNMPエージェントプログラムを用いて、取得した識別情報をSNMPで利用可能な形式に変換し、変換済み識別情報を生成する（Ｓ４３）。CPU１６は、変換済み識別情報に、ヘッダーおよびフッターを付加して第１応答情報を生成し（Ｓ４４）、生成した第１応答情報を外部装置１００に送信する（Ｓ４５）。外部装置１００は、第１応答情報を受信し、プリンター２０に対応する識別情報を取得することで、以後、プリンター２０の制御が可能となる。
【００５０】
図８は、第２応答処理を示すフローチャートである。第２応答処理は、図７に示した第１応答処理の後、外部装置１００からの通信要求に基づいて実行される処理である。CPU１６は、ネットワークＮＷを介して、外部装置１００からプリンター２０の通信要求を受信すると（Ｓ５１：Ｙｅｓ）、SMBIOSプログラムを用いて、第１フラッシュメモリー１５からSMBIOS情報を読み出し、識別情報を取得する（Ｓ５２）。また、CPU１６は、SNMPエージェントプログラムを用いて、取得した識別情報をSNMPで利用可能な形式に変換し、変換済み識別情報を生成する（Ｓ５３）。CPU１６は、変換済み識別情報に、ヘッダーおよびフッターを付加して第２応答情報を生成し（Ｓ５４）、生成した第２応答情報を外部装置１００に送信する（Ｓ５５）。
【００５１】
以上説明したとおり、本実施形態によれば、ネットワーク通信に対応しておらず、情報処理装置１の内部に収納され、情報処理装置１の一部として一体的に構成されたプリンター２０を、外部装置１００からネットワークＮＷを介して制御する場合において、CPUボード１０が、プリンター２０から取得したUSBデバイスディスクリプターに基づいて、プリンター２０に対応する識別情報を生成するため、ユーザーの手を煩わせることなく、CPUボード１０に識別情報を付与することができる。
【００５２】
また、BIOSの設定値が記憶される第１フラッシュメモリー１５に識別情報を記憶させるため、情報処理装置１のOSが変更された場合でも、識別情報を変更する必要がない。また、HDD６０に識別情報を記憶させると、HDD６０が取り外された場合に識別情報を付与し直す必要があるが、第１フラッシュメモリー１５に識別情報を記憶させるため、そのような問題がない。
【００５３】
また、第１フラッシュメモリー１５に識別情報を記憶させるため、プリンター２０がCPUボード１０に接続されていない場合でも、外部装置１００に応答することができる。また、外部装置１００に応答する際は、SMBIOSプログラムを用いてSMBIOS情報を読み出し、SNMPエージェントプログラムを用いてSNMPに基づく通信を行うため、汎用のプログラムを用いて本実施形態を実現することができる。
【００５４】
また、CPUボード１０は、第１フラッシュメモリー１５に識別情報が記憶されていないと判定した場合（図３のＳ０３でＹｅｓと判定した場合）に、Auto Fill処理を実行して識別情報を生成するため、CPUボード１０の初回起動時や、ユーザーがBIOSメニューＭで意図的に識別情報を削除した場合に、CPUボード１０に識別情報を付与することができる。また、第１フラッシュメモリー１５に識別情報が記憶されていると判定した場合は、Auto Fill処理を実行しないため、誤って識別情報が変更されることがない。
【００５５】
上記の実施形態によらず、以下の変形例を採用可能である。
［変形例１］
上記の実施形態では、CPUボード１０が生成した識別情報を、SMBIOS情報の一部として第１フラッシュメモリー１５に記憶したが、SMBIOS情報以外の情報を識別情報として記憶してもよい。例えば、SNMPのMIB情報を識別情報として記憶してもよい。この場合、MIB情報のsysDescrとして、USBデバイスディスクリプターの「iProduct」に、Product suffixの情報８７を付加した情報を記憶し、MIB情報のchassisIdとして、「iSerial Number」を記憶してもよい。
また、識別情報を、例えばHDD６０など、第１フラッシュメモリー１５以外の記憶装置に記憶してもよい。また、識別情報を記憶する記憶装置は、必ずしも情報処理装置１内に存在しなくてもよく、CPUボード１０が通信可能な装置内に存在してもよい。
【００５６】
［変形例２］
上記の実施形態では、「所定の通信プロトコルに基づく通信を実現するための通信プログラム」として、SMBIOSプログラムおよびSNMPエージェントプログラムを例示したが、必ずしも両プログラムを用いる必要はない。例えば、HDD６０に記憶されたOS上で動作する所定のアプリケーションプログラムにより、SMBIOS情報の読み取りおよび書き込みを行ってもよい。また、SNMP以外の通信プロトコルを用いて、CPUボード１０と外部装置１００が通信を行う構成でもよい。
【００５７】
［変形例３］
また、上記の実施形態では、CPU１６は、SMNPエージェントプログラムに基づいて、SMBIOS情報が記憶されている記憶領域から識別情報を読み出したが、他の方法で識別情報を取得してもよい。例えば、CPU１６は、第１フラッシュメモリー１５の所定の記憶領域にアクセスして、USBデバイスディスクリプターを取得し、取得したUSBデバイスディスクリプターに基づいて識別情報を生成し、生成した識別情報を取得してもよい。つまり、CPU１６は、外部装置１００から照会要求や通信要求を受信したとき、一次情報となる所定の記憶領域内のUSBデバイスディスクリプターを用いて識別情報を生成してもよいし、二次情報となるSMBIOS情報を読み出してもよい。
【００５８】
［変形例４］
上記の実施形態では、USBデバイスディスクリプターの「iProduct」に、Product suffixの情報８７を付加したProduct Nameの情報８１と、「iSerial Number」に基づくSerial Numberの情報８２と、を識別情報としたが、識別情報の生成アルゴリズムは、これに限らない。例えば、「iProduct」に、Product suffixの情報８７と、「iSerial Number」と、を付加した情報や「iManufacturer」を、Product Nameの情報８１としてもよい。このように、USBデバイスディスクリプターの各情報を利用し、所定の生成アルゴリズムに基づいて、識別情報を生成してもよい。
【００５９】
［変形例５］
また、上記の実施形態では、BIOSを用いて識別情報を生成したが、プリンター２０を制御するデバイスドライバーなどのアプリケーションプログラムを用いて識別情報を生成してもよい。この場合、アプリケーションプログラムは、HDD６０に記憶される。
【００６０】
［変形例６］
上記の実施形態では、CPUボード１０とプリンター２０が、USB通信規格に基づいて通信する場合を例示したが、他の通信規格に基づいて通信する構成でもよい。例えば、CPUボード１０とプリンター２０が、RS-232などのシリアル通信規格に基づいて通信する構成でもよい。
【００６１】
［変形例７］
上記の実施形態では、「内部機器」としてプリンター２０を例示したが、プリンター２０に限らず、他の機器を用いてもよい。例えば、情報処理装置１がPOS端末である場合、スキャナー、表示機器、キーボード、キャッシュドロワーなどを「内部機器」として用いてもよい。また、１台のCPUボード１０に、複数の機器が接続される構成でもよい。
【００６２】
［変形例８］
上記の実施形態では、「制御機器」としてCPUボード１０を例示したが、CPUボード１０に限らず、他の機器を用いてもよい。例えば、各種集積回路やインターフェースボードを「制御機器」として用いてもよい。
【００６３】
［変形例９］
上記の実施形態では、CPU１６は、第１フラッシュメモリー１５に識別情報が記憶されていないと判定した場合に、Auto Fill処理を実行して識別情報を生成したが、CPUボード１０の初回起動時以降は、識別情報を書き換え不能としてもよい。
【００６４】
［その他の変形例］
上記の各実施形態および各変形例に示した情報処理装置１の各処理を実行する方法、情報処理装置１の各処理を実行するためのプログラム、またそのプログラムを記録したコンピューター読み取り可能な記録媒体も、発明の権利範囲に含まれる。また、各実施形態および各変形例を組み合わせた構成としてもよい。その他、ハードウェアとソフトウェアの協業により情報処理装置１の各処理を実現するなど、発明の要旨を逸脱しない範囲で、適宜変更が可能である。
【００６５】
［付記］
以下、情報処理装置１および情報処理装置１の制御方法について付記する。
情報処理装置１は、外部装置１００とネットワークＮＷを介して通信可能であり、制御部１６を有する制御機器１０と、制御機器１０とネットワークＮＷとは異なる通信方式で通信可能であり、機器情報を有する内部機器２０と、を備え、制御部１６は、内部機器２０から機器情報を取得し、取得した機器情報に基づいて内部機器２０に対応する識別情報を生成し、ネットワークＮＷを介して、外部装置１００から内部機器２０に対する照会要求を受信すると、生成した識別情報を示す第１応答情報を外部装置１００に送信する。
【００６６】
情報処理装置１の制御方法は、外部装置１００とネットワークＮＷを介して通信可能であり、制御部１６を有する制御機器１０と、制御機器１０とネットワークＮＷを介さず通信可能であり、機器情報を有する内部機器２０と、を備えた情報処理装置１の制御方法であって、内部機器２０から機器情報を取得し、取得した機器情報に基づいて内部機器２０に対応する識別情報を生成し、ネットワークＮＷを介して、外部装置１００から内部機器２０に対する照会要求を受信すると、生成した識別情報を示す第１応答情報を外部装置１００に送信する。
【００６７】
この構成によれば、ネットワーク通信に対応していない内部機器２０を、外部装置１００からネットワークＮＷを介して制御する場合において、制御機器１０が、内部機器２０から取得した機器情報に基づいて、内部機器２０に対応する識別情報を生成するため、ユーザーの手を煩わせることなく、制御機器１０に識別情報を付与することができる。
【００６８】
上記の情報処理装置１において、制御機器１０は、BIOSの設定値が記憶される第１記憶部１５を有し、制御部１６は、生成した識別情報を第１記憶部１５に記憶させることが好ましい。
【００６９】
この構成によれば、BIOSの設定値が記憶される第１記憶部１５に識別情報を記憶させるため、情報処理装置１のOSが変更された場合でも、識別情報を変更する必要がない。また、HDD６０など、取り外し可能な記憶装置に識別情報を記憶させると、記憶装置が取り外された場合に識別情報を付与し直す必要があるが、BIOSの設定値が記憶される第１記憶部１５に識別情報を記憶させるため、そのような問題がない。また、制御機器１０内に識別情報を記憶させるため、内部機器２０が接続されていない場合でも、外部装置１００に応答することができる。
【００７０】
上記の情報処理装置１において、第１記憶部１５とは異なる第２記憶部６０を備え、制御部１６は、所定の通信プロトコルに基づく通信を実現するための通信プログラムを、第２記憶部６０から読み出して実行し、ネットワークＮＷを介して、外部装置１００から内部機器２０に対する通信要求を受信すると、第１記憶部１５に記憶されている識別情報を所定の通信プロトコルで利用可能な形式の第２応答情報に変換し、第２応答情報を外部装置１００に送信することが好ましい。
【００７１】
この構成によれば、BIOSの設定値が記憶される第１記憶部１５とは異なる第２記憶部６０に記憶されている通信プログラムを用いて、プロトコル変換および外部装置１００との通信を行うことができる。これにより、使用する通信プログラムが、第１記憶部１５に記憶可能なものに制約されることがない。
【００７２】
上記の情報処理装置１において、制御機器１０と内部機器２０の間の通信方式はUSB通信規格に対応したものであり、内部機器２０は、USB機器であり、機器情報は、USBデバイスディスクリプターであり、通信プログラムは、SMBIOSプログラムおよびSNMPエージェントプログラムの少なくとも一方を含むことが好ましい。
【００７３】
この構成によれば、ネットワーク通信に対応していないUSB機器を、外部装置１００からネットワークＮＷを介して制御することができる。また、制御機器１０は、SMBIOSプログラムおよびSNMPエージェントプログラムの少なくとも一方を用いて、外部装置１００に第２応答情報を送信することができる。
【００７４】
上記の情報処理装置１において、制御部１６は、少なくとも、制御機器１０の初回起動時に、識別情報を生成することが好ましい。
【００７５】
この構成によれば、少なくとも、制御機器１０の初回起動時に、制御機器１０に識別情報を付与することができる。
【００７６】
上記の情報処理装置１において、制御部１６は、制御機器１０の起動時に、第１記憶部１５に識別情報が記憶されているか否かを判別し、第１記憶部１５に識別情報が記憶されていないと判定した場合、識別情報を生成し、第１記憶部１５に識別情報が記憶されていると判定した場合、機器情報を生成しないことが好ましい。
【００７７】
この構成によれば、第１記憶部１５に識別情報が記憶されていないと判定した場合に、識別情報を生成するため、初回起動時や、ユーザーが意図的に識別情報を削除した場合に、制御機器１０に識別情報を付与することができる。また、第１記憶部１５に識別情報が記憶されていると判定した場合は、識別情報を生成しないため、誤って識別情報が変更されることがない。
【００７８】
上記の情報処理装置１において、内部機器２０は、印刷機構２２を有することが好ましい。
【００７９】
この構成によれば、内部機器２０としてネットワークＮＷに対応していないプリンター２０を一体的に構成した情報処理装置１に適応できる。外部装置１００からネットワークＮＷを介して情報処理装置１に印刷データを送って印刷することができる。
【符号の説明】
【００８０】
１…情報処理装置、１０…CPUボード、１１…第１USBポート、１２…USBコントローラー、１３…ネットワークポート、１４…ネットワークコントローラー、１５…第１フラッシュメモリー、２０…プリンター、２１…第２USBポート、２２…プリンターエンジン、２３…第２フラッシュメモリー、２４…プリンターコントローラー、３０…ディスプレー、４０…キーボード、５０…マウス、６０…HDD、７０…バス。
【図１】
2020035242.tif 000003
【図２】
2020035242.tif 000004
【図３】
2020035242.tif 000005
【図４】
2020035242.tif 000006
【図５】
2020035242.tif 000007
【図６】
2020035242.tif 000008
【図７】
2020035242.tif 000009
【図８】
2020035242.tif 000010