(57)【要約】【課題】１つのフレームとして転送するデータの長さを変更可能にすることシリアル制御装置を提供する。【解決手段】任意の長さのシリアルデータを転送するシリアル制御装置であって、シリアルデータの最終データを含むか否かを示す最終情報を使用して、最終情報が最終データを含まないことを示す場合、シリアルデータのうち前記予め設定された転送単位の長さのデータを転送し、前記最終情報が前記最終データを含むことを示す場合、前記シリアルデータのうち未転送部分を転送する。【選択図】図１
2010257280.tif 000002
【特許請求の範囲】
【請求項１】
任意の長さのシリアルデータを転送するシリアル制御装置であって、
前記シリアルデータの最終データを含むか否かを示す最終情報を使用して、前記最終情報が最終データを含まないことを示す場合、前記シリアルデータのうち前記予め設定された転送単位の長さのデータを転送し、前記最終情報が前記最終データを含むことを示す場合、前記シリアルデータのうち未転送部分を転送するシリアル制御装置。
【請求項２】
前記転送単位以下のシリアルデータと、前記最終情報とを対応づけて格納するＦＩＦＯ（First-In First-Out）制御部と、
前記最終情報が最終データを含まないことを示す場合、前記転送単位の長さのデータを転送し、前記最終情報が前記最終部分を含むことを示す場合、前記未転送部分を転送するシリアル転送部と、を備えるシリアル制御装置。
【請求項３】
前記シリアル転送部は、前記最終情報が最終データを含まないことを示す場合、次のシリアルデータの転送を続けて行い、前記最終情報が前記最後データを含むことを示す場合、前記未転送部分を転送後、次のシリアルデータの転送を開始するまでに任意の期間を経過させることを特徴とする請求項２記載のシリアル制御装置。
【請求項４】
前記未転送部分の長さを格納するデータ長設定レジスタと、
前記任意の期間を格納する転送間隔設定レジスタと、をさらに備え、
前記シリアル転送部は、前記最終情報が最終データを含むことを示す場合、前記データ長設定レジスタに格納されている前記未転送部分の長さを用いて、前記シリアルデータを転送し、前記転送間隔設定レジスタに格納される任意の期間を用いて、前記任意の期間を経過させ、前記任意の期間経過後、次のシリアルデータの転送を開始することを特徴とする請求項３記載のシリアル制御装置。
【請求項５】
前記ＦＩＦＯ制御部は、自装置に接続する複数の装置とシリアルデータの転送をするか否かを示す装置情報をさらに有し、
前記シリアル転送部は、前記装置情報に基づいて、シリアルデータを転送する装置を選択することを特徴とする請求項２乃至４のいずれか一項に記載のシリアル制御装置。
【請求項６】
前記最終情報は、１つのフレームに含まれるシリアルデータの最後尾を最終データとすることを特徴とする請求項１乃至５のいずれか一項に記載のシリアル制御装置。
【請求項７】
前記１乃至６のいずれか一項に記載のシリアル制御装置を搭載した半導体装置。
【請求項８】
任意の長さのシリアルデータを転送するシリアルデータの転送方法であって、
前記シリアルデータの最終データを含むか否かを示す最終情報を使用して、前記最終情報が最終データを含まないことを示す場合、前記シリアルデータのうち前記予め設定された転送単位の長さのデータを転送し、前記最終情報が前記最終データを含むことを示す場合、前記シリアルデータのうち未転送部分を転送するシリアルデータの転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、本発明は、クロック同期式シリアル・インタフェース等のシリアル制御装置に関する。
【背景技術】
【０００２】
シリアル通信では、送受信先の装置に応じて１フレームの長さを変更することが必要とされる。
例えば、特許文献１には、シリアル制御ブロックを複数で構成するシリアル制御装置が開示されている。図１２に特許文献１に記載されているシリアル制御装置の構成を示す。当該シリアル制御装置は、フレームのビット長が可変なデータをシリアル装置に書き込むことを目的としている。
具体的には、図１２において、カスケード接続された周辺装置（シリアル制御装置）１０は、サイズの異なる少なくとも２つのレジスタ５１、５２、５３を持っている。入力データは、クロック信号によって、同時にシフト・レジスタ４０を通して連続シフトする。シフト・レジスタ４０のシリアル出力は、カスケード接続された周辺装置１０のデータ出力端子１８から出力する。
【０００３】
カウンタ２０は、クロック信号に呼応して状態をインクリメントする。カウンタ２０がレジスタ５１、５２、５３のうちの１つと一致し、データ信号が無効になるとき、デコード３０、３１、３２、３３、３５は、カウンタ２０の状態に呼応してロード信号のグループのうち１つを動作させる。
【０００４】
シフト・レジスタ４０のサイズと一致している最大値に達し、データ信号に呼応してカウンタ２０が無効になる様に、カウンタ２０をリセットする。
【０００５】
図１２の構成では、周辺装置１０へ、他の周辺装置６０、７０がカスケード接続されている。フレームのビット長がシフト・レジスタ４０のサイズを超える場合、周辺装置６０、７０を用いてデータをシリアル装置へ書き込む。フレームのビット長のデータが複数の周辺装置へ書き込まれた後、データ転送を実施する。このようにして、フレームのビット長に応じたデータ転送を実現している。
【０００６】
また、特許文献２には、別のシリアル制御装置の構成が開示されている。図１３、１４に特許文献２に開示されているシリアル制御装置の構成を示す。連続したカスケード接続した複数のＤＳＰＩｓから連結されたビットから成るＤＳＩフレームの転送を許可する。連結したフレームは８〜６４ビットで構成されている。
【０００７】
図１３および図１４は、ＭＰＣ５５５４／ＭＰＣ５５５３において、どのように構成されるかを示している。ＭＰＣ５５５４（マスタ）において、ＤＳＰＩ＿ＡのＳＯＵＴは、ＤＳＰＩ＿Ｂ（スレーブ）のＳＩＮと接続される。ＭＰＣ５５５３（マスタ）において、ＤＳＰＩ＿ＢのＳＯＵＴは、ＤＳＰＩ＿Ｃ（スレーブ）のＳＩＮと接続する。
ＭＰＣ５５５４において、ＤＳＰＩ＿Ｂ（スレーブ）のＳＯＵＴは、ＤＳＰＩ＿Ｃなど（スレーブ）のＳＩＮに入力接続する。ＭＰＣ５５５３において、ＤＳＰＩ＿Ｃ（スレーブ）のＳＯＵＴは、ＤＳＰＩ＿Ｄなど（スレーブ）のＳＩＮに接続する。
オンチップＤＳＰＩスレーブのＳＯＵＴは、外部のＳＰＩスレーブのＳＩＮと接続する。外部のＳＰＩスレーブのＳＯＵＴはＤＳＰＩ＿Ａマスタ（ＭＰＣ５５５４）／ＤＳＰＩ＿Ｂ（ＭＰＣ５５５３）のＳＩＮと接続する。
【０００８】
ＭＰＣ５５５４  ＤＳＰＩ＿ＡマスタとＭＰＣ５５５３  ＤＳＰＩ＿Ｂマスタは、全ての転送を制御する。スレーブＤＳＰＩｓは、転送を開始し、トリガ条件が発生したことをＤＳＰＩ＿Ａ（ＭＰＣ５５５４）／ＤＳＰＩ＿Ｂマスタ（ＭＰＣ５５５３）に伝えるために、トリガ出力信号ＭＴＲＩＧを使用する。
【０００９】
オンチップＤＳＰＩスレーブに連続するデータ列が存在するとき、転送を開始する。ＤＳＰＩマスタのＭＴＲＩＧ信号を受信する。ＤＳＰＩスレーブがｈｔ信号を送出するとき、他のＤＳＰＩスレーブからＤＳＰＩマスタにトリガ信号（ＭＴＲＩＧ信号）を送出する。
【００１０】
ＤＳＰＩｘ＿ＤＳＩＣＲにおけるＭＴＯＣＮＴフィールドは、転送されるビット数を設定する。ＭＴＯＣＮＴフィールドは、ＤＳＰＩマスタとすべてのＤＳＰＩスレーブのための選択されたＤＳＰＩｘ＿ＣＴＡＲｓについて、全てのＦＭＳＺフィールドの合計値と一致している必要がある。
【００１１】
シリアル周辺装置は、フレーム長が２４ビット、３２ビット、４８ビットいったＣＰＵ（Central Processing Unit）のデータ・バス幅より長いフレームを送受信する必要とする場合がある。１つのフレーム内に含まれるシリアルデータが一定時間以内に転送（シリアル通信）されない場合、フレーミング・エラーが発生する場合がある。例えば、ＣＰＵのデータ・バス幅のデータ転送後、次のビットのデータ転送が所定の時間を超える場合、エラーが発生することがあった。特許文献１および特許文献２の構成では、複数のシリアル制御装置をカスケード接続することによって、異なるフレーム長のデータ転送を実現していた。
【００１２】
その理由の一つとして、パッケージに含まれる端子それぞれに機能が割り当てられているという事情がある。具体的には、シングルチップ・マイクロコンピュータでは、シリアル制御装置、タイマ装置といった兼用機能が割り振られており、実装の容易さやパッケージ価格を考慮して比較的小ピンの６４ピンから１７６ピン程度のＱＦＰ（Quad Flat Package）パッケージを用いる事が多い。目的の周辺装置に用いられる端子以外は、別の周辺装置の機能が割り振られている。このため、シリアル制御装置を追加しようとする場合、シリアル制御装置の端子を、一つ目のシリアル制御装置に割り当てられた端子とは別の端子に割り振ろうとしても、他の機能が割り振られているので、セットとし成り立たないといった事情があった。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】米国特許第５４５４０９７号明細書
【非特許文献】
【００１４】
【非特許文献１】MPC5553/5554 Microcontroller Reference Manual  Rev. 4.0, Freescale Semiconductor, 2007 April, pp. 914-916(20-48 - 20-50)
【発明の概要】
【発明が解決しようとする課題】
【００１５】
特許文献１では、周辺装置１０を複数使用することによって、ＣＰＵのデータ・バス幅を超えるデータ転送を実現していた。この場合、パッケージ内の各端子は機能が割り当てられているため、周辺装置６０、７０の入出力端子を周辺装置１０に割り当てられた端子とは別の端子に割り当てることはできなかった。
【００１６】
図１２に示すように、周辺装置をカスケード接続した１つのシリアル装置として構成した場合、１つのフレームのビット長がシフト・レジスタ４０の大きさ以下とき、周辺装置６０、７０は無駄になっていた。具体的には、入出力端子を外部と接続していない周辺装置６０、７０は、全く使用されないことになり、回路が無駄となるとともに、回路規模が大きいという問題があった。
【００１７】
また、仮に、パッケージ内において、複数の周辺装置６０、７０の入出力端子へ接続する端子を割り当てた場合、１つのフレームのビット長が、１つのシリアル制御装置が備えるシフト・レジスタ４０の大きさより、長いことを前提とする。従って、１つのフレームのビット長がシフト・レジスタ４０の大きさ以下の場合、パッケージ内に端子をシリアル装置のために確保していたにも関わらず、シリアル制御装置として使用出来ないといった問題があった。
【００１８】
特許文献２についても、特許文献１と同様に、１フレーム分のシフト・レジスタを用いているため、それ以上大きいフレームのデータを連続して転送できず、また、小さいフレームのシリアル通信を行う場合、シフト・レジスタが無駄になるという問題があった。
【００１９】
このように、シリアル制御装置が１つのフレームとして転送するデータの長さを変更可能にすることが要請されていた。
【課題を解決するための手段】
【００２０】
本発明に係るシリアル制御装置の一態様は、任意の長さのシリアルデータを転送するシリアル制御装置であって、前記シリアルデータの最終データを含むか否かを示す最終情報を使用して、前記最終情報が最終データを含まないことを示す場合、前記シリアルデータのうち前記予め設定された転送単位の長さのデータを転送し、前記最終情報が前記最終データを含むことを示す場合、前記シリアルデータのうち未転送部分を転送する。シリアルデータを転送する場合に、最終情報を用いることによって、現在転送中のデータが、任意の長さのシリアルデータ全体の最後の部分であるか否かを検出することが可能になる。これにより、任意の長さのシリアルデータを転送する場合に、転送単位のデータの転送を繰り返し、最後の部分を転送する場合に、未転送部分を転送することを可能とする。これにより、一つのシフト・レジスタへ転送データを格納する場合であっても、任意の長さのシリアルデータを転送することが可能になる。
【００２１】
本発明に係る半導体装置の一態様は、上述したシリアル制御装置を搭載する。
【００２２】
本発明に係るシリアルデータ転送方法の一態様は、任意の長さのシリアルデータを転送するシリアルデータの転送方法であって、前記シリアルデータの最終データを含むか否かを示す最終情報を使用して、前記最終情報が最終データを含まないことを示す場合、前記シリアルデータのうち前記予め設定された転送単位の長さのデータを転送し、前記最終情報が前記最終データを含むことを示す場合、前記シリアルデータのうち未転送部分を転送する。
【発明の効果】
【００２３】
本発明によれば、シリアル制御装置が１つのフレームとして転送するデータの長さを変更可能にすることが可能となる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施形態1に係るシリアル制御装置の構成例を示すブロック図である。
【図２】実施形態1のシリアル転送部とＦＩＦＯ制御部の構成例を示すブロック図である。
【図３】固定されたビット数のシリアル転送の例を示す図である。
【図４】図３の場合のシリアル転送の流れを示すタイミングチャート（１／２）である。
【図５】図３の場合のシリアル転送の流れを示すタイミングチャート（２／２）である。
【図６】任意のビット数のシリアル転送の例を示す図である。
【図７】図６の場合のシリアル転送の流れを示すタイミングチャート（１／３）である。
【図８】図６の場合のシリアル転送の流れを示すタイミングチャート（２／３）である。
【図９】図６の場合のシリアル転送の流れを示すタイミングチャート（３／３）である。
【図１０】本発明の実施形態２に係るシリアル制御装置の構成例を示すブロック図である。
【図１１】実施形態２のシリアル転送部とＦＩＦＯ制御部の構成例を示すブロック図である。
【図１２】従来のシリアル制御装置の構成を示す図である。
【図１３】従来のシリアル制御装置の別の構成を示す図である。
【図１４】従来のシリアル制御装置のさらに別の構成を示す図である。
【発明を実施するための形態】
【００２５】
以下、本発明の実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。各図面において同一の構成または機能を有する構成要素および相当部分には、同一の符号を付し、その説明は省略する。
【００２６】
図１に本発明の実施形態１に係るシリアル制御装置の構成例を示す。シリアル制御装置は、
シリアル転送部Ｂ１、ビット長設定レジスタ（データ長設定レジスタ）Ｂ２、転送間隔設定レジスタＢ３、送受信許可レジスタＢ４、及び、ＦＩＦＯ（First-In First-Out）制御部Ｂ５を備える。
【００２７】
シリアル制御装置は、ＣＰＵとメモリとを少なくとも含む半導体装置（パッケージ）に搭載される。シリアル制御装置は、ＣＰＵバスを介してＣＰＵに接続する。シリアル制御装置では、ＣＰＵの制御の基で、メモリに格納されたプログラムが実行される。具体的には、シリアル制御装置を利用する装置に応じたプログラム（プログラムに含まれる命令群）が、ＣＰＵバスを介してＣＰＵによって実行される。なお、以降の説明において、ＣＰＵがＣＰＵバスを介してシリアル制御装置に命令群（書き込み、読み出しなど）を実行する場合を、単にＣＰＵが実行するように表現する場合がある。
【００２８】
「フレーム」は、シリアルデータ転送において、１回に転送するシリアルデータの単位を示す。フレームの長さは、任意の長さであり、ＣＰＵが実行する命令によって、シリアル制御装置を利用する装置に応じて、決定される。本発明に係るシリアル制御装置は、任意の長さのフレームのシリアルデータを転送することを可能にする。
「転送単位」は、シリアル制御装置において、１回に転送するシリアルデータの長さ示す。転送単位は、シリアル制御装置に備えるシフト・レジスタの大きさ（ビット幅）に応じて決定され、通常、シフト・レジスタの大きさが用いられる。本実施形態では、転送単位として、ワードを用いて説明する。
長さの最小単位は例えば、ビットあるいはワードなどデータの長さを示す単位を用いることができる。本実施形態は、ビットを用いて説明する。
【００２９】
シリアル転送部Ｂ１は、ＦＩＦＯ制御部Ｂ５を用いて、ＣＰＵがＦＩＦＯ制御部Ｂ５に書き込んだデータを外部にシリアル送信し、外部から入力されるデータをシリアル受信する。また、シリアル転送部Ｂ１は、ＦＩＦＯ制御部Ｂ５へデータを送出し、ＣＰＵへＦＩＦＯ制御部Ｂ５からデータを読み出すことを指示する。
具体的には、シリアル転送部Ｂ１は、送受信許可レジスタＢ４に送受信許可信号のトリガが発生すると、ＦＩＦＯ制御部Ｂ５から入力する送信データと、転送間隔設定レジスタＢ３が保持する間隔情報と、ビット長設定レジスタＢ２が保持するビット長情報に従って、シリアル送信すると同時に、外部からデータをシリアル受信し、ＦＩＦＯ制御部Ｂ５へ受信データを送出する。
【００３０】
ビット長設定レジスタＢ２は、転送単位以外のデータを転送する場合に、ＣＰＵによってデータの長さが設定される。転送単位以外のデータの長さは、１フレームのシリアルデータのうち、転送単位の長さのデータを転送した後に、あるいは、転送単位の長さのデータを複数回転送した後に、１フレームのシリアルデータのうち、まだ転送していない未転送部分の長さである。なお、１フレームのシリアルデータの長さが転送単位より小さい場合、１フレームのシリアルデータの長さが設定されることになる。
【００３１】
一般に、ＣＰＵバスＢ６からＦＩＦＯ制御部Ｂ５へ送信データを書き込む場合、書き込むビット長として、８ビット、１６ビット、３２ビットといった有限の値（転送単位）のみ設定できる。そのため、シリアル制御装置が任意の長さのシリアルデータを取り扱う場合、シリアルデータの１フレームのうち、端数データの数を設定する必要がある。ビット長設定レジスタＢ２は、当該端数データの数を保持する。例えば、ＣＰＵからＦＩＦＯ制御部Ｂ５へ１回に書き込める送信データのサイズが１６ビットで、シリアル通信データのフレームが３７ビットで構成される場合、３７−１６＊２＝５となり、ビット長設定レジスタに５ビットが有効となる様に設定する。ビット長設定レジスタＢ２は、ＣＰＵバスＢ６を介してＣＰＵによって書き込まれる。
【００３２】
転送間隔設定レジスタＢ３は、フレーム間、すなわち、一つのシリアルデータのフレームと、次に転送するシリアルデータのフレームとの間の時間間隔（次のフレームの転送を開始するまでの待ち時間）を設定する。フレーム間において、転送間隔設定が必要な理由は、通信ライン上のシリアル受信を行う相手方装置の処理時間を確保するためである。転送間隔設定レジスタＢ３は、ＣＰＵバスＢ６を介してＣＰＵによって書き込まれる。
【００３３】
送受信許可レジスタＢ４は、送受信動作を許可するトリガを発生させる。送受信許可レジスタＢ４には、送受信許可がＣＰＵバスＢ６を介してＣＰＵによって書き込まれる。具体的には、シリアル通信を開始するとき、ＣＰＵは、転送間隔設定レジスタＢ３やビット長設定レジスタＢ２等の各制御レジスタへ、初期設定をした後、送受信許可レジスタＢ４の送受信許可信号を有効にして送受信許可トリガを発生させる。
【００３４】
ＦＩＦＯ制御部Ｂ５は、ＣＰＵが書き込む送信データ（送信ＦＩＦＯ）とＣＰＵが読み出す受信データ（受信ＦＩＦＯ）の制御を行う。ＦＩＦＯ制御部Ｂ５は、シフト・レジスタの大きさのシリアルデータを格納するデータ領域と、シリアルデータ最終ワード（以下、適宜「ＥＤＬ」という）を格納するＥＤＬ領域とを一組として、任意の複数組を格納する領域を備える。ＦＩＦＯ制御部Ｂ５については図２を用いて後述する。「シリアルデータ最終ワード」は、転送中の１つのフレームのシリアルデータのうち、データ領域に格納されるシリアルデータに最終データ（最終ワード）が含まれているか否かを示す付加情報である。シリアルデータ最終ワードは、「最終情報」ともいう。
【００３５】
図１に示す構成を用いることによって、シリアル制御装置は、１フレームのシリアルデータ（任意の長さのシリアルデータ）をシリアル転送する機能を実現する。具体的には、シリアルデータの最終データを含むか否かを示すＥＤＬ（最終情報）を使用して、ＥＤＬが最終データを含まないことを示す場合、シリアルデータのうち予め設定された転送単位の長さのデータを転送し、ＥＤＬが最終データを含むことを示す場合、シリアルデータのうち未転送部分を転送する。ＥＤＬは、ＦＩＦＯ制御部Ｂ５に保持するデータ領域のシリアルデータが、最終データを含むか否かを示す。ＥＤＬを用いることにより、シリアル転送部Ｂ１は、転送するシリアルデータが、１つのフレームに含まれるシリアルデータの最後の部分であり、次の転送するシリアルデータが別のフレームになることを検出することができる。また、シリアル転送部Ｂ１は、転送するシリアルデータが、１つのフレームの途中の部分であり、次に転送するシリアルデータは、同じフレーム内のデータであることを把握することができる。
【００３６】
図２にシリアル転送部Ｂ１及びＦＩＦＯ制御部Ｂ５の詳細な構成例を示す。シリアル転送部Ｂ１は、クロック制御部（ＣＬＫ制御部）Ｂ１１、シフト・レジスタＢ１２、ＳＯ（Slave Out）出力レジスタＢ１３、転送制御部Ｂ１４、及び、送信データ要求制御部Ｂ１５を備える。ＦＩＦＯ制御部Ｂ５は、データ領域Ｂ５１とＥＤＬ領域Ｂ５２とを一組とするＦＩＦＯバッファＢ５３を備える。
【００３７】
図２では、例えば、１フレームの長さを１３ビット長の場合の例について説明する。ＣＰＵからＦＩＦＯ制御部Ｂ５へ送信データを書き込むとき、シリアル送信するデータの付加情報であるＥＤＬも併せて、ＦＩＦＯ制御部Ｂ５へ書き込む。
【００３８】
ＣＰＵから、ＦＩＦＯ制御部Ｂ５への送信データの書き込みの開始は、送受信許可レジスタＢ４への許可を開始する前に行っても送受信許可レジスタへの許可を開始する後に行っても良い。ただし、送受信許可レジスタへの許可後であれば、送信エンプティ状態からの動作となる。本例では、送受信許可レジスタへの許可前に、ＦＩＦＯ制御部Ｂ５へ送信データを書き込んだ状態から動作する場合について説明をする。
【００３９】
まず、ＦＩＦＯ制御部Ｂ５について説明する。ここでは、ＦＩＦＯバッファＢ５３は、データ領域Ｂ５１を８ビット、ＥＤＬ領域Ｂ５２を１ビットの場合を一例として説明する。従って、ＦＩＦＯバッファＢ５３は、一組９ビットの領域を任意の数備える。図２では、ＦＩＦＯバッファＢ５３を、送信データを格納する送信ＦＩＦＯと受信データを格納する受信ＦＩＦＯとを区別しないで示しているが、送信ＦＩＦＯと受信ＦＩＦＯとを区別して設けていてもよい。あるいは、送信データを送出した領域に、同じシリアル通信で受信する受信データを書き込むような手順にしてもよい。以降では、説明を簡単にするため、送信データを格納する領域を送信ＦＩＦＯ、受信データを格納する領域を受信ＦＩＦＯとして説明するが、この手順に限られるわけではない。
【００４０】
データ領域Ｂ５１は、転送するシリアルデータを格納する。データ領域Ｂ５１の大きさは、シフト・レジスタＢ１２の大きさと一致するか、少なくともシフト・レジスタＢ１２の大きさの領域を有する。
ＥＤＬ領域Ｂ５２は、ＥＤＬを格納する。ＥＤＬは、上述したように、転送中の１つのフレームのシリアルデータのうち、データ領域に格納されるシリアルデータに最終データが含まれているか否かを示す付加情報である。ＥＤＬ領域Ｂ５２に、ＥＤＬとして、有効（Ｈ）が書き込まれている場合、対応するデータ領域Ｂ５１に書き込まれているシリアルデータは、最終データを含むことを意味する。また、ＥＤＬ領域Ｂ５２に、無効（Ｌ）が書き込まれている場合、対応するデータ領域に書き込まれているシリアルデータは、最終データを含まないことを意味する。すなわち、当該データ領域Ｂ５１に格納されているシリアルデータに続くシリアルデータが存在し、一つのフレームのシリアルデータとして転送することが必要とされる。
【００４１】
次に、シリアル転送部Ｂ１について説明する。
ＣＬＫ制御部Ｂ１１は、システムクロックの分周回路またはボーレート・レジスタ等を用いて、通信用のシリアルクロック（ＳＣＫ）を生成する。ＣＬＫ制御部Ｂ１１は、転送制御部Ｂ１４から送信出力ＦＦロード要求を受けると、通信用のシリアルクロック（ＳＣＫ）に同期してシフト要求を生成する。後述するタイミングチャート（図４、５、７−９）では、システムクロックの８分周をＳＣＫとする波形を記載している。
ＣＬＫ制御部Ｂ１１は、転送制御部Ｂ１４からシフト終了要求を入力すると、送受信（１ワード分若しくはビット長設定レジスタのビット情報分）が終了したと認識し、ＦＩＦＯ制御部Ｂ５へ受信ＦＩＦＯ書き込み要求（シリアル転送終了）を出力する。
ＣＬＫ制御部Ｂ１１は、通信用のシリアルクロック周期から、送信カウント要求を転送制御部Ｂ１４へ送出する。
【００４２】
シフト・レジスタＢ１２は、ＦＩＦＯ制御部Ｂ５からロードＥＮ信号を入力すると、ＦＩＦＯバッファＢ５３のデータ領域Ｂ５１から送信データをロードする。シフト・レジスタＢ１２は、送信出力ＦＦロード要求以降、ＣＬＫ制御部Ｂ１１によって生成されたシフト要求に従って、自己のシフト・レジスタＢ１２に格納したデータをシフトすると共に、新規データをＳＩ（Slave In）端子より入力する。
ＣＬＫ制御部Ｂ１１からの受信ＦＩＦＯ書き込み要求が発生し、ＦＩＦＯ制御部Ｂ５が読み出せるタイミングになると、受信ＦＩＦＯ書き込み応答タイミングで、有効なシフト・レジスタＢ１２の内容をＦＩＦＯバッファＢ５３のデータ領域Ｂ５１へ、全てロードする。
【００４３】
ＳＯ出力レジスタＢ１３は、転送制御部Ｂ１４から送信出力ＦＦロード要求を受けると、シフト・レジスタＢ１２に格納された送信データをロードし、ＳＯにシリアルデータを出力する。シフト・レジスタＢ１２へのシフト要求と、送信出力ＦＦロード要求によるシフト・レジスタＢ１２からロードは、互い違いに、送受信データの送受信がシフト・レジスタＢ１２のビット数分行われるまで、順次行う。
【００４４】
転送制御部Ｂ１４は、シリアルデータのビット送出ごとに（ＦＩＦＯ制御部Ｂ５からシフト・レジスタＢ１２へ送信データをロードするごとに）、送信出力ＦＦロード要求を送出する。また、送信データ（１ワード分若しくはビット長設定レジスタのビット情報分）が終了したことを示すシフト終了要求を送出する。送信出力ＦＦロード要求は、シリアルクロックに同期して出力する。シフト終了要求は、送信データの最終ビットに、シリアルクロックに同期して出力する。また、転送制御部Ｂ１４は、シフト量カウンタを備え、転送単位（シフト・レジスタの大きさ）またはビット長設定レジスタＢ２に設定された値を用いて、カウント動作を行う。転送制御部Ｂ１４は、シフト量カウンタの値を用いて、送信データのビット長及び最終ビットを検出する。
【００４５】
転送制御部Ｂ１４は、ロードＥＮ信号の状態に応じて、現在転送中の送信データに対応するＥＤＬを確認し、ＥＤＬが有効／無効に基づいて、送信出力ＦＦロード要求を送出する。具体的には、転送制御部Ｂ１４は、ＥＤＬが無効だったとき、直ぐに、送信を開始する様に、送信出力ＦＦロード要求信号を送出する。シリアル通信の最初の転送では、この状態にする。逆に、ＥＤＬが有効だったとき、転送制御部Ｂ１４は、転送間隔設定レジスタＢ３で設定された設定値に従って、シリアルデータ転送間隔時間分、カウントし、転送間隔時間経過後、送信出力ＦＦロード要求を送出する。
【００４６】
これは、ＥＤＬが無効だったとき、１つのフレームの連続する一連のシリアルデータとして、シリアルデータを通信ラインに送出する。逆に、ＥＤＬが有効だったとき、一つのフレームと他のフレームの切れ目になることを示している。このため、転送間隔設定レジスタＢ３に設定された転送間隔情報の時間分、通信ラインへのシリアルデータの送出を空ける。これにより、通信ライン上の受信装置側が、１つ前のフレームを処理するための最低限必要な時間を確保できる様にする。
【００４７】
転送制御部Ｂ１４は、本実施形態では、受信ＦＩＦＯ書き込み要求（シリアル転送終了）を受けとっているが、ＣＳＩ（ｃｌｏｃｋｃｋｅｄ  Ｓｅｒｉａｌ  Ｉｎｔｅｒｆａｃｅ）およびＳＰＩ等と呼ばれるクロック同期式シリアル・インタフェースでは、シリアルクロックに同期して出力するので、シフト終了要求タイミングと、シリアルクロックがあると、受信ＦＩＦＯ書き込み要求（シリアル転送終了）がいつ発生するか認識できる。転送制御部Ｂ１４は、受信ＦＩＦＯ書き込み要求（シリアル転送終了）後、シリアルデータ転送間隔のカウントを開始し、次の送信データ（ワード）要求のロードＥＮが、所定の転送間隔より短い間に、有効になっても、所定のカウントが終了するまで、送信出力ＦＦロード要求を送出しない。
【００４８】
転送制御部Ｂ１４は、送信出力ＦＦロード要求およびシフト要求終了信号を、ＥＤＬに応じて、次に示すように送出する。
（１）ＥＤＬが無効であったとき、転送制御部Ｂ１４は、シフト・レジスタＢ１２のビット幅の数、シリアルクロックに同期して、送信出力ＦＦロード要求を送出する。シフト・レジスタＢ１２のビット幅の数のカウントが終了したとき、最後のビットに対応する送信出力ＦＦロード要求を送出すると共に、シフト終了要求を送出する。
（２）ＥＤＬが有効であったとき、転送制御部Ｂ１４は、ビット長設定レジスタＢ２に設定されたビット長情報の数、シリアルクロックに同期して、送信出力ＦＦロード要求を送出する。ビット長情報の数の最後のビットに対応する送信出力ＦＦロード要求を出するときに、シフト終了要求を送出する。
【００４９】
転送制御部Ｂ１４は、ＣＬＫ制御部Ｂ１１から送信カウント要求を受け取ると、ビット単位に、送信出力ＦＦロード要求を行う。これにより、送信出力ＦＦロード要求の送出間隔は、シリアルクロックに同期して生成される。
【００５０】
送信データ要求制御部Ｂ１５は、シリアル通信の最初の転送では、送受信許可信号を、送受信許可レジスタから受け取った場合、ＦＩＦＯ制御部Ｂ５への送信データ要求信号を有効にすることによって、ＦＩＦＯ制御部Ｂ５へ送信データ（１ワード分）の送出要求を行う。
送信データ要求制御部Ｂ１５は、シリアル通信の２ワード目以降の転送（１つのフレームのシリアルデータのうち、二つ目以降の転送単位の転送）では、１つ前の受信データをＦＩＦＯ制御部Ｂ５への書き込み終了を示す受信ＦＩＦＯ書き込み応答が応答状態である場合、ＦＩＦＯへ送信データの送出要求を行う。受信ＦＩＦＯ書き込み応答が応答状態である場合とは、ＦＩＦＯ制御部Ｂ５から送信データ要求制御部Ｂ１５へ、受信ＦＩＦＯ書き込み応答が送信されている状態をいう。
【００５１】
図２に示すシリアル転送部Ｂ１とＦＩＦＯ制御部Ｂ５の構成について説明したが、所定の動作について説明を追加する。図２の例では、ＦＩＦＯ制御部Ｂ５がロードＥＮを送出すると、送信データ要求制御部Ｂ１５は、ＦＩＦＯ制御部Ｂ５への送信データ要求を受け取ったことを認識して、送信データ要求を無効状態に戻す。
図２の例では、送信データ要求待ち状態であることを、送信データ要求とロードＥＮのハンドシェークで行っているが、送信データ要求がパルス状の信号で、ＦＩＦＯ制御部Ｂ５で、送信データ要求待ちを、行っても良い。
【００５２】
図２に示すシリアル制御装置の構成において、送信データ要求は次の手順で実施される。ＦＩＦＯ制御部Ｂ５は、送信データ要求に対して、ＦＩＦＯバッファＢ５３に有効な送信データがあるとき、シフト・レジスタＢ１２に送信データを送出し、転送制御部Ｂ１４へＥＤＬを送出し、有効データであることを示すロードＥＮ信号を有効にする。送信データ要求に対して、ＦＩＦＯバッファＢ５３に有効な送信データがないとき、ＣＰＵによって送信データとＥＤＬとがＦＩＦＯバッファＢ５３へ書き込まれるまで待ち、有効データが準備できた段階で、ロードＥＮを有効にする。
【００５３】
また、受信ＦＩＦＯ書き込み要求は次の手順で実施される。シフト・レジスタＢ１２に有効な受信データが溜まったタイミングでは、ＣＬＫ制御部Ｂ１１は、ＦＩＦＯ制御部Ｂ５へ受信ＦＩＦＯ書き込み要求（シリアル転送終了）を送出する。ＦＩＦＯ制御部Ｂ５は、ＦＩＦＯバッファＢ５３がＦＵＬＬ状態でなく、ＦＩＦＯバッファＢ５３にシフト・レジスタの内容を書き込めるスペースがあるとき、有効なシフト・レジスタＢ１２の内容をＦＩＦＯバッファＢ５３へロードすると共に、受信ＦＩＦＯ書き込み応答を送信データ要求制御部Ｂ１５へ送出する。これにより、ＦＩＦＯ制御部Ｂ５は、受信ＦＩＦＯ書き込み応答を送出することによって、次の送信データをシフト・レジスタＢ１２へロードする様に送信データ要求制御部Ｂ１５へ催促する。送信データ要求制御部Ｂ１５が送信データ要求をＦＩＦＯ制御部Ｂ５へ送出すると、ＦＯＦＯ制御部Ｂ５は、次にシリアル転送する送信データをシフト・レジスタＢ１２へロードすることが可能になる。
【００５４】
また、転送制御部Ｂ１４は、ＥＤＬが有効のとき、連続しないシリアルデータとシリアルデータとの間、すなわちフレームの切り替わり、と認識して、転送間隔設定レジスタＢ３が保持する転送間隔情報を有効にするためのカウント値を設定する。
【００５５】
また、転送制御部Ｂ１４は、ＥＤＬが有効のとき、ビット長設定レジスタＢ２が保持するビット長情報を有効にし、ビット長情報に応じて、送信出力ＦＦロード要求とシフト終了要求とを送出する。ビット長設定レジスタＢ２は、ＣＰＵ周辺バスの書き込み単位（シフト・レジスタのビット幅）以下分の設定値を有する。通信ライン上で、最後のデータを書き込むとき、ＥＤＬが有効となることで、ビット長設定レジスタＢ２が保持するビット長情報が有効となる。また、ＥＤＬが無効のとき、ＣＰＵ周辺バスの書き込み単位の最大値（例えば、１６ビット長）が有効となる。通信の１フレーム長は、ＥＤＬが有効な期間（例：１６ビット）×ｎ個＋ビット長情報の和となり、その期間、連続して通信を行える様にする。ビット長設定レジスタＢ２は、ＥＤＬが無効のとき転送単位（１ワード）の長さが設定される。しかしながら、ＥＤＬが無効のとき、転送制御部Ｂ１４は、ビット長設定レジスタＢ２を参照しないで転送単位を用いてもよい。この場合、ビット長設定レジスタＢ２は、ＥＤＬが有効のときの用いる長さあるいは不定値が設定される。
【００５６】
次に、シリアル制御装置の動作を図３〜図５を用いて説明する。まず、図３に示すように、１フレーム８ビットのシリアルデータを続けて転送する場合を説明する。図３に示すシリアルデータ転送は、従来の技術と同様の動作をする場合を説明するものである。通信速度は固定であり、シリアルデータは、ＬＳＢ  Ｆａｓtの８ビット長であることを前提とする。送信データは、４７Ｈ（８ビット）、０８Ｈ（８ビット）、受信データは、６ＣＨ（８ビット）、０ＤＨ（８ビット）である場合を一例として説明する。以降の説明では、図４，５のタイミングチャートに記載した符号Ｔｘ（ｘ＞０の整数）を用いて任意のタイミングを示す。
【００５７】
Ｔ１では、シリアル通信を開始するとき、ＣＰＵは、ＣＰＵバスＢ６を介して転送間隔設定レジスタＢ３に間隔情報を設定し、ビット長設定レジスタＢ２にビット長情報を設定する。転送制御部Ｂ１４は、転送間隔設定レジスタＢ３に保持する間隔情報とビット長設定レジスタＢ２に保持するビット長情報とを自装置内に格納し、初期設定を行う。
【００５８】
Ｔ２では、Ｔ１の処理の後、ＣＰＵは、ＣＰＵバスＢ６を介して送受信許可レジスタＢ４の送受信許可信号を有効にして、送信データ要求制御部Ｂ１５へシリアル転送開始要求を行う。
Ｔ３では、送受信許可レジスタＢ４から、送受信許可信号が送出されると、送信データ要求制御部Ｂ１５は、ＦＩＦＯ制御部Ｂ５へ送信データ要求を行う。具体的には、送信データ要求制御部Ｂ１５は、シリアル通信の最初の転送において、送受信許可信号を送受信許可レジスタＢ４から受け取った時、ＦＩＦＯ制御部Ｂ５へ送出する送信データ要求信号を有効にする。この送信データ要求は、基本的にシフト・レジスタへの書き込み単位ごと（転送単位ごと）に行う。
【００５９】
Ｔ４では、ＦＩＦＯ制御部Ｂ５は、送信データ要求を受け取ると、ＦＩＦＯ制御部Ｂ５内のＦＩＦＯバッファＢ５３（送信ＦＩＦＯ）に、有効な送信データが存在しているか、または、有効なデータがＣＰＵからＦＩＦＯ制御部Ｂ５へ送出されてなく、ＥＭＰＴＹ状態であるかを判断する。判断した結果、有効な送信データがなければ、ロードＥＮの送出を延期し、有効な送信データがあれば、ＥＤＬと送信ＦＩＦＯの情報と共に、ロードＥＮを送信データ要求制御部Ｂ１５、転送制御部Ｂ１４、および、シフト・レジスタＢ１２へ送出する。
【００６０】
Ｔ５では、シフト・レジスタＢ１２は、ロードＥＮ信号をＦＩＦＯ制御部Ｂ５から受信すると、データ領域Ｂ５１から送信データをロードし、設定する。このとき、ＥＤＬが無効のとき、データ領域Ｂ５１には、シフト・レジスタＢ１２のビット幅の送信データが格納されている。また、ＥＤＬが有効のとき、データ領域Ｂ５１には、ビット長設定レジスタＢ２に設定されたビット数の送信データが格納されている。図４のＴ５のタイミングでは、ＥＤＬが有効であり、ビット長設定レジスタＢ２に８ビットが設定されている。図４の例では、８ビットのシリアルデータとして、"４７Ｈ"がシフト・レジスタＢ１２に設定されている。
【００６１】
Ｔ６では、送信データ要求制御部Ｂ１５は、ＦＩＦＯ制御部Ｂ５からロードＥＮを受信すると、ＦＩＦＯ制御部Ｂ５が送信データ要求を受け付けたと判断し、送信データ要求を無効（インアクティブ）にする。本実施形態では、送信データ要求とロードＥＮをハンドシェークして送信データ転送要求制御を行っている。
【００６２】
Ｔ７では、転送制御部Ｂ１４は、ＦＩＦＯ制御部Ｂ５からロードＥＮを受信すると、送信出力ＦＦロード要求を送出する。これとともに、転送制御部Ｂ１４は、ビット長設定レジスタＢ２で初期設定された情報を元に、シフト量カウンタのカウント動作を開始する。転送制御部Ｂ１４は、シフト量カウンタにＥＤＬが無効の場合に、シフト・レジスタＢ１２のビット数、ＥＤＬが有効の場合に、ビット長設定レジスタＢ２のビット情報を設定し、カウント動作（ここでは、カウントダウン）を行う。
【００６３】
Ｔ８では、ＣＬＫ制御部Ｂ１１は、転送制御部Ｂ１４から送信出力ＦＦロード要求を受け取ると、システムクロックに基づいた源クロック、または、ボーレート設定または分周クロックを通信したい周波数に設定し、ＳＣＫ出力を開始する。
【００６４】
Ｔ９では、ＳＯ出力レジスタＢ１３は、転送制御部Ｂ１４から送信出力ＦＦロード要求を受け取ると、シフト・レジスタＢ１２の最初の通信を開始するためのビット位置から、送信データをロードし、ＳＯ出力を行う。
Ｔ１０では、ＣＬＫ制御部Ｂ１１は、ＳＣＫの半周期後（本実施形態では、立下りエッジに同期する）、シフト要求を、シフト・レジスタＢ１２へ送出する。
Ｔ１１では、ＣＬＫ制御部Ｂ１１は、ＳＣＫの１周期に相当するタイミングで、送信カウント要求を送出する。
【００６５】
Ｔ１２では、転送制御部Ｂ１４は、ＣＬＫ制御部Ｂ１１から送信カウント要求を受信し、次ビットの送信ＦＦロード要求を出力する。
Ｔ１３では、シフト・レジスタＢ１２は、転送制御部Ｂ１４からシフト要求を受信すると、シフトを行い、ＳＩ端子から、最初の受信データを受信する。
【００６６】
Ｔ７からＴ１３の動作を所定のビット数分繰り返す（Ｔ１４）。所定のビット数分とは、ＥＤＬが無効の場合、シフト・レジスタＢ１２のビット数（シフト・レジスタ長）を意味し、ＥＤＬが有効のとき、ビット長設定レジスタＢ２で設定したビット数を意味する。ビット長設定レジスタのビット数は、シフト・レジスタのビット長と同じか、シフト・レジスタＢ１２のビット数より短い値となる。フレームの最後の部分を転送する場合は、ＥＤＬが有効の場合に相当する。図４、５では、１つのフレームのビット数がシフト・レジスタＢ１２のビット数と同じ場合を説明している。従って、ビット長設定レジスタＢ２に、シフト・レジスタＢ１２にビット数を設定した場合の動作例となる。
【００６７】
また、Ｔ７からＴ１３の動作を所定のビット数分繰り返すことによって、所定のビット数の送信データをＳＯ出力レジスタＢ１３からＳＯへ出力するとともに、送信データとビット数の受信データをＳＩからシフト・レジスタＢ１２に格納することになる。転送制御部Ｂ１４は、シフト量カウンタのカウント値がゼロになったときに、所定のビット数分の送信データを送信し、受信データを受信したことを検出する。
【００６８】
Ｔ１５では、シフト量カウンタのカウント値がゼロになると、転送制御部Ｂ１４は、シリアル転送間隔待ちカウント動作を開始する。転送制御部Ｂ１４は、シリアル転送間隔待ちカウント動作において、ダミーカウントで、タイミング調整を行った後、転送間隔設定レジスタＢ３に設定された間隔情報を用いて転送間隔の設定を行う。またこのときに、転送制御部Ｂ１４は、ＣＬＫ制御部Ｂ１１へシフト終了要求を送出する。
【００６９】
Ｔ１６では、ＣＬＫ制御部Ｂ１１は、転送制御部Ｂ１４からシフト終了要求を受信すると、受信ＦＩＦＯ書き込み要求をＦＩＦＯ制御部Ｂ５送出する。
Ｔ１７では、ＦＩＦＯ制御部Ｂ５は、ＦＩＦＯバッファＢ５３がフル状態でなく、受信できる状態であれば、受信ＦＩＦＯ書き込み応答を送信データ要求制御部Ｂ１５へ送出する。このとき、受信ＦＩＦＯ書き込み要求は、シフト・レジスタＢ１２への取り込み規定を配慮して、受信ＦＩＦＯ書き込みタイミングがＳＣＫの立ち下がりのタイミング以降になるようにタイミング待ちして調整する。そのため、ＦＩＦＯ制御部Ｂ５からロードＥＮを受信した後、転送間隔の期間終了後、送信ＦＦロード要求を送出する（後述するＴ１９）。
Ｔ１８では、送信データ要求制御部Ｂ１５は、ＦＩＦＯ制御部Ｂ５から受信ＦＩＦＯ書き込み応答を受信すると、ＦＩＦＯ制御部Ｂ５への送信データ要求信号を有効にする。これにより、Ｔ１以降の動作を繰り返すことが可能な状態になる。
【００７０】
Ｔ１９では、次のシフト・レジスタ分の転送において、シリアル転送間隔待ちカウントと最初のロードＥＮの両方が準備されているとき、次のシフト・レジスタ分（フレーム）のための送信ＦＦロード要求を行う。図５中一点破線は、次のフレームのシリアル転送の開始を示している。以降、Ｔ１からＴ１９の動作を繰り返し、次フレームのシリアル転送を継続実行する。
【００７１】
次に、シリアル制御装置の別の動作を図６〜図９を用いて説明する。図６に示す、１フレーム１３ビットと１フレーム８ビットのシリアルデータを続けて転送する場合を説明する。本実施形態では、ＥＤＬを用いることによって、１フレーム１３ビットのシリアルデータのうち、最初の８ビットのシリアルデータ転送後、転送間隔をあけることなく続けて５ビットのシリアルデータを転送する。通信速度は固定であり、シリアルデータは、ＬＳＢ  Ｆａｓtの１３ビット長であることを前提とする。送信データは、４７Ｈ（８ビット）、０８Ｈ（５ビット）、６８Ｈ（８ビット）受信データは、６ＣＨ（８ビット）、０ＤＨ（５ビット）、７９Ｈ（８ビット）である場合を一例として説明する。図４、５と同様の動作については説明を省略し、異なる点を中心に説明を省略する。また、図７〜図９のタイミングチャートに記載した符号Ｔｘ（ｘ＞０の整数）を用いて任意のタイミングを示す。
【００７２】
Ｔ２１からＴ２４は図４のＴ１からＴ４と同様である。但し、図４では、ＥＤＬが有効であったが、図７では、ＥＤＬは無効である。これは、１３ビットのシリアルデータを送信する場合、まず８ビット（シフト・レジスタＢ１２のビット数）のシリアルデータを送信し、続けて５ビットのシリアルデータを送信する動作を実施するため、最初の８ビットのシリアルデータはＥＤＬが無効となっている。
【００７３】
Ｔ２５では、シフト・レジスタＢ１２は、ロードＥＮ信号をＦＩＦＯ制御部Ｂ５から受信すると、データ領域Ｂ５１から送信データをロードし、設定する。図７のＴ２５のタイミングでは、ＥＤＬが無効であるため、データ領域Ｂ５１には、シフト・レジスタＢ１２のビット幅の送信データが格納されている。図７の例では、８ビットのシリアルデータとして、"４７"Ｈがシフト・レジスタＢ１２に設定されている。
Ｔ２６では図４のＴ６と同様である。
【００７４】
Ｔ２７では、転送制御部Ｂ１４は、ＦＩＦＯ制御部Ｂ５からロードＥＮを受信すると、送信出力ＦＦロード要求を送出する。これとともに、転送制御部Ｂ１４は、ビット長設定レジスタＢ２で初期設定された情報を元に、シフト量カウンタのカウント動作を開始する。図７のＴ２７のタイミングでは、転送制御部Ｂ１４は、シフト量カウンタにＥＤＬが無効であるため、シフト・レジスタＢ１２のビット数を設定し、カウント動作（ここでは、カウントダウン）を行う。
【００７５】
Ｔ２８からＴ３３の動作は図４のＴ８からＴ１３と同様である。
Ｔ２７からＴ３３の動作を所定のビット数分繰り返す（Ｔ３４）。所定のビット数は、図４と同様である。図７のＴ３４のタイミングでは、ＥＤＬが無効であるため、シフト・レジスタＢ１２のビット数（シフト・レジスタ長）となる。Ｔ２７からＴ３３の動作を所定のビット数分繰り返すことによって、所定のビット数の送信データをＳＯ出力レジスタＢ１３からＳＯへ出力するとともに、送信データとビット数の受信データをＳＩからシフト・レジスタＢ１２に格納することになる。転送制御部Ｂ１４は、シフト量カウンタのカウント値がゼロになったときに、所定のビット数分の送信データを送信し、受信データを受信したことを検出する。
【００７６】
Ｔ３５では、シフト量カウンタのカウント値がゼロになると、転送制御部Ｂ１４は、ＥＤＬが無効であるため、シリアル転送間隔待ちカウント動作を開始しない。またこのときに、転送制御部Ｂ１４は、ＣＬＫ制御部Ｂ１１へシフト終了要求を送出する。転送制御部Ｂ１４は、シリアル転送間隔待ちカウント動作をしないため、次のシリアルデータの転送を開始するまでに、ＦＩＦＯ制御部Ｂ５からロードＥＮを受信した後、転送間隔をカウントすることなく、送信ＦＦロード要求を送出する（後述するＴ３９）。
【００７７】
Ｔ３６では、ＣＬＫ制御部Ｂ１１は、転送制御部Ｂ１４からシフト終了要求を受信すると、受信ＦＩＦＯ書き込み要求をＦＩＦＯ制御部Ｂ５送出する。
Ｔ３７では、ＦＩＦＯ制御部Ｂ５は、ＦＩＦＯバッファＢ５３がフル状態でなく、受信できる状態であれば、受信ＦＩＦＯ書き込み応答を送信データ要求制御部Ｂ１５へ送出する。このとき、受信ＦＩＦＯ書き込み要求は、シフト・レジスタＢ１２への取り込み規定を配慮して、受信ＦＩＦＯ書き込みタイミングがＳＣＫの立ち下がりのタイミング以降になるようにタイミング待ちして調整する。
【００７８】
Ｔ３８では、送信データ要求制御部Ｂ１５は、ＦＩＦＯ制御部Ｂ５から受信ＦＩＦＯ書き込み応答を受信すると、ＦＩＦＯ制御部Ｂ５への送信データ要求信号を有効にする。これにより、Ｔ１以降の動作を繰り返すことが可能な状態になる。図８中一点破線で囲んだ期間において、１フレームの最初の転送単位から次の転送単位へシリアル転送を移行する動作が実施されている。ここでは、ＥＤＬが無効であるため、転送制御部Ｂ１４は、シリアル転送間隔待ちカウント動作をしない。
【００７９】
Ｔ３９では、転送制御部Ｂ１４は、次のシフト・レジスタ分の転送において、シリアル転送間隔待ちカウントは、行わないので、すでに終了していると見なす。転送制御部Ｂ１４は、ＦＩＦＯ制御部Ｂ５が最初のロードＥＮを有効にすると、次のシフト・レジスタ分のための送信ＦＦロード要求を行う。
【００８０】
Ｔ４０以降、次シフト・レジスタ分のシリアル転送の継続実行を行う。
Ｔ４１では、所定のビット数分（この場合は５ビット）の受信を終了したとき、ＥＤＬが有効である場合、シリアル転送間隔待ちカウント動作を開始する。図７のＴ４１のタイミングでは、１フレーム１３ビットの最終ワードを含むシリアル転送が終了した段階であるため、ＥＤＬは有効である。転送制御部Ｂ１４は、転送間隔設定レジスタＢ３に設定された間隔情報に基づいて、転送間隔待ちカウントを実施する。
【００８１】
Ｔ４２では、ＣＬＫ制御部Ｂ１１は、転送制御部Ｂ１４からシフト終了要求を受信すると、受信ＦＩＦＯ書き込み要求をＦＩＦＯ制御部Ｂ５送出する。
Ｔ４３では、ＦＩＦＯ制御部Ｂ５は、ＦＩＦＯバッファＢ５３がフル状態でなく、受信できる状態であれば、受信ＦＩＦＯ書き込み応答を送信データ要求制御部Ｂ１５へ送出する。このとき、受信ＦＩＦＯ書き込み要求は、シフト・レジスタＢ１２への取り込み規定を配慮して、受信ＦＩＦＯ書き込みタイミングがＳＣＫの立ち下がりのタイミング以降になるようにタイミング待ちして調整する。
【００８２】
Ｔ４４では、送信データ要求制御部Ｂ１５は、ＦＩＦＯ制御部Ｂ５から受信ＦＩＦＯ書き込み応答を受信すると、ＦＩＦＯ制御部Ｂ５への送信データ要求信号を有効にする。これにより、Ｔ１以降の動作を繰り返すことが可能な状態になる。図９中一点破線で囲んだ期間において、１フレームの最初の転送単位から次の転送単位へシリアル転送を移行する動作が実施されている。ここでは、ＥＤＬが有効であるため、転送制御部Ｂ１４は、シリアル転送間隔待ちカウント動作を行う。以降、次フレームのシリアル転送を継続実行する。
【００８３】
なお、図３から図９を用いて説明したシリアル転送の動作では、シリアル制御装置は、送信データの出力と同期して、受信データを入力することを前提としている。このため、ＥＤＬは、送信データを送信する場合に参照し、受信データは、送信データを送信したビット数分受信することになる。
【００８４】
以上説明した通り、本実施形態のシリアル制御装置は、シリアルデータのフレーム境界を示すＥＤＬを含むＦＩＦＯ制御部Ｂ５を備え、ＥＤＬを使用してシリアル転送を制御することを特徴とする。具体的には、ＥＤＬが無効のときシリアルデータを連続して送出し、ＥＤＬが有効のときビット長設定レジスタで指定した長さの送信データのみを有効とする。このようにして、小さなシフト・レジスタで、フレーム長をビット単位に可変させて制御できる。また、一つのフレームのシリアルデータを転送後、任意の期間経過させて次のフレームのシリアルデータの転送を可能にする。このとき、ＥＤＬを使用することによって最終データを検出できるため、一つのフレームのシリアルデータ内で転送単位の長さを繰り返して転送する場合、連続して転送することを可能にする。従って、ＣＰＵ側では、任意の長さのシリアルデータを、一つのフレームのシリアルデータとして送受信することが可能になる。
【００８５】
また、本実施形態のシリアル制御装置は、１セットのみ、すなわち、シフト・レジスタおよびその制御部分を備えるシリアル転送部、ＦＩＦＯ制御部など備える一つのシリアル制御装置を用いて構築することが可能である。これにより、任意の長さのシリアルデータの転送を可能にする。従来技術のように、複数のシリアル制御装置を必要としない。
【００８６】
さらに、シリアルデータのフレーム長が長いシリアル転送を行う場合、ＦＩＦＯとシリアル転送装置の間で、データやりとりすることで、連続した長いフレームの転送をすることができる。従って、シリアルデータのフレーム長が短いシリアル転送を行う場合でも、ＦＩＦＯにデータを溜めることにより、割り込み周期を伸ばす機能となる。従来課題であったフレームのビット長が短いとき、全く、使用されない回路をもつという問題を解決できる。
【００８７】
（実施形態２）
実施形態２では、複数のスレーブ装置とシリアル通信する場合の調整機能を備えるシリアル制御装置の一態様を説明する。
図１０に実施形態２のシリアル制御装置の構成例を示す。ＦＩＦＯ制御部Ｂ８は、送信バッファ書き込みとＥＤＬ書き込みに加え、複数のＣＳ（チップ・セレクト信号）［ｎ：０］を格納する。ｎは、０以上の整数である。ＣＳは、（ｎ＋１）個のビットを有する。シリアル制御装置は、最大（ｎ＋１）個の装置が接続可能となる。ＣＳは、シリアル制御装置と接続する装置に関する情報であることから、装置情報ともいう。
シリアル転送部Ｂ７は、ＦＩＦＯ制御部Ｂ８に書き込まれたＣＳを参照し、シリアル通信を制御する。
【００８８】
例えば、ＣＰＵは、ＣＰＵバスＢ６を介して、ＦＩＦＯ制御部Ｂ８に、複数のＣＳを入力する。ＣＰＵは、ＣＳ［ｎ：０］の各ビットを有効（Ｈ）にすることによって、送信バッファに書き込む送信データを転送する装置を指定する。ＣＰＵは、同じ送信データをシリアル制御装置に接続された複数の装置に送信したい場合、ＣＳを有効にする。シリアル制御装置は、ＣＳが有効である装置へ、同じ送信データをシリアル送信する。このようにして、ＣＰＵがＦＩＦＯ制御部Ｂ８への１回書き込むことによって、シリアル制御装置が複数の装置へ同じ送信データをシリアル送信することができる。
【００８９】
図１１に、実施形態２のシリアル転送部Ｂ７とＦＩＦＯ制御部Ｂ８の構成例を示す。
ＦＩＦＯ制御部Ｂ８は、データ領域Ｂ５１、ＥＤＬＢ５２に加え、ＣＳ［ｎ：０］Ｂ８４を含むＦＩＦＯバッファＢ８３を備える。
転送制御部Ｂ７４は、転送制御部Ｂ７４にＣＳ［ｎ：０］をＦＩＦＯ制御部Ｂ８から入力し、ＣＳ［ｎ：０］を用いて送信データを転送する送信先を制御する。また、転送制御部Ｂ７４は、ＣＬＫ制御部Ｂ１１からＳＣＫを入力して、送信データの転送を制御する。
その他の構成要素は実施形態１と同様である。
【００９０】
次に、実施形態２の動作を実施形態１と異なる点を中心に説明する。ＦＩＦＯ制御部Ｂ８は、ロードＥＮを送出するタイミングで、転送制御部Ｂ７４へＣＳ［ｎ：０］を送出する。
転送制御部Ｂ７４は、１つのフレームのシリアル通信において、最初のＳＣＫタイミング時（１フレームの開始時）、ＣＳ［ｎ：０］に基づいて、ＳＯ出力レジスタＢ１３から送信データを出力する外部端子を有効にする。また、転送制御部Ｂ７４は、１フレームの終了を示す受信ＦＩＦＯ書き込み要求タイミングで、ＳＣＫに同期して、ＣＳ［ｎ：０］に基づいて外部端子を無効にする。
その他の動作は実施形態１と同様である。
【００９１】
本実施形態では、複数の受信側の通信デバイスに合わせて、シリアル制御装置からＣＳ［ｎ：０］信号を出力することにより、複数の受信側の通信デバイスに合わせて、シリアル通信のフレーム長を可変にすることができる。
【００９２】
以上説明したように、上記各実施形態の一態様によれば、ＦＩＦＯ制御部Ｂ５、Ｂ８を用いることにより、シリアル通信先の装置の１フレームのデータ長に柔軟に対応することができる。また、シフト・レジスタを繰り返し用いること、シフト・レジスタのビット長以下の長さのデータのシリアル通信を可能にすることによって、シリアル制御装置を有効に利用することができる。すなわち、シフト・レジスタなどを追加するなどのハードウエアを追加することなく、シリアル通信先の１フレームのデータ長に対応することを可能にする。
【００９３】
例えば、特許文献１、２に開示されているようにシリアル装置をカスケード接続していたとしても、１つのシリアル装置のフレーム長や、１つのマイクロコンピュータに搭載するシリアル装置の数は固定されていた。これに対して、上記各実施形態では、ＦＩＦＯ制御部Ｂ５を用いた制御を行うことによって、スレーブ・デバイスの数や、転送データ長を飛躍的に増やすことが可能となる。
【００９４】
また、特許文献１、２の構成では、設計当初の設計で、スレーブ・デバイスのフレーム長を予測し、ハードウエアでインプリメントしていた。このため、設計当初の予測の範囲内のフレーム長をサポートするにすぎなかった。しかし、本発明に係るシリアル制御装置では、ＦＩＦＯ構造を用いることによって、シリアルデータのフレーム長が設計当初の予測より長いフレームを必要とした場合、ＦＩＦＯ制御部に滞留させるフレーム数は減るものの、シリアル転送が可能であるという効果がある。これは、シリアル転送のビットに対する周波数が速くならない限り、割り込みの周期は、確保できるので、ＦＩＦＯ制御部に滞留するフレーム数は減っても、次フレームの設定時間を確保できるという効果がある。
【００９５】
また、特許文献１では、図１２に記載されている通り、複数の周辺装置６０、７０を接続しているため、シフト・レジスタ１８を複数存在する事になっていた。そのため、装置全体として、物理的にシフト・レジスタのビット長が長くなっていた。また、独立した複数の周辺装置１０、６０、７０をもっているため、多くの制御回路が有効に活用されていなかった。
本発明に係るシリアル制御装置によれば、ＦＩＦＯ制御部の機能を用いることによって任意の長さのシリアルデータを格納し、所望の長さの転送単位（例えば、シフト・レジスタのビット幅）で繰り返し転送することが可能になる。このため、例えば複数のシフト・レジスタにシリアルデータを格納しておく必要がなくなり、ハードウエア資源を有効に利用することが可能になる。
【００９６】
特許文献２においても、特許文献１と同様に、複数のシリアル制御装置を必要としていた。しかしながら、本発明では一つのシリアル制御装置を用いて任意のフレームの長さのシリアルデータを転送することを可能にする。
【００９７】
上述したように、本発明に係るシリアル制御装置は、従来技術に比べ少ないハードウエアを用いて任意の長さのシリアルデータの転送を可能とする。このため、半導体装置に備える端子などのハードウエア資源を有効に利用することが可能になる。また、コストを削減することができる。
【００９８】
このように、本発明のシリアル制御装置の一態様によれば、１フレームの転送長を自由長に拡張し、通信の最中に、１フレーム単位に、通信対象デバイス等に応じて、１ビット〜無限大ビットまでを選択できる。
【００９９】
なお、本発明は上記に示す実施形態に限定されるものではない。本発明の範囲において、上記実施形態の各要素を、当業者であれば容易に考えうる内容に変更、追加、変換することが可能である。
【符号の説明】
【０１００】
Ｂ１、Ｂ７  シリアル転送部
Ｂ２  ビット長設定レジスタ
Ｂ３  転送間隔設定レジスタ
Ｂ４  送受信許可レジスタ
Ｂ５、Ｂ８  ＦＩＦＯ制御部
Ｂ６  ＣＰＵバス
Ｂ１１  クロック制御部（ＣＬＫ制御部）
Ｂ１２  シフト・レジスタ
Ｂ１３  ＳＯ出力レジスタ
Ｂ１４、Ｂ７４  転送制御部
Ｂ１５  送信データ要求制御部
Ｂ５１  データ領域
Ｂ５２  ＥＤＬ領域
Ｂ５３、Ｂ８３  ＦＩＦＯバッファ
Ｂ８４  ＣＳ
【図１】
2010257280.tif 000003
【図２】
2010257280.tif 000004
【図３】
2010257280.tif 000005
【図４】
2010257280.tif 000006
【図５】
2010257280.tif 000007
【図６】
2010257280.tif 000008
【図７】
2010257280.tif 000009
【図８】
2010257280.tif 000010
【図９】
2010257280.tif 000011
【図１０】
2010257280.tif 000012
【図１１】
2010257280.tif 000013
【図１２】
2010257280.tif 000014
【図１３】
2010257280.tif 000015
【図１４】
2010257280.tif 000016