以下図面を用いて、発明を実施するための最良の形態(以下、これを実施の形態とも呼ぶ)について説明する。なお、説明は以下の順序で行う。
(1)第1の実施の形態
(2)第2の実施の形態
(3)他の実施の形態
(1)第1の実施の形態
(1−1)FAXの構成
図1において、1は全体として第1の実施の形態によるFAXの回路構成を示す。係るFAX1は、LSI(Large Scale Integration)2が実装された回路基板3を有している。そして、そのLSI2は、種々の電気部品4の接続に汎用可能な後述するポート回路が設けられており、そのポート回路に種々の電気部品4として例えば、4種類のモータ制御部4A、センサ4B、操作部4C及びFAX制御部4Dが接続されている。
因みに、モータ制御部4Aは、例えば、電送対象の原稿が記録された記録紙(図示せず)を原稿読取部(図示せず)に取り込むためのモータを制御するためのものである。またセンサ4Bは、例えば、原稿読取部に記録紙がセットされているか否かを検出するためのものである。さらに操作部4Cは、例えば、記録紙から原稿を読み取るようにして形成される電送対象の画像データの送信先のアドレスや、その画像データの送信開始指示等のような種々の操作入力を受け付けるためのものである。
さらにまたFAX制御部4Dは、例えば、原稿読取部を、記録紙から原稿を読み取るようにして電送対象の画像データを生成するように制御し、また送信部(図示せず)を、その画像データを送信先へ電送するように制御するためのものである。なお、以下の説明では、便器上、これら4種類のモータ制御部4A、センサ4B、操作部4C及びFAX制御部4Dをそれぞれ特には区別せずに電気部品4とも呼ぶ。
またLSI2は、例えば、後述する中央処理ユニット(CPU:Central Processing Unit)が設けられている。さらに回路基板3には、ROM(Read Only Memory)5が実装されている。そしてROM5には、基本プログラムや、4種類の電気部品4を制御する4種類のファームウェア(以下、これらを第1乃至第4ファームウェアとも呼ぶ)等が予め記憶されている。
さらに回路基板3には、中央処理ユニットのワークエリアとしてのRAM(Random Access Memory)6が実装されている。そしてLSI2内の中央処理ユニットは、回路基板3上の所定の配線パターンを介してROM5及びRAM6と接続されている。
よって中央処理ユニットは、ROM5から基本プログラムと共に、第1乃至第4ファームウェアを適宜読み出してRAM6に展開する。これにより中央処理ユニットは、RAM6に展開した第1乃至第4ファームウェアに従い、それぞれ対応する電気部品4を制御して、記録紙に記録されている原稿を画像データとして送信先へ電送することができる。
(1−2)LSIの回路構成
次いで、図2を用いて、LSI2の回路構成について説明する。LSI2は、上述した中央処理ユニット10とポート回路11とが設けられている。またLSI2は、制御バスと、例えば8ビット幅のデータバスとを有する内部バス12が設けられている。
ポート回路11は、それぞれ1ビット単位のデータPD0乃至PD3を入出力可能な例えば、4個の入出力端子(以下、これらを第1乃至第4ポート端子とも呼ぶ)15乃至18が設けられている。そしてポート回路11は、これら第1乃至第4ポート端子15乃至18にそれぞれ異なる電気部品4(すなわち、モータ制御部4A、センサ4B、操作部4C及びFAX制御部4D)が接続されている。
因みに、以下の説明では、第1乃至第4ポート端子15乃至18を介して入出力するデータPD0乃至PD3を、その第1乃至第4ポート端子15乃至18に対応させて、第1乃至第4ポートデータPD0乃至PD3とも呼ぶ。
なお、この第1の実施の形態の場合、例えば、中央処理ユニット10が第1ファームウェアに従って制御する電気部品4が第1ポート端子15に接続され、第2ファームウェアに従って制御する電気部品4が第2ポート端子16に接続され、第3ファームウェアに従って制御する電気部品4が第3ポート端子17に接続され、第4ファームウェアに従って制御する電気部品4が第4ポート端子18に接続されている。
またポート回路11は、これら第1乃至第4ポート端子15乃至18を介した第1乃至第4ポートデータPD0乃至PD3の入出力を制御するためのレジスタ(以下、これをポートレジスタとも呼ぶ)20が設けられている。
そして、この第1の実施の形態の場合、ポートレジスタ20は、4種類の電気部品4との間で第1乃至第4ポート端子15乃至18を介して第1乃至第4ポートデータPD0乃至PD3の入出力を行うレジスタ(以下、これをデータレジスタとも呼ぶ)21を有している。
またポートレジスタ20は、第1乃至第4ポート端子15乃至18に1対1で対応する入出力方向制御用の4ビットのデータ(以下、これらを第1乃至第4方向制御データとも呼ぶ)PD10乃至PD13により、これら第1乃至第4ポート端子15乃至18の入出力の方向を個別に制御するレジスタ(以下、これを方向制御レジスタとも呼ぶ)22も有している。
さらにポート回路11は、第1乃至第4ポート端子15乃至18と同数の4個の第1乃至第4出力用バッファ25乃至28が設けられている。さらにまたポート回路11は、これら第1乃至第4ポート端子15乃至18と同数の4個の第1乃至第4入力用バッファ29乃至32も設けられている。
そしてデータレジスタ21は、例えば、第1乃至第4データ出力線を介して第1乃至第4出力用バッファ25乃至28の入力端子に接続されると共に、これら第1乃至第4出力用バッファ25乃至28の出力端子が第1乃至第4ポート端子15乃至18に接続されている。
またデータレジスタ21は、第1乃至第4データ入力線を介して第1乃至第4入力用バッファ29乃至32の出力端子に接続されると共に、これら第1乃至第4入力用バッファ29乃至32の入力端子が、第1乃至第4ポート端子15乃至18と第1乃至第4出力用バッファ25乃至28との接続中点に接続されている。
また方向制御レジスタ22は、例えば、第1乃至第4制御線を介して第1乃至第4出力用バッファ25乃至28の制御端子に接続されている。そしてデータレジスタ21及び方向制御レジスタ22は、これらを個別に識別可能なユニークな第1及び第2アドレスが割り当てられ、それぞれ内部バス12を介して中央処理ユニット10に接続されている。
ここで、中央処理ユニット10及びポート回路11は、例えば、回路基板3に設けられたクロック生成回路が生成するクロックに同期して動作している。また中央処理ユニット10は、例えば、内部バス12に、そのデータレジスタ21及び方向制御レジスタ22をアクセス用に選択するためのレジスタ選択信号RS1を出力している。
さらに中央処理ユニット10は、通常、レジスタ選択信号RS1の値を「0」に立ち下げているものの、データレジスタ21及び方向制御レジスタ22をデータの書き込みや読み出し用に選択するときには、例えば、1クロック周期だけ、そのレジスタ選択信号RS1の値を「1」に立ち上げている。
そして中央処理ユニット10は、第1乃至第4ファームウェアに従い、内部バス12に出力しているレジスタ選択信号RS1の値を「1」に立ち上げた1クロック周期で、当該内部バス12に第1アドレスを示す第1アドレス信号AS1を出力することで、データレジスタ21に個別にアクセスすることができる。
また中央処理ユニット10は、第1乃至第4ファームウェアに従い、内部バス12に出力しているレジスタ選択信号RS1の値を「1」に立ち上げた1クロック周期で、当該内部バス12に第2アドレスを示す第2アドレス信号AS2を出力することで、方向制御レジスタ22に個別にアクセスすることができる。
これに加えて、中央処理ユニット10は、例えば、内部バス12に、データレジスタ21及び方向制御レジスタ22に対してデータの書き込みを指示するための書込指示信号WS1を出力している。また中央処理ユニット10は、通常、書込指示信号WS1の値を「0」に立ち下げているものの、データレジスタ21及び方向制御レジスタ22にデータの書き込みを指示するときには、例えば、1クロック周期だけ、その書込指示信号WS1の値を「1」に立ち上げている。
このため、中央処理ユニット10は、第1乃至第4ファームウェアに従い、内部バス12に出力しているレジスタ選択信号RS1の値を「1」に立ち上げた1クロック周期で、その内部バス12に第1アドレス信号AS1を出力し、また当該内部バス12に出力している書込指示信号WS1の値も「1」に立ち上げることで、データレジスタ21にデータの書込用としてアクセスすることができる。
また中央処理ユニット10は、同様に第1乃至第4ファームウェアに従い、内部バス12に出力しているレジスタ選択信号RS1の値を「1」に立ち上げた1クロック周期で、その内部バス12に第2アドレス信号AS2を出力し、また当該内部バス12に出力している書込指示信号WS1の値も「1」に立ち上げることで、方向制御レジスタ22にデータの書込用としてアクセスすることができる。
これに対して、中央処理ユニット10は、第1乃至第4ファームウェアに従い、内部バス12に出力しているレジスタ選択信号RS1の値を「1」に立ち上げた1クロック周期で、その内部バス12に第1アドレス信号AS1を出力するものの、当該内部バス12に出力している書込指示信号WS1の値を「0」に立ち下げたままにしていると、データレジスタ21にデータの読出用としてアクセスすることができる。
また中央処理ユニット10は、同様に第1乃至第4ファームウェアに従い、内部バス12に出力しているレジスタ選択信号RS1の値を「1」に立ち上げた1クロック周期で、その内部バス12に第2アドレス信号AS2を出するものの、当該内部バス12に出力している書込指示信号WS1の値を「0」に立ち下げたままにしていると、方向制御レジスタ22にデータの読出用としてアクセスすることができる。
実際に中央処理ユニット10は、データレジスタ21へのデータ書込時、第1乃至第4ファームウェアに従い、内部バス12に出力しているレジスタ選択信号RS1の値、及び書込指示信号WS1の値を同時に「1」に立ち上げた1クロック周期で、その内部バス12に第1アドレス信号AS1と共に、例えば、8ビットのライトデータ(以下、これらを第1乃至第8ライトデータとも呼ぶ)WD0乃至WD7を出力することで、そのデータレジスタ21にアクセスしている。
ただし、中央処理ユニット10は、このように第1乃至第4ファームウェアに従いデータレジスタ21にアクセスした場合、その第1乃至第4ファームウェア毎に異なる値の第1乃至第8ライトデータWD0乃至WD7をデータレジスタ21に送出している。
よって中央処理ユニット10は、第1ファームウェアに従いデータレジスタ21にアクセスした場合、対応する値の第1乃至第8ライトデータWD0乃至WD7に基づき当該データレジスタ21に、その第1ファームウェアに対応する電気部品4への出力用の値の第1ポートデータPD0を書き込むようにして保持させている。
また中央処理ユニット10は、第2ファームウェアに従いデータレジスタ21にアクセスした場合は、対応する値の第1乃至第8ライトデータWD0乃至WD7に基づきデータレジスタ21に、その第2ファームウェアに対応する電気部品4への出力用の値の第2ポートデータPD1を書き込むようにして保持させている。
さらに中央処理ユニット10は、第3ファームウェアに従いデータレジスタ21にアクセスした場合は、対応する値の第1乃至第8ライトデータWD0乃至WD7に基づきデータレジスタ21に、その第3ファームウェアに対応する電気部品4への出力用の値の第3ポートデータPD2を書き込むようにして保持させている。
さらにまた中央処理ユニット10は、第4ファームウェアに従いデータレジスタ21にアクセスした場合は、対応する値の第1乃至第8ライトデータWD0乃至WD7に基づきデータレジスタ21に、その第4ファームウェアに対応する電気部品4への出力用の値の第4ポートデータPD3を書き込むようにして保持させている。このようにして中央処理ユニット10は、データレジスタ21に書き込んでいる第1乃至第4ポートデータPD0乃至PD3の値を変更することができる。
そしてデータレジスタ21は、このように第1乃至第4ポート端子15乃至18を介して電気部品4に出力すべき値の第1乃至第4ポートデータPD0乃至PD3を保持すると、その第1乃至第4ポートデータPD0乃至PD3を、対応する第1乃至第4出力用バッファ25乃至28に送出する。
一方、中央処理ユニット10は、方向制御レジスタ22へのデータ書込時には、第1乃至第4ファームウェアに従い、内部バス12に出力しているレジスタ選択信号RS1の値、及び書込指示信号WS1の値を同時に「1」に立ち上げた1クロック周期で、その内部バス12に第2アドレス信号AS2と共に、第1乃至第8ライトデータWD0乃至WD7を出力することで、その方向制御レジスタ22にアクセスしている。
ただし、中央処理ユニット10は、このように第1乃至第4ファームウェアに従い方向制御レジスタ22にアクセスする場合も、その第1乃至第4ファームウェア毎に異なる値の第1乃至第8ライトデータWD0乃至WD7を方向制御レジスタ22に送出している。
よって中央処理ユニット10は、第1ファームウェアに従い方向制御レジスタ22にアクセスした場合、対応する値の第1乃至第8ライトデータWD0乃至WD7に基づき当該方向制御レジスタ22に、その第1ファームウェアに対応する第1ポート端子15の入出力方向制御用の値の第1方向制御データPD10を書き込むようにして保持させている。
また中央処理ユニット10は、第2ファームウェアに従い方向制御レジスタ22にアクセスした場合、対応する値の第1乃至第8ライトデータWD0乃至WD7に基づき当該方向制御レジスタ22に、その第2ファームウェアに対応する第2ポート端子16の入出力方向制御用の値の第2方向制御データPD11を書き込むようにして保持させている。
さらに中央処理ユニット10は、第3ファームウェアに従い方向制御レジスタ22にアクセスした場合、対応する値の第1乃至第8ライトデータWD0乃至WD7に基づき当該方向制御レジスタ22に、その第3ファームウェアに対応する第3ポート端子17の入出力方向制御用の値の第3方向制御データPD12を書き込むようにして保持させている。
さらにまた中央処理ユニット10は、第4ファームウェアに従い方向制御レジスタ22にアクセスした場合、対応する値の第1乃至第8ライトデータWD0乃至WD7に基づき当該方向制御レジスタ22に、その第4ファームウェアに対応する第4ポート端子18の入出力方向制御用の値の第4方向制御データPD13を書き込むようにして保持させている。
因みに、第1乃至第4方向制御データPD10乃至PD13は、例えば、値が「1」の場合、対応する第1乃至第4ポート端子15乃至18の入出力の方向を出力(すなわち、出力モード)に制御し、値が「0」の場合、対応する第1乃至第4ポート端子15乃至18の入出力の方向を入力(すなわち、入力モード)に制御するものである。このようにして中央処理ユニット10は、方向制御レジスタ22に書き込んでいる第1乃至第4方向制御データPD10乃至PD13の値を変更することができる
そして方向制御レジスタ22は、このように第1乃至第4ポート端子15乃至18の入出力の方向を制御すべき値の第1乃至第4方向制御データPD10乃至PD13を保持すると、その第1乃至第4方向制御データPD10乃至PD13を、対応する第1乃至第4出力用バッファ25乃至28に送出する。
これにより方向制御レジスタ22は、第1乃至第4ポート端子15乃至18の値が「1」の場合、その値により第1乃至第4出力用バッファ25乃至28を動作(すなわち、オン)させる。よって方向制御レジスタ22は、データレジスタ21から第1乃至第4出力用バッファ25乃至28に与えられていた第1乃至第4ポートデータPD0乃至PD3を、これら第1乃至第4出力用バッファ25乃至28から第1乃至第4ポート端子15乃至18を介して電気部品4へ出力させる。
このようにして方向制御レジスタ22は、第1乃至第4ポート端子15乃至18の値が「1」の間、対応する第1乃至第4ポート端子15乃至18の入出力の方向を出力に制御して、第1乃至第4ポートデータPD0乃至PD3を、第1乃至第4ポート端子15乃至18を介して電気部品4に出力させることができる。
また方向制御レジスタ22は、第1乃至第4ポート端子15乃至18の値が「0」の場合、その値により第1乃至第4出力用バッファ25乃至28を停止(すなわち、オフ)させる。よって方向制御レジスタ22は、データレジスタ21から第1乃至第4出力用バッファ25乃至28に与えられていた第1乃至第4ポートデータPD0乃至PD3を第1乃至第4出力用バッファ25乃至28から第1乃至第4ポート端子15乃至18側へは出力させず、電気部品4から第1乃至第4ポート端子15乃至18を介して第1乃至第4ポートデータPD0乃至PD3を入力させる。
このようにして方向制御レジスタ22は、第1乃至第4ポート端子15乃至18の値が「0」の間、対応する第1乃至第4ポート端子15乃至18の入出力の方向を入力に制御して、電気部品4から第1乃至第4ポート端子15乃至18を介して入力される第1乃至第4ポートデータPD0乃至PD3を、第1乃至第4入力用バッファ29乃至32を介してデータレジスタ21に送出させることができる。
ところで、ポート回路11では、第1乃至第4ポート端子15乃至18に対する入出力の方向の切り換えを簡易化するため、第1乃至第4出力用バッファ25乃至28のみをオン/オフさせ、第1乃至第4入力用バッファ29乃至32については常に動作させている。そして第1乃至第4入力用バッファ29乃至32は、上述したようにそれぞれ入力端子が、対応する第1乃至第4入力用バッファ25乃至28の出力端子と第1乃至第4ポート端子15乃至18との接続中点に接続されている。
このため、第1乃至第4入力用バッファ29乃至32は、対応する第1乃至第4ポート端子15乃至18の入出力の方向が出力に制御されていると、第1乃至第4出力用バッファ25乃至28から出力される第1乃至第4ポートデータPD0乃至PD3をデータレジスタ21にも送出している。
よってデータレジスタ21は、第1乃至第4ポート端子15乃至18の入出力の方向が入力に制御されている間は、その第1乃至第4ポート端子15乃至18を介して入力される第1乃至第4ポートデータPD0乃至PD3を第1乃至第4入力用バッファ29乃至32から取り込む。またデータレジスタ21は、第1乃至第4ポート端子15乃至18の入出力の方向が出力に制御されている間は、第1乃至第4出力用バッファ25乃至28から出力される第1乃至第4ポートデータPD0乃至PD3を第1乃至第4入力用バッファ29乃至32から取り込む。
そしてデータレジスタ21は、このように第1乃至第4入力用バッファ29乃至32から取り込んだ第1乃至第4ポートデータPD0乃至PD3を内部バス12側へ出力している。よってデータレジスタ21は、中央処理ユニット10により第1乃至第4ポートデータPD0乃至PD3を読み出すようにアクセスされると、そのとき第1乃至第4入力用バッファ29乃至32から取り込んだ第1乃至第4ポートデータPD0乃至PD3をそのまま内部バス12を介して読み出せるようにしている。
また方向制御レジスタ22は、第1乃至第4方向制御データPD10乃至PD13を内部バス12側へも出力している。よって方向制御レジスタ22は、中央処理ユニット10により第1乃至第4方向制御データPD10乃至PD13を読み出すようにアクセスされると、そのとき第1乃至第4出力用バッファ25乃至28へ送出している第1乃至第4方向制御データPD10乃至PD13を内部バス12を介して読み出せるようにしている。
実際に中央処理ユニット10は、データレジスタ21からのデータ読出時、上述したように第1乃至第4ファームウェアに従い、書込指示信号WS1の値を「0」に立ち下げたままレジスタ選択信号RS1の値を「1」に立ち上げた1クロック周期で、内部バス12に第1アドレス信号AS1を出力してデータレジスタ21にアクセスし、そのデータレジスタ21から第1乃至第4ポートデータPD0乃至PD3を含む8ビットのデータをリードデータ(以下、これらを第1乃至第8リードデータとも呼ぶ)RD0乃至RD7として読み出している。
また中央処理ユニット10は、方向制御レジスタ22からのデータ読出時には、上述したように第1乃至第4ファームウェアに従い、書込指示信号WS1の値を「0」に立ち下げたままレジスタ選択信号RS1の値を「1」に立ち上げた1クロック周期で、内部バス12に第2アドレス信号AS2を出力して方向制御レジスタ22にアクセスし、その方向制御レジスタ22から第1乃至第4方向制御データPD10乃至PD13を含む8ビットのデータを第1乃至第8リードデータRD0乃至RD7として読み出している。
ところで、データレジスタ21は、中央処理ユニット10により8ビット幅のデータバスを有する内部バス12を介してデータ書込用及びデータ読出用にアクセスされるため、そのアクセスに応じて8ビットのデータを書込及び読出可能に形成されている。そして中央処理ユニット10は、上述したようにデータレジスタ21に対しデータ書込用及びデータ読出用にアクセスした場合、第1乃至第4ポート端子15乃至18を介して入出力する第1乃至第4ポートデータPD0乃至PD3を書き込み、また読み出している。
ただし、この第1の実施の形態の場合、ポート回路11には、4ビット分の第1乃至第4ポートデータPD0乃至PD3を入出力する4個の第1乃至第4ポート端子15乃至18しか設けられていない。よってデータレジスタ21では、このように中央処理ユニット10のアクセスに応じて書込及び読出可能な8ビットのデータのうち4ビットのデータが、第1乃至第4ポート端子15乃至18を介して入出力する第1乃至第4ポートデータPD0乃至PD3になる。
このため、図3に示すように、データレジスタ21では、書込及び読出可能な8ビットのデータとして例えば、ビット0からビット3までの下位4ビットに、第1乃至第4ポート端子15乃至18を介して入出力される(すなわち、出力用の値や入力されたときの値の)第1乃至第4ポートデータPD0乃至PD3が割り当てられている。
そしてデータレジスタ21では、書込及び読出可能な8ビットのデータとして例えば、ビット4からビット7までの上位4ビットに、中央処理ユニット10(すなわち、ポート回路11の外部)から与えられる第1乃至第4ポートデータPD0乃至PD3の書き込みを許可するか否かを示すデータ(以下、これらを第1乃至第4書込許可データとも呼ぶ)PD4乃至PD7が割り当てられている。
この場合、第1乃至第4書込許可データPD4乃至PD7は、第1乃至第4ポートデータPD0乃至PD3に1対1で対応しており、例えば、値が「1」の場合、対応する第1乃至第4ポートデータPD0乃至PD3の書き込みを許可することを示している。また第1乃至第4書込許可データPD4乃至PD7は、例えば、値が「0」の場合、対応する第1乃至第4ポートデータPD0乃至PD3の書き込みを禁止することを示している。
よって中央処理ユニット10は、上述したデータ書込時に、データレジスタ21に書き込む第1乃至第4ポートデータPD0乃至PD3及び第1乃至第4書込許可データPD4乃至PD7を第1乃至第8ライトデータWD0乃至WD7として当該データレジスタ21に送出している。
より具体的には、中央処理ユニット10は、第1乃至第4ファームウェアに従い、変更後の値(例えば、変更後の出力用の値)を示す第1乃至第4ポートデータPD0乃至PD3を第1乃至第4ライトデータWD0乃至WD3とし、その第1乃至第4ポートデータPD0乃至PD3の書き込みを許可するか否かを示す第1乃至第4書込許可データPD4乃至PD7を第5乃至第8ライトデータWD5乃至WD7としてデータレジスタ21に送出している。
ただし、上述したように第1乃至第4ファームウェアは、それぞれ対応する第1乃至第4ポート端子15乃至18に接続された電気部品4のみを制御するためのものである。言い換えると、第1乃至第4ファームウェアは、それぞれ対応する第1乃至第4ポート端子15乃至18の入出力の方向や、当該対応する第1乃至第4ポート端子15乃至18を介して出力する第1乃至第4ポートデータPD0乃至PD3の値を制御するためのものである。
このため中央処理ユニット10は、例えば、第1ファームウェアに従いデータレジスタ21にアクセスする場合、変更後の所望の「1」又は「0」の値を示す第1ポートデータPD0を第1ライトデータWD0とする。また中央処理ユニット10は、この際、第1ファームウェアでは第2乃至第4ポートデータPD1乃至PD3の値を変更しないため、例えば、何れも予め任意に選定された「1」又は「0」の一方の値(例えば、「0」の値であり、以下、これを任意選定値とも呼ぶ)を示す第2乃至第4ポートデータPD1乃至PD3を第2乃至第4ライトデータWD1乃至WD3としている。
これに加えて、中央処理ユニット10は、この際、第1ポートデータPD0の書き込みを許可することを示す「1」の値の第1書込許可データPD4を第5ライトデータWD4とし、第2乃至第4ポートデータPD1乃至PD3の書き込みを禁止することを示す「0」の値の第2乃至第4書込許可データPD5乃至PD7を第6乃至第8ライトデータWD5乃至WD7としている。
また中央処理ユニット10は、例えば、第2ファームウェアに従いデータレジスタ21にアクセスする場合、変更後の所望の「1」又は「0」の値を示す第2ポートデータPD1を第2ライトデータWD1とする。また中央処理ユニット10は、この際、第2ファームウェアでは第1、第3及び第4ポートデータPD0、PD2及びPD3の値を変更しないため、何れも任意選定値を示す第1、第3及び第4ポートデータPD0、PD2及びPD3を第1、第3及び第4ライトデータWD0、WD2及びWD3としている。
これに加えて、中央処理ユニット10は、この際、第2ポートデータPD1の書き込みを許可することを示す「1」の値の第2書込許可データPD5を第6ライトデータWD5とし、第1、第3及び第4ポートデータPD0、PD2及びPD3の書き込みを禁止することを示す「0」の値の第1、第3及び第4書込許可データPD4、PD6及びPD7を第5、第7及び第8ライトデータWD4、WD6及びWD7としている。
さらに中央処理ユニット10は、例えば、第3ファームウェアに従いデータレジスタ21にアクセスする場合、変更後の所望の「1」又は「0」の値を示す第3ポートデータPD2を第3ライトデータWD2とする。また中央処理ユニット10は、この際、第3ファームウェアでは第1、第2及び第4ポートデータPD0、PD1及びPD3の値を変更しないため、何れも任意選定値を示す第1、第2及び第4ポートデータPD0、PD1及びPD3を第1、第2及び第4ライトデータWD0、WD1及びWD3としている。
これに加えて、中央処理ユニット10は、この際、第3ポートデータPD2の書き込みを許可することを示す「1」の値の第3書込許可データPD6を第7ライトデータWD6とし、第1、第2及び第4ポートデータPD0、PD1及びPD3の書き込みを禁止することを示す「0」の値の第1、第2及び第4書込許可データPD4、PD5及びPD7を第5、第6及び第8ライトデータWD4、WD5及びWD7としている。
さらにまた中央処理ユニット10は、例えば、第4ファームウェアに従いデータレジスタ21にアクセスする場合、変更後の所望の「1」又は「0」の値を示す第4ポートデータPD3を第4ライトデータWD3とする。また中央処理ユニット10は、この際、第4ファームウェアでは第1乃至第3ポートデータPD0乃至PD2の値を変更しないため、何れも任意選定値を示す第1乃至第3ポートデータPD0乃至PD2を第1乃至第3ライトデータWD0乃至WD2としている。
これに加えて、中央処理ユニット10は、この際、第4ポートデータPD3の書き込みを許可することを示す「1」の値の第4書込許可データPD7を第8ライトデータWD7とし、第1乃至第3ポートデータPD0乃至PD2の書き込みを禁止することを示す「0」の値の第1乃至第3書込許可データPD4乃至PD6を第5乃至第7ライトデータWD4乃至WD6としている。
そして中央処理ユニット10は、第1乃至第4ファームウェアの何れかに従いデータレジスタ21にアクセスする場合、その第1乃至第4ファームウェアに対応する値の第1乃至第8ライトデータWD0乃至WD7を、内部バス12を介して当該データレジスタ21に送出している。
これによりデータレジスタ21は、中央処理ユニット10から第1乃至第8ライトデータWD0乃至WD7が与えられると、これら第1乃至第8ライトデータWD0乃至WD7の値と、すでに保持している第1乃至第4ポートデータPD0乃至PD3の値とを用いて、以下に示す論理演算を行う。
なお、以下には、データレジスタ21が行う論理演算を、その理解を容易にするために当該データレジスタ21が例えば、何れも「0」の値の第1乃至第4ポートデータPD0乃至PD3をすでに書き込むようにして保持しており、第1ファームウェアに対応する値の第1乃至第8ライトデータWD0乃至WD7により、第1ポートデータPD0の値を「0」から「1」へ変更する場合を例にして説明する。
すなわち、データレジスタ21は、この際、例えば、(1)式
PD0=WD4×WD0+!WD4×PD0
=1×1+0×0
=1 ……(1)
で表されるように、第5ライトデータWD4の値、及び第1ライトデータWD0の値の乗算結果と、当該第5ライトデータWD4の値を反転させた値、及びすでに保持している第1ポートデータPD0の値の乗算結果とを加算するような論理演算を行うことで、中央処理ユニット10によって指示された変更後の「1」の値の第1ポートデータPD0を得て、その第1ポートデータPD0を保持する。
またデータレジスタ21は、例えば、(2)式
PD1=WD5×WD1+!WD5×PD1
=0×0+1×0
=0 ……(2)
で表されるように、第6ライトデータWD5の値、及び第2ライトデータWD1の値の乗算結果と、当該第6ライトデータWD5の値を反転させた値、及びすでに保持している第2ポートデータPD1の値の乗算結果とを加算するような論理演算を行うことで、元の値(すなわち、「0」の値)の第2ポートデータPD1を得て、そのまま保持する。
さらにデータレジスタ21は、例えば、(3)式
PD2=WD6×WD2+!WD6×PD2
=0×0+1×0
=0 ……(3)
で表されるように、第7ライトデータWD6の値、及び第3ライトデータWD2の値の乗算結果と、当該第7ライトデータWD6の値を反転させた値、及びすでに保持している第3ポートデータPD2の値の乗算結果とを加算するような論理演算を行うことで、元の値(すなわち、「0」の値)の第3ポートデータPD2を得て、そのまま保持する。
さらにまたデータレジスタ21は、例えば、(4)式
PD3=WD7×WD3+!WD7×PD3
=0×0+1×0
=0 ……(4)
で表されるように、第8ライトデータWD7の値、及び第4ライトデータWD3の値の乗算結果と、当該第8ライトデータWD7の値を反転させた値、及びすでに保持している第4ポートデータPD3の値の乗算結果とを加算するような論理演算を行うことで、元の値(すなわち、「0」の値)の第4ポートデータPD3を得て、そのまま保持する。
このようにしてデータレジスタ21は、中央処理ユニット10から第1ファームウェアに従い、対応する値の第1乃至第8ライトデータWD0乃至WD7が与えられた場合、その第1ファームウェアに対応する第1ポートデータPD0の値のみを変更して保持し、他の第2乃至第4ポートデータPD1乃至PD3については値を変更せずに、そのまま継続して保持することができる。
またデータレジスタ21は、中央処理ユニット10から第2ファームウェアに従い、対応する値の第1乃至第8ライトデータWD0乃至WD7が与えられた場合も、同様の論理演算(すなわち、(1)式乃至(4)式の論理演算)を行うことで、その第2ファームウェアに対応する第2ポートデータPD1の値のみを変更して保持し、他の第1、第3及び第4ポートデータPD0、PD2及びPD3については、値を何ら変更せずにそのまま保持することができる。
さらにデータレジスタ21は、中央処理ユニット10から第3ファームウェアに従い、対応する値の第1乃至第8ライトデータWD0乃至WD7が与えられた場合も同様の論理演算を行うことで、その第3ファームウェアに対応する第3ポートデータPD2の値のみを変更して保持し、他の第1、第2及び第4ポートデータPD0、PD1及びPD3については、値を何ら変更せずにそのまま保持することができる。
さらにまたデータレジスタ21は、中央処理ユニット10から第4ファームウェアに従い、対応する値の第1乃至第8ライトデータWD0乃至WD7が与えられた場合も同様の論理演算を行うことで、第4ファームウェアに対応する第4ポートデータPD3の値のみを変更して保持し、他の第1乃至第3ポートデータPD0乃至PD2については、値を何ら変更せずにそのまま保持することができる。
よってデータレジスタ21は、中央処理ユニット10が第1乃至第4ファームウェアの何れに従ってデータの書込用にアクセスする場合でも、リードモディファイライト処理を行わせることなく、そのアクセスに使用された第1乃至第4ファームウェアに対応する1個の第1乃至第4ポートデータPD0乃至PD3の値のみを変更し、他の3個の第1乃至第4ポートデータPD0乃至PD3の値を意図せずに変更することを防止することができる。
因みに、データレジスタ21は、第1乃至第4書込許可データPD4乃至PD7を内部バス12側へ出力している。このため、データレジスタ21は、データ読出時、中央処理ユニット10により第1乃至第4ファームウェアの何れに従ってアクセスされたときでも、そのアクセスのタイミングで4ビットの第1乃至第4ポートデータPD0乃至PD3と共に4ビットの第1乃至第4書込許可データPD4乃至PD7を第1乃至第8リードデータRD0乃至RD7として内部バス12を介して読み出させている。
なお、中央処理ユニット10は、このように第1乃至第4ファームウェアに従いデータレジスタ21から第1乃至第8リードデータRD0乃至RD7を読み出すと、その第1乃至第8リードデータRD0乃至RD7から、このときの処理実行用の第1乃至第4ファームウェアに対応するデータだけを取り出し、その他のデータについては破棄する。これにより中央処理ユニット10は、第1乃至第4ファームウェアの何れに従いデータレジスタ21から第1乃至第8リードデータRD0乃至RD7を読み出した場合でも、その第1乃至第4ファームウェアに対応する電気部品4の制御に利用可能なデータのみを選択的に取得することができる。
一方、方向制御レジスタ22も、中央処理ユニット10により8ビット幅のデータバスを有する内部バス12を介してデータ書込用及びデータ読出用にアクセスされるため、そのアクセスに応じて8ビットのデータを書込及び読出可能に形成されている。そして中央処理ユニット10は、上述したように方向制御レジスタ22に対しデータ書込用及びデータ読出用にアクセスした場合、第1乃至第4ポート端子15乃至18の入出力の方向を制御するための第1乃至第4方向制御データPD10乃至PD13を書き込み、また読み出している。
ただし、上述したようにポート回路11には4個の第1乃至第4ポート端子15乃至18しか設けられていないため、方向制御レジスタ22では、中央処理ユニット10のアクセスに応じて書込及び読出可能な8ビットのデータのうち4ビットのデータが、第1乃至第4ポート端子15乃至18の入出力の方向を制御する第1乃至第4方向制御データPD10乃至PD13になる。
このため、図4に示すように、方向制御レジスタ22では、書込及び読出可能な8ビットのデータとして例えば、ビット0からビット3までの下位4ビットに、第1乃至第4ポート端子15乃至18の入出力の方向を制御する第1乃至第4方向制御データPD10乃至PD13が割り当てられている。
そして方向制御レジスタ22では、書込及び読出可能な8ビットのデータとして例えば、ビット4からビット7までの上位4ビットに、中央処理ユニット10(すなわち、ポート回路11の外部)から与えられる第1乃至第4方向制御データPD10乃至PD13の書き込みを許可するか否かを示すデータ(以下、これらを第5乃至第8書込許可データとも呼ぶ)PD14乃至PD17が割り当てられている。
この場合、第5乃至第8書込許可データPD14乃至PD17は、第1乃至第4方向制御データPD10乃至PD13に1対1で対応しており、例えば、値が「1」の場合、対応する第1乃至第4方向制御データPD10乃至PD13の書き込みを許可することを示している。また第5乃至第8書込許可データPD14乃至PD17は、例えば、値が「0」の場合、対応する第1乃至第4方向制御データPD10乃至PD13の書き込みを禁止することを示している。
よって中央処理ユニット10は、上述したデータ書込時、方向制御レジスタ22に書き込む第1乃至第4方向制御データPD10乃至PD13及び第5乃至第8書込許可データPD14乃至PD17を第1乃至第8ライトデータWD0乃至WD7として当該方向制御レジスタ22に送出している。
より具体的には、中央処理ユニット10は、第1乃至第4ファームウェアに従い、変更後の値(すなわち、変更後の入出力方向制御用の値)を示す第1乃至第4方向制御データPD10乃至PD13を第1乃至第4ライトデータWD0乃至WD3とし、その第1乃至第4方向制御データPD10乃至PD13の書き込みを許可するか否かを示す第5乃至第8書込許可データPD14乃至PD17を第5乃至第8ライトデータWD5乃至WD7としてデータレジスタ21に送出している。
ただし、中央処理ユニット10は、第1ファームウェアに従い、第1方向制御データPD10により、対応する第1ポート端子15の入出力の方向のみを制御し、第2ファームウェアに従い、第2方向制御データPD11により、対応する第2ポート端子16の入出力の方向のみを制御している。また中央処理ユニット10は、第3ファームウェアに従い、第3方向制御データPD12により、対応する第3ポート端子17の入出力の方向のみを制御し、第4ファームウェアに従い、第4方向制御データPD13により、対応する第4ポート端子18の入出力の方向のみを制御している。
このため中央処理ユニット10は、例えば、第1ファームウェアに従い方向制御レジスタ22にアクセスする場合、変更後の所望の「1」又は「0」の値を示す第1方向制御データPD10を第1ライトデータWD0とする。また中央処理ユニット10は、この際、第1ファームウェアでは第2乃至第4方向制御データPD11乃至PD13の値を変更しないため、何れも任意選定値を示す第2乃至第4方向制御データPD11乃至PD13を第2乃至第4ライトデータWD1乃至WD3としている。
これに加えて、中央処理ユニット10は、この際、第1方向制御データPD10の書き込みを許可することを示す「1」の値の第5書込許可データPD14を第5ライトデータWD4とし、第2乃至第4方向制御データPD11乃至PD13の書き込みを禁止することを示す「0」の値の第6乃至第8書込許可データPD15乃至PD17を第6乃至第8ライトデータWD5乃至WD7としている。
また中央処理ユニット10は、例えば、第2ファームウェアに従い方向制御レジスタ22にアクセスする場合、変更後の所望の「1」又は「0」の値を示す第2方向制御データPD11を第2ライトデータWD1とする。また中央処理ユニット10は、この際、第2ファームウェアでは第1、第3及び第4方向制御データPD10、PD12及びPD13の値を変更しないため、何れも任意選定値を示す第1、第3及び第4方向制御データPD10、PD12及びPD13を第1、第3及び第4ライトデータWD0、WD2及びWD3としている。
これに加えて、中央処理ユニット10は、この際、第2方向制御データPD11の書き込みを許可することを示す「1」の値の第6書込許可データPD15を第6ライトデータWD5とし、第1、第3及び第4方向制御データPD10、PD12及びPD13の書き込みを禁止することを示す「0」の値の第5、第7及び第8書込許可データPD14、PD16及びPD17を第5、第7及び第8ライトデータWD4、WD6及びWD7としている。
さらに中央処理ユニット10は、例えば、第3ファームウェアに従い方向制御レジスタ22にアクセスする場合、変更後の所望の「1」又は「0」の値を示す第3方向制御データPD12を第3ライトデータWD2とする。また中央処理ユニット10は、この際、第3ファームウェアでは第1、第2及び第4方向制御データPD10、PD11及びPD13の値を変更しないため、何れも任意選定値を示す第1、第2及び第4方向制御データPD10、PD11及びPD13を第1、第2及び第4ライトデータWD0、WD1及びWD3としている。
これに加えて、中央処理ユニット10は、この際、第3方向制御データPD12の書き込みを許可することを示す「1」の値の第7書込許可データPD16を第7ライトデータWD6とし、第1、第2及び第4方向制御データPD10、PD11及びPD13の書き込みを禁止することを示す「0」の値の第5、第6及び第8書込許可データPD14、PD15及びPD17を第5、第6及び第8ライトデータWD4、WD5及びWD7としている。
さらにまた中央処理ユニット10は、例えば、第4ファームウェアに従い方向制御レジスタ22にアクセスする場合、変更後の所望の「1」又は「0」の値を示す第4方向制御データPD13を第4ライトデータWD3とする。また中央処理ユニット10は、この際、第4ファームウェアでは第1乃至第3方向制御データPD10乃至PD12の値を変更しないため、何れも任意選定値を示す第1乃至第3方向制御データPD10乃至PD12を第1乃至第3ライトデータWD0乃至WD2としている。
これに加えて、中央処理ユニット10は、この際、第4方向制御データPD13の書き込みを許可することを示す「1」の値の第8書込許可データPD17を第8ライトデータWD7とし、第1乃至第3方向制御データPD10乃至PD12の書き込みを禁止することを示す「0」の値の第5乃至第7書込許可データPD14乃至PD16を第5乃至第7ライトデータWD4乃至WD6としている。
そして中央処理ユニット10は、第1乃至第4ファームウェアの何れかに従い方向制御レジスタ22にアクセスする場合、その第1乃至第4ファームウェアに対応する値の第1乃至第8ライトデータWD0乃至WD7を、内部バス12を介して当該方向制御レジスタ22に送出している。
これにより方向制御レジスタ22は、中央処理ユニット10から第1乃至第8ライトデータWD0乃至WD7が与えられると、これら第1乃至第8ライトデータWD0乃至WD7の値と、すでに保持している第1乃至第4方向制御データPD10乃至PD13の値とを用いて、上述したデータレジスタ21の場合と基本的には同様の論理演算を行う。
すなわち、方向制御レジスタ22は、この際、例えば、(5)式乃至(8)式
PD10=WD4×WD0+!WD4×PD10 ……(5)
PD11=WD5×WD1+!WD5×PD11 ……(6)
PD12=WD6×WD2+!WD6×PD12 ……(7)
PD13=WD7×WD3+!WD7×PD13 ……(8)
で表されるように、上述したデータレジスタ21が行う論理演算とは、すでに保持している第1乃至第4ポートデータPD0乃至PD3の代わりに、すでに保持している第1乃至第4方向制御データPD10乃至PD13を用いることが異なるだけの論理演算を行う。
これにより方向制御レジスタ22は、中央処理ユニット10から第1ファームウェアに従い、対応する値の第1乃至第8ライトデータWD0乃至WD7が与えられた場合、その第1ファームウェアに対応する第1方向制御データPD10の値のみを変更して保持し、他の第2乃至第4方向制御データPD11乃至PD13については、値を何ら変更せずにそのまま保持することができる。
また方向制御レジスタ22は、中央処理ユニット10から第2ファームウェアに従い、対応する値の第1乃至第8ライトデータWD0乃至WD7が与えられた場合、その第2ファームウェアに対応する第2方向制御データPD11の値のみを変更して保持し、他の第1、第3及び第4方向制御データPD10、PD12及びPD13については、値を何ら変更せずにそのまま保持することができる。
さらに方向制御レジスタ22は、中央処理ユニット10から第3ファームウェアに従い、対応する値の第1乃至第8ライトデータWD0乃至WD7が与えられた場合、その第3ファームウェアに対応する第3方向制御データPD12の値のみを変更して保持し、他の第1、第2及び第4方向制御データPD10、PD11及びPD13については、値を何ら変更せずにそのまま保持することができる。
さらにまた方向制御レジスタ22は、中央処理ユニット10から第4ファームウェアに従い、対応する値の第1乃至第8ライトデータWD0乃至WD7が与えられた場合、その第4ファームウェアに対応する第4方向制御データPD13の値のみを変更して保持し、他の第1乃至第3方向制御データPD10乃至PD12については、値を何ら変更せずにそのまま保持することができる。
よって方向制御レジスタ22は、データレジスタ21の場合と同様に、中央処理ユニット10が第1乃至第4ファームウェアの何れに従ってデータの書込用にアクセスする場合でも、リードモディファイライト処理を行わせることなく、そのアクセスに使用された第1乃至第4ファームウェアに対応する1個の第1乃至第4方向制御データPD10乃至PD13の値(すなわち、入出力方向制御用の値)のみを変更し、他の3個の第1乃至第4方向制御データPD10乃至PD13の値を意図せずに変更することを防止することができる。
因みに、方向制御レジスタ22は、第1乃至第4方向制御データPD10乃至PD13、及び第5乃至第8書込許可データPD14乃至PD17を内部バス12側に出力している。よって方向制御レジスタ22は、データ読出時、中央処理ユニット10により第1乃至第4ファームウェアの何れに従ってアクセスされたときでも、そのアクセスのタイミングで4ビットの第1乃至第4方向制御データPD10乃至PD13と、4ビットの第5乃至第8書込許可データPD14乃至PD17とを第1乃至第8リードデータRD0乃至RD7として内部バス12を介して読み出させることができる。
なお、中央処理ユニット10は、このように第1乃至第4ファームウェアに従い方向制御レジスタ22から第1乃至第8リードデータRD0乃至RD7を読み出すと、その第1乃至第8リードデータRD0乃至RD7から、このときの処理実行用の第1乃至第4ファームウェアに対応するデータだけを取り出し、その他のデータについては破棄する。これにより中央処理ユニット10は、第1乃至第4ファームウェアの何れに従い方向制御レジスタ22から第1乃至第8リードデータRD0乃至RD7を読み出した場合でも、その第1乃至第4ファームウェアに対応する電気部品4の制御に利用可能なデータのみを選択的に取得することができる。
(1−3)データレジスタ及び方向制御レジスタの回路構成
次いで、図5を用いて、データレジスタ21及び方向制御レジスタ22の回路構成について説明する。データレジスタ21は、互いに異なる第1乃至第4ポート端子15乃至18を介して第1乃至第4ポートデータPD0乃至PD3を入出力するための(すなわち、それぞれ異なる第1乃至第4ポート端子15乃至18に接続される)同一構成の4個のデータ処理回路ブロック40を有している。
また方向制御レジスタ22は、互いに異なる第1乃至第4ポート端子15乃至18の入出力の方向を制御するための(すなわち、それぞれ異なる第1乃至第4出力用バッファ25乃至28に接続される)同一構成の4個の方向制御回路ブロック41を有している。
ただし、データレジスタ21の4個のデータ処理回路ブロック40は、扱う第1乃至第4ポートデータPD0乃至PD3、第1乃至第8ライトデータWD0乃至WD7、第1乃至第8リードデータRD0乃至RD7が互いに異なるだけで、基本的には同様の処理を実行している。また方向制御レジスタ22の4個の方向制御回路ブロック41についても、扱う第1乃至第4方向制御データPD10乃至PD13、第1乃至第8ライトデータWD0乃至WD7、第1乃至第8リードデータRD0乃至RD7が互いに異なるだけで、基本的には同様の処理を実行している。
このため、以下には、データレジスタ21及び方向制御レジスタ22の回路構成として、第1ポート端子15を介した第1ポートデータPD0の入出力を制御する1個のデータ処理回路ブロック40及び1個の方向制御回路ブロック41の回路構成についてのみ説明し、これらと同一構成の他の3個のデータ処理回路ブロック40及び他の3個の方向制御回路ブロック41の回路構成については説明を省略する。因みに、図5には、データレジスタ21の1個のデータ処理回路ブロック40の回路構成、及び方向制御レジスタ22の1個の方向制御回路ブロック41の回路構成のみを示している。
データレジスタ21においてデータ処理回路ブロック40は、2個の入力端子を介して第1アドレス信号AS1及びレジスタ選択信号RS1が入力される第1アドレスデコーダ45を有している。第1アドレスデコーダ45は、その出力端子が、第1AND回路46の有する3個の入力端子のうちの1個に接続されると共に、第2AND回路47が1個の反転入力端子と共に有する2個の入力端子のうちの一方に接続されている。
第1AND回路46は、3個の入力端子のうち残りの2個の入力端子に書込指示信号WS1及び第5ライトデータWD4が入力され、出力端子が、2入力構成の第1マルチプレクサ48のデータ選択端子に接続されている。
第1マルチプレクサ48は、2個の入力端子のうち一方に第1ライトデータWD0が入力され、出力端子が第1Dフリップフロップ49の入力端子に接続されている。そして第1Dフリップフロップ49は、出力端子が第1出力用バッファ25の入力端子に接続されると共に、第1マルチプレクサ48の2個の入力端子のうちの他方にも接続されている。
また第2AND回路47は、反転入力端子に書込指示信号WS1が反転入力され、2個の入力端子のうちの他方に第1入力用バッファ29の出力端子が接続されている。そして第2AND回路47の出力端子は、例えば、ポート回路11にデータレジスタ21及び方向制御レジスタ22とは別に設けられたOR回路50が有する2個の入力端子の一方に接続されている。
一方、方向制御レジスタ22において方向制御回路ブロック41は、データ処理回路ブロック40の第1アドレスデコーダ45、第1AND回路46、第2AND回路47、第1マルチプレクサ48及び第1Dフリップフロップ49と同様の第2アドレスデコーダ51、第3AND回路52、第4AND回路53、第2マルチプレクサ54及び第2Dフリップフロップ55を有している。
この場合、方向制御回路ブロック41では、第2アドレスデコーダ51の2個の入力端子に第2アドレス信号AS2及びレジスタ選択信号RS1が入力されている。また方向制御回路ブロック41では、第2Dフリップフロップ55の出力端子が第1出力用バッファ25の制御端子、第2マルチプレクサ54の2個の入力端子のうちの他方、及び第4AND回路53の2個の入力端子のうちの他方にそれぞれ接続されている。
さらに方向制御回路ブロック41では、第4AND回路53の出力端子がOR回路50の2個の入力端子の他方に接続されている。そして方向制御回路ブロック41は、これらの接続構成以外は、データ処理回路ブロック40と同様に構成されている。
係る構成のもと、まず、中央処理ユニット10が第1ファームウェアに従いデータの書込用に、内部バス12に出力しているレジスタ選択信号RS1の値、及び書込指示信号WS1の値を同時に「1」に立ち上げた1クロック周期で、その内部バス12に第1アドレス信号AS1と共に、第1ポートデータPD0の書き込みを指示する第1乃至第8ライトデータWD0乃至WD7を出力した場合のデータ処理回路ブロック40の処理動作について説明する。
因みに、データ処理回路ブロック40において第1アドレスデコーダ45は、例えば、当該データ処理回路ブロック40が中央処理ユニット10によりアクセスされたか否かを示す出力信号を第1AND回路46及び第2AND回路47に送出している。そして第1アドレスデコーダ45は、そのデータ処理回路ブロック40が中央処理ユニット10によってアクセスされるまでは、出力信号の値を例えば、「0」に立ち下げている。
また第1AND回路46は、第1書込許可データPD4を書き込む許可データ書込部として機能するものであり、第1マルチプレクサ48に対し第1書込許可データPD4を送出している。そして第1AND回路46は、中央処理ユニット10により第1ポートデータPD0の書き込みが許可されるまでは、その第1書込許可データPD4の値を「0」に立ち下げている。
この状態で第1アドレスデコーダ45は、第1アドレス信号AS1と、値が「1」のレジスタ選択信号RS1とを取り込むと、これらをデコードすることでデータ処理回路ブロック40がアクセスされたことを認識し、これに応じて出力信号の値を例えば、「1」に立ち上げる。
このとき、第1AND回路46は、第5ライトデータWD4と、値が「1」の書込指示信号WS1とを取り込む。そして第1AND回路46は、この際、その第5ライトデータWD4の値が、第1ポートデータPD0の書き込みを許可することを示す「1」の値であるため、第1マルチプレクサ48に送出している第1書込許可データPD4の値を、第1ポートデータPD0の書き込みを許可することを示す「1」に立ち上げる。
第1マルチプレクサ48は、第1Dフリップフロップ49と共に第1ポートデータPD0を書き込むデータ書込部として機能するものであり、このとき第1ライトデータWD0が与えられ、第1書込許可データPD4の値が「1」に立ち上がることで、その第1ライトデータWD0を選択して第1Dフリップフロップ49に送出する。
これにより第1Dフリップフロップ49は、クロック端子に入力されているクロック信号CS1に応じて、その第1ライトデータWD0を、変更後の所望の値(すなわち、入力用の値)を示す第1ポートデータPD0として保持すると共に、第1出力用バッファ25に送出し、また第1マルチプレクサ48に入力する。このようにしてデータ処理回路ブロック40は、第1Dフリップフロップ49に第1ポートデータPD0の値を変更して保持することができる。
そして第1AND回路46は、例えば、入力端子を介して取り込んでいた書込指示信号WS1の値が「1」から「0」に立ち下がると、第1マルチプレクサ48に送出している第1書込許可データPD4の値を「0」に立ち下げる。
よって第1マルチプレクサ48は、第1ライトデータWD0を第1Dフリップフロップ49に送出した後、第1書込許可データPD4の値が「0」に立ち下がることで、第1Dフリップフロップ49から入力されていた第1ポートデータPD0を選択して当該第1Dフリップフロップ49に送出する。これにより第1Dフリップフロップ49は、この後、変更後の所望の値(すなわち、入力用の値)の第1ポートデータPD0を第1出力用バッファ25に送出し続けることができる。
因みに、第2AND回路47は、第1入力用バッファ29から第1ポートデータPD0が入力されている。そして第2AND回路47は、データ処理回路ブロック40が、共に値が「1」のレジスタ選択信号RS1及び書込指示信号WS1を取り込んだときは、第1アドレスデコーダ45から入力される出力信号の値が「1」に立ち上がっているものの、書込指示信号WS1を「1」の値から「0」の値に反転させて入力するため、第1ポートデータPD0を元の値に関わらずに「0」の値にしてOR回路50に送出している。
また第2AND回路47は、データ処理回路ブロック40に取り込んでいるレジスタ選択信号RS1及び書込指示信号WS1の値が共に「0」に立ち下がると、その書込指示信号WS1を「0」の値から「1」の値に反転させて入力するものの、第1アドレスデコーダ45から入力される出力信号の値が「0」に立ち下がっているため、この場合も第1ポートデータPD0を元の値に関わらずに「0」の値にしてOR回路50に送出している。
次いで、中央処理ユニット10が第2乃至第3ファームウェアに従いデータの書込用に、内部バス12に出力しているレジスタ選択信号RS1の値、及び書込指示信号WS1の値を同時に「1」に立ち上げた1クロック周期で、その内部バス12に第1アドレス信号AS1と共に、第1ポートデータPD0以外の第2乃至第4ポートデータPD1乃至PD3の書き込みを指示する第1乃至第8ライトデータWD0乃至WD7を出力した場合のデータ処理回路ブロック40の処理動作について説明する。
この際も、第1アドレスデコーダ45は、第1アドレス信号AS1と、値が「1」のレジスタ選択信号RS1とを取り込んでデコードすることで、データ処理回路ブロック40がアクセスされたことを認識して、出力信号の値を「1」に立ち上げる。
このとき、第1AND回路46は、第5ライトデータWD4と、値が「1」の書込指示信号WS1とを取り込む。ただし、第1AND回路46は、この際、その第5ライトデータWD4の値が、第1ポートデータPD0の書き込みを禁止することを示す「0」の値であるため、第1マルチプレクサ48に送出している第1書込許可データPD4の値を「0」のままにする。
従って、第1マルチプレクサ48は、このとき第1ライトデータWD0が与えられるものの、第1書込許可データPD4の値が「0」に立ち下がっていることで、第1Dフリップフロップ49から入力されていた第1ポートデータPD0を選択して当該第1Dフリップフロップ49に送出する。
よって第1Dフリップフロップ49は、クロック端子に入力されているクロック信号CS1に応じて、その第1ポートデータPD0を再び保持すると共に、第1出力用バッファ25に送出し、また第1マルチプレクサ48に入力する。
そして第1AND回路46は、入力端子を介して取り込んでいた書込指示信号WS1の値が「1」から「0」に立ち下がっても、第1マルチプレクサ48に送出している第1書込許可データPD4の値を「0」に立ち下げたままにする。
よって第1マルチプレクサ48は、第1ポートデータPD0を第1Dフリップフロップ49に送出した後も、第1書込許可データPD4の値(すなわち、「0」)に応じて、第1Dフリップフロップ49から入力されていた第1ポートデータPD0を選択して当該第1Dフリップフロップ49に送出する。
このようにしてデータ処理回路ブロック40は、中央処理ユニット10から第1ポートデータPD0の書き込みが指示されないときには、すでに保持していた第1ポートデータPD0を引き続き第1出力用バッファ25に送出し続ける。
因みに、第2AND回路47は、この際も、上述と同様に第1入力用バッファ29から入力されている第1ポートデータPD0を元の値に関わらずに「0」の値にしてOR回路50に送出している。
ところで、このデータ処理回路ブロック40では、上述したように中央処理ユニット10によってデータ書込用にアクセスされたとき、第1ポートデータPD0の書き込みを許可する否かを示す第5ライトデータWD4の値に応じて、第1AND回路46から出力する第1書込許可データPD4の値を変化させている。
すなわち、第1AND回路46は、第5ライトデータWD4の値が、第1ポートデータPD0の書き込みを許可することを示す「1」の場合、第1書込許可データPD4の値を同一の「1」にし、その第5ライトデータWD4の値が、第1ポートデータPD0の書き込みを禁止することを示す「0」の場合、当該第1書込許可データPD4の値を同一の「0」にしている。
ただし、データ処理回路ブロック40は、係る第1書込許可データPD4の値を「1」に立ち上げても、中央処理ユニット10によるデータ処理回路ブロック40へのデータ書込用のアクセスが終了する(すなわち、第1AND回路46に入力される書込指示信号WS1の値が立ち下がる)と、これに応じて当該第1書込許可データPD4の値を「1」から「0」に立ち下げる。
言い換えると、データ処理回路ブロック40では、中央処理ユニット10によりデータ書込用にアクセスされ、第1ポートデータPD0の値の変更が指示されたときのみ、第1書込許可データPD4の値を、第1ポートデータPD0の書き込みを許可する「1」の値にし、これ以外では当該第1書込許可データPD4の値を、その書き込みを禁止する「0」の値にしている。
よってデータ処理回路ブロック40では、中央処理ユニット10により第1ポートデータPD0の値を変更するように指示されていない状態で、第1マルチプレクサ48の2個の入力端子のうち第1ライトデータWD0の入力用の一方が第1Dフリップフロップ49に導通して、ノイズ等により第1ポートデータPD0の値が意図せずに変化することを防止している。
続いて、中央処理ユニット10が第1乃至第4ファームウェアに従いデータの読出用に、内部バス12に出力している書込指示信号WS1の値を「0」に立ち下げたまま、レジスタ選択信号RS1の値を「1」に立ち上げた1クロック周期で、その内部バス12に第1アドレス信号AS1を出力した場合のデータ処理回路ブロック40の処理動作について説明する。
この際も、第1アドレスデコーダ45は、第1アドレス信号AS1と、値が「1」のレジスタ選択信号RS1とを取り込んでデコードすることで、データ処理回路ブロック40がアクセスされたことを認識して、出力信号の値を「1」に立ち上げる。
よって、第2AND回路47は、このとき第1入力用バッファ29から第1ポートデータPD0が入力されているものの、第1アドレスデコーダ45から入力される出力信号の値が「1」に立ち上がり、書込指示信号WS1を「0」の値から「1」の値に反転させて入力するため、第1ポートデータPD0をそのままOR回路50に送出することができる。
そしてデータレジスタ21及び方向制御レジスタ22は、中央処理ユニット10により異なるタイミングでアクセスされるため、このとき後述するようにOR回路50には、方向制御回路ブロック41から値が「0」の第1方向制御データPD10が与えられている。
このためデータ処理回路ブロック40は、このように中央処理ユニット10からデータの読出用にアクセスされたときには、そのOR回路50から第1ポートデータPD0を出力用の値、又は入力されたときの値のまま第1リードデータRD0として読み出させることができる。
またデータ処理回路ブロック40では、上述した第1書込許可データPD4をフリップフロップのような回路で特に保持してはいないが、第1AND回路46から第1書込許可データPD4を常に出力している。そしてデータ処理回路ブロック40では、特に図示していないが、例えば、その第1AND回路46から出力する第1書込許可データPD4を第1マルチプレクサ48の手前で分岐させて内部バス12側へ出力している。
またデータ処理回路ブロック40では、上述したように中央処理ユニット10により第1ポートデータPD0の値の変更が指示されたとき以外は、第1書込許可データPD4の値を「0」にしている。このため、データ処理回路ブロック40は、中央処理ユニット10からデータの読出用にアクセスされたとき、値を「0」にした第1書込許可データPD4を第5リードデータRD4として読み出させている。
引き続き、中央処理ユニット10が第1ファームウェアに従いデータの書込用に、内部バス12に出力しているレジスタ選択信号RS1の値、及び書込指示信号WS1の値を同時に「1」に立ち上げた1クロック周期で、その内部バス12に第2アドレス信号AS2と共に、第1方向制御データPD10の書き込みを指示する第1乃至第8ライトデータWD0乃至WD7を出力した場合の方向制御回路ブロック41の処理動作について説明する。
因みに、方向制御回路ブロック41において第2アドレスデコーダ51も、第1アドレスデコーダ45と同様に、当該方向制御回路ブロック41が中央処理ユニット10によりアクセスされたか否かを示す出力信号を第3AND回路52及び第4AND回路53に送出している。そして第2アドレスデコーダ51は、その方向制御回路ブロック41が中央処理ユニット10によってアクセスされるまでは、出力信号の値を「0」に立ち下げている。
また第3AND回路52は、第5書込許可データPD14を書き込む許可データ書込部として機能するものであり、第1AND回路46と同様に、第2マルチプレクサ54に対し第5書込許可データPD14を送出している。そして第3AND回路52は、中央処理ユニット10により第1方向制御データPD10の書き込みが許可されるまでは、その第5書込許可データPD14の値を「0」に立ち下げている。
この状態で第2アドレスデコーダ51は、第2アドレス信号AS2と、値が「1」のレジスタ選択信号RS1とを取り込むと、これらをデコードすることで方向制御回路ブロック41がアクセスされたことを認識し、これに応じて出力信号の値を「1」に立ち上げる。
このとき、第3AND回路52は、第5ライトデータWD4と、値が「1」の書込指示信号WS1とを取り込む。そして第3AND回路52は、この際、その第5ライトデータWD4の値が、第1方向制御データPD10の書き込みを許可することを示す「1」の値であるため、第5書込許可データPD14の値を「1」に立ち上げる。
ところで、第2マルチプレクサ54は、第2Dフリップフロップ55と共に第1方向制御データPD10を書き込むデータ書込部として機能するものであり、このとき第1ライトデータWD0が与えられ、第5書込許可データPD14の値が「1」に立ち上がることで、その第1ライトデータWD0を選択して第2Dフリップフロップ55に送出する。
これにより第2Dフリップフロップ55は、クロック端子に入力されているクロック信号CS1に応じて、その第1ライトデータWD0を、変更後の所望の値(すなわち、入出力方向制御用の値)を示す第1方向制御データPD10として保持すると共に、第1出力用バッファ25及び第4AND回路53に送出し、また第2マルチプレクサ54に入力する。このようにしてデータ処理回路ブロック40は、第1方向制御データPD10の値を変更することができる。
そして第3AND回路52は、例えば、入力端子を介して取り込んでいた書込指示信号WS1の値が「1」から「0」に立ち下がると、第2マルチプレクサ54に送出している第5書込許可データPD14の値を「0」に立ち下げる。
よって第2マルチプレクサ54は、第1ライトデータWD0を第2Dフリップフロップ55に送出した後、第5書込許可データPD14の値が「0」に立ち下がると、第2Dフリップフロップ55から入力されていた第1方向制御データPD10を選択して当該第2Dフリップフロップ55に送出する。これにより第2Dフリップフロップ55は、この後、値を変更した第1方向制御データPD10を第1出力用バッファ25に送出し続けることができる。
因みに、第4AND回路53は、方向制御回路ブロック41が、共に値が「1」のレジスタ選択信号RS1及び書込指示信号WS1を取り込んだときは、第2アドレスデコーダ51から入力される出力信号の値が「1」に立ち上がっているものの、書込指示信号WS1を「1」の値から「0」の値に反転させて入力するため、第2Dフリップフロップ55から与えられている第1方向制御データPD10を元の値に関わらずに「0」の値にしてOR回路50に送出している。
また第4AND回路53は、方向制御回路ブロック41に取り込んでいるレジスタ選択信号RS1及び書込指示信号WS1の値が共に「0」に立ち下がると、書込指示信号WS1を「0」の値から「1」の値に反転させて入力するものの、第2アドレスデコーダ51から入力される出力信号の値が「0」に立ち下がっているため、この場合も第1方向制御データPD10を元の値に関わらずに「0」の値にしてOR回路50に送出している。
次いで、中央処理ユニット10が第2乃至第4ファームウェアに従いデータの書込用に、内部バス12に出力しているレジスタ選択信号RS1の値、及び書込指示信号WS1の値を同時に「1」に立ち上げた1クロック周期で、その内部バス12に第2アドレス信号AS2と共に、第1方向制御データPD10以外の第2乃至第4方向制御データPD11乃至PD13の書き込みを指示する第1乃至第8ライトデータWD0乃至WD7を出力した場合の方向制御回路ブロック41の処理動作について説明する。
この際も、第2アドレスデコーダ51は、第1アドレス信号AS1と、値が「1」のレジスタ選択信号RS1とを取り込んでデコードすることで、方向制御回路ブロック41がアクセスされたことを認識して、出力信号の値を「1」に立ち上げる。
このとき、第3AND回路52は、第5ライトデータWD4と、値が「1」の書込指示信号WS1とを取り込む。ただし、第3AND回路52は、この際、その第5ライトデータWD4の値が、第1方向制御データPD10の書き込みを禁止することを示す「0」の値であるため、第2マルチプレクサ54に送出している第5書込許可データPD14の値を「0」のままにする。
従って、第2マルチプレクサ54は、このとき第1ライトデータWD0が与えられるものの、第5書込許可データPD14の値が「0」に立ち下がっていることで、第2Dフリップフロップ55から入力されていた第1方向制御データPD10を選択して当該第2Dフリップフロップ55に送出する。
よって第2Dフリップフロップ55は、クロック端子に入力されているクロック信号CS1に応じて、第2マルチプレクサ54から与えられた第1方向制御データPD10を再び保持すると共に、第1出力用バッファ25及び第4AND回路53に送出し、また第2マルチプレクサ54に入力する。
そして第3AND回路52は、例えば、入力端子を介して取り込んでいた書込指示信号WS1の値が「1」から「0」に立ち下がると、第2マルチプレクサ54に送出している第5書込許可データPD14の値を「0」に立ち下げたままにする。
よって第2マルチプレクサ54は、第1方向制御データPD10を第2Dフリップフロップ55に送出した後も、第5書込許可データPD14の値(すなわち、「0」)に応じて、第2Dフリップフロップ55から入力されていた第1方向制御データPD10を選択して当該第2Dフリップフロップ55に送出する。
このようにして方向制御回路ブロック41は、中央処理ユニット10から第1方向制御データPD10の書き込みが指示されないときには、すでに保持していた第1方向制御データPD10を引き続き第1出力用バッファ25に送出し続ける。
因みに、第4AND回路53は、この際も、上述と同様に第2Dフリップフロップ55から入力されている第1方向制御データPD10を元の値に関わらずに「0」の値にしてOR回路50に送出している。
ところで、この方向制御回路ブロック41では、上述したように中央処理ユニット10によってデータ書込用にアクセスされたとき、第1方向制御データPD10の書き込みを許可する否かを示す第5ライトデータWD4の値に応じて、第3AND回路52から出力する第5書込許可データPD14の値を変化させている。
そして方向制御回路ブロック41も、データ処理回路ブロック40と同様に、中央処理ユニット10によりデータ書込用にアクセスされ、第1方向制御データPD10の値を変更するように指示されたときのみ、第5書込許可データPD14の値を、その第1方向制御データPD10の書き込みを許可する「1」の値にし、これ以外では当該第5書込許可データPD14の値を、その書き込みを禁止する「0」の値にしている。
よって方向制御回路ブロック41でも、中央処理ユニット10により第1方向制御データPD10の値を変更するように指示されていない状態で、第2マルチプレクサ54の2個の入力端子のうち第1ライトデータWD0の入力用の一方が第2Dフリップフロップ55に導通して、ノイズ等により第1方向制御データPD10の値が意図せずに変化することを防止している。
続いて、中央処理ユニット10が第1乃至第4ファームウェアに従いデータの読出用に、内部バス12に出力している書込指示信号WS1の値を「0」に立ち下げたまま、レジスタ選択信号RS1の値を「1」に立ち上げた1クロック周期で、その内部バス12に第2アドレス信号AS2を出力した場合の方向制御回路ブロック41の処理動作について説明する。
この際も、第2アドレスデコーダ51は、第1アドレス信号AS1と、値が「1」のレジスタ選択信号RS1とを取り込んでデコードすることで、方向制御回路ブロック41がアクセスされたことを認識して、出力信号の値を「1」に立ち上げる。
よって、第4AND回路53は、このとき第2Dフリップフロップ55から第1方向制御データPD10が入力されているものの、第2アドレスデコーダ51から入力される出力信号の値が「1」に立ち上がり、書込指示信号WS1を「0」の値から「1」の値に反転させて入力するため、第1方向制御データPD10をそのままOR回路50に送出することができる。
そしてOR回路50は、この際、上述したようにデータ処理回路ブロック40の第2AND回路47から値が「0」の第1ポートデータPD0が与えられている。このため方向制御回路ブロック41は、このように中央処理ユニット10からデータの読出用にアクセスされたときには、そのOR回路50から第1方向制御データPD10を入出力方向制御用の値のまま第1リードデータRD0として読み出させることができる。
また方向制御回路ブロック41でも、データ処理回路ブロック40の場合と同様に、上述した第5書込許可データPD14を特に保持してはいないが、第3AND回路52から第5書込許可データPD14を常に出力している。そして方向制御回路ブロック41も、特に図示していないが、例えば、その第3AND回路52から出力する第5書込許可データPD14を第2マルチプレクサ54の手前で分岐させて内部バス12側へ出力している。
また方向制御回路ブロック41は、上述したように中央処理ユニット10により入出力方向制御用の値の第1方向制御データPD10の書き込みを許可するように指示されたとき以外は、第5書込許可データPD14の値を「0」にしている。このため、方向制御回路ブロック41は、中央処理ユニット10からデータの読出用にアクセスされたとき、値を「0」にした第5書込許可データPD14を第5リードデータRD4として読み出させている。
(1−4)データ書込処理及びデータ読出処理
次いで、図6に示すタイミングチャートを用いて、中央処理ユニット10が実行するデータ書込処理及びデータ読出処理について説明する。なお、以下には、係るデータ書込処理及びデータ読出処理を、中央処理ユニット10が第1ファームウェアに従いデータレジスタ21に、何れも値が「0」の第1乃至第4ポートデータPD0乃至PD3が保持されている状態で値が「1」の第1ポートデータPD0を書き込み、これを読み出す場合を例にして説明する。
中央処理ユニット10は、例えば、データレジスタ21が何れも値が「0」の第1乃至第4ポートデータPD0乃至PD3を保持している第1クロック周期(図6(A))では、内部バス12に出力しているレジスタ選択信号RS1の値を「0」に立ち下げ(図6(B))、また書込指示信号WS1の値も「0」に立ち下げている(図6(C))。
この状態で、中央処理ユニット10は、データレジスタ21に第1ポートデータPD0を書き込む場合、例えば、次の第2クロック周期(図6(A))で、内部バス12に出力しているレジスタ選択信号RS1の値を「1」に立ち上げる(図6(B))と共に、書込指示信号WS1の値も「1」に立ち上げ(図6(C))、また内部バス12に第1アドレス信号AS1を出力する(図6(D))と共に、第1乃至第8ライトデータWD0乃至WD7を出力する(図6(E))。
これによりデータレジスタ21は、レジスタ選択信号RS1、第1アドレス信号AS1及び書込指示信号WS1を取り込みデコードして、中央処理ユニット10からデータ書込用にアクセスされたことを認識する。そしてデータレジスタ21は、次の第3クロック周期(図6(A))で、中央処理ユニット10から与えられた第1乃至第8ライトデータWD0乃至WD7を用いて、上述した(1)式乃至(4)式に示す論理演算を行うことで、「1」の値の第1ポートデータPD0を書き込むようにして保持すると共に、第2乃至第4ポートデータPD1乃至PD3を元の値のまま保持する。
このようにしてデータレジスタ21は、第3クロック周期からは値が「1」の第1ポートデータPD0を第1出力用バッファ25に送出する(図6(J))と共に、値が元の「0」のままの第2乃至第4ポートデータPD1乃至PD3を、対応する第2乃至第4出力用バッファ26乃至28に送出する(図6(G)乃至(I))。
この状態で、中央処理ユニット10は、データレジスタ21から第1乃至第4ポートデータPD0乃至PD4を読み出す場合、例えば、第7クロック周期(図6(A))で、内部バス12に出力している書込指示信号WS1の値を「0」に立ち下げた(図6(C))まま、レジスタ選択信号RS1の値を再び「1」に立ち上げ(図6(B))、また内部バス12に第1アドレス信号AS1を出力する(図6(D))。
これによりデータレジスタ21は、レジスタ選択信号RS1、第1アドレス信号AS1及び書込指示信号WS1をデコードして、中央処理ユニット10からデータ読出用にアクセスされたことを認識する。そしてデータレジスタ21は、内部バス12に第1乃至第4ポートデータPD0乃至PD3を出力する(図6(G)乃至(J))と共に、何れも「0」の値の第1乃至第4書込許可データPD10乃至PD13を出力することで、中央処理ユニット10に、これらを第1乃至第8リードデータRD0乃至RD7として読み出させることができる。
このようにして中央処理ユニット10は、第1乃至第4ファームウェアの何れに従いデータレジスタ21にデータ書込用としてアクセスする場合でも、リードモディファイライト処理のような煩雑な処理を何ら実行することなく、そのデータレジスタ21に対する1回の書込処理を実行するだけで、第1乃至第4ファームウェアに対応する1個の第1乃至第4ポートデータPD0乃至PD3の値のみを変更し、他の3個の第1乃至第4ポートデータPD0乃至PD3の値を変更しないようにすることができる。
因みに、中央処理ユニット10は、特に図示しないが、第1乃至第4ファームウェアの何れに従い方向制御レジスタ22にデータ書込用としてアクセスする場合も、リードモディファイライト処理のような煩雑な処理を何ら実行することなく、その方向制御レジスタ22に対する1回の書込処理を実行するだけで、第1乃至第4ファームウェアに対応する1個の第1乃至第4方向制御データPD10乃至PD13の値のみを変更し、他の3個の第1乃至第4方向制御データPD10乃至PD13の値を変更しないようにすることができる。
すなわち、中央処理ユニット10は、データレジスタ21に対するデータ書込時、第1乃至第4ファームウェアに従い、図7に示すデータ書込処理手順RT1を開始する。中央処理ユニット10は、係るデータ書込処理手順RT1を開始すると、ステップSP1において、内部バス12を介して、第1乃至第4ポートデータPD0乃至PD3と、これらのうち何れの書き込みを許可し、また書き込みを禁止するかを示す第1乃至第4書込許可データPD4乃至PD7とを第1乃至第8ライトデータWD0乃至WD7として出力する。
これにより中央処理ユニット10は、データレジスタ21において、第1乃至第8ライトデータWD0乃至WD7に基づき、書き込みを許可した第1乃至第4ポートデータPD0乃至PD3のみを書き込んで値を変更し、書き込みを禁止した第1乃至第4ポートデータPD0乃至PD3については書き込まずに値の変更を回避する。そして中央処理ユニット10は、次のステップSP2に移り、係るデータ書込処理手順RT1を終了する。
因みに、中央処理ユニット10は、方向制御レジスタ22に対するデータ書込時も、その図7が示すデータ書込処理手順RT1と同様のデータ書込処理手順を実行することで、その方向制御レジスタ22において、第1乃至第8ライトデータWD0乃至WD7に基づき、書き込みを許可した第1乃至第4方向制御データPD10乃至PD13のみを書き込んで値を変更し、書き込みを禁止した第1乃至第4方向制御データPD10乃至PD13については書き込まずに値の変更を回避することができる。
(1−5)第1の実施の形態の動作及び効果
以上の構成において、FAX1では、LSI2に、中央処理ユニット10を設けると共に、第1乃至第4ポート端子15乃至18と、データレジスタ21及び方向制御レジスタ22とを有するポート回路11を設けるようにした。
またFAX1では、そのデータレジスタ21を、第1乃至第4ポート端子15乃至18を介して入出力する第1乃至第4ポートデータPD0乃至PD3と、これら第1乃至第4ポートデータPD0乃至PD3の書き込みを許可するか否かを示す第1乃至第4書込許可データPD4乃至PD7とを書込可能に形成するようにした。
さらにFAX1では、方向制御レジスタ22を、第1乃至第4ポート端子15乃至18の入出力の方向を制御する第1乃至第4方向制御データPD10乃至PD13と、これら第1乃至第4方向制御データPD10乃至PD13の書き込みを許可するか否かを示す第5乃至第8書込許可データPD14乃至PD17とを書込可能に形成するようにした。
そしてFAX1において中央処理ユニット10は、データレジスタ21に対するデータ書込時、そのデータレジスタ21に第1乃至第4ポートデータPD0乃至PD3と、第1乃至第4書込許可データPD4乃至PD7とを第1乃至第8ライトデータWD0乃至WD7として送出する。これによりデータレジスタ21は、中央処理ユニット10から第1乃至第8ライトデータWD0乃至WD7が与えられると、第1乃至第4書込許可データPD4乃至PD7が書き込みを許可することを示す第1乃至第4ポートデータPD0乃至PD3のみを書き込む。
またFAX1において中央処理ユニット10は、方向制御レジスタ22に対するデータ書込時、その方向制御レジスタ22に第1乃至第4方向制御データPD10乃至PD13と、第5乃至第8書込許可データPD14乃至PD17とを第1乃至第8ライトデータWD0乃至WD7として送出する。これにより方向制御レジスタ22は、中央処理ユニット10から第1乃至第8ライトデータWD0乃至WD7が与えられると、第5乃至第8書込許可データPD14乃至PD17が書き込みを許可することを示す第1乃至第4方向制御データPD10乃至PD13のみを書き込む。
従って、FAX1は、データレジスタ21に対するデータ書込時、リードモディファイライト処理を行わなくても、データレジスタ21に第1乃至第8ライトデータWD0乃至WD7として第1乃至第4ポートデータPD0乃至PD3と第1乃至第4書込許可データPD4乃至PD7とを与えるだけで、そのデータレジスタ21に第1乃至第4書込許可データPD4乃至PD7によって書き込みが許可された第1乃至第4ポートデータPD0乃至PD3のみを書き込むことができる。
またFAX1は、方向制御レジスタ22に対するデータ書込時、リードモディファイライト処理を行わなくても、方向制御レジスタ22に第1乃至第8ライトデータWD0乃至WD7として第1乃至第4方向制御データPD10乃至PD13と第5乃至第8書込許可データPD14乃至PD17とを与えるだけで、その方向制御レジスタ22に第5乃至第8書込許可データPD14乃至PD17によって書き込みが許可された第1乃至第4方向制御データPD10乃至PD13のみを書き込むことができる。
以上の構成によれば、FAX1のポート回路11において、データレジスタ21を、第1乃至第4ポートデータPD0乃至PD3と、これら第1乃至第4ポートデータPD0乃至PD3の書き込みを許可するか否かを示す第1乃至第4書込許可データPD4乃至PD7とを書込可能に形成し、方向制御レジスタ22を、第1乃至第4方向制御データPD10乃至PD13と、これら第1乃至第4方向制御データPD10乃至PD13の書き込みを許可するか否かを示す第5乃至第8書込許可データPD14乃至PD17とを書込可能に形成するようにした。
これによりFAX1は、データレジスタ21に対しリードモディファイライト処理を行わなくても、第1乃至第4ポートデータPD0乃至PD3と第1乃至第4書込許可データPD4乃至PD7とを与えるだけで、第1乃至第4書込許可データPD4乃至PD7によって書き込みが許可された第1乃至第4ポートデータPD0乃至PD3のみを書き込むことができると共に、方向制御レジスタ22に対してもリードモディファイライト処理を行うことなく、第1乃至第4方向制御データPD10乃至PD13と第5乃至第8書込許可データPD14乃至PD17とを与えるだけで、第5乃至第8書込許可データPD14乃至PD17によって書き込みが許可された第1乃至第4方向制御データPD10乃至PD13のみを書き込むことができる。よってFAX1は、データレジスタ21や方向制御レジスタ22に書き込んでいる第1乃至第4ポートデータPD0乃至PD3や第1乃至第4方向制御データPD10乃至PD13の値を変更するための処理を格段的に簡易化することができる。
またFAX1は、このようにデータレジスタ21や方向制御レジスタ22に対しリードモディファイライト処理を行わなくても、第1乃至第4ポートデータPD0乃至PD3の値や第1乃至第4方向制御データPD10乃至PD13の値を変更し得るため、これらの処理に使用する第1乃至第4ファームウェアの構成を大幅に簡易化することができる。
さらにFAX1は、係る構成により、中央処理ユニット10が複数の第1乃至第4ファームウェアに従い複数の電気部品4の制御にポート回路11を共有するものの、これら第1乃至第4ファームウェアに従いデータレジスタ21や方向制御レジスタ22にデータ書込用にアクセスする際の排他制御を行わなくてよくすることもできる。
またFAX1では、データレジスタ21において、第1乃至第4書込許可データPD4乃至PD7によって書き込みが許可された第1乃至第4ポートデータPD0乃至OD3を書き込んだ場合、その書き込みを許可することを示していた第1乃至第4書込許可データPD4乃至PD7を、書き込みを禁止することを示すように変更するようにした。
さらにFAX1では、方向制御レジスタ22においても、第5乃至第8書込許可データPD14乃至PD17によって書き込みが許可された第1乃至第4方向制御データPD10乃至PD13を書き込んだ場合、その書き込みを許可することを示していた第5乃至第8書込許可データPD14乃至PD17を、書き込みを禁止することを示すように変更するようにした。これによりFAX1では、値を変更しない第1乃至第4ポートデータPD0乃至PD3や第1乃至第4方向制御データPD10乃至PD13の値がノイズ等により意図せずに変化することを防止することができる。
(2)第2の実施の形態
(2−1)FAXの回路構成
次いで、図1との対応部分に同一符号を付した図8を用いて、第2の実施の形態によるFAX70の構成について説明する。第2の実施の形態によるFAX70は、回路基板3に実装されるLSI71の構成を除いて、上述した第1の実施の形態によるFAX1と同様に構成されている。
(2−2)LSIの回路構成
次いで、図2との対応部分に同一符号を付した図9を用いて、LSI71の回路構成について説明する。LSI71は、ポート回路72が設けられている。またポート回路72は、2種類の電気部品4との間で第1及び第2ポート端子15及び16を介して第1及び第2ポートデータPD0及びPD1の入出力を行い、また第1及び第2方向制御データPD10及びPD11により、その第1及び第2ポート端子15及び16の入出力の方向を個別に制御するレジスタ(以下、これを第1ポートレジスタとも呼ぶ)73を有している。
さらにポート回路72は、残りの2種類の電気部品4との間で第3及び第4ポート端子17及び18を介して第3及び第4ポートデータPD2及びPD3の入出力を行い、また第3及び第4方向制御データPD12及びPD13により、その第3及び第4ポート端子17及び18の入出力の方向を個別に制御するレジスタ(以下、これを第2ポートレジスタとも呼ぶ)74も有している。
この場合、第1ポートレジスタ73は、上述した第1の実施の形態によるデータレジスタ21において第1及び第2ポート端子15及び16を介した第1及び第2ポートデータPD0及びPD1の入出力の処理を行う部分と、方向制御レジスタ22において第1及び第2ポート端子15及び16の入出力の方向を制御する処理を行う部分とを合わせたように構成されている。
よって、第1ポートレジスタ73は、第1及び第2データ出力線を介して第1及び第2出力用バッファ25及び26の入力端子に接続されると共に、第1及び第2データ入力線を介して第1及び第2入力用バッファ29及び30の出力端子に接続されている。また第1ポートレジスタ73は、第1及び第2制御線を介して第1及び第2出力用バッファ25及び26の制御端子に接続されている。そして第1ポートレジスタ73は、これを個別に識別可能な第1アドレスが割り当てられており、内部バス12を介して中央処理ユニット10に接続されている。
一方、第2ポートレジスタ74は、上述した第1の実施の形態によるデータレジスタ21において第3及び第4ポート端子17及び18を介した第3及び第4ポートデータPD2及びPD3の入出力の処理を行う部分と、方向制御レジスタ22において第3及び第4ポート端子17及び18の入出力の方向を制御する処理を行う部分とを合わせたように構成されている。
よって、第2ポートレジスタ74は、第3及び第4データ出力線を介して第3及び第4出力用バッファ27及び28の入力端子に接続されると共に、第3及び第4データ入力線を介して第3及び第4入力用バッファ31及び32の出力端子に接続されている。また第2ポートレジスタ74は、第3及び第4制御線を介して第3及び第4出力用バッファ27及び28の制御端子に接続されている。そして第2ポートレジスタ74は、これを個別に識別可能な第2アドレスが割り当てられており、内部バス12を介して中央処理ユニット10に接続されている。
実際、図10に示すように、第1ポートレジスタ73は、8ビットのデータを書込及び読出可能に形成されており、その8ビットのデータとして例えば、ビット0及びビット1の2ビットに、第1及び第2ポートデータPD0及びPD1が割り当てられると共に、ビット2及びビット3の2ビットに、第1及び第2書込許可データPD4及びPD5が割り当てられている。また第1ポートレジスタ73は、その8ビットのデータとして例えば、ビット4及びビット5の2ビットに、第1及び第2方向制御データPD10及びPD11が割り当てられると共に、ビット6及びビット7の2ビットに、第5及び第6書込許可データPD14及びPD15が割り当てられている。
このため、中央処理ユニット10は、第1ポートレジスタ73へのデータ書込時、第1及び第2ファームウェアに従い、変更後の値(例えば、変更後の出力用の値)又は任意選定値を示す第1及び第2ポートデータPD0及びPD1を第1及び第2ライトデータWD0及びWD1とし、第1及び第2書込許可データPD4及びPD5を第3及び第4ライトデータWD2及びWD3とし、変更後の値(例えば、変更後の入出力方向制御用の値)又は任意選定値を示す第1及び第2方向制御データPD10及びPD11を第5及び第6ライトデータWD4及びWD5とし、第5及び第6書込許可データPD14及びPD15を第7及び第8ライトデータWD6及びWD7として第1ポートレジスタ73に送出している。
よって、中央処理ユニット10は、例えば、第1ファームウェアに従い第1ポートレジスタ73にデータ書込用にアクセスする場合、第1及び第3ライトデータWD0及びWD2の値と、第5及び第7ライトデータWD4及びWD6の値とにより、その第1ポートレジスタ73に対し第1ポートデータPD0と第1方向制御データPD10との何れか一方の値を変更し、また両方の値を同時に変更するように指示することができる。
また中央処理ユニット10は、例えば、第2ファームウェアに従い第1ポートレジスタ73にデータ書込用にアクセスする場合、第2及び第4ライトデータWD1及びWD3の値と、第6及び第8ライトデータWD5及びWD7の値とにより、その第1ポートレジスタ73に対し第2ポートデータPD1と第2方向制御データPD11との何れか一方の値を変更し、また両方の値を同時に変更するように指示することができる。
そして第1ポートレジスタ73は、中央処理ユニット10から第1乃至第8ライトデータWD0乃至WD7が与えられると、これら第1乃至第8ライトデータWD0乃至WD7の値と、すでに保持している第1及び第2ポートデータPD0及びPD1の値、並びに第1及び第2方向制御データPD10及びPD11の値とを用いて、上述した(1)式及び(2)式並びに(5)式及び(6)式に示す論理演算を行う。
これにより第1ポートレジスタ73は、中央処理ユニット10から第1ファームウェアに従い、対応する値の第1乃至第8ライトデータWD0乃至WD7が与えられた場合、その第1ファームウェアに対応する第1ポートデータPD0及び第1方向制御データPD10の一方の値や両方の値を変更して保持し、他の第2ポートデータPD1及び第2方向制御データPD11については何れも値を変更せずに、そのまま継続して保持することができる。
また第1ポートレジスタ73は、中央処理ユニット10から第2ファームウェアに従い、対応する値の第1乃至第8ライトデータWD0乃至WD7が与えられた場合、その第2ファームウェアに対応する第2ポートデータPD1及び第2方向制御データPD11の一方の値や両方の値を変更して保持し、他の第1ポートデータPD0及び第1方向制御データPD10については何れも値を変更せずに、そのまま継続して保持することができる。
従って、第1ポートレジスタ73は、中央処理ユニット10が第1及び第2ファームウェアの何れに従ってデータの書込用にアクセスする場合でも、リードモディファイライト処理を行わせることなく、そのアクセスに使用された第1及び第2ファームウェアに対応する1組の第1及び第2ポートデータPD0及びPD1並びに第1及び第2方向制御データPD10及びPD11の値のみを変更し、他の1組の第1及び第2ポートデータPD0及びPD1並びに第1及び第2方向制御データPD10及びPD11の値を意図せずに変更することを防止することができる。
一方、第2ポートレジスタ74も、特に図示しないが、8ビットのデータを書込及び読出可能に形成されており、その8ビットのデータとして例えば、ビット0及びビット1の2ビットに、第3及び第4ポートデータPD2及びPD3が割り当てられると共に、ビット2及びビット3の2ビットに、第3及び第4書込許可データPD6及びPD7が割り当てられている。また第2ポートレジスタ74は、その8ビットのデータとして例えば、ビット4及びビット5の2ビットに、第3及び第4方向制御データPD12及びPD13が割り当てられると共に、ビット6及びビット7の2ビットに、第7及び第8書込許可データPD16及びPD17が割り当てられている。
このため、中央処理ユニット10は、第2ポートレジスタ74へのデータ書込時、第3及び第4ファームウェアに従い、変更後の値(例えば、変更後の出力用の値)又は任意選定値を示す第3及び第4ポートデータPD2及びPD3を第1及び第2ライトデータWD0及びWD1とし、第3及び第4書込許可データPD6及びPD7を第3及び第4ライトデータWD2及びWD3とし、変更後の値(例えば、変更後の入出力方向制御用の値)又は任意選定値を示す第3及び第4方向制御データPD12及びPD13を第5及び第6ライトデータWD4及びWD5とし、第7及び第8書込許可データPD16及びPD17を第7及び第8ライトデータWD6及びWD7として第2ポートレジスタ74に送出している。
よって、中央処理ユニット10は、例えば、第3ファームウェアに従い第2ポートレジスタ74にデータ書込用にアクセスする場合、第1及び第3ライトデータWD0及びWD2の値と、第5及び第7ライトデータWD4及びWD6の値とにより、その第2ポートレジスタ74に対し第3ポートデータPD2と第3方向制御データPD12との何れか一方の値を変更し、また両方の値を同時に変更するように指示することができる。
また中央処理ユニット10は、例えば、第4ファームウェアに従い第2ポートレジスタ74にデータ書込用にアクセスする場合、第2及び第4ライトデータWD1及びWD3の値と、第6及び第8ライトデータWD5及びWD7の値とにより、その第2ポートレジスタ74に対し第4ポートデータPD3と第4方向制御データPD13との何れか一方の値を変更し、また両方の値を同時に変更するように指示することができる。
そして第2ポートレジスタ74は、中央処理ユニット10から第1乃至第8ライトデータWD0乃至WD7が与えられると、これら第1乃至第8ライトデータWD0乃至WD7の値と、すでに保持している第3及び第4ポートデータPD2及びPD3の値、並びに第3及び第4方向制御データPD12及びPD13の値とを用いて、上述した(2)式及び(4)式並びに(6)式及び(8)式に示す論理演算を行う。
これにより第2ポートレジスタ74は、中央処理ユニット10から第3ファームウェアに従い、対応する値の第1乃至第8ライトデータWD0乃至WD7が与えられた場合、その第3ファームウェアに対応する第3ポートデータPD2及び第3方向制御データPD12の一方の値や両方の値を変更して保持し、他の第4ポートデータPD3及び第4方向制御データPD13については何れも値を変更せずに、そのまま継続して保持することができる。
また第2ポートレジスタ74は、中央処理ユニット10から第4ファームウェアに従い、対応する値の第1乃至第8ライトデータWD0乃至WD7が与えられた場合、その第4ファームウェアに対応する第4ポートデータPD3及び第4方向制御データPD13の一方の値や両方の値を変更して保持し、他の第3ポートデータPD2及び第3方向制御データPD12については何れも値を変更せずに、そのまま継続して保持することができる。
従って、第2ポートレジスタ74は、中央処理ユニット10が第3及び第4ファームウェアの何れに従ってデータの書込用にアクセスする場合でも、リードモディファイライト処理を行わせることなく、そのアクセスに使用された第3及び第4ファームウェアに対応する1組の第3及び第4ポートデータPD2及びPD3並びに第3及び第4方向制御データPD12及びPD13の値のみを変更し、他の1組の第3及び第4ポートデータPD2及びPD3並びに第3及び第4方向制御データPD12及びPD13の値を意図せずに変更することを防止することができる。
(2−3)第1ポートレジスタ及び第2ポートレジスタの回路構成
次いで、図5との対応部分に同一符号を付した図11を用いて、第1ポートレジスタ73及び第2ポートレジスタ74の回路構成について説明する。第1ポートレジスタ73は、互いに異なる第1及び第2ポート端子15及び16について第1及び第2ポートデータPD0及びPD1を入出力し、また当該入出力の方向を制御する2個の回路ブロック75を有している。また第2ポートレジスタ74も、互いに異なる第3及び第4ポート端子17及び18について第3及び第4ポートデータPD2及びPD3を入出力し、また当該入出力の方向を制御する2個の回路ブロックを有している。
ただし、第1ポートレジスタ73の2個の回路ブロック75と、第2ポートレジスタ74の2個の回路ブロックとは、何れも、扱う第1乃至第4ポートデータPD0乃至PD3、第1乃至第4方向制御データPD10乃至PD13、第1乃至第8ライトデータWD0乃至WD7、第1乃至第8リードデータRD0乃至RD7が異なるだけで、上述したデータレジスタ21の1個のデータ処理回路ブロック40と方向制御レジスタ22の1個の方向制御回路ブロック41とを合わせたような同一の構成を有している。
このため、以下には、第1ポートレジスタ73及び第2ポートレジスタ74の回路構成として、第1ポート端子15を介した第1ポートデータPD0の入出力を制御する第1ポートレジスタ73の1個の回路ブロック75の回路構成についてのみ説明し、第1ポートレジスタ73の他の1個の回路ブロックの構成と、第2ポートレジスタ74の2個の回路ブロックの回路構成とについては説明を省略する。因みに、図11には、第1ポートレジスタ73の1個の回路ブロックの回路構成のみを示している。
第1ポートレジスタ73において回路ブロック75は、データ書込時、第1アドレスデコーダ45及び第2アドレスデコーダ51が、内部バス12を介して第1アドレス信号AS1及びレジスタ選択信号RS1を同時に入力するように構成されている。また回路ブロック75は、第1AND回路46及び第3AND回路52が、内部バス12を介して第3ライトデータWD2及び第7ライトデータWD6を同時に入力するように構成されている。
さらに回路ブロック75は、第1マルチプレクサ48及び第2マルチプレクサ54に、内部バス12を介して第1ライトデータWD0及び第5ライトデータWD4が同時に与えられるように構成されている。これにより回路ブロック75は、第1ポートデータPD0の値、及び第1方向制御データPD10の値の何れか一方を変更することができ、また当該第1ポートデータPD0の値、及び第1方向制御データPD10の値を同時に変更することもできる。
因みに、ポート回路72には、第1の実施の形態のポート回路11に設けられていたOR回路50が設けられていない。よって回路ブロック75は、第2AND回路47の出力端子及び第4AND回路53の出力端子が内部バス12に接続されている。これにより回路ブロック75は、データ読出時、中央処理ユニット10が第1ポートデータPD0及び第1方向制御データPD10を第1リードデータRD0及び第5リードデータRD4として同時に読み出せるようにしている。
(2−4)データ書込処理及びデータ読出処理
次いで、図12に示すタイミングチャートを用いて、中央処理ユニット10が実行するデータ書込処理及びデータ読出処理について説明する。なお、以下には、係るデータ書込処理及びデータ読出処理を、中央処理ユニット10が第1ファームウェアに従い第1ポートレジスタ73に、何れも値が「0」の第1及び第2ポートデータPD0及びPD1並びに第1及び第2方向制御データPD10及びPD11が保持されている状態で、何れも値が「1」の第1ポートデータPD0及び第1方向制御データPD10を同時に書き込み、これを読み出す場合を例にして説明する。
中央処理ユニット10は、例えば、第1ポートレジスタ73が何れも値が「0」の第1及び第2ポートデータPD0及びPD1並びに第1及び第2方向制御データPD10及びPD11を保持している第1クロック周期(図12(A))では、内部バス12に出力しているレジスタ選択信号RS1の値を「0」に立ち下げ(図12(B))、また書込指示信号WS1の値も「0」に立ち下げている(図12(C))。
この状態で、中央処理ユニット10は、第1ポートレジスタ73に第1ポートデータPD0及び第1方向制御データPD10を書き込む場合、例えば、次の第2クロック周期(図12(A))で、内部バス12に出力しているレジスタ選択信号RS1の値を「1」に立ち上げる(図12(B))と共に、書込指示信号WS1の値も「1」に立ち上げ(図12(C))、また内部バス12に第1アドレス信号AS1を出力する(図12(D))と共に、第1乃至第8ライトデータWD0乃至WD7を出力する(図12(E))。
これにより第1ポートレジスタ73は、レジスタ選択信号RS1、第1アドレス信号AS1及び書込指示信号WS1を取り込みデコードして、中央処理ユニット10からデータ書込用にアクセスされたことを認識する。そして第1ポートレジスタ73は、次の第3クロック周期(図12(A))で、中央処理ユニット10から与えられた第1乃至第8ライトデータWD0乃至WD7を用いて、上述した(1)式及び(2)式並びに(5)式及び(6)式に示す論理演算を行うことで、何れも「1」の値の第1ポートデータPD0及び第1方向制御データPD10を書き込むようにして保持すると共に、第2ポートデータPD1及び第2方向制御データPD11を元の値のまま保持する。
このようにして第1ポートレジスタ73は、第3クロック周期からは値が「1」の第1ポートデータPD0及び第1方向制御データPD10を第1出力用バッファ25に送出する(図12(J)及び(H))と共に、値が元の「0」のままの第2ポートデータPD1及び第2方向制御データPD11を、対応する第2出力用バッファ26に送出する(図12(I)及び(G))。
この状態で、中央処理ユニット10は、第1ポートレジスタ73から第1及び第2ポートデータPD0及びPD1並びに第1及び第2方向制御データPD10及びPD11を読み出す場合、例えば、第7クロック周期(図12(A))で、内部バス12に出力している書込指示信号WS1の値を「0」に立ち下げた(図12(C))まま、レジスタ選択信号RS1の値を再び「1」に立ち上げ(図12(B))、また内部バス12に第1アドレス信号AS1を出力する(図12(D))。
これにより第1ポートレジスタ73は、レジスタ選択信号RS1、第1アドレス信号AS1及び書込指示信号WS1をデコードして、中央処理ユニット10からデータ読出用にアクセスされたことを認識する。そして第1ポートレジスタ73は、内部バス12に第1及び第2ポートデータPD0及びPD1並びに第1及び第2方向制御データPD10及びPD11を出力する(図12(G)乃至(J))と共に、何れも値が「0」の第1及び第2並びに第5及び第6書込許可データPD10及びPD11並びにPD14及びPD15を出力することで、中央処理ユニット10に、これらを第1乃至第8リードデータRD0乃至RD7として読み出させることができる。
このようにして中央処理ユニット10は、第1及び第2ファームウェアの何れに従い第1ポートレジスタ73にデータ書込用にアクセスする場合でも、リードモディファイライト処理のような煩雑な処理を何ら実行することなく、その第1ポートレジスタ73に対する1回の書込処理を実行するだけで、第1及び第2ファームウェアに対応する1組の第1及び第2ポートデータPD0及びPD1並びに第1及び第2方向制御データPD10及びPD11の値のみを変更し、他の1組の第1及び第2ポートデータPD0及びPD1並びに第1及び第2方向制御データPD10及びPD11の値を変更しないようにすることができる。
因みに、中央処理ユニット10は、特に図示しないが、第3及び第4ファームウェアの何れに従い第2ポートレジスタ74にデータ書込用にアクセスする場合も、リードモディファイライト処理のような煩雑な処理を何ら実行することなく、その第2ポートレジスタ74に対する1回の書込処理を実行するだけで、第1乃至第4ファームウェアに対応する1組の第3及び第4ポートデータPD2及びPD3並びに第3及び第4方向制御データPD12及びPD13の値のみを変更し、他の1組の第3及び第4ポートデータPD2及びPD3並びに第3及び第4方向制御データPD12及びPD13の値を変更しないようにすることができる。
(2−5)第2の実施の形態の動作及び効果
以上の構成において、FAX70では、LSI71に、中央処理ユニット10を設けると共に、第1乃至第4ポート端子15乃至18と、第1ポートレジスタ73及び第2ポートレジスタ74とを有するポート回路72を設けるようにした。
そしてFAX70では、第1ポートレジスタ73を、第1及び第2ポートデータPD0及びPD1と、これら第1及び第2ポートデータPD0及びPD1の書き込みを許可するか否かを示す第1及び第2書込許可データPD4及びPD5と、第1及び第2方向制御データPD10及びPD11と、これら第1及び第2方向制御データPD10及びPD11の書き込みを許可するか否かを示す第5及び第6書込許可データPD14及びPD15とを書込可能に形成するようにした。
またFAX70では、第2ポートレジスタ74を、第3及び第4ポートデータPD2及びPD3と、これら第3及び第4ポートデータPD2及びPD3の書き込みを許可するか否かを示す第3及び第4書込許可データPD6及びPD7と、第3及び第4方向制御データPD12及びPD13と、これら第3及び第4方向制御データPD12及びPD13の書き込みを許可するか否かを示す第7及び第8書込許可データPD16及びPD17とを書込可能に形成するようにした。
そしてFAX70において中央処理ユニットは、第1ポートレジスタ73に対するデータ書込時、その第1ポートレジスタ73に第1及び第2ポートデータPD0及びPD1と、第1及び第2書込許可データPD4及びPD5と、第1及び第2方向制御データPD10及びPD11と、第5及び第6書込許可データPD14及びPD15とを第1乃至第8ライトデータWD0乃至WD7として送出する。
これにより第1ポートレジスタ73は、中央処理ユニット10から第1乃至第8ライトデータWD0乃至WD7が与えられると、第1及び第2書込許可データPD4及びPD5並びに第5及び第6書込許可データPD14及びPD15に応じて、第1ポートデータPD0及び第1方向制御データPD10を同時に書き込み、また第2ポートデータPD1及び第2方向制御データPD11を同時に書き込むことができる。
またFAX70において中央処理ユニットは、第2ポートレジスタ74に対するデータ書込時、その第2ポートレジスタ74に第3及び第4ポートデータPD2及びPD3と、第3及び第4書込許可データPD6及びPD7と、第3及び第4方向制御データPD12及びPD13と、第7及び第8書込許可データPD16及びPD17とを第1乃至第8ライトデータWD0乃至WD7として送出する。
これにより第2ポートレジスタ74は、中央処理ユニット10から第1乃至第8ライトデータWD0乃至WD7が与えられると、第3及び第4書込許可データPD6及びPD7並びに第7及び第8書込許可データPD16及びPD17に応じて、第3ポートデータPD2及び第3方向制御データPD12を同時に書き込み、また第4ポートデータPD3及び第4方向制御データPD13を同時に書き込むことができる。
従って、FAX70は、第1ポートレジスタ73に対するデータ書込時、第1ファームウェアに対応する第1ポートデータPD0及び第1方向制御データPD10の値を同時に変更するようにして、第1ポート端子15に対する第1ポートデータPD0の値及び入出力の方向の制御を同時に行うことができ、また第2ファームウェアに対応する第2ポートデータPD1及び第2方向制御データPD11の値を同時に変更するようにして、第2ポート端子16に対する第2ポートデータPD1の値及び入出力の方向の制御を同時に行うことができる。
またFAX70は、第2ポートレジスタ74に対するデータ書込時、第3ファームウェアに対応する第3ポートデータPD2及び第3方向制御データPD12の値を同時に変更するようにして、第3ポート端子17に対する第3ポートデータPD2の値及び入出力の方向の制御を同時に行うことができ、また第4ファームウェアに対応する第4ポートデータPD3及び第4方向制御データPD13の値を同時に変更するようにして、第4ポート端子18に対する第4ポートデータPD3の値及び入出力の方向の制御を同時に行うことができる。
以上の構成によれば、FAX70のポート回路72において、第1ポートレジスタ73を、第1及び第2ポートデータPD0及びPD1と、これら第1及び第2ポートデータPD0及びPD1の書き込みを許可するか否かを示す第1及び第2書込許可データPD4及びPD5と、第1及び第2方向制御データPD10及びPD11と、これら第1及び第2方向制御データPD10及びPD11の書き込みを許可するか否かを示す第5及び第6書込許可データPD14及びPD15とを書込可能に形成し、第2ポートレジスタ74を、第3及び第4ポートデータPD2及びPD3と、これら第3及び第4ポートデータPD2及びPD3の書き込みを許可するか否かを示す第3及び第4書込許可データPD6及びPD7と、第3及び第4方向制御データPD12及びPD13と、これら第3及び第4方向制御データPD12及びPD13の書き込みを許可するか否かを示す第7及び第8書込許可データPD16及びPD17とを書込可能に形成するようにした。
これによりFAX70は、上述した第1の実施の形態によって得られる効果と同様の効果が得られると共に、これに加えて第1ポートデータPD0及び第1方向制御データPD10の値を同時に変更して、第1ポート端子15に対する第1ポートデータPD0の値及び入出力の方向の制御を同時に行い、また第2ポートデータPD1及び第2方向制御データPD11の値を同時に変更して、第2ポート端子16に対する第2ポートデータPD1の値及び入出力の方向の制御を同時に行うことができる。
またFAX70は、第3ポートデータPD2及び第3方向制御データPD12の値を同時に変更して、第3ポート端子17に対する第3ポートデータPD2の値及び入出力の方向の制御を同時に行い、また第4ポートデータPD3及び第4方向制御データPD13の値を同時に変更して、第4ポート端子18に対する第4ポートデータPD3の値及び入出力の方向の制御を同時に行うことができる。よって、FAX70は、これら第1乃至第4ポート端子15乃至18毎の制御のための処理回数や処理時間を低減させることができる。
(3)他の実施の形態
(3−1)他の実施の形態1
なお上述した第1及び第2の実施の形態においては、LSI2、71に中央処理ユニット10を設けるようにした場合について述べた。しかしながら本発明は、これに限らず、中央処理ユニット10をLSI2、71の外部に設けるようにしても良い。
(3−2)他の実施の形態2
また上述した第1及び第2の実施の形態においては、データレジスタ21、方向制御レジスタ22、第1ポートレジスタ73及び第2ポートレジスタ74をそれぞれ8ビット幅のデータバスを有する内部バス12を介して中央処理ユニット10に接続し、8ビットのデータを書込及び読出可能に形成するようにした場合について述べた。
しかしながら本発明は、これに限らず、データレジスタ21、方向制御レジスタ22、第1ポートレジスタ73及び第2ポートレジスタ74をそれぞれ16ビット幅や32ビット幅等の種々のビット幅のデータバスを有する内部バス12を介して中央処理ユニット10に接続し、16ビットや32ビット等の種々のビットのデータを書込及び読出可能に形成するようにしても良い。
(3−3)他の実施の形態3
さらに上述した第1及び第2の実施の形態においては、第1乃至第8書込許可データPD4乃至PD7並びにPD14乃至PD17により、対応する1個の第1乃至第4ポートデータPD0乃至PD3並びに第1乃至第4方向制御データPD10乃至PD13の書き込みを許可するか否かを示すようにした場合について述べた。
しかしながら本発明は、これに限らず、第1乃至第8書込許可データPD4乃至PD7並びにPD14乃至PD17により、対応する2個以上の第1乃至第4ポートデータPD0乃至PD3並びに第1乃至第4方向制御データPD10乃至PD13の書き込みを許可するか否かを示すようにしても良い。
(3−4)他の実施の形態4
さらに上述した第1及び第2の実施の形態においては、本発明による半導体集積回路を、図1乃至図12について上述したFAX1、70に設けられるLSI2、71に適用するようにした場合について述べた。しかしながら本発明は、これに限らず、電子写真式のプリンタ及び複合機等のような画像形成装置や、パーソナルコンピュータ及び携帯電話機等の情報処理装置のような種々の電子機器に設けられるLSI、VLSI(Very Large Scale Integration)及びULSI(Ultra Large Scale Integration)等のような、この他種々の半導体集積回路に広く適用することができる。
(3−5)他の実施の形態5
さらに上述した第1及び第2の実施の形態においては、複数の入出力端子として、図1乃至図12について上述した4個の第1乃至第4ポート端子15乃至18を適用するようにした場合について述べた。しかしながら本発明は、これに限らず、データレジスタ21、方向制御レジスタ22、第1ポートレジスタ73及び第2ポートレジスタ74に書込及び読出可能なデータのビット数に応じて、2個のポート端子や5個以上のポート端子等のように、この種々の個数の入出力端子を広く適用することができる。
(3−6)他の実施の形態6
さらに上述した第1及び第2の実施の形態においては、複数の入出力端子の入出力を制御するための複数のデータと、対応するデータの書き込みを許可するか否かを示す1又は複数の書込許可データとが書込可能に形成され、書込許可データが、対応するデータの書き込みを許可することを示す場合、当該対応するデータを書き込むレジスタとして、図1乃至図12について上述したそれぞれ8ビットのデータを書込及び読出可能に形成されたデータレジスタ21、方向制御レジスタ22、第1ポートレジスタ73及び第2ポートレジスタ74を適用するようにした場合について述べた。しかしながら本発明は、これに限らず、16ビットや32ビット等の種々のビット数のデータを書込及び読出可能に形成された、この他種々の構成のレジスタを広く適用することができる。
(3−7)他の実施の形態7
さらに上述した第1及び第2の実施の形態においては、複数のデータを書き込むデータ書込部として、図1乃至図12について上述した第1及び第2マルチプレクサ48及び54並びに第1及び第2Dフリップフロップ49及び55を適用するようにした場合について述べた。しかしながら本発明は、これに限らず、メモリ等のように、この他種々の構成のデータ書込部を広く適用することができる。
(3−8)他の実施の形態8
さらに上述した第1及び第2の実施の形態においては、1又は複数の書込許可データを書き込む許可データ書込部として、図1乃至図12について上述した第1及び第3AND回路46及び52を適用するようにした場合について述べた。しかしながら本発明は、これに限らず、Dフリップフロップやメモリ等のように、この他種々の構成の許可データ書込部を広く適用することができる。