(57)【特許請求の範囲】
【請求項１】
同期クロックに従って、送信または受信の順序的な通信を行うインタフェース回路を備える半導体装置であって、
前記インタフェース回路は、
送信状態および受信状態の少なくとも１つをイネーブルにする動作イネーブル状態を指定する第１のレジスタと、
データ転送時に、データ転送情報またはデータ転送の内容に基づき、前記インタフェース回路の少なくとも１つのモードを変更するように生成された情報に従って、前記動作イネーブル状態において、送信または受信の少なくとも１つのモードを変更するモード制御回路と、
を備え、
前記モード制御回路は、前記動作イネーブル状態において、送受信モード、送信モード、および受信モードのモード間でモードを変更する半導体装置。
【請求項２】
請求項１の半導体装置において、
前記インタフェース回路は、前記モードの変更に応じて、ステータス出力を行うよう構成される半導体装置。
【請求項３】
請求項１の半導体装置において、
さらに、送受信同時動作時において、送信抑止または受信抑止を指定することが可能な情報を有する第２のレジスタを備える半導体装置。
【請求項４】
請求項３の半導体装置において、
前記第２のレジスタは、さらに、コマンド受信およびデータ受信のいずれかを指定することが可能な情報を備える半導体装置。
【請求項５】
請求項１の半導体装置において、
前記インタフェース回路は、データ送信完了割り込み要求、コマンド受信完了割り込み要求およびデータ受信完了割り込み要求のいずれかを出力することが可能であるよう構成される半導体装置。
【請求項６】
請求項１の半導体装置において、
さらに、データ転送装置を備え、
前記モード制御回路は、前記データ転送装置の所定の動作に応じた制御を受け、送信または受信の動作完了後に、少なくとも１つの前記モードの変更を行うよう構成される半導体装置。
【請求項７】
請求項５の半導体装置において、
さらに、データ転送装置を備え、
前記データ転送装置は、前記データ送信完了割り込み要求、前記コマンド受信完了割り込み要求および前記データ受信完了割り込み要求のいずれかに基づいて起動するよう構成される半導体装置。
【請求項８】
請求項７の半導体装置において、
前記データ転送装置は、転送モード情報を格納するレジスタと、第１および第２の転送元アドレス情報を格納するレジスタと、転送先アドレス情報を格納するレジスタと、演算回路と、を含み、
前記第１の転送元アドレス情報に基づきリードしたデータと、前記第２の転送元アドレス情報とを、前記演算回路で演算した結果に基づきリードした転送データを前記転送先アドレス情報に基づきライトを行うよう構成される半導体装置。
【請求項９】
請求項１の半導体装置において、
さらに、中央処理装置と割り込み制御回路とデータ転送装置とを有し、
前記インタフェース回路は、前記割り込み制御回路に対して割り込み要求を行い、
前記割り込み制御回路は、前記割り込み要求に応じて、前記中央処理装置に対して割り込み信号を出力し、または前記データ転送装置に対して起動要求を出力するよう構成される半導体装置。
【請求項１０】
同期クロックに従って、送信または受信の順序的な通信を行う第１のインタフェース回路を備える第１の半導体装置と、
前記同期クロックに従って、送信または受信の順序的な通信を行う第２のインタフェース回路を備える第２の半導体装置と、
を備えるシステムであって、
前記第２のインタフェース回路は、
送受信状態、送信状態、または受信状態を指定する第１のレジスタと、
データ転送時に、データ転送情報またはデータ転送の内容に基づき、前記第２のインタフェース回路の少なくとも一つのモードを変更するように生成された情報に従って、送受信、送信、または受信をイネーブルにする動作イネーブル状態において、送信または受信の少なくとも１つのモードを変更するモード制御回路と、
を備え、
前記モード制御回路は、前記動作イネーブル状態において、送受信モード、送信モード、および受信モードのモード間でモードを変更するシステム。
【請求項１１】
請求項１０のシステムにおいて、
前記第２のインタフェース回路は、前記モードの変更に応じて、ステータスを出力し、
前記第１のインタフェース回路は、前記ステータスを入力するよう構成されるシステム。
【請求項１２】
請求項１０のシステムにおいて、
前記第２のインタフェース回路は、さらに、前記送受信状態において、送信抑止または受信抑止を指定することが可能な情報を有する第２のレジスタを備えるシステム。
【請求項１３】
請求項１２のシステムにおいて、
前記第２のレジスタは、コマンド受信およびデータ受信のいずれかを指定することが可能な情報を備えるシステム。
【請求項１４】
請求項１０のシステムにおいて、
前記第２のインタフェース回路は、前記第１のインタフェース回路から出力される１つの同期クロックに同期して、送信および受信の順序的な通信を行うよう構成されるシステム。
【請求項１５】
請求項１０のシステムにおいて、
前記第２の半導体装置は、さらに、データ転送装置を備え、
前記モード制御回路は、前記データ転送装置の所定の動作に応じた制御を受け、送信または受信の動作完了後に、前記モードの変更を行うよう構成されるシステム。
【請求項１６】
請求項１０のシステムにおいて、
前記第２の半導体装置は、さらに、データ転送装置を備え、
前記データ転送装置は前記第２のインタフェース回路のデータ送信完了割り込み要求、コマンド受信完了割り込み要求およびデータ受信完了割り込み要求のいずれかに基づいて起動するよう構成されるシステム。
【請求項１７】
請求項１６のシステムにおいて、
前記データ転送装置は、転送モード情報を格納するレジスタと、第１および第２の転送元アドレス情報を格納するレジスタと、転送先アドレス情報を格納するレジスタと、演算回路と、を含み、
前記第１の転送元アドレス情報に基づきリードしたデータと、前記第２の転送元アドレス情報とを、前記演算回路で演算した結果に基づきリードした転送データを前記転送先アドレス情報に基づきライトを行うよう構成されるシステム。
【請求項１８】
請求項１０のシステムにおいて、
前記第２の半導体装置は、さらに、中央処理装置と割り込み制御回路とデータ転送装置とを有し、
前記第２のインタフェース回路は、前記割り込み制御回路に対して割り込み要求を行い、
前記割り込み制御回路は、前記割り込み要求に応じて、前記中央処理装置に対して割り込み信号を出力し、または前記データ転送装置に対して起動要求を出力するよう構成されるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は半導体装置に関し、例えばシリアルコミュニケーションインタフェース（Serial Communication Interface：以下、ＳＣＩという。）を備えた半導体装置に適用可能である。
【背景技術】
【０００２】
半導体集積回路でなるマイクロコンピュータは、機器制御用途に広く用いられている。マイクロコンピュータ間の通信には、ＳＣＩが用いられる（例えば、特開２０１１−１１４６３０号公報）。ＳＣＩは、データを１ビットずつ送信または受信するものである。ＳＣＩには、クロック同期式モードとして、クロックの立ち下がりから次の立ち下がりまでを１ビットとして送受信を行う。１つのクロック線と送信線と受信線の３本で送受信同時動作を行う。クロック同期式は、比較的高速の通信に用いられる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１１４６３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＳＣＩは、送信のみまたは受信のみを行うことも可能であるが、送受信から送信のみまたは受信のみに切り替えるには、ＳＣＩの再設定が必要になる。
【０００５】
その他の課題と新規な特徴は、本発明書の記述および添付図面か明らかになるであろう。
【課題を解決するための手段】
【０００６】
本開示のうち代表的なものの概要を簡単に説明すれば下記の通りである。
すなわち、半導体装置は、送信または受信の順序的な通信を行うインタフェース回路を備える。インタフェース回路は、送信状態および受信状態の少なくとも１つの状態である動作イネーブル状態を指定するレジスタと、動作イネーブル状態において、送信または受信の少なくとも１つのモードを変更するモード制御回路と、を備える。
【発明の効果】
【０００７】
上記の半導体装置によれば、送信または受信のモードの変更を容易にすることができる。
【図面の簡単な説明】
【０００８】
【図１Ａ】実施例に係るマイクロコンピュータの構成を説明するためのブロック図。
【図１Ｂ】図１Ａのマイクロコンピュータの主要なインタフェースを説明するためのブロック図。
【図２】図１ＡのＳＣＩの構成を説明するためのブロック図。
【図３】図１ＡのＳＣＩのレジスタ構成を説明するための図。
【図４】図１ＡのＳＣＩのモード制御状態遷移を説明するための図。
【図５】図１Ａの割り込みコントローラの構成を説明するためのブロック図。
【図６】図１ＡのＤＴＣのデータ転送情報を説明するための図。
【図７】図１ＡのＤＴＣの構成を説明するためのブロック図。
【図８Ａ】応用例に係るマイクロコンピュータシステムの構成を説明するためのブロック図。
【図８Ｂ】図８Ａのマイクロコンピュータシステムの接続関係を説明するためのブロック図。
【図９】図８Ａのマイクロコンピュータシステムにおける通信動作の第１の例を説明するためのタイミング図。
【図１０】図８Ａのマイクロコンピュータシステムにおけるコマンド受信完了のためのデータ転送を説明するための図。
【図１１】図８Ａのマイクロコンピュータシステムにおけるコマンド受信完了のためのデータ転送を説明するための図。
【図１２】図８Ａのマイクロコンピュータシステムにおける通信動作の第２の例を説明するためのタイミング図。
【図１３】実施形態に係る半導体装置の構成を説明するためのブロック図。
【発明を実施するための形態】
【０００９】
以下、実施形態、実施例および応用例について、図面を用いて説明する。ただし、以下の説明において、同一構成要素には同一符号を付し繰り返しの説明を省略することがある。
【００１０】
まず、本願発明者らが検討したＳＣＩの課題について説明する。
クロック同期式モードの送受信同時動作の場合、送信または受信の一方に不所望の状態にある場合には、所望の動作を行うことができない。例えば、送信データが用意できていないときには、原理的に所望の送受信同時動作を実現できず、実装上、送受信の両方の動作を行わないようにすることが多い。
【００１１】
送受信同時動作と、送信のみ動作または受信のみ動作を切り替える場合、ＳＣＩの設定変更を行う必要がある。設定変更にあたっては待機時間が必要になる場合もある。待機時間は、ＳＣＩが順序的な動作を行うための内部動作の初期化のためなどに必要なものであり、待機時間の計測を行う。設定変更や待機時間の計測は、正味の通信とは直接関係のない処理であり、また、データトランスファコントローラ（ＤＴＣ）などのデータ転送装置に担わせることが難しく、処理の高速化も難しい。
【００１２】
通信の内容は、マイクロコンピュータが利用されるシステムによって異なる。一般的に、制御用途では、コマンドとそれに付随するデータが含まれることが多い。コマンドを受ける側は、コマンドの内容を判断しなければ、その後の動作（送信または受信）を決めることができない。コマンドと、それに付随する通信のデータ長はシステムによって異なり、コマンドに対応してデータ長も異なることが考えられる。例えば、コマンドは８ビット単位、それに付随する通信は３２ビット単位などである。
【００１３】
例えば、送受信同時動作を行うシステムにおいて、コマンド送受信を行う場合は、対となるデータは存在しないことが多いので、送受信同時動作のままとして、コマンド受信側（スレーブ）はダミーの送信データを用意し、コマンド送信側（マスタ）は受信したダミーの受信データを無視するようにしなければならない。ダミーの送信データおよび受信データに対する、これらの処理は、本来必要のないものである。または、マスタは送信のみ、スレーブは受信のみに設定変更を行わなければならない。この場合は、設定変更の処理や待機時間の計測などが必要になってしまう。
【００１４】
＜実施形態＞
図１３は実施形態に係る半導体装置の構成を示すブロック図である。
【００１５】
半導体装置（ＳＤ）は、同期クロックに従って、送信または受信の順序的な通信を行うインタフェース回路（ＳＩ）を備える。インタフェース回路（ＳＩ）は、送信状態および受信状態の少なくとも１つの状態である動作イネーブル状態を指定するレジスタ（ＲＥＧＩＳＴＥＲ）と、動作イネーブル状態において、送信または受信の少なくとも１つのモードを変更するモード制御回路（ＭＤＣ）と、を備える。
半導体装置によれば、送受信から送信または受信のモードの変更を容易にし、待機時間などを不要にして、通信のモードを変更可能にする。
【実施例】
【００１６】
図１Ａは実施例に係るマイクロコンピュータの構成を示すブロック図である。マイクロコンピュータ（Micro Controller Unit：以下、ＭＣＵという。）１０は１つの半導体基板上に図１Ａに示す機能ブロックまたはモジュール等を備える半導体装置である。すなわち、ＭＣＵ１０は、中央処理装置（Central Processing Unit：以下、ＣＰＵという。）１１、データ転送装置（データトランスファコントローラ（Data Transfer Controller：以下、ＤＴＣという。））１２、割り込みコントローラ（Interrupt Controller：ＩＮＴ）１３、リードオンリメモリ（Read Only Memory：以下、ＲＯＭという。）１４およびランダムアクセスメモリ（Random Access Memory：以下、ＲＡＭという。）１５を備える。ＭＣＵ１０は、さらに、バスコントローラ（Bus Controller：以下、ＢＳＣという。）１６、タイマ（ＴＩＭＥＲ）１７、ＳＣＩ１８、Ａ／Ｄ（Analog/Digital）変換器およびＤ／Ａ（Digital/Analog）変換器などのアナログモジュール（ＡＮＡＬＯＧ）１９および入出力ポート（Ｉ／Ｏ）１Ａを備える。
【００１７】
ＭＣＵ１０の動作の主体となるＣＰＵ１１は、主にＲＯＭ１４から命令を読込んで動作する。ＲＯＭ１４は電気的に書換が可能なメモリであるフラッシュメモリ等の不揮発性メモリで構成される。ＤＴＣ１２は、ＣＰＵ１１の設定に基づき、ＣＰＵ１１に代ってデータ転送を行う。
【００１８】
ＩＮＴ１３は、ＢＳＣ１６、タイマ１７、ＳＣＩ１８、アナログモジュール１９などからの割み込み要求（ＩＮＴＲＥＱ）、およびＭＣＵ１０外部からの複数の外部割り込み要求信号に基づく、Ｉ／Ｏ１Ａからの割り込み要求（ＩＮＴＲＥＱ）を受けて、ＣＰＵ１１に割り込み要求、またはＤＴＣ１２にデータ転送起動要求を出力する。割り込み信号による処理を開始したときまたは終了したときに、割り込みをクリアする信号である割込みクリア信号（ＩＮＴＣＬＲ）を、ＢＳＣ１６、タイマ１７、ＳＣＩ１８、アナログ１９、Ｉ／Ｏ１Ａのそれぞれの割込み信号または割り込み要因フラグに対応して出力する。
【００１９】
ＢＳＣ１６は、ＣＰＵ１１およびＤＴＣ１２からのバスリクエスト信号を受けてＭＣＵ内部バス１Ｂの占有に対する調停をして、バス使用許可信号を出力する。ＢＳＣ１６は、ＣＰＵ１１およびＤＴＣ１２と、バスリクエスト、バスアクノレジ、バスコマンド、ウェイト、アドレス、データなどのインタフェースを行い、ＭＣＵ内部バス１Ｂに接続された、ＲＡＭ１５やそのほかの機能ブロックまたはモジュールに対するリード／ライトを実現する。ＲＡＭ１５はＳＲＡＭ等の揮発性メモリで構成される。
【００２０】
ＳＣＩ１８の送信データ出力（ＴＸＤ）および受信データ入力（ＲＸＤ）は、ＭＣＵ１０の外部のＳＣＩとシリアルバスによって入出力される。このとき、必要に応じて入出力ポートを介して、入出力するようにすることもできる。
【００２１】
図１Ｂは図１Ａのマイクロコンピュータの主要なインタフェースを示すブロック図である。ＳＣＩ１８は、ＩＮＴ１３を介して、ＤＴＣ起動要求（ＤＴＣＲＥＱ）によりＤＴＣ１２を起動する。ＳＣＩ１８のデータ転送起動要因として、コマンド受信完了（コマンド受信データフル）割り込み要求（ＣＲＸＩ）、データ受信完了（受信データフル）割り込み要求（ＤＲＸ）、データ送信完了（送信データエンプティ）割り込み要求（ＴＸＩ）を持つ。
【００２２】
ＤＴＣ１２は、ＩＮＴ１３の示すＤＴＣベクタ番号（ＤＴＣＶＥＣ）に対応した、データ転送情報をＲＡＭ１５からリードして、データ転送を行う。データ転送情報は、データ転送起動要因に対応したものが用意される。後述のように、コマンド受信完了に対応したデータ転送によって、受信データフル（受信データ転送）、送信データエンプティ（送信データ転送）で使用するデータ転送情報を切り替えるようにする。また、ＤＴＣ１２はデータ転送時にアクノレジ信号（ＡＣＫ）を活性化するとともに、データ転送情報または転送データに応じてモード制御信号（ＭＤＣ）を出力する。このアクノレジ信号（ＡＣＫ）とモード制御信号（ＭＤＣ）は、ＩＮＴ１３を介して、ＳＣＩ１８に与えられ、これに基づき、ＳＣＩ１８のモード制御部（ＳＣＩＭＤＣ）は後述するモードの変更を行う。ＳＣＩ１８は、モードと送受信の状態に従って、ステータス（ＳＴ）の出力を行う。
【００２３】
なお、データ転送装置の起動要因が一意に決まる場合には、ＳＣＩ１８とデータ転送装置を直接接続するようにしてもよい。これは、データ転送装置として、ＤＴＣ１２とＩＮＴ１３を一体化したものと理解することができる。
【００２４】
（ＳＣＩ）
図２は図１ＡのＳＣＩの構成を示すブロック図である。ＳＣＩ１８は、制御レジスタ１８１、モード制御部（ＳＣＩＭＤＣ）１８２、送受信制御部（ＳＣＩＣＮＴ）１８３、受信部１８４、送信部１８５、受信ＦＩＦＯ１８６、送信ＦＩＦＯ１８７等を備える。
【００２５】
制御レジスタ１８１は、送受信の方式やフォーマットの指定を行うとともに、割り込み要求などの状態を表示するために、モードレジスタ（ＳＭＲ）、コントロールレジスタ（ＳＣＲ）、ステータスレジスタ（ＳＳＲ）、ファンクションコントロールレジスタ（ＳＦＣＲ）を有する。例えば、ＳＣＲのトランスミットイネーブル（ＴＥ）ビット、レシーブイネーブル（ＲＥ）ビットのいずれかが１にセットされた状態に応じて、ＳＣＩ１８の動作イネーブル状態（ＳＣＩイネーブル）を指定する。この動作イネーブル状態は、ほかの送受信の方式やフォーマットの指定がなされた後に指定する。換言すれば、動作イネーブル状態では、送受信の方式やフォーマットの変更は行わない。
【００２６】
ＳＣＩＭＤＣ１８２は、制御レジスタ１８１のＳＦＣＲの設定に基づき、コマンド／データの識別（ＣＭＤ）、送信抑止（ＴＤ）、受信抑止（ＲＤ）などのモード制御を行う。また、ＳＣＩＭＤＣ１８２は、ＤＴＣ１２のモード制御信号（ＭＤＣ）に応じて、モードの切り替えを行う。このとき、ＳＣＩＭＤＣ１８２は、モード制御信号（ＭＤＣ）をＳＣＩＭＤＣ１８２内部で一旦、次モードとして保持し、実行中の送受信が完了した時点で、ＳＦＣＲに反映するようにする。ＳＣＩ１８がスレーブ側である場合は、モードに対応してＩ／Ｏポート（端子１８Ｄ）からステータス（ＳＴ）を出力する。コマンド受信が指定された状態での受信動作によって、ステータス（ＳＴ）出力をビジー状態にする。コマンド受信完了によるデータ転送装置の動作によって、モードの切り替えを行ったときに、ステータス（ＳＴ）出力をレディ状態にする。また、データ送信またはデータ受信動作によって、ステータス（ＳＴ）出力をビジー状態にし、これらによるデータ転送装置の動作によって、モードの切り替え（コマンド受信にモードを切り替え）たときに、レディ状態にする。
【００２７】
ＳＣＩＣＮＴ１８３は、制御レジスタ１８１およびＳＣＩＭＤＣ１８２に基づき、クロック部ボーレートジェネレータ（ＢＲＧ）１８８からの同期クロック（ＳＣＫ）に同期して、送信／受信／送受信動作を行う。また、ＳＣＩ１８がマスタ側である場合は、Ｉ／Ｏポート（端子１８Ｄ）からステータス（ＳＴ）の入力を行い、ビジー状態の場合は、新たな送受信動作を開始しないようにする。
【００２８】
送信動作は、送信ＦＩＦＯ１８７に有効なデータが存在する状態で、同期クロック（ＳＣＫ）が入力されると、送信部１８５を介して送信データ（ＴＸＤ）を出力端子１８Ａに出力する。送信ＦＩＦＯ１８７に有効なデータがない状態で、同期クロック（ＳＣＫ）が入力されると送信オーバランエラーを発生する。
【００２９】
受信動作は、同期クロック（ＳＣＫ）に同期して、入力端子１８Ｂから受信データ（ＲＸＤ）を受信部１８４に入力し、単位データの入力が行われると、受信ＦＩＦＯ１８６に転送する。受信ＦＩＦＯ１８６が一杯の状態で、さらに受信データを入力すると受信オーバランエラーを発生する。
【００３０】
ＳＣＩＣＮＴ１８３は、送信オーバランエラーまたは受信オーバランエラーが発生すると、ＩＮＴ１３に割り込みを要求する。この割り込み処理ルーチンによって、ＣＰＵ１１は所要の処理を行い、ＳＣＩ１８は動作を再開することになる。
【００３１】
ＳＣＩＣＮＴ１８３は、送信ＦＩＦＯ１８７に所定の量の空きが生じた場合には送信データエンプティ割り込み要求（ＴＸＩ）を、受信ＦＩＦＯ１８６に所定の量のデータが蓄積された場合は受信データフル割り込み要求（ＤＲＸＩ）を発生する。この所定の量は、制御レジスタ１８１の設定によって指定することができる。
【００３２】
制御レジスタ１８１において、ＴＥビット、ＲＥビットがいずれも１にセットされた動作イネーブル状態においては、同期クロック（ＳＣＫ）は送受信に共通であるため、送信動作と受信動作は同時に動作する。この動作イネーブル状態を送受信同時動作イネーブル状態という。送受信同時動作イネーブル状態であっても、送信オーバランエラーまたは受信オーバランエラーが発生した状態では、送受信動作は行わない。
【００３３】
ＳＣＩＣＮＴ１８３は、送受信同時動作イネーブル状態においても、コマンド受信（ＣＭＤ＝１）の場合は、送信ＦＩＦＯ１８７に有効なデータがなくても、送信オーバランエラーを発生させず、送信動作を行い、また、送信ＦＩＦＯ１８７に有効なデータがあっても、送信ＦＩＦＯ１８７を保持したまま送信動作を行う。この送信動作では、送信出力を０または１に固定する。これは、ＴＥビットを０に設定した場合と同様の動作である。また、ＳＣＩＣＮＴ１８３は、単位データの受信によって、コマンド受信完了割り込み要求（ＣＲＸＩ）を発生させる。
【００３４】
送受信同時動作イネーブル状態においても、送信抑止（ＴＤ＝１）の場合は、コマンド受信の場合と同様の動作になる。
【００３５】
ＳＣＩＣＮＴ１８３は、送受信同時動作イネーブル状態においても、受信抑止（ＲＤ＝１）の場合は、受信データは無視し、受信ＦＩＦＯ１８６も保持する。このため、受信データフル、受信オーバランエラーも発生させない。これは、ＲＥビットを０に設定した場合と同様の動作である。
【００３６】
受信部１８４は、入力端子１８Ｂに接続され、１ビットずつ受信データ（ＲＸＤ）を格納する。所定のデータ（例えば８ビット）の受信が完了すると、そのデータを受信ＦＩＦＯ１８６に転送する。後述のＲＤビットが１にセットされている場合は、受信完了とみなさない。受信ＦＩＦＯ１８６の内容は、ＭＣＵ内部バス１Ｂを介して、ＣＰＵ１１またはＤＴＣ１２からリードすることができる。
【００３７】
送信ＦＩＦＯ１８７は、ＭＣＵ内部バス１Ｂを介して、ＣＰＵ１１またはＤＴＣ１２により、送信データのライトが行われる。後述のＴＤＲＥフラグが０にクリアされ、送信が開始されると、送信ＦＩＦＯ１８７の内容は送信部１８５に転送される。送信部１８５は出力端子１８Ａに接続され、１ビットずつ送信データ（ＴＸＤ）を出力する。
【００３８】
ボーレートジェネレータ（ＢＲＧ）１８８は、送受信の基本となるタイミングを生成することができるようにする。ボーレートジェネレータ（ＢＲＧ）１８８は、ビットレートレジスタ、ビットレートカウンタを有する。
【００３９】
ＳＣＩＣＮＴ１８３は、割り込み要求信号として、ＴＸＩ（データ送信完了または送信データエンプティ割り込み要求）、ＣＲＸＩ（コマンド受信完了またはコマンド受信データフル割り込み要求）、ＤＲＸＩ（データ受信完了または受信データフル割り込み要求）、ＥＲＩ（受信エラー割り込み要求）信号を出力する。ＴＸＩ、ＣＲＸＩ、ＤＲＸＩ信号は、ＤＴＣ１２のデータ転送要求として使用することができる。
【００４０】
図３は図１ＡのＳＣＩのレジスタ構成を示す図である。図３では、クロック同期式モードに関係するビットのみを示す。調歩同期式モードやそのほかの方式も、図示はされない、コントロールビット、ステータスフラグによって、実現することができる。
【００４１】
シリアルモードレジスタ（ＳＭＲ）のビット１、０は、クロックセレクトビット（ＣＫＳ１、ＣＫＳ０）であり、内蔵ボーレートジェネレータ（ＢＲＧ）１８８のクロックソースを選択する。
【００４２】
シリアルコントロールレジスタ（ＳＣＲ）のビット７は、トランスミットインタラプトイネーブル（ＴＩＥ）であり、ＴＩＥビットを１にセットすると、ＴＸＩが許可される。ビット６は、レシーブインタラプトイネーブル（ＲＩＥ）であり、ＲＩＥビットを１にセットすると、ＲＸＩおよびＥＲＩが許可される。ビット５は、トランスミットイネーブル（ＴＥ）であり、ＴＥビットを１にセットすると、送信動作が可能になる。ビット４は、レシーブイネーブル（ＲＥ）であり、ＲＥビットを１にセットすると、受信動作が可能になる。ビット１は、クロックイネーブル（ＣＫＥ）であり、クロックソースおよびＳＣＫの入出力端子１８Ｃの機能を選択する。ＣＫＥビットが０にクリアされているときは、ボーレートジェネレータ（ＢＲＧ）１８８からの内部クロックを使用し、入出力端子１８ＣはＳＣＫの出力端子となる。ＣＫＥビットが１にセットされているときは、外部クロックを使用し、入出力端子１８ＣはＳＣＫの入力端子となる。
【００４３】
ＭＣＵ１０が適用されるシステムによって、ＳＣＩ１８の動作は固定され、送信動作のみ（ＴＥ＝１、ＲＥ＝０）、受信動作のみ（ＴＥ＝０、ＲＥ＝１）、送受信同時動作（ＴＥ＝ＲＥ＝１）のいずれかになる。送受信コントロールは通信状態の遷移を司るにあたって、送信動作のみ、受信動作のみ、送受信同時動作の３つの動作によって、参照するレジスタやビットを変更する必要があり、送受信等の通信動作中に不整合を生じることを防ぐため、ＴＥ、ＲＥビットの通信動作中の切り替えは禁止される。ＴＥ、ＲＥビットを設定した後、ボーレートジェネレータ（ＢＲＧ）１８８による基本クロックの同期化などの時間を待つ必要がある。
【００４４】
シリアルステータスレジスタ（ＳＳＲ）のビット７は、トランスミットデータレジスタエンプティ（ＴＤＲＥ）フラグであり、送信ＦＩＦＯ１８７の空きの状態を表示する。所定の空きがある場合に、ＴＤＲＥフラグは１にセットされる。また、ＣＰＵ１１が、ＴＤＲＥフラグの１の状態をリードした後、０をライトしたとき、および、ＴＸＩにより起動されたＤＴＣ１２で送信ＦＩＦＯ１８７へ送信データを転送したときに０にクリアされる。ＴＤＲＥフラグが０にクリアされると送信動作を開始する。ビット６は、レシーブデータレジスタフル（ＲＤＲＦ）フラグであり、受信ＦＩＦＯ１８６のデータの状態を表示する。受信ＦＩＦＯ１８６に所定のデータが存在する場合に、ＲＤＲＦフラグは１にセットされる。また、ＣＰＵ１１が、ＲＤＲＦフラグの１の状態をリードした後、０をライトしたとき、および、ＣＲＸＩまたはＤＲＸＩにより起動されたＤＴＣ１２で受信ＦＩＦＯ１８６からデータを転送したときに０にクリアされる。ビット５は、オーバランエラー（ＯＲＥＲ）フラグであり、受信時にオーバランエラーが発生したことを表示する。具体的には、ＯＲＥＲフラグは、ＲＤＲＦフラグが１にセットされた状態で次のデータを受信したときに、１にセットされる。このとき、受信データレジスタ（ＲＤＲ）はオーバランエラーが発生する前の受信データを保持し、後から受信したデータが失われる。ＯＲＥＲフラグに１がセットされた状態では、以降のシリアル送受信は行わないようにする。
【００４５】
ＴＤＲＥフラグとＴＩＥビットがいずれも１にセットされると、ＴＸＩが発生する。ＲＤＲＦフラグとＲＩＥビットが１にセットされると、後述のＣＭＤビットによって、ＣＲＸＩまたはＤＲＸＩが発生する。また、ＯＲＥＲフラグとＲＩＥビットが１にセットされるとＥＲＩが発生する。
【００４６】
ファンクションコントロールレジスタ（ＳＦＣＲ）のビット５は、送信ディスエーブル（ＴＤ）であり、クロック同期式モードの送受信動作時、かつクロック入力の状態で、ＴＤビットが１にセットされている場合、ＴＤＲＥフラグの状態によらず、クロック入力に従って、送受信動作を開始する。送信データは固定値（例えば００またはＦＦ）とする。０または１に固定することで、信号変化を抑止し、不所望の消費電力増加を回避することができる。データを固定するのみで、そのほかの通信動作は、送受信同時動作になる。ビット４は、受信ディスエーブル（ＲＤ）であり、ＲＤビットを１にセットした場合は、受信を完了したとみなさず、ＲＤＲＦ、ＯＲＥＲフラグは1にセットされない。ビット２は、コマンド受信（ＣＭＤ）であり、受信完了時にコマンド受信完了またはデータ受信完了のいずれとみなすかを指定する。すなわち、ＣＭＤビットが１にセットされている場合は、コマンド受信完了としてＣＲＸＩが発生し、ＣＭＤビットが０にクリアされている場合は、ＤＲＸＩが発生する。
【００４７】
これらのＣＭＤ、ＴＤ、ＲＤビットは、ＤＴＣ１２からのモード制御信号（ＭＤＣ）に応じた、ＳＣＩＭＤＣ１８２に従い、変更される。
【００４８】
図４は図１ＡのＳＣＩのモード制御状態遷移を示す図である。リセット後は、ＴＥ、ＲＥビットが０にされた停止状態ＳＴ１である。ＣＰＵ１１などにより、制御レジスタ１８１のＳＣＲの設定を行い、ＴＥ、ＲＥビットの少なくとも１ビットを１にセットすると、動作イネーブル状態ＳＴ２になる。動作イネーブル状態ＳＴ２は、送信動作（ＴＥ＝１）、受信動作（ＲＥ＝１）または送受信動作（ＴＥ＝ＲＥ＝１）のいずれかの状態である。
【００４９】
まず、特に制限はされないものの、ＤＴＣ動作によるＳＦＣＲ設定（モード制御）によってＣＭＤビットを１にセットしてコマンド受信状態ＳＴ２１にする。コマンド受信が完了すると、ＤＴＣ１２によるモード制御を待つ設定判定／待ち状態ＳＴ２２になる。
【００５０】
このモード制御によってデータ受信状態ＳＴ２３、データ送受信状態ＳＴ２４、データ送信状態ＳＴ２５のいずれかに遷移する。ＴＤビットを１にセットするとデータ受信状態ＳＴ２３に、ＲＤビットを１にセットするとデータ送信状態ＳＴ２５に、ＴＤビットおよびＲＤビットのいずれも１にセットしない（０にクリアする）とデータ送受信状態ＳＴ２４に遷移する。所要のデータ受信、データ送受信、データ送信を行うと、ＤＴＣ１２によるモード制御を待つ設定判定／待ち状態ＳＴ２６になる。モード制御によってＣＭＤビットを１にセットして、コマンド受信状態ＳＴ２１に遷移する。なお、動作イネーブル状態ＳＴ２では、送受信の方式やフォーマットの変更は行わないようにする。
【００５１】
（ＩＮＴ）
図５は図１Ａの割り込みコントローラ（ＩＮＴ）の構成を示すブロック図である。ＭＣＵ１０の割り込み要因には、内部割り込み、外部割り込みの２種類があり、それぞれ割り込み要因フラグを有する。ここでは、代表的にＳＣＩ１８からの内部割り込み要因のみを示している。
【００５２】
割り込みの要因フラグは、ＳＣＩ１８と同様に、タイマ１７、アナログ１９の機能ブロックが所定の状態になったときに、または、ＭＣＵ１０の外部割り込み入力端子が所定の状態になったときに、１にセットされる。割り込み要因フラグが１にセットされ、対応する割り込み許可ビットが１にセットされていると、ＩＮＴ１３に割り込み要求される。
【００５３】
この割り込み要求（ＩＮＴＲＥＱ）は、割り込み／ＤＴＣ判定回路１３１に入力される。割り込み／ＤＴＣ判定回路１３１には、さらにＤＴＣ許可レジスタ（ＤＴＥＲ）１３２の内容が入力され、割り込み／ＤＴＣ判定回路１３１は、割り込みが要求されたとき、ＤＴＣ１２を起動するか、ＣＰＵ１１に割り込みを許可するかを選択する。割り込み／ＤＴＣ判定回路１３１は、ＤＴＣ許可レジスタ１３２の当該割り込み要因に対応したＤＴＥビットが１にセットされていると、ＤＴＣ１２への起動を要求し、ＣＰＵ１１への割り込みを要求しない。割り込み／ＤＴＣ判定回路１３１は、ＤＴＣ許可レジスタ１３２のＤＴＥビットが０にクリアされていると、ＣＰＵ１１への割り込みを要求し、ＤＴＣ１２への起動を要求しない。
【００５４】
割り込み／ＤＴＣ判定回路１３１の出力は、ＣＰＵ１１への割り込み要求とＤＴＣ１２への起動要求が独立にそれぞれ優先順位・マスクレベル判定回路１３３と優先順位判定回路１３４とに入力される。ＣＰＵの優先順位判定・マスクレベル判定回路１３３は、プライオリティレジスタ、割り込みマスクレベルなどに従って制御される。
【００５５】
ＣＰＵ１１への割り込み要求、ＤＴＣ１２への起動要求のそれぞれについて、複数の割り込み要求が発生している場合に、優先順位・マスクレベル判定回路１３３および優先順位判定回路１３４はそれぞれ優先順位を判定する。この判定の結果、優先順位の最高のものが選択され、ベクタ番号が生成される。優先順位・マスクレベル判定回路１３３はＣＰＵ割り込み要求（ＣＰＵＩＮＴ）とベクタ番号（ＶＥＣ）を出力し、優先順位判定回路１３４はＤＴＣ起動要求（ＤＴＣＲＥＱ）とＤＴＣベクタ番号（ＤＴＣＶＥＣ）を出力する。
【００５６】
ＤＴＣ起動要求（ＤＴＣＲＥＱ）はＤＴＣ１２に入力され、またＤＴＣベクタ番号（ＤＴＣＶＥＣ）はラッチ回路１３５に入力される。ＤＴＣ動作開始信号（ＤＴＣＳＴＡ）およびＤＴＣ動作終了信号（ＤＴＣＥＮＤ）がＤＴＣ１２から出力され、ラッチ回路１３５に入力される。すなわち、ＤＴＣ１２が動作を開始すると、ＤＴＣ動作開始信号（ＤＴＣＳＴＡ）が活性状態になり、ラッチ回路１３５はＤＴＣベクタ番号（ＤＴＣＶＥＣ）のラッチおよび保持を行う。そして、ＤＴＣ１２のデータ転送が終了してＤＴＣ動作終了信号（ＤＴＣＥＮＤ）が活性状態になり、ラッチ回路１３５のラッチは解除される。
【００５７】
また、ＤＴＣベクタ番号（ＤＴＣＶＥＣ）とＤＴＣ動作終了信号（ＤＴＣＥＮＤ）はデコーダ回路１３６に入力され、対応する割り込み要因フラグ（例えばＳＣＩ１８のＴＤＲＥ，ＲＤＲＦ，ＯＲＥＲ）に対してＤＴＣ１２からの割り込み要因クリア信号（ＩＮＴＣＬＲ）またはＤＴＥクリア信号（ＤＴＥＣＬＲ）が活性状態になって、割り込み要因フラグまたはＤＴＥビットがクリアされる。
【００５８】
所要の割り込み要因で、ＤＴＣ１２を起動する場合、ＣＰＵ１１は予め、データ転送情報などをＲＡＭ１５の所要のアドレスにライトするとともに、当該割り込みの割り込み許可ビット（例えばＳＣＩ１８のＴＩＥ，ＲＩＥ）と、ＤＴＣ許可レジスタ１３２の当該割り込み要因に対応したＤＴＥビットを１にセットしておく。
【００５９】
この状態で当該割り込み要因フラグが１にセットされると、ＤＴＣ１２が起動される。ＤＴＣ１２が所定のデータ転送などの動作を実行している状態では、ＤＴＣ１２は割り込み要因クリア信号（ＩＮＴＣＬＲ）によってデータ転送毎に当該割り込み要因フラグを０にクリアする。このとき、ＣＰＵ１１に割り込みは要求されない。
【００６０】
所定のデータ転送などを終了した場合、ＤＴＣ１２はＤＴＥクリア信号（ＤＴＥＣＬＲ）によって動作終了時にＤＴＥビットを０にクリアする。このとき、当該割り込み要因フラグは１に保持され、ＤＴＥビットが０にクリアされているので、ＣＰＵ１１に割り込みが要求される。ＣＰＵ１１は、所定のデータ転送の終了などに対応した処理を実行するとともに、データ転送情報やＤＴＥビットの再設定を行う。
【００６１】
（ＤＴＣ）
図６は図１ＡのＤＴＣのデータ転送情報（転送情報セット）を示す図である。ＤＴＣ１２のデータ転送情報は、モードレジスタ（ＭＲ）、データレジスタ（ＤＲ）、第１および第２ソース（転送元）アドレスレジスタ（ＳＡＲ１、ＳＡＲ２）、デスティネーション（転送先）アドレスレジスタ（ＤＡＲ）、転送カウントレジスタ（ＣＲ）からなる。
【００６２】
ＭＲに保持した内容によって、この内の必要なものが使用される。ＣＲは、ブロック転送カウントレジスタ（ＢＴＣＲ）、転送カウントレジスタ（ＴＣＲ）に分割され、ＴＣＲは８ビットずつ上位（ＴＣＲＨ）、下位（ＴＣＲＬ）に分割されている。後述のデータ転送モードに従って動作する。これらのレジスタ（ＭＲ、ＣＲ）は、１組分の回路がＤＴＣ１２の内部に存在し、特に制限はされないものの、ＣＰＵ１１のアドレス空間上には存在しない。これらに格納されるべきデータ転送情報は、必要組数がＣＰＵ１１のアドレス空間上の、ＲＡＭ１５などの所定のデータ転送情報アドレス領域に配置される。
【００６３】
モードレジスタ（ＭＲ）のビット構成は以下の通りである。
ビット３１〜１６は、データ転送モードの設定と、テーブル参照用の入力データの指定を行う。ビット１５〜０は、テーブル参照用のデータ転送機能のテーブル参照の指定と、通常データ転送機能のデータ転送の指定を行う。
【００６４】
ビット３１は、ＴＬＵビットであり、通常データ転送またはテーブル参照用のデータ転送機能を選択する。ＴＬＵビットが０にクリアされた場合は、通常データ転送を行う。データ転送情報はＭＲ、ＳＡＲ２、ＤＡＲ、ＣＲ（３２ビット×４本）とされる。通常データ転送の説明において、ハードウェアとしてのＳＡＲ２を、データ転送情報としてはＳＡＲと記す。ＴＬＵビットが１にセットされた場合は、テーブル参照モードである。
【００６５】
ビット３０は、ＢＲＭビットであり、ＴＬＵビットが１にセットされた場合に有効になり、分岐モードを指定する。データ転送情報はＭＲ、ＳＡＲ１、ＳＡＲ２、ＤＡＲ（３２ビット×４本）とされる。ＣＲは０とみなす。ＤＴＣ１２は、ＳＡＲ１で指定したアドレスからリードしたデータに基づき、ＳＡＲ２で指定したテーブルを参照する。ＤＴＣ１２は、テーブルからリードしたデータを、ＤＡＲで指定した転送先アドレスにライトする。
【００６６】
ビット２７は、ＭＤＣＥビットである。ＤＴＣ１２は、ＭＤＣＥビットが１にセットされた状態で、ＣＲ＝０のデータ転送を行うと、モード制御信号（ＭＤＣ）を出力する。
【００６７】
ビット２６〜２４は、ＭＤＣ［２：０］ビットである。ＴＬＵビットが０にクリアされ、ＭＤＣＥビットが１にセットされた状態で、ＣＲ＝０のデータ転送時に、モード制御信号（ＭＤＣ）を指定する。ＭＤＣ［２］ビットがＣＭＤビットに、ＭＤＣ［１］ビットがＴＤビットに、ＭＤＣ［０］ビットがＲＤビットに反映されるようにする。ＤＴＣ１２は、ＴＬＵビットおよびＭＤＣＥビットがいずれも１にセットされた状態では、ＳＡＲ２で指定したテーブルからリードしたデータに基づき、モード制御信号（ＭＤＣ）を出力する。
【００６８】
ビット２２〜２０は、ＳＦ［２：０］ビットであり、入力データの左シフトを８〜０ビットで指定する。
【００６９】
ビット１７、１６はＩＳｚ［１：０］ビットであり、入力データのリードをバイトサイズ、ワードサイズ、ロングワードサイズのいずれで行うかを選択する。
【００７０】
ビット１５、ビット１４は、ＳＭ１、ＳＭ０ビットであり、データ転送後にＳＡＲをインクリメントするか、デクリメントするか、固定にするかを指定する。
【００７１】
ビット１３、ビット１２は、ＤＭ１、ＤＭ０ビットであり、データ転送後にＤＡＲをインクリメントするか、デクリメントするか、固定にするかを指定する。
【００７２】
ビット１１、ビット１０は、ＴＭＤ１、ＴＭＤ０ビットであり、データ転送モードを選択する。ＴＭＤ１、ＴＭＤ０ビットを００にするとノーマルモードとなる。このノーマルモードでは、１回の起動で、ＳＡＲで示されるアドレスからＤＡＲで示されるアドレスへ１回のデータ転送を行う。この後、ＳＭ１、ＳＭ０、ＤＭ１、ＤＭ０ビットの指定に基づいてＳＡＲ、ＤＡＲの操作が行われ、ＣＲがデクリメントされる。これを起動要因が発生する毎に、ＣＲで指定された回数だけ繰り返す。そして、ＣＲで指定された回数のデータ転送が終了すると、ＤＴＣ動作が禁止され、起動要因となった割り込みがＣＰＵ１１に要求される。ＴＭＤ１、ＴＭＤ０ビットを０１にするとリピートモードとなる。ＴＭＤ１、ＴＭＤ０ビットを１０にするとブロック転送モードとなる。リピートモード、ブロック転送モードは、公知の技術で実現できる。
【００７３】
ビット９はＤＩＲビットであり、転送元または転送先のいずれをリピート領域、ブロック領域とするかを選択する。
【００７４】
ビット７、６はＳｚ１、Ｓｚ０ビットであり、１回のデータ転送をバイトサイズ、ワードサイズ、ロングワードサイズのいずれで行うかを選択する。
【００７５】
ビット２はＣＲＥビットであり、ＣＲＥビットを０にクリアした場合は、ＤＴＣ起動要求（ＤＴＣＲＥＱ）に応じて、無制限にＤＴＣ１２の動作を行う。ノーマルモードの場合はＣＲを使用しない。ＣＲＥビットを１にセットした場合は、ＣＲに初期設定した値に応じて、ＤＴＣ１２の動作を行う。
【００７６】
ビット１はＮＸＴＥ１ビットであり、１つの起動要因に対してデータ転送を終了するか、次のデータ転送を行うかを選択する。このＮＸＴＥ１ビットを０にクリアした場合、データ転送情報リードおよびデータ転送後、データ転送情報をライトしてＤＴＣの動作を終了する。また、このＮＸＴＥ１ビットを１にセットした場合、データ転送情報リードおよびデータ転送後、データ転送情報をライトして、さらに連続したアドレスからデータ転送情報をリードして、このデータ転送情報で指定されるデータ転送を行い、データ転送情報をライトする。これをチェイン転送と呼ぶ。ビット０はＮＸＴＥ０ビットであり、ＣＲが０になったときに、チェイン転送を行うかを指定する。
【００７７】
図７は図１ＡのＤＴＣの構成を示すブロック図である。ＤＴＣ１２はデータ転送制御ブロック（ＤＴＣＣＮＴ）１２１、バスインタフェース（ＢＩＦ）１２２、ベクタ生成ブロック（ＶＧ）１２３、ベクタアドレスレジスタ（ＶＡＲ）１２４および演算器（ＡＬＵ）１２Ａを備える。また、ＤＴＣ１２はモードレジスタ（ＭＲ）、第１ソースアドレスレジスタ（ＳＡＲ１）、第２ソースアドレスレジスタ（ＳＡＲ２）、デスティネーションアドレスレジスタ（ＤＡＲ）およびデータ転送カウンタ（ＣＲ）を備える。
【００７８】
ＤＴＣＣＮＴ１２１は、ＩＮＴ１３からのＤＴＣ転送要求（ＤＴＣＲＥＱ）およびＭＲの内容に基づき、ＤＴＣ１２の制御を行う。
【００７９】
ＢＩＦ１２２は、ＤＴＣ内部バス１２Ｂと、ＭＣＵ内部バス１Ｂとのインタフェースを行う。このインタフェースには、バスリクエスト、バスアクノレジ、バスコマンド、ウェイト、アドレス、データなどを含む。また、ＢＩＦ１２２は、データ転送制御ブロック（ＤＴＣＣＮＴ）１２１が転送データの確認を行うのにも使用される。
【００８０】
ＶＧ１２３は、ＩＮＴ１３から与えられる割込みＤＴＣベクタ番号（ＤＴＣＶＥＣ）に従って、ベクタアドレスを生成する。例えば、ＤＴＣＶＥＣを４倍などとし、所定のオフセットを加算する。
【００８１】
ＶＡＲ１２４は、ＶＧ１２３で生成されたベクタアドレスが指し示すＲＡＭ１５の領域からリードしたデータ転送情報の先頭アドレスを格納する。
【００８２】
ＭＲ、ＳＡＲ１、ＳＡＲ２、ＤＡＲ、ＣＲは、ＶＡＲ１２４に格納されたデータ転送情報の先頭アドレスが指し示すＲＡＭ１５の領域から順次リードしたデータ転送情報を格納する。
【００８３】
ＡＬＵ１２Ａは、論理演算、シフト、算術演算などの機能を持ち、所定の順序で、これらの演算の複数を実行にする。
【００８４】
ＤＴＣ内部バス１２Ｂは、図示はされないものの、複数のバスを持っており、ＳＡＲ１、ＳＡＲ２、ＤＡＲ、ＣＲの複数の内容を、ＡＬＵ１２Ａに与えて演算できるようにする。これらによって、リピートモードやブロック転送モードの演算を行う。リピートモード、ブロック転送モードのデータ転送動作の内容については、公知の技術で実現できるので、詳細な説明は省略する。
【００８５】
ＩＮＴ１３からＤＴＣ起動要求信号（ＤＴＣＲＥＱ）が与えられると、ＤＴＣ１２は動作を開始する。ＤＴＣＣＮＴ１２１は、ＤＴＣ１２が動作を開始すると、ＤＴＣ動作開始信号（ＤＴＣＳＴＡ）を活性状態にする。ＤＴＣＣＮＴ１２１は、データ転送を行うとき、このバスサイクルに応じて、アクノレジ信号（ＡＣＫ）を活性化する。また、ＤＴＣＣＮＴ１２１は、転送カウンタ（ＣＲ）が０のとき、かつＭＲの設定に従い、モード制御信号（ＭＤＣ）を所定の状態にし、ＳＣＩ１８のＳＦＣＲの設定を行う。ＤＴＣＣＮＴ１２１は、割り込み要因クリア信号（ＩＮＴＣＬＲ）またはＤＴＥクリア信号（ＤＴＥＣＬＲ）を活性状態にし、起動要因となった割り込み要因フラグ又はＤＴＥビットをクリアし、動作を終了する。ＤＴＣＣＮＴ１２１は、ＤＴＣ１２が動作を終了すると、ＤＴＣ動作終了信号（ＤＴＣＥＮＤ）を活性状態にし、停止状態に戻る。
【００８６】
＜応用例＞
図８Ａは応用例に係るマイクロコンピュータシステムの構成を示すブロック図である。図８Ｂは図８Ａのマイクロコンピュータシステムの接続関係を示すブロック図である。マイクロコンピュータシステム１は、マスタＭＣＵ１０Ｍ、スレーブＭＣＵ１０Ｓ、モータ２０、モータ２０の位置を検出するエンコーダ３０を含む。マイクロコンピュータシステム１は、例えばカメラシステムであり、カメラマスタＭＣＵ１０Ｍはカメラボディ用ＭＣＵであり、スレーブＭＣＵ１０Ｓはカメラレンズ用ＭＣＵである。
【００８７】
実施例に係るＭＣＵ１０は、マスタＭＣＵ１０ＭおよびスレーブＭＣＵ１０Ｓに適用される。スレーブＭＣＵ１０Ｓは、焦点モータ（Ｍ）２０の駆動用のタイマ１７Ｆ、焦点モータ２０の位置を検出するためのエンコーダ（ＥＮＣＯＤＥＲ）の入力用のタイマ１７Ｄ、インターバルタイマ機能を持つタイマ１７Iを使用するものとする。また、各種設定のスイッチ（ＳＷＩＴＣＨ）などを、入出力ポート（Ｉ／Ｏ）１Ａで入力する。
【００８８】
図８Ｂに示すように、マスタＭＣＵ１０ＭのＳＣＩ１８、スレーブＭＣＵ１０ＳのＳＣＩ１８はクロック同期式モードの３本およびステータスを示す入出力ポートの１本の信号線でインタフェースを行う。マスタＭＣＵ１０ＭのＴＸＤを出力する端子１８Ａ、ＲＸＤを入力する端子１８Ｂ、ＳＣＫを出力する端子１８ＣおよびＳＴを入力する端子１８Ｄのそれぞれが、スレーブＭＣＵ１０ＳのＲＸＤを入力する端子１８Ｂ、ＴＸＤを出力する端子１８Ａ、ＳＣＫを入力する端子１８ＣおよびＳＴを出力する端子１８Ｄに接続される。マスタＭＣＵ１０Ｍが同期クロック（ＳＣＫ）を出力し、スレーブＭＣＵ１０Ｓがステータス（ＳＴ）を出力する。
【００８９】
（通信動作の第１の例）
図９は図８Ａのマイクロコンピュータシステムにおける通信動作の第１の例を示すタイミング図である。通信動作の第１の例はマスタ送信／スレーブ受信の場合である。図９において、網掛け部が、スレーブＭＣＵ１０ＳのＳＣＩ１８のモード制御を行う、ＤＴＣ１２の動作を示す。
【００９０】
まず、マスタＭＣＵ１０ＭおよびスレーブＭＣＵ１０ＳはそれぞれのＳＣＩ１８のレジスタに送受信動作（ＴＥ＝１、ＲＥ＝１）として初期設定を行う（タイミングＴ１）。
【００９１】
マスタＭＣＵ１０Ｍは、スレーブＭＣＵ１０Ｓのステータス（ＳＴ）出力を入力して、これがビジー（ＢＵＳＹ）状態である場合は、送信を待機する。送信データ（コマンド）が設定され、ステータス（ＳＴ）入力がレディ（ＲＥＡＤＹ）状態になると、マスタＭＣＵ１０Ｍは、コマンド（ＣＭＮＤ）を送信する。このとき、マスタＭＣＵ１０ＭはＲＤビットを１にセットし、受信データを無視するようにする。
【００９２】
スレーブＭＣＵ１０Ｓは、ＣＭＤビットを１にセットし、ＴＤビットを１にセットしてコマンド受信に設定する（タイミングＴ１）。送信データエンプティ割り込み要求（ＴＸＩ）のセットは抑止され、送信ＦＩＦＯ１８７へのデータ設定を行わず、送信データ（ＴＸＤ）は、例えばハイレベルに固定され、ダミー（ＤＵＭＹ）データが出力される。受信が開始されると、ステータス（ＳＴ）出力をビジー状態にする。ＳＣＩ１８は、コマンドの受信が完了されると、コマンド受信完了割り込み要求（ＣＲＸＩ）を発生し、ＩＮＴ１３はＤＴＣ１２にＤＴＣ起動要求（ＤＴＣＲＥＱ）を発生する。ＤＴＣ１２は、コマンドの受信データをリードして、これをＳＡＲ２に加算して、ＲＡＭ１５のテーブル領域をリードする。この内容は、ＤＡＲで指定される送信データエンプティ（送信データ転送）、受信データフル（受信データ転送）によるデータ転送起動要求のＤＴＣベクタ（ＴＸＩベクタ、ＤＲＸＩベクタ）を設定する。本例では、ロングワード２個をブロック転送するものとする。２個のロングワードの一方が所定のデータの場合（例えば、００００００００の場合）、対応するＴＤビットまたはＲＤビットを１にセットするように、モード制御信号（ＭＤＣ）を活性化する。具体的には、送信データエンプティのＤＴＣベクタが００００００００の場合、ＴＤビットを１にセットし、送信抑止とする。受信データフルのＤＴＣベクタが００００００００の場合、ＲＤビットを１にセットし、受信抑止とする。ＣＭＤビットは０にクリアする。このモード制御信号（ＭＤＣ）に従い、ＳＣＩ１８はＳＦＣＲの設定を行って、データ受信またはデータ送信に切り替えるとともに、ステータス（ＳＴ）出力をビジー状態にする。この場合、先のコマンドに応じて、マスタの送信／スレーブの受信、スレーブの送信／マスタの受信、マスタ／スレーブの送受信の３つの態様がある。本例では、マスタの送信／スレーブの受信を行う場合であるので、マスタはＲＤビットを１にセットして受信抑止（データ送信）に設定し、スレーブはＴＤビットを１にセットして送信抑止（データ受信）に設定する（タイミングＴ２）。
【００９３】
マスタＭＣＵ１０Ｍはコマンド送信完了後、送信データが設定され、ステータス（ＳＴ）入力がレディ状態になると、コマンドに対応した、所定の数のデータを送信する。
【００９４】
スレーブＭＣＵ１０Ｓは、データ受信の開始時に、ステータス（ＳＴ）出力をビジー状態にする。データの受信が完了に従い、受信データフル（受信データ転送）データ転送起動要求を行い、ＤＴＣ１２を起動する。ＤＴＣ１２は受信したデータをＲＡＭ１５の所定のアドレスに転送する。ＣＲにはコマンドに対応した、所定の数のデータを設定しておき、これに従った個数のデータ転送を行い、ＣＲが０になると、ＭＲで指定したモード制御信号（ＭＤＣ）を出力し、ＳＣＩ１８のモード制御状態を遷移させる（タイミングＴ３）。ＳＣＩ１８はこれによって、ステータス（ＳＴ）出力をレディ状態にする。ＣＲが０のデータ転送が完了すると、ＣＰＵ１１に割り込みを要求する。
【００９５】
図１０は図９の第１の例におけるコマンド受信完了のためのデータ転送を示す図である。スレーブＭＣＵ１０Ｓのコマンド受信完了のためのデータ転送においては、データ転送情報を以下のようにＣＰＵ１１が設定する。
【００９６】
ＭＲのＴＬＵビット、ＢＲＭビット、ＭＤＣＥビットをいずれも１にセットする。ＳＦ［２：０］ビットは＋４を指定する。ＩＳｚ［１：０］ビットは、コマンドに対応したバイトサイズを指定する。ＳＭ１、ＳＭ０ビットは、ＳＡＲ２固定を指定する。ＤＭ１、ＤＭ０ビットは、ＤＡＲ固定を指定する。ＴＭＤ１、ＴＭＤ０ビットはノーマルモードを指定する。ＳＡＲ１は受信ＦＩＦＯ１８６のアドレスを、ＳＡＲ２は、データ送信エンプティ転送要求、データ受信フル転送要求のＤＴＣベクタのテーブル領域の先頭アドレスを指定する。ＤＡＲは、データ送信エンプティ転送要求、データ受信フル転送要求のＤＴＣベクタアドレスを指定する。これらは図１０のデータ転送情報Ｃとして格納される。
【００９７】
図１０において、細線の矢印はアドレスの指定を、二重線の矢印はデータのリード／ライトを示す。
（Ａ）コマンド受信完了によって、ＤＴＣが起動されると、対応するベクタ領域（ＣＲＸＩ割込みのベクタアドレスが指定する領域（ＣＲＸＩベクタ））から、データ転送情報の先頭アドレスをリードする。
（Ｂ）このアドレスに基づいて、データ転送情報アドレス領域からデータ転送情報Ｃをリードする。このデータ転送情報Ｃは、ＭＲ、ＳＡＲ１、ＳＡＲ２、ＤＡＲに格納すべき内容である。ＳＡＲ１には受信ＦＩＦＯ１８６のアドレスが、ＳＡＲ２にはテーブル領域の先頭アドレスが、ＤＡＲにはＴＸＩベクタアドレスが格納される。
（Ｃ）まず、ＳＡＲ１で指定した受信ＦＩＦＯ１８６から、ＩＳｚビットで指定したバイトサイズの、コマンドをリードする。リードしたデータは、ＡＬＵ１２Ａで、ＳＦ［２：０］ビットで指定した４ビットの左シフトし、この結果を、ＳＡＲ２に加算して転送元アドレスとして使用する。
（Ｄ）ＳＡＲ２で指定した、テーブル領域の転送元アドレスから転送データをリードする。本例では、ＴＸＩベクタｎ、ＤＲＸＩベクタｎをリードする。
（Ｅ）これをＤＡＲで示す、ＴＸＩベクタおよびＤＲＸＩベクタ領域へのライトを行う。同時に、前記の通り、モード制御信号（ＭＤＣ）を出力する。
例えば、ＤＲＸＩベクタｎは所要のデータ転送情報ｍなどを示す内容とする。
【００９８】
これによって、コマンドに対応した、ＴＸＩおよびＤＲＸＩデータ転送に応じた、データ転送情報を（データ転送情報ｍ、ｍ１、ｍ２、ｍ３などから）選択可能にできる。
【００９９】
なお、コマンドはバイトサイズの場合、最大２５６通りを指定することができる。後続するデータの有無やデータ長、データの種類などを定義する。例えば、後続するデータを、スレーブＭＣＵ１０Ｓのタイマ１７Ｄ，１７Ｆ，１７ＩやＩ／Ｏポート１Ａへライトすることを指示したり、スレーブＭＣＵ１０Ｓのタイマ１７Ｄ，１７Ｆ，１７ＩやＩ／Ｏポート１Ａの所望のデータを送信することを指示したりする。かかるコマンドは、当該マイクロコンピュータシステム１に適切なものを、任意に定義することができる。
【０１００】
図１１は図９の第１の例における受信データフル（受信データ転送）のためのデータ転送を示す図である。スレーブＭＣＵ１０Ｓの受信データフル（受信データ転送）のためのデータ転送においては、データ転送情報を以下のように設定する。
【０１０１】
ＭＲのＴＬＵビット、ＢＲＭビットを０にクリアし、ＭＤＣＥビットを１にセットする。Ｓｚ［１：０］ビットは、コマンドに対応したバイトサイズを指定する。ＳＭ１、ＳＭ０ビットは、ＳＡＲ固定を指定する。ＤＭ１、ＤＭ０ビットは、ＤＡＲインクリメントを指定する。ＴＭＤ１、ＴＭＤ０ビットはノーマルモードを指定する。ＳＡＲは受信ＦＩＦＯ１８６のアドレスを、ＤＡＲはデータ受信用のＲＡＭ１５のアドレスを、ＣＲはコマンドに対応したデータ数を指定する。これらは図１１のデータ転送情報ｍとして格納される。
（Ａ）受信データフル（受信データ転送）によって、ＤＴＣ１２が起動されると、対応するベクタ領域（ＤＲＸＩ割込みのベクタアドレスが指定する領域（ＤＲＸＩベクタ））から、データ転送情報先頭アドレスをリードする。これはコマンド受信完了によるデータ転送によって、所要の内容に更新され、データ転送情報ｍを示すようにされている。
（Ｂ）このアドレスに基づいて、データ転送情報アドレス領域からデータ転送情報ｍをリードする。このデータ転送情報は、ＭＲ、ＳＡＲ、ＤＡＲ、ＣＲの内容である。ＳＡＲには受信ＦＩＦＯ１８６のアドレスが、ＤＡＲにはＲＡＭ１５のアドレスが格納される。
（Ｃ）まず、ＳＡＲで指定した受信ＦＩＦＯ１８６から、Ｓｚビットで指定したバイトサイズの、受信データをリードする。リードした受信データは、ＤＡＲで指定したＲＡＭ１５などにライトする。これをＣＲで指定した回数繰り返し、ＣＲ＝０となると、前記の通り、モード制御信号（ＭＤＣ）を出力する。
【０１０２】
（通信動作の第２の例）
図１２は図８Ａのマイクロコンピュータシステムにおける通信動作の第２の例を示すタイミング図である。通信動作の第２の例では、コマンドに対応したデータ転送が、スレーブの送信／マスタの受信の場合である。マスタＭＣＵ１０ＭおよびスレーブＭＣＵ１０Ｓはそれぞれ送受信動作として初期設定を行うこと、コマンドの送信／受信は、上述の第１の例と同様である。
【０１０３】
マスタＭＣＵ１０Ｍは、所要のデータの数に相当する同期クロックを出力するため、ＴＤビットを１にセットして、例えば送信データをハイレベルに固定してダミーのデータを送信する。
【０１０４】
スレーブＭＣＵ１０Ｓは、コマンド受信完了時のＤＴＣ１２のモード制御によって、ＲＤビットを1にセットしてデータ送信に設定するようにする（タイミングＴ２）。すなわち、ＲＡＭ１５のテーブル上の送信データエンプティのＤＴＣベクタを００００００００以外の所定のベクタにし、受信データフルのＤＴＣベクタを００００００００にする。
【０１０５】
スレーブＭＣＵ１０Ｓは、コマンドに対応した、所定の数のデータを送信するため、送信データエンプティ（送信データ転送）データ転送要求に従い、ＤＴＣ１２Ｓを起動する。ＤＴＣ１２は、送信すべきデータをＲＡＭ１５の所定のアドレスから送信ＦＩＦＯ１８７に転送する。データ送信の開始時に、ステータス（ＳＴ）出力をビジー状態にする。ＣＲで示される、予め決められた個数のデータ転送を行い、ＣＲが０になると、ＭＲで指定したモード制御信号（ＭＤＣ）を出力し、ＳＣＩ１８Ｓのモード制御状態を遷移させる（タイミングＴ３’）。このとき、モードの変更、またはＳＦＣＲの変更は直ちに反映されず、送信データの出力完了後に（送信ＦＩＦＯ１８７および送信部１８５にデータがなくなった状態で）反映する（タイミングＴ３）。言い換えると、モード制御入力を送受信に同期させて反映させる。ＳＣＩ１８Ｓはステータス（ＳＴ）出力をレディ状態にする。ＣＲが０のデータ転送が完了すると、ＳＣＩ１８ＳはＣＰＵ１１に割り込みを要求する。
【０１０６】
送信データエンプティ（送信データ転送）のためのデータ転送においては、データ転送情報を以下のように設定する。
【０１０７】
ＭＲのＴＬＵビット、ＢＲＭビットを０にクリアし、ＭＤＣＥビットを１にセットする。Ｓｚ［１：０］ビットは、コマンドに対応したバイトサイズを指定する。ＳＭ１、ＳＭ０ビットは、ＳＡＲインクリメントを指定する。ＤＭ１、ＤＭ０ビットは、ＤＡＲ固定を指定する。ＴＭＤ１、ＴＭＤ０ビットはノーマルモードを指定する。ＳＡＲはデータ送信用のＲＡＭ１５Ｓのアドレスを、ＤＡＲは送信ＦＩＦＯ１８７のアドレスを、ＣＲはコマンドに対応したデータ数を指定する。
【０１０８】
（通信動作の第３の例）
通信動作の第３の例であるマスタ／スレーブの送受信の場合は、図示を省略するが、スレーブＭＣＵ１０Ｓは、ＴＤビット、ＲＤビットをいずれも０にクリアし、ＤＴＣ１２が送信データ完了によるデータ転送時にはＳＦＣＲの変更の制御を行わず、受信データ完了によるデータ転送時にはＳＦＣＲの変更の制御を行うようにする。すなわち、ＲＡＭ１５のテーブル上の送信データエンプティ、受信データフルのＤＴＣベクタを、いずれも００００００００以外の所定のベクタにする。
【０１０９】
以上の実施例によれば以下の作用効果を得るものである。
（１）送信および受信がイネーブルとされた状態（ＴＥ＝ＲＥ＝１）において（送受信同時動作を指定したまま）、ＴＤビットまたはＲＤビットを１に設定することにより、送信または受信の一方の動作を抑止可能にする。送信動作抑止の場合は、送信データの用意や送信開始の指定を必要とせず、同期クロック入力に対応して、任意データの送信と、受信動作を可能にする。受信動作抑止の場合は、受信した内容を無視しオーバランエラーも検出しないようにし、割り込み要求やデータ転送起動要求を行わないようにする。これにより、送受信同時動作かつ同期クロック入力での動作イネーブル状態において、一時的に、換言すれば、設定変更の待機時間などを不要としながら、送信動作抑止、受信動作抑止が可能になる。無駄な送信データの準備や、無駄な受信データの処理などを不要とし、処理を効率化できる。ＴＥビットまたはＲＥビットを切り替えると、ＳＣＩ全体の動作との整合を図る必要があるのに対し、送受信同時動作の基本的な動作は変更せず、ＴＤビットおよびＲＤビットの制御対象を限定することで、論理を簡略化することができる。不所望の状態に陥る可能性を低減することができる。
（２）受信動作において、コマンドを受信する動作であるか、データを受信する動作であるかを指定可能にし、これらの割り込み要求またはデータ転送起動要求を別々に要求するようにする。これによって、データ転送装置の起動要因を専用にすることが可能になる。コマンド受信する動作時は、送信動作抑止とすることにより、送信データの用意を不要にする。データ受信する動作時では、送信動作の抑止を指定可能にする。コマンド受信完了の割り込み要求、データ受信完了の割り込み要求を分離することにより、いずれかの判断を行うことなく、必要な処理を直ちに実行することができる。コマンド受信完了の割り込み要求に対してはデータ転送装置によるデータ転送を行い、データ受信完了の割り込み要求に対してはＣＰＵによる割り込み処理を行うなどの、好適な処理方法の選択を効率的にすることができる。
【０１１０】
（３）コマンド受信、データ受信のみ、データ送信のみ等のモードおよび起動要因に応じたデータ転送装置の動作によって、モードを切り替える。例えば、データ送信またはデータ受信に対応した、データ転送装置によるデータ転送の完了時に、コマンド受信に切り替える。
（４）モードに対応したステータスを出力可能にする。コマンド受信が指定された状態での受信動作によって、外部へのステータス出力を第２状態（ビジー）にする。コマンド受信完了によるデータ転送装置の動作によって、モードの切り替えを行ったときに、外部へのステータス出力を第１状態（レディ）にする。また、データ送信またはデータ受信動作によって、ステータス出力を第２状態（ビジー）にし、これらによるデータ転送装置の動作によって、モードの切り替え（コマンド受信にモードを切り替え）たときに、第１状態（レディ）にする。
これらによって、実際の通信処理に応じたモードを実現可能にするとともに、設定変更や待機時間を減らすことができる。モードと通信動作に応じて、データ転送装置を起動し、データ転送装置の制御によって、モードを切り替えるようにして、ＣＰＵの処理を不要にし、効率化と高速化を実現することができる。データ転送装置がＣＰＵに代わって、ＳＣＩのモード制御や、コマンドの判定、データ転送を実行可能にすることで、ＣＰＵに割り込みを要求する頻度を低減したり、ＣＰＵを低消費電力状態にする期間を長くしたりすることができる。ＣＰＵが割り込み処理にあたって実行すべき、例外処理、スタックの退避・復帰操作、復帰命令の実行を不要とすることができ、プログラムの簡略化やシステムの効率化に寄与することができる。また、イベントの発生から所要の動作の実行までの時間を短縮し、いわゆる応答性を向上することができる。ＣＰＵより論理規模が小さく、かつ高速に処理を行うことができるデータ転送装置が動作し、ＣＰＵを低消費電力状態にすることで、低消費電力化を実現することができる。また、ソフトウェアの開発効率を向上することができる。
【０１１１】
マイクロコンピュータシステムのそれぞれに適切なコマンドや通信方式に、柔軟に対応することができる。換言すれば、マイクロコンピュータへ与えるデータによって、マイクロコンピュータの送受信の態様を変更可能にすることができる。
【０１１２】
以上、本発明者らによってなされた発明を実施形態、実施例および応用例に基づき具体的に説明したが、本発明は、実施形態、実施例および応用例に限定されるものではなく、種々変更可能であることはいうまでもない。
【０１１３】
本実施例では、ＳＣＩの設定完了後の動作の許可として、ＴＥビット、ＲＥビットを使用する仕様とし、これとは独立のＴＤビット、ＲＤビットを設けたが、ＳＣＩの動作イネーブルビットを、送信および受信に共通に設け、ＴＥビットおよびＲＥビットと、ＴＤビットおよびＲＤビットとの機能を併せるようにし、動作中に変更可能にしてもよい。コマンド受信および送信抑止の場合の送信出力は任意であってよいが、０または１に固定することが好ましい。ＣＭＤビットを１にセットした場合は、ＴＤビットに関わらず、送信抑止としてもよい。ＣＲＸＩ、ＤＲＸＩの割り込み要因フラグは共通のＲＤＲＦフラグとせずに、独立の割り込み要因フラグとしてもよい。ＲＤビットを１にセットしたときに、ＲＩＥビットまたはＲＤＲＦフラグを０にクリアするようにしてもよい。ＴＤビット、ＲＤビットを指定するためのロングワードデータは、データ転送情報格納領域として使用しないデータとすればよい。本実施例では００００００００としたが、これはＣＰＵのリセットベクタと共通であり、データ転送情報格納領域として使用しないことを想定したものである。データ転送格納アドレスはロングワード単位と考える場合、下位の２ビットを使用してもよい。
【０１１４】
受信ＦＩＦＯ、送信ＦＩＦＯが受信データフル（受信データ転送）、送信データエンプティ（送信データ転送）を検出するための、空きやデータ量を、制御レジスタによって変更可能にしてもよい。また、コマンド受信のときの受信完了を判定する単位も、バイトサイズ以外に選択可能にしてもよい。コマンド受信完了によるデータ転送によって、ベクタ領域を書き換えるほか、データ転送情報を書き換えるようにしてもよい。ＣＰＵによって、ＣＭＤビット、ＴＤビット、ＲＤビットを設定可能にしてもよい。任意のコマンドをＣＰＵが処理するようにし、ＣＭＤビット、ＴＤビット、ＲＤビットを設定するようにしてもよい。
【０１１５】
本実施例ではＳＣＩを例に説明したが、これに限定されるものではなく、Ｉ２Ｃ（Inter-Integrated Circuit）、ＳＰＩ（Serial Peripheral Interface）等のシリアル通信インタフェースに適用することができる。本実施例ではＤＴＣを例に説明したが、これに限定されるものではなく、ＤＭＡＣ（Direct Memory Access Controller）等のメモリとレジスタ等の間でデータを転送するものであってもよい。ＤＴＣ、割り込みコントローラの具体的な構成についても種々変更可能である。ＢＳＣや、バス権やウェイトなどのバス動作の詳細については省略したが、これらは適宜実装可能である。マスタＭＣＵ、スレーブＭＣＵの一方のみに適用してもよい。この場合、スレーブＭＣＵに適用するのが好ましい。
【０１１６】
マイクロコンピュータの構成についても限定されない。そのほかや機能ブロックなども種々変更できる。以上の説明ではマイクロコンピュータに適用した場合について説明したが、それに限定されるものではなく、その他の半導体装置、例えば、デジタルシグナルプロセッサ（ＤＳＰ）に適用することができる。
【０１１７】
＜実施態様＞
以下、実施態様について付記する。
（付記１）
同期クロックに従って送信または受信の順序的な通信を行うインタフェース回路を有する半導体装置であって、
前記インタフェース回路は、
送信状態及び受信状態の少なくとも一つの状態である動作イネーブル状態を指定する第１のレジスタと、
送信抑止または受信抑止を指定することが可能な情報を有する第２のレジスタと、
を有し
前記第１のレジスタと前記第２のレジスタの状態に基づいて情報の送信または受信の少なくとも一つの動作を決定する
半導体装置。
【０１１８】
（付記２）
同期クロックに従って、送信または受信の順序的な通信を行う第１のインタフェース回路を備える第１の半導体装置と、
前記同期クロックに従って、送信または受信の順序的な通信を行う第２のインタフェース回路を備える第２の半導体装置と、
を備えるシステムであって、
前記第２のインタフェース回路は、
送信状態及び受信状態の少なくとも一つの状態である動作イネーブル状態を指定する第１のレジスタと、
送信抑止または受信抑止を指定することが可能な情報を有する第２のレジスタと、
を有し
前記第１のレジスタと前記第２のレジスタの状態に基づいて情報の送信または受信の少なくとも一つの動作を決定する
システム。
【符号の説明】
【０１１９】
１・・・マイクロコンピュータシステム
１０・・・マイクロコンピュータ
１１・・・中央処理装置（ＣＰＵ）
１２・・・データトランスファコントローラ（ＤＴＣ）
１２１・・・データ転送制御ブロック（ＤＴＣＣＮＴ）
１２２・・・バスインタフェース（ＢＩＦ）
１２３・・・ベクタ生成ブロック（ＶＧ）
１２４・・・ベクタアドレスレジスタ（ＶＡＲ）
１２Ａ・・・演算器（ＡＬＵ）
１２Ｂ・・・ＤＴＣ内部バス
１３・・・割り込みコントローラ（ＩＮＴ）
１３１・・・割り込み／ＤＴＣ判定回路
１３２・・・ＤＴＣ許可レジスタ（ＤＴＥＲ）
１３３・・・優先順位マスクレベル判定回路
１３４・・・優先順位判定回路
１３５・・・ラッチ回路
１３６・・・デコーダ回路
１４・・・リードオンリメモリ（ＲＯＭ）
１５・・・ランダムアクセスメモリ（ＲＡＭ）
１６・・・バスコントローラ（ＢＳＣ）
１７・・・タイマ（ＴＩＭＥＲ）
１８・・・シリアルコミュニケーションインタフェース（ＳＣＩ）
１８１・・・制御レジスタ
１８２・・・モード制御部（ＳＣＩＭＤＣ）
１８３・・・送受信制御部（ＳＣＩＣＮＴ）
１８４・・・受信部
１８５・・・送信部
１８６・・・受信ＦＩＦＯ
１８７・・・送信ＦＩＦＯ
１８８・・・ボーレートジェネレータ（ＢＲＧ）
１８Ａ・・・出力端子
１８Ｂ・・・入力端子
１８Ｃ・・・入出力端子
１８Ｄ・・・入出力端子
１９・・・アナログモジュール（ＡＮＡＬＯＧ）
１Ａ・・・入出力ポート（Ｉ／Ｏ）
１Ｂ・・・ＭＣＵバス
【図１Ａ】
0006602579.tif 000002
【図１Ｂ】
0006602579.tif 000003
【図２】
0006602579.tif 000004
【図３】
0006602579.tif 000005
【図４】
0006602579.tif 000006
【図５】
0006602579.tif 000007
【図６】
0006602579.tif 000008
【図７】
0006602579.tif 000009
【図８Ａ】
0006602579.tif 000010
【図８Ｂ】
0006602579.tif 000011
【図９】
0006602579.tif 000012
【図１０】
0006602579.tif 000013
【図１１】
0006602579.tif 000014
【図１２】
0006602579.tif 000015
【図１３】
0006602579.tif 000016