【手続補正書】
【提出日】平成17年8月29日(2005.8.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１の複数ビットのパラレル入力を受け取る入力チャネルと、第２の複数ビットのシリアル出力を供給する第１の出力チャネルとを有するシフトレジスタを含み、さらに命令に応答して前記シフトレジスタモジュールを制御するレジスタをさらに有する、第１のシフトレジスタモジュールと、
前記命令を供給する第１の有限状態機械であって、前記命令を前記シフトレジスタモジュールに供給して、前記シフトレジスタの動作を制御する前記有限状態機械と、
該有限状態機械に結合されて、前記有限状態機械からの前記命令の少なくとも１つに応答して前記第１のシフトレジスタモジュールに、第１の複数クロックパルスを含む第１のクロック信号を供給する、クロック発生器とを含み、前記第２の複数ビットのシリアル出力が、前記シフトレジスタモジュールに供給される命令と前記第１のクロック信号とに応答して生成される、プログラマブルシリアルポート。
【請求項２】
クロック発生器が、第１の有限状態機械への第２の出力チャネルを含み、該チャネルが、前記第１の有限状態機械に第２のクロック信号を供給し、前記信号が第２の複数クロックパルスを含む、請求項１に記載のプログラマブルシリアルポート。
【請求項３】
クロック発生器が、命令の少なくとも１つによって制御可能なゲートを介して、第１の有限状態機械に結合されている、請求項１に記載のプログラマブルシリアルポート。
【請求項４】
シフトレジスタがシリアル出力を供給する間、ゲートを制御して第２のクロック信号を阻止することが可能である、請求項３に記載のプログラマブルシリアルポート。
【請求項５】
第２の出力チャネルに結合されて第２のクロック信号を受け取るとともに、第１の出力チャネルに結合されて第１のクロック信号を供給する、分割器をさらに含み、前記第２のクロック信号が分割されて前記第１のクロック信号が形成される、請求項４に記載のプログラマブルシリアルポート。
【請求項６】
有限状態機械が、複数のシリアル通信プロトコルに対応する命令を供給するように構成、かつ配設されている、請求項１に記載のプログラマブルシリアルポート。
【請求項７】
第２の複数ビットのそれぞれが、第２の複数パルスのクロックパルスに応答して出力される、請求項１に記載のプログラマブルシリアルポート。
【請求項８】
シフトレジスタモジュールがビットカウンタをさらに含み、該ビットカウンタが、第２の複数ビットのシリアル出力の番号付きカウントを維持するように構成されている、請求項１に記載のプログラマブルシリアルポート。
【請求項９】
ビットカウンタが、第２の複数パルスのクロックパルスに応答して減分される、請求項２に記載のプログラマブルシリアルポート。
【請求項１０】
第２の複数ビットのそれぞれが、データビット、パリティビットおよびストップビットの１つである、請求項３に記載のプログラマブルシリアルポート。
【請求項１１】
第２の複数ビットのそれぞれが、ビットカウントに基づいて選択される、請求項４に記載のプログラマブルシリアルポート。
【請求項１２】
シフトレジスタモジュールが、さらにパリティ発生器を含む、請求項１に記載のプログラマブルシリアルポート。
【請求項１３】
シフトレジスタモジュールが、第２の複数パルスのクロックパルスに応答してパリティ発生器からのパリティビットを出力する、請求項１２に記載のプログラマブルシリアルポート。
【請求項１４】
第１の出力チャネルに結合されてシリアル出力の電気的パラメータを制御するプログラマブル分割器をさらに含む、請求項１に記載のプログラマブルシリアルポート。
【請求項１５】
第１の有限状態機械に結合されて前記有限状態機械に割込みを発生させる、割込み処理モジュールをさらに含む、請求項１に記載のプログラマブルシリアルポート。
【請求項１６】
第２のシフトレジスタモジュールをさらに含み、クロック発生器が、前記第２のシフトレジスタモジュールを結合して、第２の複数クロックパルスを含む第２のクロック信号を供給し、前記第２のシフトレジスタモジュールが、前記第２のクロック信号に応答して第２のシリアル出力を供給する、請求項１に記載のプログラマブルシリアルポート。
【請求項１７】
複数ビットのパラレル入力を受け取る入力チャネルと複数ビットのシリアル出力を供給するシリアル出力チャネルとを有するシフトレジスタモジュールであって、前記シリアル出力を供給するシフトレジスタとビットカウンタを含み、該ビットカウンタが複数ビットのシリアル出力の番号付きカウントを維持するように構成されており、前記シリアル出力および前記ビットカウンタが命令に応答する、前記シフトレジスタモジュールと、
前記シフトレジスタモジュールに結合されて前記シフトレジスタモジュールに前記命令を供給する有限状態機械を含む、プログラマブルシリアルポート。
【請求項１８】
ビットカウンタがクロックパルスに応答して減分される、請求項１７に記載のプログラマブルシリアルポート。
【請求項１９】
シフトレジスタモジュールが、パリティ発生器をさらに含む、請求項１７に記載のプログラマブルシリアルポート。
【請求項２０】
シフトレジスタモジュールが、番号付きカウントに応答してパリティビットを供給する、請求項１９に記載のプログラマブルシリアルポート。
【請求項２１】
シリアル出力に対応する複数ビットのそれぞれが、データビット、パリティビット、およびストップビットの１つである、請求項１７に記載のプログラマブルシリアルポート。
【請求項２２】
シリアル出力に対応する複数ビットのそれぞれが、番号付きカウントに基づいて選択される、請求項２０に記載のプログラマブルシリアルポート。
【請求項２３】
第１の複数ビットを含み、複数のシリアル通信プロトコルの選択された１つに従うシリアル出力を供給する第１のシフトレジスタを含み、クロック発生器および有限状態機械に結合されている、前記第１のシフトレジスタモジュールを制御する方法であって、
選択されたプロトコルに従って、複数の命令順序から有限状態機械によって実行される命令順序を選択するステップであって、命令順序のそれぞれが、プロトコルに対応する前記ステップと、
前記選択された命令順序の命令に従ってクロック発生器を制御して、前記有限状態機械によってさらに制御することなく、第１の複数クロックパルスを前記シフトレジスタモジュールに供給するステップと、
前記クロックパルスおよび前記命令順序の実行に応答して、第１の複数ビットに対応する第２の複数ビットを出力するステップとを含む、前記方法。
【請求項２４】
第２の複数ビットのカウントを維持するステップをさらに含む、請求項２３に記載のシフトレジスタモジュールの制御方法。
【請求項２５】
カウントに応答して、パリティビットを選択的に出力するステップをさらに含む、請求項２４に記載のシフトレジスタモジュールの制御方法。
【請求項２６】
第３の複数ビットを含む第２のシフトレジスタモジュールに、前記第３の複数クロックパルスを提供するクロック発生器を制御するステップと、前記クロックパルスに応答して前記第３の複数ビットに対応する第４の複数ビットを出力するステップをさらに含む、請求項２３に記載のシフトレジスタモジュールの制御方法。
【請求項２７】
クロック発生器を制御して、第２の複数クロックパルスを供給して、状態機械による命令順序の実行を制御するステップをさらに含む、請求項２４に記載のシフトレジスタモジュールの制御方法。
【請求項２８】
第２の複数クロックパルスを阻止するステップをさらに含み、第２の複数ビットを出力中は、複数の命令の実行が停止される、請求項２７に記載のシフトレジスタモジュールの制御方法。
【請求項２９】
命令に従ってクロック発生器を制御するステップが、パルス数およびクロック速度を指定することを含む、請求項２３に記載のシフトレジスタモジュールの制御方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００４
【補正方法】変更
【補正の内容】
【０００４】
マイクロコントローラ制御プログラマブルシリアルポートの代替選択肢として、有限状態機械を実装するプログラマブルシリアルポートが開発さており、これは、プロセッサからシリアルポートの多くの機能を制御しなくてはならないという負荷を取り除くものである。そのようなプログラマブルシリアルポートの例が、２０００年１１月３日出願の、Sorensonによる「ジェネリックシリアルポートアーキテクチャおよびシステム（GENERIC SERIAL PORT ARCHITECTURE AND SYSTEM）」という名称の米国特許出願第０９／７０６，４５０号に記載されている。
図１は、そのようなプログラマブルシリアルポート１００のブロック図である。図１では、送信モードで動作しているときに、シフトレジスタ１１０は、バッファ１２０からチャネル１０２上でデータビットのパラレルセットを受け取り、有限状態機械（ＦＳＭ）１２０の制御の下で、（ドライバ１８０を介して）チャネル１０４上でシリアル出力としてビットを出力する。逆に、受信モードで動作しているときには、シフトレジスタ１１０は、チャネル１０４上でシリアル入力を受け取り、チャネル１０２上でデータビットのパラレルセットを出力する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００３０
【補正方法】変更
【補正の内容】
【００３０】
図４Ａは、本発明の少なくともいくつかの態様による、プログラマブルシリアルポート４００の、第２の例示的実施態様を示す機能ブロック図である。プログラマブルシリアルポート４００は、ドライバ４７９、２つの有限状態機械４２０，４２１、シフトレジスタモジュール４１２，４１３、およびクロック発生器４６０，４６１を含む。シフトレジスタモジュール４１２，４１３は、対応するシフトレジスタ４１０，４１１およびビットカウンタ４７０，４７１を有する。シフトレジスタ４１０，４１１は、バッファ４２２，４２３からパラレルデータビットを受け取り、それぞれ、チャネル４０４，４０５にシリアル出力を供給する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００３５
【補正方法】変更
【補正の内容】
【００３５】
割込みを受け取ると、ＦＳＭは割込みアドレスレジスタ４６７に指定されたアドレス（すなわち、割込みベクトル）で開始されるルーチンに入る。任意選択で、割込みを受け取ると、ＦＳＭは、割込みの発生時に有限状態機械が実行していたプログラムラインにＦＳＭが復帰することを可能にするための、リターンアドレスをリターンレジスタ４６８内に記憶してもよい。
図５は、本発明の少なくともいくつかの態様による、転送レジスタシフトモジュール５００の例示的実施態様の概略図である。シフトレジスタモジュール５００は、本明細書においては、チャネル５０２上で受け取るデータをシリアル化するための、少なくとも１つのシフトレジスタ５１０を含む。任意選択で、シフトレジスタ５００は、ビットカウンタモジュール５７０、転送論理５２０、および転送構成レジスタ５０６を含む。ビットカウンタ５７４は、シフトレジスタモジュール５００が出力するシリアルデータビットの番号付きカウントを維持するように構成されている。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】変更
【補正の内容】
【００３６】
シフトレジスタモジュール５００は、チャネル５０２上のバッファ（例えば、図４Ａのバッファ４２０）から、またはチャネル５０５上でＦＭＳ４２０（図４Ａに示す）によって割り当てられたメモリ位置などの代替供給源から、１組のパラレルデータビットを受け取る。パラレル入力の供給源は、マルチプレクサ５０４によって決定される。シフトレジスタモジュール５００は、チャネル５０３上のパラレルビットセットに対応するシリアル出力を供給する。例えば、出力はドライバ３８０（図３Ａ参照）に供給される。
シフトレジスタ５１０は、選択されたパラレル入力をシリアル化する。本明細書において定義するシフトレジスタ５１０は、従来式シフトレジスタまたはデータのシリアル化に適する、その他任意の構造（例えば、マルチプレクサに結合されて、パラレルの入力データビットの組に対応するシリアルビットを選択的に出力するバッファ）を含むことを理解されたい。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００４１
【補正方法】変更
【補正の内容】
【００４１】
クロックパルス５７２を受け取ると、ビットカウンタ５７４は、選択されたプロトコルに基づいて、そのカウントを増分または減分する。経路コントローラ５７８は、そのカウント値をビットカウンタ５７４から受け取る。経路コントローラ５７８は、カウント値を構成レジスタ５０６からの入力５０６ａと比較して、シフトレジスタ５１０からのデータビット、パリティビットまたはストップビットを出力チャネル５０３に供給するように、マルチプレクサ５２３，５２６，５２５を構成すべきかどうかを判定する。１番目のゼロカウント値を受け取ると、経路コントローラ５７８は、マルチプレクサ５２３，５２６，５２５を制御して、最下位データビット、パリティビットまたはストップビットを出力する。２番目のゼロカウントを受け取ると、経路コントローラ５２８は、マルチプレクサ５２３，５２６，５２５を制御して、入力５０６ａがパリティビットを送るべきことを示す場合には、パリティビットを供給し、また第２のゼロカウントを受け取ると、経路コントローラ５７８は、マルチプレクサ５２３，５２６，５２５を制御して、入力５０６ａがストップビットを送るべきことを示す場合には、ストップビットを供給する。経路コントローラ５７８は、シフトレジスタ５１０にカウント値を供給し、これを出力すべきデータビットに対するポインタとして使用することができる。したがって、シフトレジスタ内のデータビットのそれぞれは、クロックパルスに応答して出力される。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００４４
【補正方法】変更
【補正の内容】
【００４４】
図７は、本発明の態様による少なくともいくつかのプログラマブルシリアルポートと共に使用するクロック発生器７００の一実施態様の例を示す概略図である。クロック発生器７００は、複数のクロック発生源からマスタクロック信号を選択、例えば、マスタクロック信号を、マイクロコントローラ（例えば、図４のマイクロコントローラ４５０）から入力されるシステムクロック７０２、またはマスタクロック信号７０３として使用するのに好適な任意のパルス発生源から入力される補助クロック７０３から選択して、出力クロック信号を供給することができる。このような出力クロック信号としては、第１および第２のＦＳＭ（例えば、図４のＦＳＭ４２０，４２１）への出力クロック信号７０５および７０６、第１および第２のシフトレジスタモジュール（例えば、シフトレジスタモジュール４１２および４１３）への出力クロック信号７２６，７３６ならびにドライバ（例えば、図４のドライバ４７９）への出力クロック信号７２７，７３７が挙げられる。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００４６
【補正方法】変更
【補正の内容】
【００４６】
ＦＳＭクロック発生器７１０は、マスタクロック７０４のクロック発生源を決定する構成レジスタ７０７と、分割器７１２が使用する分割係数、およびクロック発生源に対する、出力クロック信号７０５，７０６の位相を含む。制御入力７０８ａ，７０９ａは、いくつかの実施態様においては、構成レジスタの内容によって設定することもできる。
転送クロック発生器モジュール７２０は、ＦＳＭクロック発生器モジュール７１０および交番クロック入力（例えば、非同期スレーブクロック信号７２１、論理ハイ、および論理ロー信号）からの信号出力７０５ａを受け取り、（複数のクロックパルスを含む）クロック信号出力７２６および７２７を転送シフトレジスタ（図４の４１２）およびドライバ（例えば、図４のドライバ４７９）にそれぞれ供給する。転送分割器７２２および転送分割器７２４は、ＦＳＭクロック発生器モジュール７１０のゲート制御されない出力７０５ａを分割するとともに、転送シフトレジスタに結合されて、クロック信号出力７２６を供給する。マルチプレクサ７２５は、スレーブクロック信号７２１、論理レベルハイおよび論理レベルローの中での選択を行い、マルチプレクサ７４５は、マルチプレクサ７２５の出力と、転送分割器７２２の出力との間での選択を行い、クロック信号出力７２６を供給する。マルチプレクサ７２３は、転送分割器７２４の出力およびマルチプレクサ７４５の出力との間で選択を行い、クロック信号出力７２７を供給する。したがって、マルチプレクサ７２３を適宜に構成することによって、転送シフトレジスタおよび転送ドライバを同一のクロック信号でドライブすることができる。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００４８
【補正方法】変更
【補正の内容】
【００４８】
受信クロック発生器モジュール７３０は、ＦＳＭクロック発生器モジュール７１０からの信号出力７０５ａと代替クロック入力（例えば、非同期スレーブクロック信号７３１、論理ハイ、および論理ロー信号）とを受け取り、クロック信号出力７３６，７３７を受信シフトレジスタ（図４の４１３）およびドライバ（例えば、図４のドライバ４７９）に、それぞれ供給する。受信分割器７３２および受信分割器７３４は、ＦＳＭクロック発生器モジュール７１０の非ゲート制御出力７０５ａを分割する。マルチプレクサ７３５は、スレーブクロック信号７３１、論理レベルハイおよび論理レベルローの中で選択を行い、マルチプレクサ７４６は、マルチプレクサ７３５の出力と転送分割器７３２の出力との間で選択を行い、クロック信号出力７３６を供給する。マルチプレクサ７３３は、転送分割器７３４の出力とマルチプレクサ７４６の出力の間で選択を行い、クロック信号出力７３７を供給する。したがって、マルチプレクサ７３３を適正に構成することによって、転送シフトレジスタおよび転送ドライバを同一のクロック信号でドライブすることができる。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００４９
【補正方法】変更
【補正の内容】
【００４９】
受信クロック構成レジスタ７３８は、分割器７３２，７３４の分割係数、および出力のスタート極性とともにストップ極性を制御する。受信クロック分割器レジスタ７３９は、転送クロック信号のデューティサイクルを制御する。例えば、受信クロック分割レジスタ７３９に、高レベル分割比および低レベル分割比を含めて、クロック信号７３６および７３７が、高レベルおよび低レベルにあるサイクル数を特定することによって、デューティサイクルを決定することができる。当業者であれば、このような高レベルおよび低レベル分割比の実装を理解するであろう。したがって、これ以上の詳細はここでは記述しない。
クロック発生器７００を使用することによって、第１のＦＳＭおよび第２のＦＳＭを含むプログラマブルシリアルポート（例えば、図４のプログラマブルシリアルポート４００）を、動作させて全二重動作を達成することができる。代替手法として、第１のＦＳＭおよび第２のＦＳＭを有するクロック発生器７００を、転送クロック信号および、転送および受信が交番するクロック間隔で発生するように形成される受信信号を有する半二重モードで、動作させることができる。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００５１
【補正方法】変更
【補正の内容】
【００５１】
この例示タイミング図は、１のオフ状態８２１およびゼロのスタート状態８２３を達成するように構成された構成レジスタを有するクロック発生器に対応する。さらに、低レベルおよび高レベル分割係数を、８サイクルの内の２つがハイとなるように選択することによって、４分の１のデューティサイクルを達成することができる。
図８Ｂは、電力節減モードで動作しているクロック発生器に対するクロック発生器出力を示す。電力節減モードにおいては、シフトレジスタ制御クロック信号８１４が生成される間、ＦＳＭクロック信号８０６は、一時停止される。電力節減モードは、電力消費の低減を可能にする。例えば、電力節減モードは、選択されたプロトコルが、シフトレジスタ制御クロックが生成される間に、命令を実行することを必要としない場合に、使用することができる。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００６３
【補正方法】変更
【補正の内容】
【００６３】
【表５】
2005502126.tif 000001
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００６６
【補正方法】変更
【補正の内容】
【００６６】
いくつかの実施態様においては、最初の８ビット命令１１０２ａは、最上位ビットを位置１５にして位置１５から始まる、８ビットメモリセグメント１１２０に配置されており、第２の８ビット命令１１０２ｂは、次の８ビットメモリセグメント１１３５（すなわち、ライン１１０２の位置７から始まる）に配置されている。メモリ１１０４の第２のラインは、１６ビット命令１１０４ａが占有している。
第１のライン１１０２と同様に、ライン１１０６は、最上位ビットを位置１５にして、位置１５から始まる、８ビットメモリセグメントに配置された、第１の８ビット命令１１０６ａを有する。しかしながら、次の命令は、１６ビット命令（１１０８ａ）であるので、ライン１１０６の第２の命令１１０６ｂは、（上記の）Ｎｕｌｌ命令が選択され、部分命令（すなわち、１６ビット命令の半分）を含む１６ビットフェッチを回避している。したがって、そのようなアーキテクチャに使用するコンパイラは、好ましくは、８ビットＮＵＬＬ命令１１０６ｂを、ライン１１０６の８ビットメモリセグメント１１３５に挿入する。好ましくは、Ｎｕｌｌ命令は、非実行命令である（すなわち、単に位置保持命令である）。
【手続補正１４】
【補正対象書類名】図面
【補正対象項目名】図４Ａ
【補正方法】変更
【補正の内容】
【図４Ａ】
2005502126.tif 000002
【手続補正１５】
【補正対象書類名】図面
【補正対象項目名】図７
【補正方法】変更
【補正の内容】
【図７】
2005502126.tif 000003