(57)【要約】【課題】開発効率を向上させることができるマイクロコンピュータの制御プログラム及びマイクロコンピュータ装置を提供する。【解決手段】マイクロコンピュータに関連するハードウェアを制御するための変数が複数種類のマイクロコンピュータの各々について定義された共有データテーブル１０と、マイクロコンピュータの種類を識別するためのマイコン識別子を含むユーザインクルードファイル４０とが提供され、制御プログラム６０は、起動時にユーザインクルードファイル４０を読み込み、該読み込まれたユーザインクルードファイル４０からマイコン識別子を取得し、該取得されたマイコン識別子に対応する変数を共有データテーブル１０から選択し、該選択された変数を用いてハードウェアを制御する。【選択図】        図１
2004362448.tif 000002
【特許請求の範囲】
【請求項１】
マイクロコンピュータに関連するハードウェアを制御するための変数が複数種類のマイクロコンピュータの各々について定義された共有データテーブルと、
マイクロコンピュータの種類を識別するためのマイコン識別子を含むインクルードファイルとが提供され、
起動時に前記インクルードファイルを読み込み、
該読み込まれたインクルードファイルから前記マイコン識別子を取得し、
該取得されたマイコン識別子に対応する変数を前記共有データテーブルから選択し、
該選択された変数を用いて前記ハードウェアを制御する
ことを特徴とするマイクロコンピュータの制御プログラム。
【請求項２】
共有データテーブルは、複数種類のマイクロコンピュータで共通に使用される共通変数に、前記複数種類のマイクロコンピュータでそれぞれ使用される複数の変数を対応付けて記憶し、
インクルードファイルは、共通変数を含み、
前記インクルードファイルに含まれる共通変数に対応する前記共有データテーブル中の共通変数に対応付けられており、且つマイコン識別子に対応する変数を用いてハードウェアを制御することを特徴とする請求項１記載のマイクロコンピュータの制御プログラム。
【請求項３】
マイクロコンピュータに関連するハードウェアを制御するための変数が複数種類のマイクロコンピュータの各々について定義された共有データテーブルと、
マイクロコンピュータの種類を識別するためのマイコン識別子を含むインクルードファイルと、
起動時に前記インクルードファイルを読み込んで前記マイコン識別子を取得し、この取得されたマイコン識別子に対応する変数を前記共有データテーブルから選択し、この選択された変数を用いてハードウェアを制御する制御プログラム
とを備えたことを特徴とするマイクロコンピュータ装置。
【請求項４】
共有データテーブルは、複数種類のマイクロコンピュータで共通に使用される共通変数に、前記複数種類のマイクロコンピュータでそれぞれ使用される複数の変数を対応付けて記憶し、
インクルードファイルは、共通変数を含み、
制御プログラムは、起動時に前記インクルードファイルを読み込んでマイコン識別子を取得し、前記インクルードファイルに含まれる共通変数に対応する前記共有データテーブル中の共通変数に対応付けられ、且つ該取得されたマイコン識別子に対応する変数を選択し、該選択された変数を用いてハードウェアを制御する
ことを特徴とする請求項３記載のマイクロコンピュータ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、マイクロコンピュータの制御プログラム及びマイクロコンピュータ装置に関し、特にマイクロコンピュータの種類に依存しない制御プログラムを作成する技術に関するものである。
【０００２】
【従来の技術】
従来、例えば車載用のＣＤプレーヤ、ＭＤプレーヤ、ラジオといった電子機器はワンチップマイクロコンピュータ（以下、「マイコン」と略することもある）を搭載している。このマイコンは、マイコン制御用のプログラム（以下、「制御プログラム」という）に従って動作することにより車載用電子機器としての各種機能を実現する。
【０００３】
ところで、車載用電子機器に搭載されるマイコンは、車載用電子機器をモデルチェンジしたり新たに開発する場合に、従来から使用されていたマイコンを他の新たなマイコンに変更することがしばしば行われる。この場合、新たなマイコンに対応した制御プログラムを開発する必要がある。
【０００４】
このような制御プログラムの開発における生産性、保守性を向上させる技術の１つとして、車載用電子機器を構成するマイコンに実装されるデバイスドライバの作成方法が開発されている（例えば、特許文献１参照）。この方法では、デバイスドライバを、上位ドライバと下位ドライバとに分割して作成し、従来上位ドライバに包含されていた異常監視部を、下位ドライバに包含させる。なお、異常監視部のレジスタ監視処理には、１マシンサイクルで再設定可能か否かの判断、レジスタの再設定が可能なタイミングか否かの判断や割込の禁止、解除等、マイコンに依存した処理が含まれる。これにより、上位ドライバからマイコンの機種に依存して変更される可能性のある処理が完全に除去されるため、デバイスドライバの移植性が向上すると共に、上位ドライバの生産性、保守性が向上する。
【０００５】
【特許文献１】
特開２００１−３５６９９８号公報
【０００６】
【発明が解決しようとする課題】
上述したような従来から使用していたマイコンを他のマイコンに変更する場合、それまで使用していた制御プログラムのソフトウェア仕様やプログラム仕様を引き継ぐことはできても、マイコンで制御するデバイスの機能を指定するためのＳＦＲ（Ｓｐｅｃｉａｌ  Ｆｕｎｃｔｉｏｎ  Ｒｅｇｉｓｔｅｒｓ）領域の内容や各メモリ領域のアドレス等は変更又は修正する必要がある。
【０００７】
この変更や修正に伴いソースファイルの内容も変更すべき箇所が数多く発生し、ソースファイルの大幅な改造を強いられる場合も多い。また、同一機種（ＣＤ、ＭＤ、ラジオ等）に適用される制御プログラムであってもマイコンが異なればＳＦＲの変数名、ポートの端子名や内蔵（内部）ＲＡＭ、外部メモリのアドレス等の大幅な修正が必要である。従って、マイコンに適用される制御プログラムの開発効率を向上させる方策が望まれている。
【０００８】
この発明は、上記要請に応えるためになされたものであり、開発効率を向上させることができるマイクロコンピュータの制御プログラム及びマイクロコンピュータ装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
この発明に係るマイクロコンピュータの制御プログラムは、マイクロコンピュータに関連するハードウェアを制御するための変数が複数種類のマイクロコンピュータの各々について定義された共有データテーブルと、マイクロコンピュータの種類を識別するためのマイコン識別子を含むインクルードファイルとが提供され、起動時にインクルードファイルを読み込み、該読み込まれたインクルードファイルからマイコン識別子を取得し、該取得されたマイコン識別子に対応する変数を共有データテーブルから選択し、該選択された変数を用いてハードウェアを制御するように構成されている。
【００１０】
この発明に係るマイクロコンピュータ装置は、マイクロコンピュータに関連するハードウェアを制御するための変数が複数種類のマイクロコンピュータの各々について定義された共有データテーブルと、マイクロコンピュータの種類を識別するためのマイコン識別子を含むインクルードファイルと、起動時にインクルードファイルを読み込んでマイコン識別子を取得し、該取得されたマイコン識別子に対応する変数を共有データテーブルから選択し、該選択された変数を用いてハードウェアを制御する制御プログラムとを備えている。
【００１１】
【発明の実施の形態】
以下、この発明の実施の形態を図面を参照しながら詳細に説明する。
実施の形態１．
図１は、この発明の実施の形態１に係るマイクロコンピュータ装置を概念的に示すブロック図である。このマイクロコンピュータ装置は、共有データテーブル１０とマイコンＡとから構成されている。マイコンＡは、ユーザインクルードファイル４０及び制御プログラム６０を含んでいる。
【００１２】
共有データテーブル１０は、複数種類のマイコンの制御プログラムで共通に使用する変数、定数名とそれに対応した、各マイコンのＳＦＲ変数、ソフトウェア変数、定数等をまとめて記憶するものである。図２は、共有テータテーブル１０の配置を説明するための図であり、マイコンＡと種類が異なる他のマイコンＢの各メモリマップを示している。図２に示すように、共有データテーブル１０は、種類の異なる複数のマイコンＡ及びマイコンＢで共通に使用される。
【００１３】
マイコンＡのメモリ空間は、内蔵ＲＯＭ領域２１、外部メモリ領域２２、内蔵ＲＡＭ領域２３及び内蔵周辺Ｉ／Ｏ領域２４から構成されている。また、マイコンＢのメモリ空間は、内部ＲＯＭ領域３１、外部メモリ領域３２、内部ＲＡＭ領域３３及びＳＦＲ領域３４から構成されている。
【００１４】
共有データテーブル１０は、マイコンＡの内蔵ＲＯＭ領域２１及びマイコンＢの内部ＲＯＭ領域３１に配置される。この共有データテーブル１０の配置は、共有データテーブル１０を、マイコンＡの内蔵ＲＯＭ領域２１を構成するＲＯＭ又はマイコンＢの内部ＲＯＭ領域３１を構成するＲＯＭに実際に書き込むことにより実現してもよいし、又は、独立したＲＯＭに書き込まれた共有データテーブル１０をマイコンＡの内蔵ＲＯＭ領域２１の一部又はマイコンＢの内部ＲＯＭ領域３１の一部にマッピングすることにより実現してもよい。この共有データテーブル１０は、マイコンＡの内蔵ＲＯＭ領域２１及びマイコンＢの内部ＲＯＭ領域３１に配置されるので、読み取りは可能であるが書き込み（変更）はできない。
【００１５】
図３は、共有データテーブル１０の記憶内容を示す。この共有データテーブル１０は、当該列の以下の行が複数種類のマイコンで共通に使用される共通変数であることを表すタイトル１１（ＣＯＭＭＯＮ）、共通変数群１２、マイコン識別子１３（ＭＩＣＯＮ＿Ａ）、マイコン識別子１３（ＭＩＣＯＮ＿Ａ）で指定されるマイコンＡで使用される変数群１４、マイコン識別子１５（ＭＩＣＯＮ＿Ｂ）、マイコン識別子１５（ＭＩＣＯＮ＿Ｂ）で指定されるマイコンＢで使用される変数群１６、・・・から構成されている。
【００１６】
共通変数群１２は、マイコンの種類に依存しない例えばＣ言語で記述された各マイコンの制御プログラムで共通的に使用される変数名である。この共通変数群１２には、例えばＡＣＣ（アクセサリ電源）のＯＮ／ＯＦＦ信号であることを表す“ＡＣＣ＿ＯＮ＿ＯＦＦ”、ＡＣＣのＯＮへの定常移行中であることを表す“ＡＣＣ＿ＷＡＩＴ”、ＴＡＰＥ挿入／ＥＪＥＣＴを表す“ＴＡＰＥ＿ＰＡＣＫ＿ＩＮ”、ＴＡＰＥ曲の有無を表す“ＴＡＰＥ＿ＭＵＳＩＣといったＳＦＲ変数が定義されている。
【００１７】
マイコン識別子１３（ＭＩＣＯＮ＿Ａ）は、マイコンＡで実際に使用されるＳＦＲが当該列の以下の行に定義されていることを表す識別子である。変数群１４は、共通変数群１２に記載されている共通変数に対応するマイコンＡの変数である。例えば共通変数ＡＣＣ＿ＯＮ＿ＯＦＦに対応するマイコンＡの変数は“ＡＰＣ０．０”であることを表している。
【００１８】
マイコン識別子１５（ＭＩＣＯＮ＿Ｂ）は、マイコンＢで実際に使用されるＳＦＲが当該列の以下の行に定義されていることを表す識別子である。変数群１６は、共通変数群１２に記載されている共通変数に対応するマイコンＢの変数である。例えば共通変数ＡＣＣ＿ＯＮ＿ＯＦＦに対応するマイコンＢの変数は“ＢＰＣ０．０”であることを表している。
【００１９】
なお、共有データテーブル１０の内容には、ＳＦＲの定義の他に、内部ソフトウェア変数（ＰＵＢＬＩＣ部分）、内部ソフトウェア定数、共通マクロ等が含まれる。
【００２０】
マイコンＡは、上述したように、ユーザインクルードファイル４０及び制御プログラム６０を備えている。ユーザインクルードファイル４０は、ユーザ（プログラマ）が定義するインクルードファイルであり、共有データテーブル１０と同様に、マイコンＡの内蔵ＲＯＭ領域２１に配置される。このユーザインクルードファイル４０は、共有データテーブル１０に定義されているＳＦＲ変数やソフトウェア変数、定数等を参照するように、プログラマによって作成される。
【００２１】
マイコンＢも、図示は省略するが、マイコンＡと同様に、ユーザインクルードファイル及び制御プログラムを備えている。ユーザインクルードファイルは、ユーザ（プログラマ）が定義し、共有データテーブル１０と同様に、マイコンＢの内部ＲＯＭ領域３１に配置される。マイコンＢのユーザインクルードファイルも、共有データテーブル１０に定義されているＳＦＲ変数やソフトウェア変数、定数等を参照するように、プログラマによって作成される。
【００２２】
図４は、マイコンＡのユーザインクルードファイル４０の内容を示し、図５はマイコンＢのユーザインクルードファイルの内容を示す。マイコンＢのユーザインクルードファイルの構成はマイコンＡのユーザインクルードファイル４０と略同一であるので、以下では、マイコンＡのユーザインクルードファイル４０についてのみ説明する。
【００２３】
ユーザインクルードファイル４０の先頭行に記述されるマイコン識別子４１には、このユーザインクルードファイル４０がマイコンＡで使用されることを定義するマイコン識別子４１（ＭＩＣＯＮ＿Ａ）が記載されている。このマイコン識別子４１（ＭＩＣＯＮ＿Ａ）は、図３に示した共有データテーブル１０のマイコン識別子１３（ＭＩＣＯＮ＿Ａ）に対応する。
【００２４】
また、ユーザインクルードファイル４０の次の行にはユーザが定義した変数であるユーザ定義変数４２及びそれに対応する共通変数４３が＃ｄｅｆｉｎｅ文を用いて定義されている。図４に示したユーザ定義変数４２である“ａｂｉｔ＿ａｃｃ＿ｏｎｏｆｆ”の内容は、共通変数“ＡＣＣ＿ＯＮ＿ＯＦＦ”であることを表している。この共通変数“ＡＣＣ＿ＯＮ＿ＯＦＦ”は、図３に示した共有データテーブル１０の中の共通変数群１２に含まれる“ＡＣＣ＿ＯＮ＿ＯＦＦ”に対応する。従って、ユーザ定義変数４２として記述された“ａｂｉｔ＿ａｃｃ＿ｏｎｏｆｆ”は、図３に示した共有データテーブル１０の中のマイコンＡの実際のＳＦＲ変数である“ＡＰＣ０．０”に対応する。
【００２５】
このように、ユーザは、図４に示すようなマイコンＡに関するユーザインクルードファイル４０を記述することによって、ユーザインクルードファイル４０及び共有データテーブル１０の各変数を関連付け、以て実際のＳＦＲ変数等を参照することが可能になっている。
【００２６】
制御プログラム６０は、例えばＣ言語で記述されるプログラムであり、共通変数を用いて共有データテーブル１０の内容を参照することにより、当該マイコンＡを構成するハードウェア又はマイコンＡに接続されるデバイスを制御する。この制御プログラム６０による動作例は後述する。
【００２７】
次に、上記のように構成される、この発明の実施の形態１に係るマイクロコンピュータ装置にマイコンＡが適用されている場合の動作を、マイコン識別処理を中心に、図６に示したフローチャートを参照しながら説明する。
【００２８】
マイクロコンピュータ装置が起動されると、先ず、マイコンのＲＯＭ領域からユーザインクルードファイルが読み込まれる（ステップＳＴ１０）。マイコンＡが適用されたマイクロコンピュータ装置の場合、マイコンＡの内蔵ＲＯＭ領域２１からマイコンＡ用のユーザインクルードファイル４０が読み込まれる。このユーザインクルードファイル４０の先頭行には、図４に示すように、当該ユーザインクルードファイル４０がマイコンＡ用であることを示すマイコン識別子“ＩＮＤＥＸ＝ＭＩＣＯＮ＿Ａ”が記述されている。
【００２９】
次いで、ユーザインクルードファイルの先頭行に記述されているマイコン識別子４１が取得される（ステップＳＴ１１）。マイコンＡが適用されたマイクロコンピュータ装置の場合、ユーザインクルードファイル４０の先頭行に記述されているマイコン識別子４１から“ＩＮＤＥＸ＝ＭＩＣＯＮ＿Ａ”が取得される。
【００３０】
次いで、取得されたマイコン識別子４１を調べることによりマイクロコンピュータ装置に適用されているマイコンの種別が判断される（ステップＳＴ１２）。このステップＳＴ１２において、マイコンＡであることが判断されると共有データテーブル１０からマイコンＡ用の変数が選択され（ステップＳＴ１３）、マイコンＢであることが判断されると共有データテーブル１０からマイコンＢ用の変数が選択され（ステップＳＴ１４）、マイコンＣであることが判断されると共有データテーブル１０からマイコンＡ用の変数が選択される（ステップＳＴ１５）。
【００３１】
マイコンＡが適用されたマイクロコンピュータ装置の場合、ステップＳＴ１２においてＭＩＣＯＮ＿Ａが取得されることにより自己はマイコンＡであることが判断されるので、シーケンスはステップＳＴ１３に進み、共有データテーブル１０からマイコンＡ用の変数群１４が選択される。他のマイコンＢ及びマイコンＣが適用されたマイクロコンピュータ装置の場合も同様である。以上の処理により、異種類のマイコンの制御プログラムであっても、実際に使用するハードウェアに関するＳＦＲ変数等を参照できる。
【００３２】
以上の処理が終了すると、リセット処理が行われる（ステップＳＴ１６）。このリセット処理では、制御プログラム６０で共通変数が指定された場合に、ステップＳＴ１３〜ＳＴ１５で選択された変数群が参照されるように設定する処理が行われる。具体的には、ステップＳＴ１３〜ＳＴ１５で選択された変数群を図示しないデータテーブルファイルに設定する初期化が行われる。マイコンＡが適用されたマイクロコンピュータ装置の場合、制御プログラム６０で共通変数が指定された場合に、ステップＳＴ１３で選択されたマイコンＡ用の変数群１４が参照されるようにデータテーブルファイルが初期化される。
【００３３】
次いで、マイクロコンピュータ装置の機能の１つであるオーディオ処理が行われる（ステップＳＴ１７）。このオーディオ処理において、共有データテーブル１０がどのように使用されるかを、ＴＡＰＥ処理を例に挙げて説明する。以下に説明するＴＡＰＥ処理は、ＡＣＣがオンにされている状態で、ユーザがオーディオ機器の電源ボタンを押し、その後再生ボタンを押すという操作を行った時の処理である。
【００３４】
オーディオ機器の電源ボタンが押されると、先ず、リセット処理が開始される。このリセット処理では、ＲＡＭが初期化される。この場合、マイコンの種類の違いによって、初期化すべきＲＡＭ領域のアドレスが変わってくる。
【００３５】
次いで、ＶＤＤリセット初期化が行われ、カウントするタイマ変数（ＲＡＭに記憶される）やＴＡＰＥ処理に関係するポートが初期化される。このポートの初期化では、共有データテーブル１０で定義されている変数が操作される。次いで、ＡＣＣオンリセット初期化が行われ、ＴＡＰＥ機構の電源ポートがオンにされると共に、ＴＡＰＥ機構のメインモータ及びパワーモータがオフにされる。ＡＣＣオン、ＴＡＰＥ機構の電源ポートのオン、メインモータ及びパワーモータのオフを行う時に変数が操作される。
【００３６】
ユーザがＴＡＰＥを挿入すると、ＴＡＰＥ挿入信号が検知される。このＴＡＰＥ挿入信号の検知を行う時に変数が操作される。テープが挿入されたら、メインモータ及びパワーモータの制御、テープの種類、つまりＭＥＴＡＬテープであるかＮＯＲＭＡＬテープであるかがテープセレクトの信号から検知される。その後、自動的に演奏開始のためのモータがオンにされ、テープリールの回転等が開始される。メインモータ及びパワーモータの制御、テープ種類の検知、モータのオンを行う時に変数が操作される。上述したような、各種処理で操作される変数が共有データテーブル１０にマイコンの種類毎に変数群として格納され、共有化が可能になっている。
【００３７】
以上のように、この発明の実施の形態１に係るマイクロコンピュータ装置によれば、種類が異なるマイコンＡとマイコンＢとで、ハードウェアを操作する変数を共有化でき、使用するマイコンの種類の変更に伴う制御プログラムの書き換えは、ユーザインクルードファイル内の＃ｄｅｆｉｎｅ文を一行だけ書き換えることで済むので、マイコンに適用される制御プログラムの開発効率の向上を図ることができる。
【００３８】
【発明の効果】
以上のように、この発明によれば、複数種類のマイクロコンピュータを制御するための変数が定義された共有データテーブル及びマイコン識別子を含むインクルードファイルとを備え、制御プログラムは、起動時にインクルードファイルを読み込んでマイコン識別子を取得し、該取得されたマイコン識別子に対応する変数を共有データテーブルから選択し、該選択された変数を用いてハードウェアを制御するように構成したので、従来から使用していたマイコンを他の新たなマイコンに変更する場合は、インクルードファイルに含まれるマイコン識別子を新たなマイコンのマイコン識別子に変更するだけでその変数が使用可能になる。その結果、制御プログラムは従来のものをそのまま使用できるので、制御プログラムの開発効率を向上させることができる。
【図面の簡単な説明】
【図１】この発明の実施の形態１に係るマイクロコンピュータ装置を概念的に示すブロック図である。
【図２】この発明の実施の形態１に係るマイクロコンピュータ装置で使用される共有テータテーブルの配置を説明するための図である。
【図３】この発明の実施の形態１に係るマイクロコンピュータ装置で使用される共有テータテーブルの内容を示す図である。
【図４】この発明の実施の形態１に係るマイクロコンピュータ装置で使用されるマイコンのユーザインクルードファイルの内容を示す図である。
【図５】この発明の実施の形態１に係るマイクロコンピュータ装置で使用される他のマイコンのユーザインクルードファイルの内容を示す図である。
【図６】この発明の実施の形態１に係るマイクロコンピュータ装置で行われる処理を示すフローチャートである。
【符号の説明】
１０  共有データテーブル、１１  タイトル、１２  共通変数群、１３，１５マイコン識別子、１４，１６  変数群、２１  内蔵ＲＯＭ領域、２２  外部メモリ領域、２３  内蔵ＲＡＭ領域、２４  内蔵周辺Ｉ／Ｏ領域、３１  内部ＲＯＭ領域、３２  外部メモリ領域、３３  内部ＲＡＭ領域、３４  ＳＦＲ領域、４０  ユーザインクルードファイル、４１  マイコン識別子、４２  ユーザ定義定数、４３  共通変数、６０  制御プログラム、Ａ，Ｂ  マイコン。
【図１】
2004362448.tif 000003
【図２】
2004362448.tif 000004
【図３】
2004362448.tif 000005
【図４】
2004362448.tif 000006
【図５】
2004362448.tif 000007
【図６】
2004362448.tif 000008