(57)【要約】【課題】レジスタに書き込んでいるデータの値を変更するための処理を格段的に簡易化する。【解決手段】本発明は、半導体集積回路に複数の入出力端子と、複数の入出力端子の入出力を制御するための複数のデータ、及び対応するデータの書き込みを許可するか否かを示す１又は複数の書込許可データが書込可能に形成され、書込許可データが、対応するデータの書き込みを許可することを示す場合、当該対応するデータを書き込むレジスタとを設けることにより、リードモディファイライト処理を行わなくても、レジスタに複数のデータと共に１又は複数の書込許可データを与えるだけで、そのレジスタに対し書込許可データによって書き込みが許可されたデータのみを書き込むことができ、かくしてレジスタに書き込んでいるデータの値を変更するための処理を格段的に簡易化することができる。【選択図】図３
2015162192.tif 000002
【特許請求の範囲】
【請求項１】
複数の入出力端子と、
複数の前記入出力端子の入出力を制御するための複数のデータと、対応する前記データの書き込みを許可するか否かを示す１又は複数の書込許可データとが書込可能に形成され、前記書込許可データが、対応する前記データの書き込みを許可することを示す場合、当該対応する前記データを書き込むレジスタと
を具える半導体集積回路。
【請求項２】
前記レジスタは、
複数の前記データを書き込むデータ書込部と、
１又は複数の前記書込許可データを書き込む許可データ書込部と
を具え、
前記データ書込部は、
前記許可データ書込部に、対応する前記データの書き込みを許可することを示す前記書込許可データが書き込まれたとき、当該対応する前記データを書き込む
請求項１に記載の半導体集積回路。
【請求項３】
前記許可データ書込部は、
対応する前記データの書き込みを許可することを示す前記書込許可データを書き込んだことに応じて、前記データ書込部に、当該対応する前記データが書き込まれると、前記書込許可データを当該対応する前記データの書き込みを禁止することを示すように変更する
請求項２に記載の半導体集積回路。
【請求項４】
前記レジスタは、
複数の前記データとしての、複数の前記入出力端子を介して出力される複数の出力データと、１又は複数の前記書込許可データとしての、対応する前記出力データの書き込みを許可するか否かを示す書込許可データとが書込可能に形成された
請求項１、請求項２又は請求項３の何れかに記載の半導体集積回路。
【請求項５】
前記レジスタは、
複数の前記データとしての、複数の前記入出力端子の入出力の方向を制御する複数の方向制御データと、１又は複数の前記書込許可データとしての、対応する前記方向制御データの書き込みを許可するか否かを示す１又は複数の書込許可データとが書込可能に形成された
請求項１、請求項２、請求項３又は請求項４の何れかに記載の半導体集積回路。
【請求項６】
前記レジスタは、
複数の前記データとしての、複数の前記入出力端子を介して出力される１又は複数の出力データ、及び複数の前記入出力端子の入出力の方向を制御する１又は複数の方向制御データと、１又は複数の前記書込許可データとしての、対応する前記出力データの書き込みを許可するか否かを示す書込許可データ、及び対応する前記方向制御データの書き込みを許可するか否かを示す書込許可データとが書込可能に形成された
請求項１、請求項２、請求項３、請求項４又は請求項５の何れかに記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体集積回路に関し、例えば、ファクシミリ（以下、これをＦＡＸとも呼ぶ）等の画像形成装置に設けられるＬＳＩ（Large  Scale  Integration）に適用して好適なものである。
【背景技術】
【０００２】
従来の半導体集積回路は、中央処理ユニットとポート回路とがバスを介して接続されて設けられている。ポート回路は、例えば、８個のポート端子が設けられると共に、これら８個のポート端子に対応する８ビットの構成を有し、ポート端子から外部に出力するデータを保持し、また外部からポート端子に入力されるデータを保持するデータレジスタが複数設けられている。
【０００３】
またポート回路は、これら８個のポート端子に対応する８ビットの構成を有し、ポート端子毎の入出力の方向を制御する制御レジスタが設けられると共に、データの入出力に使用するデータレジスタを全て、又は特定の１個のように選択するためのイネーブルレジスタも設けられている。
【０００４】
そして中央処理ユニットは、データ書込時、イネーブルレジスタにより選択されたデータレジスタや、制御レジスタに適宜、８ビットのデータを書き込み、またデータ読出時、イネーブルレジスタにより選択されたデータレジスタや、制御レジスタから適宜、８ビットのデータを読み出している。
【０００５】
これにより中央処理ユニットは、データレジスタにポート端子から外部に出力するデータを書き込み、また制御レジスタにポート端子を介したデータの入出力の方向を出力に制御するためのデータを書き込んで当該入出力の方向を出力に制御することで、データレジスタに書き込んだデータをポート端子から外部に出力させていた。
【０００６】
また中央処理ユニットは、制御レジスタにポート端子を介したデータの入出力の方向を入力に制御するためのデータを書き込んで当該入出力の方向を入力に制御することで、外部からポート端子に入力されるデータをデータレジスタで保持させ、読み出していた（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１１−６６０３０号公報（第２頁、第５頁、第６頁、図１）
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、従来の半導体集積回路では、中央処理ユニットがデータレジスタや制御レジスタに書き込んでいるデータの値を変更する場合、図１３に示すような、これらデータレジスタや制御レジスタから８ビット全てのデータを読み出し（ステップＳＰ１０）、所定の演算を施して少なくとも一部のデータの値を変更した（ステップＳＰ１１）後、値を変更したデータを含む８ビットのデータをデータレジスタや制御レジスタに書き戻す（ステップＳＰ１２）、いわゆるリードモディファイライト処理を実行している。
【０００９】
これにより半導体集積回路では、データレジスタや制御レジスタに書き込んでいる８ビットのデータの一部の値を変更するような場合でも、値を変更するデータ以外の他のデータの値が変更されることを回避している。
【００１０】
ところが、従来の半導体集積回路では、ポート回路のデータレジスタや制御レジスタに書き込んでいるデータの値を変更する毎に、このようなリードモディファイライト処理を実行しなければならず、データの値を変更するための処理が煩雑であるという問題があった。
【００１１】
本発明は以上の点を考慮してなされたもので、レジスタに書き込んでいるデータの値を変更するための処理を格段的に簡易化し得る半導体集積回路を提案しようとするものである。
【課題を解決するための手段】
【００１２】
かかる課題を解決するため本発明においては、半導体集積回路に複数の入出力端子と、複数の入出力端子の入出力を制御するための複数のデータ、及び対応するデータの書き込みを許可するか否かを示す１又は複数の書込許可データが書込可能に形成され、書込許可データが、対応するデータの書き込みを許可することを示す場合、当該対応するデータを書き込むレジスタとを設けるようにした。
【００１３】
従って本発明では、リードモディファイライト処理を行わなくても、レジスタに複数のデータと共に１又は複数の書込許可データを与えるだけで、そのレジスタに対し書込許可データによって書き込みが許可されたデータのみを書き込むことができる。
【発明の効果】
【００１４】
本発明によれば、半導体集積回路に複数の入出力端子と、複数の入出力端子の入出力を制御するための複数のデータ、及び対応するデータの書き込みを許可するか否かを示す１又は複数の書込許可データが書込可能に形成され、書込許可データが、対応するデータの書き込みを許可することを示す場合、当該対応するデータを書き込むレジスタとを設けるようにしたことにより、リードモディファイライト処理を行わなくても、レジスタに複数のデータと共に１又は複数の書込許可データを与えるだけで、そのレジスタに対し書込許可データによって書き込みが許可されたデータのみを書き込むことができ、かくしてレジスタに書き込んでいるデータの値を変更するための処理を格段的に簡易化し得る半導体集積回路を実現することができる。
【図面の簡単な説明】
【００１５】
【図１】第１の実施の形態によるＦＡＸの回路構成を示すブロック図である。
【図２】第１の実施の形態によるＬＳＩの回路構成を示すブロック図である。
【図３】データレジスタにおける書込及び読出可能な複数のデータの構成を示す略線図である。
【図４】方向制御レジスタにおける書込及び読出可能な複数のデータの構成を示す略線図である。
【図５】データレジスタ及び方向制御レジスタの回路構成を示すブロック図である。
【図６】中央処理ユニットが実行するデータレジスタに対するデータの書込及び読出処理を示すタイミングチャートである。
【図７】データレジスタに対するデータ書込処理手順を示すフローチャートである。
【図８】第２の実施の形態によるＦＡＸの回路構成を示すブロック図である。
【図９】第２の実施の形態によるＬＳＩの回路構成を示すブロック図である。
【図１０】第１ポートレジスタにおける書込及び読出可能な複数のデータの構成を示す略線図である。
【図１１】第１ポートレジスタの回路構成を示すブロック図である。
【図１２】中央処理ユニットが実行する第１ポートレジスタに対するデータの書込及び読出処理を示すタイミングチャートである。
【図１３】従来の半導体集積回路で実行されるリードモディファイライト処理の説明に供するフローチャートである。
【発明を実施するための形態】
【００１６】
以下図面を用いて、発明を実施するための最良の形態（以下、これを実施の形態とも呼ぶ）について説明する。なお、説明は以下の順序で行う。
（１）第１の実施の形態
（２）第２の実施の形態
（３）他の実施の形態
【００１７】
（１）第１の実施の形態
（１−１）ＦＡＸの構成
図１において、１は全体として第１の実施の形態によるＦＡＸの回路構成を示す。係るＦＡＸ１は、ＬＳＩ（Large  Scale  Integration）２が実装された回路基板３を有している。そして、そのＬＳＩ２は、種々の電気部品４の接続に汎用可能な後述するポート回路が設けられており、そのポート回路に種々の電気部品４として例えば、４種類のモータ制御部４Ａ、センサ４Ｂ、操作部４Ｃ及びＦＡＸ制御部４Ｄが接続されている。
【００１８】
因みに、モータ制御部４Ａは、例えば、伝送対象の原稿が記録された記録紙（図示せず）を原稿読取部（図示せず）に取り込むためのモータを制御するためのものである。またセンサ４Ｂは、例えば、原稿読取部に記録紙がセットされているか否かを検出するためのものである。さらに操作部４Ｃは、例えば、記録紙から原稿を読み取るようにして形成される電送対象の画像データの送信先のアドレスや、その画像データの送信開始指示等のような種々の操作入力を受け付けるためのものである。
【００１９】
さらにまたＦＡＸ制御部４Ｄは、例えば、原稿読取部を、記録紙から原稿を読み取るようにして電送対象の画像データを生成するように制御し、また送信部（図示せず）を、その画像データを送信先へ電送するように制御するためのものである。なお、以下の説明では、便器上、これら４種類のモータ制御部４Ａ、センサ４Ｂ、操作部４Ｃ及びＦＡＸ制御部４Ｄをそれぞれ特には区別せずに電気部品４とも呼ぶ。
【００２０】
またＬＳＩ２は、例えば、後述する中央処理ユニット（CPU：Central  Processing  Unit）が設けられている。さらに回路基板３には、ＲＯＭ（Read  Only  Memory）５が実装されている。そしてＲＯＭ５には、基本プログラムや、４種類の電気部品４を制御する４種類のファームウェア（以下、これらを第１乃至第４ファームウェアとも呼ぶ）等が予め記憶されている。
【００２１】
さらに回路基板３には、中央処理ユニットのワークエリアとしてのＲＡＭ（Random  Access  Memory）６が実装されている。そしてＬＳＩ２内の中央処理ユニットは、回路基板３上の所定の配線パターンを介してＲＯＭ５及びＲＡＭ６と接続されている。
【００２２】
よって中央処理ユニットは、ＲＯＭ５から基本プログラムと共に、第１乃至第４ファームウェアを適宜読み出してＲＡＭ６に展開する。これにより中央処理ユニットは、ＲＡＭ６に展開した第１乃至第４ファームウェアに従い、それぞれ対応する電気部品４を制御して、記録紙に記録されている原稿を画像データとして送信先へ電送することができる。
【００２３】
（１−２）ＬＳＩの回路構成
次いで、図２を用いて、ＬＳＩ２の回路構成について説明する。ＬＳＩ２は、上述した中央処理ユニット１０とポート回路１１とが設けられている。またＬＳＩ２は、制御バスと、例えば８ビット幅のデータバスとを有する内部バス１２が設けられている。
【００２４】
ポート回路１１は、それぞれ１ビット単位のデータＰＤ０乃至ＰＤ３を入出力可能な例えば、４個の入出力端子（以下、これらを第１乃至第４ポート端子とも呼ぶ）１５乃至１８が設けられている。そしてポート回路１１は、これら第１乃至第４ポート端子１５乃至１８にそれぞれ異なる電気部品４（すなわち、モータ制御部４Ａ、センサ４Ｂ、操作部４Ｃ及びＦＡＸ制御部４Ｄ）が接続されている。
【００２５】
因みに、以下の説明では、第１乃至第４ポート端子１５乃至１８を介して入出力するデータＰＤ０乃至ＰＤ３を、その第１乃至第４ポート端子１５乃至１８に対応させて、第１乃至第４ポートデータＰＤ０乃至ＰＤ３とも呼ぶ。
【００２６】
なお、この第１の実施の形態の場合、例えば、中央処理ユニット１０が第１ファームウェアに従って制御する電気部品４が第１ポート端子１５に接続され、第２ファームウェアに従って制御する電気部品４が第２ポート端子１６に接続され、第３ファームウェアに従って制御する電気部品４が第３ポート端子１７に接続され、第４ファームウェアに従って制御する電気部品４が第４ポート端子１８に接続されている。
【００２７】
またポート回路１１は、これら第１乃至第４ポート端子１５乃至１８を介した第１乃至第４ポートデータＰＤ０乃至ＰＤ３の入出力を制御するためのレジスタ（以下、これをポートレジスタとも呼ぶ）２０が設けられている。
【００２８】
そして、この第１の実施の形態の場合、ポートレジスタ２０は、４種類の電気部品４との間で第１乃至第４ポート端子１５乃至１８を介して第１乃至第４ポートデータＰＤ０乃至ＰＤ３の入出力を行うレジスタ（以下、これをデータレジスタとも呼ぶ）２１を有している。
【００２９】
またポートレジスタ２０は、第１乃至第４ポート端子１５乃至１８に１対１で対応する入出力方向制御用の４ビットのデータ（以下、これらを第１乃至第４方向制御データとも呼ぶ）ＰＤ１０乃至ＰＤ１３により、これら第１乃至第４ポート端子１５乃至１８の入出力の方向を個別に制御するレジスタ（以下、これを方向制御レジスタとも呼ぶ）２２も有している。
【００３０】
さらにポート回路１１は、第１乃至第４ポート端子１５乃至１８と同数の４個の第１乃至第４出力用バッファ２５乃至２８が設けられている。さらにまたポート回路１１は、これら第１乃至第４ポート端子１５乃至１８と同数の４個の第１乃至第４入力用バッファ２９乃至３２も設けられている。
【００３１】
そしてデータレジスタ２１は、例えば、第１乃至第４データ出力線を介して第１乃至第４出力用バッファ２５乃至２８の入力端子に接続されると共に、これら第１乃至第４出力用バッファ２５乃至２８の出力端子が第１乃至第４ポート端子１５乃至１８に接続されている。
【００３２】
またデータレジスタ２１は、第１乃至第４データ入力線を介して第１乃至第４入力用バッファ２９乃至３２の出力端子に接続されると共に、これら第１乃至第４入力用バッファ２９乃至３２の入力端子が、第１乃至第４ポート端子１５乃至１８と第１乃至第４出力用バッファ２５乃至２８との接続中点に接続されている。
【００３３】
また方向制御レジスタ２２は、例えば、第１乃至第４制御線を介して第１乃至第４出力用バッファ２５乃至２８の制御端子に接続されている。そしてデータレジスタ２１及び方向制御レジスタ２２は、これらを個別に識別可能なユニークな第１及び第２アドレスが割り当てられ、それぞれ内部バス１２を介して中央処理ユニット１０に接続されている。
【００３４】
ここで、中央処理ユニット１０及びポート回路１１は、例えば、回路基板３に設けられたクロック生成回路が生成するクロックに同期して動作している。また中央処理ユニット１０は、例えば、内部バス１２に、そのデータレジスタ２１及び方向制御レジスタ２２をアクセス用に選択するためのレジスタ選択信号ＲＳ１を出力している。
【００３５】
さらに中央処理ユニット１０は、通常、レジスタ選択信号ＲＳ１の値を「０」に立ち下げているものの、データレジスタ２１及び方向制御レジスタ２２をデータの書き込みや読み出し用に選択するときには、例えば、１クロック周期だけ、そのレジスタ選択信号ＲＳ１の値を「１」に立ち上げている。
【００３６】
そして中央処理ユニット１０は、第１乃至第４ファームウェアに従い、内部バス１２に出力しているレジスタ選択信号ＲＳ１の値を「１」に立ち上げた１クロック周期で、当該内部バス１２に第１アドレスを示す第１アドレス信号ＡＳ１を出力することで、データレジスタ２１に個別にアクセスすることができる。
【００３７】
また中央処理ユニット１０は、第１乃至第４ファームウェアに従い、内部バス１２に出力しているレジスタ選択信号ＲＳ１の値を「１」に立ち上げた１クロック周期で、当該内部バス１２に第２アドレスを示す第２アドレス信号ＡＳ２を出力することで、方向制御レジスタ２２に個別にアクセスすることができる。
【００３８】
これに加えて、中央処理ユニット１０は、例えば、内部バス１２に、データレジスタ２１及び方向制御レジスタ２２に対してデータの書き込みを指示するための書込指示信号ＷＳ１を出力している。また中央処理ユニット１０は、通常、書込指示信号ＷＳ１の値を「０」に立ち下げているものの、データレジスタ２１及び方向制御レジスタ２２にデータの書き込みを指示するときには、例えば、１クロック周期だけ、その書込指示信号ＷＳ１の値を「１」に立ち上げている。
【００３９】
このため、中央処理ユニット１０は、第１乃至第４ファームウェアに従い、内部バス１２に出力しているレジスタ選択信号ＲＳ１の値を「１」に立ち上げた１クロック周期で、その内部バス１２に第１アドレス信号ＡＳ１を出力し、また当該内部バス１２に出力している書込指示信号ＷＳ１の値も「１」に立ち上げることで、データレジスタ２１にデータの書込用としてアクセスすることができる。
【００４０】
また中央処理ユニット１０は、同様に第１乃至第４ファームウェアに従い、内部バス１２に出力しているレジスタ選択信号ＲＳ１の値を「１」に立ち上げた１クロック周期で、その内部バス１２に第２アドレス信号ＡＳ２を出力し、また当該内部バス１２に出力している書込指示信号ＷＳ１の値も「１」に立ち上げることで、方向制御レジスタ２２にデータの書込用としてアクセスすることができる。
【００４１】
これに対して、中央処理ユニット１０は、第１乃至第４ファームウェアに従い、内部バス１２に出力しているレジスタ選択信号ＲＳ１の値を「１」に立ち上げた１クロック周期で、その内部バス１２に第１アドレス信号ＡＳ１を出力するものの、当該内部バス１２に出力している書込指示信号ＷＳ１の値を「０」に立ち下げたままにしていると、データレジスタ２１にデータの読出用としてアクセスすることができる。
【００４２】
また中央処理ユニット１０は、同様に第１乃至第４ファームウェアに従い、内部バス１２に出力しているレジスタ選択信号ＲＳ１の値を「１」に立ち上げた１クロック周期で、その内部バス１２に第２アドレス信号ＡＳ２を出するものの、当該内部バス１２に出力している書込指示信号ＷＳ１の値を「０」に立ち下げたままにしていると、方向制御レジスタ２２にデータの読出用としてアクセスすることができる。
【００４３】
実際に中央処理ユニット１０は、データレジスタ２１へのデータ書込時、第１乃至第４ファームウェアに従い、内部バス１２に出力しているレジスタ選択信号ＲＳ１の値、及び書込指示信号ＷＳ１の値を同時に「１」に立ち上げた１クロック周期で、その内部バス１２に第１アドレス信号ＡＳ１と共に、例えば、８ビットのライトデータ（以下、これらを第１乃至第８ライトデータとも呼ぶ）ＷＤ０乃至ＷＤ７を出力することで、そのデータレジスタ２１にアクセスしている。
【００４４】
ただし、中央処理ユニット１０は、このように第１乃至第４ファームウェアに従いデータレジスタ２１にアクセスした場合、その第１乃至第４ファームウェア毎に異なる値の第１乃至第８ライトデータＷＤ０乃至ＷＤ７をデータレジスタ２１に送出している。
【００４５】
よって中央処理ユニット１０は、第１ファームウェアに従いデータレジスタ２１にアクセスした場合、対応する値の第１乃至第８ライトデータＷＤ０乃至ＷＤ７に基づき当該データレジスタ２１に、その第１ファームウェアに対応する電気部品４への出力用の値の第１ポートデータＰＤ０を書き込むようにして保持させている。
【００４６】
また中央処理ユニット１０は、第２ファームウェアに従いデータレジスタ２１にアクセスした場合は、対応する値の第１乃至第８ライトデータＷＤ０乃至ＷＤ７に基づきデータレジスタ２１に、その第２ファームウェアに対応する電気部品４への出力用の値の第２ポートデータＰＤ１を書き込むようにして保持させている。
【００４７】
さらに中央処理ユニット１０は、第３ファームウェアに従いデータレジスタ２１にアクセスした場合は、対応する値の第１乃至第８ライトデータＷＤ０乃至ＷＤ７に基づきデータレジスタ２１に、その第３ファームウェアに対応する電気部品４への出力用の値の第３ポートデータＰＤ２を書き込むようにして保持させている。
【００４８】
さらにまた中央処理ユニット１０は、第４ファームウェアに従いデータレジスタ２１にアクセスした場合は、対応する値の第１乃至第８ライトデータＷＤ０乃至ＷＤ７に基づきデータレジスタ２１に、その第４ファームウェアに対応する電気部品４への出力用の値の第４ポートデータＰＤ３を書き込むようにして保持させている。このようにして中央処理ユニット１０は、データレジスタ２１に書き込んでいる第１乃至第４ポートデータＰＤ０乃至ＰＤ３の値を変更することができる。
【００４９】
そしてデータレジスタ２１は、このように第１乃至第４ポート端子１５乃至１８を介して電気部品４に出力すべき値の第１乃至第４ポートデータＰＤ０乃至ＰＤ３を保持すると、その第１乃至第４ポートデータＰＤ０乃至ＰＤ３を、対応する第１乃至第４出力用バッファ２５乃至２８に送出する。
【００５０】
一方、中央処理ユニット１０は、方向制御レジスタ２２へのデータ書込時には、第１乃至第４ファームウェアに従い、内部バス１２に出力しているレジスタ選択信号ＲＳ１の値、及び書込指示信号ＷＳ１の値を同時に「１」に立ち上げた１クロック周期で、その内部バス１２に第２アドレス信号ＡＳ２と共に、第１乃至第８ライトデータＷＤ０乃至ＷＤ７を出力することで、その方向制御レジスタ２２にアクセスしている。
【００５１】
ただし、中央処理ユニット１０は、このように第１乃至第４ファームウェアに従い方向制御レジスタ２２にアクセスする場合も、その第１乃至第４ファームウェア毎に異なる値の第１乃至第８ライトデータＷＤ０乃至ＷＤ７を方向制御レジスタ２２に送出している。
【００５２】
よって中央処理ユニット１０は、第１ファームウェアに従い方向制御レジスタ２２にアクセスした場合、対応する値の第１乃至第８ライトデータＷＤ０乃至ＷＤ７に基づき当該方向制御レジスタ２２に、その第１ファームウェアに対応する第１ポート端子１５の入出力方向制御用の値の第１方向制御データＰＤ１０を書き込むようにして保持させている。
【００５３】
また中央処理ユニット１０は、第２ファームウェアに従い方向制御レジスタ２２にアクセスした場合、対応する値の第１乃至第８ライトデータＷＤ０乃至ＷＤ７に基づき当該方向制御レジスタ２２に、その第２ファームウェアに対応する第２ポート端子１６の入出力方向制御用の値の第２方向制御データＰＤ１１を書き込むようにして保持させている。
【００５４】
さらに中央処理ユニット１０は、第３ファームウェアに従い方向制御レジスタ２２にアクセスした場合、対応する値の第１乃至第８ライトデータＷＤ０乃至ＷＤ７に基づき当該方向制御レジスタ２２に、その第３ファームウェアに対応する第３ポート端子１７の入出力方向制御用の値の第３方向制御データＰＤ１２を書き込むようにして保持させている。
【００５５】
さらにまた中央処理ユニット１０は、第４ファームウェアに従い方向制御レジスタ２２にアクセスした場合、対応する値の第１乃至第８ライトデータＷＤ０乃至ＷＤ７に基づき当該方向制御レジスタ２２に、その第４ファームウェアに対応する第４ポート端子１８の入出力方向制御用の値の第４方向制御データＰＤ１３を書き込むようにして保持させている。
【００５６】
因みに、第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３は、例えば、値が「１」の場合、対応する第１乃至第４ポート端子１５乃至１８の入出力の方向を出力（すなわち、出力モード）に制御し、値が「０」の場合、対応する第１乃至第４ポート端子１５乃至１８の入出力の方向を入力（すなわち、入力モード）に制御するものである。このようにして中央処理ユニット１０は、方向制御レジスタ２２に書き込んでいる第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３の値を変更することができる
【００５７】
そして方向制御レジスタ２２は、このように第１乃至第４ポート端子１５乃至１８の入出力の方向を制御すべき値の第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３を保持すると、その第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３を、対応する第１乃至第４出力用バッファ２５乃至２８に送出する。
【００５８】
これにより方向制御レジスタ２２は、第１乃至第４ポート端子１５乃至１８の値が「１」の場合、その値により第１乃至第４出力用バッファ２５乃至２８を動作（すなわち、オン）させる。よって方向制御レジスタ２２は、データレジスタ２１から第１乃至第４出力用バッファ２５乃至２８に与えられていた第１乃至第４ポートデータＰＤ０乃至ＰＤ３を、これら第１乃至第４出力用バッファ２５乃至２８から第１乃至第４ポート端子１５乃至１８を介して電気部品４へ出力させる。
【００５９】
このようにして方向制御レジスタ２２は、第１乃至第４ポート端子１５乃至１８の値が「１」の間、対応する第１乃至第４ポート端子１５乃至１８の入出力の方向を出力に制御して、第１乃至第４ポートデータＰＤ０乃至ＰＤ３を、第１乃至第４ポート端子１５乃至１８を介して電気部品４に出力させることができる。
【００６０】
また方向制御レジスタ２２は、第１乃至第４ポート端子１５乃至１８の値が「０」の場合、その値により第１乃至第４出力用バッファ２５乃至２８を停止（すなわち、オフ）させる。よって方向制御レジスタ２２は、データレジスタ２１から第１乃至第４出力用バッファ２５乃至２８に与えられていた第１乃至第４ポートデータＰＤ０乃至ＰＤ３を第１乃至第４出力用バッファ２５乃至２８から第１乃至第４ポート端子１５乃至１８側へは出力させず、電気部品４から第１乃至第４ポート端子１５乃至１８を介して第１乃至第４ポートデータＰＤ０乃至ＰＤ３を入力させる。
【００６１】
このようにして方向制御レジスタ２２は、第１乃至第４ポート端子１５乃至１８の値が「０」の間、対応する第１乃至第４ポート端子１５乃至１８の入出力の方向を入力に制御して、電気部品４から第１乃至第４ポート端子１５乃至１８を介して入力される第１乃至第４ポートデータＰＤ０乃至ＰＤ３を、第１乃至第４入力用バッファ２９乃至３２を介してデータレジスタ２１に送出させることができる。
【００６２】
ところで、ポート回路１１では、第１乃至第４ポート端子１５乃至１８に対する入出力の方向の切り換えを簡易化するため、第１乃至第４出力用バッファ２５乃至２８のみをオン／オフさせ、第１乃至第４入力用バッファ２９乃至３２については常に動作させている。そして第１乃至第４入力用バッファ２９乃至３２は、上述したようにそれぞれ入力端子が、対応する第１乃至第４入力用バッファ２５乃至２８の出力端子と第１乃至第４ポート端子１５乃至１８との接続中点に接続されている。
【００６３】
このため、第１乃至第４入力用バッファ２９乃至３２は、対応する第１乃至第４ポート端子１５乃至１８の入出力の方向が出力に制御されていると、第１乃至第４出力用バッファ２５乃至２８から出力される第１乃至第４ポートデータＰＤ０乃至ＰＤ３をデータレジスタ２１にも送出している。
【００６４】
よってデータレジスタ２１は、第１乃至第４ポート端子１５乃至１８の入出力の方向が入力に制御されている間は、その第１乃至第４ポート端子１５乃至１８を介して入力される第１乃至第４ポートデータＰＤ０乃至ＰＤ３を第１乃至第４入力用バッファ２９乃至３２から取り込む。またデータレジスタ２１は、第１乃至第４ポート端子１５乃至１８の入出力の方向が出力に制御されている間は、第１乃至第４出力用バッファ２５乃至２８から出力される第１乃至第４ポートデータＰＤ０乃至ＰＤ３を第１乃至第４入力用バッファ２９乃至３２から取り込む。
【００６５】
そしてデータレジスタ２１は、このように第１乃至第４入力用バッファ２９乃至３２から取り込んだ第１乃至第４ポートデータＰＤ０乃至ＰＤ３を内部バス１２側へ出力している。よってデータレジスタ２１は、中央処理ユニット１０により第１乃至第４ポートデータＰＤ０乃至ＰＤ３を読み出すようにアクセスされると、そのとき第１乃至第４入力用バッファ２９乃至３２から取り込んだ第１乃至第４ポートデータＰＤ０乃至ＰＤ３をそのまま内部バス１２を介して読み出せるようにしている。
【００６６】
また方向制御レジスタ２２は、第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３を内部バス１２側へも出力している。よって方向制御レジスタ２２は、中央処理ユニット１０により第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３を読み出すようにアクセスされると、そのとき第１乃至第４出力用バッファ２５乃至２８へ送出している第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３を内部バス１２を介して読み出せるようにしている。
【００６７】
実際に中央処理ユニット１０は、データレジスタ２１からのデータ読出時、上述したように第１乃至第４ファームウェアに従い、書込指示信号ＷＳ１の値を「０」に立ち下げたままレジスタ選択信号ＲＳ１の値を「１」に立ち上げた１クロック周期で、内部バス１２に第１アドレス信号ＡＳ１を出力してデータレジスタ２１にアクセスし、そのデータレジスタ２１から第１乃至第４ポートデータＰＤ０乃至ＰＤ３を含む８ビットのデータをリードデータ（以下、これらを第１乃至第８リードデータとも呼ぶ）ＲＤ０乃至ＲＤ７として読み出している。
【００６８】
また中央処理ユニット１０は、方向制御レジスタ２２からのデータ読出時には、上述したように第１乃至第４ファームウェアに従い、書込指示信号ＷＳ１の値を「０」に立ち下げたままレジスタ選択信号ＲＳ１の値を「１」に立ち上げた１クロック周期で、内部バス１２に第２アドレス信号ＡＳ２を出力して方向制御レジスタ２２にアクセスし、その方向制御レジスタ２２から第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３を含む８ビットのデータを第１乃至第８リードデータＲＤ０乃至ＲＤ７として読み出している。
【００６９】
ところで、データレジスタ２１は、中央処理ユニット１０により８ビット幅のデータバスを有する内部バス１２を介してデータ書込用及びデータ読出用にアクセスされるため、そのアクセスに応じて８ビットのデータを書込及び読出可能に形成されている。そして中央処理ユニット１０は、上述したようにデータレジスタ２１に対しデータ書込用及びデータ読出用にアクセスした場合、第１乃至第４ポート端子１５乃至１８を介して入出力する第１乃至第４ポートデータＰＤ０乃至ＰＤ３を書き込み、また読み出している。
【００７０】
ただし、この第１の実施の形態の場合、ポート回路１１には、４ビット分の第１乃至第４ポートデータＰＤ０乃至ＰＤ３を入出力する４個の第１乃至第４ポート端子１５乃至１８しか設けられていない。よってデータレジスタ２１では、このように中央処理ユニット１０のアクセスに応じて書込及び読出可能な８ビットのデータのうち４ビットのデータが、第１乃至第４ポート端子１５乃至１８を介して入出力する第１乃至第４ポートデータＰＤ０乃至ＰＤ３になる。
【００７１】
このため、図３に示すように、データレジスタ２１では、書込及び読出可能な８ビットのデータとして例えば、ビット０からビット３までの下位４ビットに、第１乃至第４ポート端子１５乃至１８を介して入出力される（すなわち、出力用の値や入力されたときの値の）第１乃至第４ポートデータＰＤ０乃至ＰＤ３が割り当てられている。
【００７２】
そしてデータレジスタ２１では、書込及び読出可能な８ビットのデータとして例えば、ビット４からビット７までの上位４ビットに、中央処理ユニット１０（すなわち、ポート回路１１の外部）から与えられる第１乃至第４ポートデータＰＤ０乃至ＰＤ３の書き込みを許可するか否かを示すデータ（以下、これらを第１乃至第４書込許可データとも呼ぶ）ＰＤ４乃至ＰＤ７が割り当てられている。
【００７３】
この場合、第１乃至第４書込許可データＰＤ４乃至ＰＤ７は、第１乃至第４ポートデータＰＤ０乃至ＰＤ３に１対１で対応しており、例えば、値が「１」の場合、対応する第１乃至第４ポートデータＰＤ０乃至ＰＤ３の書き込みを許可することを示している。また第１乃至第４書込許可データＰＤ４乃至ＰＤ７は、例えば、値が「０」の場合、対応する第１乃至第４ポートデータＰＤ０乃至ＰＤ３の書き込みを禁止することを示している。
【００７４】
よって中央処理ユニット１０は、上述したデータ書込時に、データレジスタ２１に書き込む第１乃至第４ポートデータＰＤ０乃至ＰＤ３及び第１乃至第４書込許可データＰＤ４乃至ＰＤ７を第１乃至第８ライトデータＷＤ０乃至ＷＤ７として当該データレジスタ２１に送出している。
【００７５】
より具体的には、中央処理ユニット１０は、第１乃至第４ファームウェアに従い、変更後の値（例えば、変更後の出力用の値）を示す第１乃至第４ポートデータＰＤ０乃至ＰＤ３を第１乃至第４ライトデータＷＤ０乃至ＷＤ３とし、その第１乃至第４ポートデータＰＤ０乃至ＰＤ３の書き込みを許可するか否かを示す第１乃至第４書込許可データＰＤ４乃至ＰＤ７を第５乃至第８ライトデータＷＤ５乃至ＷＤ７としてデータレジスタ２１に送出している。
【００７６】
ただし、上述したように第１乃至第４ファームウェアは、それぞれ対応する第１乃至第４ポート端子１５乃至１８に接続された電気部品４のみを制御するためのものである。言い換えると、第１乃至第４ファームウェアは、それぞれ対応する第１乃至第４ポート端子１５乃至１８の入出力の方向や、当該対応する第１乃至第４ポート端子１５乃至１８を介して出力する第１乃至第４ポートデータＰＤ０乃至ＰＤ３の値を制御するためのものである。
【００７７】
このため中央処理ユニット１０は、例えば、第１ファームウェアに従いデータレジスタ２１にアクセスする場合、変更後の所望の「１」又は「０」の値を示す第１ポートデータＰＤ０を第１ライトデータＷＤ０とする。また中央処理ユニット１０は、この際、第１ファームウェアでは第２乃至第４ポートデータＰＤ１乃至ＰＤ３の値を変更しないため、例えば、何れも予め任意に選定された「１」又は「０」の一方の値（例えば、「０」の値であり、以下、これを任意選定値とも呼ぶ）を示す第２乃至第４ポートデータＰＤ１乃至ＰＤ３を第２乃至第４ライトデータＷＤ１乃至ＷＤ３としている。
【００７８】
これに加えて、中央処理ユニット１０は、この際、第１ポートデータＰＤ０の書き込みを許可することを示す「１」の値の第１書込許可データＰＤ４を第５ライトデータＷＤ４とし、第２乃至第４ポートデータＰＤ１乃至ＰＤ３の書き込みを禁止することを示す「０」の値の第２乃至第４書込許可データＰＤ５乃至ＰＤ７を第６乃至第８ライトデータＷＤ５乃至ＷＤ７としている。
【００７９】
また中央処理ユニット１０は、例えば、第２ファームウェアに従いデータレジスタ２１にアクセスする場合、変更後の所望の「１」又は「０」の値を示す第２ポートデータＰＤ１を第２ライトデータＷＤ１とする。また中央処理ユニット１０は、この際、第２ファームウェアでは第１、第３及び第４ポートデータＰＤ０、ＰＤ２及びＰＤ３の値を変更しないため、何れも任意選定値を示す第１、第３及び第４ポートデータＰＤ０、ＰＤ２及びＰＤ３を第１、第３及び第４ライトデータＷＤ０、ＷＤ２及びＷＤ３としている。
【００８０】
これに加えて、中央処理ユニット１０は、この際、第２ポートデータＰＤ１の書き込みを許可することを示す「１」の値の第２書込許可データＰＤ５を第６ライトデータＷＤ５とし、第１、第３及び第４ポートデータＰＤ０、ＰＤ２及びＰＤ３の書き込みを禁止することを示す「０」の値の第１、第３及び第４書込許可データＰＤ４、ＰＤ６及びＰＤ７を第５、第７及び第８ライトデータＷＤ４、ＷＤ６及びＷＤ７としている。
【００８１】
さらに中央処理ユニット１０は、例えば、第３ファームウェアに従いデータレジスタ２１にアクセスする場合、変更後の所望の「１」又は「０」の値を示す第３ポートデータＰＤ２を第３ライトデータＷＤ２とする。また中央処理ユニット１０は、この際、第３ファームウェアでは第１、第２及び第４ポートデータＰＤ０、ＰＤ１及びＰＤ３の値を変更しないため、何れも任意選定値を示す第１、第２及び第４ポートデータＰＤ０、ＰＤ１及びＰＤ３を第１、第２及び第４ライトデータＷＤ０、ＷＤ１及びＷＤ３としている。
【００８２】
これに加えて、中央処理ユニット１０は、この際、第３ポートデータＰＤ２の書き込みを許可することを示す「１」の値の第３書込許可データＰＤ６を第７ライトデータＷＤ６とし、第１、第２及び第４ポートデータＰＤ０、ＰＤ１及びＰＤ３の書き込みを禁止することを示す「０」の値の第１、第２及び第４書込許可データＰＤ４、ＰＤ５及びＰＤ７を第５、第６及び第８ライトデータＷＤ４、ＷＤ５及びＷＤ７としている。
【００８３】
さらにまた中央処理ユニット１０は、例えば、第４ファームウェアに従いデータレジスタ２１にアクセスする場合、変更後の所望の「１」又は「０」の値を示す第４ポートデータＰＤ３を第４ライトデータＷＤ３とする。また中央処理ユニット１０は、この際、第４ファームウェアでは第１乃至第３ポートデータＰＤ０乃至ＰＤ２の値を変更しないため、何れも任意選定値を示す第１乃至第３ポートデータＰＤ０乃至ＰＤ２を第１乃至第３ライトデータＷＤ０乃至ＷＤ２としている。
【００８４】
これに加えて、中央処理ユニット１０は、この際、第４ポートデータＰＤ３の書き込みを許可することを示す「１」の値の第４書込許可データＰＤ７を第８ライトデータＷＤ７とし、第１乃至第３ポートデータＰＤ０乃至ＰＤ２の書き込みを禁止することを示す「０」の値の第１乃至第３書込許可データＰＤ４乃至ＰＤ６を第５乃至第７ライトデータＷＤ４乃至ＷＤ６としている。
【００８５】
そして中央処理ユニット１０は、第１乃至第４ファームウェアの何れかに従いデータレジスタ２１にアクセスする場合、その第１乃至第４ファームウェアに対応する値の第１乃至第８ライトデータＷＤ０乃至ＷＤ７を、内部バス１２を介して当該データレジスタ２１に送出している。
【００８６】
これによりデータレジスタ２１は、中央処理ユニット１０から第１乃至第８ライトデータＷＤ０乃至ＷＤ７が与えられると、これら第１乃至第８ライトデータＷＤ０乃至ＷＤ７の値と、すでに保持している第１乃至第４ポートデータＰＤ０乃至ＰＤ３の値とを用いて、以下に示す論理演算を行う。
【００８７】
なお、以下には、データレジスタ２１が行う論理演算を、その理解を容易にするために当該データレジスタ２１が例えば、何れも「０」の値の第１乃至第４ポートデータＰＤ０乃至ＰＤ３をすでに書き込むようにして保持しており、第１ファームウェアに対応する値の第１乃至第８ライトデータＷＤ０乃至ＷＤ７により、第１ポートデータＰＤ０の値を「０」から「１」へ変更する場合を例にして説明する。
【００８８】
すなわち、データレジスタ２１は、この際、例えば、（１）式
【００８９】
ＰＤ０＝ＷＤ４×ＷＤ０＋！ＷＤ４×ＰＤ０
＝１×１＋０×０
＝１                                                    ……（１）
【００９０】
で表されるように、第５ライトデータＷＤ４の値、及び第１ライトデータＷＤ０の値の乗算結果と、当該第５ライトデータＷＤ４の値を反転させた値、及びすでに保持している第１ポートデータＰＤ０の値の乗算結果とを加算するような論理演算を行うことで、中央処理ユニット１０によって指示された変更後の「１」の値の第１ポートデータＰＤ０を得て、その第１ポートデータＰＤ０を保持する。
【００９１】
またデータレジスタ２１は、例えば、（２）式
【００９２】
ＰＤ１＝ＷＤ５×ＷＤ１＋！ＷＤ５×ＰＤ１
＝０×０＋１×０
＝０                                                    ……（２）
【００９３】
で表されるように、第６ライトデータＷＤ５の値、及び第２ライトデータＷＤ１の値の乗算結果と、当該第６ライトデータＷＤ５の値を反転させた値、及びすでに保持している第２ポートデータＰＤ１の値の乗算結果とを加算するような論理演算を行うことで、元の値（すなわち、「０」の値）の第２ポートデータＰＤ１を得て、そのまま保持する。
【００９４】
さらにデータレジスタ２１は、例えば、（３）式
【００９５】
ＰＤ２＝ＷＤ６×ＷＤ２＋！ＷＤ６×ＰＤ２
＝０×０＋１×０
＝０                                                    ……（３）
【００９６】
で表されるように、第７ライトデータＷＤ６の値、及び第３ライトデータＷＤ２の値の乗算結果と、当該第７ライトデータＷＤ６の値を反転させた値、及びすでに保持している第３ポートデータＰＤ２の値の乗算結果とを加算するような論理演算を行うことで、元の値（すなわち、「０」の値）の第３ポートデータＰＤ２を得て、そのまま保持する。
【００９７】
さらにまたデータレジスタ２１は、例えば、（４）式
【００９８】
ＰＤ３＝ＷＤ７×ＷＤ３＋！ＷＤ７×ＰＤ３
＝０×０＋１×０
＝０                                                    ……（４）
【００９９】
で表されるように、第８ライトデータＷＤ７の値、及び第４ライトデータＷＤ３の値の乗算結果と、当該第８ライトデータＷＤ７の値を反転させた値、及びすでに保持している第４ポートデータＰＤ３の値の乗算結果とを加算するような論理演算を行うことで、元の値（すなわち、「０」の値）の第４ポートデータＰＤ３を得て、そのまま保持する。
【０１００】
このようにしてデータレジスタ２１は、中央処理ユニット１０から第１ファームウェアに従い、対応する値の第１乃至第８ライトデータＷＤ０乃至ＷＤ７が与えられた場合、その第１ファームウェアに対応する第１ポートデータＰＤ０の値のみを変更して保持し、他の第２乃至第４ポートデータＰＤ１乃至ＰＤ３については値を変更せずに、そのまま継続して保持することができる。
【０１０１】
またデータレジスタ２１は、中央処理ユニット１０から第２ファームウェアに従い、対応する値の第１乃至第８ライトデータＷＤ０乃至ＷＤ７が与えられた場合も、同様の論理演算（すなわち、（１）式乃至（４）式）の論理演算）を行うことで、その第２ファームウェアに対応する第２ポートデータＰＤ１の値のみを変更して保持し、他の第１、第３及び第４ポートデータＰＤ０、ＰＤ２及びＰＤ３については、値を何ら変更せずにそのまま保持することができる。
【０１０２】
さらにデータレジスタ２１は、中央処理ユニット１０から第３ファームウェアに従い、対応する値の第１乃至第８ライトデータＷＤ０乃至ＷＤ７が与えられた場合も同様の論理演算を行うことで、その第３ファームウェアに対応する第３ポートデータＰＤ２の値のみを変更して保持し、他の第１、第２及び第４ポートデータＰＤ０、ＰＤ１及びＰＤ３については、値を何ら変更せずにそのまま保持することができる。
【０１０３】
さらにまたデータレジスタ２１は、中央処理ユニット１０から第４ファームウェアに従い、対応する値の第１乃至第８ライトデータＷＤ０乃至ＷＤ７が与えられた場合も同様の論理演算を行うことで、第４ファームウェアに対応する第４ポートデータＰＤ３の値のみを変更して保持し、他の第１乃至第３ポートデータＰＤ０乃至ＰＤ２については、値を何ら変更せずにそのまま保持することができる。
【０１０４】
よってデータレジスタ２１は、中央処理ユニット１０が第１乃至第４ファームウェアの何れに従ってデータの書込用にアクセスする場合でも、リードモディファイライト処理を行わせることなく、そのアクセスに使用された第１乃至第４ファームウェアに対応する１個の第１乃至第４ポートデータＰＤ０乃至ＰＤ３の値のみを変更し、他の３個の第１乃至第４ポートデータＰＤ０乃至ＰＤ３の値を意図せずに変更することを防止することができる。
【０１０５】
因みに、データレジスタ２１は、第１乃至第４書込許可データＰＤ４乃至ＰＤ７を内部バス１２側へ出力している。このため、データレジスタ２１は、データ読出時、中央処理ユニット１０により第１乃至第４ファームウェアの何れに従ってアクセスされたときでも、そのアクセスのタイミングで４ビットの第１乃至第４ポートデータＰＤ０乃至ＰＤ３と共に４ビットの第１乃至第４書込許可データＰＤ４乃至ＰＤ７を第１乃至第８リードデータＲＤ０乃至ＲＤ７として内部バス１２を介して読み出させている。
【０１０６】
なお、中央処理ユニット１０は、このように第１乃至第４ファームウェアに従いデータレジスタ２１から第１乃至第８リードデータＲＤ０乃至ＲＤ７を読み出すと、その第１乃至第８リードデータＲＤ０乃至ＲＤ７から、このときの処理実行用の第１乃至第４ファームウェアに対応するデータだけを取り出し、その他のデータについては破棄する。これにより中央処理ユニット１０は、第１乃至第４ファームウェアの何れに従いデータレジスタ２１から第１乃至第８リードデータＲＤ０乃至ＲＤ７を読み出した場合でも、その第１乃至第４ファームウェアに対応する電気部品４の制御に利用可能なデータのみを選択的に取得することができる。
【０１０７】
一方、方向制御レジスタ２２も、中央処理ユニット１０により８ビット幅のデータバスを有する内部バス１２を介してデータ書込用及びデータ読出用にアクセスされるため、そのアクセスに応じて８ビットのデータを書込及び読出可能に形成されている。そして中央処理ユニット１０は、上述したように方向制御レジスタ２２に対しデータ書込用及びデータ読出用にアクセスした場合、第１乃至第４ポート端子１５乃至１８の入出力の方向を制御するための第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３を書き込み、また読み出している。
【０１０８】
ただし、上述したようにポート回路１１には４個の第１乃至第４ポート端子１５乃至１８しか設けられていないため、方向制御レジスタ２２では、中央処理ユニット１０のアクセスに応じて書込及び読出可能な８ビットのデータのうち４ビットのデータが、第１乃至第４ポート端子１５乃至１８の入出力の方向を制御する第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３になる。
【０１０９】
このため、図４に示すように、方向制御レジスタ２２では、書込及び読出可能な８ビットのデータとして例えば、ビット０からビット３までの下位４ビットに、第１乃至第４ポート端子１５乃至１８の入出力の方向を制御する第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３が割り当てられている。
【０１１０】
そして方向制御レジスタ２２では、書込及び読出可能な８ビットのデータとして例えば、ビット４からビット７までの上位４ビットに、中央処理ユニット１０（すなわち、ポート回路１１の外部）から与えられる第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３の書き込みを許可するか否かを示すデータ（以下、これらを第５乃至第８書込許可データとも呼ぶ）ＰＤ１４乃至ＰＤ１７が割り当てられている。
【０１１１】
この場合、第５乃至第８書込許可データＰＤ１４乃至ＰＤ１７は、第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３に１対１で対応しており、例えば、値が「１」の場合、対応する第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３の書き込みを許可することを示している。また第５乃至第８書込許可データＰＤ１４乃至ＰＤ１７は、例えば、値が「０」の場合、対応する第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３の書き込みを禁止することを示している。
【０１１２】
よって中央処理ユニット１０は、上述したデータ書込時、方向制御レジスタ２２に書き込む第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３及び第５乃至第８書込許可データＰＤ１４乃至ＰＤ１７を第１乃至第８ライトデータＷＤ０乃至ＷＤ７として当該方向制御レジスタ２２に送出している。
【０１１３】
より具体的には、中央処理ユニット１０は、第１乃至第４ファームウェアに従い、変更後の値（すなわち、変更後の入出力方向制御用の値）を示す第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３を第１乃至第４ライトデータＷＤ０乃至ＷＤ３とし、その第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３の書き込みを許可するか否かを示す第５乃至第８書込許可データＰＤ１４乃至ＰＤ１７を第５乃至第８ライトデータＷＤ５乃至ＷＤ７としてデータレジスタ２１に送出している。
【０１１４】
ただし、中央処理ユニット１０は、第１ファームウェアに従い、第１方向制御データＰＤ１０により、対応する第１ポート端子１５の入出力の方向のみを制御し、第２ファームウェアに従い、第２方向制御データＰＤ１１により、対応する第２ポート端子１６の入出力の方向のみを制御している。また中央処理ユニット１０は、第３ファームウェアに従い、第３方向制御データＰＤ１２により、対応する第３ポート端子１７の入出力の方向のみを制御し、第４ファームウェアに従い、第４方向制御データＰＤ１３により、対応する第４ポート端子１８の入出力の方向のみを制御している。
【０１１５】
このため中央処理ユニット１０は、例えば、第１ファームウェアに従い方向制御レジスタ２２にアクセスする場合、変更後の所望の「１」又は「０」の値を示す第１方向制御データＰＤ１０を第１ライトデータＷＤ０とする。また中央処理ユニット１０は、この際、第１ファームウェアでは第２乃至第４方向制御データＰＤ１１乃至ＰＤ１３の値を変更しないため、何れも任意選定値を示す第２乃至第４方向制御データＰＤ１１乃至ＰＤ１３を第２乃至第４ライトデータＷＤ１乃至ＷＤ３としている。
【０１１６】
これに加えて、中央処理ユニット１０は、この際、第１方向制御データＰＤ１０の書き込みを許可することを示す「１」の値の第５書込許可データＰＤ１４を第５ライトデータＷＤ４とし、第２乃至第４方向制御データＰＤ１１乃至ＰＤ１３の書き込みを禁止することを示す「０」の値の第６乃至第８書込許可データＰＤ１５乃至ＰＤ１７を第６乃至第８ライトデータＷＤ５乃至ＷＤ７としている。
【０１１７】
また中央処理ユニット１０は、例えば、第２ファームウェアに従い方向制御レジスタ２２にアクセスする場合、変更後の所望の「１」又は「０」の値を示す第２方向制御データＰＤ１１を第２ライトデータＷＤ１とする。また中央処理ユニット１０は、この際、第２ファームウェアでは第１、第３及び第４方向制御データＰＤ１０、ＰＤ１２及びＰＤ１３の値を変更しないため、何れも任意選定値を示す第１、第３及び第４方向制御データＰＤ１０、ＰＤ１２及びＰＤ１３を第１、第３及び第４ライトデータＷＤ０、ＷＤ２及びＷＤ３としている。
【０１１８】
これに加えて、中央処理ユニット１０は、この際、第２方向制御データＰＤ１１の書き込みを許可することを示す「１」の値の第６書込許可データＰＤ１５を第６ライトデータＷＤ５とし、第１、第３及び第４方向制御データＰＤ１０、ＰＤ１２及びＰＤ１３の書き込みを禁止することを示す「０」の値の第５、第７及び第８書込許可データＰＤ１４、ＰＤ１６及びＰＤ１７を第５、第７及び第８ライトデータＷＤ４、ＷＤ６及びＷＤ７としている。
【０１１９】
さらに中央処理ユニット１０は、例えば、第３ファームウェアに従い方向制御レジスタ２２にアクセスする場合、変更後の所望の「１」又は「０」の値を示す第３方向制御データＰＤ１２を第３ライトデータＷＤ２とする。また中央処理ユニット１０は、この際、第３ファームウェアでは第１、第２及び第４方向制御データＰＤ１０、ＰＤ１１及びＰＤ１３の値を変更しないため、何れも任意選定値を示す第１、第２及び第４方向制御データＰＤ１０、ＰＤ１１及びＰＤ１３を第１、第２及び第４ライトデータＷＤ０、ＷＤ１及びＷＤ３としている。
【０１２０】
これに加えて、中央処理ユニット１０は、この際、第３方向制御データＰＤ１２の書き込みを許可することを示す「１」の値の第７書込許可データＰＤ１６を第７ライトデータＷＤ６とし、第１、第２及び第４方向制御データＰＤ１０、ＰＤ１１及びＰＤ１３の書き込みを禁止することを示す「０」の値の第５、第６及び第８書込許可データＰＤ１４、ＰＤ１５及びＰＤ１７を第５、第６及び第８ライトデータＷＤ４、ＷＤ５及びＷＤ７としている。
【０１２１】
さらにまた中央処理ユニット１０は、例えば、第４ファームウェアに従い方向制御レジスタ２２にアクセスする場合、変更後の所望の「１」又は「０」の値を示す第４方向制御データＰＤ１３を第４ライトデータＷＤ３とする。また中央処理ユニット１０は、この際、第４ファームウェアでは第１乃至第３方向制御データＰＤ１０乃至ＰＤ１２の値を変更しないため、何れも任意選定値を示す第１乃至第３方向制御データＰＤ１０乃至ＰＤ１２を第１乃至第３ライトデータＷＤ０乃至ＷＤ２としている。
【０１２２】
これに加えて、中央処理ユニット１０は、この際、第４方向制御データＰＤ１３の書き込みを許可することを示す「１」の値の第８書込許可データＰＤ１７を第８ライトデータＷＤ７とし、第１乃至第３方向制御データＰＤ１０乃至ＰＤ１２の書き込みを禁止することを示す「０」の値の第５乃至第７書込許可データＰＤ１４乃至ＰＤ１６を第５乃至第７ライトデータＷＤ４乃至ＷＤ６としている。
【０１２３】
そして中央処理ユニット１０は、第１乃至第４ファームウェアの何れかに従い方向制御レジスタ２２にアクセスする場合、その第１乃至第４ファームウェアに対応する値の第１乃至第８ライトデータＷＤ０乃至ＷＤ７を、内部バス１２を介して当該方向制御レジスタ２２に送出している。
【０１２４】
これにより方向制御レジスタ２２は、中央処理ユニット１０から第１乃至第８ライトデータＷＤ０乃至ＷＤ７が与えられると、これら第１乃至第８ライトデータＷＤ０乃至ＷＤ７の値と、すでに保持している第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３の値とを用いて、上述したデータレジスタ２１の場合と基本的には同様の論理演算を行う。
【０１２５】
すなわち、方向制御レジスタ２２は、この際、例えば、（５）式乃至（８）式
【０１２６】
ＰＤ１０＝ＷＤ４×ＷＤ０＋！ＷＤ４×ＰＤ１０                  ……（５）
【０１２７】
ＰＤ１１＝ＷＤ５×ＷＤ１＋！ＷＤ５×ＰＤ１１                  ……（６）
【０１２８】
ＰＤ１２＝ＷＤ６×ＷＤ２＋！ＷＤ６×ＰＤ１２                  ……（７）
【０１２９】
ＰＤ１３＝ＷＤ７×ＷＤ３＋！ＷＤ７×ＰＤ１３                  ……（８）
【０１３０】
で表されるように、上述したデータレジスタ２１が行う論理演算とは、すでに保持している第１乃至第４ポートデータＰＤ０乃至ＰＤ３の代わりに、すでに保持している第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３を用いることが異なるだけの論理演算を行う。
【０１３１】
これにより方向制御レジスタ２２は、中央処理ユニット１０から第１ファームウェアに従い、対応する値の第１乃至第８ライトデータＷＤ０乃至ＷＤ７が与えられた場合、その第１ファームウェアに対応する第１方向制御データＰＤ１０の値のみを変更して保持し、他の第２乃至第４方向制御データＰＤ１１乃至ＰＤ１３については、値を何ら変更せずにそのまま保持することができる。
【０１３２】
また方向制御レジスタ２２は、中央処理ユニット１０から第２ファームウェアに従い、対応する値の第１乃至第８ライトデータＷＤ０乃至ＷＤ７が与えられた場合、その第２ファームウェアに対応する第２方向制御データＰＤ１１の値のみを変更して保持し、他の第１、第３及び第４方向制御データＰＤ１０、ＰＤ１２及びＰＤ１３については、値を何ら変更せずにそのまま保持することができる。
【０１３３】
さらに方向制御レジスタ２２は、中央処理ユニット１０から第３ファームウェアに従い、対応する値の第１乃至第８ライトデータＷＤ０乃至ＷＤ７が与えられた場合、その第３ファームウェアに対応する第３方向制御データＰＤ１２の値のみを変更して保持し、他の第１、第２及び第４方向制御データＰＤ１０、ＰＤ１１及びＰＤ１３については、値を何ら変更せずにそのまま保持することができる。
【０１３４】
さらにまた方向制御レジスタ２２は、中央処理ユニット１０から第４ファームウェアに従い、対応する値の第１乃至第８ライトデータＷＤ０乃至ＷＤ７が与えられた場合、その第４ファームウェアに対応する第４方向制御データＰＤ１３の値のみを変更して保持し、他の第１乃至第３方向制御データＰＤ１０乃至ＰＤ１２については、値を何ら変更せずにそのまま保持することができる。
【０１３５】
よって方向制御レジスタ２２は、データレジスタ２１の場合と同様に、中央処理ユニット１０が第１乃至第４ファームウェアの何れに従ってデータの書込用にアクセスする場合でも、リードモディファイライト処理を行わせることなく、そのアクセスに使用された第１乃至第４ファームウェアに対応する１個の第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３の値（すなわち、入出力方向制御用の値）のみを変更し、他の３個の第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３の値を意図せずに変更することを防止することができる。
【０１３６】
因みに、方向制御レジスタ２２は、第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３、及び第５乃至第８書込許可データＰＤ１４乃至ＰＤ１７を内部バス１２側に出力している。よって方向制御レジスタ２２は、データ読出時、中央処理ユニット１０により第１乃至第４ファームウェアの何れに従ってアクセスされたときでも、そのアクセスのタイミングで４ビットの第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３と、４ビットの第５乃至第８書込許可データＰＤ１４乃至ＰＤ１７とを第１乃至第８リードデータＲＤ０乃至ＲＤ７として内部バス１２を介して読み出させることができる。
【０１３７】
なお、中央処理ユニット１０は、このように第１乃至第４ファームウェアに従い方向制御レジスタ２２から第１乃至第８リードデータＲＤ０乃至ＲＤ７を読み出すと、その第１乃至第８リードデータＲＤ０乃至ＲＤ７から、このときの処理実行用の第１乃至第４ファームウェアに対応するデータだけを取り出し、その他のデータについては破棄する。これにより中央処理ユニット１０は、第１乃至第４ファームウェアの何れに従い方向制御レジスタ２２から第１乃至第８リードデータＲＤ０乃至ＲＤ７を読み出した場合でも、その第１乃至第４ファームウェアに対応する電気部品４の制御に利用可能なデータのみを選択的に取得することができる。
【０１３８】
（１−３）データレジスタ及び方向制御レジスタの回路構成
次いで、図５を用いて、データレジスタ２１及び方向制御レジスタ２２の回路構成について説明する。データレジスタ２１は、互いに異なる第１乃至第４ポート端子１５乃至１８を介して第１乃至第４ポートデータＰＤ０乃至ＰＤ３を入出力するための（すなわち、それぞれ異なる第１乃至第４ポート端子１５乃至１８に接続される）同一構成の４個のデータ処理回路ブロック４０を有している。
【０１３９】
また方向制御レジスタ２２は、互いに異なる第１乃至第４ポート端子１５乃至１８の入出力の方向を制御するための（すなわち、それぞれ異なる第１乃至第４出力用バッファ２５乃至２８に接続される）同一構成の４個の方向制御回路ブロック４１を有している。
【０１４０】
ただし、データレジスタ２１の４個のデータ処理回路ブロック４０は、扱う第１乃至第４ポートデータＰＤ０乃至ＰＤ３、第１乃至第８ライトデータＷＤ０乃至ＷＤ７、第１乃至第８リードデータＲＤ０乃至ＲＤ７が互いに異なるだけで、基本的には同様の処理を実行している。また方向制御レジスタ２２の４個の方向制御回路ブロック４１についても、扱う第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３、第１乃至第８ライトデータＷＤ０乃至ＷＤ７、第１乃至第８リードデータＲＤ０乃至ＲＤ７が互いに異なるだけで、基本的には同様の処理を実行している。
【０１４１】
このため、以下には、データレジスタ２１及び方向制御レジスタ２２の回路構成として、第１ポート端子１５を介した第１ポートデータＰＤ０の入出力を制御する１個のデータ処理回路ブロック４０及び１個の方向制御回路ブロック４１の回路構成についてのみ説明し、これらと同一構成の他の３個のデータ処理回路ブロック４０及び他の３個の方向制御回路ブロック４１の回路構成については説明を省略する。因みに、図５には、データレジスタ２１の１個のデータ処理回路ブロック４０の回路構成、及び方向制御レジスタ２２の１個の方向制御回路ブロック４１の回路構成のみを示している。
【０１４２】
データレジスタ２１においてデータ処理回路ブロック４０は、２個の入力端子を介して第１アドレス信号ＡＳ１及びレジスタ選択信号ＲＳ１が入力される第１アドレスデコーダ４５を有している。第１アドレスデコーダ４５は、その出力端子が、第１ＡＮＤ回路４６の有する３個の入力端子のうちの１個に接続されると共に、第２ＡＮＤ回路４７が１個の反転入力端子と共に有する２個の入力端子のうちの一方に接続されている。
【０１４３】
第１ＡＮＤ回路４６は、３個の入力端子のうち残りの２個の入力端子に書込指示信号ＷＳ１及び第５ライトデータＷＤ４が入力され、出力端子が、２入力構成の第１マルチプレクサ４８のデータ選択端子に接続されている。
【０１４４】
第１マルチプレクサ４８は、２個の入力端子のうち一方に第１ライトデータＷＤ０が入力され、出力端子が第１Ｄフリップフロップ４９の入力端子に接続されている。そして第１Ｄフリップフロップ４９は、出力端子が第１出力用バッファ２５の入力端子に接続されると共に、第１マルチプレクサ４８の２個の入力端子のうちの他方にも接続されている。
【０１４５】
また第２ＡＮＤ回路４７は、反転入力端子に書込指示信号ＷＳ１が反転入力され、２個の入力端子のうちの他方に第１入力用バッファ２９の出力端子が接続されている。そして第２ＡＮＤ回路４７の出力端子は、例えば、ポート回路１１にデータレジスタ２１及び方向制御レジスタ２２とは別に設けられたＯＲ回路５０が有する２個の入力端子の一方に接続されている。
【０１４６】
一方、方向制御レジスタ２２において方向制御回路ブロック４１は、データ処理回路ブロック４０の第１アドレスデコーダ４５、第１ＡＮＤ回路４６、第２ＡＮＤ回路４７、第１マルチプレクサ４８及び第１Ｄフリップフロップ４９と同様の第２アドレスデコーダ５１、第３ＡＮＤ回路５２、第４ＡＮＤ回路５３、第２マルチプレクサ５４及び第２Ｄフリップフロップ５５を有している。
【０１４７】
この場合、方向制御回路ブロック４１では、第２アドレスデコーダ５１の２個の入力端子に第２アドレス信号ＡＳ２及びレジスタ選択信号ＲＳ１が入力されている。また方向制御回路ブロック４１では、第２Ｄフリップフロップ５５の出力端子が第１出力用バッファ２５の制御端子、第２マルチプレクサ５４の２個の入力端子のうちの他方、及び第４ＡＮＤ回路５３の２個の入力端子のうちの他方にそれぞれ接続されている。
【０１４８】
さらに方向制御回路ブロック４１では、第４ＡＮＤ回路５３の出力端子がＯＲ回路５０の２個の入力端子の他方に接続されている。そして方向制御回路ブロック４１は、これらの接続構成以外は、データ処理回路ブロック４０と同様に構成されている。
【０１４９】
係る構成のもと、まず、中央処理ユニット１０が第１ファームウェアに従いデータの書込用に、内部バス１２に出力しているレジスタ選択信号ＲＳ１の値、及び書込指示信号ＷＳ１の値を同時に「１」に立ち上げた１クロック周期で、その内部バス１２に第１アドレス信号ＡＳ１と共に、第１ポートデータＰＤ０の書き込みを指示する第１乃至第８ライトデータＷＤ０乃至ＷＤ７を出力した場合のデータ処理回路ブロック４０の処理動作について説明する。
【０１５０】
因みに、データ処理回路ブロック４０において第１アドレスデコーダ４５は、例えば、当該データ処理回路ブロック４０が中央処理ユニット１０によりアクセスされたか否かを示す出力信号を第１ＡＮＤ回路４６及び第２ＡＮＤ回路４７に送出している。そして第１アドレスデコーダ４５は、そのデータ処理回路ブロック４０が中央処理ユニット１０によってアクセスされるまでは、出力信号の値を例えば、「０」に立ち下げている。
【０１５１】
また第１ＡＮＤ回路４６は、第１書込許可データＰＤ４を書き込む許可データ書込部として機能するものであり、第１マルチプレクサ４８に対し第１書込許可データＰＤ４を送出している。そして第１ＡＮＤ回路４６は、中央処理ユニット１０により第１ポートデータＰＤ０の書き込みが許可されるまでは、その第１書込許可データＰＤ４の値を「０」に立ち下げている。
【０１５２】
この状態で第１アドレスデコーダ４５は、第１アドレス信号ＡＳ１と、値が「１」のレジスタ選択信号ＲＳ１とを取り込むと、これらをデコードすることでデータ処理回路ブロック４０がアクセスされたことを認識し、これに応じて出力信号の値を例えば、「１」に立ち上げる。
【０１５３】
このとき、第１ＡＮＤ回路４６は、第５ライトデータＷＤ４と、値が「１」の書込指示信号ＷＳ１とを取り込む。そして第１ＡＮＤ回路４６は、この際、その第５ライトデータＷＤ４の値が、第１ポートデータＰＤ０の書き込みを許可することを示す「１」の値であるため、第１マルチプレクサ４８に送出している第１書込許可データＰＤ４の値を、第１ポートデータＰＤ０の書き込みを許可することを示す「１」に立ち上げる。
【０１５４】
第１マルチプレクサ４８は、第１Ｄフリップフロップ４９と共に第１ポートデータＰＤ０を書き込むデータ書込部として機能するものであり、このとき第１ライトデータＷＤ０が与えられ、第１書込許可データＰＤ４の値が「１」に立ち上がることで、その第１ライトデータＷＤ０を選択して第１Ｄフリップフロップ４９に送出する。
【０１５５】
これにより第１Ｄフリップフロップ４９は、クロック端子に入力されているクロック信号ＣＳ１に応じて、その第１ライトデータＷＤ０を、変更後の所望の値（すなわち、入力用の値）を示す第１ポートデータＰＤ０として保持すると共に、第１出力用バッファ２５に送出し、また第１マルチプレクサ４８に入力する。このようにしてデータ処理回路ブロック４０は、第１Ｄフリップフロップ４９に第１ポートデータＰＤ０の値を変更して保持することができる。
【０１５６】
そして第１ＡＮＤ回路４６は、例えば、入力端子を介して取り込んでいた書込指示信号ＷＳ１の値が「１」から「０」に立ち下がると、第１マルチプレクサ４８に送出している第１書込許可データＰＤ４の値を「０」に立ち下げる。
【０１５７】
よって第１マルチプレクサ４８は、第１ライトデータＷＤ０を第１Ｄフリップフロップ４９に送出した後、第１書込許可データＰＤ４の値が「０」に立ち下がることで、第１Ｄフリップフロップ４９から入力されていた第１ポートデータＰＤ０を選択して当該第１Ｄフリップフロップ４９に送出する。これにより第１Ｄフリップフロップ４９は、この後、変更後の所望の値（すなわち、入力用の値）の第１ポートデータＰＤ０を第１出力用バッファ２５に送出し続けることができる。
【０１５８】
因みに、第２ＡＮＤ回路４７は、第１入力用バッファ２９から第１ポートデータＰＤ０が入力されている。そして第２ＡＮＤ回路４７は、データ処理回路ブロック４０が、共に値が「１」のレジスタ選択信号ＲＳ１及び書込指示信号ＷＳ１を取り込んだときは、第１アドレスデコーダ４５から入力される出力信号の値が「１」に立ち上がっているものの、書込指示信号ＷＳ１を「１」の値から「０」の値に反転させて入力するため、第１ポートデータＰＤ０を元の値に関わらずに「０」の値にしてＯＲ回路５０に送出している。
【０１５９】
また第２ＡＮＤ回路４７は、データ処理回路ブロック４０に取り込んでいるレジスタ選択信号ＲＳ１及び書込指示信号ＷＳ１の値が共に「０」に立ち下がると、その書込指示信号ＷＳ１を「０」の値から「１」の値に反転させて入力するものの、第１アドレスデコーダ４５から入力される出力信号の値が「０」に立ち上がっているため、この場合も第１ポートデータＰＤ０を元の値に関わらずに「０」の値にしてＯＲ回路５０に送出している。
【０１６０】
次いで、中央処理ユニット１０が第２乃至第３ファームウェアに従いデータの書込用に、内部バス１２に出力しているレジスタ選択信号ＲＳ１の値、及び書込指示信号ＷＳ１の値を同時に「１」に立ち上げた１クロック周期で、その内部バス１２に第１アドレス信号ＡＳ１と共に、第１ポートデータＰＤ０以外の第２乃至第４ポートデータＰＤ１乃至ＰＤ３の書き込みを指示する第１乃至第８ライトデータＷＤ０乃至ＷＤ７を出力した場合のデータ処理回路ブロック４０の処理動作について説明する。
【０１６１】
この際も、第１アドレスデコーダ４５は、第１アドレス信号ＡＳ１と、値が「１」のレジスタ選択信号ＲＳ１とを取り込んでデコードすることで、データ処理回路ブロック４０がアクセスされたことを認識して、出力信号の値を「１」に立ち上げる。
【０１６２】
このとき、第１ＡＮＤ回路４６は、第５ライトデータＷＤ４と、値が「１」の書込指示信号ＷＳ１とを取り込む。ただし、第１ＡＮＤ回路４６は、この際、その第５ライトデータＷＤ４の値が、第１ポートデータＰＤ０の書き込みを禁止することを示す「０」の値であるため、第１マルチプレクサ４８に送出している第１書込許可データＰＤ４の値を「０」のままにする。
【０１６３】
従って、第１マルチプレクサ４８は、このとき第１ライトデータＷＤ０が与えられるものの、第１書込許可データＰＤ４の値が「０」に立ち下がっていることで、第１Ｄフリップフロップ４９から入力されていた第１ポートデータＰＤ０を選択して当該第１Ｄフリップフロップ４９に送出する。
【０１６４】
よって第１Ｄフリップフロップ４９は、クロック端子に入力されているクロック信号ＣＳ１に応じて、その第１ポートデータＰＤ０を再び保持すると共に、第１出力用バッファ２５に送出し、また第１マルチプレクサ４８に入力する。
【０１６５】
そして第１ＡＮＤ回路４６は、入力端子を介して取り込んでいた書込指示信号ＷＳ１の値が「１」から「０」に立ち下がっても、第１マルチプレクサ４８に送出している第１書込許可データＰＤ４の値を「０」に立ち下げたままにする。
【０１６６】
よって第１マルチプレクサ４８は、第１ポートデータＰＤ０を第１Ｄフリップフロップ４９に送出した後も、第１書込許可データＰＤ４の値（すなわち、「０」）に応じて、第１Ｄフリップフロップ４９から入力されていた第１ポートデータＰＤ０を選択して当該第１Ｄフリップフロップ４９に送出する。
【０１６７】
このようにしてデータ処理回路ブロック４０は、中央処理ユニット１０から第１ポートデータＰＤ０の書き込みが指示されないときには、すでに保持していた第１ポートデータＰＤ０を引き続き第１出力用バッファ２５に送出し続ける。
【０１６８】
因みに、第２ＡＮＤ回路４７は、この際も、上述と同様に第１入力用バッファ２９から入力されている第１ポートデータＰＤ０を元の値に関わらずに「０」の値にしてＯＲ回路５０に送出している。
【０１６９】
ところで、このデータ処理回路ブロック４０では、上述したように中央処理ユニット１０によってデータ書込用にアクセスされたとき、第１ポートデータＰＤ０の書き込みを許可する否かを示す第５ライトデータＷＤ４の値に応じて、第１ＡＮＤ回路４６から出力する第１書込許可データＰＤ４の値を変化させている。
【０１７０】
すなわち、第１ＡＮＤ回路４６は、第５ライトデータＷＤ４の値が、第１ポートデータＰＤ０の書き込みを許可することを示す「１」の場合、第１書込許可データＰＤ４の値を同一の「１」にし、その第５ライトデータＷＤ４の値が、第１ポートデータＰＤ０の書き込みを禁止することを示す「０」の場合、当該第１書込許可データＰＤ４の値を同一の「０」にしている。
【０１７１】
ただし、データ処理回路ブロック４０は、係る第１書込許可データＰＤ４の値を「１」に立ち上げても、中央処理ユニット１０によるデータ処理回路ブロック４０へのデータ書込用のアクセスが終了する（すなわち、第１ＡＮＤ回路４６に入力される書込指示信号ＷＳ１の値が立ち下がる）と、これに応じて当該第１書込許可データＰＤ４の値を「１」から「０」に立ち下げる。
【０１７２】
言い換えると、データ処理回路ブロック４０では、中央処理ユニット１０によりデータ書込用にアクセスされ、第１ポートデータＰＤ０の値の変更が指示されたときのみ、第１書込許可データＰＤ４の値を、第１ポートデータＰＤ０の書き込みを許可する「１」の値にし、これ以外では当該第１書込許可データＰＤ４の値を、その書き込みを禁止する「０」の値にしている。
【０１７３】
よってデータ処理回路ブロック４０では、中央処理ユニット１０により第１ポートデータＰＤ０の値を変更するように指示されていない状態で、第１マルチプレクサ４８の２個の入力端子のうち第１ライトデータＷＤ０の入力用の一方が第１Ｄフリップフロップ４９に導通して、ノイズ等により第１ポートデータＰＤ０の値が意図せずに変化することを防止している。
【０１７４】
続いて、中央処理ユニット１０が第１乃至第４ファームウェアに従いデータの読出用に、内部バス１２に出力している書込指示信号ＷＳ１の値を「０」に立ち下げたまま、レジスタ選択信号ＲＳ１の値を「１」に立ち上げた１クロック周期で、その内部バス１２に第１アドレス信号ＡＳ１を出力した場合のデータ処理回路ブロック４０の処理動作について説明する。
【０１７５】
この際も、第１アドレスデコーダ４５は、第１アドレス信号ＡＳ１と、値が「１」のレジスタ選択信号ＲＳ１とを取り込んでデコードすることで、データ処理回路ブロック４０がアクセスされたことを認識して、出力信号の値を「１」に立ち上げる。
【０１７６】
よって、第２ＡＮＤ回路４７は、このとき第１入力用バッファ２９から第１ポートデータＰＤ０が入力されているものの、第１アドレスデコーダ４５から入力される出力信号の値が「１」に立ち上がり、書込指示信号ＷＳ１を「０」の値から「１」の値に反転させて入力するため、第１ポートデータＰＤ０をそのままＯＲ回路５０に送出することができる。
【０１７７】
そしてデータレジスタ２１及び方向制御レジスタ２２は、中央処理ユニット１０により異なるタイミングでアクセスされるため、このとき後述するようにＯＲ回路５０には、方向制御回路ブロック４１から値が「０」の第１方向制御データＰＤ１０が与えられている。
【０１７８】
このためデータ処理回路ブロック４０は、このように中央処理ユニット１０からデータの読出用にアクセスされたときには、そのＯＲ回路５０から第１ポートデータＰＤ０を出力用の値、又は入力されたとき値のまま第１リードデータＲＤ０として読み出させることができる。
【０１７９】
またデータ処理回路ブロック４０では、上述した第１書込許可データＰＤ４をフリップフロップのような回路で特に保持してはいないが、第１ＡＮＤ回路４６から第１書込許可データＰＤ４を常に出力している。そしてデータ処理回路ブロック４０では、特に図示していないが、例えば、その第１ＡＮＤ回路４６から出力する第１書込許可データＰＤ４を第１マルチプレクサ４８の手前で分岐させて内部バス１２側へ出力している。
【０１８０】
またデータ処理回路ブロック４０では、上述したように中央処理ユニット１０により第１ポートデータＰＤ０の値の変更が指示されたとき以外は、第１書込許可データＰＤ４の値を「０」にしている。このため、データ処理回路ブロック４０は、中央処理ユニット１０からデータの読出用にアクセスされたとき、値を「０」にした第１書込許可データＰＤ４を第５リードデータＲＤ４として読み出させている。
【０１８１】
引き続き、中央処理ユニット１０が第１ファームウェアに従いデータの書込用に、内部バス１２に出力しているレジスタ選択信号ＲＳ１の値、及び書込指示信号ＷＳ１の値を同時に「１」に立ち上げた１クロック周期で、その内部バス１２に第２アドレス信号ＡＳ２と共に、第１方向制御データＰＤ１０の書き込みを指示する第１乃至第８ライトデータＷＤ０乃至ＷＤ７を出力した場合の方向制御回路ブロック４１の処理動作について説明する。
【０１８２】
因みに、方向制御回路ブロック４１において第２アドレスデコーダ５１も、第１アドレスデコーダ４５と同様に、当該方向制御回路ブロック４１が中央処理ユニット１０によりアクセスされたか否かを示す出力信号を第３ＡＮＤ回路５２及び第４ＡＮＤ回路５３に送出している。そして第２アドレスデコーダ５１は、その方向制御回路ブロック４１が中央処理ユニット１０によってアクセスされるまでは、出力信号の値を「０」に立ち下げている。
【０１８３】
また第３ＡＮＤ回路５２は、第５書込許可データＰＤ１４を書き込む許可データ書込部として機能するものであり、第１ＡＮＤ回路４６と同様に、第２マルチプレクサ５４に対し第５書込許可データＰＤ１４を送出している。そして第３ＡＮＤ回路５２は、中央処理ユニット１０により第１方向制御データＰＤ１０の書き込みが許可されるまでは、その第５書込許可データＰＤ１４の値を「０」に立ち下げている。
【０１８４】
この状態で第２アドレスデコーダ５１は、第２アドレス信号ＡＳ２と、値が「１」のレジスタ選択信号ＲＳ１とを取り込むと、これらをデコードすることで方向制御回路ブロック４１がアクセスされたことを認識し、これに応じて出力信号の値を「１」に立ち上げる。
【０１８５】
このとき、第３ＡＮＤ回路５２は、第５ライトデータＷＤ４と、値が「１」の書込指示信号ＷＳ１とを取り込む。そして第３ＡＮＤ回路５２は、この際、その第５ライトデータＷＤ４の値が、第１方向制御データＰＤ１０の書き込みを許可することを示す「１」の値であるため、第５書込許可データＰＤ１４の値を「１」に立ち上げる。
【０１８６】
ところで、第２マルチプレクサ５４は、第２Ｄフリップフロップ５５と共に第１方向制御データＰＤ１０を書き込むデータ書込部として機能するものであり、このとき第１ライトデータＷＤ０が与えられ、第５書込許可データＰＤ１４の値が「１」に立ち上がることで、その第１ライトデータＷＤ０を選択して第２Ｄフリップフロップ５５に送出する。
【０１８７】
これにより第２Ｄフリップフロップ５５は、クロック端子に入力されているクロック信号ＣＳ１に応じて、その第１ライトデータＷＤ０を、変更後の所望の値（すなわち、入出力方向制御用の値）を示す第１方向制御データＰＤ１０として保持すると共に、第１出力用バッファ２５及び第４ＡＮＤ回路５３に送出し、また第２マルチプレクサ５４に入力する。このようにしてデータ処理回路ブロック４０は、第１方向制御データＰＤ１０の値を変更することができる。
【０１８８】
そして第３ＡＮＤ回路５２は、例えば、入力端子を介して取り込んでいた書込指示信号ＷＳ１の値が「１」から「０」に立ち下がると、第２マルチプレクサ５４に送出している第５書込許可データＰＤ１４の値を「０」に立ち下げる。
【０１８９】
よって第２マルチプレクサ５４は、第１ライトデータＷＤ０を第２Ｄフリップフロップ５５に送出した後、第５書込許可データＰＤ１４の値が「０」に立ち下がると、第２Ｄフリップフロップ５５から入力されていた第１方向制御データＰＤ１０を選択して当該第２Ｄフリップフロップ５５に送出する。これにより第２Ｄフリップフロップ５５は、この後、値を変更した第１方向制御データＰＤ１０を第１出力用バッファ２５に送出し続けることができる。
【０１９０】
因みに、第４ＡＮＤ回路５３は、方向制御回路ブロック４１が、共に値が「１」のレジスタ選択信号ＲＳ１及び書込指示信号ＷＳ１を取り込んだときは、第２アドレスデコーダ５１から入力される出力信号の値が「１」に立ち上がっているものの、書込指示信号ＷＳ１を「１」の値から「０」の値に反転させて入力するため、第２Ｄフリップフロップ５５から与えられている第１方向制御データＰＤ１０を元の値に関わらずに「０」の値にしてＯＲ回路５０に送出している。
【０１９１】
また第４ＡＮＤ回路５３は、方向制御回路ブロック４１に取り込んでいるレジスタ選択信号ＲＳ１及び書込指示信号ＷＳ１の値が共に「０」に立ち下がると、書込指示信号ＷＳ１を「０」の値から「１」の値に反転させて入力するものの、第２アドレスデコーダ５１から入力される出力信号の値が「０」に立ち上がっているため、この場合も第１方向制御データＰＤ１０を元の値に関わらずに「０」の値にしてＯＲ回路５０に送出している。
【０１９２】
次いで、中央処理ユニット１０が第２乃至第４ファームウェアに従いデータの書込用に、内部バス１２に出力しているレジスタ選択信号ＲＳ１の値、及び書込指示信号ＷＳ１の値を同時に「１」に立ち上げた１クロック周期で、その内部バス１２に第２アドレス信号ＡＳ２と共に、第１方向制御データＰＤ１０以外の第２乃至第４方向制御データＰＤ１１乃至ＰＤ１３の書き込みを指示する第１乃至第８ライトデータＷＤ０乃至ＷＤ７を出力した場合の方向制御回路ブロック４１の処理動作について説明する。
【０１９３】
この際も、第２アドレスデコーダ５１は、第１アドレス信号ＡＳ１と、値が「１」のレジスタ選択信号ＲＳ１とを取り込んでデコードすることで、方向制御回路ブロック４１がアクセスされたことを認識して、出力信号の値を「１」に立ち上げる。
【０１９４】
このとき、第３ＡＮＤ回路５２は、第５ライトデータＷＤ４と、値が「１」の書込指示信号ＷＳ１とを取り込む。ただし、第３ＡＮＤ回路５２は、この際、その第５ライトデータＷＤ４の値が、第１方向制御データＰＤ１０の書き込みを禁止することを示す「０」の値であるため、第２マルチプレクサ５４に送出している第５書込許可データＰＤ１４の値を「０」のままにする。
【０１９５】
従って、第２マルチプレクサ５４は、このとき第１ライトデータＷＤ０が与えられるものの、第５書込許可データＰＤ１４の値が「０」に立ち下がっていることで、第２Ｄフリップフロップ５５から入力されていた第１方向制御データＰＤ１０を選択して当該第２Ｄフリップフロップ５５に送出する。
【０１９６】
よって第２Ｄフリップフロップ５５は、クロック端子に入力されているクロック信号ＣＳ１に応じて、第２マルチプレクサ５４から与えられた第１方向制御データＰＤ１０を再び保持すると共に、第１出力用バッファ２５及び第４ＡＮＤ回路５３に送出し、また第２マルチプレクサ５４に入力する。
【０１９７】
そして第３ＡＮＤ回路５２は、例えば、入力端子を介して取り込んでいた書込指示信号ＷＳ１の値が「１」から「０」に立ち下がると、第２マルチプレクサ５４に送出している第５書込許可データＰＤ１４の値を「０」に立ち下げたままにする。
【０１９８】
よって第２マルチプレクサ５４は、第１方向制御データＰＤ１０を第２Ｄフリップフロップ５５に送出した後も、第５書込許可データＰＤ１４の値（すなわち、「０」）に応じて、第２Ｄフリップフロップ５５から入力されていた第１方向制御データＰＤ１０を選択して当該第２Ｄフリップフロップ５５に送出する。
【０１９９】
このようにして方向制御回路ブロック４１は、中央処理ユニット１０から第１方向制御データＰＤ１０の書き込みが指示されないときには、すでに保持していた第１方向制御データＰＤ１０を引き続き第１出力用バッファ２５に送出し続ける。
【０２００】
因みに、第４ＡＮＤ回路５３は、この際も、上述と同様に第２Ｄフリップフロップ５５から入力されている第１方向制御データＰＤ１０を元の値に関わらずに「０」の値にしてＯＲ回路５０に送出している。
【０２０１】
ところで、この方向制御回路ブロック４１では、上述したように中央処理ユニット１０によってデータ書込用にアクセスされたとき、第１方向制御データＰＤ１０の書き込みを許可する否かを示す第５ライトデータＷＤ４の値に応じて、第３ＡＮＤ回路５２から出力する第５書込許可データＰＤ１４の値を変化させている。
【０２０２】
そして方向制御回路ブロック４１も、データ処理回路ブロック４０と同様に、中央処理ユニット１０によりデータ書込用にアクセスされ、第１方向制御データＰＤ１０の値を変更するように指示されたときのみ、第５書込許可データＰＤ１４の値を、その第１方向制御データＰＤ１０の書き込みを許可する「１」の値にし、これ以外では当該第５書込許可データＰＤ１４の値を、その書き込みを禁止する「０」の値にしている。
【０２０３】
よって方向制御回路ブロック４１でも、中央処理ユニット１０により第１方向制御データＰＤ１０の値を変更するように指示されていない状態で、第２マルチプレクサ５４の２個の入力端子のうち第１ライトデータＷＤ０の入力用の一方が第２Ｄフリップフロップ５５に導通して、ノイズ等により第１方向制御データＰＤ１０の値が意図せずに変化することを防止している。
【０２０４】
続いて、中央処理ユニット１０が第１乃至第４ファームウェアに従いデータの読出用に、内部バス１２に出力している書込指示信号ＷＳ１の値を「０」に立ち下げたまま、レジスタ選択信号ＲＳ１の値を「１」に立ち上げた１クロック周期で、その内部バス１２に第２アドレス信号ＡＳ２を出力した場合の方向制御回路ブロック４１の処理動作について説明する。
【０２０５】
この際も、第２アドレスデコーダ５１は、第１アドレス信号ＡＳ１と、値が「１」のレジスタ選択信号ＲＳ１とを取り込んでデコードすることで、方向制御回路ブロック４１がアクセスされたことを認識して、出力信号の値を「１」に立ち上げる。
【０２０６】
よって、第４ＡＮＤ回路５３は、このとき第２Ｄフリップフロップ５５から第１方向制御データＰＤ１０が入力されているものの、第２アドレスデコーダ５１から入力される出力信号の値が「１」に立ち上がり、書込指示信号ＷＳ１を「０」の値から「１」の値に反転させて入力するため、第１方向制御データＰＤ１０をそのままＯＲ回路５０に送出することができる。
【０２０７】
そしてＯＲ回路５０は、この際、上述したようにデータ処理回路ブロック４０の第２ＡＮＤ回路４７から値が「０」の第１ポートデータＰＤ０が与えられている。このため方向制御回路ブロック４１は、このように中央処理ユニット１０からデータの読出用にアクセスされたときには、そのＯＲ回路５０から第１方向制御データＰＤ１０を入出力方向制御用の値のまま第１リードデータＲＤ０として読み出させることができる。
【０２０８】
また方向制御回路ブロック４１でも、データ処理回路ブロック４０の場合と同様に、上述した第５書込許可データＰＤ１４を特に保持してはいないが、第３ＡＮＤ回路５２から第５書込許可データＰＤ１４を常に出力している。そして方向制御回路ブロック４１も、特に図示していないが、例えば、その第３ＡＮＤ回路５２から出力する第５書込許可データＰＤ１４を第２マルチプレクサ５４の手前で分岐させて内部バス１２側へ出力している。
【０２０９】
また方向制御回路ブロック４１は、上述したように中央処理ユニット１０により入出力方向制御用の値の第１方向制御データＰＤ１０の書き込みを許可するように指示されたとき以外は、第５書込許可データＰＤ１４の値を「０」にしている。このため、方向制御回路ブロック４１は、中央処理ユニット１０からデータの読出用にアクセスされたとき、値を「０」にした第５書込許可データＰＤ１４を第５リードデータＲＤ４として読み出させている。
【０２１０】
（１−４）データ書込処理及びデータ読出処理
次いで、図６に示すタイミングチャートを用いて、中央処理ユニット１０が実行するデータ書込処理及びデータ読出処理について説明する。なお、以下には、係るデータ書込処理及びデータ読出処理を、中央処理ユニット１０が第１ファームウェアに従いデータレジスタ２１に、何れも値が「０」の第１乃至第４ポートデータＰＤ０乃至ＰＤ３が保持されている状態で値が「１」の第１ポートデータＰＤ０を書き込み、これを読み出す場合を例にして説明する。
【０２１１】
中央処理ユニット１０は、例えば、データレジスタ２１が何れも値が「０」の第１乃至第４ポートデータＰＤ０乃至ＰＤ３を保持している第１クロック周期（図６（Ａ））では、内部バス１２に出力しているレジスタ選択信号ＲＳ１の値を「０」に立ち下げ（図６（Ｂ））、また書込指示信号ＷＳ１の値も「０」に立ち下げている（図６（Ｃ））。
【０２１２】
この状態で、中央処理ユニット１０は、データレジスタ２１に第１ポートデータＰＤ０を書き込む場合、例えば、次の第２クロック周期（図６（Ａ））で、内部バス１２に出力しているレジスタ選択信号ＲＳ１の値を「１」に立ち上げる（図６（Ｂ））と共に、書込指示信号ＷＳ１の値も「１」に立ち上げ（図６（Ｃ））、また内部バス１２に第１アドレス信号ＡＳ１を出力する（図６（Ｄ））と共に、第１乃至第８ライトデータＷＤ０乃至ＷＤ７を出力する（図６（Ｅ））。
【０２１３】
これによりデータレジスタ２１は、レジスタ選択信号ＲＳ１、第１アドレス信号ＡＳ１及び書込指示信号ＷＳ１を取り込みデコードして、中央処理ユニット１０からデータ書込用にアクセスされたことを認識する。そしてデータレジスタ２１は、次の第３クロック周期（図６（Ａ））で、中央処理ユニット１０から与えられた第１乃至第８ライトデータＷＤ０乃至ＷＤ７を用いて、上述した（１）式乃至（４）式に示す論理演算を行うことで、「１」の値の第１ポートデータＰＤ０を書き込むようにして保持すると共に、第２乃至第４ポートデータＰＤ１乃至ＰＤ３を元の値のまま保持する。
【０２１４】
このようにしてデータレジスタ２１は、第３クロック周期からは値が「１」の第１ポートデータＰＤ０を第１出力用バッファ２５に送出する（図６（Ｊ））と共に、値が元の「０」のままの第２乃至第４ポートデータＰＤ１乃至ＰＤ３を、対応する第２乃至第４出力用バッファ２６乃至２８に送出する（図６（Ｇ）乃至（Ｉ））。
【０２１５】
この状態で、中央処理ユニット１０は、データレジスタ２１から第１乃至第４ポートデータＰＤ０乃至ＰＤ４を読み出す場合、例えば、第７クロック周期（図６（Ａ））で、内部バス１２に出力している書込指示信号ＷＳ１の値を「０」に立ち下げた（図６（Ｃ））まま、レジスタ選択信号ＲＳ１の値を再び「１」に立ち上げ（図６（Ｂ））、また内部バス１２に第１アドレス信号ＡＳ１を出力する（図６（Ｄ））。
【０２１６】
これによりデータレジスタ２１は、レジスタ選択信号ＲＳ１、第１アドレス信号ＡＳ１及び書込指示信号ＷＳ１をデコードして、中央処理ユニット１０からデータ読出用にアクセスされたことを認識する。そしてデータレジスタ２１は、内部バス１２に第１乃至第４ポートデータＰＤ０乃至ＰＤ３を出力する（図６（Ｇ）乃至（Ｊ））と共に、何れも「０」の値の第１乃至第４書込許可データＰＤ１０乃至ＰＤ１３を出力することで、中央処理ユニット１０に、これらを第１乃至第８リードデータＲＤ０乃至ＲＤ７として読み出させることができる。
【０２１７】
このようにして中央処理ユニット１０は、第１乃至第４ファームウェアの何れに従いデータレジスタ２１にデータ書込用としてアクセスする場合でも、リードモディファイライト処理のような煩雑な処理を何ら実行することなく、そのデータレジスタ２１に対する１回の書込処理を実行するだけで、第１乃至第４ファームウェアに対応する１個の第１乃至第４ポートデータＰＤ０乃至ＰＤ３の値のみを変更し、他の３個の第１乃至第４ポートデータＰＤ０乃至ＰＤ３の値を変更しないようにすることができる。
【０２１８】
因みに、中央処理ユニット１０は、特に図示しないが、第１乃至第４ファームウェアの何れに従い方向制御レジスタ２２にデータ書込用としてアクセスする場合も、リードモディファイライト処理のような煩雑な処理を何ら実行することなく、その方向制御レジスタ２２に対する１回の書込処理を実行するだけで、第１乃至第４ファームウェアに対応する１個の第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３の値のみを変更し、他の３個の第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３の値を変更しないようにすることができる。
【０２１９】
すなわち、中央処理ユニット１０は、データレジスタ２１に対するデータ書込時、第１乃至第４ファームウェアに従い、図７に示すデータ書込処理手順ＲＴ１を開始する。中央処理ユニット１０は、係るデータ書込処理手順ＲＴ１を開始すると、ステップＳＰ１において、内部バス１２を介して、第１乃至第４ポートデータＰＤ０乃至ＰＤ３と、これらのうち何れの書き込みを許可し、また書き込みを禁止するかを示す第１乃至第４書込許可データＰＤ４乃至ＰＤ７とを第１乃至第８ライトデータＷＤ０乃至ＷＤ７として出力する。
【０２２０】
これにより中央処理ユニット１０は、データレジスタ２１において、第１乃至第８ライトデータＷＤ０乃至ＷＤ７に基づき、書き込みを許可した第１乃至第４ポートデータＰＤ０乃至ＰＤ３のみを書き込んで値を変更し、書き込みを禁止した第１乃至第４ポートデータＰＤ０乃至ＰＤ３については書き込まずに値の変更を回避する。そして中央処理ユニット１０は、次のステップＳＰ２に移り、係るデータ書込処理手順ＲＴ１を終了する。
【０２２１】
因みに、中央処理ユニット１０は、方向制御レジスタ２２に対するデータ書込時も、その図７が示すデータ書込処理手順ＲＴ１と同様のデータ書込処理手順を実行することで、その方向制御レジスタ２２において、第１乃至第８ライトデータＷＤ０乃至ＷＤ７に基づき、書き込みを許可した第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３のみを書き込んで値を変更し、書き込みを禁止した第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３については書き込まずに値の変更を回避することができる。
【０２２２】
（１−５）第１の実施の形態の動作及び効果
以上の構成において、ＦＡＸ１では、ＬＳＩ２に、中央処理ユニット１０を設けると共に、第１乃至第４ポート端子１５乃至１８と、データレジスタ２１及び方向制御レジスタ２２とを有するポート回路１１を設けるようにした。
【０２２３】
またＦＡＸ１では、そのデータレジスタ２１を、第１乃至第４ポート端子１５乃至１８を介して入出力する第１乃至第４ポートデータＰＤ０乃至ＰＤ３と、これら第１乃至第４ポートデータＰＤ０乃至ＰＤ３の書き込みを許可するか否かを示す第１乃至第４書込許可データＰＤ４乃至ＰＤ７とを書込可能に形成するようにした。
【０２２４】
さらにＦＡＸ１では、方向制御レジスタ２２を、第１乃至第４ポート端子１５乃至１８の入出力の方向を制御する第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３と、これら第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３の書き込みを許可するか否かを示す第５乃至第８書込許可データＰＤ１４乃至ＰＤ１７とを書込可能に形成するようにした。
【０２２５】
そしてＦＡＸ１において中央処理ユニット１０は、データレジスタ２１に対するデータ書込時、そのデータレジスタ２１に第１乃至第４ポートデータＰＤ０乃至ＰＤ３と、第１乃至第４書込許可データＰＤ４乃至ＰＤ７とを第１乃至第８ライトデータＷＤ０乃至ＷＤ７として送出する。これによりデータレジスタ２１は、中央処理ユニット１０から第１乃至第８ライトデータＷＤ０乃至ＷＤ７が与えられると、第１乃至第４書込許可データＰＤ４乃至ＰＤ７が書き込みを許可することを示す第１乃至第４ポートデータＰＤ０乃至ＰＤ３のみを書き込む。
【０２２６】
またＦＡＸ１において中央処理ユニット１０は、方向制御レジスタ２２に対するデータ書込時、その方向制御レジスタ２２に第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３と、第５乃至第８書込許可データＰＤ１４乃至ＰＤ１７とを第１乃至第８ライトデータＷＤ０乃至ＷＤ７として送出する。これにより方向制御レジスタ２２は、中央処理ユニット１０から第１乃至第８ライトデータＷＤ０乃至ＷＤ７が与えられると、第５乃至第８書込許可データＰＤ１４乃至ＰＤ１７が書き込みを許可することを示す第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３のみを書き込む。
【０２２７】
従って、ＦＡＸ１は、データレジスタ２１に対するデータ書込時、リードモディファイライト処理を行わなくても、データレジスタ２１に第１乃至第８ライトデータＷＤ０乃至ＷＤ７として第１乃至第４ポートデータＰＤ０乃至ＰＤ３と第１乃至第４書込許可データＰＤ４乃至ＰＤ７とを与えるだけで、そのデータレジスタ２１に第１乃至第４書込許可データＰＤ４乃至ＰＤ７によって書き込みが許可された第１乃至第４ポートデータＰＤ０乃至ＰＤ３のみを書き込むことができる。
【０２２８】
またＦＡＸ１は、方向制御レジスタ２２に対するデータ書込時、リードモディファイライト処理を行わなくても、方向制御レジスタ２２に第１乃至第８ライトデータＷＤ０乃至ＷＤ７として第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３と第５乃至第８書込許可データＰＤ１４乃至ＰＤ１７とを与えるだけで、その方向制御レジスタ２２に第５乃至第８書込許可データＰＤ１４乃至ＰＤ１７によって書き込みが許可された第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３のみを書き込むことができる。
【０２２９】
以上の構成によれば、ＦＡＸ１のポート回路１１において、データレジスタ２１を、第１乃至第４ポートデータＰＤ０乃至ＰＤ３と、これら第１乃至第４ポートデータＰＤ０乃至ＰＤ３の書き込みを許可するか否かを示す第１乃至第４書込許可データＰＤ４乃至ＰＤ７とを書込可能に形成し、方向制御レジスタ２２を、第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３と、これら第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３の書き込みを許可するか否かを示す第５乃至第８書込許可データＰＤ１４乃至ＰＤ１７とを書込可能に形成するようにした。
【０２３０】
これによりＦＡＸ１は、データレジスタ２１に対しリードモディファイライト処理を行わなくても、第１乃至第４ポートデータＰＤ０乃至ＰＤ３と第１乃至第４書込許可データＰＤ４乃至ＰＤ７とを与えるだけで、第１乃至第４書込許可データＰＤ４乃至ＰＤ７によって書き込みが許可された第１乃至第４ポートデータＰＤ０乃至ＰＤ３のみを書き込むことができると共に、方向制御レジスタ２２に対してもリードモディファイライト処理を行うことなく、第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３と第５乃至第８書込許可データＰＤ１４乃至ＰＤ１７とを与えるだけで、第５乃至第８書込許可データＰＤ１４乃至ＰＤ１７によって書き込みが許可された第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３のみを書き込むことができる。よってＦＡＸ１は、データレジスタ２１や方向制御レジスタ２２に書き込んでいる第１乃至第４ポートデータＰＤ０乃至ＰＤ３や第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３の値を変更するための処理を格段的に簡易化することができる。
【０２３１】
またＦＡＸ１は、このようにデータレジスタ２１や方向制御レジスタ２２に対しリードモディファイライト処理を行わなくても、第１乃至第４ポートデータＰＤ０乃至ＰＤ３の値や第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３の値を変更し得るため、これらの処理に使用する第１乃至第４ファームウェアの構成を大幅に簡易化することができる。
【０２３２】
さらにＦＡＸ１は、係る構成により、中央処理ユニット１０が複数の第１乃至第４ファームウェアに従い複数の電気部品４の制御にポート回路１１を共有するものの、これら第１乃至第４ファームウェアに従いデータレジスタ２１や方向制御レジスタ２２にデータ書込用にアクセスする際の排他制御を行わなくてよくすることもできる。
【０２３３】
またＦＡＸ１では、データレジスタ２１において、第１乃至第４書込許可データＰＤ４乃至ＰＤ７によって書き込みが許可された第１乃至第４ポートデータＰＤ０乃至ＯＤ３を書き込んだ場合、その書き込みを許可することを示していた第１乃至第４書込許可データＰＤ４乃至ＰＤ７を、書き込みを禁止することを示すように変更するようにした。
【０２３４】
さらにＦＡＸ１では、方向制御レジスタ２２においても、第５乃至第８書込許可データＰＤ１４乃至ＰＤ１７によって書き込みが許可された第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３を書き込んだ場合、その書き込みを許可することを示していた第５乃至第８書込許可データＰＤ１４乃至ＰＤ１７を、書き込みを禁止することを示すように変更するようにした。これによりＦＡＸ１では、値を変更しない第１乃至第４ポートデータＰＤ０乃至ＰＤ３や第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３の値がノイズ等により意図せずに変化することを防止することができる。
【０２３５】
（２）第２の実施の形態
（２−１）ＦＡＸの回路構成
次いで、図１との対応部分に同一符号を付した図８を用いて、第２の実施の形態によるＦＡＸ７０の構成について説明する。第２の実施の形態によるＦＡＸ７０は、回路基板３に実装されるＬＳＩ７１の構成を除いて、上述した第１の実施の形態によるＦＡＸ１と同様に構成されている。
【０２３６】
（２−２）ＬＳＩの回路構成
次いで、図２との対応部分に同一符号を付した図９を用いて、ＬＳＩ７１の回路構成について説明する。ＬＳＩ７１は、ポート回路７２が設けられている。またポート回路７２は、２種類の電気部品４との間で第１及び第２ポート端子１５及び１６を介して第１及び第２ポートデータＰＤ０及びＰＤ１の入出力を行い、また第１及び第２方向制御データＰＤ１０及びＰＤ１１により、その第１及び第２ポート端子１５及び１６の入出力の方向を個別に制御するレジスタ（以下、これを第１ポートレジスタとも呼ぶ）７３を有している。
【０２３７】
さらにポート回路７２は、残りの２種類の電気部品４との間で第３及び第４ポート端子１７及び１８を介して第３及び第４ポートデータＰＤ２及びＰＤ３の入出力を行い、また第３及び第４方向制御データＰＤ１２及びＰＤ１３により、その第３及び第４ポート端子１７及び１８の入出力の方向を個別に制御するレジスタ（以下、これを第２ポートレジスタとも呼ぶ）７４も有している。
【０２３８】
この場合、第１ポートレジスタ７３は、上述した第１の実施の形態によるデータレジスタ２１において第１及び第２ポート端子１５及び１６を介した第１及び第２ポートデータＰＤ０及びＰＤ１の入出力の処理を行う部分と、方向制御レジスタ２２において第１及び第２ポート端子１５及び１６の入出力の方向を制御する処理を行う部分とを合わせたように構成されている。
【０２３９】
よって、第１ポートレジスタ７３は、第１及び第２データ出力線を介して第１及び第２出力用バッファ２５及び２６の入力端子に接続されると共に、第１及び第２データ入力線を介して第１及び第２入力用バッファ２９及び３０の出力端子に接続されている。また第１ポートレジスタ７３は、第１及び第２制御線を介して第１及び第２出力用バッファ２５及び２６の制御端子に接続されている。そして第１ポートレジスタ７３は、これを個別に識別可能な第１アドレスが割り当てられており、内部バス１２を介して中央処理ユニット１０に接続されている。
【０２４０】
一方、第２ポートレジスタ７４は、上述した第１の実施の形態によるデータレジスタ２１において第３及び第４ポート端子１７及び１８を介した第３及び第４ポートデータＰＤ２及びＰＤ３の入出力の処理を行う部分と、方向制御レジスタ２２において第３及び第４ポート端子１７及び１８の入出力の方向を制御する処理を行う部分とを合わせたように構成されている。
【０２４１】
よって、第２ポートレジスタ７４は、第３及び第４データ出力線を介して第３及び第４出力用バッファ２７及び２８の入力端子に接続されると共に、第３及び第４データ入力線を介して第３及び第４入力用バッファ３１及び３２の出力端子に接続されている。また第２ポートレジスタ７４は、第３及び第４制御線を介して第３及び第４出力用バッファ２７及び２８の制御端子に接続されている。そして第２ポートレジスタ７４は、これを個別に識別可能な第２アドレスが割り当てられており、内部バス１２を介して中央処理ユニット１０に接続されている。
【０２４２】
実際、図１０に示すように、第１ポートレジスタ７３は、８ビットのデータを書込及び読出可能に形成されており、その８ビットのデータとして例えば、ビット０及びビット１の２ビットに、第１及び第２ポートデータＰＤ０及びＰＤ１が割り当てられると共に、ビット２及びビット３の２ビットに、第１及び第２書込許可データＰＤ４及びＰＤ５が割り当てられている。また第１ポートレジスタ７３は、その８ビットのデータとして例えば、ビット４及びビット５の２ビットに、第１及び第２方向制御データＰＤ１０及びＰＤ１１が割り当てられると共に、ビット６及びビット７の２ビットに、第５及び第６書込許可データＰＤ１４及びＰＤ１５が割り当てられている。
【０２４３】
このため、中央処理ユニット１０は、第１ポートレジスタ７３へのデータ書込時、第１及び第２ファームウェアに従い、変更後の値（例えば、変更後の出力用の値）又は任意選定値を示す第１及び第２ポートデータＰＤ０及びＰＤ１を第１及び第２ライトデータＷＤ０及びＷＤ１とし、第１及び第２書込許可データＰＤ４及びＰＤ５を第３及び第４ライトデータＷＤ２及びＷＤ３とし、変更後の値（例えば、変更後の入出力方向制御用の値）又は任意選定値を示す第１及び第２方向制御データＰＤ１０及びＰＤ１１を第５及び第６ライトデータＷＤ４及びＷＤ５とし、第５及び第６書込許可データＰＤ１４及びＰＤ１５を第７及び第８ライトデータＷＤ６及びＷＤ７として第１ポートレジスタ７３に送出している。
【０２４４】
よって、中央処理ユニット１０は、例えば、第１ファームウェアに従い第１ポートレジスタ７３にデータ書込用にアクセスする場合、第１及び第３ライトデータＷＤ０及びＷＤ２の値と、第５及び第７ライトデータＷＤ４及びＷＤ６の値とにより、その第１ポートレジスタ７３に対し第１ポートデータＰＤ０と第１方向制御データＰＤ１０との何れか一方の値を変更し、また両方の値を同時に変更するように指示することができる。
【０２４５】
また中央処理ユニット１０は、例えば、第２ファームウェアに従い第１ポートレジスタ７３にデータ書込用にアクセスする場合、第２及び第４ライトデータＷＤ１及びＷＤ３の値と、第６及び第８ライトデータＷＤ５及びＷＤ７の値とにより、その第１ポートレジスタ７３に対し第２ポートデータＰＤ１と第２方向制御データＰＤ１１との何れか一方の値を変更し、また両方の値を同時に変更するように指示することができる。
【０２４６】
そして第１ポートレジスタ７３は、中央処理ユニット１０から第１乃至第８ライトデータＷＤ０乃至ＷＤ７が与えられると、これら第１乃至第８ライトデータＷＤ０乃至ＷＤ７の値と、すでに保持している第１及び第２ポートデータＰＤ０及びＰＤ１の値、並びに第１及び第２方向制御データＰＤ１０及びＰＤ１１の値とを用いて、上述した（１）式及び（２）式並びに（５）式及び（６）式に示す論理演算を行う。
【０２４７】
これにより第１ポートレジスタ７３は、中央処理ユニット１０から第１ファームウェアに従い、対応する値の第１乃至第８ライトデータＷＤ０乃至ＷＤ７が与えられた場合、その第１ファームウェアに対応する第１ポートデータＰＤ０及び第１方向制御データＰＤ１０の一方の値や両方の値を変更して保持し、他の第２ポートデータＰＤ１及び第２方向制御データＰＤ１１については何れも値を変更せずに、そのまま継続して保持することができる。
【０２４８】
また第１ポートレジスタ７３は、中央処理ユニット１０から第２ファームウェアに従い、対応する値の第１乃至第８ライトデータＷＤ０乃至ＷＤ７が与えられた場合、その第２ファームウェアに対応する第２ポートデータＰＤ１及び第２方向制御データＰＤ１１の一方の値や両方の値を変更して保持し、他の第１ポートデータＰＤ０及び第１方向制御データＰＤ１０については何れも値を変更せずに、そのまま継続して保持することができる。
【０２４９】
従って、第１ポートレジスタ７３は、中央処理ユニット１０が第１及び第２ファームウェアの何れに従ってデータの書込用にアクセスする場合でも、リードモディファイライト処理を行わせることなく、そのアクセスに使用された第１及び第２ファームウェアに対応する１組の第１及び第２ポートデータＰＤ０及びＰＤ１並びに第１及び第２方向制御データＰＤ１０及びＰＤ１１の値のみを変更し、他の１組の第１及び第２ポートデータＰＤ０及びＰＤ１並びに第１及び第２方向制御データＰＤ１０及びＰＤ１１の値を意図せずに変更することを防止することができる。
【０２５０】
一方、第２ポートレジスタ７４も、特に図示しないが、８ビットのデータを書込及び読出可能に形成されており、その８ビットのデータとして例えば、ビット０及びビット１の２ビットに、第３及び第４ポートデータＰＤ２及びＰＤ３が割り当てられると共に、ビット２及びビット３の２ビットに、第３及び第４書込許可データＰＤ６及びＰＤ７が割り当てられている。また第２ポートレジスタ７４は、その８ビットのデータとして例えば、ビット４及びビット５の２ビットに、第３及び第４方向制御データＰＤ１２及びＰＤ１３が割り当てられると共に、ビット６及びビット７の２ビットに、第７及び第８書込許可データＰＤ１６及びＰＤ１７が割り当てられている。
【０２５１】
このため、中央処理ユニット１０は、第２ポートレジスタ７４へのデータ書込時、第３及び第４ファームウェアに従い、変更後の値（例えば、変更後の出力用の値）又は任意選定値を示す第３及び第４ポートデータＰＤ２及びＰＤ３を第１及び第２ライトデータＷＤ０及びＷＤ１とし、第３及び第４書込許可データＰＤ６及びＰＤ７を第３及び第４ライトデータＷＤ２及びＷＤ３とし、変更後の値（例えば、変更後の入出力方向制御用の値）又は任意選定値を示す第３及び第４方向制御データＰＤ１２及びＰＤ１３を第５及び第６ライトデータＷＤ４及びＷＤ５とし、第７及び第８書込許可データＰＤ１６及びＰＤ１７を第７及び第８ライトデータＷＤ６及びＷＤ７として第２ポートレジスタ７４に送出している。
【０２５２】
よって、中央処理ユニット１０は、例えば、第３ファームウェアに従い第２ポートレジスタ７４にデータ書込用にアクセスする場合、第１及び第３ライトデータＷＤ０及びＷＤ２の値と、第５及び第７ライトデータＷＤ４及びＷＤ６の値とにより、その第２ポートレジスタ７４に対し第３ポートデータＰＤ２と第３方向制御データＰＤ１２との何れか一方の値を変更し、また両方の値を同時に変更するように指示することができる。
【０２５３】
また中央処理ユニット１０は、例えば、第４ファームウェアに従い第２ポートレジスタ７４にデータ書込用にアクセスする場合、第２及び第４ライトデータＷＤ１及びＷＤ３の値と、第６及び第８ライトデータＷＤ５及びＷＤ７の値とにより、その第２ポートレジスタ７４に対し第４ポートデータＰＤ３と第４方向制御データＰＤ１３との何れか一方の値を変更し、また両方の値を同時に変更するように指示することができる。
【０２５４】
そして第２ポートレジスタ７４は、中央処理ユニット１０から第１乃至第８ライトデータＷＤ０乃至ＷＤ７が与えられると、これら第１乃至第８ライトデータＷＤ０乃至ＷＤ７の値と、すでに保持している第３及び第４ポートデータＰＤ２及びＰＤ３の値、並びに第３及び第４方向制御データＰＤ１２及びＰＤ１３の値とを用いて、上述した（２）式及び（４）式並びに（６）式及び（８）式に示す論理演算を行う。
【０２５５】
これにより第２ポートレジスタ７４は、中央処理ユニット１０から第３ファームウェアに従い、対応する値の第１乃至第８ライトデータＷＤ０乃至ＷＤ７が与えられた場合、その第３ファームウェアに対応する第３ポートデータＰＤ２及び第３方向制御データＰＤ１２の一方の値や両方の値を変更して保持し、他の第４ポートデータＰＤ３及び第４方向制御データＰＤ１３については何れも値を変更せずに、そのまま継続して保持することができる。
【０２５６】
また第２ポートレジスタ７４は、中央処理ユニット１０から第４ファームウェアに従い、対応する値の第１乃至第８ライトデータＷＤ０乃至ＷＤ７が与えられた場合、その第４ファームウェアに対応する第４ポートデータＰＤ３及び第４方向制御データＰＤ１３の一方の値や両方の値を変更して保持し、他の第３ポートデータＰＤ２及び第３方向制御データＰＤ１２については何れも値を変更せずに、そのまま継続して保持することができる。
【０２５７】
従って、第２ポートレジスタ７４は、中央処理ユニット１０が第３及び第４ファームウェアの何れに従ってデータの書込用にアクセスする場合でも、リードモディファイライト処理を行わせることなく、そのアクセスに使用された第３及び第４ファームウェアに対応する１組の第３及び第４ポートデータＰＤ２及びＰＤ３並びに第３及び第４方向制御データＰＤ１２及びＰＤ１３の値のみを変更し、他の１組の第３及び第４ポートデータＰＤ２及びＰＤ３並びに第３及び第４方向制御データＰＤ１２及びＰＤ１３の値を意図せずに変更することを防止することができる。
【０２５８】
（２−３）第１ポートレジスタ及び第２ポートレジスタの回路構成
次いで、図５との対応部分に同一符号を付した図１１を用いて、第１ポートレジスタ７３及び第２ポートレジスタ７４の回路構成について説明する。第１ポートレジスタ７３は、互いに異なる第１及び第２ポート端子１５及び１６について第１及び第２ポートデータＰＤ０及びＰＤ１を入出力し、また当該入出力の方向を制御する２個の回路ブロック７５を有している。また第２ポートレジスタ７４も、互いに異なる第３及び第４ポート端子１７及び１８について第３及び第４ポートデータＰＤ２及びＰＤ３を入出力し、また当該入出力の方向を制御する２個の回路ブロックを有している。
【０２５９】
ただし、第１ポートレジスタ７３の２個の回路ブロック７５と、第２ポートレジスタ７４の２個の回路ブロックとは、何れも、扱う第１乃至第４ポートデータＰＤ０乃至ＰＤ３、第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３、第１乃至第８ライトデータＷＤ０乃至ＷＤ７、第１乃至第８リードデータＲＤ０乃至ＲＤ７が異なるだけで、上述したデータレジスタ２１の１個のデータ処理回路ブロック４０と方向制御レジスタ２２の１個の方向制御回路ブロック４１とを合わせたような同一の構成を有している。
【０２６０】
このため、以下には、第１ポートレジスタ７３及び第２ポートレジスタ７４の回路構成として、第１ポート端子１５を介した第１ポートデータＰＤ０の入出力を制御する第１ポートレジスタ７３の１個の回路ブロック７５の回路構成についてのみ説明し、第１ポートレジスタ７３の他の１個の回路ブロックの構成と、第２ポートレジスタ７４の２個の回路ブロックの回路構成とについては説明を省略する。因みに、図１１には、第１ポートレジスタ７３の１個の回路ブロックの回路構成のみを示している。
【０２６１】
第１ポートレジスタ７３において回路ブロック７５は、データ書込時、第１アドレスデコーダ４５及び第２アドレスデコーダ５１が、内部バス１２を介して第１アドレス信号ＡＳ１及びレジスタ選択信号ＲＳ１を同時に入力するように構成されている。また回路ブロック７５は、第１ＡＮＤ回路４６及び第３ＡＮＤ回路５２が、内部バス１２を介して第３ライトデータＷＤ２及び第７ライトデータＷＤ６を同時に入力するように構成されている。
【０２６２】
さらに回路ブロック７５は、第１マルチプレクサ４８及び第２マルチプレクサ５４に、内部バス１２を介して第１ライトデータＷＤ０及び第５ライトデータＷＤ４が同時に与えられるように構成されている。これにより回路ブロック７５は、第１ポートデータＰＤ０の値、及び第１方向制御データＰＤ１０の値の何れか一方を変更することができ、また当該第１ポートデータＰＤ０の値、及び第１方向制御データＰＤ１０の値を同時に変更することもできる。
【０２６３】
因みに、ポート回路７２には、第１の実施の形態のポート回路１１に設けられていたＯＲ回路５０が設けられていない。よって回路ブロック７５は、第２ＡＮＤ回路４７の出力端子及び第４ＡＮＤ回路５３の出力端子が内部バス１２に接続されている。これにより回路ブロック７５は、データ読出時、中央処理ユニット１０が第１ポートデータＰＤ０及び第１方向制御データＰＤ１０を第１リードデータＲＤ０及び第５リードデータＲＤ４として同時に読み出せるようにしている。
【０２６４】
（２−４）データ書込処理及びデータ読出処理
次いで、図１２に示すタイミングチャートを用いて、中央処理ユニット１０が実行するデータ書込処理及びデータ読出処理について説明する。なお、以下には、係るデータ書込処理及びデータ読出処理を、中央処理ユニット１０が第１ファームウェアに従い第１ポートレジスタ７３に、何れも値が「０」の第１及び第２ポートデータＰＤ０及びＰＤ１並びに第１及び第２方向制御データＰＤ１０及びＰＤ１１が保持されている状態で、何れも値が「１」の第１ポートデータＰＤ０及び第１方向制御データＰＤ１０を同時に書き込み、これを読み出す場合を例にして説明する。
【０２６５】
中央処理ユニット１０は、例えば、第１ポートレジスタ７３が何れも値が「０」の第１及び第２ポートデータＰＤ０及びＰＤ１並びに第１及び第２方向制御データＰＤ１０及びＰＤ１１を保持している第１クロック周期（図１２（Ａ））では、内部バス１２に出力しているレジスタ選択信号ＲＳ１の値を「０」に立ち下げ（図１２（Ｂ））、また書込指示信号ＷＳ１の値も「０」に立ち下げている（図１２（Ｃ））。
【０２６６】
この状態で、中央処理ユニット１０は、第１ポートレジスタ７３に第１ポートデータＰＤ０及び第１方向制御データＰＤ１０を書き込む場合、例えば、次の第２クロック周期（図１２（Ａ））で、内部バス１２に出力しているレジスタ選択信号ＲＳ１の値を「１」に立ち上げる（図１２（Ｂ））と共に、書込指示信号ＷＳ１の値も「１」に立ち上げ（図１２（Ｃ））、また内部バス１２に第１アドレス信号ＡＳ１を出力する（図１２（Ｄ））と共に、第１乃至第８ライトデータＷＤ０乃至ＷＤ７を出力する（図１２（Ｅ））。
【０２６７】
これにより第１ポートレジスタ７３は、レジスタ選択信号ＲＳ１、第１アドレス信号ＡＳ１及び書込指示信号ＷＳ１を取り込みデコードして、中央処理ユニット１０からデータ書込用にアクセスされたことを認識する。そして第１ポートレジスタ７３は、次の第３クロック周期（図１２（Ａ））で、中央処理ユニット１０から与えられた第１乃至第８ライトデータＷＤ０乃至ＷＤ７を用いて、上述した（１）式及び（２）式並びに（５）式及び（６）式に示す論理演算を行うことで、何れも「１」の値の第１ポートデータＰＤ０及び第１方向制御データＰＤ１０を書き込むようにして保持すると共に、第２ポートデータＰＤ１及び第２方向制御データＰＤ１１を元の値のまま保持する。
【０２６８】
このようにして第１ポートレジスタ７３は、第３クロック周期からは値が「１」の第１ポートデータＰＤ０及び第１方向制御データＰＤ１０を第１出力用バッファ２５に送出する（図１２（Ｊ）及び（Ｈ））と共に、値が元の「０」のままの第２ポートデータＰＤ１及び第２方向制御データＰＤ１１を、対応する第２出力用バッファ２６に送出する（図１２（Ｉ）及び（Ｇ））。
【０２６９】
この状態で、中央処理ユニット１０は、第１ポートレジスタ７３から第１及び第２ポートデータＰＤ０及びＰＤ１並びに第１及び第２方向制御データＰＤ１０及びＰＤ１１を読み出す場合、例えば、第７クロック周期（図１２（Ａ））で、内部バス１２に出力している書込指示信号ＷＳ１の値を「０」に立ち下げた（図１２（Ｃ））まま、レジスタ選択信号ＲＳ１の値を再び「１」に立ち上げ（図１２（Ｂ））、また内部バス１２に第１アドレス信号ＡＳ１を出力する（図１２（Ｄ））。
【０２７０】
これにより第１ポートレジスタ７３は、レジスタ選択信号ＲＳ１、第１アドレス信号ＡＳ１及び書込指示信号ＷＳ１をデコードして、中央処理ユニット１０からデータ読出用にアクセスされたことを認識する。そして第１ポートレジスタ７３は、内部バス１２に第１及び第２ポートデータＰＤ０及びＰＤ１並びに第１及び第２方向制御データＰＤ１０及びＰＤ１１を出力する（図１２（Ｇ）乃至（Ｊ））と共に、何れも値が「０」の第１及び第２並びに第５及び第６書込許可データＰＤ１０及びＰＤ１１並びにＰＤ１４及びＰＤ１５を出力することで、中央処理ユニット１０に、これらを第１乃至第８リードデータＲＤ０乃至ＲＤ７として読み出させることができる。
【０２７１】
このようにして中央処理ユニット１０は、第１及び第２ファームウェアの何れに従い第１ポートレジスタ７３にデータ書込用にアクセスする場合でも、リードモディファイライト処理のような煩雑な処理を何ら実行することなく、その第１ポートレジスタ７３に対する１回の書込処理を実行するだけで、第１及び第２ファームウェアに対応する１組の第１及び第２ポートデータＰＤ０及びＰＤ１並びに第１及び第２方向制御データＰＤ１０及びＰＤ１１の値のみを変更し、他の１組の第１及び第２ポートデータＰＤ０及びＰＤ１並びに第１及び第２方向制御データＰＤ１０及びＰＤ１１の値を変更しないようにすることができる。
【０２７２】
因みに、中央処理ユニット１０は、特に図示しないが、第３及び第４ファームウェアの何れに従い第２ポートレジスタ７４にデータ書込用にアクセスする場合も、リードモディファイライト処理のような煩雑な処理を何ら実行することなく、その第２ポートレジスタ７４に対する１回の書込処理を実行するだけで、第１乃至第４ファームウェアに対応する１組の第３及び第４ポートデータＰＤ２及びＰＤ３並びに第３及び第４方向制御データＰＤ１２及びＰＤ１３の値のみを変更し、他の１組の第３及び第４ポートデータＰＤ２及びＰＤ３並びに第３及び第４方向制御データＰＤ１２及びＰＤ１３の値を変更しないようにすることができる。
【０２７３】
（２−５）第２の実施の形態の動作及び効果
以上の構成において、ＦＡＸ７０では、ＬＳＩ７１に、中央処理ユニット１０を設けると共に、第１乃至第４ポート端子１５乃至１８と、第１ポートレジスタ７３及び第２ポートレジスタ７４とを有するポート回路７２を設けるようにした。
【０２７４】
そしてＦＡＸ７０では、第１ポートレジスタ７３を、第１及び第２ポートデータＰＤ０及びＰＤ１と、これら第１及び第２ポートデータＰＤ０及びＰＤ１の書き込みを許可するか否かを示す第１及び第２書込許可データＰＤ４及びＰＤ５と、第１及び第２方向制御データＰＤ１０及びＰＤ１１と、これら第１及び第２方向制御データＰＤ１０及びＰＤ１１の書き込みを許可するか否かを示す第５及び第６書込許可データＰＤ１４及びＰＤ１５とを書込可能に形成するようにした。
【０２７５】
またＦＡＸ７０では、第２ポートレジスタ７４を、第３及び第４ポートデータＰＤ２及びＰＤ３と、これら第３及び第４ポートデータＰＤ２及びＰＤ３の書き込みを許可するか否かを示す第３及び第４書込許可データＰＤ６及びＰＤ７と、第３及び第４方向制御データＰＤ１２及びＰＤ１３と、これら第３及び第４方向制御データＰＤ１２及びＰＤ１３の書き込みを許可するか否かを示す第７及び第８書込許可データＰＤ１６及びＰＤ１７とを書込可能に形成するようにした。
【０２７６】
そしてＦＡＸ７０において中央処理ユニットは、第１ポートレジスタ７３に対するデータ書込時、その第１ポートレジスタ７３に第１及び第２ポートデータＰＤ０及びＰＤ１と、第１及び第２書込許可データＰＤ４及びＰＤ５と、第１及び第２方向制御データＰＤ１０及びＰＤ１１と、第５及び第６書込許可データＰＤ１４及びＰＤ１５とを第１乃至第８ライトデータＷＤ０乃至ＷＤ７として送出する。
【０２７７】
これにより第１ポートレジスタ７３は、中央処理ユニット１０から第１乃至第８ライトデータＷＤ０乃至ＷＤ７が与えられると、第１及び第２書込許可データＰＤ４及びＰＤ５並びに第５及び第６書込許可データＰＤ１４及びＰＤ１５に応じて、第１ポートデータＰＤ０及び第１方向制御データＰＤ１０を同時に書き込み、また第２ポートデータＰＤ１及び第２方向制御データＰＤ１１を同時に書き込むことができる。
【０２７８】
またＦＡＸ７０において中央処理ユニットは、第２ポートレジスタ７４に対するデータ書込時、その第２ポートレジスタ７４に第３及び第４ポートデータＰＤ２及びＰＤ３と、第３及び第４書込許可データＰＤ６及びＰＤ７と、第３及び第４方向制御データＰＤ１２及びＰＤ１３と、第７及び第８書込許可データＰＤ１６及びＰＤ１７とを第１乃至第８ライトデータＷＤ０乃至ＷＤ７として送出する。
【０２７９】
これにより第２ポートレジスタ７４は、中央処理ユニット１０から第１乃至第８ライトデータＷＤ０乃至ＷＤ７が与えられると、第３及び第４書込許可データＰＤ６及びＰＤ７並びに第７及び第８書込許可データＰＤ１６及びＰＤ１７に応じて、第３ポートデータＰＤ２及び第３方向制御データＰＤ１２を同時に書き込み、また第４ポートデータＰＤ３及び第４方向制御データＰＤ１３を同時に書き込むことができる。
【０２８０】
従って、ＦＡＸ７０は、第１ポートレジスタ７３に対するデータ書込時、第１ファームウェアに対応する第１ポートデータＰＤ０及び第１方向制御データＰＤ１０の値を同時に変更するようにして、第１ポート端子１５に対する第１ポートデータＰＤ０の値及び入出力の方向の制御を同時に行うことができ、また第２ファームウェアに対応する第２ポートデータＰＤ１及び第２方向制御データＰＤ１１の値を同時に変更するようにして、第２ポート端子１６に対する第２ポートデータＰＤ１の値及び入出力の方向の制御を同時に行うことができる。
【０２８１】
またＦＡＸ７０は、第２ポートレジスタ７４に対するデータ書込時、第３ファームウェアに対応する第３ポートデータＰＤ２及び第３方向制御データＰＤ１２の値を同時に変更するようにして、第３ポート端子１７に対する第３ポートデータＰＤ２の値及び入出力の方向の制御を同時に行うことができ、また第４ファームウェアに対応する第４ポートデータＰＤ３及び第４方向制御データＰＤ１３の値を同時に変更するようにして、第４ポート端子１８に対する第４ポートデータＰＤ３の値及び入出力の方向の制御を同時に行うことができる。
【０２８２】
以上の構成によれば、ＦＡＸ７０のポート回路７２において、第１ポートレジスタ７３を、第１及び第２ポートデータＰＤ０及びＰＤ１と、これら第１及び第２ポートデータＰＤ０及びＰＤ１の書き込みを許可するか否かを示す第１及び第２書込許可データＰＤ４及びＰＤ５と、第１及び第２方向制御データＰＤ１０及びＰＤ１１と、これら第１及び第２方向制御データＰＤ１０及びＰＤ１１の書き込みを許可するか否かを示す第５及び第６書込許可データＰＤ１４及びＰＤ１５とを書込可能に形成し、第２ポートレジスタ７４を、第３及び第４ポートデータＰＤ２及びＰＤ３と、これら第３及び第４ポートデータＰＤ２及びＰＤ３の書き込みを許可するか否かを示す第３及び第４書込許可データＰＤ６及びＰＤ７と、第３及び第４方向制御データＰＤ１２及びＰＤ１３と、これら第３及び第４方向制御データＰＤ１２及びＰＤ１３の書き込みを許可するか否かを示す第７及び第８書込許可データＰＤ１６及びＰＤ１７とを書込可能に形成するようにした。
【０２８３】
これによりＦＡＸ７０は、上述した第１の実施の形態によって得られる効果と同様の効果が得られると共に、これに加えて第１ポートデータＰＤ０及び第１方向制御データＰＤ１０の値を同時に変更して、第１ポート端子１５に対する第１ポートデータＰＤ０の値及び入出力の方向の制御を同時に行い、また第２ポートデータＰＤ１及び第２方向制御データＰＤ１１の値を同時に変更して、第２ポート端子１６に対する第２ポートデータＰＤ１の値及び入出力の方向の制御を同時に行うことができる。
【０２８４】
またＦＡＸ７０は、第３ポートデータＰＤ２及び第３方向制御データＰＤ１２の値を同時に変更して、第３ポート端子１７に対する第３ポートデータＰＤ２の値及び入出力の方向の制御を同時に行い、また第４ポートデータＰＤ３及び第４方向制御データＰＤ１３の値を同時に変更して、第４ポート端子１８に対する第４ポートデータＰＤ３の値及び入出力の方向の制御を同時に行うことができる。よって、ＦＡＸ７０は、これら第１乃至第４ポート端子１５乃至１８毎の制御のための処理回数や処理時間を低減させることができる。
【０２８５】
（３）他の実施の形態
（３−１）他の実施の形態１
なお上述した第１及び第２の実施の形態においては、ＬＳＩ２、７１に中央処理ユニット１０を設けるようにした場合について述べた。しかしながら本発明は、これに限らず、中央処理ユニット１０をＬＳＩ２、７１の外部に設けるようにしても良い。
【０２８６】
（３−２）他の実施の形態２
また上述した第１及び第２の実施の形態においては、データレジスタ２１、方向制御レジスタ２２、第１ポートレジスタ７３及び第２ポートレジスタ７４をそれぞれ８ビット幅のデータバスを有する内部バス１２を介して中央処理ユニット１０に接続し、８ビットのデータを書込及び読出可能に形成するようにした場合について述べた。
【０２８７】
しかしながら本発明は、これに限らず、データレジスタ２１、方向制御レジスタ２２、第１ポートレジスタ７３及び第２ポートレジスタ７４をそれぞれ１６ビット幅や３２ビット幅等の種々のビット幅のデータバスを有する内部バス１２を介して中央処理ユニット１０に接続し、１６ビットや３２ビット等の種々のビットのデータを書込及び読出可能に形成するようにしても良い。
【０２８８】
（３−３）他の実施の形態３
さらに上述した第１及び第２の実施の形態においては、第１乃至第８書込許可データＰＤ４乃至ＰＤ７並びにＰＤ１４乃至ＰＤ１７により、対応する１個の第１乃至第４ポートデータＰＤ０乃至ＰＤ３並びに第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３の書き込みを許可するか否かを示すようにした場合について述べた。
【０２８９】
しかしながら本発明は、これに限らず、第１乃至第８書込許可データＰＤ４乃至ＰＤ７並びにＰＤ１４乃至ＰＤ１７により、対応する２個以上の第１乃至第４ポートデータＰＤ０乃至ＰＤ３並びに第１乃至第４方向制御データＰＤ１０乃至ＰＤ１３の書き込みを許可するか否かを示すようにしても良い。
【０２９０】
（３−４）他の実施の形態４
さらに上述した第１及び第２の実施の形態においては、本発明による半導体集積回路を、図１乃至図１２について上述したＦＡＸ１、７０に設けられるＬＳＩ２、７１に適用するようにした場合について述べた。しかしながら本発明は、これに限らず、電子写真式のプリンタ及び複合機等のような画像形成装置や、パーソナルコンピュータ及び携帯電話機等の情報処理装置のような種々の電子機器に設けられるＬＳＩ、ＶＬＳＩ（Very  Large  Scale  Integration）及びＵＬＳＩ（Ultra  Large  Scale  Integration）等のような、この他種々の半導体集積回路に広く適用することができる。
【０２９１】
（３−５）他の実施の形態５
さらに上述した第１及び第２の実施の形態においては、複数の入出力端子として、図１乃至図１２について上述した４個の第１乃至第４ポート端子１５乃至１８を適用するようにした場合について述べた。しかしながら本発明は、これに限らず、データレジスタ２１、方向制御レジスタ２２、第１ポートレジスタ７３及び第２ポートレジスタ７４に書込及び読出可能なデータのビット数に応じて、２個のポート端子や５個以上のポート端子等のように、この種々の個数の入出力端子を広く適用することができる。
【０２９２】
（３−６）他の実施の形態６
さらに上述した第１及び第２の実施の形態においては、複数の入出力端子の入出力を制御するための複数のデータと、対応するデータの書き込みを許可するか否かを示す１又は複数の書込許可データとが書込可能に形成され、書込許可データが、対応するデータの書き込みを許可することを示す場合、当該対応するデータを書き込むレジスタとして、図１乃至図１２について上述したそれぞれ８ビットのデータを書込及び読出可能に形成されたデータレジスタ２１、方向制御レジスタ２２、第１ポートレジスタ７３及び第２ポートレジスタ７４を適用するようにした場合について述べた。しかしながら本発明は、これに限らず、１６ビットや３２ビット等の種々のビット数のデータを書込及び読出可能に形成された、この他種々の構成のレジスタを広く適用することができる。
【０２９３】
（３−７）他の実施の形態７
さらに上述した第１及び第２の実施の形態においては、複数のデータを書き込むデータ書込部として、図１乃至図１２について上述した第１及び第２マルチプレクサ４８及び５４並びに第１及び第２Ｄフリップフロップ４９及び５５を適用するようにした場合について述べた。しかしながら本発明は、これに限らず、メモリ等のように、この他種々の構成のデータ書込部を広く適用することができる。
【０２９４】
（３−８）他の実施の形態８
さらに上述した第１及び第２の実施の形態においては、１又は複数の書込許可データを書き込む許可データ書込部として、図１乃至図１２について上述した第１及び第３ＡＮＤ回路４６及び５２を適用するようにした場合について述べた。しかしながら本発明は、これに限らず、Ｄフリップフロップやメモリ等のように、この他種々の構成の許可データ書込部を広く適用することができる。
【産業上の利用可能性】
【０２９５】
本発明は、ＦＡＸや画像形成装置、情報処理装置等の電子機器に設けられるＬＳＩやＶＬＳＩ、ＵＬＳＩ等の半導体集積回路に利用することができる。
【符号の説明】
【０２９６】
１、７０……ＦＡＸ、２、７１……ＬＳＩ、１０……中央処理ユニット、１１、７２……ポート回路、１２……内部バス、１５……第１ポート端子、１６……第２ポート端子、１７……第３ポート端子、１８……第４ポート端子、２０……ポートレジスタ、２１……データレジスタ、２２……方向制御レジスタ、４６……第１ＡＮＤ回路、４８……第１マルチプレクサ、４９……第１Ｄフリップフロップ、５２……第３ＡＮＤ回路、５４……第２マルチプレクサ、５５……第２Ｄフリップフロップ、７３……第１ポートレジスタ、７４……第２ポートレジスタ、ＷＳ１……書込指示信号、ＰＤ０……第１ポートデータ、ＰＤ１……第２ポートデータ、ＰＤ２……第３ポートデータ、ＰＤ３……第４ポートデータ、ＰＤ４……第１書込許可データ、ＰＤ５……第２書込許可データ、ＰＤ６……第３書込許可データ、ＰＤ７……第４書込許可データ、ＰＤ１０……第１方向制御データ、ＰＤ１１……第２方向制御データ、ＰＤ１２……第３方向制御データ、ＰＤ１３……第４方向制御データ、ＰＤ１４……第５書込許可データ、ＰＤ１５……第６書込許可データ、ＰＤ１６……第７書込許可データ、ＰＤ１７……第８書込許可データ、ＷＤ０……第１ライトデータ、ＷＤ１……第２ライトデータ、ＷＤ２……第３ライトデータ、ＷＤ３……第４ライトデータ、ＷＤ４……第５ライトデータ、ＷＤ５……第６ライトデータ、ＷＤ６……第７ライトデータ、ＷＤ７……第８ライトデータ。
【図１】
2015162192.tif 000003
【図２】
2015162192.tif 000004
【図３】
2015162192.tif 000005
【図４】
2015162192.tif 000006
【図５】
2015162192.tif 000007
【図６】
2015162192.tif 000008
【図７】
2015162192.tif 000009
【図８】
2015162192.tif 000010
【図９】
2015162192.tif 000011
【図１０】
2015162192.tif 000012
【図１１】
2015162192.tif 000013
【図１２】
2015162192.tif 000014
【図１３】
2015162192.tif 000015