(57)【要約】【課題】ステイタスの違いによって、異なるデータを転送することによって、周辺機能の動作を許可したり、周辺機能の動作を禁止することができない。【解決手段】データ転送制御回路２０２は、第１種類のコントロールデータを読み出した場合に、転送元のアドレスのデータを転送先のアドレスへ転送する。データ転送制御回路２０２は、第２種類のコントロールデータを読み出した場合に、分岐判定を実行し、判定結果に基づいて、第１の分岐先アドレスに従って第１のコントロールデータを読み出すか、あるいは、第２の分岐先のアドレスに従って第２のコントロールデータを読み出す。【選択図】図１
2014126974.tif 000002
【特許請求の範囲】
【請求項１】
第１種類および第２種類のコントロールデータを記憶する記憶部と、
割込みによって起動されるデータ転送制御回路とを備え、
第１種類のコントロールデータは、転送元のアドレスと、転送先のアドレスとを含み、
第２種類のコントロールデータは、第１のコントロールデータのアドレスである第１の分岐先アドレスと、第２のコントロールデータのアドレスである第２の分岐先アドレスとを含み、
前記データ転送制御回路は、前記第１種類のコントロールデータを読み出した場合に、前記転送元のアドレスのデータを前記転送先のアドレスへ転送し、
前記データ転送制御回路は、前記第２種類のコントロールデータを読み出した場合に、分岐判定を実行し、判定結果に基づいて、前記第１の分岐先アドレスに従って第１のコントロールデータを読み出すか、あるいは、前記第２の分岐先のアドレスに従って第２のコントロールデータを読み出す、マイクロコンピュータ。
【請求項２】
前記第１種類のコントロールデータは、チェイン転送を許可するか否かの情報を含み、
前記データ転送制御回路は、読み出した前記第１種類のコントロールデータにチェイン転送を許可する情報が含まれていた場合には、前記読み出した第１種類のコントロールデータの次のアドレスのコントロールデータを読み出す、請求項１記載のマイクロコンピュータ。
【請求項３】
前記第２種類のコントローデータは、第１の比較データと、第２の比較データのアドレスとを含み、
前記データ転送制御回路は、前記第２の比較データのアドレスから第２の比較データを読み出し、前記第１の比較データと前記読み出した第２の比較データとの比較によって分岐判定を実行する、請求項２記載のマイクロコンピュータ。
【請求項４】
前記記憶部は、前記第１の分岐先アドレスまたは前記第２の分岐先アドレスの一方が、自己のアドレスと同一である第２種類のコントロールデータを含む、請求項３記載のマイクロコンピュータ。
【請求項５】
前記データ転送制御回路は、一定回数連続して、同一の前記第２種類のコントロールデータを読み出した場合には、前記割込みの通知に基づく処理を終了する、請求項４記載のマイクロコンピュータ。
【請求項６】
前記マイクロコンピュータは、コマンドと設定データとからなるデータを受信して記憶部に記憶し、
前記記憶部は、複数個の前記第２種類のコントロールデータを含み、
各々の前記第２種類のコントロールデータの前記第１の比較データは、受信可能ないずれかのコマンドを表わし、前記第２の比較データのアドレスは前記受信したコマンドの前記記憶部内の格納アドレスである、請求項３記載のマイクロコンピュータ。
【請求項７】
前記記憶部は、第１〜第Ｎの第２種類のコントロールデータを含み、
第ｉ番目の第２種類のコントロールデータの前記第１の比較データは、第ｉ番目のコマンドを表わし、前記第１の分岐先アドレスまたは前記第２の分岐先アドレスの一方は、第（ｉ＋１）番目の第２種類のコントロールデータのアドレスである、請求項６記載のマイクロコンピュータ。
【請求項８】
前記第１〜第Ｎの第２種類のコントロールデータの前記第１の分岐先アドレスまたは前記第２の分岐先アドレスの他方で指定される第１種類のコントロールデータの転送元アドレスは、前記受信した設定データの前記記憶部内の格納アドレスである、請求項７記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータに関し、たとえば、データ転送制御回路を有するマイクロコンピュータに関する。
【背景技術】
【０００２】
ＣＰＵ（Central Processing Unit）を介さずに、データを転送する装置が知られている。
【０００３】
たとえば、特許文献１（特開２００４−２８７５９１号公報）の装置は、メモリ内でのデータ転送をコントロールするＤＴＣ（Data Transfer Controller）（９）と、外部からのイベント信号を検出し、ＤＴＣ（９）に対してイベント番号を出力するイベントカウンタ制御回路（１０）と、ＤＴＣ（９）に対してデータ転送の起動要求信号を出力する割り込み制御回路（４）と、ＲＡＭ（２）とを備える。ＤＴＣ（９）には、転送元アドレスと転送先アドレスを同一の値に設定する第１のアドレス設定手段と、これらのアドレスの一部をイベント番号に置き換える第２のアドレス設定手段と、加算器（１６）ならびにデータレジスタ（１５）からなるデータカウント手段を設けられる。
【０００４】
特許文献２（特開平７−１２９５３７号公報）の半導体集積回路装置は、データ処理装置、データ転送装置、バス制御手段およびデータ入出力手段を有する。第１、第２の記憶手段が接続可能とされ、データ処理装置、バス制御手段および第１の記憶手段が第１のバスにより相互に接続され、かつデータ転送装置、バス制御手段、第２の記憶手段およびデータ入出力手段が第２のバスにより相互に接続される。バス制御手段は第１のバスと第２のバスとを接続するか否かを選択する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２８７５９１号公報
【特許文献２】特開平７−１２９５３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、ＤＴＣやＤＭＡＣ（Direct Memory Access Controller）には、１つの起動要因で不連続の領域にまたがるデータを連続転送することが可能なチェイン転送の機能がある。チェイン転送において、データを周辺機能の設定レジスタなどへ転送することによって、周辺機能の動作を許可したり、周辺機能の動作を禁止したりすることができる。しかしながら、ステイタスの違いによって、動作を許可したり、動作を禁止したりしたい場合には、ＣＰＵがステイタスを確認して、転送するデータを決定する必要がある。したがって、消費電流を削減するために、ＣＰＵを停止させるモード（スリープモード、スタンバイモードなど）において、ステイタスの違いによって、異なるデータを転送することによって、周辺機能の動作を許可したり、あるいは周辺機能の動作を禁止したりすることができないという問題がある。
【０００７】
しかしながら、上記の特許文献１には、単にイベントをカウントする機能に関してのみ記載されている。また、上記の特許文献２は、ＤＴＣについて記載されているが、ＣＰＵを停止させるモード（スリープモード、スタンバイモードなど）において、ステイタスの違いによって、異なるデータを転送することによって、周辺機能の動作を許可したり、あるいは周辺機能の動作を禁止することができないという問題がある。
【０００８】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかであろう。
【課題を解決するための手段】
【０００９】
本発明の一実施形態では、データ転送制御回路は、第１種類のコントロールデータを読み出した場合に、転送元のアドレスのデータを転送先のアドレスへ転送する。データ転送制御回路は、第２種類のコントロールデータを読み出した場合に、分岐判定を実行し、判定結果に基づいて、第１の分岐先アドレスに従って第１のコントロールデータを読み出すか、あるいは、第２の分岐先のアドレスに従って第２のコントロールデータを読み出す。
【発明の効果】
【００１０】
本発明の一実施形態によれば、ＣＰＵを停止させるモードにおいて、ステイタスの違いによって、異なるデータを転送することができる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態のマイクロコンピュータの構成を表わす図である。
【図２】第２の実施形態のマイクロコンピュータの構成を表わす図である。
【図３】従来のコントロールデータの構成を表わす図である。
【図４】（ａ）は、本発明の実施の形態の第１種類のコントロールデータの構成を表わす図である。（ｂ）は、本発明の実施の形態の第２種類のコントロールデータの構成を表わす図である。
【図５】通常のチェイン転送の例を表わす図である。
【図６】図５のチェイン転送時のメモリマップの例を表わす図である。
【図７】分岐付きチェイン転送の例を表わす図である。
【図８】図７のチェイン転送時のメモリマップの例を表わす図である。
【図９】ノーマルモードで、かつ転送元アドレスおよび転送先アドレスの加算なしでのＤＴＣの動作を表わすフローチャートである。
【図１０】ＣＰＵによって第１の例を処理する場合のマイクロコンピュータの構成を表わす図である。
【図１１】図１０のＣＰＵによる第１の例の処理手順を表わすフローチャートである。
【図１２】ＤＴＣによって第１の例を処理する場合のマイクロコンピュータの構成を表わす図である。
【図１３】第１種類のコントロールデータを用いて、図１２のＤＴＣによって第１の例の処理をする場合の手順を表わすフローチャートである。
【図１４】図１３に示す処理時にＲＡＭ８０内に記憶されているベクタテーブルおよびコントロールデータを表わす図である。
【図１５】第１種類および第２種類のコントロールデータを用いて、図１２のＤＴＣ７５によって第１の例の処理をする場合の手順を表わすフローチャートである。
【図１６】図１５に示す処理時に、ＲＡＭ８０内に記憶されているベクタテーブルおよびコントロールデータを表わす図である。
【図１７】ＣＰＵによって第２の例を処理する場合のマイクロコンピュータの構成を表わす図である。
【図１８】受信するシリアルデータの構成を表わす図である。
【図１９】図１７のＣＰＵによる第２の例の処理手順を表わすフローチャートである。
【図２０】ＤＴＣおよびＣＰＵによって、第２の例を処理する場合のマイクロコンピュータの構成を表わす図である。
【図２１】図２０のＤＴＣおよびＣＰＵによる第２の例の処理手順を表わすフローチャートである。
【図２２】図２１に示す処理時に、ＲＡＭ９６内に記憶されているベクタテーブルおよびコントロールデータを表わす図である。
【図２３】ＤＴＣによって第２の例を処理する場合のマイクロコンピュータの構成を表わす図である。
【図２４】図２３のＤＴＣによる第２の例の処理手順を表わすフローチャートである。
【図２５】図２４に示す処理時に、ＲＡＭ９６内に記憶されているベクタテーブルおよびコントロールデータを表わす図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について、図面を用いて説明する。
［第１の実施形態］
図１は、第１の実施形態のマイクロコンピュータの構成を表わす図である。
【００１３】
このマイクロコンピュータ２０１は、ＣＰＵ２０３と、データ転送制御回路２０２と、記憶部２０４とを備える。
【００１４】
ＣＰＵ２０３は、スリープモードにおいて動作を停止する。
記憶部２０４は、第１種類のコントロールデータおよび第２種類のコントロールデータを記憶する。
【００１５】
第１種類のコントロールデータは、転送元のアドレスと、転送先のアドレスとを含む。
第２種類のコントロールデータは、第１のコントロールデータのアドレスである第１の分岐先アドレスと、第２のコントロールデータのアドレスである第２の分岐先アドレスとを含む。
【００１６】
データ転送制御回路２０２は、割り込みによって起動し、ＣＰＵ２０３を介さずにデータを転送する。
【００１７】
データ転送制御回路２０２は、第１種類のコントロールデータを読み出した場合に、転送元のアドレスのデータを転送先のアドレスへ転送する。
【００１８】
データ転送制御回路２０２は、第２種類のコントロールデータを読み出した場合に、分岐判定を実行する。データ転送制御回路２０２は、判定結果に基づいて、第１の分岐先アドレスに従って第１のコントロールデータを読み出すか、あるいは、第２の分岐先のアドレスに従って第２のコントロールデータを読み出す。
【００１９】
以上のように、本実施の形態によれば、ＣＰＵを停止させるモード（スリープモード、スタンバイモードなど）において、ステイタスの違いによって、異なるデータを転送することができる。
【００２０】
［第２の実施形態］
図２は、第２の実施形態のマイクロコンピュータの構成を表わす図である。
【００２１】
図２を参照して、このマイクロコンピュータ１は、ＣＰＵ１４と、記憶部１２と、割り込み制御回路１３と、ＤＴＣ１０と、周辺機能制御部１７とを備える。
【００２２】
ＣＰＵ１４は、スリープモードにおいて動作を停止する。
ＤＴＣ１０は、ＤＴＣ起動要因選択回路２１と、優先順位判定部２２と、ＤＴＣ起動制御部２３と、ステート管理部２４と、転送制御部２５と、アドレス制御部２６と、データバッファ２７と、コントロールレジスタ２８と、割り込み制御部２９と、割り込み許可制御部３０と、ＤＴＣ起動許可レジスタ３１と、割り込み禁止制御部３２とを備える。
【００２３】
記憶部１２は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）で構成され、コントロールデータ、ベクタテーブル、およびテンポラリデータなどを記憶する。
【００２４】
割り込み制御回路１３は、ＤＴＣ１０から周辺割込みを受けたときに、アドレスバス１６およびデータバス１５のアクセス権をＤＴＣ１０に与える。
【００２５】
周辺機能制御部１７は、複数の周辺機能を制御する。周辺機能制御部１７は、ＳＦＲ（Special Function Register）を有する。
【００２６】
ＤＴＣ起動要因選択回路２１は、周辺機能制御部１７から送られる周辺割込みのうち、ＤＴＣ起動許可された要因の周辺割込みのみを優先順位判定部２２へ送る。
【００２７】
優先順位判定部２２は、ＤＴＣ起動要因選択回路２１から複数の周辺割込みを受けた場合に、優先順位が最大の周辺割込みをＤＴＣ起動制御部２３へ送るとともに、優先順位が最大の周辺割込みの要因番号を転送制御部２５へ送る。優先順位判定部２２は、割込みを許可する周辺割込みの要因を表わす要因選択信号を割り込み許可制御部３０へ送る。
【００２８】
割り込み制御部２９は、割り込み許可信号を割り込み許可制御部３０へ送り、割り込み禁止信号を割り込み禁止制御部３２へ送る。
【００２９】
割り込み許可制御部３０は、割込み許可信号と、割込みを許可する周辺割込みの要因を表わす要因選択信号を受けたときに、ＤＴＣ起動許可レジスタ３１に割込みを許可する周辺割込みの要因をセットする。
【００３０】
ＤＴＣ起動許可レジスタ３１は、割込みを許可する周辺割込みの要因を保持する。
割り込み禁止制御部３２は、割り込み禁止信号を受けると、ＤＴＣ起動許可レジスタ３１内の割込みを許可する周辺割込みの要因をすべてクリアする。
【００３１】
ＤＴＣ起動制御部２３は、周辺割込みを受けたときに、ＤＴＣ１０を起動させる、つまりＤＴＣ１０によるデータ転送を開始させる。ＤＴＣ起動制御部２３は、ＣＰＵ１４に起動リクエストを送り、ＣＰＵ１４から返答ＡＣＫを受信する。
【００３２】
ステート管理部２４は、ＤＴＣ１０のステイタスを管理する。
転送制御部２５は、記憶部１２内のベクタテーブルおよびコントロールデータに基づいて、データ転送を実行する。
【００３３】
アドレス制御部２６は、記憶部１２および周辺機能制御部１７内のＳＦＲのアドレスを管理するとともに、転送制御部２５で選択されたアドレスを表わすアドレス信号をアドレスバス１６に出力する。
【００３４】
データバッファ２７は、データバス１５を通じて、記憶部１２、および周辺機能制御部１７内のＳＦＲと送受信されるデータを一時的に保持する。
【００３５】
コントロールレジスタ２８は、記憶部１２から読み出されたコントロールデータを一時的に保持する。
【００３６】
（コントロールデータ）
まず、従来のコントロールデータについて説明する。
【００３７】
図３は、従来のコントロールデータの構成を表わす図である。
図３に示すように、従来のコントロールデータは、ＣＨＥＮと、ブロックサイズと、転送回数と、転送回数リロードと、転送元アドレスと、転送先アドレスとを含む。
【００３８】
ＣＨＥＮは、チェイン転送を許可するか、禁止するかを指定するフラグであり、「１」の場合に許可され、「０」の場合には禁止される。チェイン転送では、１つの起動要因で複数のブロックが連続して転送される。
【００３９】
ブロックサイズは、１回で転送されるブロックのバイト数を表わす。
転送回数は、ＤＴＣの転送回数である。
【００４０】
転送回数リロードは、リピートモードでの転送回数の初期値を表わす。
転送元アドレスは、転送されるブロックの転送元のアドレスを表わす。
【００４１】
転送先アドレスは、転送されるブロックの転送先のアドレスを表わす。
図４（ａ）は、本実施の形態の第１種類のコントロールデータの構成を表わす図である。
【００４２】
図４（ａ）に示すように、第１種類のコントロールデータは、従来のコントロールデータにＩＦ（＝０）が追加されている。
【００４３】
ＩＦは、このコントロールデータが第１種類のコントロールデータであるか、第２種類のコントロールデータであるかを表わすフラグである。ＩＦ＝０は、このコントロールデータが第１種類のコントロールデータであることを表わす。
【００４４】
図４（ｂ）は、本実施の形態の第２種類のコントロールデータの構成を表わす図である。
【００４５】
図４（ｂ）に示すように、第２種類のコントロールデータは、分岐処理のためのコントロールデータであって、ＩＦ（＝１）と、ＣＨＥＮと、比較データＡと、比較データＢのアドレスと、分岐先アドレス１と、分岐先アドレス２とを含む。
【００４６】
ＩＦは、このコントロールデータが第１種類のコントロールデータであるか、第２種類のコントロールデータであるかを表わすフラグである。ＩＦ＝１は、このコントロールデータが第２種類のコントロールデータであることを表わす。
【００４７】
ＣＨＥＮは、チェイン転送を許可するか、禁止するかを指定するフラグであり、「１」の場合に許可され、「０」の場合には禁止される。第２種類のコントロールデータのＣＨＥＮは、分岐先へジャンプするためのものであるので、「１」に設定される。
【００４８】
比較データＡは、条件分岐の判断のための比較対象となる一方のデータである。
比較データＢは、条件分岐の判断のための比較対象となる他方のデータである。
【００４９】
分岐先アドレス１は、比較データＡと比較データＢとが一致する場合の分岐先のコントロールデータＮ１のアドレスである。
【００５０】
分岐先アドレス２は、比較データＡと比較データＢとが不一致の場合の分岐先のコントロールデータＮ２のアドレスである。
（通常のチェイン転送）
まず、第１種類のコントロールデータによる通常のチェイン転送について説明する。
【００５１】
図５は、通常のチェイン転送の例を表わす図である。図６は、図５のチェイン転送時のメモリマップの例を表わす図である。
【００５２】
図５に示すように、まず、割り込み要因が発生すると（Ｓ１）、ＤＴＣ起動要求がＤＴＣ起動制御部２３に送られる（Ｓ２）。転送制御部２５は、ベクタテーブルを参照して、割込み要因に対応するアドレスを特定し、記憶部１２のＲＡＭ領域の特定したアドレスからコントロールデータ０を読み出して、コントロールレジスタ２８に格納する（Ｓ３）。コントロールデータ０には、チェイン転送許可を表わす情報（ＣＨＥＮ＝１）と、転送元アドレスＳＲＣ０と、ブロックサイズＢＬ０と、転送先アドレスＤＳＴ０とが含まれる。転送制御部２５は、ブロックサイズＢＬ０のデータを記憶部１２のＲＯＭ領域の転送元アドレスＳＲＣ０から読み出して（Ｓ４）、周辺機能制御部１７内のＳＦＲ領域の転送先アドレスＤＳＴ０に書き込む（Ｓ５）。転送制御部２５は、コントロールデータ０を修正して、記憶部１２のＲＡＭ領域に書き戻す（Ｓ６）。
【００５３】
次に、ＤＴＣ起動制御部２３は、割り込み要求を発行する。これは、コントロールデータ２による転送終了まで維持される（Ｓ７）。
【００５４】
次に、転送制御部２５は、コントロールデータ０においてチェイン転送が許可されているので、記憶部１２のＲＡＭ領域においてコントロールデータ０のアドレスの次のアドレスのコントロールデータ１を読み出す（Ｓ８）。コントロールデータ１には、チェイン転送許可を表わす情報（ＣＨＥＮ＝１）と、転送元アドレスＳＲＣ１と、ブロックサイズＢＬ１と、転送先アドレスＤＳＴ１とが含まれる。転送制御部２５は、ブロックサイズＢＬ１のデータを記憶部１２のＲＡＭ領域の転送元アドレスＳＲＣ１から読み出して（Ｓ９）、周辺機能制御部１７内のＳＦＲ領域の転送先アドレスＤＳＴ１に書き込む（Ｓ１０）。転送制御部２５は、コントロールデータ１を修正して、記憶部１２のＲＡＭ領域に書き戻す（Ｓ１１）。
【００５５】
次に、転送制御部２５は、コントロールデータ１においてチェイン転送が許可されているので、記憶部１２のＲＡＭ領域においてコントロールデータ１のアドレスの次のアドレスのコントロールデータ２を読み出す（Ｓ１２）。コントロールデータ２には、チェイン転送禁止を表わす情報（ＣＨＥＮ＝０）と、転送元アドレスＳＲＣ２と、ブロックサイズＢＬ２と、転送先アドレスＤＳＴ２とが含まれる。転送制御部２５は、ブロックサイズＢＬ２のデータを記憶部１２のＲＡＭ領域の転送元アドレスＳＲＣ２から読み出して（Ｓ１３）、周辺機能制御部１７内のＳＦＲ領域の転送先アドレスＤＳＴ２に書き込む（Ｓ１４）。転送制御部２５は、コントロールデータ２を修正して、記憶部１２のＲＡＭ領域に書き戻す（Ｓ１５）。
【００５６】
次に、転送制御部２５は、コントロールデータ２においてチェイン転送が禁止されているので、データの転送を終了し、ＤＴＣ起動制御部２３は、ＣＰＵ１４へ割込みを発生させる（Ｓ１６）。
（本実施の形態の分岐付きチェイン転送）
次に、第１種類のコントロールデータと第２種類のコントロールデータに基づく分岐付きチェイン転送について説明する。
【００５７】
図７は、分岐付きチェイン転送の例を表わす図である。図８は、図７のチェイン転送時のメモリマップの例を表わす図である。
【００５８】
図７に示すように、まず、割り込み要因が発生すると（ＳＳ１）、ＤＴＣ起動要求がＤＴＣ起動制御部２３に送られる（ＳＳ２）。転送制御部２５は、ベクタテーブルを参照して、割込み要因に対応するアドレスを特定し、記憶部１２のＲＡＭ領域の特定したアドレスからコントロールデータ０を読み出して、コントロールレジスタ２８に格納する（ＳＳ３）。コントロールデータ０は、第１種類のコントロールデータであり、コントロールデータ０には、チェイン転送許可を表わす情報（ＣＨＥＮ＝１）と、転送元アドレスＳＲＣ０と、ブロックサイズＢＬ０と、転送先アドレスＤＳＴ０とが含まれる。転送制御部２５は、ブロックサイズＢＬ０のデータを記憶部１２のＲＯＭ領域の転送元アドレスＳＲＣ０から読み出して（ＳＳ４）、周辺機能制御部１７内のＳＦＲ領域の転送先アドレスＤＳＴ０に書き込む（ＳＳ５）。転送制御部２５は、コントロールデータ０を修正して、記憶部１２のＲＡＭ領域に書き戻す（ＳＳ６）。
【００５９】
次に、ＤＴＣ起動制御部２３は、割り込み要求を発行する。これは、コントロールデータ２による転送終了まで維持される（ＳＳ７）。
【００６０】
次に、転送制御部２５は、コントロールデータ０においてチェイン転送が許可されているので、記憶部１２のＲＡＭ領域においてコントロールデータ０のアドレスの次のアドレスのコントロールデータ１を読み出して、コントロールレジスタ２８に格納する（ＳＳ８）。コントロールデータ１は、第２種類のコントロールデータであり、チェイン転送許可を表わす情報（ＣＨＥＮ＝１）と、比較データＡと、比較データＢのアドレスと、分岐先アドレス１と、分岐先アドレス２とを含む。転送制御部２５は、比較データＢのアドレスで指定される周辺機能制御部１７内のＳＦＲ領域の比較データＢを読み出して（ＳＳ９）、比較データＡと比較データＢとを比較する。
【００６１】
転送制御部２５は、比較結果が一致のときには、分岐先アドレス１で指定される記憶部１２内のＲＡＭ領域のコントロールデータＮ１を読み出して、コントロールレジスタ２８に格納する（ＳＳ１０）。コントロールデータＮ１は、第１種類のコントロールデータであり、コントロールデータＮ１には、チェイン転送禁止を表わす情報（ＣＨＥＮ＝０）と、転送元アドレスＳＲＣ１と、ブロックサイズＢＬ１と、転送先アドレスＤＳＴ１とが含まれる。転送制御部２５は、ブロックサイズＢＬ１のデータを記憶部１２のＲＡＭ領域の転送元アドレスＳＲＣ１から読み出して（ＳＳ１１）、周辺機能制御部１７内のＳＦＲ領域の転送先アドレスＤＳＴ１に書き込む（ＳＳ１２）。転送制御部２５は、コントロールデータ１を修正して、記憶部１２のＲＡＭ領域に書き戻す（ＳＳ１３）。
【００６２】
転送制御部２５は、比較結果が不一致のときには、分岐先アドレス２で指定される記憶部１２内のＲＡＭ領域のコントロールデータＮ２を読み出して、コントロールレジスタ２８に格納する（ＳＳ１４）。コントロールデータＮ２は、第１種類のコントロールデータであり、コントロールデータＮ２には、チェイン転送禁止を表わす情報（ＣＨＥＮ＝０）と、転送元アドレスＳＲＣ２と、ブロックサイズＢＬ２と、転送先アドレスＤＳＴ２とが含まれる。転送制御部２５は、ブロックサイズＢＬ２のデータを記憶部１２のＲＡＭ領域の転送元アドレスＳＲＣ２から読み出して（ＳＳ１５）、周辺機能制御部１７内のＳＦＲ領域の転送先アドレスＤＳＴ２に書き込む（ＳＳ１６）。転送制御部２５は、コントロールデータ２を修正して、記憶部１２のＲＡＭ領域に書き戻す（ＳＳ１７）。
【００６３】
次に、転送制御部２５は、コントロールデータＮ１およびコントロールデータＮ２においてチェイン転送が禁止されているので、データの転送を終了し、ＤＴＣ起動制御部２３は、ＣＰＵ１４へ割込みを発生させる（ＳＳ１８）。
（ＤＴＣの動作）
図９は、ノーマルモードで、かつ転送元アドレスおよび転送先アドレスの加算なしでのＤＴＣ１０の動作を表わすフローチャートである。
【００６４】
ＤＴＣ１０は、アイドル状態にあるときに（ステップＳ１０１）、データ転送要求の割込み要求を受けると（Ｓ１０２でＹＥＳ）、割り込み制御回路１３を通じて、アドレスバス１６およびデータバス１５へのアクセス権を取得する（ステップＳ１０３）。
【００６５】
次に、ＤＴＣ１０は、ベクタテーブルを参照して、割込み要因に対応するアドレスデータを読み出す（ステップＳ１０４）。
【００６６】
次に、ＤＴＣ１０は、読み出したアドレスデータで指定されるコントロールデータをＲＡＭ領域から読み出す（ステップＳ１０５）。
【００６７】
読み出したコントロールデータに含まれるＩＦが「０」の場合には（ステップＳ１０６でＹＥＳ）、ステップＳ１０７に進む。読み出したコントロールデータに含まれるＩＦが「１」の場合には（ステップＳ１０６でＮＯ）、ステップＳ１１４に進む。
【００６８】
ステップＳ１０７において、ＩＦが「０」の場合には、読み出したコントロールデータが第１種類のコントロールデータなので、ＤＴＣ１０は、コントロールデータに含まれる転送元アドレスからブロックデータを読み出す。さらに、ＤＴＣ１０は、コントロールデータに含まれる転送先アドレスへブロックデータを書込む（ステップＳ１０８）。
【００６９】
ＤＴＣ１０は、読み出したコントロールデータに含まれる転送回数をデクリメントして（ステップＳ１０９）、コントロールデータをＲＡＭ領域へ書き戻す（ステップＳ１１０）。
【００７０】
コントロールデータに含まれるＣＨＥＮが「０」の場合には（ステップＳ１１１でＮＯ）、チェイン転送が禁止されているので、ＤＴＣ１０は、アドレスバス１６およびデータバス１５へのアクセス権を解放して（ステップＳ１１３）、アイドル状態に戻る（ステップＳ１０１）。
【００７１】
コントロールデータに含まれるＣＨＥＮが「１」の場合には（ステップＳ１１１でＹＥＳ）、チェイン転送が許可されているので、次のコントロールデータを読み出すために、ＲＡＭ領域の読み出しアドレスをインクリメントして（ステップＳ１１２）、ステップＳ１０５に戻る。
【００７２】
ステップＳ１１４において、ＩＦが「１」の場合には、読み出したコントロールデータが第２種類のコントロールデータなので、ＤＴＣ１０は、コントロールデータに含まれる比較データＢのアドレスから比較データＢを読み出す。さらに、ＤＴＣ１０は、コントロールデータに含まれる比較データＡと、読み出した比較データＢとを比較する。
【００７３】
比較結果が一致の場合には（ステップＳ１１５でＹＥＳ）、次のコントロールデータを読み出すために、ＲＡＭ内のコントロールデータの読み出しアドレスをコントロールデータに含まれる分岐先アドレス１に設定する（ステップＳ１１６）。比較結果が不一致の場合には（ステップＳ１１５でＮＯ）、次のコントロールデータを読み出すために、ＲＡＭ内のコントロールデータの読み出しアドレスをコントロールデータに含まれる分岐先アドレス２に設定する（ステップＳ１１７）。
【００７４】
次に、設定した次の読出しアドレスが、前回の読出しアドレスと一致している場合、つまり、次に読み出すコントロールデータが前回読み出したコントロールデータと同じ場合には（ステップＳ１１８でＹＥＳ）、ステップＳ１１９に進む。設定した次の読出しアドレスが、前回の読出しアドレスと不一致の場合（ステップＳ１１８でＮＯ）、ステップＳ１０５に戻る。
【００７５】
ステップＳ１１９において、ＤＴＣ１０は、カウント値ＣＴをインクリメントする。
カウント値ＣＴが閾値ＴＨ以上となった場合には（ステップＳ１２０でＹＥＳ）、デッドロックを回避するため、ＤＴＣ１０は、アドレスバス１６およびデータバス１５へのアクセス権を解放して（ステップＳ１１３）、アイドル状態に戻る（ステップＳ１０１）。つまり、一定回数連続して、同一の第２種類のコントロールデータを読み出した場合には、割込みの通知に基づく処理が終了する。カウント値が閾値ＴＨ未満の場合には（ステップＳ１２０でＮＯ）、ステップＳ１０５に戻る。
【００７６】
以上のように、本実施の形態によれば、第１の実施形態と同様に、ＣＰＵを停止させるモード（スリープモード、スタンバイモードなど）において、ステイタスの違いによって、異なるデータを転送することができる。
【００７７】
［第３の実施形態］
第３の実施形態では、第２の実施形態で説明したデータ転送機能を用いて、機能処理を行なう第１の例について説明する。第１の例は、センサの電源を制御して、センサからの信号をデジタル変換して、外部のデバイスへ送信する処理である。
【００７８】
（ＣＰＵによる処理）  
図１０は、ＣＰＵによって第１の例を処理する場合のマイクロコンピュータの構成を表わす図である。
【００７９】
図１０において、マイクロコンピュータ６１は、ＣＰＵ６２と、周辺機能制御部として、ポート制御部６３、定周期タイマ６４、Ａ／Ｄ変換器６５、およびＳＩＯ制御部６６を備える。
【００８０】
ＣＰＵ６２は、定周期タイマ６４およびＡ／Ｄ変換器６５から割込要求を受けるとともに、ポート制御部６３、Ａ／Ｄ変換器６５、およびＳＩＯ制御部６６を制御する。
【００８１】
ポート制御部６３は、制御レジスタ７０を有する。制御レジスタ７０に「１」が設定されると、ポート制御部６３は、スイッチＳＷに「Ｈ」レベルの信号を出力し、スイッチＳＷをオンにする。制御レジスタ７０に「０」が設定されると、ポート制御部６３は、スイッチＳＷに「Ｌ」レベルの信号を出力し、スイッチＳＷをオフにする。
【００８２】
定周期タイマ６４は、一定の時間ごとに割り込み制御回路を介して（図示を省略）、ＣＰＵ６２に割込みを通知する。
【００８３】
Ａ／Ｄ変換器６５は、変換開始ビットレジスタ７３と、変換完了フラグレジスタ７２と、変換結果レジスタ７４とを有する。変換開始ビットレジスタ７３に「１」が設定されると、Ａ／Ｄ変換器６５は、センサ６７から送られてくる信号をデジタル信号に変換する処理（Ａ／Ｄ変換）を開始する。Ａ／Ｄ変換器６５は、Ａ／Ｄ変換を終了すると、変換完了フラグレジスタ７２に「１」を設定するとともに、割り込み制御回路（図示を省略）を介して、ＣＰＵ６２に割込みを通知する。Ａ／Ｄ変換器６５は、Ａ／Ｄ変換の結果であるデジタル信号を変換結果レジスタ７４に保存する。
【００８４】
ＳＩＯ制御部６６は、送信レジスタ７１を備える。送信レジスタ７１に信号が入力されると、ＳＩＯ制御部６６は、送信レジスタ７１内の信号を外部デバイス６８へシリアル送信する。
【００８５】
センサ６７は、スイッチＳＷを介して、電源６９から電源電圧を受ける。センサ６７は、検出した信号をＡ／Ｄ変換器６５へ送信する。
【００８６】
外部デバイス６８は、ＳＩＯ制御部６６との間でシリアル通信を行なう。
図１１は、図１０のＣＰＵによる第１の例の処理手順を表わすフローチャートである。
【００８７】
図１１を参照して、ＣＰＵ６２は、定周期タイマ６４から割込要求を受けると（ステップＳ２０１でＹＥＳ）、ポート制御部６３の制御レジスタ７０に「１」を設定する。ポート制御部６３は、スイッチＳＷに「Ｈ」レベルの信号を出力し、スイッチＳＷをオンにする。これにより、センサ６７の電源がオンとなり、センサ６７は、検知した信号（アナログ信号）をＡ／Ｄ変換器６５に送る（ステップＳ２０２）。
【００８８】
次に、ＣＰＵ６２は、センサ６７が安定するのに要する所定時間が経過すると（ステップＳ２０３でＹＥＳ）、Ａ／Ｄ変換器６５の変換開始ビットレジスタ７３を「１」に設定する。これにより、Ａ／Ｄ変換器６５は、センサ６７から出力される信号をデジタル信号に変換して、Ａ／Ｄ変換の結果を表わす信号を内部の変換結果レジスタ７４に出力する（ステップＳ２０４）。
【００８９】
次に、ＣＰＵ６２は、Ａ／Ｄ変換器６５から変換完了を知らせる割込要求を受けると（ステップＳ２０５でＹＥＳ）、ポート制御部６３の制御レジスタ７０に「０」を設定する。ポート制御部６３は、スイッチＳＷに「Ｌ」レベルの信号を出力し、スイッチＳＷをオフにする。これにより、センサ６７の電源がオフとなり、センサ６７からの出力が停止する（ステップＳ２０６）。
【００９０】
次に、ＣＰＵ６２は、変換結果レジスタ７４内のＡ／Ｄ変換の結果を表わす信号をＳＩＯ制御部６６の送信レジスタ７１へ転送する。これにより、ＳＩＯ制御部６６は、Ａ／Ｄ変換の結果を表わす信号を外部デバイス６８へシリアル送信する（ステップＳ２０７）。
【００９１】
以上のようなＣＰＵによって上述の周辺機能を制御する場合には、ＣＰＵが停止するもモード（スタンバイモードなど）において、周辺機能を実行することができないという問題がある。
【００９２】
（ＤＴＣによる処理）
図１２は、ＤＴＣによって第１の例を処理する場合のマイクロコンピュータの構成を表わす図である。
【００９３】
図１２において、マイクロコンピュータ８１は、ＣＰＵ７６と、ポート制御部６３と、定周期タイマ６４と、Ａ／Ｄ変換器６５と、ＳＩＯ制御部６６と、ＲＡＭ８０と、ＤＴＣ７５と、センサ安定化待ちタイマ７７とを備える。
【００９４】
ＣＰＵ７６は、第１の例の処理において関与しない。
ポート制御部６３は、制御レジスタ７０を有する。制御レジスタ７０に「１」が設定されると、ポート制御部６３は、スイッチＳＷに「Ｈ」レベルの信号を出力し、スイッチＳＷをオンにする。制御レジスタ７０に「０」が設定されると、ポート制御部６３は、スイッチＳＷに「Ｌ」レベルの信号を出力し、スイッチＳＷをオフにする。
【００９５】
定周期タイマ６４は、一定の時間ごとに割り込み制御回路を介して（図示を省略）、ＤＴＣ７５に割込みを通知する。
【００９６】
Ａ／Ｄ変換器６５は、変換開始ビットレジスタ７３と、変換完了フラグレジスタ７２と、変換結果レジスタ７４とを有する。変換開始ビットレジスタ７３に「１」が設定されると、Ａ／Ｄ変換器６５は、センサ６７から送られてくる信号をデジタル信号に変換する処理（Ａ／Ｄ変換）を開始する。Ａ／Ｄ変換器６５は、Ａ／Ｄ変換を終了すると、変換完了フラグレジスタ７２に「１」を設定する。Ａ／Ｄ変換器６５は、Ａ／Ｄ変換の結果であるデジタル信号を変換結果レジスタ７４に保存する。
【００９７】
ＳＩＯ制御部６６は、送信レジスタ７１を備える。送信レジスタ７１に信号が入力されると、ＳＩＯ制御部６６は、送信レジスタ７１内の信号を外部デバイス６８へシリアル送信する。
【００９８】
センサ安定化待ちタイマ７７は、カウンタ７８と、イネーブルレジスタ７９とを有する。
【００９９】
イネーブルレジスタ７９に「１」が設定されると、センサ安定化待ちタイマ７７は、動作を開始する。カウンタ７８は、センサ安定化待ちタイマ７７によって計測した時間を格納する。
【０１００】
ＤＴＣ７５は、ＲＡＭ８０内のベクタテーブルおよびコントロールデータに従って、データ転送を実行する。ＤＴＣ７５は、定周期タイマ６４から割込要求を受ける。ＤＴＣ７５は、センサ安定化待ちタイマ７７からタイムアウトによる割込要求を受ける。ＤＴＣ７５は、Ａ／Ｄ変換器６５から変換完了による割込要求を受ける。
【０１０１】
ＲＡＭ８０は、ＤＴＣ７５によるデータ転送のためのベクタテーブル、コントロールデータなどを記憶する。
【０１０２】
センサ６７は、スイッチＳＷを介して、電源６９から電源電圧を受ける。センサ６７は、検出した信号をＡ／Ｄ変換器６５へ送信する。
【０１０３】
外部デバイス６８は、ＳＩＯ制御部６６との間でシリアル通信を行なう。
（ＤＴＣによる処理：第１種類のコントロールデータに基づくデータ転送）
図１３は、第１種類のコントロールデータを用いて、図１２のＤＴＣによって第１の例の処理をする場合の手順を表わすフローチャートである。図１４は、図１３に示す処理時にＲＡＭ８０内に記憶されているベクタテーブルおよびコントロールデータを表わす図である。
【０１０４】
ＤＴＣ７５は、定周期タイマ６４から割込要求を受けると（ステップＳ３０１でＹＥＳ）、ＲＡＭ８０から図１４に示すコントロールデータＥ１を読み出す。ＤＴＣ７５は、コントロールデータＥ１に従って、転送元アドレスに保存された「１」を転送先アドレスで指定されるポート制御部６３の制御レジスタ７０に転送する。ポート制御部６３は、スイッチＳＷに「Ｈ」レベルの信号を出力し、スイッチＳＷをオンにする。これにより、センサ６７の電源がオンとなり、センサ６７は、検知した信号（アナログ信号）をＡ／Ｄ変換器６５に送る（ステップＳ３０２）。
【０１０５】
次に、ＤＴＣ７５は、コントロールデータＥ１にチェイン転送が許可されている（ＣＨＥＮ＝１）ため、ＲＡＭ８０から図１４に示すコントロールデータＥ２を読み出す。ＤＴＣ７５は、コントロールデータＥ２に従って、転送元アドレスに保存された「１」を転送先アドレスで指定されるセンサ安定化待ちタイマ７７のイネーブルレジスタ７９に転送する。これにより、センサ安定化待ちタイマ７７が起動する。ＤＴＣ７５は、コントロールデータＥ２にチェイン転送が禁止されている（ＣＨＥＮ＝０）ので、チェイン転送を終了する（ステップＳ３０３）。
【０１０６】
次に、ＤＴＣ７５は、センサ安定化待ちタイマ７７からタイムアウトによる割込要求を受けると（ステップＳ３０４でＹＥＳ）、ＲＡＭ８０から図１４に示すコントロールデータＥ３を読み出す。ＤＴＣ７５は、コントロールデータＥ３に従って、転送元アドレスに保存された「１」を転送先アドレスで指定されるＡ／Ｄ変換器６５の変換開始ビットレジスタ７３に転送する。これにより、Ａ／Ｄ変換器６５は、センサ６７から出力される信号をデジタル信号に変換して、Ａ／Ｄ変換の結果を表わす信号を内部の変換結果レジスタ７４に出力する。ＤＴＣ７５は、コントロールデータＥ３にチェイン転送が禁止されている（ＣＨＥＮ＝０）ので、チェイン転送を終了する（ステップＳ３０５）。
【０１０７】
次に、ＤＴＣ７５は、Ａ／Ｄ変換器６５から変換完了による割込要求を受けると（ステップＳ３０６でＹＥＳ）、ＲＡＭ８０から図１４に示すコントロールデータＥ４を読み出す。ＤＴＣ７５は、コントロールデータＥ４に従って、転送元アドレスに保存された「０」を転送先アドレスで指定されるポート制御部６３の制御レジスタ７０に転送する。ポート制御部６３は、スイッチＳＷに「Ｌ」レベルの信号を出力し、スイッチＳＷをオフにする。これにより、センサ６７の電源がオフとなり、センサ６７からの出力が停止する（ステップＳ３０７）。
【０１０８】
次に、ＤＴＣ７５は、コントロールデータＥ４にチェイン転送が許可されている（ＣＨＥＮ＝１）ため、ＲＡＭ８０から図１４に示すコントロールデータＥ５を読み出す。ＤＴＣ７５は、コントロールデータＥ５に従って、転送元アドレスで指定されるＡ／Ｄ変換器６５の変換結果レジスタ７４のデータを読み出して、転送先アドレスで指定されるＳＩＯ制御部６６の送信レジスタ７１へ転送する。これにより、ＳＩＯ制御部６６は、Ａ／Ｄ変換の結果を表わす信号を外部デバイス６８へシリアル送信する。ＤＴＣ７５は、コントロールデータＥ５にチェイン転送が禁止されている（ＣＨＥＮ＝０）ので、チェイン転送を終了する（ステップＳ３０８）。
【０１０９】
以上のような第１種類のコントロールデータに基づくデータ転送によって、周辺機能を実行する場合には、ＣＰＵが停止するモード（スタンバイモードなど）でも、周辺機能を実行することができる。
【０１１０】
しかしながら、第１種類のコントロールデータのみを用いる場合には、分岐処理が実行できないため、多数の割込要求によって、処理を切り換える必要がある。したがって、多数の割込要求に対応するベクタテーブルを格納するためにＲＡＭ内に大きな領域を確保する必要がある。
【０１１１】
（ＤＴＣによる処理：第１種類および第２種類のコントロールデータに基づくデータ転送）
図１５は、第１種類および第２種類のコントロールデータを用いて、図１２のＤＴＣ７５によって第１の例の処理をする場合の手順を表わすフローチャートである。図１６は、図１５に示す処理時に、ＲＡＭ８０内に記憶されているベクタテーブルおよびコントロールデータを表わす図である。
【０１１２】
ＤＴＣ７５は、定周期タイマ６４から割込要求を受けると（ステップＳ４０１でＹＥＳ）、ＲＡＭ８０から図１６に示すコントロールデータＦ１を読み出す。ＤＴＣ７５は、コントロールデータＥ１に従って、転送元アドレスに保存された「１」を転送先アドレスで指定されるポート制御部６３の制御レジスタ７０に転送する。ポート制御部６３は、スイッチＳＷに「Ｈ」レベルの信号を出力し、スイッチＳＷをオンにする。これにより、センサ６７の電源がオンとなり、センサ６７は、検知した信号（アナログ信号）をＡ／Ｄ変換器６５に送る（ステップＳ４０２）。
【０１１３】
次に、ＤＴＣ７５は、コントロールデータＦ１にチェイン転送が許可されている（ＣＨＥＮ＝１）ため、ＲＡＭ８０から図１６に示すコントロールデータＦ２を読み出す。ＤＴＣ７５は、コントロールデータＦ２に従って、転送元アドレスに保存された「１」を転送先アドレスで指定されるセンサ安定化待ちタイマ７７のイネーブルレジスタ７９に転送する。これにより、センサ安定化待ちタイマ７７が起動する（ステップＳ４０３）。
【０１１４】
次に、ＤＴＣ７５は、コントロールデータＦ２にチェイン転送が許可されている（ＣＨＥＮ＝１）ため、ＲＡＭ８０から図１６に示すコントロールデータＦ３を読み出す（ステップＳ４０４）。ＤＴＣ７５は、コントロールデータＦ３に従って、比較データＢのアドレスで指定されるセンサ安定化待ちタイマ７７のカウンタ７８の値を比較データＢとして読み出す。ＤＴＣ７５は、比較データＡ（＝所定時間）と、読み出した比較データＢ（センサ安定化待ちタイマ７７のカウンタ７８の値）とを比較する。
【０１１５】
ＤＴＣ７５は、比較結果が不一致の場合には（ステップＳ４０５でＮＯ）、ステップＳ４０４に戻る。ＤＴＣ７５は、比較結果が一致する場合には（ステップＳ４０５でＹＥＳ)、ステップＳ４０６に進む。
【０１１６】
ステップＳ４０４において、ＤＴＣ７５は、分岐先アドレス２が自己のアドレス（コントロールデータＦ３のアドレス）と同一であるから、図１６に示すコントロールデータＦ３をＲＡＭ８０から再度読み出して、前述の分岐判定処理を繰り返す。
【０１１７】
ステップＳ４０６において、ＤＴＣ７５は、分岐先アドレス１で指定される図１６に示すコントロールデータＦ４をＲＡＭ８０から読み出す。ＤＴＣ７５は、コントロールデータＦ４に従って、転送元アドレスに保存された「１」を転送先アドレスで指定されるＡ／Ｄ変換器６５の変換開始ビットレジスタ７３に転送する。これにより、Ａ／Ｄ変換器６５は、センサ６７から出力される信号をデジタル信号に変換して、Ａ／Ｄ変換の結果を表わす信号を内部の変換結果レジスタ７４に出力する。
【０１１８】
次に、ＤＴＣ７５は、コントロールデータＦ４にチェイン転送が許可されている（ＣＨＥＮ＝１）ため、ＲＡＭ８０から図１６に示すコントロールデータＦ５を読み出す（ステップＳ４０７）。ＤＴＣ７５は、コントロールデータＦ５に従って、比較データＢのアドレスで指定されるＡ／Ｄ変換器６５の変換完了フラグレジスタ７２の値を比較データＢとして読み出す。ＤＴＣ７５は、比較データＡ（＝１）と、読み出した比較データ（Ａ／Ｄ変換器６５の変換完了フラグレジスタ７２で、変換完了で「１」、変換未完了で「０」）とを比較する。
【０１１９】
ＤＴＣ７５は、比較結果が不一致の場合には（ステップＳ４０８でＮＯ）、ステップＳ４０７に戻る。ＤＴＣ７５は、比較結果が一致する場合には（ステップＳ４０８でＹＥＳ)、ステップＳ４０９に進む。
【０１２０】
ステップＳ４０７において、ＤＴＣ７５は、分岐先アドレス２が自己のアドレス（コントロールデータＦ５のアドレス）と同一であるから、図１６に示すコントロールデータＦ５をＲＡＭ８０から再度読み出して、前述の分岐判定処理を繰り返す。
【０１２１】
ステップＳ４０９において、ＤＴＣ７５は、分岐先アドレス１で指定される図１６に示すコントロールデータＦ６をＲＡＭ８０から読み出す。ＤＴＣ７５は、コントロールデータＦ６に従って、転送元アドレスに保存された「０」を転送先アドレスで指定されるポート制御部６３の制御レジスタ７０に転送する。ポート制御部６３は、スイッチＳＷに「Ｌ」レベルの信号を出力し、スイッチＳＷをオフにする。これにより、センサ６７の電源がオフとなり、センサ６７からの出力が停止する。
【０１２２】
次に、ＤＴＣ７５は、コントロールデータＦ６にチェイン転送が許可されている（ＣＨＥＮ＝１）ため、ＲＡＭ８０から図１６に示すコントロールデータＦ７を読み出す。ＤＴＣ７５は、コントロールデータＦ７に従って、転送元アドレスで指定されるＡ／Ｄ変換器６５の変換結果レジスタ７４のデータを読み出して、転送先アドレスで指定されるＳＩＯ制御部６６の送信レジスタ７１へ転送する。これにより、ＳＩＯ制御部６６は、Ａ／Ｄ変換の結果を表わす信号を外部デバイス６８へシリアル送信する。ＤＴＣ７５は、コントロールデータＦ７にチェイン転送が禁止されている（ＣＨＥＮ＝０）ので、チェイン転送を終了する（ステップＳ４１０）。
【０１２３】
以上のような第１種類および第２種類のコントロールデータに基づくデータ転送によって、周辺機能を実行する場合には、ＣＰＵが停止するモード（スタンバイモードなど）でも、周辺機能を実行することができる。また、第２種類のコントロールデータを用いることによって、分岐処理が可能となる。その結果、多数の割込要求によって、処理を切り換える必要がなく、多数の割込要求に対応するベクタテーブルを格納するためにＲＡＭ内に大きな領域を確保する必要がなくなる。
【０１２４】
以上のように、本実施の形態によれば、ＣＰＵを停止させるモード（スリープモード、スタンバイモードなど）において、ステイタスの違いによって、異なるデータを転送し、異なる周辺機能を実行することができる。
【０１２５】
［第４の実施形態］
第４の実施形態では、第２の実施形態で説明したデータ転送機能を用いて、機能処理を行なう第２の例について説明する。第２の例は、外部から受信したコマンドとデータからなるシリアルデータに従って、実行する処理である。
【０１２６】
（ＣＰＵによる処理）  
図１７は、ＣＰＵによって第２の例を処理する場合のマイクロコンピュータの構成を表わす図である。
【０１２７】
図１７において、マイクロコンピュータ９１は、ＣＰＵ９２と、ポート制御部６３と、タイマ９３と、Ａ／Ｄ変換器６５と、ＳＩＯ制御部６６とを備える。
【０１２８】
ＣＰＵ９２は、タイマ９３から割込要求を受けるとともに、ポート制御部６３、Ａ／Ｄ変換器６５、およびＳＩＯ制御部６６を制御する。
【０１２９】
ポート制御部６３は、制御レジスタ７０を有する。制御レジスタ７０に「１」が設定されると、ポート制御部６３は、スイッチＳＷに「Ｈ」レベルの信号を出力し、スイッチＳＷをオンにする。制御レジスタ７０に「０」が設定されると、ポート制御部６３は、スイッチＳＷに「Ｌ」レベルの信号を出力し、スイッチＳＷをオフにする。
【０１３０】
タイマ９３は、一定の時間が経過すると、割り込み制御回路（図示を省略）を介して、ＣＰＵ９２に割込みを通知する。タイマ９３は、イネーブルレジスタ９４を備える。イネーブルレジスタ９４に「１」が設定されると、タイマ９３は、動作を開始する。
【０１３１】
Ａ／Ｄ変換器６５は、変換開始ビットレジスタ７３と、変換完了フラグレジスタ７２と、変換結果レジスタ７４とを有する。変換開始ビットレジスタ７３に「１」が設定されると、Ａ／Ｄ変換器６５は、センサ６７から送られてくる信号をデジタル信号に変換する処理（Ａ／Ｄ変換）を開始する。Ａ／Ｄ変換器６５は、Ａ／Ｄ変換を終了すると、変換完了フラグレジスタ７２に「１」を設定するとともに、割り込み制御回路（図示を省略）を介して、ＣＰＵ９２に割込みを通知する。Ａ／Ｄ変換器６５は、Ａ／Ｄ変換の結果であるデジタル信号を変換結果レジスタ７４に保存する。
【０１３２】
ＳＩＯ制御部６６は、送信レジスタ７１および受信レジスタ９５を備える。送信レジスタ７１に信号が入力されると、ＳＩＯ制御部６６は、送信レジスタ７１内の信号を外部デバイス６８へシリアル送信する。  
【０１３３】
図１８は、受信するシリアルデータの構成を表わす図である。
シリアルデータは、１バイトのコマンドと１バイトのデータとからなる。
【０１３４】
コマンドが「１」は、タイマ９３を制御する命令である。コマンドが「１」の場合には、後続するデータは「１」であり、タイマ９３のイネーブルレジスタ９４に設定される。
【０１３５】
コマンドが「２」は、ＳＩＯ制御部６６を制御する命令である。コマンドが「２」の場合には、後続するデータは、ＳＩＯ制御部６６へ送られる１バイトのデータであり、ＳＩＯ制御部６６の送信レジスタ７１に設定される。
【０１３６】
コマンドが「３」は、Ａ／Ｄ変換器６５を制御する命令である。コマンドが「３」の場合には、後続するデータは「１」であり、Ａ／Ｄ変換器６５の変換開始ビットレジスタ７３に設定される。
【０１３７】
コマンドが「４」は、ポート制御部６３を制御する命令である。コマンドが「４」の場合には、後続するデータは「１」であり、ポート制御部６３の制御レジスタ７０に設定される。
【０１３８】
センサ６７は、スイッチＳＷを介して、電源６９から電源電圧を受ける。センサ６７は、検出した信号をＡ／Ｄ変換器６５へ送信する。
【０１３９】
外部デバイス６８は、ＳＩＯ制御部６６との間でシリアル通信を行なう。
図１９は、図１７のＣＰＵによる第２の例の処理手順を表わすフローチャートである。
【０１４０】
図１９を参照して、ＣＰＵ９２は、ＳＩＯ制御部６６から割込要求を受けると（ステップＳ５０１でＹＥＳ）、ＳＩＯ制御部６６の受信レジスタ内の受信データをＲＡＭ９６に格納する（ステップＳ５０２）。
【０１４１】
次に、ＣＰＵ９２は、ＲＡＭ９６に格納された受信データの１バイト目であるコマンドを解釈する。
【０１４２】
ＣＰＵ９２は、コマンドが「１」（タイマ９３を制御する命令）の場合には（ステップＳ５０３でＹＥＳ）、ＲＡＭ９６内の受信データの２バイト目のデータをタイマ９３のイネーブルレジスタ９４に転送する。これにより、タイマ９３が起動する（ステップＳ５０４）。
【０１４３】
ＣＰＵ９２は、コマンドが「２」（ＳＩＯ制御部６６を制御する命令）の場合には（ステップＳ５０５でＹＥＳ）、ＲＡＭ９６内の受信データの２バイト目のデータをＳＩＯ制御部６６の送信レジスタ７１に転送する。これにより、ＳＩＯ制御部６６は、送信レジスタ７１内のデータを外部デバイス６８へシリアル送信する（ステップＳ５０６）。
【０１４４】
ＣＰＵ９２は、コマンドが「３」（Ａ／Ｄ変換器６５を制御する命令）の場合には（ステップＳ５０７でＹＥＳ）、ＲＡＭ９６内の受信データの２バイト目のデータをＡ／Ｄ変換器６５の変換開始ビットレジスタ７３に転送する。これにより、Ａ／Ｄ変換器６５は、センサ６７から出力される信号をデジタル信号に変換して、Ａ／Ｄ変換の結果を表わす信号を内部の変換結果レジスタ７４に出力する（ステップＳ５０８）。
【０１４５】
ＣＰＵ９２は、コマンドが「４」（ポート制御部６３を制御する命令）の場合には（ステップＳ５０９でＹＥＳ）、ＲＡＭ９６内の受信データの２バイト目のデータをポート制御部６３の制御レジスタ７０に転送する。これにより、ポート制御部６３は、スイッチＳＷに「Ｈ」レベルの信号を出力し、スイッチＳＷをオンにする。これにより、センサ６７の電源がオンとなり、センサ６７は、検知した信号（アナログ信号）をＡ／Ｄ変換器６５に送る（ステップＳ５１０）。
【０１４６】
以上のようなＣＰＵによって上述の周辺機能を制御する場合には、ＣＰＵが停止するもモード（スタンバイモードなど）において、周辺機能を実行することができないという問題がある。
【０１４７】
（ＤＴＣおよびＣＰＵによる処理）
図２０は、ＤＴＣおよびＣＰＵによって、第２の例を処理する場合のマイクロコンピュータの構成を表わす図である。
【０１４８】
図２０のマイクロコンピュータ９８が、図１７のマイクロコンピュータ９１と相違する点は、ＤＴＣ８９を備える点である。
【０１４９】
ＤＴＣ８９は、ＲＡＭ９６内のベクタテーブルおよびコントロールデータに従って、データ転送を実行する。ＤＴＣ８９は、ＳＩＯ制御部６６から割込要求を受ける。
【０１５０】
図２１は、図２０のＤＴＣおよびＣＰＵによる第２の例の処理手順を表わすフローチャートである。図２２は、図２１に示す処理時に、ＲＡＭ９６内に記憶されているベクタテーブルおよびコントロールデータを表わす図である。
【０１５１】
ＤＴＣ８９は、ＳＩＯ制御部６６から割込要求を受けると（ステップＳ６０１でＹＥＳ）、ＲＡＭ９６から図２２に示すコントロールデータＧ１を読み出す。ＤＴＣ８９は、コントロールデータＧ１に従って、転送元アドレスで指定されるＳＩＯ制御部６６の受信レジスタ９５内の受信データを転送先アドレスで指定されるＲＡＭ９６内へ転送する（ステップＳ６０２）。
【０１５２】
次に、ＣＰＵ９２は、ＲＡＭ９６内の受信データの１バイト目であるコマンドを解釈する。
【０１５３】
ＣＰＵ９２は、コマンドが「１」（タイマ９３を制御する命令）の場合には（ステップＳ６０３でＹＥＳ）、ＲＡＭ９６内の受信データの２バイト目のデータをタイマ９３のイネーブルレジスタ９４に転送する。これにより、タイマ９３が起動する（ステップＳ６０４）。
【０１５４】
ＣＰＵ９２は、コマンドが「２」（ＳＩＯ制御部６６を制御する命令）の場合には（ステップＳ６０５でＹＥＳ）、ＲＡＭ９６内の受信データの２バイト目のデータをＳＩＯ制御部６６の送信レジスタ７１に転送する。これにより、ＳＩＯ制御部６６は、送信レジスタ７１内のデータを外部デバイス６８へシリアル送信する（ステップＳ６０６）。
【０１５５】
ＣＰＵ９２は、コマンドが「３」（Ａ／Ｄ変換器６５を制御する命令）の場合には（ステップＳ６０７でＹＥＳ）、ＲＡＭ９６内の受信データの２バイト目のデータをＡ／Ｄ変換器６５の変換開始ビットレジスタ７３に転送する。これにより、Ａ／Ｄ変換器６５は、センサ６７から出力される信号をデジタル信号に変換して、Ａ／Ｄ変換の結果を表わす信号を内部の変換結果レジスタ７４に出力する（ステップＳ６０８）。
【０１５６】
ＣＰＵ９２は、コマンドが「４」（ポート制御部６３を制御する命令）の場合には（ステップＳ６０９でＹＥＳ）、ＲＡＭ９６内の受信データの２バイト目のデータをポート制御部６３の制御レジスタ７０に転送する。これにより、ポート制御部６３は、スイッチＳＷに「Ｈ」レベルの信号を出力し、スイッチＳＷをオンにする。これにより、センサ６７の電源がオンとなり、センサ６７は、検知した信号（アナログ信号）をＡ／Ｄ変換器６５に送る（ステップＳ６１０）。
【０１５７】
以上のような、ＣＰＵが上述の周辺機能の制御を一部分担する場合には、ＣＰＵが停止するもモード（スタンバイモードなど）において、周辺機能を実行することができないという問題がある。
【０１５８】
（ＤＴＣによる処理）
図２３は、ＤＴＣによって第２の例を処理する場合のマイクロコンピュータの構成を表わす図である。
【０１５９】
図２３のマイクロコンピュータ９９が、図１７のマイクロコンピュータ９１と相違する点は、ＤＴＣ４１を備える点である。
【０１６０】
ＤＴＣ４１は、ＲＡＭ９６内のベクタテーブルおよびコントロールデータに従って、データ転送を実行する。ＤＴＣ４１は、ＳＩＯ制御部６６から割込要求を受ける。
【０１６１】
図２４は、図２３のＤＴＣによる第２の例の処理手順を表わすフローチャートである。図２５は、図２４に示す処理時に、ＲＡＭ９６内に記憶されているベクタテーブルおよびコントロールデータを表わす図である。第２種類のコントロールデータＨ２，Ｈ３，Ｈ４，Ｈ５の比較データＡは、受信可能ないずれかのコマンドを表わし、比較データＢのアドレスは受信したコマンドのＲＡＭ９６内の格納アドレスである。
【０１６２】
コントロールデータＨ２の比較データＡはコマンド「１」であり、コントロールデータＨ３の比較データＡはコマンド「２」であり、コントロールデータＨ４の比較データＡはコマンド「３」であり、コントロールデータＨ５の比較データＡはコマンド「４」である。コントロールデータＨ２の分岐先アドレス２は、コントロールデータＨ３のアドレスであり、コントロールデータＨ３の分岐先アドレス２は、コントロールデータＨ４のアドレスであり、コントロールデータＨ４の分岐先アドレス２は、コントロールデータＨ５のアドレスである。
【０１６３】
第２種類のコントロールデータＨ２，Ｈ３，Ｈ４，Ｈ５の分岐先アドレス１で指定される第１種類のコントロールデータＨ６，Ｈ７，Ｈ８，Ｈ９の転送元アドレスは、受信した設定データのＲＡＭ９６内の格納アドレスである。
【０１６４】
図２３、図２４、図２５を参照して、まず、ＤＴＣ４１は、ＳＩＯ制御部６６から割込要求を受けると（ステップＳ７０１でＹＥＳ）、ＲＡＭ９６から図２５に示すコントロールデータＨ１を読み出す。ＤＴＣ４１は、コントロールデータＨ１に従って、転送元アドレスで指定されるＳＩＯ制御部６６の受信レジスタ９５内の受信データを転送先アドレスで指定されるＲＡＭ９６内へ転送する（ステップＳ７０２）。
【０１６５】
次に、ＤＴＣ４１は、コントロールデータＨ１にチェイン転送が許可されている（ＣＨＥＮ＝１）ため、ＲＡＭ９６から図２５に示すコントロールデータＨ２を読み出す（ステップＳ７０３）。
【０１６６】
ＤＴＣ４１は、コントロールデータＨ２に従って、比較データＢのアドレスで指定されるＲＡＭ９６内の受信データの先頭の１バイト（コマンド）を比較データＢとして読み出す。ＤＴＣ４１は、比較データＡ（＝１）と、読み出した比較データＢ（コマンド）とを比較する。
【０１６７】
ＤＴＣ４１は、比較結果が一致の場合には（ステップＳ７０４でＹＥＳ）、ステップＳ７０５に進む。ＤＴＣ４１は、比較結果が不一致の場合には（ステップＳ７０４でＮＯ)、ステップＳ７０６に進む。
【０１６８】
ステップＳ７０５において、ＤＴＣ４１は、ＲＡＭ９６から図２５に示すコントロールデータＨ６を読み出す。ＤＴＣ４１は、コントロールデータＨ６に従って、転送元アドレスで指定されるＲＡＭ９６内の受信データの後半の１バイト（＝「１」）を転送先アドレスで指定されるタイマ９３のイネーブルレジスタ９４に転送する。これにより、タイマ９３が起動する。
【０１６９】
ステップＳ７０６において、ＤＴＣ４１は、ＲＡＭ９６から図２５に示すコントロールデータＨ３を読み出す。ＤＴＣ４１は、コントロールデータＨ３に従って、比較データＢのアドレスで指定されるＲＡＭ９６内の受信データの先頭の１バイト（コマンド）を比較データＢとして読み出す。ＤＴＣ４１は、比較データＡ（＝２）と、読み出した比較データＢ（コマンド）とを比較する。
【０１７０】
ＤＴＣ４１は、比較結果が一致の場合には（ステップＳ７０７でＹＥＳ）、ステップＳ７０８に進む。ＤＴＣ４１は、比較結果が不一致の場合には（ステップＳ７０７でＮＯ)、ステップＳ７０９に進む。
【０１７１】
ステップＳ７０８において、ＤＴＣ４１は、ＲＡＭ９６から図２５に示すコントロールデータＨ７を読み出す。ＤＴＣ４１は、コントロールデータＨ７に従って、転送元アドレスで指定されるＲＡＭ９６内の受信データの後半の１バイトのデータを転送先アドレスで指定されるＳＩＯ制御部６６の送信レジスタ７１に転送する。これにより、ＳＩＯ制御部６６は、受信したデータを外部デバイス６８へシリアル送信する。
【０１７２】
ステップＳ７０９において、ＤＴＣ４１は、ＲＡＭ９６から図２５に示すコントロールデータＨ４を読み出す。ＤＴＣ４１は、コントロールデータＨ４に従って、比較データＢのアドレスで指定されるＲＡＭ９６内の受信データの先頭の１バイト（コマンド）を比較データＢとして読み出す。ＤＴＣ４１は、比較データＡ（＝３）と、読み出した比較データＢ（コマンド）とを比較する。
【０１７３】
ＤＴＣ４１は、比較結果が一致の場合には（ステップＳ７１０でＹＥＳ）、ステップＳ７１１に進む。ＤＴＣ４１は、比較結果が不一致の場合には（ステップＳ７１０でＮＯ)、ステップＳ７１２に進む。
【０１７４】
ステップＳ７１１において、ＤＴＣ４１は、ＲＡＭ９６から図２５に示すコントロールデータＨ８を読み出す。ＤＴＣ４１は、コントロールデータＨ８に従って、転送元アドレスで指定されるＲＡＭ９６内の受信データの後半の１バイト（＝「１」）を転送先アドレスで指定されるＡ／Ｄ変換器６５の変換開始ビットレジスタ７３に転送する。これにより、
Ａ／Ｄ変換器６５は、センサ６７から出力される信号をデジタル信号に変換して、Ａ／Ｄ変換の結果を表わす信号を内部の変換結果レジスタ７４に出力する。
【０１７５】
ステップＳ７１２において、ＤＴＣ４１は、ＲＡＭ９６から図２５に示すコントロールデータＨ５を読み出す。ＤＴＣ４１は、コントロールデータＨ５に従って、比較データＢのアドレスで指定されるＲＡＭ９６内の受信データの先頭の１バイト（コマンド）を比較データＢとして読み出す。ＤＴＣ４１は、比較データＡ（＝４）と、読み出した比較データＢ（コマンド）とを比較する。
【０１７６】
ＤＴＣ４１は、比較結果が一致の場合には（ステップＳ７１３でＹＥＳ）、ステップＳ７１４に進む。
【０１７７】
ステップＳ７１４において、ＤＴＣ４１は、ＲＡＭ９６から図２５に示すコントロールデータＨ９を読み出す。ＤＴＣ４１は、コントロールデータＨ９に従って、転送元アドレスで指定されるＲＡＭ９６内の受信データの後半の１バイト（＝「１」）を転送先アドレスで指定されるポート制御部６３の制御レジスタ７０に転送する。ポート制御部６３は、スイッチＳＷに「Ｈ」レベルの信号を出力し、スイッチＳＷをオンにする。これにより、センサ６７の電源がオンとなり、センサ６７は、検知した信号（アナログ信号）をＡ／Ｄ変換器６５に送る。
【０１７８】
以上のような第１種類および第２種類のコントロールデータに基づくデータ転送によって、周辺機能を実行する場合には、ＣＰＵが停止するモード（スタンバイモードなど）でも、周辺機能を実行することができる。
【０１７９】
以上のように、本実施の形態によれば、ＣＰＵを停止させるモード（スリープモード、スタンバイモードなど）において、ステイタスの違いによって、異なるデータを転送し、異なる周辺機能を実行することができる。
【０１８０】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【０１８１】
１，６１，８１，９１，９８，９９  マイクロコンピュータ、１０，４１，８９ ＤＴＣ、１２  記憶部、１３  割り込み制御回路、１４，６２，７６，９２，２０３  ＣＰＵ、１５  データバス、１６  アドレスバス、１７  周辺機能制御部、２１  ＤＴＣ起動要因選択回路、２２  優先順位判定部、２３  ＤＴＣ起動制御部、２４  ステート管理部、２５  転送制御部、２６  アドレス制御部、２７  データバッファ、２８  コントロールレジスタ、２９  割り込み制御部、３０  割り込み許可制御部、３１  割り込み禁止制御部、６３  ポート制御部、６４  定周期タイマ、６５  Ａ／Ｄ変換器、６６  ＳＩＯ制御部  ６７  センサ、６８  外部デバイス、６９  電源、７０  制御レジスタ、７１  送信レジスタ、７２  変換完了フラグレジスタ、７３  変換開始ビットレジスタ、７４  変換結果レジスタ、７５  ＤＴＣ、７７  センサ安定化待ちタイマ、７８  カウンタ、７９  イネーブルレジスタ、９３  タイマ、９４  イネーブルレジスタ、９５  受信レジスタ、９６  ＲＡＭ、２０１  マイクロコンピュータ、２０２  データ転送制御回路、２０４  記憶部。
【図１】
2014126974.tif 000003
【図２】
2014126974.tif 000004
【図３】
2014126974.tif 000005
【図４】
2014126974.tif 000006
【図５】
2014126974.tif 000007
【図６】
2014126974.tif 000008
【図７】
2014126974.tif 000009
【図８】
2014126974.tif 000010
【図９】
2014126974.tif 000011
【図１０】
2014126974.tif 000012
【図１１】
2014126974.tif 000013
【図１２】
2014126974.tif 000014
【図１３】
2014126974.tif 000015
【図１４】
2014126974.tif 000016
【図１５】
2014126974.tif 000017
【図１６】
2014126974.tif 000018
【図１７】
2014126974.tif 000019
【図１８】
2014126974.tif 000020
【図１９】
2014126974.tif 000021
【図２０】
2014126974.tif 000022
【図２１】
2014126974.tif 000023
【図２２】
2014126974.tif 000024
【図２３】
2014126974.tif 000025
【図２４】
2014126974.tif 000026
【図２５】
2014126974.tif 000027