(57)【特許請求の範囲】
【請求項１】
信号処理部を備えるベースモジュールと、上記ベースモジュールと結合して特定の機能を果たす拡張モジュールと、を有し、上記ベースモジュールに上記拡張モジュールを少なくとも１つ結合してなる電子回路の構成を示す情報を作成する回路情報作成装置であって、
上記ベースモジュールと上記拡張モジュールの結合状態を定義する配線情報に基づいて上記ベースモジュールと上記拡張モジュールの間の配線を切り換えるスイッチング手段と、
上記ベースモジュールに結合されている上記拡張モジュールの識別情報を取得するアドレス取得手段と、
上記配線情報を取得する配線情報取得手段と、
上記拡張モジュールを動作させるファームウェアを取得するファームウェア取得手段と、
上記識別情報に基づいて上記拡張モジュールごとの回路構成情報を特定し、該回路構成情報に基づいて上記配線情報の一部を書き換える配線情報書換手段と、
上記ベースモジュールに結合されている上記拡張モジュールの上記回路構成情報および書き換えられた上記配線情報に基づいて、上記電子回路の構成を表す回路図の基になる回路情報を作成する回路情報作成手段と、
書き換えられた上記配線情報に基づいて、上記取得されたファームウェアに含まれている上記拡張モジュールと上記ベースモジュールとの配線に係る定義情報を書き換えて、新たなファームウェアを作成するファームウェア作成手段と、
を有する回路情報作成装置。
【請求項２】
上記スイッチング手段は、
上記ベースモジュールと上記拡張モジュールを接続する接続手段と、
上記接続手段を有効または無効にする接続状態制御手段と、を有する、
請求項１記載の回路情報作成装置。
【請求項３】
上記接続手段は、上記ベースモジュールと上記拡張モジュールを共通バスで接続する有線通信回線である、
請求項２記載の回路情報作成装置。
【請求項４】
上記接続手段は、上記ベースモジュールと上記拡張モジュールを無線チャネルで接続する無線通信回線である、
請求項２記載の回路情報作成装置。
【請求項５】
上記拡張モジュールを結合させた上記ベースモジュールを複数接続して相互に連動させ特定の機能を果たす上記電子回路の構成を示す情報を作成する、
請求項１記載の回路情報作成装置。
【請求項６】
ベースモジュールと拡張モジュールを結合してなる電子回路と、上記電子回路と通信ネットワークを介して接続されるサーバーと、を備える回路情報作成システムであって、
請求項１に記載の上記スイッチング手段と、上記アドレス取得手段と、上記配線情報取得手段は、上記ベースモジュールと上記拡張モジュールにおいて構成されるハードウェア側に配置され、
請求項１に記載の上記ファームウェア取得手段と、上記配線情報書換手段と、上記回路情報作成手段と、上記ファームウェア作成手段は、上記サーバー側に配置されている、
回路情報作成システム。
【請求項７】
信号処理部を備えるベースモジュールと、上記ベースモジュールと結合して特定の機能を果たす拡張モジュールと、を有し、上記ベースモジュールに上記拡張モジュールを少なくとも１つ結合してなる電子回路の構成を示す情報を作成するための回路情報作成プログラムであって、
上記信号処理部を、
上記ベースモジュールと上記拡張モジュールの結合状態を定義する配線情報に基づいて上記ベースモジュールと上記拡張モジュールの間の配線を切り換えるスイッチング手段、
上記ベースモジュールに結合されている上記拡張モジュールの識別情報を取得するアドレス取得手段、
上記配線情報を取得する配線情報取得手段、
上記拡張モジュールを動作させるファームウェアを取得するファームウェア取得手段、
上記識別情報に基づいて上記拡張モジュールごとの回路構成情報を特定し、該回路構成情報に基づいて上記配線情報の一部を書き換える配線情報書換手段、
上記ベースモジュールに結合されている上記拡張モジュールの上記回路構成情報および書き換えられた上記配線情報に基づいて、上記電子回路の構成を表す回路図の基になる回路情報を作成する回路情報作成手段、
書き換えられた上記配線情報に基づいて、上記取得されたファームウェアに含まれている上記拡張モジュールと上記ベースモジュールとの配線に係る定義情報を書き換えて、新たなファームウェアを作成するファームウェア作成手段、
として機能させるための回路情報作成プログラム。
【請求項８】
信号処理部を備えるベースモジュールと拡張モジュールとを結合してなる電子回路と、上記電子回路と通信ネットワークを介して接続されるサーバーと、において実行される回路情報作成プログラムであって、
上記信号処理部を、
上記ベースモジュールと上記拡張モジュールの結合状態を定義する配線情報に基づいて上記ベースモジュールと上記拡張モジュールの間の配線を切り換えるスイッチング手段、
上記ベースモジュールに結合されている上記拡張モジュールの識別情報を取得するアドレス取得手段、
上記配線情報を取得する配線情報取得手段、として機能させ、
上記サーバーを、
上記拡張モジュールを動作させるファームウェアを取得するファームウェア取得手段、
上記識別情報に基づいて上記拡張モジュールごとの回路構成情報を特定し、該回路構成情報に基づいて上記配線情報の一部を書き換える配線情報書換手段、
上記ベースモジュールに結合されている上記拡張モジュールの上記回路構成情報および書き換えられた上記配線情報に基づいて、上記電子回路の構成を表す回路図の基になる回路情報を作成する回路情報作成手段、
書き換えられた上記配線情報に基づいて、上記取得されたファームウェアに含まれている上記拡張モジュールと上記ベースモジュールとの配線に係る定義情報を書き換えて、新たなファームウェアを作成するファームウェア作成手段、
として機能させるための回路情報作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、試作した電子回路の量産に用いる情報を自動的に作成する回路情報作成装置、回路情報作成システム、および回路情報作成プログラムに関する。
【背景技術】
【０００２】
マイクロコンピュータを用いて特定の機能を果たす電子回路を開発するとき、当該機能を果たすため回路構成を事前に試作して、動作確認を行いながら、適切な回路構成を構築する。この試作段階において、作業を支援するツールとして、例えば、マイクロコンピュータなどの信号処理部を備えたベースボードと、ベースボードに結合して特定機能を果たす拡張モジュールと、を備えた試作ツールが知られている。
【０００３】
この試作ツールは、ベースボードに搭載されているマイクロコンピュータ（信号処理部）と拡張モジュールとの接続にワイヤーやコネクタを用いる。ワイヤーを用いる場合は、ベースボードに備わるマイクロコンピュータの個々の端子にワイヤーの一端をハンダ付けし、ワイヤーの他端を拡張モジュールの端子にハンダ付けする。コネクタを用いる場合は、ベースボードと拡張モジュールにコネクタ用の端子を配置し、互いのコネクタ同士を接続する。
【０００４】
電子回路の試作作業は、様々な拡張ボードを組み合わせて動作確認をし、所望する特定の機能を果たす回路構成を確認する作業になる。したがって、機能確認の段階で拡張モジュールが取り替えられることもあるから、拡張ボードとベースボードとの接続を容易に変更できるようにすることが望ましい。特開平０５−１５２７０５号公報（以下、特許文献１という）には、ベースボードと拡張モジュールの着脱を容易にできる結合構造の例が記載されている。特許文献１は、互いに平行に重なった接続ボードと、かかる接続ボードに対して直交する方向に配置された複数の部品ボードとを、複数の接触素子によって結合させる構造を記載している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０５−１５２７０５号公報
【０００６】
特許文献１に記載されている構造を使用して、ベースボードと拡張モジュールを結合しても、電子回路を効率良く試作するには更なる課題がある。すなわち、試作された電子回路と同じ構成の電子回路を量産するには、当該電子回路を不要な部品の無い可及的に最少構成にした、量産用の回路図が必要になる。また、製造した電子回路を動作させるためのファームウェアも必要になる。しかしながら、従来の試作ツールは、試作後の電子回路から、当該電子回路の回路図やファームウェアを作成できるものではなく、量産用の回路図やその回路図に合わせたファームウェアを作成できるものでもなかった。また、従来の試作ツールでは、電子回路の試作後において、多くの不要なスイッチングなどの部品が付いたままになる。さらに、従来の試作ツールでは、試作後の工程において必要とされる様々な情報は、別途作成する必要があった。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、試作した電子回路の、不要な部品が無い最少構成にした量産用の回路図を作成するために用いる回路図情報を自動的に作成することができ、当該電子回路の最小構成の回路図に用いるファームウェアも自動的に作成できる回路情報作成装置、回路情報作成システム、および回路情報作成プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一の実施形態は、信号処理部を備えるベースモジュールと、上記ベースモジュールと結合して特定の機能を果たす拡張モジュールと、を有し、上記ベースモジュールに上記拡張モジュールを少なくとも１つ結合してなる電子回路の構成を示す情報を作成する回路情報作成装置である。かかる回路情報作成装置は、上記ベースモジュールと上記拡張モジュールの結合を定義する配線情報に基づいて上記ベースモジュールと上記拡張モジュールの間の配線を切り換えるスイッチング手段と、上記ベースモジュールに結合されている上記拡張モジュールの識別情報を取得するアドレス取得手段と、上記配線情報を取得する配線情報取得手段と、上記拡張モジュールを動作させるファームウェアを取得するファームウェア取得手段と、上記識別情報に基づいて上記拡張モジュールごとの回路構成情報を特定し、該回路構成情報に基づいて上記配線情報の一部を書き換える配線情報書換手段と、上記ベースモジュールに結合されている上記拡張モジュールの上記回路構成情報および書き換えられた上記配線情報に基づいて、上記電子回路の構成を表す回路図の基になる回路情報を作成する回路情報作成手段と、書き換えられた上記配線情報に基づいて、上記取得されたファームウェアに含まれている上記拡張モジュールと上記ベースモジュールとの配線に係る定義情報を書き換えて、新たなファームウェアを作成するファームウェア作成手段と、を有する。
【図面の簡単な説明】
【０００９】
【図１】本発明に係る回路情報作成プログラムを実行するハードウェアの構成の例を示すブロック図である。
【図２】上記ハードウェア構成の別の例を示すブロック図である。
【図３】上記ハードウェア構成のさらに別の例を示すブロック図である。
【図４】上記のハードウェア構成のいずれかを用いて電子回路を試作する手順の例を示すフローチャートである。
【図５】本発明に係る回路情報作成プログラムを実行するハードウェアの機能構成の例を示す機能ブロック図である。
【図６】上記回路情報作成プログラムを実行するときに用いられるファームウェアの一部分の例を示す図である。
【図７】上記回路情報生成プログラムの機能構成の例を示す機能ブロック図である。
【図８】上記回路情報生成プログラムの動作の流れの例を示すフローチャートである。
【図９】上記回路情報生成プログラムによって生成される回路図データを例示するＣＡＤデータの例である。
【図１０】上記回路情報生成プログラムが使用する定義情報の例を示す図である。
【図１１】上記回路情報生成プログラムを実行するときに用いられるファームウェアの一部分の詳細な例を示す図である。
【図１２】上記回路情報生成プログラムが生成する特定ファームウェアの例を示す図である。
【図１３】上記回路情報生成プログラムの機能構成の別の例を示す機能ブロック図である。
【図１４】上記回路情報生成プログラムの動作の流れの別の例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
本発明を適用した実施形態について、図面を参照しながら説明する。以下は、ベースモジュールの信号処理部が回路情報作成プログラムを実行することで回路情報作成装置として動作する試作ツールの実施形態について最初に説明する。次に、試作ツールとサーバーがそれぞれのプログラムを実行して回路情報を作成する回路情報作成システムの実施形態について説明する。
●ハードウェアの構成１
まず、本実施形態に係る回路情報作成プログラムを実行するハードウェアの構成の例について説明する。図１に示す回路情報作成装置としての試作ツール１０００は、電子回路の試作用ツールとして用いられるハードウェア資源である。本実施形態において、回路情報作成プログラムは、試作ツール１０００において実行されるコンピュータソフトウェアである。
【００１１】
試作ツール１０００は、信号処理部を備えるベースモジュール１０と、特定機能部であるデバイス２１を備える拡張モジュール２０と、ベースモジュール１０と拡張モジュール２０を結合する配線を切り換える配線モジュール３０と、を有してなる。
【００１２】
ベースモジュール１０は、信号処理部であるＣＰＵ１１と、ＣＰＵ１１の各端子に対する配線を切り換えるスイッチング手段の一部を構成する第１信号変換部１２と、を有してなる。
【００１３】
ＣＰＵ１１の内部には記憶手段としてのメモリ１１１が搭載されている。メモリ１１１には、ＣＰＵ１１が実行する回路情報作成プログラムや、回路情報作成プログラムが用いる定義を含むデータ群等が記憶されている。また、メモリ１１１には、ＣＰＵ１１に接続される拡張モジュールを含む各種の外部装置を動作させるためのファームウェアが記憶されている。このファームウェアは、ＣＰＵ１１のプログラムライブラリの一部であって、後述のように、回路情報作成プログラムの実行によって書き換えられることになる。書き換えられた新たなファームウェアもメモリ１１１に格納される。
【００１４】
なお、回路情報作成プログラムは、ＣＰＵ１１の内部のメモリ１１１ではなく、外部の記憶手段に保存されていてもよい。また、回路情報作成プログラムは、インターネットに接続されているＷｅｂサーバー上で実行されるソフトウェアとして構成されていてもよい。さらに、回路情報作成プログラムの実行に用いられるデータや、回路情報作成プログラムの実行によって作成される新たなファームウェアやデータは、Ｗｅｂサーバー上に保存されていてもよい。すなわち、本実施形態に係る回路情報作成プログラムは、その処理や、当該処理の準備に要する処理を実行可能なハードウェア資源と協働するソフトウェアによって構成されていればよい。本明細書における実施形態の説明は、これらを前提とする。
【００１５】
試作ツール１０００は、ベースモジュール１０と拡張モジュール２０の配線を切り換えて、特定の機能を果たす電子回路を構成する。より具体的には、試作ツール１０００は、ベースモジュール１０のＣＰＵ１１と、拡張モジュール２０のデバイス２１との配線を配線モジュール３０によって切り換えて、所望する信号処理や制御動作をする電子回路を構成することで、所望の電子回路を試作する支援をする装置である。また、試作ツール１０００は、後述のように、試作した電子回路の構成を示す情報（回路図情報や新たなファームウェア）を作成する回路情報作成装置としての役割を有する。
【００１６】
第１信号変換部１２は、例えば、パラレル−シリアル変換機能、または、シリアル−パラレル変換機能を有し、回路情報作成プログラムを実行したＣＰＵ１１によって動作を制御される。第１信号変換部１２は、ＣＰＵ１１の各端子から出力された各種のパラレル信号をパラレル−シリアル変換処理してシリアル信号を生成し、該生成されたシリアル信号を拡張モジュール２０に出力する。また、第１信号変換部１２は、拡張モジュール２０から出力されたパラレル信号をパラレル‐シリアル変換処理してシリアル信号を生成し、該生成されたシリアル信号を信号変換部１２でシリアル信号をパラレル信号にしてＣＰＵ１１に入力する。あるいは、ＣＰＵ１１は、信号変換部１２を介さずにシリアル信号で試作ツールを動作させることもできる。この場合、ＣＰＵ１１は、拡張モジュール２０の入出力端子に対する端子の割り当ての処理を後で行えばよい。
【００１７】
拡張モジュール２０は、回路情報作成プログラムを実行したＣＰＵ１１の制御に基づいて特定の機能の一部または全部を果たすように動作するデバイス２１と、スイッチング手段の一部を構成する第２信号変換部２２と、を有してなる。それぞれの拡張モジュール２０は、識別情報としてアドレス情報（モジュールアドレス）を保有する。かかるモジュールアドレスは、ＣＰＵ１１の制御に基づいて拡張モジュール２０からＣＰＵ１１に送信（出力）される。モジュールアドレスは、一般には、プログラム動作での初期化の際や、個々の拡張モジュール２０の使用の際に、ＣＰＵ１１によって受信（取得）される。モジュールアドレスが拡張モジュール２０からＣＰＵ１１に送信される他のタイミングについては後述する。デバイス２１は、ＣＰＵ１１の制御に応じて所定の動作や処理を実行する。また、デバイス２１は、かかる所定の動作や処理によって得た情報を、ＣＰＵ１１に出力する。
【００１８】
第２信号変換部２２も、例えば、パラレル−シリアル変換機能、または、シリアル−パラレル変換機能を有し、回路情報作成プログラムを実行したＣＰＵ１１によって動作を制御される。第２信号変換部２２は、デバイス２１の各端子から出力された各種のパラレル信号をパラレル−シリアル変換処理してシリアル信号を生成し、該生成されたシリアル信号をベースモジュール１０に出力する。また、第２信号変換部２２は、ベースモジュール１０からのシリアル信号をシリアル−パラレル変換処理してパラレル信号を生成し、該生成されたパラレル信号をデバイス２１に入力する。
【００１９】
配線モジュール３０は、通信手段であって、回路情報作成プログラムを実行したＣＰＵ１１によって制御される。配線モジュール３０は、ＣＰＵ１１の各端子と各デバイス２１の各端子とを接続する配線を、配線情報に基づいて動的に切り換える。なお、配線情報とは、ベースモジュール１０と拡張モジュール２０の結合状態を定義する情報である。より具体的には、配線情報は、ベースモジュールの端子と拡張モジュールに搭載されたデバイス類の端子を定義し、また、これら端子間の結合状態を定義する情報である。
【００２０】
図１では、配線モジュール３０は、シリアル通信を行う回路として例示されている。なお、試作ツール１０００における配線モジュール３０は、この例に限られない。配線モジュール３０は、有線通信回線である高速通信バスを用いて構成されることができる。あるいは、配線モジュール３０は、無線チャネルおよび無線通信回線を用いて構成されることができる。
【００２１】
図１は、ベースモジュール１０に３つの拡張モジュール２０が接続されている状態を例示しているが、ベースモジュール１０に接続される拡張モジュール２０の数は任意である。ベースモジュール１０の仕様によっては、拡張モジュール２０の接続数は３つよりも多くなる。電子回路を試作するには、少なくとも１つの拡張モジュール２０をベースモジュール１０に接続すればよい。
【００２２】
なお、本実施形態に係る回路情報作成プログラムを実行することができる回路情報作成装置のハードウェア構成は、図１に例示した試作ツール１０００に限られない。回路情報作成装置のハードウェアは、少なくとも、「信号処理部」と、信号処理部と結合して協働し特定機能を果たす「特定機能部」と、を有していればよい。また、回路情報作成装置のハードウェアは、信号処理部と特定機能部との結合を回路情報作成プログラムの命令に応じて動的に変化させる機能や、信号処理部と特定機能部との接続（結線）状態を切り替える機能を備える「配線切換部」を有していればよい。回路情報作成装置のハードウェアは、上に示した種々の機能を発揮するための処理を実行できるものであればよい。
【００２３】
●ハードウェアの構成２
次に、回路情報作成装置としての試作ツールのハードウェア構成の別の例について説明する。図２Ａに示す試作ツール１００１は、複数のベースモジュール１０１と、各ベースモジュール１０１に個別に接続する拡張モジュール２０１と、を有してなる。拡張モジュール２０１は、それぞれ独自のデバイス２１を備えている。各デバイス２１（デバイスＡ、デバイスＢ、及びデバイスＣ）は、それぞれの信号処理や動作を制御するベースモジュール１０１のＣＰＵ１１と１対１で配線されて結合されている。その上で、各デバイス２１（デバイスＡ乃至Ｃ）は、他のデバイス２１と無線回線を介して相互に接続し、協働して特定の機能を果たすように構成されている。この例では、ＣＰＵ１１とデバイス２１を１対１に組み合わせた電子回路同士が無線回線で接続されることで、各ＣＰＵ１１をメッシュ状に接続する。
【００２４】
図２Ａに示す試作ツール１００１は、特定の機能の一部を担う各々の拡張モジュール２０１を個別のＣＰＵ１１によって制御することで、無線回線である配線モジュール３０１を介して拡張モジュール２０１同士を接続する。したがって、試作ツール１００１によれば、無線接続機能を備える電子回路を試作することができる。
【００２５】
図２Ｂに示す試作ツール１００２は、図２Ａに示す２つのベースモジュール１０１を一つのベースモジュール１０２に置き換えた構成である。ベースモジュール１０２は、一つのＣＰＵ１１に複数のデバイス２１を接続するように構成されている。試作ツール１００２において、ベースモジュール１０２は、他の一部のベースモジュール１０１と無線回線である配線モジュール３０１を介して接続される。
【００２６】
また、図２Ａおよび図２Ｂに示すように、試作ツール１００１および試作ツール１００２は、無線通信回線を介して、複数のＣＰＵ１１を１つの信号処理部として機能させることができる。すなわち、試作ツール１００１および試作ツール１００２は、複数分散しているＣＰＵ１１の一部または全部を合わせて、一つのＣＰＵ（信号処理部）として機能させることができる。したがって、これら試作ツール１００１，１００２は、図１に示した試作ツール１０００の構成すなわち、１つのＣＰＵ１１に複数の拡張モジュール２０が接続された構成と同様の機能を果たす。また、拡張モジュール２０を結合させたベースモジュール１０を複数接続して、これらを相互に連動させて特定の機能を果たす構成にしてもよい。以下、試作ツール１０００、試作ツール１００１、試作ツール１００２、のいずれかの試作ツールを代表例として説明する場合、他の試作ツールも同様に適用できるものとして、その説明を省略する。
【００２７】
●ハードウェアの構成３
次に、回路情報作成装置としての試作ツールのハードウェア構成のさらに別の例について説明する。図３に示す試作ツール１００３は、配線切換部に電子スイッチ群を用いるものである。
【００２８】
試作ツール１００３におけるベースボード５７０は、試作ツール１０００におけるベースモジュール１０に相当し、拡張ボード５８０は、拡張モジュール２０に相当する。
【００２９】
図３において、ベースボード５７０は、信号処理部であるマイクロコンピュータ５９０と、スイッチング手段を構成するスイッチング制御回路６２０、スイッチング回路６２１、およびスイッチング回路６２２と、を有してなる。また、ベースボード５７０は、表示部５７６を有している。ベースボード５７０には拡張ボード５８０が、コネクタ６３０によって結合されている。なお、スイッチング制御回路６２０としてはＩ／Ｏエキスパンダなどを用いることができる。
【００３０】
拡張ボード５８０は、指定判定部５８３と、スイッチング手段を構成するスイッチング回路５８１およびスイッチング回路５９２、特定の機能を果たすデバイス群５８２を有している。なお、拡張ボード５８０も、表示部５９４を有している。
【００３１】
マイクロコンピュータ５９０とスイッチング制御回路６２０、指定判定部５８３のすべては、信号バス５７５、信号バス５７２、信号バス５８５で数珠つなぎ状につながっている。
【００３２】
ベースボード５７０は、コネクタ６３０を介して拡張ボード５８０と電気的に接続することができる。ベースボード５７０と拡張ボード５８０の接続は、ベースボード５７０に配置されたスイッチング制御回路６２０によって、スイッチング回路６２１を無効にし、かつ、スイッチング回路６２２を有効にすることで行う。スイッチング回路６２１を無効にし、スイッチング回路６２２を有効にすることで、ベースボード５７０のスイッチング制御回路６２０の入出力端子Ｉ／Ｏと拡張ボード５８０の指定判定部５８３の入出力端子Ｉ／Ｏとを電気的に接続することができる。この状態でスイッチング制御回路６２０の入出力端子Ｉ／Ｏを入力状態とし、拡張ボード５８０上の指定判定部５８３からのコネクタ接続位置確認信号を受け取ることで、拡張ボード５８０の接続位置を確認することができる。
【００３３】
他の構成として、拡張ボード５８０の指定判定部５８３の入出力端子Ｉ／Ｏと、ベースボード５７０のスイッチング制御回路６２０の入出力端子Ｉ／Ｏとの入出力方向を逆にし、拡張ボード５８０側でベースボード５７０の出力信号を受け取るようにする。そしてこの信号を、通信バスを通してベースボード５７０のマイクロコンピュータ５９０に伝えるように構成してもよい。
【００３４】
また、試作ツール１００３は、図１に示す例と同様に、ベースボード５７０に対して複数の拡張ボード５８０を接続する構成とすることもできる。他の構成として、拡張ボード相互間で接続位置の確認をするようにすれば、拡張ボード５８０を多段に接続する、すなわち拡張ボード５８０同士を直接接続することが可能となる。この場合、より規模の大きな回路情報作成装置を構築することができる。
【００３５】
試作ツール１００３は、回路情報作成プログラムを実行したマイクロコンピュータ５９０の制御に基づいて、以下のように動作する。まず、マイクロコンピュータ５９０は、拡張ボード５８０上の指定判定部５８３の入出力端子Ｉ／Ｏと、ベースボード５７０のスイッチング制御回路６２０の入出力端子Ｉ／Ｏとの接続関係を確認するための信号を、拡張ボード５８０に対して送受信する。これによって、マイクロコンピュータ５９０は、拡張ボード５８０の接続位置をアドレス毎に確認する。拡張ボード５８０が正しく接続されていれば、マイクロコンピュータ５９０は、その旨を示す情報を、ベースボード５７０の表示部５７６に表示し、また、拡張ボード５８０の表示部５９４に表示させる。
【００３６】
第１制御ライン５７４は、ベースボード５７０における各スイッチング回路６２１，６２２を制御するスイッチング制御回路６２０の制御信号が伝送される信号線である。第２制御ライン５９３は、拡張ボード５８０における各スイッチング回路５８１，５９２を制御する指定判定部５８３の制御信号が伝送される信号線である。
【００３７】
マイクロコンピュータ５９０に接続された指定判定部５８３およびスイッチング制御回路６２０を制御するために信号バス５７５、信号バス５８５に伝送される制御信号は、すべて同じ信号である。また、マイクロコンピュータ５９０は、信号バス５７８と指定判定部５８３とスイッチング制御回路６２０を使用して、各スイッチング回路６２１、６２２、５９２、５８１を制御する。
【００３８】
マイクロコンピュータ５９０による上に示した制御は、スイッチング回路５９２とスイッチング回路６２２とを、信号バス５８７、信号バス５７８、信号バス５８７１を介して２つの接続状態を相互に切り換える制御に相当する。上記の制御による接続状態の一方は、指定判定部５８３の入出力端子Ｉ／Ｏとスイッチング制御回路６２０の入出力端子Ｉ／Ｏとをつなぐ状態である。また、接続状態の他方は、マイクロコンピュータ５９０と拡張ボード５８０のデバイス群５８２とを、スイッチング回路５８１とスイッチング回路６２１により信号バス５８８と信号バス５７８を介してつなぐ状態である。
【００３９】
図３において、ベースボード５７０側に拡張ボード５８０の位置信号を受け取るための入出力端子を別途に設けて、この入出力端子をベースボード５７０の入出力端子に接続し、拡張ボード５８０側にも指定判定部５８３の入出力端子に接続する端子を設けてもよい。こうすれば、ベースボード５７０側のスイッチング回路６２２と拡張ボード５８０側のスイッチング回路５９２がなくても、自動的に拡張ボード５８０の位置を判断することができる。また、取り付け位置に合わせて、指定判定部５８３から拡張モジュールの端子の数と種類、拡張モジュールのモジュールアドレス、その他、拡張モジュールの回路を使用するための各種情報を信号に乗せて送れば、より緻密な動作を実現することができる。
【００４０】
以上説明した試作ツール１００３を用いると、ベースボード５７０に拡張ボード５８０を任意に取り付け或いは取り外しをし、ベースボードと拡張ボードをランダムにかつ多数の組み合わせを試しながら、容易に動作させて確認することができる。これによって、特定の機能を果たす電子回路の試作をより容易に、かつ、効率的に行うことができる。
【００４１】
ここまで説明した試作ツール１０００、試作ツール１００１、試作ツール１００２および試作ツール１００３のいずれを用いても、回路情報作成プログラムを実行して、試作した電子回路を動作させることができる。また、各試作ツールを用いて回路情報作成プログラムを実行すると、試作した電子回路の回路図を作成することができる情報（回路図情報）を自動的に作成することができる。また、各試作ツールによれば、試作した電子回路の動作に用いることができるファームウェアを容易に作成することができる。なお、試作ツールが回路情報作成プログラムを実行して作成された新たなファームウェアを、当該生成前に使用されるファームウェアと区別するために、「特定ファームウェア」という。
【００４２】
●試作手順
次に、回路情報作成プログラムを実行して電子回路を試作する手順の例を説明する。この手順は、図５に示す試作ツール１００４を用いる場合を前提とする。図５に示す試作ツール１００４は、すでに説明した試作ツール１０００、１００１、１００２、１００３を概念的に簡略化したものの例である。なお、ツールの特性によって、回路情報作成プログラムの処理手順に多少の違いが生ずる。このため、各ツールによる手順の違いについては、該当する説明箇所で適宜説明を加えるものとする。図４のフローチャートに示すように、まず、目的とする機能を発揮するような電子回路を構成するために必要となる拡張モジュール５０２０の組み合わせを選択し、それぞれの拡張モジュールをベースモジュール５０１０に取り付けて、試作する電子回路（以下、試作回路という。）を組み立てる（Ｓ１０１）。
【００４３】
次に、試作ツール１００４とファームウェアとＡＰＩ（Application Programming Interface）を使用して、試作回路を動作させる（Ｓ１０２）。試作回路の動作が目的としている動作（予定している動作）でなければ（Ｓ１０３のＮｏ）、試作回路を再度組み立てる（Ｓ１０１）。
【００４４】
試作回路の動作が目的としている動作であれば（Ｓ１０３のＹｅｓ）、例えば不図示のユーザインタフェース画面の実行ボタンがユーザにより選択されて、Ｓ１０４でＣＰＵ５０１１が以下の処理を行う。ＣＰＵ５０１１は、ベースモジュール５０１０に取り付けられている拡張モジュール５０２０の識別情報であるモジュールアドレスを各拡張モジュール５０２０から取得し、取得したモジュールアドレスの一覧であるモジュールアドレス一覧を生成して出力する（Ｓ１０４）。モジュールアドレス一覧の出力先は、例えば、ベースモジュール５０１０が備えるＣＰＵ５０１１のメモリ５１１１である。出力されるモジュールアドレス一覧は、拡張モジュール５０２０を一意に識別可能なアドレス情報によって構成されているデータ群である。
【００４５】
次に、ＣＰＵ５０１１は、モジュールアドレス一覧に含まれている拡張モジュール５０２０のアドレス情報に該当する回路図データを特定し、この回路図データに対してＣＰＵ５０１１の端子を当てはめて、配線を固定した回路図データを生成する（Ｓ１０５）。ＣＰＵ５０１１により回路図データを特定する処理は、例えば、拡張モジュール５０２０のモジュールアドレスと拡張モジュール５０２０の回路図データとを対応付けたデータベースを予めメモリ５１１１等に格納し、Ｓ１０４で取得されたモジュールアドレスに該当する回路図データを特定する。ＣＰＵ５０１１は、生成された回路図データを、例えばメモリ５１１１に記憶する。なお、すでに説明のとおり、回路図データや、回路図を作成するプログラムは、ＣＰＵ５０１１とは別体の記憶手段に記憶されてもよい。また、これらデータやプログラムはインターネット上に配置されているサーバーに記憶されてもよい。
【００４６】
次に、ＣＰＵ５０１１は、Ｓ１０５で生成した回路図データすなわちＣＰＵ５０１１の端子を当てはめて固定した回路図データに合うように、Ｓ１０２で使用されたファームウェアを書き換える（Ｓ１０６）。この書き換えられた新たなファームウェアが特定ファームウェアになる。生成された特定ファームウェアは、ＣＰＵ５０１１のメモリ５１１１に記憶される。なお、生成された特定ファームウェアは、ＣＰＵ５０１１とは別途設けられた記憶手段に保存されてもよい。この場合、インターネット上に配置されたＷｅｂサーバー上に特定ファームウェアが保存されてもよい。
【００４７】
以上のとおり、回路情報作成プログラムを実行した試作ツール１００４によれば、仮に構成したベースモジュールと１以上の拡張モジュールからなる電子回路の動作を確認した後に、当該電子回路の生産に必要な回路情報（回路図データ）および特定ファームウェアを自動的に作成することができる。すなわち、回路情報作成装置としての試作ツール１００４によれば、当該ツールで使用したスイッチ群やシリアルパラレル変換器などの不要な部品が無い可及的に最少構成にした量産用の回路図を作成するために用いる回路図データを、自動的に作成することができる。また、試作ツール１００４によれば、当該電子回路を構成するために用いられる特定ファームウェアを自動的に作成することができる。
【００４８】
●回路情報作成プログラムの機能構成例
次に、回路情報作成装置によって実行される回路情報作成プログラムについて、図５乃至図１２を参照して説明する。図５に示す試作ツール１００４には、前述した試作ツール１０００や１００１、１００２、１００３が概念的にも含まれている。試作ツール１００４は、ＣＰＵ５０１１とデバイス５０２１が配線モジュール５０３０を介して結合する構成である。配線モジュール５０３０は、スイッチング手段であって、回路情報作成プログラムとしてのプログラム１００を実行したＣＰＵ１１によって制御される。配線モジュール５０３０は、ＣＰＵ５０１１とデバイス５０２１との接続をスイッチングしてつなぐ実質的な端子としてＣＰＵ５０１１によって制御されればよい。このため、配線モジュール５０３０は、パラレル通信、シリアル通信、再配線バススイッチング、無線など様々な通信形式を用いることができる。ＣＰＵ５０１１は、信号の入出力に用いられる信号端子５０１３を複数備えている。デバイス５０２１は、ＣＰＵ５０１１に複数結合可能なモジュールである。それぞれのデバイス５０２１は、ＣＰＵ５０１１の信号端子５０１３と接続される機能端子５０２３を複数備えている。
【００４９】
プログラム１００に基づいてＣＰＵ５０１１が処理を実行するときに使用するデータは、ＣＰＵ５０１１のメモリ５１１１に予め記憶してある。ＣＰＵ５０１１のメモリ５１１１に記憶してあるデータは、ファームウェア、ＣＰＵ５０１１がデバイス５０２１を検知し識別するときに用いるアドレス情報、信号端子５０１３と機能端子５０２３の配線時に機能端子５０２３を識別する相対的端子番号などである。なお、アドレス情報や相対的端子番号は、ＣＰＵ５０１１と別体の記憶手段に保存してもよい。この場合、これらのデータはインターネットに接続されたサーバー上に保存されてもよい。
【００５０】
図５においてＣＰＵ５０１１の信号端子５０１３は、ＧＰＩＯ０１、ＧＰＩＯ０２、・・・、ＧＰＩＯ０９の９個の端子からなるものとする。これら９個の信号端子５０１３は、汎用入出力端子である。信号端子５０１３はそれぞれ、デバイス５０２１と接続して、ＣＰＵ５０１１からデバイス５０２１への制御信号や、デバイス５０２１からＣＰＵ５０１１への信号等のやりとりを行うインターフェースを構成する。
【００５１】
また、図５においてデバイス５０２１の機能端子５０２３は、Signal１、Signal２、Signal３、の３個の端子からなるものとする。なお、後述するプログラム１００を実行する環境は、ＣＰＵ５０１１に接続するデバイス５０２１の数を３個に限るものではない。また、各デバイス５０２１が有する機能端子５０２３の数を３本に限るものでもない。
【００５２】
次に、試作ツール１００４の動作に用いるファームウェアについて説明する。この例ではファームウェアは、ＣＰＵ５０１１のメモリ５１１１に記憶しているが、ＣＰＵ５０１１の外部の記憶媒体にファームウェアを記憶しておくこともできる。ファームウェアには、ＣＰＵ５０１１とデバイス５０２１を接続するための配線の制御に必要な情報とコマンドが、定義情報として記述されている。図６は、ファームウェアに含まれる定義情報の一部の例を示している。図６に示す定義情報１２１は、アドレス情報と相対的端子番号を定義するための情報からなる。
【００５３】
図６に示すように、定義情報１２１に含まれる「＃ｄｅｆｉｎｅ」コマンドは、ＣＰＵ５０１１が備える各端子（信号端子５０１３）を定義している。
【００５４】
「Ｍｏｄｕｌｅ＿Ａ＝」や「Ｍｏｄｕｌｅ＿Ｂ＝」にて記述されている部分は、プログラム１００で用いられるクラスやインスタンス、または構造体等を定義している。この定義によって、プログラム１００は、デバイス５０２１を識別するための変数として「Ｍｏｄｕｌｅ＿Ａ」、「Ｍｏｄｕｌｅ＿Ｂ」を用いることができる。この「Ｍｏｄｕｌｅ＿Ａ」、「Ｍｏｄｕｌｅ＿Ｂ」は、デバイス５０２１のアドレス情報とデバイス５０２１の配線情報に相当する。
【００５５】
定義情報１２１に含まれているプログラム関数「ｓｅｔ＿ＩＯｓ（）」は、デバイス５０２１のそれぞれの機能端子５０２３に対応する配線状態を先ほどの＃ｄｅｆｉｎｅで定義したＣＰＵ５０１１の端子のどれかに当てはまるように指定するコマンドである。このコマンドにより、「Ｍｏｄｕｌｅ＿Ａ」および「Ｍｏｄｕｌｅ＿Ｂ」として区別されるそれぞれのデバイス５０２１に対して、ＣＰＵ５０１１が備える信号端子５０１３が各機能端子５０２３にどのように配線されるか指定される。
【００５６】
同じ定義の信号（Ｓｉｇｎａｌ２、Ｓｉｇｎａｌ３）は、「Ｍｏｄｕｌｅ＿Ａ」および「Ｍｏｄｕｌｅ＿Ｂ」として区別されるデバイス５０２１に対して、イネイブル信号やバススイッチなどによって、接続を切り換えて用いられる。なお、同じ定義の信号が共通バス等であった場合は、切り換え処理が不要になる場合もある。
【００５７】
次に、本発明に係る回路情報作成装置が実行する回路情報作成プログラムの例であるプログラム１００の機能構成について説明する。図７に示すように、プログラム１００は、拡張モジュール検出部１１０と、配線操作部１２０と、拡張モジュール接続部１３０と、アドレス一覧取得部１４０と、回路情報生成部１５０と、特定ファームウェア生成部１６０と、を有してなる。言い換えると、回路情報作成装置のＣＰＵは、プログラム１００を実行することによって、かかるＣＰＵが拡張モジュール検出部１１０、配線操作部１２０、拡張モジュール接続部１３０、アドレス一覧取得部１４０、回路情報生成部１５０、及び特定ファームウェア生成部１６０として機能する。
【００５８】
拡張モジュール検出部１１０は、ベースモジュール５０１０が備える物理的端子（信号端子５０１３）に接続されている拡張モジュール５０２０のそれぞれの位置を検出して特定する処理を実行する。なお、上述した試作ツール１０００，１００１，１００２では、位置検出の処理を行う必要はなく、プログラム的に位置として指定することは任意である。
【００５９】
配線操作部１２０は、上に示した定義情報１２１に記述されているような配線の定義に基づいて、ＣＰＵ５０１１とデバイス５０２１を配線する（動的に再配線する）ように配線モジュール５０３０を動作させる処理を実行する。なお、上述した試作ツール１０００，１００１，１００２では、このように動的に再配線する必要はなく、プログラム的に動的に再配線することは任意である。
【００６０】
拡張モジュール接続部１３０は、ＣＰＵ５０１１に対して各拡張モジュール５０２０を接続状態あるいは非接続状態にする制御を実行し、または、かかる制御を有効あるいは無効にする処理を実行する。拡張モジュール接続部１３０は、ＣＰＵ５０１１に対して接続状態にするデバイス５０２１にはイネイブル信号（Ｅｎａｂｌｅ）を通知し、ＣＰＵ５０１１に対して非接続状態にするデバイス５０２１にはディスイネイブル信号（Ｄｉｓａｂｌｅ）を通知する。
【００６１】
アドレス一覧取得部１４０は、拡張モジュール検出部１１０が検出した拡張モジュール５０２０の各アドレス情報（モジュールアドレスアドレス一覧）を取得する処理を実行する。
【００６２】
回路情報生成部１５０は、取得したモジュールアドレス一覧に基づいて、ＣＰＵ５０１１のメモリ５１１１に記憶されている拡張モジュール５０２０の回路情報を読み出す。回路情報作成部１５０は、当該読み出された回路情報に示されている端子の名称等を定義情報１２１に基づいて書き換える。回路情報作成部１５０は、当該書き換えられた回路情報を、ＣＰＵ５０１１のメモリ５１１１に記憶する。
【００６３】
特定ファームウェア生成部１６０は、回路情報生成部１５０において書き換えられた回路情報に基づいて、定義情報１２１を書き換える。ここで書き換えられた定義情報１２１は、ＣＰＵ５０１１とデバイス５０２１との配線状態を反映させたものであるから、試作された電子回路を構成して動作させるときに必要になる情報である。特定ファームウェア生成部１６０は、書き換えられた定義情報１２１を含めてファームウェアを生成する。ここで生成されるファームウェアを、特定ファームウェアという。
【００６４】
●回路情報作成プログラムの処理の例
次に、図７に示した機能構成を備えるプログラム１００による回路情報作成処置の流れの例について、図８のフローチャートを参照して説明する。図８において、各処理のステップをＳ１１０、Ｓ１１１、Ｓ１１２・・・のように表記する。
【００６５】
試作ツール１００４において、ベースモジュール５０１０に必要な拡張モジュール５０２０を取り付けてプログラム１００を実行すると、まず、ＣＰＵ５０１１は、メモリ５１１１から定義情報１２１を読み出す（Ｓ１１０）。なお、プログラム１００の中に定義情報１２１が含まれている場合は、ＣＰＵ５０１１は、定義情報読み出し処理を実行せずに、次の処理に移行する。
【００６６】
続いて、ＣＰＵ５０１１は、読み出された定義情報１２１に基づいて、ＣＰＵ５０１１とデバイス５０２１の端子に関する情報や相対的な端子の名称、拡張モジュール５０２０を識別するアドレス情報を定義する（Ｓ１１１）。
【００６７】
続いて、ＣＰＵ５０１１は、定義されたアドレス情報を用いて、ベースモジュール５０１０への拡張モジュール５０２０の取り付け位置を検出する処理を実行する（Ｓ１１２）。このとき、ＣＰＵ５０１１は、ベースモジュール５０１０に取り付けられている拡張モジュール５０２０における各取り付け位置を検出する。なお、この取り付け位置を検出する処理（Ｓ１１２）は、試作ツール１０００，試作ツール１００１，及び試作ツール１００２において任意の処理である。任意の処理であるのは、これら列記したツールを用いてプログラム１００を実行させる場合、拡張モジュール５０２０の取り付け位置が関与しなくても問題ないからである。
【００６８】
次に、ＣＰＵ５０１１は、配線モジュール５０３０を制御して、定義情報１２１に定義されている内容に基づき信号端子５０１３（ＧＰＩＯ０１、ＧＰＩＯ０２、・・、ＧＰＩＯ０９）と機能端子５０２３の配線を変更する処理を実行する（Ｓ１１３）。この処理により、ＣＰＵ５０１１の信号端子５０１３と、デバイス５０２１の機能端子５０２３のそれぞれが再配線される。この処理は、再配線しなくてもよい試作ツール１０００、１００１、１００２では任意の処理である。再配線しない試作ツール１０００、１００１、１００２は、配線モジュール５０３０にシリアル通信バスやＣＰＵ間の通信、有線無線を問わないという状態が対応している。
【００６９】
次に、ＣＰＵ５０１１は、再配線されたデバイス５０２１をベースモジュール５０１０に接続する処理を実行する（Ｓ１１４）。この処理（Ｓ１１４）によって、ベースモジュール５０１０と拡張モジュール５０２０とで構成される電子回路は、動作可能な状態になる。次に、当該電子回路を動作させて、ベースモジュール５０１０と拡張モジュール５０２０の結合、その組み合わせにより特定の機能を果たす動作を得られるか否かを確認する（Ｓ１１５）。このＳ１１５では、試作された構成によって所望の回路が完成した否かの最終的な評価をユーザーが行う。なお、Ｓ１１５において、電子回路の動作や評価の一部を自動的に行うようにしてもよい。
【００７０】
試作された電子回路について、特定の機能を果たす動作を確認できなければ（Ｓ１１５のＮＯ）、試作が完成していないものとして、試作する拡張モジュール５０２０の構成や動作プログラムを変更する（Ｓ１１６）。ここでの「動作プログラム」とは、ユーザが任意に作成するプログラムであって、上述したファームウェアとは異なる。このＳ１１６はユーザによって行われ、試作される拡張モジュール５０２０の構成が変更された後に、Ｓ１１０からの処理がＣＰＵ５０１１によって再び実行される。
【００７１】
試作された電子回路について特定の機能を果たす動作を確認して試作が完成すれば（Ｓ１１５のＹｅｓ）、ＣＰＵ５０１１は、Ｓ１１１で定義された、ベースモジュール５０１０に接続されている拡張モジュール５０２０のアドレス情報（モジュールアドレス）の一覧であるモジュールアドレス一覧を生成して出力する（Ｓ１１７）。Ｓ１１７において、モジュールアドレス一覧の出力先は、ＣＰＵ５０１１のメモリ５１１１である。或いは、別途取り付けたプロセッサの内部メモリや、その他の外部記憶装置にモジュールアドレス一覧を出力してもよい。
【００７２】
次に、ＣＰＵ５０１１は、Ｓ１１８の処理に移行して、以下のように回路図データを生成する。まず、ＣＰＵ５０１１は、Ｓ１１７で生成されたモジュールアドレス一覧に基づいて、それぞれの拡張モジュール５０２０に対応する回路図データを特定してＣＰＵ５０１１のメモリ５１１１から読み出す。ＣＰＵ５０１１は、読み出された回路図データに対して、すでに動作確認された電子回路の構成に係る相対的端子番号を、ＣＰＵ５０１１の信号端子５０１３の名称に書き換える。かかる端子番号の書き換えの処理により、ＣＰＵ５０１１とデバイス５０２１の配線が確定し、試作された電子回路の回路図データが確定すなわち配線モジュール５０３０が無い最少構成の回路図のデータ（回路図情報）が生成される。ＣＰＵ５０１１は、生成された回路図データをＣＰＵ５０１１のメモリに記憶する。或いは、ＣＰＵ５０１１は、生成された回路図データを、別途取り付けたプロセッサの内部メモリや、その他の外部記憶装置に記憶してもよい。このようにして記憶された回路図データは、試作回路の回路図を作成するときに、画面表示や印刷により、さらにはＣＡＤによる編集作業で使用できるデータになる。したがって、この回路図データを用いることで、当該電子回路の試作に必要となる回路図を作成することができる。
【００７３】
続いて、ＣＰＵ５０１１は、Ｓ１１８で生成された回路図データに基づいて、特定ファームウェアを生成し、当該生成されたファームウェアをＣＰＵ５０１１のメモリ５１１１に記憶する（Ｓ１１９）。或いは、Ｓ１１９において、ＣＰＵ５０１１は、生成されたファームウェアを、別途取り付けたプロセッサの内部メモリや、その他の外部記憶装置に記憶してもよい。この特定ファームウェアは、上に示した回路図データに基づく電子回路を動作させるときに用いることができるファームウェアである。
【００７４】
●回路図データの例
次に、ＣＰＵ５０１１がプログラム１００を実行することにより上述したＳ１１８で生成される回路図データについて説明する。図９は、回路図データを図面として表示するＣＡＤのデータの例を示している。図９に示すＣＡＤデータ９１は、紙面右側にＣＰＵ５０１１が配置され、紙面左側にデバイス５０２１が配置されている。図９に示すように、プログラム１００の実行によって生成されたＣＡＤデータ９１は、ＣＰＵ５０１１の信号端子５０１３とデバイス５０２１の機能端子５０２３を接続する配線とが１対１の関係になっている。なお、ＣＡＤデータ９１の元になる回路構成情報である回路図データには、予め回路規模も定義されている。したがって、ＣＡＤデータ９１は、ＣＰＵ５０１１を表す部分（表示領域）とデバイス５０２１を表す部分とが互いに重ならないようにして生成される。このように端子番号が書き換えられて生成される図９に示すＣＡＤデータ９１は、実際の電子回路の構成を示すものになる。なお、各種共通バスが複数のデバイス５０２１間で共有されていても構わない。
【００７５】
次に、ＣＰＵ５０１１がプログラム１００を実行することにより上述したＳ１１９で生成される特定ファームウェアについて説明する。まず、プログラム１００が使用する定義情報１２１の詳細な例を図１０に、ファームウェアの例を図１１に示す。図１０に示す定義情報１２１は、すでに説明したものよりも詳細な情報を用いるソースコードの一例である。なお、図１０は、定義情報１２１の記述にｐｙｔｈｏｎスクリプトを用いた場合を例示している。
【００７６】
定義情報１２１において定義されている情報は、以下のとおりである。まず、ＣＰＵ５０１１の端子番号と、ＣＰＵ５０１１の各端子における機能の関係を「＃ＳＰＩ  ｂｕｓ」というコメント文から「ＮＣ＝０」までの間で記述している。
【００７７】
次に、配列名を「ｉｏ」として、配列ｉｏの中にＣＰＵ５０１１の各端子の端子番号を要素として格納し、この配列ｉｏを利用して、入力端子と出力端子の定義を抽象化している。入力端子は変数「ｉｎｐｉｎ」として定義され、出力端子は変数「ｏｕｔｐｉｎ」として定義されている。なお、「ｐｃｂＯｕｔｐｕｔ」と「ｐｃｂＩｎｐｕｔ」は、試作段階では使用しない。
【００７８】
図１０に示した定義情報１２１に基づいてデバイス５０２１の機能端子５０２３を割り当てるファームウェアの例を図１１に示す。図１１に示すファームウェアは、拡張モジュール５０２０のアドレス情報を引数として呼び出す「ｇｅｔＷｉｒｉｎｇ関数」を用いるものである。特定のアドレス情報を引数としてｇｅｔＷｉｒｉｎｇ関数を呼び出せば、そのアドレス情報に対応する拡張モジュール５０２０の相対的な配線情報を取得することができる。図１１の例では、アドレス情報が「１」から「５」に相当する（５台の）拡張モジュール５０２０をベースモジュール５０１０に接続し得る状態を示している。
【００７９】
図１０に例示した定義情報１２１と、図１１に例示したファームウェアを用いてプログラム１００を実行することで、図１２に例示する特定ファームウェアが生成される。図１２に示すように、ベースモジュール５０１０には、アドレス情報が「１」、「３」、「４」に相当する拡張モジュール５０２０のみが接続されている。
【００８０】
図１２に示すように、特定ファームウェアも、「ｇｅｔＷｉｒｉｎｇ関数」の引数に拡張モジュール５０２０のアドレス情報を用いることで、当該アドレス情報に相当する拡張モジュール５０２０に固定された配線情報を取得することができる。この場合、図９に示した回路図データを用いて作成した回路図に係る電子回路を動作させるときのファームウェアとして、上に示したような配線情報をそのまま用いて動作させることができる。他の試作ツールについても同じように設定することができる。
【００８１】
以上説明したプログラム１００は、試作ツールのハードウェア構成が上に例示したいずれの構成によるものであっても、利用可能である、すなわち試作ツールを回路情報作成装置として機能および動作させることができる。プログラム１００および試作ツールは、ベースモジュール５０１０に接続された拡張モジュール５０２０のアドレスと、配線が定義されているファームウェアとを収集し、回路図データに含まれている配線の名称とファームウェアによる配線の定義とを書き換えられるものであればよい。
【００８２】
以上のようにプログラム１００を実行した回路情報作成装置としての試作ツールによれば、試作段階を経て作成される量産用の電子回路について、配線モジュール５０３０が無い最少構成の量産用の回路図の元になる回路情報を自動的に生成することができる。また、上に示した試作ツール１００４は、一部の拡張モジュール５０２０のみに１つのＣＰＵ５０１１を接続し、残りの拡張モジュール５０２０をＣＰＵ５０１１に接続せずに回路図やファームウェアを作成することもできる。この場合、ＣＰＵ５０１１に接続する拡張モジュールの組み合わせ方も自由に行うことができる。
【００８３】
また、プログラム１００は、ＣＰＵ５０１１を含む複数のＣＰＵに１以上の拡張モジュールを接続する構成の電子回路の回路図を試作ツール１００４に自動生成させることができる。この場合、試作した電子回路を１つのＣＰＵ５０１１を備える回路に一部分割するなどの処理を行うことも可能である。その際におけるファームウェアの連動は、一部のＣＰＵ５０１１から統一して指示を出すか、別のパソコンやモバイル端末などのＣＰＵから統一した指示を出せばよい。あるいは、拡張モジュールに接続されたＣＰＵごとに何をするかをあらかじめ指示して決めておくこともできる。ＣＰＵ５０１１とデバイス５０２１の配線が確定すれば、その配線情報を反映させればよい。すなわち、配線の情報を抽象化すればよい。
【００８４】
また、図２Ａや図２Ｂで説明した試作ツール１００１や試作ツール１００２のように、複数のＣＰＵ１１が分散した回路の場合、一部のＣＰＵ１１のみを複数のデバイス２１に任意に結合して（図２Ｂ参照）回路図やファームウェアを生成することもできる。また、その逆すなわち図２Ｂに示す形態で生成した回路図やファームウェアを単一のＣＰＵに結合し直して（図２Ａ参照）回路図やファームウェアを生成することも任意に実現できる。さらに、例えば、デバイスＡに対してはＣＰＵ１１を無線接続し、デバイスＢに対してはＣＰＵ１１を有線接続する回路図やファームウェアを生成することもできる。
【００８５】
したがって、上述した回路情報作成装置を用いれば、開発コストを削減することができ、電子回路のラピッドプロトタイピングを容易に行うことができる。したがって、回路情報作成装置は、ラピッドプロトタイピングが必要なスタートアップやＩｏＴ機器の開発などに有効に使用することができる。
【００８６】
次に、回路情報作成プログラムおよび回路情報作成装置のさらに別の実施形態について、図１３及び図１４を参照して説明する。すでに説明した試作ツール１００４とプログラム１００は、いわゆるスタンドアロン型で実行されるものである。他方、以下に説明する実施形態は、いわゆるネットワーク型のシステム構成である。
【００８７】
●別の構成例
図１３に示すように、本実施形態は、クライアントプログラム６１００が実行される試作ツール１００４と、サーバー側プログラム６１０１が実行されるサーバー６２００とによって、回路情報作成システムが構成される。試作ツール１００４は、上述したように、ベースモジュールと拡張モジュールとが結合された電子回路である。加えて、本実施形態では、試作ツール１００４は、ベースモジュールのＣＰＵ１１がネットワーク６３００を介してサーバー６２００と通信可能に接続される。
【００８８】
クライアントプログラム６１００は、すでに説明したプログラム１００を基礎とし、サーバー６２００上で実行されるサーバー側プログラム６１０１と連動するプログラムである。図１３に示すように、クライアントプログラム６１００は、配線操作部６１２０と、拡張モジュール接続部６１３０と、アドレス一覧取得部６１４０と、を有してなる。言い換えると、試作ツール１００４のＣＰＵ５０１１は、クライアントプログラム６１００を実行することにより、かかる試作ツール１００４を配線操作部６１２０、拡張モジュール接続部６１３０、及びアドレス一覧取得部６１４０として機能させる。
【００８９】
サーバー側プログラム６１０１は、データアップロード部６２７０と、回路情報生成部６２５０と、特定ファームウェア生成部６２６０と、データダウンロード部６２８０と、を有してなる。言い換えると、サーバー６２００のＣＰＵは、サーバー側プログラム６１０１を実行することにより、かかるサーバー６２００をデータアップロード部６２７０、回路情報生成部６２５０、特定ファームウェア生成部６２６０、及びデータダウンロード部６２８０として機能させる。また、サーバー６２００には、サーバー側プログラム６１０１が適宜参照する基礎データであるデータ群６１０２が記憶されている。データ群６１０２は、たとえば、参照配線情報データ６２０１、参照回路図データ６２０２、参照アドレス一覧２００３、参照ファームウェア６２０４からなる。
【００９０】
図１３に示すクライアントプログラム６１００を構成する拡張モジュール検出部６１１０と、配線操作部６１２０と、拡張モジュール接続部６１３０と、アドレス一覧取得部６１４０とは、すでに説明したプログラム１００の実行により発揮される機能と同等のものである。したがって、これらの詳細な説明を省略する。
【００９１】
なお、サーバー６２００は、例えばＷｅｂサーバーであって、サーバー側プログラム６１０１は、ＰＨＰなどのスクリプト言語で記述されているものとする。
【００９２】
データ群６１０２は、サーバー６２００の外部から取り込むようにしてもよいし、試作ツール１００４のＣＰＵ５０１１に記憶させておいてもよい。また、必要な処理のタイミングで試作ツール１００４からサーバー６２００にアップロードしてもよい。また、ＣＰＵ５０１１で使用しているファームウェアまたはファームウェアを元に編集したデータを参照データとして使用してもよい。
【００９３】
●回路情報作成プログラムの処理の別の例
以上説明をした構成を備えるクライアントプログラム６１００とサーバー側プログラム６１０１を実行した場合の処理の流れの例について説明する。図１４に示すフローチャートは、各処理ステップをＳ１１０、Ｓ１１１・・・のように示している。すでに説明したプログラム１００と同じ処理については、同じ符号を付与し、詳細な説明を省略する。
【００９４】
試作ツール１００４においてクライアントプログラム６１００を実行すると、試作ツール１００４のＣＰＵ５０１１は、メモリ５１１１から定義情報１２１を読み出して（Ｓ１１０）、上述した一連の処理を実行する。その結果、ＣＰＵ５０１１は、ベースモジュール５０１０に接続されている拡張モジュール５０２０のアドレス情報（モジュールアドレス）を取得し、その一覧であるモジュールアドレス一覧を生成して所定の記憶媒体（例えばメモリ５１１１）に出力する（Ｓ１１７）。
【００９５】
続いて、試作ツール１００４により生成されたモジュールアドレス一覧をデータアップロード部６２７０を通じてサーバー６２００にアップロードする（Ｓ２０１）。このＳ２０１の処理は、試作ツール１００４とサーバー６２００とが通信しながら、すなわち試作ツール１００４のＣＰＵ５０１１とサーバー６２００のＣＰＵとで協働して行われる。また、試作ツール１００４のＣＰＵ５０１１から各種外部装置を介して各種データをサーバー６２００にアップロードしてもよい。その他、サーバー６２００が参照すべきファームウェアや配線情報などが試作ツール１００４側に記憶されているならば、Ｓ２０１では、それらの情報も同時にサーバー６２００にアップロードしてもよい。
【００９６】
続いて、サーバー６２００側で回路図データ生成処理（Ｓ１１８）が実行される。Ｓ１１８において、サーバー６２００は、モジュールアドレス一覧に含まれたアドレス番号から回路図を特定して、ＣＰＵ５０１１とデバイス５０２１との配線を対応付けた図９で上述したような回路図データを生成する。サーバー６２００は、生成された回路図データを例えばサーバー６２００内の記憶装置に出力（格納）する。
【００９７】
さらに、サーバー６２００は、ファームウェア出力処理（Ｓ１１９）によって、図１０に例示したような定義情報１２１を参照ファームウェア６２０４とし、特定ファームウェア生成部６２６０において適宜の書き換えを実行する。その結果、図１２に例示したような特定ファームウェアが生成される。サーバー６２００は、生成された特定ファームウェアを例えばサーバー６２００内の記憶装置に出力（格納）する。
【００９８】
続いて、サーバー６２００により生成された回路図データと特定ファームウェアは、データダウンロード部６２８０を通じて、試作ツール１００４にダウンロードされる（Ｓ２０４）。このＳ２０４の処理は、試作ツール１００４とサーバー６２００とが通信しながら、すなわち試作ツール１００４のＣＰＵ５０１１とサーバー６２００のＣＰＵとで協働して行われる。あるいは、Ｓ２０４の処理は、試作ツール１００４以外の通信端末やサーバー６２００の各種外部装置にダウンロードするようにすることもできる。
【００９９】
以上説明した例では、アドレス一覧から参照データをそれぞれ探し、ＣＰＵ５０１１の信号端子に拡張モジュールの端子を合わせていく処理をしたが、これに限られるものではない。例えば、アドレス一覧をアップロードせず、拡張モジュール５０２０の配線情報のみをアップロードしても参照するモジュールがわかっていれば、配線の情報を書き換えることができ、上述と同様のデータを生成することができる。つまり、ＣＰＵ５０１１とどのようなパターンで配線が接続されているかさえ分かれば、回路図データや特定ファームウェアとしてＣＰＵ５０１１とデバイス５０２１間の配線をすることができる。
【０１００】
なお、上記のサーバー側プログラム６１０１において実行される各処理は、Ｊａｖａｓｃｒｉｐｔ（登録商標）のようにローカル側で処理できるコンピュータ言語によって作成されてもよい。また、その他クラウド上の分散型処理で行われてもよい。また、サーバー側プログラム６１０１において実行される各処理は、ローカルの専用アプリケーションを介して実行されてもよく、或いはローカルアプリケーション単体で実行されてもよい。
【図１】
0006303200.tif 000002
【図２】
0006303200.tif 000003
【図３】
0006303200.tif 000004
【図４】
0006303200.tif 000005
【図５】
0006303200.tif 000006
【図６】
0006303200.tif 000007
【図７】
0006303200.tif 000008
【図８】
0006303200.tif 000009
【図９】
0006303200.tif 000010
【図１０】
0006303200.tif 000011
【図１１】
0006303200.tif 000012
【図１２】
0006303200.tif 000013
【図１３】
0006303200.tif 000014
【図１４】
0006303200.tif 000015