(57)【要約】【課題】  送信するアドレス信号及び送受信するデータを実質的に圧縮することにより、通信速度の向上を図り得るシリアル通信マイクロコントローラを提供する。【解決手段】  ＣＰＵ側シリアルインターフェースと、周辺回路側シリアルインターフェースとを備え、ＣＰＵ側シリアルインターフェース及び周辺回路側シリアルインターフェースには、出力するシリアルデータのビット幅を圧縮するビット幅圧縮回路１２，１４ｅと、受信したシリアルデータのビット幅を伸張するビット幅伸張回路１５，１６ａ〜１６ｈとを備えた。【選択図】      図２
2007079974.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵから複数の周辺回路に対しシリアル通信でデータの書き込み動作あるいはデータの読み出し動作を行うマイクロコントローラであって、
ＣＰＵ側シリアルインターフェースと、周辺回路側シリアルインターフェースとを備え、
前記ＣＰＵ側シリアルインターフェース及び周辺回路側シリアルインターフェースには、出力するシリアルデータのビット幅を圧縮するビット幅圧縮回路と、受信したシリアルデータのビット幅を伸張するビット幅伸張回路と
を備えたことを特徴とするマイクロコントローラ。
【請求項２】
前記ＣＰＵ側シリアルインターフェースには、
前記ＣＰＵから入力されるアドレス信号及び書き込みデータのビット幅を圧縮したシリアルデータを前記周辺回路側シリアルインターフェースに出力するビット幅圧縮回路と、
前記周辺回路側シリアルインターフェースから入力されるシリアルデータのビット幅を伸張して読み出しデータを生成するビット幅伸張回路と
を備え、
前記周辺回路側シリアルインターフェースには、
前記ＣＰＵ側シリアルインターフェースからシリアルデータで入力されるアドレス値が対応する周辺回路のアドレスに一致するか否かを検出する比較回路と、
前記アドレスが一致するとき、入力されるシリアルデータのビット幅を伸張して書き込みデータを生成するビット幅伸張回路と、
前記周辺回路から読み出された読み出しデータのビット幅を圧縮したシリアルデータを前記ＣＰＵ側シリアルインターフェースに出力するビット幅圧縮回路と
を備えたことを特徴とする請求項１記載のマイクロコントローラ。
【請求項３】
前記ビット幅圧縮回路は、
パラレルデータを格納してクロック信号に基づいてシリアルデータとして出力するシリアル出力回路と、
前記シリアル出力回路の格納値がすべて０となったとき、前記クロック信号を停止させるクロック制御部と
を備えたことを特徴とする請求項２記載のマイクロコントローラ。
【請求項４】
前記クロック制御部は、
前記シリアル出力回路の格納値がすべて０であるか否かを検出する論理積回路と、
前記論理積回路の出力信号に基づいて前記クロック信号を停止させるクロック制御回路と
を備えたことを特徴とする請求項３記載のマイクロコントローラ。
【請求項５】
前記ビット幅伸張回路は、
前記シリアルデータが並行に入力される複数ビットのレジスタと、
前記シリアルデータの入力に同期したクロック信号をカウントして、前記レジスタの各ビットに前記シリアルデータを格納させる格納信号を順次出力するシフターカウンターと
を備えたことを特徴とする請求項２記載のマイクロコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、周辺回路との間でシリアル通信によりデータの書き込み動作及び読み出し動作を行うマイクロコントローラに関するものである。
複数の周辺回路との間でデータの送受信を行うマイクロコントローラは、各周辺回路に対しアドレス及びデータをパラレル通信で行うもの、あるいはシリアル通信で行うものがある。近年、マイクロコントローラの動作周波数が益々上昇する中で、データの送受信速度及び設計効率の向上の両立を図ることが必要となっている。
【背景技術】
【０００２】
アドレス及びデータをパラレル通信で行うマイクロコントローラにおいて、例えば３２ビットのデータを並行に入出力する仕様では、ＣＰＵと多数の周辺回路との間に３２本のデータ線と、多数のアドレス信号線が必要である。
【０００３】
このようなマイクロコントローラでは、各データ線及び信号線間で信号伝達速度のばらつきが生じ、ＣＰＵの動作周波数の上昇にともなって、このばらつきがデータの送受信動作の安定性を損ねている。
【０００４】
そこで、送受信動作を安定化させるために、信号線間の信号伝達速度のばらつきを改善するように、設計時に各信号線に所要の遅延時間を設定する処理が行われている。しかし、多数のデータ線及び信号線に最適な遅延時間を設定するためには、多大な設計時間を要し、設計効率が低下する。
【０００５】
アドレス及びデータをシリアル通信で行うマイクロコントローラでは、ＣＰＵと多数の周辺回路とを接続する信号線の数を大幅に削減することができるため、信号線に最適な遅延時間を設定するための作業を削減して、設計効率の向上を図ることができる。
【０００６】
しかし、シリアル通信コントローラでは、パラレル通信コントローラに比して通信速度が低下する。
【特許文献１】特開平９−３１９７０２号公報
【特許文献２】特開２０００−５７０８４号公報
【特許文献３】特開平４−１９５５５２号公報
【特許文献４】特開２００３−９９４１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記のように、シリアル通信でアドレスの送信及びデータの送受信を行うマイクロコントローラでは、パラレル通信のマイクロコントローラに比して設計効率を向上させることができるが、通信速度の点で劣っている。
【０００８】
特許文献１に開示されたシリアル通信コントローラでは、シリアル通信に必要な情報をアドレスバスに出力される通信情報に埋め込んで送信することにより、アクセス回数を減らし、かつ通信ビット長を通信先のデバイスに合わせて可変として、シリアル通信速度を向上させる構成が開示されている。しかし、アドレス信号及びデータを圧縮することはないので、通信速度を十分向上させることはできない。
【０００９】
特許文献２には、並列バスに直列バス方式を導入することにより、少ないピン数で大容量のデータ処理を可能とする構成が開示されているが、シリアル通信速度を向上させる構成は開示されていない。
【００１０】
特許文献３，４には、シリアル通信速度を向上させる構成は開示されていない。
この発明の目的は、送信するアドレス信号及び送受信するデータを実質的に圧縮することにより、通信速度の向上を図り得るシリアル通信マイクロコントローラを提供することにある。
【課題を解決するための手段】
【００１１】
上記目的は、ＣＰＵ側シリアルインターフェースと、周辺回路側シリアルインターフェースとを備え、前記ＣＰＵ側シリアルインターフェース及び周辺回路側シリアルインターフェースには、出力するシリアルデータのビット幅を圧縮するビット幅圧縮回路と、受信したシリアルデータのビット幅を伸張するビット幅伸張回路とを備えたマイクロコントローラにより達成される。
【発明の効果】
【００１２】
本発明によれば、送信するアドレス信号及び送受信するデータを実質的に圧縮することにより、通信速度の向上を図り得るシリアル通信マイクロコントローラを提供することができる。
【発明を実施するための最良の形態】
【００１３】
図１は、この発明を具体化したシリアル通信マイクロコントローラの一例を示す。ＣＰＵ１は、多数の周辺回路２ａ〜２ｃに対しデータの書き込みを行い、あるいは各周辺回路２ａ〜２ｃからデータの読み出しを行うものであり、ＣＰＵ１と各周辺回路２ａ〜２ｃとの間にはＣＰＵシリアルインターフェース（以下ＣＰＵ側ＩＦ）３と周辺回路側シリアルインターフェース（以下周辺回路側ＩＦ）４ａ〜４ｃが介在される。そして、ＣＰＵ側ＩＦ３と周辺回路側ＩＦ４ａ〜４ｃとの間でシリアル通信が行われる。
【００１４】
ＣＰＵ１とＣＰＵ側ＩＦ３との間では信号及びデータがパラレル通信で転送され、周辺回路側ＩＦ４ａ〜４ｃと各周辺回路２ａ〜２ｃとの間でも信号及びデータがパラレル通信で転送される。
【００１５】
ＣＰＵ側ＩＦ３から各周辺回路側ＩＦ４ａ〜４ｃには、データdataoutと、シフトクロックCLKと、周辺回路用シフトクロックPERICLKと、ステータス信号ＳＴ０，ＳＴ１と、データdataoutがアドレス信号であるか書き込みデータであるかを切り替える切り替え信号Ａ／Ｄがそれぞれ出力される。
【００１６】
また、各周辺回路側ＩＦ４ａ〜４ｃから出力される待機信号WAITは、ＯＲ回路５ａを介してＣＰＵ側ＩＦ３に供給され、各周辺回路側ＩＦ４ａ〜４ｃから出力されるＣＰＵシフトクロックCPUCLKは、ＯＲ回路５ｂを介してＣＰＵ側ＩＦ３に供給される。各周辺回路側ＩＦ４ａ〜４ｃから出力されるデータdatainは、ＯＲ回路５ｃを介してＣＰＵ側ＩＦ３に供給される。
【００１７】
このようなマイクロコントローラでは、ＣＰＵ１から出力されるアドレス信号に基づいて周辺回路２ａ〜２ｃのいずれかが選択され、選択された周辺回路２ａ〜２ｃに対しデータの書き込み動作あるいはデータの読み出し動作が行われる。
【００１８】
次に、前記ＣＰＵ側ＩＦ３の具体的構成を図２に従って説明する。ＣＰＵ１からパラレル信号で供給される８ビットの書き込みデータＷＤはデータバッファ１７を介してセレクタ６に入力される。また、ＣＰＵ１からパラレル信号で供給される１６ビットのアドレス信号ＡＤＲの下位８ビットはデータバッファ１７を介してセレクタ６に入力され、上位８ビットは１６ビットのシフトレジスタ（シリアル出力回路）７の上位８ビット分の領域に入力される。
【００１９】
セレクタ６は、前記切り替え信号Ａ／Ｄに基づいて入力信号を切り替えて前記シフトレジスタ７の下位８ビット分の領域に出力する。すなわち、ＣＰＵ１からアドレス信号ＡＤＲが入力されるとき、切り替え信号Ａ／ＤはＨレベルとなり、その切り替え信号Ａ／Ｄに基づいてセレクタ６はアドレス信号ＡＤＲの下位８ビットをシフトレジスタ７に出力する。また、ＣＰＵ１から書き込みデータＷＤが入力されるとき、切り替え信号Ａ／ＤはＬレベルとなり、その切り替え信号Ａ／Ｄに基づいてセレクタ６は書き込みデータＷＤをシフトレジスタ７に出力する。
【００２０】
前記ＣＰＵ側ＩＦ３内において、前記ステータス信号ＳＴ０，ＳＴ１はＡＮＤ回路８ａ，ＮＡＮＤ回路９及びインバータ回路１０に入力され、ＡＮＤ回路８からライト信号ＷＲが出力され、ＮＡＮＤ回路９からリード信号ＲＥが出力され、インバータ回路１０から信号ＮＯＰが出力される。
【００２１】
従って、図４に示すように、ステータス信号ＳＴ０，ＳＴ１がＨレベルとなるとライト信号ＷＲがＨレベルとなって書き込みモードとなり、図５に示すように、ステータス信号ＳＴ０がＨレベル、ステータス信号ＳＴ１がＬレベルとなると、リード信号ＲＥがＨレベルとなって読み出しモードとなる。また、信号ＮＯＰは書き込みモードあるいは読み出しモードとなるとＬレベルとなる。
【００２２】
前記シフトレジスタ７の各ビットの出力信号は、それぞれ反転されてビット幅圧縮回路の主要部を構成するＡＮＤ回路（論理積回路）１１に入力される。従って、ＡＮＤ回路１１の出力信号Ｘ１は、シフトレジスタ７の各ビットの出力信号がすべて０（Ｌレベル）となったときに限り１（Ｈレベル）となる。
【００２３】
前記ＡＮＤ回路１１の出力信号は、３ビットシフター１２に入力される。３ビットシフター１２は、前記シフトクロックCLKの立ち上がりをトリガとして入力信号を順次シフトする。また、３ビットシフター１２には前記信号ＮＯＰが入力され、その信号ＮＯＰがＨレベルとなると、各ビットの格納内容が０にリセットされる。
【００２４】
前記３ビットシフター１２の３ビット目の出力信号Ｘ３はＯＲ回路１３ａに入力され、そのＯＲ回路１３ａには前記信号ＮＯＰが入力される。ＯＲ回路１３ａは、３ビットシフター１２の３ビット目の出力信号Ｘ３と信号ＮＯＰのいずれかがＨレベルとなると、Ｈレベルの信号をフリップフロップ回路ＦＦ２にリセット信号Ｒとして出力する。
【００２５】
前記ライト信号ＷＲはＯＲ回路１３ｂ，１３ｃに入力され、前記リード信号ＲＥはＯＲ回路１３ｃ及びＡＮＤ回路１４ｂに入力される。また、ＣＰＵ１から出力される切り替え信号ａ／ｄは、ＡＮＤ回路１４ｂに入力されるとともに、フリップフロップ回路ＦＦ３にセット信号Ｓとして入力される。ＡＮＤ回路１４ａには切り替え信号ａ／ｄの反転信号が入力される。
【００２６】
ＡＮＤ回路１４ｂの出力信号はＯＲ回路１３ｂに入力され、そのＯＲ回路１３ｂの出力信号はＡＮＤ回路１４ｃに入力される。また、ＡＮＤ回路１４ｃにはシフトクロックCLKが入力され、そのＡＮＤ回路１４ｃの出力信号がフリップフロップ回路ＦＦ２にセット信号として入力される。
【００２７】
前記ＯＲ回路１３ｃの出力信号は前記ＡＮＤ回路１４ａに入力され、そのＡＮＤ回路１４ａの出力信号はフリップフロップ回路ＦＦ１にセット信号Ｓとして入力される。
前記３ビットシフター１２の２ビット目の出力信号Ｘ２はＯＲ回路１３ｄに入力れ、そのＯＲ回路１３ｄには前記信号ＮＯＰが入力される。そして、ＯＲ回路１３ｄの出力信号はフリップフロップ回路ＦＦ１，ＦＦ３にリセット信号Ｒとして入力される。
【００２８】
前記フリップフロップ回路ＦＦ１〜ＦＦ３は、Ｈレベルのセット信号Ｓの入力に基づいてＨレベルの出力信号ＯＵＴを出力し、Ｈレベルのリセット信号Ｒの入力に基づいて出力信号ＯＵＴをＬレベルにリセットする。
【００２９】
前記フリップフロップ回路ＦＦ１の出力信号ＯＵＴはＡＮＤ回路１４ｄに入力され、そのＡＮＤ回路１４ｄにはシフトクロックCLKが入力され、同ＡＮＤ回路１４ｄから前記周辺回路用シフトクロックPERICLKが出力される。従って、ＡＮＤ回路１４ｄはフリップフロップ回路ＦＦ１の出力信号ＯＵＴがＨレベルのとき、シフトクロックCLKと同相の周辺回路用シフトクロックPERICLKを出力する。
【００３０】
前記フリップフロップ回路ＦＦ２の出力信号ＯＵＴはＡＮＤ回路１４ｅに入力され、そのＡＮＤ回路１４ｅにはシフトクロックCLKが入力され、同ＡＮＤ回路１４ｄの出力信号CLKSが前記シフトレジスタ７にクロック信号として入力される。従って、ＡＮＤ回路１４ｅ及びフリップフロップ回路ＦＦ２はシフトレジスタ７のクロック信号を制御するクロック制御部、クロック制御回路の主要部である。ＡＮＤ回路１４ｅはフリップフロップ回路ＦＦ２の出力信号ＯＵＴがＨレベルのとき、シフトクロックCLKと同相の出力信号CLKSをシフトレジスタ７に出力する。
【００３１】
前記フリップフロップ回路ＦＦ３は、切り替え信号ａ／ｄがＨレベルとなると、前記周辺回路側ＩＦ４ａ〜４ｃにＨレベルの切り替え信号Ａ／Ｄを出力し、前記ＯＲ回路１３ｄの出力信号がＨレベルとなると、切り替え信号Ａ／ＤをＬレベルにリセットする。
【００３２】
前記フリップフロップ回路ＦＦ１の出力信号ＯＵＴは、反転されてＡＮＤ回路１４ｆに入力され、そのＡＮＤ回路１４ｆには前記ライト信号ＷＲが入力される。ＡＮＤ回路１４ｆの出力信号はＯＲ回路１３ｅに入力される。
【００３３】
前記ＯＲ回路１３ｅにはＡＮＤ回路１４ｇの出力信号が入力される。ＡＮＤ回路１４ｇには前記シフトクロックCLKとＣＰＵシフトクロックCPUCLKの反転信号が入力される。また、ＯＲ回路１３ｅには信号ＮＯＰが入力される。
【００３４】
前記ＯＲ回路１３ｅの出力信号はフリップフロップ回路ＦＦ４にリセット信号Ｒとして入力され、前記フリップフロップ回路ＦＦ２の出力信号ＯＵＴがフリップフロップ回路ＦＦ４にセット信号Ｓとして入力される。
【００３５】
前記フリップフロップ回路ＦＦ４の出力信号ＯＵＴは、ＣＰＵ１に待機信号ＷＡＩＴとして出力される。
シフターカウンター１５と、８ビットのデータＤ０〜Ｄ８を格納可能としたレジスタ１６ａ〜１６ｈは、ビット幅伸張回路を構成し、周辺回路側ＩＦ４ａ〜４ｃのいずれかから入力されるシリアルデータdatainをパラレルデータに変換してＣＰＵ１に出力するものである。
【００３６】
レジスタ１６ａ〜１６ｈにはシリアルデータdatainと、シフターカウンター１５の出力信号が並行して入力される。レジスタ１６ａ〜１６ｈは、シフターカウンター１５からＨレベルの格納信号が入力されたとき、シリアルデータdatainを取り込む。
【００３７】
シフターカウンター１５には周辺回路側ＩＦ４ａ〜４ｃのいずれかから入力されるＣＰＵシフトクロックCPUCLKが入力される。そして、シフターカウンター１５はＣＰＵシフトクロックCPUCLKの立ち上がりをカウントする毎にレジスタ１６ａ〜１６ｈにＨレベルの信号を順次出力する。
【００３８】
従って、レジスタ１６ａ〜１６ｈにはＣＰＵシフトクロックCPUCLKの立ち上がりに基づいてシリアルデータdatainが順次格納され、レジスタ１６ａ〜１６ｈの格納内容がＣＰＵ１にパラレルデータとして出力される。
【００３９】
前記レジスタ１６ａ〜１６ｈには前記信号ＮＯＰが入力され、その信号ＮＯＰがＨレベルとなると、レジスタ１６ａ〜１６ｈの格納内容が０にリセットされる。
図３は、前記周辺回路側ＩＦ４ａ〜４ｃの具体的構成を示す。周辺回路側ＩＦ４ａ〜４ｃは同一構成であるので、周辺回路側ＩＦ４ａとして説明する。
【００４０】
ステータス信号ＳＴ０，ＳＴ１に基づいてライト信号ＷＲ、リード信号ＲＥ及び信号ＮＯＰを生成する構成は、ＣＰＵ側ＩＦ３と同様である。
周辺回路２ａから８ビットのパラレル信号で入力される読み出しデータＲＤは、データバッファ１８を介してセレクタ１９に入力される。セレクタ１９は、前記ＣＰＵ側ＩＦ３から出力される切り替え信号Ａ／Ｄに基づいて１６ビットのデータを切り替えるものであり、前記読み出しデータＲＤはセレクタ１９の下位８ビット分の入力端子の一方に入力される。下位８ビット分の入力端子の他方には何も入力されない。
【００４１】
前記セレクタ１９の上位８ビット分の入力端子の一方には、グランドＧＮＤレベルすなわちオール０が供給される。また、上位８ビット分の入力端子の他方には何も入力されない。
【００４２】
前記セレクタ１９の各出力信号は１６ビットのシフトレジスタ（シリアル出力回路）２０の各ビットにそれぞれ出力される。そして、切り替え信号Ａ／ＤがＬレベルとなると、セレクタ１９はシフトレジスタ２０の下位８ビットに読み出しデータＲＤを出力し、上位８ビットには０を出力する。そして、シフトレジスタ２０に格納された読み出しデータＲＤは、シフトクロックCLKの立ち上がりに基づいて順次下位側に転送され、シリアルデータdataoutとしてＣＰＵ側ＩＦ３に順次出力される。切り替え信号Ａ／ＤがＨレベルとなると、セレクタ１９の出力信号は不定となる。
【００４３】
切り替え信号Ａ／ＤがＨレベルのとき、前記シフトレジスタ２０の最上位ビットには、ＣＰＵ側ＩＦ３から入力されるシリアルデータdatainが順次入力され、シフトクロックCLKの立ち上がりに基づいて下位側に順次転送される。このシリアルデータdatainは、周辺回路側ＩＦ４ａ〜４ｃを選択するためのアドレス信号である。
【００４４】
前記シフトレジスタ２０の各ビットの出力信号は、比較回路２１に入力され、その比較回路２１にはアドレス設定回路２２にあらかじめ設定されているアドレス値が入力されている。また、比較回路２１には前記切り替え信号Ａ／Ｄの反転信号が入力されている。
【００４５】
比較回路２１は、切り替え信号Ａ／Ｄの反転信号がＨレベルとなったとき、すなわちシフトレジスタ２０へのシリアルデータdatainの入力が終了したとき、シフトレジスタ２０の各ビットの出力信号とアドレス設定回路２２に設定されているアドレス値とが一致するか否かを判別する。そして、一致するときには例えば周辺回路側ＩＦ４ａが選択されたとして、Ｈレベルの一致信号ＡＧを出力する。
【００４６】
前記一致信号ＡＧは、ＡＮＤ回路２３ａ，２３ｂに入力される。ＡＮＤ回路２３ａには、前記ライト信号ＷＲと、前記切り替え信号Ａ／Ｄの反転信号が入力される。従って、ライト信号ＷＲと、前記切り替え信号Ａ／Ｄの反転信号と、一致信号ＡＧがすべてＨレベルとなると、ＡＮＤ回路２３ａから対応する周辺回路２ａにライト信号ｗｒが出力される。
【００４７】
前記ＡＮＤ回路２３ｂには、前記リード信号ＲＥと、前記一致信号ＡＧが入力される。従って、リード信号ＲＥと、一致信号ＡＧがともにＨレベルとなると、ＡＮＤ回路２３ｂから対応する周辺回路２ａにリード信号ｒｅが出力される。
【００４８】
前記シフトレジスタ２０の各ビットの格納内容は、それぞれ反転されてビット幅圧縮回路の主要部を構成するＡＮＤ回路２４に入力される。従って、シフトレジスタ２０の各ビットの格納内容がすべて０となったとき、ＡＮＤ回路２４の出力信号Ｙ１はＨレベルとなる。
【００４９】
前記ＡＮＤ回路２４の出力信号は、２ビットシフター２５に入力される。２ビットシフター２５はシフトクロックCLKの立ち上がりに基づいて入力信号を順次転送して、ＡＮＤ回路２６ａに出力信号Ｙ２を出力する。また、２ビットシフター２５には前記信号ＮＯＰが入力され、その信号ＮＯＰがＨレベルとなると、その格納内容がすべて０にリセットされる。
【００５０】
前記ＡＮＤ回路２６ａには、前記切り替え信号Ａ／Ｄの反転信号が入力される。そして、ＡＮＤ回路２６ａの出力信号がフリップフロップ回路ＦＦ５にリセット信号Ｒとして入力される。従って、前記２ビットシフター２５の出力信号がＨレベルとなり、かつ切り替え信号Ａ／ＤがＬレベルとなったとき、ＡＮＤ回路２６ａの出力信号がＨレベルとなり、フリップフロップ回路ＦＦ５の出力信号ＯＵＴがＬレベルにリセットされる。
【００５１】
前記フリップフロップ回路ＦＦ５には前記リード信号ｒｅがセット信号Ｓとして入力される。従って、リード信号ｒｅがＨレベルとなると、フリップフロップ回路ＦＦ５の出力信号ＯＵＴがＨレベルとなる。
【００５２】
前記フリップフロップ回路ＦＦ５の出力信号ＯＵＴはＡＮＤ回路２６ｂに入力され、そのＡＮＤ回路２６ｂにはシフトクロックCLKが入力される。従って、フリップフロップ回路ＦＦ５の出力信号がＨレベルとなると、ＡＮＤ回路２６ｂからシフトクロックCLKと同相の信号がＣＰＵシフトクロックCPUCLKとしてＣＰＵ側ＩＦ３に出力されるとともに、ＯＲ回路２７に出力される。
【００５３】
前記切り替え信号Ａ／Ｄは、ＡＮＤ回路２６ｃに入力され、そのＡＮＤ回路２６ｃにはＣＰＵ側ＩＦから出力される周辺回路用シフトクロックPERICLKが入力される。従って、切り替え信号Ａ／ＤがＨレベルとなると、ＡＮＤ回路２６ｃから周辺回路用シフトクロックPERICLKと同相の信号が前記ＯＲ回路２７に出力され、そのＯＲ回路２７の出力信号はシフトレジスタ２０にクロック信号として入力される。フリップフロップ回路ＦＦ５及びＡＮＤ回路２６ｂは、シフトレジスタ２０のクロック制御部、クロック制御回路の主要部となる。
【００５４】
ビット幅伸張回路を構成するシフターカウンター２８及びレジスタ２９ａ〜２９ｈはＣＰＵ側ＩＦ３から出力されるシリアルデータdatainをパラレルデータに変換して周辺回路２ａに出力するものであり、その動作はＣＰＵ側ＩＦ３のシフターカウンター１５及びレジスタ１６ａ〜１６ｈと同様である。
【００５５】
次に、上記のように構成されたシリアル通信マイクロコントローラの動作を説明する。
図４は、ＣＰＵ１から周辺回路２ａ〜２ｃのいずれかにデータの書き込み動作を行う動作を示す。
【００５６】
書き込み動作時にはＣＰＵ１から出力されるステータス信号ＳＴ０，ＳＴ１がともにＨレベルとなり、ＣＰＵ側ＩＦ３及び周辺回路側ＩＦ４ａ〜４ｃではライト信号ＷＲがＨレベル、リード信号ＲＥがＬレベルとなり、信号ＮＯＰがＬレベルとなる。
【００５７】
また、ＣＰＵ１からＣＰＵ側ＩＦ３にＨレベルの切り替え信号ａ／ｄが入力されている状態で、ＣＰＵ１からＣＰＵ側ＩＦ３にアドレス信号ＡＤＲが入力される。ここでは、アドレス信号ＡＤＲのアドレス値は０２ｈ（２番地）すなわち周辺回路側ＩＦ４ｂとする。
【００５８】
ＣＰＵ側ＩＦ３に入力されたアドレス信号ＡＤＲは、ライト信号ＷＲの立ち上がりに基づいてシフトレジスタ７に格納される。次いで、アドレス用シフトクロックイネーブルＡＥに基づいてＡＮＤ回路１４ｅからシフトクロックCLKと同相の出力信号CLKSがシフトレジスタ７に出力され、シフトレジスタ７の格納値が下位ビット側に転送されて、シリアルデータdataoutとして出力される。シフトレジスタ７の格納値の下位ビット側への転送により、その格納値は０２ｈ、０１ｈ、００ｈと変化する。
【００５９】
シフトレジスタ７の格納値の転送に基づいて、シフトレジスタ７の各ビットの格納値がすべて０となると、ＡＮＤ回路１１の出力信号Ｘ１がＨレベルとなる。そして、シフトクロックCLKSの２周期後に３ビットシフター１２の出力信号Ｘ２に基づいてシフトレジスタ７へのシフトクロックCLKSの供給が停止され、アドレス値０２ｈをシリアルデータdataoutとして出力する動作が停止される。
【００６０】
切り替え信号ａ／ｄの立ち下りに基づいてＣＰＵ１から書き込みデータＷＤが入力される。また、３ビットシフター１２の出力信号Ｘ２に基づいてシフトレジスタ７に書き込みデータＷＤが書き込まれる。ここでは、書き込みデータＷＤは１（０１ｈ）とする。
【００６１】
次いで、３ビットシフター１２の出力信号Ｘ３がＨレベルとなると、データ用シフトクロックイネーブルＤＥがＨレベルとなり、シフトレジスタ７にシフトクロックCLKSが出力される。
【００６２】
すると、シフトレジスタ７から１がシリアルデータdataoutとして出力され、シフトレジスタ７の各ビットの格納値がすべて０となって、ＡＮＤ回路１１の出力信号Ｘ１がＨレベルとなる。そして、シフトクロックCLKSの２周期後に３ビットシフター１２の出力信号Ｘ２に基づいてシフトレジスタ７へのシフトクロックCLKSの供給が停止され、データ０１ｈをシリアルデータdataoutとして出力する動作が停止される。従って、シフトレジスタ７は１に続いて０を出力した後、シリアルデータdataoutの出力を停止する。
【００６３】
また、アドレス用シフトクロックイネーブルＡＥの立下りに基づいて周辺回路用切り替え信号Ａ／Ｄが立ち下がり、ＣＰＵ１から出力される切り替え信号ａ／ｄの立ち上がりに基づいて周辺回路用切り替え信号Ａ／Ｄが立ち上がる。
【００６４】
周辺回路側ＩＦ４ａ〜４ｃでは、ＣＰＵ側ＩＦ３から出力される周辺回路用シフトクロックPERICLKに基づいて、ＣＰＵ側ＩＦ３から入力されるシリアルデータdatainがシフトレジスタ２０の最上位ビットに順次入力され、下位側に向かって順次転送される。そして、シフトレジスタ２０の格納値が４０００ｈとなったところでシリアルデータdatainの入力が停止され、その格納値が比較回路２１に出力される。
【００６５】
周辺回路側ＩＦ４ｂのアドレス設定回路２２では、２番地に対応して４０００ｈがあらかじめ設定されているので、比較回路２１は一致信号ＡＧを出力する。すると、ＡＮＤ回路２３ａから周辺回路２ｂにライト信号ｗｒが出力される。周辺回路側ＩＦ４ａ，４ｃでは、比較回路２１からＨレベルの一致信号ＡＧが出力されないので、周辺回路２ａ，２ｃに対する書き込み動作は行われない。
【００６６】
次いで、レジスタ２９ａ〜２９ｈには書き込みデータＷＤに対応するシリアルデータdatainが入力され、シフターカウンター２８には周辺回路用シフトクロックPERICLKが入力される。
【００６７】
シリアルデータdatainは、１に続いて０が入力されるので、レジスタ２９ａに１が格納され、レジスタ２９ｂ〜２９ｈの格納値は０となる。そして、切り替え信号Ａ／Ｄの立ち上がりに同期したライト信号ｗｒの立ち下がりに基づいて、レジスタ２９ａ〜２９ｈの格納値がパラレルデータで周辺回路２ｂに出力されて書き込まれる。以上のような動作により、ＣＰＵ１から出力された書き込みデータＷＤが、周辺回路２ｂに書き込まれる。
【００６８】
図５は、周辺回路２ｂからＣＰＵ１にデータの読み出し動作を行う動作を示す。読み出し動作時にはＣＰＵ１から出力されるステータス信号ＳＴ０がＨレベル、同ＳＴ１がＬレベルとなり、ＣＰＵ側ＩＦ３及び周辺回路側ＩＦ４ａ〜４ｃではライト信号ＷＲがＬレベル、リード信号ＲＥがＨレベルとなり、信号ＮＯＰがＬレベルとなる。
【００６９】
ＣＰＵ１からのアドレス信号ＡＤＲがＣＰＵ側ＩＦ３のシフトレジスタ７に入力され、そのアドレス値がシリアルデータdataoutとして周辺回路側ＩＦ４ａ〜４ｃに出力され、シフトレジスタ７の格納値がすべて０となった後に、３ビットシフター１２の出力信号Ｘ３に基づいてシリアルデータdataoutの出力動作が停止される。この動作は、書き込み動作時と同様である。
【００７０】
周辺回路側ＩＦ４ａ〜４ｃでは、ＣＰＵ側ＩＦ３から出力される周辺回路用シフトクロックPERICLKに基づいて、ＣＰＵ側ＩＦ３から入力されるシリアルデータdatainがシフトレジスタ２０の最上位ビットに順次入力され、下位側に向かって順次転送される。そして、シフトレジスタ２０の格納値が４０００ｈとなったところでシリアルデータdatainの入力が停止され、その格納値が比較回路２１に出力される。
【００７１】
そして、周辺回路側ＩＦ４ｂでは比較回路２１から一致信号ＡＧが出力され、ＡＮＤ回路２３ｂから周辺回路２ｂにリード信号ｒｅが出力される。周辺回路側ＩＦ４ａ，４ｃでは、比較回路２１からＨレベルの一致信号ＡＧが出力されないので、周辺回路２ａ，２ｃに対する読み出し動作は行われない。
【００７２】
次いで、リード信号ｒｅに基づいて、周辺回路２ｂから読み出しデータＲＤがパラレルデータとしてデータバッファ１８を介してシフトレジスタ２０に入力される。ここでは、読み出しデータは３、すなわち１６ビット表示で０００３ｈとする。
【００７３】
シフトレジスタ２０に格納された読み出しデータＲＤは、周辺回路用シフトクロックPERICLKに基づいて順次下位側に転送され、シリアルデータdataoutとしてＣＰＵ側ＩＦ３に出力される。そして、シフトレジスタ２０の格納値がすべて０となると、ＡＮＤ回路２４及び２ビットシフター２５の動作によりシリアルデータdataoutの出力が停止される。
【００７４】
ＣＰＵ側ＩＦ３では、周辺回路側ＩＦ４ｂから出力されるＣＰＵシフトクロックCPUCLKに基づいてシリアルデータdataoutがレジスタ１６ａ〜１６ｈに格納される。この動作は、周辺回路側ＩＦ４ｂのレジスタ２９ａ〜２９ｈに書き込みデータとしてのシリアルデータdatainを格納する場合の動作と同様である。
【００７５】
そして、レジスタ１６ａ，１６ｂに１が格納され、レジスタ１６ｃに０が格納された時点でシリアルデータdatainの入力が停止され、レジスタ１６ａ〜１６ｈの格納値である０００３ｈがパラレルデータでＣＰＵ１に出力される。
【００７６】
上記のようなシリアル通信マイクロコントローラでは、次に示す作用効果を得ることができる。
（１）ＣＰＵ１から周辺回路２ａ〜２ｃへのデータの書き込み動作及び周辺回路２ａ〜２ｃからＣＰＵ１へのデータの読み出し動作をＣＰＵ側ＩＦ３と周辺回路側ＩＦ４ａ〜４ｃとの間でシリアル通信により行うことができる。従って、パラレル通信のマイクロコントローラに比して設計効率を向上させることができる。
（２）ＣＰＵ側ＩＦ３から周辺回路側ＩＦ４ａ〜４ｃにアドレス信号ＡＤＲをシリアルデータdataoutで出力するとき、ＣＰＵ側ＩＦ３のシフトレジスタ７の格納値がすべて０となったときシリアルデータdataoutの出力を停止する。また、周辺回路側ＩＦ４ａ〜４ｃでは、アドレス信号として入力されたシリアルデータdatainに基づいてアドレスを判定して、書き込み動作あるいは読み出し動作を行う周辺回路２ａ〜２ｃを選択することができる。従って、アドレス信号の全ビットをシリアルデータdataoutとして転送する必要がないので、シリアル通信速度を向上させることができる。
（３）ＣＰＵ側ＩＦ３から周辺回路側ＩＦ４ａ〜４ｃに書き込みデータＷＤをシリアルデータdataoutで出力するとき、ＣＰＵ側ＩＦ３のシフトレジスタ７の格納値がすべて０となったときシリアルデータdataoutの出力を停止する。また、周辺回路側ＩＦ４ａ〜４ｃでは、レジスタ２９ａ〜２９ｈ及びシフターカウンター２８の動作により、全ビットに満たないシリアルデータdatainから全ビットの書き込みデータＷＤを再生して、周辺回路２ａ〜２ｃに出力することができる。従って、書き込みデータＷＤの全ビットをシリアルデータdataoutとして転送する必要がないので、シリアル通信速度を向上させることができる。
（４）周辺回路側ＩＦ４ａ〜４ｃからＣＰＵ側ＩＦ３に読み出しデータＲＤをシリアルデータdataoutで出力するとき、周辺回路側ＩＦ４ａ〜４ｃのシフトレジスタ７の格納値がすべて０となったときシリアルデータdataoutの出力を停止する。また、ＣＰＵ側ＩＦ３では、レジスタ１６ａ〜１６ｈ及びシフターカウンター１５の動作により、全ビットに満たないシリアルデータdatainから全ビットの読み出しデータＲＤを再生して、ＣＰＵ１に出力することができる。従って、読み出しデータＲＤの全ビットをシリアルデータdataoutとして転送する必要がないので、シリアル通信速度を向上させることができる。
【００７７】
上記実施の形態は、以下の態様で実施してもよい。
・アドレス信号ＡＤＲ、書き込みデータＷＤ及び読み出しデータＲＤは、上記以外のビット数としてもよい。その場合には、シフトレジスタのビット数をアドレス信号のビット数に合致させ、レジスタ及びシフターカウンターのビット数を書き込みデータ及び読み出しデータのビット数に合致させればよい。
【図面の簡単な説明】
【００７８】
【図１】シリアル通信マイクロコントローラを示すブロック図である。
【図２】ＣＰＵ側ＩＦを示す回路図である。
【図３】周辺回路側ＩＦを示す回路図である。
【図４】書き込み動作時の動作を示すタイミング波形図である。
【図５】読み出し動作時の動作を示すタイミング波形図である。
【符号の説明】
【００７９】
１        ＣＰＵ
２ａ〜２ｃ      周辺回路
３        ＣＰＵ側シリアルインターフェース
４ａ〜４ｃ      周辺回路側シリアルインターフェース
１１，２４      ビット幅圧縮回路（ＡＮＤ回路）
１２      ビット幅圧縮回路（３ビットシフター）
１４ｅ    ビット幅圧縮回路（ＡＮＤ回路）
１５，２８      ビット幅伸張回路（シフターカウンター）
１６ａ〜１６ｈ，２９ａ〜２９ｈ    ビット幅伸張回路（レジスタ）
２５      ビット幅圧縮回路（２ビットシフター）
ＦＦ２    ビット幅圧縮回路（フリップフロップ回路）
ＦＦ５    ビット幅圧縮回路（フリップフロップ回路）
【図１】
2007079974.tif 000003
【図２】
2007079974.tif 000004
【図３】
2007079974.tif 000005
【図４】
2007079974.tif 000006
【図５】
2007079974.tif 000007