(57)【要約】【課題】ハードウェアとソフトウェアの協調開発において、通信機器のハードウェアの機能開発とその制御ソフトウェアの開発を効率よく行うことができるシミュレータを提供する。【解決手段】実際のハードウェアから成るＵＳＢデバイス・コントローラ及びＵＳＢホスト・コントローラでの、バス状態の決定、バス速度の決定、及びデータの送受信を抽象化したイベントを生成する。そして、このイベントの送受信を、ＵＳＢ機器の通信経路を模擬するモデル（ＵＳＢ通信経路モデル４３０）として備える。また、イベントの種類に応じて通信における遅延時間を変化させる。即ち、イベントＩＤを参照して遅延時間の取り扱いを決定する。【選択図】図８
2008033794.tif 000002
【特許請求の範囲】
【請求項１】
通信機器の演算装置の動作を命令レベルで模擬するための命令設定モデル化手段と、前記演算装置により制御されるハードウェアを模擬するためのハードウェアモデル化手段とを備えたシミュレータ装置において、
前記通信機器の物理層以下の信号の送受信を抽象化したイベントを生成するイベント生成手段を設け、
前記イベントの送受信を、前記通信機器の通信経路を模擬するモデルとして備えたことを特徴とするシミュレータ装置。
【請求項２】
前記イベントの内容に応じて通信における遅延を模擬する手段を有することを特徴とする請求項１に記載のシミュレータ装置。
【請求項３】
前記イベントの内容をユニークに決定するイベントＩＤを参照して、前記通信における遅延の取り扱いを決定することを特徴とする請求項２に記載のシミュレータ装置。
【請求項４】
前記通信機器は、ＵＳＢを使用する通信機器であることを特徴とする請求項１乃至３の何れかに記載のシミュレータ装置。
【請求項５】
前記イベントの内容は、ＵＳＢの仕様におけるバスのリセット、バス速度の要求、バス速度の決定、及びＵＳＢパケットの転送を含むことを特徴とする請求項４に記載のシミュレータ装置。
【請求項６】
無線通信機器の演算装置の動作を命令レベルで模擬するための命令設定モデル化手段と、前記中央演算装置により制御されるハードウェアを模擬するハードウェアモデル化手段とを備えたシミュレータ装置において、
前記通信機器の媒体アクセス制御層で生成したフレームを物理層以下でフレームパケットとして取り扱うフレーム処理手段を備え、
前記フレームパケットの送受信を、前記無線通信機器の無線通信経路を模擬するモデルとして備えたことを特徴とするシミュレータ装置。
【請求項７】
通信機器の演算装置の動作を命令レベルで模擬するための命令設定モデル化工程と、前記演算装置により制御されるハードウェアを模擬するためのハードウェアモデル化工程とを備えたシミュレータのシミュレーション方法であって、
前記通信機器の物理層以下の信号の送受信を抽象化したイベントを生成するイベント生成工程を有し、
前記通信機器の通信経路を模擬するために前記イベントの送受信を実行することを特徴とするシミュレーション方法。
【請求項８】
無線通信機器の演算装置の動作を命令レベルで模擬するための命令設定モデル化工程と、前記演算装置により制御されるハードウェアを模擬するハードウェアモデル化工程とを備えたシミュレータのシミュレーション方法であって、
前記通信機器の媒体アクセス制御層で生成したフレームを物理層以下でフレームパケットとして取り扱うフレーム処理工程を有し、
前記無線通信機器の無線通信経路を模擬するために、前記フレームパケットの送受信を実行することを特徴とするシミュレーション方法。
【請求項９】
請求項７に記載のシミュレーション方法を実行することを特徴とする制御プログラム。
【請求項１０】
請求項８に記載のシミュレーション方法を実行することを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信機器の動作を検証するシミュレータ装置及びシミュレーション方法、並びに前記制御方法を実行するための制御プログラムに関する。
【背景技術】
【０００２】
ＬＳＩを含むハードウェアの動作を検証するハードウェア・シミュレータは、従来より知られている。例えば、特許文献１には、論理回路の機能シミュレーションを行う際に、回路の遅延を考慮してシミュレーションを行う技術が提案されている。
【０００３】
また、ハードウェア・シミュレータは、ハードウェアを制御するソフトウェアの開発にも使用されており、さらにはハードウェアとソフトウェアの両者を並行して開発する、ハードウェアとソフトウェアの協調開発でも利用されている。
【０００４】
一方で、ＵＳＢ利用機器が増加し、またＵＳＢ上での独自プロトコルを利用したアプリケーションが増加している。これに伴って、ＵＳＢホスト・コントローラやＵＳＢデバイス・コントローラの周辺機器がＵＳＢの規格に準拠し、且つ独自の機能を持って作成されている。ここで、ＵＳＢホスト・コントローラは、ＵＳＢの規格に準拠したＵＳＢのホストとしての動作を行う機能を有し、ＵＳＢデバイス・コントローラは、ＵＳＢの規格に準拠したＵＳＢのデバイスとしての動作を行う機能を備えている。
【０００５】
このようなＵＳＢ利用機器において、ハードウェア・シミュレータを用いて、ＵＳＢホスト・コントローラ及びＵＳＢデバイス・コントローラの開発や、両コントローラの制御ソフトウェアの開発、アプリケーション・プロトコルの開発も行うことができる。
【０００６】
また、無線通信機器においても、ＩＥＥＥで策定された無線に関する規格に準拠したハードウェアや、それを利用したアプリケーションが広まっている。ＵＳＢと同様に、無線通信制御を行う無線通信コントローラの開発や、無線通信コントローラの制御ソフトウェアの開発にハードウェア・シミュレータを用いることができる。
【特許文献１】特開平５−１７４０９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、ＵＳＢホスト・コントローラおよびＵＳＢデバイス・コントローラは、ＵＳＢの規格にあるように、その上で動作するソフトウェアが利用するデータの通信経路を、通信経路の状態やバス速度を決定するために利用している。また、データの通信においては、シリアル化、信号開始同期（ＳＹＮＣ信号）、ＮＲＺＩ（Ｎｏｎ−Ｒｅｔｕｒｎ  ｔｏ  Ｚｅｒｏ  Ｉｎｖｅｒｔｅｄ）によるデコードおよびエンコード、及びビット・スタッフィングによるデータ信号の同期を行っている。
【０００８】
このように動作が複雑であるため、ハードウェア・シミュレータによってＵＳＢホスト・コントローラおよびＵＳＢデバイス・コントローラの通信経路をそのまま模擬すると、その模擬に要する計算処理が多大となる。その結果、ＵＳＢホスト・コントローラおよびＵＳＢデバイス・コントローラを利用して、ソフトウェア開発を行う際には、ソフトウェア開発には必要としない計算処理にまで多くの実行時間を要することになる。そのため、シミュレータ上においてソフトウェアの実行が遅れて、ソフトウェア開発の効率が低下する。
【０００９】
無線機器においても同様に、物理層（ＰＨＹ：Ｐｈｙｓｉｃａｌ  Ｌａｙｅｒ）以下の制御であるシリアル変換、変調、並びにＲＦ（無線周波）部の制御をそのまま模擬すると、その計算処理に要する時間が膨大になり、同様の問題が生ずる。
【００１０】
このように、通信機器における物理層の動作が複雑であるため、ハードウェアとソフトウェアの協調開発において、ハードウェア・シミュレータ上でその動作をそのまま模擬すると、シミュレータ上での計算負荷が大幅に増加する。その結果、ソフトウェアの検証時にソフトウェアの実行が遅れ、ソフトウェア開発の効率を低下させるという問題があった。
【００１１】
本発明は上記従来の問題点に鑑み、ハードウェアとソフトウェアの協調開発において、通信機器のハードウェアの機能開発とその制御ソフトウェアの開発を効率よく行うことができるシミュレータを提供することを目的とする。また、そのシミュレーション方法、並びに前記シミュレーション方法を実行するための制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は上記目的を達成するため、本発明は、通信機器の演算装置の動作を命令レベルで模擬するための命令設定モデル化手段と、前記演算装置により制御されるハードウェアを模擬するためのハードウェアモデル化手段とを備えたシミュレータ装置において、前記通信機器の物理層以下の信号の送受信を抽象化したイベントを生成するイベント生成手段を設け、前記イベントの送受信を、前記通信機器の通信経路を模擬するモデルとして備えたことを特徴とする。
【００１３】
また、本発明は、無線通信機器の演算装置の動作を命令レベルで模擬するための命令設定モデル化手段と、前記中央演算装置により制御されるハードウェアを模擬するハードウェアモデル化手段とを備えたシミュレータ装置において、前記通信機器の媒体アクセス制御層で生成したフレームを物理層以下でフレームパケットとして取り扱うフレーム処理手段を備え、  前記フレームパケットの送受信を、前記無線通信機器の無線通信経路を模擬するモデルとして備えたことを特徴とする。
【００１４】
また、本発明は、通信機器の演算装置の動作を命令レベルで模擬するための命令設定モデル化工程と、前記演算装置により制御されるハードウェアを模擬するためのハードウェアモデル化工程とを備えたシミュレータのシミュレーション方法であって、前記通信機器の物理層以下の信号の送受信を抽象化したイベントを生成するイベント生成工程を有し、前記通信機器の通信経路を模擬するために前記イベントの送受信を実行することを特徴とする。
【００１５】
また、本発明は、無線通信機器の演算装置の動作を命令レベルで模擬するための命令設定モデル化工程と、前記演算装置により制御されるハードウェアを模擬するハードウェアモデル化工程とを備えたシミュレータのシミュレーション方法であって、前記通信機器の媒体アクセス制御層で生成したフレームを物理層以下でフレームパケットとして取り扱うフレーム処理工程を有し、前記無線通信機器の無線通信経路を模擬するために、前記フレームパケットの送受信を実行することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、物理層以下の処理を簡易化することができるので、シミュレータ上での物理層以下の処理負荷が軽減し、例えばソフトウェアの検証時に、シミュレータ上での実行速度を低下させることなくソフトウェア開発を効率よく実施することが可能になる。即ち、通信機器のハードウェアの機能開発とその制御ソフトウェアの開発をシミュレータ上で効率よく行うことが可能になる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００１８】
［第１の実施の形態］
＜ハードウェア・シミュレータのプラットフォーム＞
本実施の形態における処理は、ソフトウェアを用いてハードウェアを模擬するものであるが、この模擬を行う場合も、実際には図１２に示すコンピュータなどのハードウェアを動作させることで処理を実現することは言うまでもない。本実施の形態における処理の手順を規定した各種プログラムはＲＯＭ１２０７に格納されている。そして各種プログラムがＣＰＵ１２０６に読み込まれ、ＣＰＵ１２０６がプログラムにしたがいモデル化などの処理を行い、そのモデル上で各処理を行う。この点は、他の実施の形態についても同様である。
【００１９】
図１は、本発明の第１の実施の形態に係るハードウェア・シミュレータのプラットフォームの構成を示すブロック図である。
【００２０】
このプラットフォームは、スケジューラ１０１、ＩＳＳ（Ｉｎｓｔｒｕｃｔｉｏｎ  ｓｅｔ  ｓｉｍｕｌａｔｏｒ）１０２、バス・モデル１０３、及び周辺デバイス機器モデル１０４を備えている。
【００２１】
スケジューラ１０１は、ハードウェアのシミュレーションにおける時間の管理を行い、ＩＳＳ１０２は、ターゲットＭＰＵの命令レベルで動作を模擬する。周辺デバイス機器モデル１０４は、ＬＳＩに搭載される周辺デバイス（タイマ・コントローラ、ＤＭＡコントローラ、メモリコントローラなど）やそのＬＳＩと通信をする周辺回路（ＲＡＭ、ＲＯＭ、外部ＩＯなど）の動作を模擬する。
【００２２】
周辺デバイス機器モデル１０４、ＩＳＳ１０２、周辺デバイス機器モデル１０４がデータの授受を行うための信号処理を模擬するバス・モデル１０３からなる。
【００２３】
ＩＳＳ１０２、バスモデル１０３、及び周辺デバイス機器モデル１０４は、それぞれ複数動作させることができる。ターゲットコード１１０についても、複数のＩＳＳ１０２のそれぞれに対して、記憶装置である周辺デバイス機器モデル１０４に配置し、ハードウェア・シミュレータのプラットフォーム１００で複数のシステムを動作させることができる。
【００２４】
不図示であるがターゲットＭＰＵが、処理可能な命令の群としてプログラムからコンパイルされたターゲットコード１１０を周辺デバイス機器モデル１０４の一つである記憶装置に配置することができる。ＩＳＳ１０２はターゲットコード１１０を順次ＩＳＳ１０２に取り込み、ＩＳＳ１０２における処理と、周辺デバイス機器モデル１０４にバス・モデル１０３を介してのアクセスとをスケジューラ１０１のタイミングで実行する。そして、実際のハードウェアにターゲットコード１１０を組み込み動作させることと同様な模擬を行う。
【００２５】
また、ハードウェア・シミュレータのプラットフォーム１００は、パソコンの上で実行することができるソフトウェアであり、周辺デバイス機器モデル１０４の作成においてはＣ／Ｃ＋＋言語を用いる。
【００２６】
本実施の形態では、Ｃ／Ｃ＋＋言語を用いて周辺デバイス機器モデル１０４を模擬しているが、ＨＤＬやＳｙｓｔｅｍＣなどの言語を用い同様なことが出来ることは言うまでも無い。
【００２７】
＜ＵＳＢ通信機器のハードウェア・シミュレータ＞
次に、ＵＳＢ通信機器のハードウェア・シミュレータの全体構成について説明する。
【００２８】
図２は、第１の実施の形態に係るハードウェア・シミュレータの全体構成を示すブロック図である。
【００２９】
このハードウェア・シミュレータは、図１に示したプラットフォーム１００をベースとし、ＵＳＢデバイス・システムとＵＳＢホスト・システムがＵＳＢ通信経路を介して通信を行うシステムのシミュレータである。
【００３０】
ＵＳＢデバイス・システム２１０とＵＳＢホスト・システム２２０はそれぞれ、ＵＳＢデバイス・コントローラモデル２１５，ＵＳＢホスト・コントローラモデル２２５、ＭＰＵ（演算装置）モデル２１１，２２１を備えている。さらに、ＲＡＭモデル２１２，２２２、ＲＯＭモデル２１３，２２３、ＩＯモデル２１４，２２４、及びバスモデル２１６，２２６も備えている。
【００３１】
ＭＰＵモデル２１１，２２１は、ＩＳＳ１０２に相当し、ターゲットコードを読み込み処理を行う。ＲＡＭモデル２１２、２２２は、周辺デバイス機器モデル１０４の一つであり、それぞれのシステムでの作業領域として使用される。ＲＯＭモデル２１３、２２３は、周辺デバイス機器モデル１０４の一つであり、不図示であるがＵＳＢデバイス・システム２１０とＵＳＢホスト・システム２２０を動作させるためのプログラムであるターゲットコード１１０を記憶保持しておく。
【００３２】
ＩＯモデル２１４は、周辺デバイス機器モデル１０４の一つであり、ＵＳＢデバイス・システム２１０及びＵＳＢホスト・システム２２０の外部と通信するためのＩＯ（入出力部）である。ＵＳＢデバイス・コントローラモデル２１５は、周辺デバイス機器モデル１０４の一つであり、公知のＵＳＢの規格に準拠したＵＳＢのデバイスとしての動作を行うＵＳＢ＿Ｉ／Ｆを備える。ＵＳＢホスト・コントローラモデル２２５は、周辺デバイス機器モデル１０４の一つであり、公知のＵＳＢの規格に準拠したＵＳＢのホストとしての動作を行うＵＳＢ＿Ｉ／Ｆ（インターフェース）を備える。
【００３３】
バスモデル２１６は、バスモデル１０３の一つであり、ＭＰＵモデル２１１、ＲＡＭモデル２１２、ＲＯＭモデル２１３、ＩＯモデル２１４、及びＵＳＢデバイス・コントローラモデル２１５間でのデータのやり取りを行うのに使用される。バスモデル２２５は、バスモデル１０３の一つであり、ＭＰＵモデル２２１、ＲＡＭモデル２２２、ＲＯＭモデル２２３、ＩＯモデル２２４、及びＵＳＢホスト・コントローラモデル２２５間でのデータのやり取りを行うのに使用される。
【００３４】
ＵＳＢ通信経路モデル２３０は、ＵＳＢデバイス・コントローラモデル２１５のＵＳＢ＿Ｉ／Ｆと、ＵＳＢホスト・コントローラモデル２２５のＵＳＢ＿Ｉ／Ｆとを接続し、ＵＳＢの通信を模擬する。
【００３５】
＜ＵＳＢデバイス・コントローラの実構成＞
次に、ＵＳＢデバイス・コントローラモデル２１５の実際のハードウェア構成と動作について説明する。
【００３６】
（Ａ）構成
図３は、ＵＳＢデバイス・コントローラモデル２１５の実際のハードウェアの構成図である。
【００３７】
このＵＳＢデバイス・コントローラ３１０は、ＵＳＢデバイス・コントローラモデル２１５の実ハードウェアであり、システム・バスＩ／Ｆ３１１、ＵＳＢエンジン３１２、ＵＳＢトランシーバ３１３、ＦＩＦＯ３１４、及びＶＢｕｓ管理部３１５を備えている。
【００３８】
システム・バスＩ／Ｆ３１１は、ＵＳＢデバイス・コントローラモデル２１５がアクセスするためインターフェースである。ＵＳＢエンジン３１２は、公知のＵＳＢ規格に準拠のＵＳＢプロトコルを解析し、ＵＳＢデバイスコントローラの機能処理を行う。ＵＳＢトランシーバ３１３は、公知のＵＳＢ規格に準拠したＵＳＢの通信における信号を受信送信を行うＵＳＢトランシーバである。図３中の「Ｄ＋」３１６、「Ｄ−」３１７は、ＵＳＢトランシーバ３１３における信号を伝えるデータ信号線である。
【００３９】
ＦＩＦＯ３１４は、ＵＳＢデータの送信、受信におけるＵＳＢパケットデータを一時的に保持する。ＶＢｕｓ管理部３１５は、公知のＵＳＢ規格に準拠したＵＳＢホストから供給される電圧、電流量を検知する。また、図３中の３１８は、ＵＳＢホストから供給される電力の伝送路ＶＢｕｓであり、３１９はＵＳＢホストからのＶＢｕｓ３１８の基準となるグランドである。
【００４０】
ＵＳＢホストからＶＢｕｓ３１８に電力が供給され、公知のＵＳＢ規格に準拠した一定の電圧であるとＶＢｕｓ管理部３１５で判断すると、ＵＳＢエンジン３１２に通知を行う。さらに、ＵＳＢトランシーバ３１３を用いてＵＳＢホストと初期化の処理を行い、ＵＳＢパケットデータの送受信を行う。
【００４１】
ＵＳＢトランシーバ３１３で受信したデータは、ＵＳＢエンジン３１２で解析され、ＦＩＦＯ３１４へデータを保持し、システムバスＩ／Ｆ３１１を介して不図示であるがＭＰＵへ通知を行い、次の適切な処理を待つ。また、ＭＰＵからシステムバスＩ／Ｆ３１１を介してＦＩＦＯ３１４へ送信するＵＳＢパケットデータが書き込まれる。そして、ＵＳＢエンジン３１２に送信の指示が来ると、ＵＳＢエンジン３１２は、ＦＩＦＯ３１４にあるＵＳＢパケットデータをＵＳＢトランシーバ３１３に送る。
【００４２】
ＵＳＢトランシーバ３１３は、公知のＵＳＢ規格に準拠して、信号送信の処理およびＵＳＢパケットデータのエンコードを行い「Ｄ＋」３１６、「Ｄ−」３１７の信号変化を所定の時間処理に合わせて行う。いわゆるシリアル通信をＵＳＢトランシーバ３１３で行う。
【００４３】
また、ＶＢｕｓ３１８の電力の状態、及び「Ｄ＋」３１６と「Ｄ−」３１７の信号の状態によって、ＵＳＢエンジン３１２は、リセット処理、サスペンド処理、及びレジューム処理を行う。さらに、ＵＳＢホストコントローラとＵＳＢデバイスコントローラで通信するための通信速度の決定も行う。これらについて、以下に説明を行う。公知のＵＳＢ規格では、ＵＳＢが通信を行うバス（以下ＵＳＢバス）では「Ｄ＋」３１６、「Ｄ−」３１７の信号状態、ＵＳＢバスのバス速度の組み合わせにおいてバス状態というものを定義している（ＵＳＢの仕様書参照）。
【００４４】
（Ｂ）リセット
「Ｄ＋」３１６、「Ｄ−」３１７の信号状態が共にＬｏｗであり、少なくとも１０ミリ以上続いた場合、ＵＳＢエンジン３１２はリセット処理を実施し、バスがリセット状態であることを認識する。
【００４５】
バス速度の設定はＵＳＢバスの状態がＲｅｓｅｔである前に、ＵＳＢデバイスコントローラ３１０が「Ｄ＋」３１６の電位を「Ｄ−」３１７より高くすることでバス速度がＦｕｌｌ  ＳｐｅｅｄのデバイスであることをＵＳＢホストコントローラに伝える。「Ｄ−」３１７の電位を「Ｄ＋」３１６より高くすることでバス速度がＬｏｗ  ＳｐｅｅｄのデバイスであることをＵＳＢホストコントローラに伝える。ＵＳＢホストコントローラがバス速度をＬｏｗ  ＳｐｅｅｄかＦｕｌｌ  Ｓｐｅｅｄにすべきかを決定した後、ＵＳＢホストコントローラはバス状態をリセット状態にする。
【００４６】
リセット状態にすると、ＵＳＢデバイスコントローラ３１０がＨｉｇｈ  Ｓｗｐｅｅｄのデバイスである場合、「Ｄ−」３１７の電位を高くし、同時に「Ｄ−」３１６の電位を０にした信号パルス（以下ＣｈｉｒｐＫという）を出す。これに対して、ＵＳＢホストコントローラがＨｉｇｈ  Ｓｐｅｅｄで通信可能な場合、「Ｄ＋」３１６の電位を高くし、同時に「Ｄ−」３１７の電位を０にする。そして、次に「Ｄ＋」３１６の電位を０にし、同時に「Ｄ−」３１７の電位を高くした信号状態（以下ＫＪ状態という）にする。
【００４７】
これを繰り返し、ＵＳＢホストコントローラがＵＳＢデバイス・コントローラ３１０にＨｉｇｈ  Ｓｐｅｅｄのバス速度で通信できることを伝える。そして、ＵＳＢホストコントローラとＵＳＢデバイスコントローラ３１０はリセット状態から脱け出し、以後、Ｈｉｇｈ  Ｓｐｅｅｄで通信を行う。ＣｈｉｒｐＫに対してＵＳＢホストコントローラがＫＪ状態の繰り返しを行わない場合、お互いの通信はＦｕｌｌ  Ｓｐｅｅｄで通信を行う。
【００４８】
（Ｃ）データ転送開始とエンコード
ＵＳＢパケットデータは、ＵＳＢバス状態がアイドル状態であるとき、ＳＹＮＣ信号が発信される。ＳＹＮＣ信号はＫＪ状態の繰り返しであり、Ｈｉｇｈ／Ｌｏｗ  Ｓｐｅｅｄのバス速度では、８ビット連続、Ｈｉｇｈ  Ｓｐｅｅｄでは１５回連続で発信した後、ＫＫ状態が発信される。
【００４９】
これに続きデータが遷移される。データはＮＲＺＩ（Ｎｏｎ−Ｒｅｔｕｒｎ  ｔｏ  Ｚｅｒｏ  Ｉｎｖｅｒｔｅｄ）  ｗｉｔｈ  ｂｉｔ  ｓｔｕｆｆｉｎｇで符号化されて発信される。最後にＥｎＤ−ｏｆ−Ｐａｃｋｅｔ信号が発信され、ＵＳＢデータパケットが送信し終えたことを示す。
【００５０】
この様にして、ＵＳＢデバイス・コントローラ３１０は「Ｄ＋」３１６、「Ｄ−」３１７の信号変化させることで、ＵＳＢホストコントローラとのバス状態の決定、バス速度の決定、データの送受信を行っている。
【００５１】
なお、ＵＳＢホスト・コントローラについて説明を行わなかったが、本発明における要点を抑えるにはＵＳＢデバイス・コントローラ３１０の「Ｄ＋」３１６、「Ｄ−」３１７の信号変化において説明がつく。また、ＵＳＢホスト・コントローラにおけるＶＢｕｓ３１８においては供給する側の振る舞いとして捉えることができるので説明を省く。
【００５２】
＜ＵＳＢ通信のモデル化＞
次に、ＵＳＢデバイス・コントローラモデル２１５、ＵＳＢホスト・コントローラモデル２２５、及びＵＳＢ通信経路モデル２３０の詳細なモデル化について説明する。
【００５３】
（Ａ）ＵＳＢ通信の各モデル
図４は、本実施の形態のハードウェア・シミュレータにおいて、ＵＳＢ通信に関わるコントローラおよび通信経路のモデルの要部を示すブロック図である。
【００５４】
本実施の形態のハードウェア・シミュレータは、ＵＳＢデバイス・システム部４１０とＵＳＢホスト・システム部４２０が、ＵＳＢ通信経路モデル４３０を介して接続されている。
【００５５】
ＵＳＢデバイス・システム部４１０は、ＵＳＢデバイス・コントローラモデル２１５におけるＵＳＢデバイス・コントローラ３１０が有するＵＳＢエンジン３１２とＵＳＢトランシーバ３１３をモデル化した部分である。そして、ＵＳＢデバイス・エンジンモデル４１１とＩ／Ｆ４１２を備えている。
【００５６】
ＵＳＢデバイス・エンジンモデル４１１は、ＵＳＢデバイス・コントローラ３１０のＵＳＢエンジン３１２の機能であるパケットの解釈を行い、ＶＢｕｓ管理部３１５で行っている機能であるＶＢｕｓが供給されたかどうかを検知する。Ｉ／Ｆ４１２は、ＵＳＢ通信経路モデル４３０に対して、ＵＳＢデバイス・エンジン・モデル４１０がバス状態の決定、バス速度の決定、データの送受信をイベントとして通知させるためのインターフェースである。
【００５７】
ＵＳＢホスト・システム部４２０は、ＵＳＢホスト・コントローラモデル２２５におけるＵＳＢホスト・コントローラが有するＵＳＢエンジン、ＵＳＢトランシーバをモデル化した部分である。そして、ＵＳＢホスト・エンジンモデル４２３とＩ／Ｆ４２２を備えている。ＵＳＢホスト・エンジンモデル４２３は、ＵＳＢホスト・コントローラのＵＳＢエンジンの機能であるパケットの解釈を行う機能とＶＢｕｓの供給を行う機能を有するモデルである。Ｉ／Ｆ４２２は、ＵＳＢ通信経路モデル４３０に対してＵＳＢホスト・エンジン・モデル４２０がバス状態の決定、バス速度の決定、データの送受信をイベントとして通知させるためのインターフェースである。
【００５８】
ＵＳＢ通信経路モデル４３０は、ＵＳＢデバイス・エンジン・モデル４１０とＵＳＢホスト・エンジン・モデル４２０とを接続するＵＳＢ通信経路モデルであり、バス状態の決定、バス速度の決定、及びデータの送受信を行う。これは、実際のＵＳＢデバイス・コントローラとホスト・コントローラのＵＳＢ通信経路モデル２３０に相当する。
【００５９】
（Ｂ）イベントの内容
上記イベントは、実際のハードウェアであるＵＳＢデバイス・コントローラとＵＳＢホスト・コントローラでのバス状態の決定、バス速度の決定、及びデータの送受信を抽象化したものである。以下、このイベントの内容について説明する。
【００６０】
図５は、イベント（ＵＳＢ  Ｅｖｅｎｔ  Ｐａｃｋｅｔ）の構造を示す図であり、図６は、イベントＩＤ（ＵＳＢ  Ｅｖｅｎｔ  ＩＤ）とイベントの内容を示す図である。
【００６１】
図５中の５０１は、ＵＳＢ  Ｅｖｅｎｔ  Ｐａｃｋｅｔ  ＩＤである。これは、実際のハードウェアであるＵＳＢデバイス・コントローラとＵＳＢホスト・コントローラで生成されてＵＳＢ通信経路モデル４３０に渡された際に、各々のＵＳＢ  Ｅｖｅｎｔ  Ｐａｃｋｅｔを識別するために発番されるＩＤである。
【００６２】
図５中の５０２は、図６に示すＥｖｅｎｔ  ＩＤと同値の、バス状態の決定、バス速度の決定、及びデータの送受信の振る舞いを決めるＥｖｅｎｔ  ＩＤである。５０３は、ＵＳＢデバイス・エンジン・モデル４１０もしくはＵＳＢホスト・エンジン・モデル４２０がＵＳＢ  Ｅｖｅｎｔ  ＰａｃｋｅｔをＵＳＢ通信経路モデル４３０に受け渡す際のシミュレーション上の時間である。この時間は、スケジューラ１０１から取得できるシミュレーション時間である。
【００６３】
５０４は、ＵＳＢデバイス・エンジン・モデル４１０もしくはＵＳＢホスト・エンジン・モデル４２０がＵＳＢ  Ｅｖｅｎｔ  ＰａｃｋｅｔをＵＳＢ通信経路モデル４３０から受信したシミュレーション時間である。５０５は、ＵＳＢ  Ｐａｃｋｅｔ  Ｄａｔａ５０６のサイズである。これは、ＵＳＢ  Ｅｖｅｎｔ  Ｐａｃｋｅｔ  ＩＤ５０１が６の値である図６のＴｒａｎｓｆｅｒ  ＵＳＢ  Ｐａｃｋｅｔ  Ｄａｔａの場合に関する。
【００６４】
５０６は、ＵＳＢ  Ｅｖｅｎｔ  Ｐａｃｋｅｔ  ＩＤ５０１が６の値である図６のＴｒａｎｓｆｅｒ  ＵＳＢ  Ｐａｃｋｅｔ  Ｄａｔａである場合に、送受信されるＵＳＢ  Ｐａｃｋｅｔ  Ｄａｔａである。
【００６５】
（Ｃ）イベント通知用のＩ／Ｆ
次に、ＵＳＢデバイス・コントローラ・モデル２１５がＦｕｌｌ  Ｓｐｅｅｄであることを要求するときに、ＵＳＢデバイス・エンジン・モデル４１１からＩ／Ｆ４１２にイベント発行の要求が来た場合のＩ／Ｆ４１２での処理について、図７を参照して説明する。
【００６６】
図７は、Ｒｅｑｕｅｓｔ  Ｆｕｌｌ  Ｓｐｅｅｄイベントの発行処理を示すフローチャートである。
【００６７】
Ｉ／Ｆ４１２は、イベント発行の要求が来ると、まずスケジューラ１０１からシミュレーション時間の取得を行う（Ｓ７０１）。そして、ＵＳＢ  Ｅｖｅｎｔ  Ｐａｃｋｅｔ５００のインスタンスを生成し、Ｅｖｅｎｔ  ＩＤ５０２に、図６から分かるようにｒｅｑｕｅｓｔ  Ｆｕｌｌ  ＳｐｅｅｄであるＥｖｅｎｔ  ＩＤ＝３を入力する。
【００６８】
そして、Ｓ７０１で取得したシミュレーション時間をＥｖｅｎｔ  ｉｓｓｕｅｄ  ｔｉｍｅ５０３に入力して（Ｓ７０２）、Ｓ７０２で作成したＵＳＢ  Ｅｖｅｎｔ  Ｐａｃｋｅｔ５００のインスタンスをＵＳＢ通信経路モデル４３０へ渡す（Ｓ７０３）。
【００６９】
なお、図７の例は、ＵＳＢデバイス・エンジン・モデル４１１からＩ／Ｆ４１２へのＥｖｅｎｔ発行処理であったが、ＵＳＢホスト・エンジン・モデル４２３からＩ／Ｆ４２２へのＥｖｅｎｔ発行処理も同様に行う。
【００７０】
また、Ｅｖｅｎｔ  ＩＤが他のＩＤの場合においても同様な処理を行う。Ｅｖｅｎｔ  ＩＤがＵＳＢ  Ｔｒａｎｓｆｅｒ  Ｐａｃｋｅｔ  Ｄａｔａの場合は、ＵＳＢデバイス・エンジン・モデル４１１からＩ／Ｆ４１２へ送信するＵＳＢ  Ｐａｃｋｅｔ  Ｄａｔａのインスタンスを受け取る。そして、ＵＳＢ  Ｅｖｅｎｔ  Ｐａｃｋｅｔ５００のＵＳＢ  Ｐａｃｋｅｔ  Ｄａｔａ５０６への入力とそのサイズを計算し、その計算結果をＵＳＢ  Ｐａｃｋｅｔ  Ｄａｔａ  Ｓｉｚｅ５０５に入力するだけでよい。
【００７１】
（Ｄ）ＵＳＢ通信経路モデルの処理
ＵＳＢデバイス・エンジン・モデル４１１からＩ／Ｆ４１２を介してＵＳＢ  Ｅｖｅｎｔ  Ｐａｃｋｅｔ５００のインスタンスをＵＳＢ通信経路モデル４３０が受け取る。このインスタンスを、Ｉ／Ｆ２２４を介してＵＳＢホスト・エンジン・モデル４２３へ渡す際のＵＳＢ通信経路モデル４３０の処理について、図８を用いて説明する。
【００７２】
図８は、ＵＳＢ通信経路モデルの処理を示すフローチャートである。
【００７３】
受信したＵＳＢ  Ｅｖｅｎｔ  Ｐａｃｋｅｔ５００のインスタンスに他のＵＳＢ  Ｅｖｅｎｔ  Ｐａｃｋｅｔ５００のインスタンスと異なるＩＤを付与する（Ｓ８０１）。続いて、前記インスタンスからＥｖｅｎｔ  ＩＤ５０２を取得し（Ｓ８０２）、Ｅｖｅｎｔ  ＩＤがＴｒａｎｓｆｅｒ  ＵＳＢ  Ｐａｃｋｅｔ  Ｄａｔａであるかどうかを判断する（Ｓ８０３）。
【００７４】
Ｔｒａｎｓｆｅｒ  ＵＳＢ  Ｐａｃｋｅｔ  Ｄａｔａでない場合には、実ハードウェアでも十分な時間を要していないはずであるので所定の時間をイベントの通知に要する時間とする（Ｓ８０４）。Ｔｒａｎｓｆｅｒ  ＵＳＢ  Ｐａｃｋｅｔ  Ｄａｔａである場合には、ＵＳＢ  Ｐａｃｋｅｔから実際に送信されるビット長をＢｉｔ  Ｓｔｕｆｆｉｎｇを含めた上で計算し、バス速度から転送に要する時間とする（Ｓ８０５）。
【００７５】
その後、Ｓ８０４、Ｓ８０５で計算されたイベント送信に要する時間にＵＳＢ  Ｅｖｅｎｔ  Ｐａｃｋｅｔ５００のインスタンスのＥｖｅｎｔ  ｉｓｓｕｅｄ  ｔｉｍｅ５０３を加えた時間をＥｖｅｎｔ  ｒｅｃｅｉｖｅｄ  ｔｉｍｅに入力する（Ｓ８０６）。また、Ｓ８０２で取得したＥｖｅｎｔ  ＩＤ５０２がバス速度を決定するＩＤであるかの判断を行い（Ｓ８０７）、バス速度を決定するＩＤであったらそのバス速度をＵＳＢ通信経路モデルで記憶させておく（Ｓ８０８）。
【００７６】
次のＳ８０９で、スケジューラ８０９からシミュレーション時間を取得し、取得した値がＳ８０８でセットしたＵＳＢ  Ｅｖｅｎｔ  Ｐａｃｋｅｔ５００のインスタンスのＥｖｅｎｔ  ｒｅｃｅｉｖｅｄ  ｔｉｍｅ５０４以上であるかの判断を行う（Ｓ８１０）。そして、Ｅｖｅｎｔ  ｒｅｃｅｉｖｅｄ  ｔｉｍｅ５０４以上でなかったら再度Ｓ８０９へ戻りシミュレーション時間の取得を行い、Ｓ８１０の判断を行う。Ｓ８０８でセットしたＥｖｅｎｔ  ｒｅｃｅｉｖｅｄ  ｔｉｍｅ５０４以上であれば、ＵＳＢ  Ｅｖｅｎｔ  Ｐａｃｋｅｔ５００のインスタンスをＩ／Ｆ２２４へ送信する（Ｓ８１１）。
【００７７】
Ｉ／Ｆ２２４でＵＳＢ通信経路モデル４３０からＵＳＢ  Ｅｖｅｎｔ  Ｐａｃｋｅｔ５００のインスタンスを受信したら、ＵＳＢホスト・エンジン・モデルへ何のイベントを受信したかを通知する。
【００７８】
なお、モデル２１１からＩ／Ｆ２１４を介してＵＳＢ  Ｅｖｅｎｔ  Ｐａｃｋｅｔ５００のインスタンスをＵＳＢ通信経路モデル４３０が受け取り、モデル２２１へＩ／Ｆ２２４を介して渡す際のＵＳＢ通信経路モデル４３０の処理について説明した。当然この逆も容易に実施できることは言うまでも無い。
【００７９】
また、Ｉ／Ｆ４１２、４２２からのＵＳＢデバイス・エンジン・モデル４１１、ＵＳＢホスト・コントローラ・モデル４２３への通知は、それぞれのイベントごとにＡＰＩで行う。
【００８０】
このように本実施の形態では、物理層以下の信号の送受信を、イベントという抽象的なデータのやりとりで行うようにした。この構成により、ＵＳＢデバイスコントローラモデル２１５及びＵＳＢホストコントローラモデル２２５を備えるＵＳＢ機器のシミュレーションが、ＵＳＢの信号処理まで模擬したモデルのシミュレーションに比べて処理の負荷を軽くすることができる。
【００８１】
なお、本実施の形態では、図６に示すようなイベントのみを説明したが、それ以外のＵＳＢのイベントにおいても容易に実施できることは言うまでも無い。
【００８２】
＜第１の実施の形態の利点＞
第１の実施の形態に係るハードウェア・シミュレータでは、実際のハードウェアから成るＵＳＢデバイス・コントローラ及びＵＳＢホスト・コントローラでの、バス状態の決定、バス速度の決定、及びデータの送受信を抽象化したイベントを生成する（図５）。そして、このイベントの送受信を、ＵＳＢ機器の通信経路を模擬するモデル（ＵＳＢ通信経路モデル４３０）として備える（図８）。これにより、ＵＳＢデバイス・コントローラとＵＳＢホスト・コントローラでの処理を簡易化することができるので、シミュレータ上での処理負荷が軽減する。
【００８３】
したがって、ＵＳＢホスト・コントローラモデル２２５およびＵＳＢデバイス・コントローラモデル２１５を利用して、ソフトウェア開発を行う際に、ソフトウェア開発には必要としない計算処理の実行時間を抑えることができる。即ち、シミュレータ上での実行速度を低下させることなくソフトウェア開発を効率よく実施することが可能になる。
【００８４】
また、イベントの種類（図６）に応じて通信における遅延時間を変化させる。即ち、イベントＩＤを参照して遅延時間の取り扱いを決定する（図８のステップＳ８０３〜Ｓ８０６）。これにより、通信時間の模擬を精度良く行うことができる。
［第２の実施の形態］
第２の実施の形態では、無線通信機能のコントローラを備える無線通信システムにおけるハードウェア・シミュレータについて説明する。ハードウェア・シミュレータのプラットフォームは、上記図１に示したものと同様である。なお、本実施の形態では、例えば３台の無線通信システムが無線通信を行うシステムのシミュレータについて説明する。
【００８５】
不図示であるが、本実施の形態の無線通信システムのシミュレータは、命令レベルを模擬するＭＰＵモデルと、無線通信システムを制御するプログラムを格納するＲＯＭモデルと、一次作業領域として使用するＲＡＭモデルを備える。さらにその他に、外部の無線機器と通信するための無線通信制御を行う無線通信コントローラモデルと、これらのモデルがお互いにアクセスするためのシステム・バスモデルを備えている。
【００８６】
＜無線通信コントローラの構成＞
次に、無線通信制御を行う無線通信コントローラの実際のハードウェア構成について説明する。
【００８７】
図９は、本発明の第２の実施の形態に係る無線通信コントローラの実際のハードウェア構成を示すブロック図である。
【００８８】
この無線通信コントローラ９００は、システム・バスＩ／Ｆ９０１、コントロール部９０２、ＭＡＣ部９０３、ＰＨＹ部９０４、及びＲＦ部９０５を備えている。
【００８９】
システム・バスＩ／Ｆ９０１は、システム・バスを介してシステム上の他の周辺機器とお互いにアクセスするためのインターフェースである。コントロール部９０２は、無線通信コントローラの無線通信におけるソフトウェアに対する制御インターフェースとなる機能を有する。
【００９０】
ＭＡＣ部９０３は、無線の規格に準拠したフレーム構造の作成、解析を行うほか、衝突回避機能による無線チャンネル・アクセス制御、及び基地局と端末局間のマネージメントを行う。そして、ＰＨＹ部９０４はフレームデータの変調と復調を行い、ＲＦ部９０５は無線発信、受信を行う。
【００９１】
データ送信時では、コントロール部９０２は、システムバスＩ／Ｆ９０１を介して送信データを一旦受信し、ＭＡＣ部９０３へ送信データを渡す。ＭＡＣ部９０３は、送信データに基づいて無線の規格のフレーム構造を一つもしくは複数作成し、該フレームをＰＨＹ部９０４へ渡す。ＰＨＹ部９０４はフレームに変調を行う。そして、フレームは、所定の周波数帯域をもってＲＦ部９０５から発信される。
【００９２】
データ受信時では、ＲＦ部９０５はデータを受信し、ＰＨＹ部９０４は、その受信データを復調しフレームを作成する。そして、ＭＡＣ部９０３は、該フレームの解析を行い、コントローラ部９０２へデータを渡す。無線通信コントローラを制御するプログラムが、そのデータを受け取り処理する。
【００９３】
＜無線通信コントローラのモデル化＞
次に、上記無線通信コントローラ９００を模擬するモデル化について図１０を参照して説明する。
【００９４】
図１０は、第２の実施の形態に係るハードウェア・シミュレータにおいて、無線通信コントローラおよび通信経路のモデルの要部を示すブロック図である。
【００９５】
本実施の形態に係るハードウェア・シミュレータは、図１０に示すように、３台の無線通信コントローラモデル１０１０、１０２０、１０３０が無線通信経路モデル１０４０を介して接続されている。
【００９６】
図１０に示す無線通信コントローラモデル１０１０、１０２０、１０３０は、実際のハードウェアである無線通信コントローラ９００のモデルのＭＡＣ部以下を明示した無線通信コントローラ部のモデルである。なお、図１０には、システムバスＩ／Ｆ９０１、コントロール部９０２に相当する部分は不図示であるが、無線通信コントローラ９００のモデルとして、システムバスＩ／Ｆ９０１及びコントロール部９０２が備える機能を模擬するものである。
【００９７】
そして、無線通信コントローラモデル１０１０、１０２０、１０３０は、それぞれＭＡＣ部モデル１０１１、１０２１、１０３１と、ＰＨＹ＿Ｉ／Ｆ部１０１２、１０２２、１０３２を備えている。
【００９８】
ＭＡＣ部モデル１０１１、１０２１、１０３１は、ＭＡＣ部９０３に相当する機能を備えるモデルである。ＰＨＹ＿Ｉ／Ｆ部１０１２、１０２２、１０３２は、ＭＡＣ部１０１１、１０２１、１０３１が作成したフレームデータを受けてフレームパケットを作成する。さらに、フレームパケットを受信したら解析を行いフレームデータをＭＡＣ部１０１１、１０２１、１０３１へ送る機能を有する。
【００９９】
無線通信経路モデル１０４０は、ＰＨＹ＿Ｉ／Ｆ部１０１２、１０２２、１０３２が送信するフレームパケットを送信したＰＨＹ＿Ｉ／Ｆ部以外のＰＨＹ＿Ｉ／Ｆ部へ、実際のＲＦ部が発信する時間分遅延した後に送信する機能を有する。
【０１００】
＜フレームパケットの構造＞
次に、ＰＨＹ部  Ｉ／Ｆ部１０１２、１０２２、１０３２で作成、解析するフレームパケットの構造について、図１１を参照して説明する。
【０１０１】
図１１は、第２の実施の形態に係るフレームパケットの構造を示す図である。
【０１０２】
第２の実施の形態に係るフレームパケットは、「Ｆｒａｍｅ  ＩＤ」１１０１、「Ｓｈｉｆｔ  Ｋｅｙｉｎｇ  Ｔｙｐｅ」１１０２、「Ｆｒｅｑｕｅｎｃｙ  Ｓｐｅｃｔｒｕｍ」１１０３、及び「Ｆｒａｍｅ  Ｓｔａｔｅ」１１０４、といった各データを備えている。さらに、「Ｆｒａｍｅ  Ｉｓｓｕｅｄ  Ｔｉｍｅ」１１０５、「Ｆｒａｍｅ  Ｉｓｓｕｅｄ  Ｔｉｍｅ」１１０６、「Ｄａｔａ  Ｓｉｚｅ」１１０７、及び「Ｆｒａｍｅ  Ｄａｔａ」１１０８、といった各データを備えている。
【０１０３】
「Ｆｒａｍｅ  ＩＤ」１１０１は、無線通信経路モデル１０４０で発番されるフレームパケットを識別するためのＩＤである。「Ｓｈｉｆｔ  Ｋｅｙｉｎｇ  Ｔｙｐｅ」１１０２は、ＰＨＹ＿Ｉ／Ｆ部１０１２、１０２２、１０３２の変調方式を示すデータである。「Ｆｒｅｑｕｅｎｃｙ  Ｓｐｅｃｔｒｕｍ」１１０３は、ＰＨＹ＿Ｉ／Ｆ部１０１２、１０２２、１０３２で変調後のＲＦで発信させる周波数帯域を示すデータである。
【０１０４】
「Ｆｒａｍｅ  Ｓｔａｔｅ」１１０４は、フレームパケットが異常であるか正常であるかの状態を示すデータであり、「Ｆｒａｍｅ  Ｓｔａｔｅ」１１０４は、実際に物理的に電波干渉を起こしフレームの復調ができない状態を示すときに使用する。
【０１０５】
「Ｆｒａｍｅ  Ｉｓｓｕｅｄ  Ｔｉｍｅ」１１０５は、フレームをＰＨＹ＿Ｉ／Ｆ部１０１２、１０２２、１０３２から無線通信経路モデル１０４０へ送信するときのシミュレーション時間を示すデータである。「Ｆｒａｍｅ  Ｉｓｓｕｅｄ  Ｔｉｍｅ」１１０６は、無線経路モデル１０４０からＰＨＹ＿Ｉ／Ｆ部１０１２、１０２２、１０３２へフレームパケットを送信するときのシミュレーション時間を示すデータである。
【０１０６】
「Ｄａｔａ  Ｓｉｚｅ」１１０７は、ＭＡＣ部１０１１、１０２１、１０３１が生成したフレームデータのサイズを示すデータであり、「Ｆｒａｍｅ  Ｄａｔａ」１１０８は、ＭＡＣ部１０１１、１０２１、１０３１が生成したフレームデータである。
【０１０７】
＜第２の実施の形態の利点＞
第２の実施の形態に係るハードウェア・シミュレータでは、実際のハードウェアから成る無線通信コントローラ９００のＭＡＣ部で生成したフレームを、フレームパケット（図１１）として取り扱う。そして、このフレームパケットの送受信を、無線通信機器の無線通信経路を模擬するモデル（無線通信経路モデル１０４０）として備える。
【０１０８】
これにより、無線通信コントローラのＰＨＹ部９０４及びＲＦ部９０５の処理を簡略化することができ、シミュレータ上での実行速度を高めることができる。しかも、ＰＨＹ部９０４の上位、つまりシステムバスＩ／Ｆ９０１、コントロール部９０２、及びＭＡＣ部９０３では、実際のハードウェアと同等のモデルを備えるシミュレータとなる。したがって、ハードウェアとソフトウェアの協調開発において、無線通信機器のハードウェアの機能開発とその制御ソフトウェアの開発を効率よく行うことが可能になる。
【０１０９】
本実施の形態では、無線機能は公知の規格であるＩＥＥＥ８０２．１１ｂに準じるが、その他の無線規格を適用することは難しくない。また、本実施の形態では、３台のシステムで説明をしたが、その台数に本発明のポイントは無く、その他の複数台のシステムにおいても成り立つ。
【０１１０】
なお、本発明の目的は、前述した各実施の形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体をシステム或いは装置に供給し、そのシステム或いは装置のコンピュータが前記プログラムコードを読み出し実行することによっても達成される。
【０１１１】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した各実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１１２】
また、プログラムコードを供給するための記憶媒体としては、例えば次のようなものが挙げられる。即ち、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、ＣＤＲＯＭ、ＣＤＲ、ＣＤＲＷ、ＤＶＤＲＯＭ、ＤＶＤＲＡＭ、ＤＶＤＲＷ、ＤＶ「Ｄ＋」ＲＷ等の光ディスク、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。または、プログラムコードをネットワークを介してダウンロードしてもよい。
【０１１３】
また、本発明は、コンピュータが読み出したプログラムコードを実行することにより、前述した各実施の形態の機能が実現されるだけではない。そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した各実施の形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【０１１４】
【図１】第１の実施の形態に係るハードウェア・シミュレータのプラットフォームの構成を示すブロック図である。
【図２】第１の実施の形態に係るハードウェア・シミュレータの全体構成を示すブロック図である。
【図３】ＵＳＢデバイス・コントローラモデルの実際のハードウェアの構成図である。
【図４】実施の形態のハードウェア・シミュレータにおいて、ＵＳＢ通信に関わるコントローラおよび通信経路のモデルの要部を示すブロック図である。
【図５】イベントの構造を示す図である。
【図６】イベントＩＤとイベントの内容を示す図である。
【図７】Ｒｅｑｕｅｓｔ  Ｆｕｌｌ  Ｓｐｅｅｄイベントの発行処理を示すフローチャートである。
【図８】ＵＳＢ通信経路モデルの処理を示すフローチャートである。
【図９】第２の実施の形態に係る無線通信コントローラの実際のハードウェア構成を示すブロック図である。
【図１０】第２の実施の形態に係るハードウェア・シミュレータにおいて、無線通信コントローラおよび通信経路のモデルの要部を示すブロック図である。
【図１１】第２の実施の形態に係るフレームパケットの構造を示す図である。
【図１２】第１及び第２の実施の形態に係るハードウェア・シミュレータを実現するコンピュータの概略の機能を示すブロック図である。
【符号の説明】
【０１１５】
２３０  ＵＳＢ通信経路モデル
４１０  ＵＳＢデバイス・システム部
４２０  ＵＳＢホスト・システム部
１０１０、１０２０、１０３０  無線通信コントローラモデル
１０４０  無線通信経路モデル
【図１】
2008033794.tif 000003
【図２】
2008033794.tif 000004
【図３】
2008033794.tif 000005
【図４】
2008033794.tif 000006
【図５】
2008033794.tif 000007
【図６】
2008033794.tif 000008
【図７】
2008033794.tif 000009
【図８】
2008033794.tif 000010
【図９】
2008033794.tif 000011
【図１０】
2008033794.tif 000012
【図１１】
2008033794.tif 000013
【図１２】
2008033794.tif 000014