(57)【要約】【課題】割り込み処理の影響を受けずに、出力データをビット単位に切り替え可能なポート回路、マイクロコンピュータ、及びデータの出力方法を提供することにある。【解決手段】本発明による出力ポート回路３は、複数の出力バッファ２４への出力データを保持する複数の第１保持回路２２と、複数の第１保持回路２２へ出力すべきデータを保持する複数の第２保持回路２０と、複数の第２保持回路２０の出力データが複数の第１保持回路２２に取り込まれるか否かを個別に設定するビットパタンデータを保持する複数の第３保持回路２１とを具備する。複数の第２保持回路２０へのデータ入力と複数の第３保持回路２１へのデータ入力とは同一タイミングで制御される。【選択図】図３
2009163285.tif 000002
【特許請求の範囲】
【請求項１】
複数の出力バッファと、
前記複数の出力バッファへの出力データを保持する複数の第１保持回路と、
前記複数の第１保持回路へ出力すべきデータを保持する複数の第２保持回路と、
前記複数の第２保持回路の出力データが前記複数の第１保持回路に取り込まれるか否かを個別に設定するビットパタンデータを保持する複数の第３保持回路と、
を具備し、
前記複数の第２保持回路へのデータ入力と前記複数の第３保持回路へのデータ入力とは同一タイミングで制御される
出力ポート回路。
【請求項２】
請求項１に記載の出力ポート回路において、
前記複数の第２保持回路と前記複数の第３保持回路は、同一のクロックに同期して動作し、
前記複数の第２保持回路は、演算処理装置からの書き込み信号に基づく第１書き込み許可信号に応じて前記出力すべきデータを取り込み、
前記複数の第３保持回路は、前記第１書き込み許可信号に応じて前記ビットパタンデータを取り込む
出力ポート回路。
【請求項３】
請求項２に記載の出力ポート回路において、
前記複数の第２保持回路は、前記第１書き込み許可信号に応じてデータバスにおける複数の第１信号線のデータを取り込み、
前記複数の第３保持回路は、前記第１書き込み許可信号に応じて前記データバスにおける前記複数の第１信号線と異なる複数の第２信号線のデータを取り込む
出力ポート回路。
【請求項４】
請求項３に記載の出力ポート回路において、
前記データバスは、前記入出力端子の数の少なくとも２倍のバス幅を有する
出力ポート回路。
【請求項５】
請求項１から４のいずれか１項に記載の出力ポート回路において、
前記複数の第１保持回路に対するデータの入力は、前記複数の第３保持回路が保持する前記ビットパタンデータに基づいて制御される
出力ポート回路。
【請求項６】
請求項１から４のいずれか１項に記載の出力ポート回路において、
前記複数の第３保持回路が保持するビットパタンデータに基づいて、前記複数の第１保持回路が保持する複数の第１データと、前記複数の第２保持回路が保持する複数の第２データとから、ビット毎に一方を選択して出力する選択回路を更に具備し、
前記複数の第１保持回路は、前記選択回路から出力されるデータを前記出力データとして保持する
出力ポート回路。
【請求項７】
請求項６に記載の出力ポート回路において、
前記複数の第１保持回路に対するデータの入力を制御する第４保持回路を更に具備し、
前記第４保持回路は、前記第１書き込み許可信号の入力の次に入力されるクロックに同期して第２書き込み許可信号を出力し、
前記複数の第１保持回路は、前記第２書き込み許可信号に応じて前記選択回路からの出力データを保持する
出力ポート回路。
【請求項８】
請求項１から７のいずれか１項に記載の出力ポート回路と、
前記出力ポート回路に接続されたデータバスと、
メモリと、
前記メモリに記録された命令コードに基づいて書き込み信号を出力する演算処理装置と、
を具備し、
前記演算処理装置は、データを前記データバスに出力し、
前記出力ポート回路は、前記書き込み信号に基づいて前記データバスのデータを取り込み、外部装置に出力する
マイクロコンピュータ。
【請求項９】
複数の第２保持回路が、複数の第１保持回路へ出力すべきデータを取り込んで保持する第１保持ステップと、
複数の第３保持回路が、前記複数の第２保持回路の出力データが前記複数の第１保持回路に取り込まれるか否かを個別に設定するビットパタンデータを、前記第１保持ステップと同じタイミングで取り込んで保持する第２保持ステップと、
前記複数の第１保持回路が、複数の出力バッファへの出力データを保持する第３保持ステップと、
前記複数の出力バッファが前記複数の第１保持回路で保持された出力データを出力するステップと、
を具備する
データ出力方法。
【請求項１０】
請求項９に記載のデータ出力方法において、
前記第１保持ステップは、前記複数の第２保持回路が、第１書き込み許可信号に応じてデータバスにおける複数の第１信号線のデータを取り込むステップを備え、
前記第２保持ステップは、前記複数の第３保持回路が、前記第１書き込み許可信号に応じて前記データバスにおける前記複数の第１信号線と異なる複数の第２信号線のデータを取り込むステップを備える
データ出力方法。
【請求項１１】
請求項９又は１０に記載のデータ出力方法において、
前記第３保持ステップは、前記複数の第１保持回路のうち、前記ビットパタンデータに基づいて許可された第１保持回路が、前記複数の第２保持回路の対応する第２保持回路からデータを取り出すステップを備える
データ出力方法。
【請求項１２】
請求項９又は１０に記載のデータ出力方法において、
前記第３保持ステップは、
選択回路が、前記ビットパタンデータに基づいて、前記複数の第１保持回路が保持する複数の第１データと、前記複数の第２保持回路が保持する複数の第２データの一方を、ビット毎に選択して出力するステップと、
前記複数の第１保持回路が、前記選択回路から出力されるデータを前記出力データとして保持するステップと、
を備えるデータ出力方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビット単位でデータを変更する出力ポート回路、その入出力ポートを備えるマイクロコンピュータ、及びデータ出力方法に関する。
【背景技術】
【０００２】
図１は、特許公報第２８９０６６０号に記載の出力回路の構成を示す図である（特許文献１参照）。特許文献１に記載の出力回路は、ビット選択型出力ポート５０を備える。ビット選択型出力ポート５０は、ＣＰＵ４０によって制御される保持回路５２、５４、データバスのデータ信号が入力される選択回路５３を備える。保持回路５２は、ＣＰＵ４０からのビットパタン信号（以下、マスクパタンと称す）を保持し、ビット選択指示信号として出力する。選択回路５３は、ビット選択指示信号によって指示されたビットに対しては、データバス５１からのデータを選択し、ビット選択信号によって指示されていないビットに対しては、保持回路５４で保持されたデータを選択して保持回路５４へ出力する。保持回路５４は、選択回路５３から出力されれたデータを保持し、ＣＰＵからの制御信号に応じて出力データ信号として出力する。
【０００３】
このように、特許文献１に記載のビット選択型出力ポート５０によれば、ＣＰＵ４０は、変化させたいビットを指定するマスクパタンと、ビットに書き込むデータの値とをデータバス５１に送出することで、ビット単位でデータの値を変えることができる。
【０００４】
【特許文献１】特許公報第２８９０６６０号
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載のビット選択型出力ポートでは、保持回路５２へのマスクパタンの書き込みと、保持回路５３へのデータの書き込みは、制御信号線５５、５６からの命令によって異なるタイミングで実行される。このため、マスクパタンの書き込み命令と、当該マスクパタンに対応したデータの書き込み命令との間に割り込み命令が発生する恐れがある。このような場合、割り込み前に書き込まれたマスクパタンと異なるマスクパタンが割り込み処理によって書き込まれるため、ＣＰＵが所望したマスクパタンと、書き込むデータ値との整合が取れず、値を変化させたいビットが変化しないことや、値を変化させたくないビットが変化してしまう場合がある。
【０００６】
一例として、上述の出力ポートの出力端子が４ビット構成であり、ＣＰＵ４０がビット１〜３をマスクし、保持回路５３にデータを書き込む場合について説明する。割り込みが発生しない場合、保持回路５３が保持するデータのうちビット０のみが書き換えられる。しかし、保持回路５２にビット１〜３をマスクするマスクパタンが書き込まれた後、割り込みが発生した場合、割り込み処理において変更されたマスクパタン（例えばビット０〜２をマスクするマスクパタン）によって、割り込み復帰後の保持回路５３は、ビット１のみが書き換えられ、書き換え対象のビット０のデータは保持される。このように、従来技術による出力ポートでは、マスクパタンの書き込みとデータの書き込みとの間に割り込みが発生すると、書き換え対象のビットのデータを書き換えることができない場合がある。
【０００７】
このため、従来技術によるビット選択型ポートでは、保持回路１４に対するマスクパタンの書き込み命令と、保持回路５３へのデータの書き込み命令との間に割り込み命令が発生しないように、プログラミング（ソフトウェア）による割り込み禁止等の処置を施す必要があった。
【０００８】
一方、近年、シングルチップマイクロコンピュータ（以下、１チップマイコンと称す）を使用した応用分野では、ソフトウェアの大規模化が顕著となっている。このため、ハードウェアを意識しないプログラミングを実施することにより品質を向上させることが要求されている。従来のビット選択型ポートを利用した１チップマイコンを開発する場合、割り込みの有無を考慮しながらソフトウェア開発を進める必要がある。このため、ビット操作命令毎に割り込み禁止を追加する必要がありプログラムサイズの増大を招いてしまう。又、ハードウェアの変更がある場合、ソフトウェアも大きく変更する必要があり、大規模ソフトウェアの開発に大きな負担となる。
【課題を解決するための手段】
【０００９】
上記の課題を解決するために、本発明は、以下に述べられる手段を採用する。その手段を構成する技術的事項の記述には、［特許請求の範囲］の記載と［発明を実施するための最良の形態］の記載との対応関係を明らかにするために、［発明を実施するための最良の形態］で使用される番号・符号が付加されている。ただし、付加された番号・符号は、［特許請求の範囲］に記載されている発明の技術的範囲を限定的に解釈するために用いてはならない。
【００１０】
本発明による出力ポート回路（３）は、複数の出力バッファ（２４）と、複数の第１保持回路（２２）と、複数の第２保持回路（２０）と、複数の第３保持回路（２１又は２８）とを具備する。複数の第１保持回路（２２）は、複数の出力バッファ（２４）への出力データを保持する。複数の第２保持回路（２０）は、複数の第１保持回路（２２）へ出力すべきデータを保持する。複数の第３保持回路（２１又は２８）は、複数の第２保持回路（２０）の出力データが複数の第１保持回路（２２）に取り込まれるか否かを個別に設定するビットパタンデータを保持する。ここで、複数の第２保持回路（２０）へのデータ入力と複数の第３保持回路（２１又は２８）へのデータ入力とは同一タイミングで制御される。
【００１１】
このように、本発明による出力ポート回路（３）によれば、ビットパタンによって取り込むことが許可された第１保持回路（２４）は、第２保持回路（２０）の保持するデータを取り込む。これによりビット毎のデータの変更が可能になる。又、本発明によれば、第２保持回路（２０）と第３保持回路（２１又は２８）に対して同じタイミングでデータが入力される。このため、第１保持回路（２２）が取り込むか否かを決めるビットパタンと、取り込むべき（出力すべき）データとの対応関係が維持される。これにより、データの取り込みが許可される第１保持回路と書き込むデータとが一貫性が保たれるため、割り込み処理によるエラーを回避することができる。
【００１２】
本発明による出力ポート回路（３）は、マイクロコンピュータに搭載されることが好適である。本発明によるマイクロコンピュータは、出力ポート回路（３）に接続されたデータバス（５）と、メモリ（２）と、メモリ（２）に記録された命令コードに基づいて書き込み信号（１００）を出力する演算処理装置（１）とを具備する。演算処理装置（１）は、データをデータバス（５）に出力する。出力ポート回路（３）は、書き込み信号（１００）に基づいてデータバスのデータを取り込み、外部装置に出力する。
【００１３】
本発明によるデータ出力方法は、複数の第２保持回路（２０）が、複数の第１保持回路（２２）へ出力すべきデータを取り込んで保持する第１保持ステップと、複数の第３保持回路（２１又は２８）が、複数の第２保持回路（２０）の出力データが複数の第１保持回路（２２）に取り込まれるか否かを個別に設定するビットパタンデータを、第１保持ステップと同じタイミングで取り込んで保持する第２保持ステップと、複数の第１保持回路（２２）が、複数の出力バッファ（２４）への出力データを保持する第３保持ステップと、複数の出力バッファ（２４）が複数の第１保持回路（２４）で保持された出力データを出力するステップとを具備する。
【００１４】
このように、本発明によるデータ出力方法によれば、ビットパタンによって取り込むことが許可された第１保持回路（２４）は、第２保持回路（２０）の保持するデータを取り込む。これによりビット毎のデータの変更が可能になる。又、第２保持回路（２０）と第３保持回路（２１又は２８）は同じタイミングでデータを取り込んで保持する。このため、第１保持回路（２２）が取り込むか否かを決めるビットパタンと、取り込むべき（出力すべき）データとの対応関係が維持される。このため、割り込み処理によるエラーを回避することができる。
【発明の効果】
【００１５】
本発明によるポート回路、マイクロコンピュータ、及びデータ出力方法によれば、割り込み処理の影響を受けずに、出力データをビット単位に切り替えることができる。
【発明を実施するための最良の形態】
【００１６】
以下、添付図面を参照しながら本発明の実施の形態を説明する。図面において同一、又は類似の参照符号は、同一、類似、又は等価な構成要素を示している。
【００１７】
（マイクロコンピュータの全体構成）
図２は、本発明によるマイクロコンピュータの構成を示す図である。本発明によるマイクロコンピュータは、ＣＰＵ１、メモリ２、複数のポート回路３−１、２、…（以下、ポート回路３と総称する）、クロック生成回路４、データバス５、アドレスバス６を具備する。ＣＰＵ１は、メモリ２に記録されたプログラムコードを読み出し、プログラムコードに基づいて書き込み信号１００や読み出し信号２００をポート回路３に出力する。ＣＰＵ１は、演算結果やメモリ内のデータを外部装置（図示なし）に出力する際、アドレスバス６を利用してポート回路３にアクセスし、出力データをデータバス５を介してポート回路３に出力する。この際、ＣＰＵ１は、データの出力を指示する書き込み信号１００をポート回路３に出力する。又、ＣＰＵ１は、ポート３を介して外部装置（図示なし）からデータを取得する際、データの読み取りを指示する読み出し信号２００をポート回路３に出力する。この際、ＣＰＵ１は、アドレスバス６を利用してポート回路３にアクセスし、読み出し信号２００に応じて読み出されたデータをデータバス５を介して取得する。
【００１８】
ポート回路３は、書き込み信号１００や読み出し信号２００に応じてデータバス５と外部装置（図示なし）との間のデータの入出力を制御する。この際、ポート回路３は、クロック生成回路４から供給されるクロックＣＬＫに基づいたタイミングで、データバス５からのデータの取り出し処理や、データバス５へのデータの読み出し処理を行う。
【００１９】
（第１の実施の形態）
図３から図５を参照して、本発明によるポート回路３の第１の実施の形態における構成及び動作の詳細を説明する。図３は、本発明によるポート回路３の第１の実施の形態における構成を示す図である。以下の実施の形態では、４ビットのデータの入出力を制御するポート回路３を一例に説明する。
【００２０】
ポート回路３は、ポートプリラッチ回路１０、イネーブル制御回路１１、ポートラッチ回路１２、入出力モード切り替え回路１３、出力制御回路１４、入力制御回路１５、端子群１６を具備する。ポートプリラッチ回路１０、イネーブル制御回路１１、ポートラッチ回路１２、入出力モード切り替え回路１３には同一のクロックＣＬＫが入力され、それぞれ、クロックＣＬＫに応じて動作する。又、端子群１６は、複数の端子２６を有する。ここでは、ビット０〜３に対応する４つの端子２６を有する。
【００２１】
ポートプリラッチ回路１０は、端子数に対応した複数のポートプリラッチ２０を備える。ここでは、ポートプリラッチ回路１０は、ビット０〜３に対応する４つのポートプリラッチ２０を備える。ポートプリラッチ回路１０は、入力される書き込み許可信号１０１に応じてデータバス５における所定のビット位置（信号線）のデータを保持する。ポートプリラッチ回路１０は、ハイレベルの書き込み許可信号１０１が入力されている間イネーブルとなり、クロックＣＬＫに同期してデータバス５のデータを取り出して保持する。ポートプリラッチ回路１０が保持するデータは、ポートラッチ回路１２に出力されるデータ（端子群１６に出力されるデータ）である。例えば、データバス５のバス幅が８ビットである場合、ＣＰＵ１は、変更後のデータ値を含むデータ（変更データ）をデータバス５の下位４ビットに出力し、ポートプリラッチ回路１０は、データバス５の下位４ビットのデータを取り出して保持する。
【００２２】
イネーブル制御回路１１は、端子数に対応した複数のイネーブルレジスタ２１を備える。ここでは、イネーブル制御回路１１は、ビット０〜３に対応する４つのイネーブルレジスタ２１を備える。イネーブルレジスタ回路１１は、入力される書き込み許可信号１０１に応じてデータバス５における所定のビット位置（信号線）のデータを保持する。イネーブル制御回路１１は、ハイレベルの書き込み許可信号１０１が入力されている間イネーブルとなり、クロックＣＬＫに同期してデータバス５のデータを取り出して保持する。イネーブルレジスタ回路１１が保持するデータは、データを変更する対象ビットを決定するためのビットパタンデータ（マスクデータ）である。例えば、データバス５のバス幅が８ビットである場合、ＣＰＵ１は、マスクデータをデータバス５の上位４ビットに出力し、イネーブル制御回路１１は、データバス５の上位４ビットのデータを保持する。
【００２３】
ポートプリラッチ回路１０とイネーブル制御回路１１は、同じ書き込み許可信号１０１に基づき、同一のクロックCLKに同期してデータを取り込むため、同じタイミングでデータバス５のデータが入力される。このため、ポートプリラッチ回路１０とイネーブル制御回路１１のそれぞれが同時に異なるデータ（変更データとマスクデータ）を取り込むためには、データバス５における異なるビット位置（信号線）からデータを取り込むことが好ましい。このため、４ビットのポート回路３を実現するためには、データバス５のバス幅は、変更データのための４ビットと、マスクデータのための４ビットの合計８ビットが最低限必要となる。
【００２４】
ポートラッチ回路１２は、端子数に対応した複数のポートラッチ２２を備える。ここでは、ポートラッチ回路１２は、ビット０〜３に対応する４つのポートラッチ２２を備える。ポートラッチ２２の入力は、対応するポートプリラッチ２０の出力に接続される。又、ポートラッチ２２の出力は、出力バッファ２４を介して対応する端子２６に接続される。ポートラッチ２２は、対応して接続されるイネーブルレジスタ２１の出力に応じて、対応して接続されるポートプリラッチ２０の出力データを取り込み保持する。例えば、ポートラッチ２２は、イネーブルレジスタ２１の出力がローレベル“０”の時、イネーブルとなり、クロックＣＬＫに応答してポートプリラッチ２０の出力を取り込む。又、イネーブルレジスタ２１の出力がハイレベル“１”の時、ポートラッチ２２はディセーブルとなり、取り込んだデータを維持する。このように、ポートラッチ回路１２では、イネーブル制御回路１１が保持するマスクデータに基づいてデータの書き込みが可能なポートラッチ２２が指定され、書き込み可能なポートラッチ２２に接続されたポートプリラッチ２０が保持するデータが、当該ポートラッチ２２に入力されることでビット毎のデータの変更が実現される。
【００２５】
以上のような構成により、本実施の形態におけるポート回路３では、マスクデータによってデータの取り込みが許可されたポートラッチ２２のみが、対応するポートプリラッチ２０の保持するデータを取り込むことができる。これによりポート回路３からの出力データに対するビット毎の変更が可能となる。
【００２６】
入出力モード切り替え回路１３は、端子数に対応した複数の入出力モード切り替えレジスタ２３を備える。ここでは、入出力モード切り替え回路１３は、ビット０〜３に対応する４つの入出力モード切り替えレジスタ２３を備える。入出力モード切り替え回路１３は、入力される書き込み許可信号１０２に応じてデータバス５における所定のビット位置（信号線）のデータを保持する。例えば、入出力モード切り替え回路１３は、ハイレベルの書き込み許可信号１０２が入力されるとイネーブルとなり、クロックＣＬＫに同期してデータバス５からデータを取り出して保持する。入出力モード切り替えレジスタ２３の出力は、対応する出力バッファ２４を制御し、出力バッファ２４をオン状態又は高インピーダンスのいずれかに設定する。入出力モード切り替えレジスタ２３は、出力モードの場合、出力バッファ２４をオン状態に設定し、入力モードの場合、高インピーダンス状態に設定する。
【００２７】
出力制御回路１４は、端子数に対応した複数の出力バッファ２４を備える。ここでは、出力制御回路１４は、ビット０〜３に対応する４つの出力バッファ２４を備える。出力バッファ２４は、トライステートバッファが好適に利用される。出力モードの場合、出力制御回路１４は、入出力モード切り替え回路１３からの出力に応じてポートラッチ回路１２で保持されたデータを出力データとして端子群１６に出力する。
【００２８】
入力制御回路１５は、端子数に対応した複数の入力バッファ２５を備える。ここでは、入力制御回路１５は、ビット０〜３に対応する４つの入力バッファ２５を備える。入力バッファ２５は、読み出し許可信号２０１に応じてオン又は高インピーダンスに設定されるトライステートバッファが好適である。入力モード時、入力バッファ２５は、オン状態に設定され、端子２６からのデータをデータバス５に出力し、出力モード時、高インピーダンス状態に設定される。
【００２９】
第１の実施の形態におけるポート回路３は、図４に示す制御回路３０を更に備える。第１の実施の形態における制御回路３０は、書き込み信号１００とアドレスバス６におけるアドレス信号とに基づき、書き込み許可信号１０１又は書き込み信号１０２を出力する。ここで、ポートプリラッチ回路１０とイネーブル制御回路１１とは同一アドレスに設定されていることが好ましい。これにより、制御回路３０はポートプリラッチ回路１０とイネーブル制御回路１１に同じタイミングで書き込み許可信号１０１を出力することができる。又、制御回路３０は、読み出し信号２００とアドレスバス６におけるアドレス信号とに基づき、読み出し許可信号２０１を出力する。
【００３０】
次に、図５に示すタイミングチャートを参照して、本発明によるポート回路３の第１の実施の形態における動作の詳細を説明する。ここでは、当初、ポートラッチ回路１２がデータ“１１００Ｂ”を保持しているものとし、端子群１６のビット０のデータを“１”に変更する場合について説明する。
【００３１】
ＣＰＵ１は、ビット０のデータを“１”に変更するため、データバス５の上位ビットにマスクパタンとなる“１１１０”、下位ビットに変更データとなる“１１１１”を出力するとともに、書き込み信号１００を出力する。ここでは、データバス５に“１１１０１１１１Ｂ”が出力される。ここで、変更データは、変更対象のビット０が“１”であれば良く、例えば“０００１”等でも構わない。ただし、変更対象のビット位置が他の場合（変更対象ビットが複数箇所である場合も含む）にも対応できることから、データを“１”に変更する場合の変更データを“１１１１”、“０”に変更する場合の変更データを“００００”とすることが好ましい。これにより、複雑な設定を必要とせずにビット毎のデータの変更が可能となる。
【００３２】
制御回路３０は、ＣＰＵ１から書き込み信号１００が入力されると、書き込み許可信号１０１をポートプリラッチ回路１０及びイネーブル制御回路１１に出力する。書き込み許可信号１０１がハイレベルの間、クロックＣＬＫに応答してポートプリラッチ回路１０及びイネーブル制御回路１１にデータバス５のデータが入力される。ここでは、ポートプリラッチ回路１０にデータバス５の下位４ビットのデータ“１１１１Ｂ”が入力され、イネーブル制御回路１１には、データバス５の上位４ビットのデータ“１１１０Ｂ”が入力される。
【００３３】
ポートラッチ回路１２は、ポートプリラッチ回路１０及びイネーブル制御回路１１がデータを取り込んだ次のクロックに同期して、ポートプリラッチ回路１０からのデータを取り込む。ここでは、イネーブル制御回路１１に書き込まれたマスクデータ“１１１０”によって、ビット０に対応するポートラッチ２２のみがイネーブルとなり、対応するポートプリラッチ２０からデータ“１”が取り込まれる。その他のポートラッチ２２は、以前のデータを維持する。これにより、ポートラッチ回路１２が保持するデータは“１１００”から“１１０１”に変更される。ポートラッチ回路１２が保持するデータ“１１０１”は、出力制御回路１４を介して端子群１６に出力される。
【００３４】
以上のように、本発明によるポート回路３では、マスクデータの入力と出力すべきデータ（変更データ）が同じタイミングで入力される。このため、変更するビットを決定するマスクパタンと変更したいデータとの対応関係が崩れることがないまま、両者がポートラッチ回路１２に入力される。これにより、データの取り込みが許可される第１保持回路と書き込むデータとの一貫性が保たれるため、割り込み処理によるエラーを回避することができる。従って、本発明によるポート回路３によれば、割り込みの影響を受けずに、ビット毎に出力データの変更を行うことが可能となる。
【００３５】
更に、本実施の形態におけるポート回路３は、従来技術によるポート回路３とは異なり選択回路を要しないため、回路面積を削減することができる。
【００３６】
（第２の実施の形態）
図６及び図７を参照して、本発明によるポート回路３の第２の実施の形態における構成及び動作の詳細を説明する。図６は、本発明によるポート回路３の第２の実施の形態における構成を示す図である。以下では、第１の実施の形態と異なる構成及び動作のみを説明し、同様の構成及び動作の説明は省略する。
【００３７】
図６を参照して、第２の実施の形態におけるポート回路３は、第１の実施の形態におけるイネーブル制御回路１１に替えて、イネーブルレジスタ１７、マスクレジスタ回路１８、及び選択回路１９を具備する。本実施の形態は、従来技術による選択回路を利用したポート回路の構成を大きく変更することなく割り込みによる影響を排除したポート回路３である。
【００３８】
イネーブルレジスタ１７は、入力される書き込み許可信号１０１に応じた書き込み許可信号１０３をポートラッチ回路１２に出力し、ポートラッチ２２のイネーブル、又はディセーブルを制御する。イネーブルレジスタ１７は、ハイレベルの書き込み許可信号１０１が入力されている間、クロックＣＬＫに同期してハイレベルの書き込み許可信号１０３を出力する。
【００３９】
マスクレジスタ回路１８は、端子数に対応した複数のマスクレジスタ２８を備える。ここでは、マスクレジスタ回路１８は、ビット０〜３に対応する４つのマスクレジスタ２８を備える。マスクレジスタ回路１８は、入力される書き込み許可信号１０１に応じてデータバス５における所定のビット位置（信号線）のデータを保持する。マスクレジスタ回路１８は、ハイレベルの書き込み許可信号１０１が入力されている間イネーブルとなり、クロックＣＬＫに同期してデータバス５のデータを取り出して保持する。マスクレジスタ回路１８が保持するデータは、データを変更する対象ビットを決定するためのマスクデータである。例えば、データバス５のバス幅が８ビットである場合、ＣＰＵ１は、マスクデータをデータバス５の上位４ビットに出力し、マスクレジスタ回路１８は、データバス５の上位４ビットのデータを保持する。マスクレジスタ２８の出力は、対応する選択回路２９に接続され、選択回路２９の選択動作を制御する。
【００４０】
選択回路１９は、端子数に対応した複数の選択回路２９を備える。ここでは、選択回路１９は、ビット０〜３に対応する４つの選択回路２９を備える。選択回路２９の入力には、対応するポートプリラッチ２０の出力と、対応するポートラッチ２２の出力が接続される。選択回路２９は、対応するマスクレジスタ２８からの出力に応じてポートプリラッチ２０の出力とポートラッチ２２の出力の一方を選択して、ポートラッチ２２に出力する。例えば、マスクレジスタ２８の出力がローレベル“０”である場合、選択回路２９は、ポートプリラッチ２０の出力を選択してポートラッチ２２に出力し、マスクレジスタ２８の出力がハイレベル“１”である場合、選択回路２９は、ポートラッチ２２の出力を選択してポートラッチ２２に出力する。すなわち、選択回路１９は、マスクレジスタ回路１８によって取り込まれたマスクデータに基づいて、ポートプリラッチ回路１０で取り込まれた変更データをポートラッチ回路１２に入力する。
【００４１】
第２の実施の形態におけるポートラッチ２２は、書き込み許可信号１０３に応じて、対応する選択回路２９からの出力データを取り込み保持する。例えば、ポートラッチ２２は、書き込み許可信号１０３がハイレベルの時、イネーブルとなり、クロックＣＬＫに応答して選択回路２９の出力を取り込む。又、書き込み許可信号１０３がローレベルの時、ポートラッチ２２はディセーブルとなり、取り込んだデータを保持する。
【００４２】
このように、第２の実施の形態におけるポート回路３では、マスクレジスタ回路１８が保持するマスクデータに基づいて、ポートプリラッチ回路１２に取り込まれるデータが選択され、ビット毎のデータの変更が実現される。
【００４３】
次に、図７に示すタイミングチャートを参照して、本発明によるポート回路３の第２の実施の形態における動作の詳細を説明する。ここでは、当初、ポートラッチ回路１２がデータ“１１００Ｂ”を保持しているものとし、端子群１６のビット０のデータを“１”に変更する場合について説明する。
【００４４】
ＣＰＵ１は、ビット０のデータを“１”に変更するため、データバス５の上位ビットにマスクパタンとなる“１１１０”、下位ビットに変更データとなる“１１１１”を出力するとともに、書き込み信号１００を出力する。ここでは、データバス５に“１１１０１１１１Ｂ”が出力される。ここで、変更データは、変更対象のビット０が“１”であれば良く、例えば“０００１”等でも構わない。ただし、変更対象のビット位置が他の場合（変更対象ビットが複数箇所である場合も含む）にも対応できることから、データを“１”に変更する場合の変更データを“１１１１”、“０”に変更する場合の変更データを“００００”とすることが好ましい。これにより、複雑な設定を必要とせずにビット毎のデータの変更が可能となる。
【００４５】
制御回路３０は、ＣＰＵ１から書き込み信号１００が入力されると、書き込み許可信号１０１をポートプリラッチ回路１０及びマスクレジスタ回路１８に出力する。書き込み許可信号１０１がハイレベルの間、クロックＣＬＫに応答してポートプリラッチ回路１０及びマスクレジスタ回路１８にデータバス５のデータが入力される。ここでは、ポートプリラッチ回路１０にデータバス５の下位４ビットのデータ“１１１１Ｂ”が入力され、マスクレジスタ回路１８には、データバス５の上位４ビットのデータ“１１１０Ｂ”が入力される。
【００４６】
イネーブルレジスタ１７は、ハイレベルの書き込み許可信号１０１が入力されている間、クロックに同期してハイレベルの書き込み許可信号１０３を出力する。すなわち、イネーブルレジスタ１７は、ポートプリラッチ回路１０及びマスクレジスタ回路１８において、データの取り込みが行われた次のクロックＣＬＫに同期して書き込み許可信号１０３を出力する。
【００４７】
ポートラッチ回路１０は、ハイレベルの書き込み許可信号１０３の入力に応じて、選択回路１９から出力されたデータを取り込む。ここでは、マスクレジスタ回路１１からの出力データ“１１１０Ｂ”に基づいて、ビット０に対応する選択回路２９のみが、対応するポートプリラッチ２０からの出力データ“１”を選択してポートラッチ２２に出力し、ビット１〜３に対応する選択回路２９は、それぞれ対応するポートラッチ２２の出力データを選択してポートラッチ２２に出力している。このため、ポートラッチ回路１０は、ビット０に対応するポートラッチ２２のみのデータが変更され、その他のポートラッチ２２は、以前のデータを維持する。これにより、ポートラッチ回路１２が保持するデータは“１１００”から“１１０１”に変更される。ポートラッチ回路１２が保持するデータ“１１０１”は、出力制御回路１４を介して端子群１６に出力される。
【００４８】
以上のように、第２の実施の形態におけるポート回路３では、マスクパタンの入力と出力すべきデータ（変更データ）が同じタイミングで入力される。このため、データを変更するビットを決定するマスクパタンと、変更したいデータとの対応関係が崩れることがないまま、両者がポートラッチ回路１２に入力されるため、動作の一貫性が保たれる。又、これにより、本発明によるポート回路３によれば、割り込みの影響を受けずに、ビット毎にデータの変更を行うことが可能となる。
【００４９】
更に、本実施の形態におけるポート回路３は、選択回路を用いた構成となっており従来技術からの改良が容易に行うことができる。
【００５０】
以上、本発明の実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
【図面の簡単な説明】
【００５１】
【図１】図１は、従来技術による出力回路の構成を示す回路図である。
【図２】図２は、本発明によるマイクロコンピュータの構成の一例を示すブロック図である。
【図３】図３は、本発明によるポート回路の第１の実施の形態における構成を示す回路図である。
【図４】図４は、本発明によるポート回路が備える制御回路の実施の形態における構成を示す回路図である。
【図５】図５は、本発明によるポート回路の第１の実施の形態における動作を示すタイミングチャートである。
【図６】図６は、本発明によるポート回路の第２の実施の形態における構成を示す回路図である。
【図７】図７は、本発明によるポート回路の第２の実施の形態における動作を示すタイミングチャートである。
【符号の説明】
【００５２】
１：ＣＰＵ
２：メモリ
３、３−１、３−２：ポート回路
４：クロック生成回路
５：データバス
６：アドレスバス
１０：ポートプリラッチ回路
１１：イネーブル制御回路
１２：ポートラッチ回路
１３：入出力モード切り替え回路
１４：出力制御回路
１５：入力制御回路
１６：端子群
１７：イネーブルレジスタ
１８：マスクレジスタ回路
１９、２９：選択回路
２０：ポートプリラッチ
２１：イネーブルレジスタ
２２：ポートラッチ
２３：入出力モード切り替えレジスタ
２４：出力バッファ
２５：入力バッファ
２６：端子
２８：マスクレジスタ
３０：制御回路
４０：ＣＰＵ
５０：ビット選択型出力ポート
５１：データバス
５２、５４：保持回路
５３：選択回路
５５、５６：制御信号線
１００：書き込み信号
２００：読み出し信号
１０１、１０２、１０３：書き込み許可信号
２０１：読み出し許可信号
ＣＬＫ：クロック
【図１】
2009163285.tif 000003
【図２】
2009163285.tif 000004
【図３】
2009163285.tif 000005
【図４】
2009163285.tif 000006
【図５】
2009163285.tif 000007
【図６】
2009163285.tif 000008
【図７】
2009163285.tif 000009