[go: up one dir, main page]

JP2010257280A - シリアル制御装置、半導体装置及びシリアルデータの転送方法 - Google Patents

シリアル制御装置、半導体装置及びシリアルデータの転送方法 Download PDF

Info

Publication number
JP2010257280A
JP2010257280A JP2009107349A JP2009107349A JP2010257280A JP 2010257280 A JP2010257280 A JP 2010257280A JP 2009107349 A JP2009107349 A JP 2009107349A JP 2009107349 A JP2009107349 A JP 2009107349A JP 2010257280 A JP2010257280 A JP 2010257280A
Authority
JP
Japan
Prior art keywords
data
serial
transfer
control unit
final
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009107349A
Other languages
English (en)
Other versions
JP2010257280A5 (ja
Inventor
Michi Nakayama
三知 中山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2009107349A priority Critical patent/JP2010257280A/ja
Priority to US12/766,605 priority patent/US8190793B2/en
Publication of JP2010257280A publication Critical patent/JP2010257280A/ja
Publication of JP2010257280A5 publication Critical patent/JP2010257280A5/ja
Priority to US13/458,394 priority patent/US8341313B2/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4295Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

【課題】1つのフレームとして転送するデータの長さを変更可能にすることシリアル制御装置を提供する。
【解決手段】任意の長さのシリアルデータを転送するシリアル制御装置であって、シリアルデータの最終データを含むか否かを示す最終情報を使用して、最終情報が最終データを含まないことを示す場合、シリアルデータのうち前記予め設定された転送単位の長さのデータを転送し、前記最終情報が前記最終データを含むことを示す場合、前記シリアルデータのうち未転送部分を転送する。
【選択図】図1

Description

本発明は、本発明は、クロック同期式シリアル・インタフェース等のシリアル制御装置に関する。
シリアル通信では、送受信先の装置に応じて1フレームの長さを変更することが必要とされる。
例えば、特許文献1には、シリアル制御ブロックを複数で構成するシリアル制御装置が開示されている。図12に特許文献1に記載されているシリアル制御装置の構成を示す。当該シリアル制御装置は、フレームのビット長が可変なデータをシリアル装置に書き込むことを目的としている。
具体的には、図12において、カスケード接続された周辺装置(シリアル制御装置)10は、サイズの異なる少なくとも2つのレジスタ51、52、53を持っている。入力データは、クロック信号によって、同時にシフト・レジスタ40を通して連続シフトする。シフト・レジスタ40のシリアル出力は、カスケード接続された周辺装置10のデータ出力端子18から出力する。
カウンタ20は、クロック信号に呼応して状態をインクリメントする。カウンタ20がレジスタ51、52、53のうちの1つと一致し、データ信号が無効になるとき、デコード30、31、32、33、35は、カウンタ20の状態に呼応してロード信号のグループのうち1つを動作させる。
シフト・レジスタ40のサイズと一致している最大値に達し、データ信号に呼応してカウンタ20が無効になる様に、カウンタ20をリセットする。
図12の構成では、周辺装置10へ、他の周辺装置60、70がカスケード接続されている。フレームのビット長がシフト・レジスタ40のサイズを超える場合、周辺装置60、70を用いてデータをシリアル装置へ書き込む。フレームのビット長のデータが複数の周辺装置へ書き込まれた後、データ転送を実施する。このようにして、フレームのビット長に応じたデータ転送を実現している。
また、特許文献2には、別のシリアル制御装置の構成が開示されている。図13、14に特許文献2に開示されているシリアル制御装置の構成を示す。連続したカスケード接続した複数のDSPIsから連結されたビットから成るDSIフレームの転送を許可する。連結したフレームは8〜64ビットで構成されている。
図13および図14は、MPC5554/MPC5553において、どのように構成されるかを示している。MPC5554(マスタ)において、DSPI_AのSOUTは、DSPI_B(スレーブ)のSINと接続される。MPC5553(マスタ)において、DSPI_BのSOUTは、DSPI_C(スレーブ)のSINと接続する。
MPC5554において、DSPI_B(スレーブ)のSOUTは、DSPI_Cなど(スレーブ)のSINに入力接続する。MPC5553において、DSPI_C(スレーブ)のSOUTは、DSPI_Dなど(スレーブ)のSINに接続する。
オンチップDSPIスレーブのSOUTは、外部のSPIスレーブのSINと接続する。外部のSPIスレーブのSOUTはDSPI_Aマスタ(MPC5554)/DSPI_B(MPC5553)のSINと接続する。
MPC5554 DSPI_AマスタとMPC5553 DSPI_Bマスタは、全ての転送を制御する。スレーブDSPIsは、転送を開始し、トリガ条件が発生したことをDSPI_A(MPC5554)/DSPI_Bマスタ(MPC5553)に伝えるために、トリガ出力信号MTRIGを使用する。
オンチップDSPIスレーブに連続するデータ列が存在するとき、転送を開始する。DSPIマスタのMTRIG信号を受信する。DSPIスレーブがht信号を送出するとき、他のDSPIスレーブからDSPIマスタにトリガ信号(MTRIG信号)を送出する。
DSPIx_DSICRにおけるMTOCNTフィールドは、転送されるビット数を設定する。MTOCNTフィールドは、DSPIマスタとすべてのDSPIスレーブのための選択されたDSPIx_CTARsについて、全てのFMSZフィールドの合計値と一致している必要がある。
シリアル周辺装置は、フレーム長が24ビット、32ビット、48ビットいったCPU(Central Processing Unit)のデータ・バス幅より長いフレームを送受信する必要とする場合がある。1つのフレーム内に含まれるシリアルデータが一定時間以内に転送(シリアル通信)されない場合、フレーミング・エラーが発生する場合がある。例えば、CPUのデータ・バス幅のデータ転送後、次のビットのデータ転送が所定の時間を超える場合、エラーが発生することがあった。特許文献1および特許文献2の構成では、複数のシリアル制御装置をカスケード接続することによって、異なるフレーム長のデータ転送を実現していた。
その理由の一つとして、パッケージに含まれる端子それぞれに機能が割り当てられているという事情がある。具体的には、シングルチップ・マイクロコンピュータでは、シリアル制御装置、タイマ装置といった兼用機能が割り振られており、実装の容易さやパッケージ価格を考慮して比較的小ピンの64ピンから176ピン程度のQFP(Quad Flat Package)パッケージを用いる事が多い。目的の周辺装置に用いられる端子以外は、別の周辺装置の機能が割り振られている。このため、シリアル制御装置を追加しようとする場合、シリアル制御装置の端子を、一つ目のシリアル制御装置に割り当てられた端子とは別の端子に割り振ろうとしても、他の機能が割り振られているので、セットとし成り立たないといった事情があった。
米国特許第5454097号明細書
MPC5553/5554 Microcontroller Reference Manual Rev. 4.0, Freescale Semiconductor, 2007 April, pp. 914-916(20-48 - 20-50)
特許文献1では、周辺装置10を複数使用することによって、CPUのデータ・バス幅を超えるデータ転送を実現していた。この場合、パッケージ内の各端子は機能が割り当てられているため、周辺装置60、70の入出力端子を周辺装置10に割り当てられた端子とは別の端子に割り当てることはできなかった。
図12に示すように、周辺装置をカスケード接続した1つのシリアル装置として構成した場合、1つのフレームのビット長がシフト・レジスタ40の大きさ以下とき、周辺装置60、70は無駄になっていた。具体的には、入出力端子を外部と接続していない周辺装置60、70は、全く使用されないことになり、回路が無駄となるとともに、回路規模が大きいという問題があった。
また、仮に、パッケージ内において、複数の周辺装置60、70の入出力端子へ接続する端子を割り当てた場合、1つのフレームのビット長が、1つのシリアル制御装置が備えるシフト・レジスタ40の大きさより、長いことを前提とする。従って、1つのフレームのビット長がシフト・レジスタ40の大きさ以下の場合、パッケージ内に端子をシリアル装置のために確保していたにも関わらず、シリアル制御装置として使用出来ないといった問題があった。
特許文献2についても、特許文献1と同様に、1フレーム分のシフト・レジスタを用いているため、それ以上大きいフレームのデータを連続して転送できず、また、小さいフレームのシリアル通信を行う場合、シフト・レジスタが無駄になるという問題があった。
このように、シリアル制御装置が1つのフレームとして転送するデータの長さを変更可能にすることが要請されていた。
本発明に係るシリアル制御装置の一態様は、任意の長さのシリアルデータを転送するシリアル制御装置であって、前記シリアルデータの最終データを含むか否かを示す最終情報を使用して、前記最終情報が最終データを含まないことを示す場合、前記シリアルデータのうち前記予め設定された転送単位の長さのデータを転送し、前記最終情報が前記最終データを含むことを示す場合、前記シリアルデータのうち未転送部分を転送する。シリアルデータを転送する場合に、最終情報を用いることによって、現在転送中のデータが、任意の長さのシリアルデータ全体の最後の部分であるか否かを検出することが可能になる。これにより、任意の長さのシリアルデータを転送する場合に、転送単位のデータの転送を繰り返し、最後の部分を転送する場合に、未転送部分を転送することを可能とする。これにより、一つのシフト・レジスタへ転送データを格納する場合であっても、任意の長さのシリアルデータを転送することが可能になる。
本発明に係る半導体装置の一態様は、上述したシリアル制御装置を搭載する。
本発明に係るシリアルデータ転送方法の一態様は、任意の長さのシリアルデータを転送するシリアルデータの転送方法であって、前記シリアルデータの最終データを含むか否かを示す最終情報を使用して、前記最終情報が最終データを含まないことを示す場合、前記シリアルデータのうち前記予め設定された転送単位の長さのデータを転送し、前記最終情報が前記最終データを含むことを示す場合、前記シリアルデータのうち未転送部分を転送する。
本発明によれば、シリアル制御装置が1つのフレームとして転送するデータの長さを変更可能にすることが可能となる。
本発明の実施形態1に係るシリアル制御装置の構成例を示すブロック図である。 実施形態1のシリアル転送部とFIFO制御部の構成例を示すブロック図である。 固定されたビット数のシリアル転送の例を示す図である。 図3の場合のシリアル転送の流れを示すタイミングチャート(1/2)である。 図3の場合のシリアル転送の流れを示すタイミングチャート(2/2)である。 任意のビット数のシリアル転送の例を示す図である。 図6の場合のシリアル転送の流れを示すタイミングチャート(1/3)である。 図6の場合のシリアル転送の流れを示すタイミングチャート(2/3)である。 図6の場合のシリアル転送の流れを示すタイミングチャート(3/3)である。 本発明の実施形態2に係るシリアル制御装置の構成例を示すブロック図である。 実施形態2のシリアル転送部とFIFO制御部の構成例を示すブロック図である。 従来のシリアル制御装置の構成を示す図である。 従来のシリアル制御装置の別の構成を示す図である。 従来のシリアル制御装置のさらに別の構成を示す図である。
以下、本発明の実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。各図面において同一の構成または機能を有する構成要素および相当部分には、同一の符号を付し、その説明は省略する。
図1に本発明の実施形態1に係るシリアル制御装置の構成例を示す。シリアル制御装置は、
シリアル転送部B1、ビット長設定レジスタ(データ長設定レジスタ)B2、転送間隔設定レジスタB3、送受信許可レジスタB4、及び、FIFO(First-In First-Out)制御部B5を備える。
シリアル制御装置は、CPUとメモリとを少なくとも含む半導体装置(パッケージ)に搭載される。シリアル制御装置は、CPUバスを介してCPUに接続する。シリアル制御装置では、CPUの制御の基で、メモリに格納されたプログラムが実行される。具体的には、シリアル制御装置を利用する装置に応じたプログラム(プログラムに含まれる命令群)が、CPUバスを介してCPUによって実行される。なお、以降の説明において、CPUがCPUバスを介してシリアル制御装置に命令群(書き込み、読み出しなど)を実行する場合を、単にCPUが実行するように表現する場合がある。
「フレーム」は、シリアルデータ転送において、1回に転送するシリアルデータの単位を示す。フレームの長さは、任意の長さであり、CPUが実行する命令によって、シリアル制御装置を利用する装置に応じて、決定される。本発明に係るシリアル制御装置は、任意の長さのフレームのシリアルデータを転送することを可能にする。
「転送単位」は、シリアル制御装置において、1回に転送するシリアルデータの長さ示す。転送単位は、シリアル制御装置に備えるシフト・レジスタの大きさ(ビット幅)に応じて決定され、通常、シフト・レジスタの大きさが用いられる。本実施形態では、転送単位として、ワードを用いて説明する。
長さの最小単位は例えば、ビットあるいはワードなどデータの長さを示す単位を用いることができる。本実施形態は、ビットを用いて説明する。
シリアル転送部B1は、FIFO制御部B5を用いて、CPUがFIFO制御部B5に書き込んだデータを外部にシリアル送信し、外部から入力されるデータをシリアル受信する。また、シリアル転送部B1は、FIFO制御部B5へデータを送出し、CPUへFIFO制御部B5からデータを読み出すことを指示する。
具体的には、シリアル転送部B1は、送受信許可レジスタB4に送受信許可信号のトリガが発生すると、FIFO制御部B5から入力する送信データと、転送間隔設定レジスタB3が保持する間隔情報と、ビット長設定レジスタB2が保持するビット長情報に従って、シリアル送信すると同時に、外部からデータをシリアル受信し、FIFO制御部B5へ受信データを送出する。
ビット長設定レジスタB2は、転送単位以外のデータを転送する場合に、CPUによってデータの長さが設定される。転送単位以外のデータの長さは、1フレームのシリアルデータのうち、転送単位の長さのデータを転送した後に、あるいは、転送単位の長さのデータを複数回転送した後に、1フレームのシリアルデータのうち、まだ転送していない未転送部分の長さである。なお、1フレームのシリアルデータの長さが転送単位より小さい場合、1フレームのシリアルデータの長さが設定されることになる。
一般に、CPUバスB6からFIFO制御部B5へ送信データを書き込む場合、書き込むビット長として、8ビット、16ビット、32ビットといった有限の値(転送単位)のみ設定できる。そのため、シリアル制御装置が任意の長さのシリアルデータを取り扱う場合、シリアルデータの1フレームのうち、端数データの数を設定する必要がある。ビット長設定レジスタB2は、当該端数データの数を保持する。例えば、CPUからFIFO制御部B5へ1回に書き込める送信データのサイズが16ビットで、シリアル通信データのフレームが37ビットで構成される場合、37−16*2=5となり、ビット長設定レジスタに5ビットが有効となる様に設定する。ビット長設定レジスタB2は、CPUバスB6を介してCPUによって書き込まれる。
転送間隔設定レジスタB3は、フレーム間、すなわち、一つのシリアルデータのフレームと、次に転送するシリアルデータのフレームとの間の時間間隔(次のフレームの転送を開始するまでの待ち時間)を設定する。フレーム間において、転送間隔設定が必要な理由は、通信ライン上のシリアル受信を行う相手方装置の処理時間を確保するためである。転送間隔設定レジスタB3は、CPUバスB6を介してCPUによって書き込まれる。
送受信許可レジスタB4は、送受信動作を許可するトリガを発生させる。送受信許可レジスタB4には、送受信許可がCPUバスB6を介してCPUによって書き込まれる。具体的には、シリアル通信を開始するとき、CPUは、転送間隔設定レジスタB3やビット長設定レジスタB2等の各制御レジスタへ、初期設定をした後、送受信許可レジスタB4の送受信許可信号を有効にして送受信許可トリガを発生させる。
FIFO制御部B5は、CPUが書き込む送信データ(送信FIFO)とCPUが読み出す受信データ(受信FIFO)の制御を行う。FIFO制御部B5は、シフト・レジスタの大きさのシリアルデータを格納するデータ領域と、シリアルデータ最終ワード(以下、適宜「EDL」という)を格納するEDL領域とを一組として、任意の複数組を格納する領域を備える。FIFO制御部B5については図2を用いて後述する。「シリアルデータ最終ワード」は、転送中の1つのフレームのシリアルデータのうち、データ領域に格納されるシリアルデータに最終データ(最終ワード)が含まれているか否かを示す付加情報である。シリアルデータ最終ワードは、「最終情報」ともいう。
図1に示す構成を用いることによって、シリアル制御装置は、1フレームのシリアルデータ(任意の長さのシリアルデータ)をシリアル転送する機能を実現する。具体的には、シリアルデータの最終データを含むか否かを示すEDL(最終情報)を使用して、EDLが最終データを含まないことを示す場合、シリアルデータのうち予め設定された転送単位の長さのデータを転送し、EDLが最終データを含むことを示す場合、シリアルデータのうち未転送部分を転送する。EDLは、FIFO制御部B5に保持するデータ領域のシリアルデータが、最終データを含むか否かを示す。EDLを用いることにより、シリアル転送部B1は、転送するシリアルデータが、1つのフレームに含まれるシリアルデータの最後の部分であり、次の転送するシリアルデータが別のフレームになることを検出することができる。また、シリアル転送部B1は、転送するシリアルデータが、1つのフレームの途中の部分であり、次に転送するシリアルデータは、同じフレーム内のデータであることを把握することができる。
図2にシリアル転送部B1及びFIFO制御部B5の詳細な構成例を示す。シリアル転送部B1は、クロック制御部(CLK制御部)B11、シフト・レジスタB12、SO(Slave Out)出力レジスタB13、転送制御部B14、及び、送信データ要求制御部B15を備える。FIFO制御部B5は、データ領域B51とEDL領域B52とを一組とするFIFOバッファB53を備える。
図2では、例えば、1フレームの長さを13ビット長の場合の例について説明する。CPUからFIFO制御部B5へ送信データを書き込むとき、シリアル送信するデータの付加情報であるEDLも併せて、FIFO制御部B5へ書き込む。
CPUから、FIFO制御部B5への送信データの書き込みの開始は、送受信許可レジスタB4への許可を開始する前に行っても送受信許可レジスタへの許可を開始する後に行っても良い。ただし、送受信許可レジスタへの許可後であれば、送信エンプティ状態からの動作となる。本例では、送受信許可レジスタへの許可前に、FIFO制御部B5へ送信データを書き込んだ状態から動作する場合について説明をする。
まず、FIFO制御部B5について説明する。ここでは、FIFOバッファB53は、データ領域B51を8ビット、EDL領域B52を1ビットの場合を一例として説明する。従って、FIFOバッファB53は、一組9ビットの領域を任意の数備える。図2では、FIFOバッファB53を、送信データを格納する送信FIFOと受信データを格納する受信FIFOとを区別しないで示しているが、送信FIFOと受信FIFOとを区別して設けていてもよい。あるいは、送信データを送出した領域に、同じシリアル通信で受信する受信データを書き込むような手順にしてもよい。以降では、説明を簡単にするため、送信データを格納する領域を送信FIFO、受信データを格納する領域を受信FIFOとして説明するが、この手順に限られるわけではない。
データ領域B51は、転送するシリアルデータを格納する。データ領域B51の大きさは、シフト・レジスタB12の大きさと一致するか、少なくともシフト・レジスタB12の大きさの領域を有する。
EDL領域B52は、EDLを格納する。EDLは、上述したように、転送中の1つのフレームのシリアルデータのうち、データ領域に格納されるシリアルデータに最終データが含まれているか否かを示す付加情報である。EDL領域B52に、EDLとして、有効(H)が書き込まれている場合、対応するデータ領域B51に書き込まれているシリアルデータは、最終データを含むことを意味する。また、EDL領域B52に、無効(L)が書き込まれている場合、対応するデータ領域に書き込まれているシリアルデータは、最終データを含まないことを意味する。すなわち、当該データ領域B51に格納されているシリアルデータに続くシリアルデータが存在し、一つのフレームのシリアルデータとして転送することが必要とされる。
次に、シリアル転送部B1について説明する。
CLK制御部B11は、システムクロックの分周回路またはボーレート・レジスタ等を用いて、通信用のシリアルクロック(SCK)を生成する。CLK制御部B11は、転送制御部B14から送信出力FFロード要求を受けると、通信用のシリアルクロック(SCK)に同期してシフト要求を生成する。後述するタイミングチャート(図4、5、7−9)では、システムクロックの8分周をSCKとする波形を記載している。
CLK制御部B11は、転送制御部B14からシフト終了要求を入力すると、送受信(1ワード分若しくはビット長設定レジスタのビット情報分)が終了したと認識し、FIFO制御部B5へ受信FIFO書き込み要求(シリアル転送終了)を出力する。
CLK制御部B11は、通信用のシリアルクロック周期から、送信カウント要求を転送制御部B14へ送出する。
シフト・レジスタB12は、FIFO制御部B5からロードEN信号を入力すると、FIFOバッファB53のデータ領域B51から送信データをロードする。シフト・レジスタB12は、送信出力FFロード要求以降、CLK制御部B11によって生成されたシフト要求に従って、自己のシフト・レジスタB12に格納したデータをシフトすると共に、新規データをSI(Slave In)端子より入力する。
CLK制御部B11からの受信FIFO書き込み要求が発生し、FIFO制御部B5が読み出せるタイミングになると、受信FIFO書き込み応答タイミングで、有効なシフト・レジスタB12の内容をFIFOバッファB53のデータ領域B51へ、全てロードする。
SO出力レジスタB13は、転送制御部B14から送信出力FFロード要求を受けると、シフト・レジスタB12に格納された送信データをロードし、SOにシリアルデータを出力する。シフト・レジスタB12へのシフト要求と、送信出力FFロード要求によるシフト・レジスタB12からロードは、互い違いに、送受信データの送受信がシフト・レジスタB12のビット数分行われるまで、順次行う。
転送制御部B14は、シリアルデータのビット送出ごとに(FIFO制御部B5からシフト・レジスタB12へ送信データをロードするごとに)、送信出力FFロード要求を送出する。また、送信データ(1ワード分若しくはビット長設定レジスタのビット情報分)が終了したことを示すシフト終了要求を送出する。送信出力FFロード要求は、シリアルクロックに同期して出力する。シフト終了要求は、送信データの最終ビットに、シリアルクロックに同期して出力する。また、転送制御部B14は、シフト量カウンタを備え、転送単位(シフト・レジスタの大きさ)またはビット長設定レジスタB2に設定された値を用いて、カウント動作を行う。転送制御部B14は、シフト量カウンタの値を用いて、送信データのビット長及び最終ビットを検出する。
転送制御部B14は、ロードEN信号の状態に応じて、現在転送中の送信データに対応するEDLを確認し、EDLが有効/無効に基づいて、送信出力FFロード要求を送出する。具体的には、転送制御部B14は、EDLが無効だったとき、直ぐに、送信を開始する様に、送信出力FFロード要求信号を送出する。シリアル通信の最初の転送では、この状態にする。逆に、EDLが有効だったとき、転送制御部B14は、転送間隔設定レジスタB3で設定された設定値に従って、シリアルデータ転送間隔時間分、カウントし、転送間隔時間経過後、送信出力FFロード要求を送出する。
これは、EDLが無効だったとき、1つのフレームの連続する一連のシリアルデータとして、シリアルデータを通信ラインに送出する。逆に、EDLが有効だったとき、一つのフレームと他のフレームの切れ目になることを示している。このため、転送間隔設定レジスタB3に設定された転送間隔情報の時間分、通信ラインへのシリアルデータの送出を空ける。これにより、通信ライン上の受信装置側が、1つ前のフレームを処理するための最低限必要な時間を確保できる様にする。
転送制御部B14は、本実施形態では、受信FIFO書き込み要求(シリアル転送終了)を受けとっているが、CSI(clockcked Serial Interface)およびSPI等と呼ばれるクロック同期式シリアル・インタフェースでは、シリアルクロックに同期して出力するので、シフト終了要求タイミングと、シリアルクロックがあると、受信FIFO書き込み要求(シリアル転送終了)がいつ発生するか認識できる。転送制御部B14は、受信FIFO書き込み要求(シリアル転送終了)後、シリアルデータ転送間隔のカウントを開始し、次の送信データ(ワード)要求のロードENが、所定の転送間隔より短い間に、有効になっても、所定のカウントが終了するまで、送信出力FFロード要求を送出しない。
転送制御部B14は、送信出力FFロード要求およびシフト要求終了信号を、EDLに応じて、次に示すように送出する。
(1)EDLが無効であったとき、転送制御部B14は、シフト・レジスタB12のビット幅の数、シリアルクロックに同期して、送信出力FFロード要求を送出する。シフト・レジスタB12のビット幅の数のカウントが終了したとき、最後のビットに対応する送信出力FFロード要求を送出すると共に、シフト終了要求を送出する。
(2)EDLが有効であったとき、転送制御部B14は、ビット長設定レジスタB2に設定されたビット長情報の数、シリアルクロックに同期して、送信出力FFロード要求を送出する。ビット長情報の数の最後のビットに対応する送信出力FFロード要求を出するときに、シフト終了要求を送出する。
転送制御部B14は、CLK制御部B11から送信カウント要求を受け取ると、ビット単位に、送信出力FFロード要求を行う。これにより、送信出力FFロード要求の送出間隔は、シリアルクロックに同期して生成される。
送信データ要求制御部B15は、シリアル通信の最初の転送では、送受信許可信号を、送受信許可レジスタから受け取った場合、FIFO制御部B5への送信データ要求信号を有効にすることによって、FIFO制御部B5へ送信データ(1ワード分)の送出要求を行う。
送信データ要求制御部B15は、シリアル通信の2ワード目以降の転送(1つのフレームのシリアルデータのうち、二つ目以降の転送単位の転送)では、1つ前の受信データをFIFO制御部B5への書き込み終了を示す受信FIFO書き込み応答が応答状態である場合、FIFOへ送信データの送出要求を行う。受信FIFO書き込み応答が応答状態である場合とは、FIFO制御部B5から送信データ要求制御部B15へ、受信FIFO書き込み応答が送信されている状態をいう。
図2に示すシリアル転送部B1とFIFO制御部B5の構成について説明したが、所定の動作について説明を追加する。図2の例では、FIFO制御部B5がロードENを送出すると、送信データ要求制御部B15は、FIFO制御部B5への送信データ要求を受け取ったことを認識して、送信データ要求を無効状態に戻す。
図2の例では、送信データ要求待ち状態であることを、送信データ要求とロードENのハンドシェークで行っているが、送信データ要求がパルス状の信号で、FIFO制御部B5で、送信データ要求待ちを、行っても良い。
図2に示すシリアル制御装置の構成において、送信データ要求は次の手順で実施される。FIFO制御部B5は、送信データ要求に対して、FIFOバッファB53に有効な送信データがあるとき、シフト・レジスタB12に送信データを送出し、転送制御部B14へEDLを送出し、有効データであることを示すロードEN信号を有効にする。送信データ要求に対して、FIFOバッファB53に有効な送信データがないとき、CPUによって送信データとEDLとがFIFOバッファB53へ書き込まれるまで待ち、有効データが準備できた段階で、ロードENを有効にする。
また、受信FIFO書き込み要求は次の手順で実施される。シフト・レジスタB12に有効な受信データが溜まったタイミングでは、CLK制御部B11は、FIFO制御部B5へ受信FIFO書き込み要求(シリアル転送終了)を送出する。FIFO制御部B5は、FIFOバッファB53がFULL状態でなく、FIFOバッファB53にシフト・レジスタの内容を書き込めるスペースがあるとき、有効なシフト・レジスタB12の内容をFIFOバッファB53へロードすると共に、受信FIFO書き込み応答を送信データ要求制御部B15へ送出する。これにより、FIFO制御部B5は、受信FIFO書き込み応答を送出することによって、次の送信データをシフト・レジスタB12へロードする様に送信データ要求制御部B15へ催促する。送信データ要求制御部B15が送信データ要求をFIFO制御部B5へ送出すると、FOFO制御部B5は、次にシリアル転送する送信データをシフト・レジスタB12へロードすることが可能になる。
また、転送制御部B14は、EDLが有効のとき、連続しないシリアルデータとシリアルデータとの間、すなわちフレームの切り替わり、と認識して、転送間隔設定レジスタB3が保持する転送間隔情報を有効にするためのカウント値を設定する。
また、転送制御部B14は、EDLが有効のとき、ビット長設定レジスタB2が保持するビット長情報を有効にし、ビット長情報に応じて、送信出力FFロード要求とシフト終了要求とを送出する。ビット長設定レジスタB2は、CPU周辺バスの書き込み単位(シフト・レジスタのビット幅)以下分の設定値を有する。通信ライン上で、最後のデータを書き込むとき、EDLが有効となることで、ビット長設定レジスタB2が保持するビット長情報が有効となる。また、EDLが無効のとき、CPU周辺バスの書き込み単位の最大値(例えば、16ビット長)が有効となる。通信の1フレーム長は、EDLが有効な期間(例:16ビット)×n個+ビット長情報の和となり、その期間、連続して通信を行える様にする。ビット長設定レジスタB2は、EDLが無効のとき転送単位(1ワード)の長さが設定される。しかしながら、EDLが無効のとき、転送制御部B14は、ビット長設定レジスタB2を参照しないで転送単位を用いてもよい。この場合、ビット長設定レジスタB2は、EDLが有効のときの用いる長さあるいは不定値が設定される。
次に、シリアル制御装置の動作を図3〜図5を用いて説明する。まず、図3に示すように、1フレーム8ビットのシリアルデータを続けて転送する場合を説明する。図3に示すシリアルデータ転送は、従来の技術と同様の動作をする場合を説明するものである。通信速度は固定であり、シリアルデータは、LSB Fastの8ビット長であることを前提とする。送信データは、47H(8ビット)、08H(8ビット)、受信データは、6CH(8ビット)、0DH(8ビット)である場合を一例として説明する。以降の説明では、図4,5のタイミングチャートに記載した符号Tx(x>0の整数)を用いて任意のタイミングを示す。
T1では、シリアル通信を開始するとき、CPUは、CPUバスB6を介して転送間隔設定レジスタB3に間隔情報を設定し、ビット長設定レジスタB2にビット長情報を設定する。転送制御部B14は、転送間隔設定レジスタB3に保持する間隔情報とビット長設定レジスタB2に保持するビット長情報とを自装置内に格納し、初期設定を行う。
T2では、T1の処理の後、CPUは、CPUバスB6を介して送受信許可レジスタB4の送受信許可信号を有効にして、送信データ要求制御部B15へシリアル転送開始要求を行う。
T3では、送受信許可レジスタB4から、送受信許可信号が送出されると、送信データ要求制御部B15は、FIFO制御部B5へ送信データ要求を行う。具体的には、送信データ要求制御部B15は、シリアル通信の最初の転送において、送受信許可信号を送受信許可レジスタB4から受け取った時、FIFO制御部B5へ送出する送信データ要求信号を有効にする。この送信データ要求は、基本的にシフト・レジスタへの書き込み単位ごと(転送単位ごと)に行う。
T4では、FIFO制御部B5は、送信データ要求を受け取ると、FIFO制御部B5内のFIFOバッファB53(送信FIFO)に、有効な送信データが存在しているか、または、有効なデータがCPUからFIFO制御部B5へ送出されてなく、EMPTY状態であるかを判断する。判断した結果、有効な送信データがなければ、ロードENの送出を延期し、有効な送信データがあれば、EDLと送信FIFOの情報と共に、ロードENを送信データ要求制御部B15、転送制御部B14、および、シフト・レジスタB12へ送出する。
T5では、シフト・レジスタB12は、ロードEN信号をFIFO制御部B5から受信すると、データ領域B51から送信データをロードし、設定する。このとき、EDLが無効のとき、データ領域B51には、シフト・レジスタB12のビット幅の送信データが格納されている。また、EDLが有効のとき、データ領域B51には、ビット長設定レジスタB2に設定されたビット数の送信データが格納されている。図4のT5のタイミングでは、EDLが有効であり、ビット長設定レジスタB2に8ビットが設定されている。図4の例では、8ビットのシリアルデータとして、"47H"がシフト・レジスタB12に設定されている。
T6では、送信データ要求制御部B15は、FIFO制御部B5からロードENを受信すると、FIFO制御部B5が送信データ要求を受け付けたと判断し、送信データ要求を無効(インアクティブ)にする。本実施形態では、送信データ要求とロードENをハンドシェークして送信データ転送要求制御を行っている。
T7では、転送制御部B14は、FIFO制御部B5からロードENを受信すると、送信出力FFロード要求を送出する。これとともに、転送制御部B14は、ビット長設定レジスタB2で初期設定された情報を元に、シフト量カウンタのカウント動作を開始する。転送制御部B14は、シフト量カウンタにEDLが無効の場合に、シフト・レジスタB12のビット数、EDLが有効の場合に、ビット長設定レジスタB2のビット情報を設定し、カウント動作(ここでは、カウントダウン)を行う。
T8では、CLK制御部B11は、転送制御部B14から送信出力FFロード要求を受け取ると、システムクロックに基づいた源クロック、または、ボーレート設定または分周クロックを通信したい周波数に設定し、SCK出力を開始する。
T9では、SO出力レジスタB13は、転送制御部B14から送信出力FFロード要求を受け取ると、シフト・レジスタB12の最初の通信を開始するためのビット位置から、送信データをロードし、SO出力を行う。
T10では、CLK制御部B11は、SCKの半周期後(本実施形態では、立下りエッジに同期する)、シフト要求を、シフト・レジスタB12へ送出する。
T11では、CLK制御部B11は、SCKの1周期に相当するタイミングで、送信カウント要求を送出する。
T12では、転送制御部B14は、CLK制御部B11から送信カウント要求を受信し、次ビットの送信FFロード要求を出力する。
T13では、シフト・レジスタB12は、転送制御部B14からシフト要求を受信すると、シフトを行い、SI端子から、最初の受信データを受信する。
T7からT13の動作を所定のビット数分繰り返す(T14)。所定のビット数分とは、EDLが無効の場合、シフト・レジスタB12のビット数(シフト・レジスタ長)を意味し、EDLが有効のとき、ビット長設定レジスタB2で設定したビット数を意味する。ビット長設定レジスタのビット数は、シフト・レジスタのビット長と同じか、シフト・レジスタB12のビット数より短い値となる。フレームの最後の部分を転送する場合は、EDLが有効の場合に相当する。図4、5では、1つのフレームのビット数がシフト・レジスタB12のビット数と同じ場合を説明している。従って、ビット長設定レジスタB2に、シフト・レジスタB12にビット数を設定した場合の動作例となる。
また、T7からT13の動作を所定のビット数分繰り返すことによって、所定のビット数の送信データをSO出力レジスタB13からSOへ出力するとともに、送信データとビット数の受信データをSIからシフト・レジスタB12に格納することになる。転送制御部B14は、シフト量カウンタのカウント値がゼロになったときに、所定のビット数分の送信データを送信し、受信データを受信したことを検出する。
T15では、シフト量カウンタのカウント値がゼロになると、転送制御部B14は、シリアル転送間隔待ちカウント動作を開始する。転送制御部B14は、シリアル転送間隔待ちカウント動作において、ダミーカウントで、タイミング調整を行った後、転送間隔設定レジスタB3に設定された間隔情報を用いて転送間隔の設定を行う。またこのときに、転送制御部B14は、CLK制御部B11へシフト終了要求を送出する。
T16では、CLK制御部B11は、転送制御部B14からシフト終了要求を受信すると、受信FIFO書き込み要求をFIFO制御部B5送出する。
T17では、FIFO制御部B5は、FIFOバッファB53がフル状態でなく、受信できる状態であれば、受信FIFO書き込み応答を送信データ要求制御部B15へ送出する。このとき、受信FIFO書き込み要求は、シフト・レジスタB12への取り込み規定を配慮して、受信FIFO書き込みタイミングがSCKの立ち下がりのタイミング以降になるようにタイミング待ちして調整する。そのため、FIFO制御部B5からロードENを受信した後、転送間隔の期間終了後、送信FFロード要求を送出する(後述するT19)。
T18では、送信データ要求制御部B15は、FIFO制御部B5から受信FIFO書き込み応答を受信すると、FIFO制御部B5への送信データ要求信号を有効にする。これにより、T1以降の動作を繰り返すことが可能な状態になる。
T19では、次のシフト・レジスタ分の転送において、シリアル転送間隔待ちカウントと最初のロードENの両方が準備されているとき、次のシフト・レジスタ分(フレーム)のための送信FFロード要求を行う。図5中一点破線は、次のフレームのシリアル転送の開始を示している。以降、T1からT19の動作を繰り返し、次フレームのシリアル転送を継続実行する。
次に、シリアル制御装置の別の動作を図6〜図9を用いて説明する。図6に示す、1フレーム13ビットと1フレーム8ビットのシリアルデータを続けて転送する場合を説明する。本実施形態では、EDLを用いることによって、1フレーム13ビットのシリアルデータのうち、最初の8ビットのシリアルデータ転送後、転送間隔をあけることなく続けて5ビットのシリアルデータを転送する。通信速度は固定であり、シリアルデータは、LSB Fastの13ビット長であることを前提とする。送信データは、47H(8ビット)、08H(5ビット)、68H(8ビット)受信データは、6CH(8ビット)、0DH(5ビット)、79H(8ビット)である場合を一例として説明する。図4、5と同様の動作については説明を省略し、異なる点を中心に説明を省略する。また、図7〜図9のタイミングチャートに記載した符号Tx(x>0の整数)を用いて任意のタイミングを示す。
T21からT24は図4のT1からT4と同様である。但し、図4では、EDLが有効であったが、図7では、EDLは無効である。これは、13ビットのシリアルデータを送信する場合、まず8ビット(シフト・レジスタB12のビット数)のシリアルデータを送信し、続けて5ビットのシリアルデータを送信する動作を実施するため、最初の8ビットのシリアルデータはEDLが無効となっている。
T25では、シフト・レジスタB12は、ロードEN信号をFIFO制御部B5から受信すると、データ領域B51から送信データをロードし、設定する。図7のT25のタイミングでは、EDLが無効であるため、データ領域B51には、シフト・レジスタB12のビット幅の送信データが格納されている。図7の例では、8ビットのシリアルデータとして、"47"Hがシフト・レジスタB12に設定されている。
T26では図4のT6と同様である。
T27では、転送制御部B14は、FIFO制御部B5からロードENを受信すると、送信出力FFロード要求を送出する。これとともに、転送制御部B14は、ビット長設定レジスタB2で初期設定された情報を元に、シフト量カウンタのカウント動作を開始する。図7のT27のタイミングでは、転送制御部B14は、シフト量カウンタにEDLが無効であるため、シフト・レジスタB12のビット数を設定し、カウント動作(ここでは、カウントダウン)を行う。
T28からT33の動作は図4のT8からT13と同様である。
T27からT33の動作を所定のビット数分繰り返す(T34)。所定のビット数は、図4と同様である。図7のT34のタイミングでは、EDLが無効であるため、シフト・レジスタB12のビット数(シフト・レジスタ長)となる。T27からT33の動作を所定のビット数分繰り返すことによって、所定のビット数の送信データをSO出力レジスタB13からSOへ出力するとともに、送信データとビット数の受信データをSIからシフト・レジスタB12に格納することになる。転送制御部B14は、シフト量カウンタのカウント値がゼロになったときに、所定のビット数分の送信データを送信し、受信データを受信したことを検出する。
T35では、シフト量カウンタのカウント値がゼロになると、転送制御部B14は、EDLが無効であるため、シリアル転送間隔待ちカウント動作を開始しない。またこのときに、転送制御部B14は、CLK制御部B11へシフト終了要求を送出する。転送制御部B14は、シリアル転送間隔待ちカウント動作をしないため、次のシリアルデータの転送を開始するまでに、FIFO制御部B5からロードENを受信した後、転送間隔をカウントすることなく、送信FFロード要求を送出する(後述するT39)。
T36では、CLK制御部B11は、転送制御部B14からシフト終了要求を受信すると、受信FIFO書き込み要求をFIFO制御部B5送出する。
T37では、FIFO制御部B5は、FIFOバッファB53がフル状態でなく、受信できる状態であれば、受信FIFO書き込み応答を送信データ要求制御部B15へ送出する。このとき、受信FIFO書き込み要求は、シフト・レジスタB12への取り込み規定を配慮して、受信FIFO書き込みタイミングがSCKの立ち下がりのタイミング以降になるようにタイミング待ちして調整する。
T38では、送信データ要求制御部B15は、FIFO制御部B5から受信FIFO書き込み応答を受信すると、FIFO制御部B5への送信データ要求信号を有効にする。これにより、T1以降の動作を繰り返すことが可能な状態になる。図8中一点破線で囲んだ期間において、1フレームの最初の転送単位から次の転送単位へシリアル転送を移行する動作が実施されている。ここでは、EDLが無効であるため、転送制御部B14は、シリアル転送間隔待ちカウント動作をしない。
T39では、転送制御部B14は、次のシフト・レジスタ分の転送において、シリアル転送間隔待ちカウントは、行わないので、すでに終了していると見なす。転送制御部B14は、FIFO制御部B5が最初のロードENを有効にすると、次のシフト・レジスタ分のための送信FFロード要求を行う。
T40以降、次シフト・レジスタ分のシリアル転送の継続実行を行う。
T41では、所定のビット数分(この場合は5ビット)の受信を終了したとき、EDLが有効である場合、シリアル転送間隔待ちカウント動作を開始する。図7のT41のタイミングでは、1フレーム13ビットの最終ワードを含むシリアル転送が終了した段階であるため、EDLは有効である。転送制御部B14は、転送間隔設定レジスタB3に設定された間隔情報に基づいて、転送間隔待ちカウントを実施する。
T42では、CLK制御部B11は、転送制御部B14からシフト終了要求を受信すると、受信FIFO書き込み要求をFIFO制御部B5送出する。
T43では、FIFO制御部B5は、FIFOバッファB53がフル状態でなく、受信できる状態であれば、受信FIFO書き込み応答を送信データ要求制御部B15へ送出する。このとき、受信FIFO書き込み要求は、シフト・レジスタB12への取り込み規定を配慮して、受信FIFO書き込みタイミングがSCKの立ち下がりのタイミング以降になるようにタイミング待ちして調整する。
T44では、送信データ要求制御部B15は、FIFO制御部B5から受信FIFO書き込み応答を受信すると、FIFO制御部B5への送信データ要求信号を有効にする。これにより、T1以降の動作を繰り返すことが可能な状態になる。図9中一点破線で囲んだ期間において、1フレームの最初の転送単位から次の転送単位へシリアル転送を移行する動作が実施されている。ここでは、EDLが有効であるため、転送制御部B14は、シリアル転送間隔待ちカウント動作を行う。以降、次フレームのシリアル転送を継続実行する。
なお、図3から図9を用いて説明したシリアル転送の動作では、シリアル制御装置は、送信データの出力と同期して、受信データを入力することを前提としている。このため、EDLは、送信データを送信する場合に参照し、受信データは、送信データを送信したビット数分受信することになる。
以上説明した通り、本実施形態のシリアル制御装置は、シリアルデータのフレーム境界を示すEDLを含むFIFO制御部B5を備え、EDLを使用してシリアル転送を制御することを特徴とする。具体的には、EDLが無効のときシリアルデータを連続して送出し、EDLが有効のときビット長設定レジスタで指定した長さの送信データのみを有効とする。このようにして、小さなシフト・レジスタで、フレーム長をビット単位に可変させて制御できる。また、一つのフレームのシリアルデータを転送後、任意の期間経過させて次のフレームのシリアルデータの転送を可能にする。このとき、EDLを使用することによって最終データを検出できるため、一つのフレームのシリアルデータ内で転送単位の長さを繰り返して転送する場合、連続して転送することを可能にする。従って、CPU側では、任意の長さのシリアルデータを、一つのフレームのシリアルデータとして送受信することが可能になる。
また、本実施形態のシリアル制御装置は、1セットのみ、すなわち、シフト・レジスタおよびその制御部分を備えるシリアル転送部、FIFO制御部など備える一つのシリアル制御装置を用いて構築することが可能である。これにより、任意の長さのシリアルデータの転送を可能にする。従来技術のように、複数のシリアル制御装置を必要としない。
さらに、シリアルデータのフレーム長が長いシリアル転送を行う場合、FIFOとシリアル転送装置の間で、データやりとりすることで、連続した長いフレームの転送をすることができる。従って、シリアルデータのフレーム長が短いシリアル転送を行う場合でも、FIFOにデータを溜めることにより、割り込み周期を伸ばす機能となる。従来課題であったフレームのビット長が短いとき、全く、使用されない回路をもつという問題を解決できる。
(実施形態2)
実施形態2では、複数のスレーブ装置とシリアル通信する場合の調整機能を備えるシリアル制御装置の一態様を説明する。
図10に実施形態2のシリアル制御装置の構成例を示す。FIFO制御部B8は、送信バッファ書き込みとEDL書き込みに加え、複数のCS(チップ・セレクト信号)[n:0]を格納する。nは、0以上の整数である。CSは、(n+1)個のビットを有する。シリアル制御装置は、最大(n+1)個の装置が接続可能となる。CSは、シリアル制御装置と接続する装置に関する情報であることから、装置情報ともいう。
シリアル転送部B7は、FIFO制御部B8に書き込まれたCSを参照し、シリアル通信を制御する。
例えば、CPUは、CPUバスB6を介して、FIFO制御部B8に、複数のCSを入力する。CPUは、CS[n:0]の各ビットを有効(H)にすることによって、送信バッファに書き込む送信データを転送する装置を指定する。CPUは、同じ送信データをシリアル制御装置に接続された複数の装置に送信したい場合、CSを有効にする。シリアル制御装置は、CSが有効である装置へ、同じ送信データをシリアル送信する。このようにして、CPUがFIFO制御部B8への1回書き込むことによって、シリアル制御装置が複数の装置へ同じ送信データをシリアル送信することができる。
図11に、実施形態2のシリアル転送部B7とFIFO制御部B8の構成例を示す。
FIFO制御部B8は、データ領域B51、EDLB52に加え、CS[n:0]B84を含むFIFOバッファB83を備える。
転送制御部B74は、転送制御部B74にCS[n:0]をFIFO制御部B8から入力し、CS[n:0]を用いて送信データを転送する送信先を制御する。また、転送制御部B74は、CLK制御部B11からSCKを入力して、送信データの転送を制御する。
その他の構成要素は実施形態1と同様である。
次に、実施形態2の動作を実施形態1と異なる点を中心に説明する。FIFO制御部B8は、ロードENを送出するタイミングで、転送制御部B74へCS[n:0]を送出する。
転送制御部B74は、1つのフレームのシリアル通信において、最初のSCKタイミング時(1フレームの開始時)、CS[n:0]に基づいて、SO出力レジスタB13から送信データを出力する外部端子を有効にする。また、転送制御部B74は、1フレームの終了を示す受信FIFO書き込み要求タイミングで、SCKに同期して、CS[n:0]に基づいて外部端子を無効にする。
その他の動作は実施形態1と同様である。
本実施形態では、複数の受信側の通信デバイスに合わせて、シリアル制御装置からCS[n:0]信号を出力することにより、複数の受信側の通信デバイスに合わせて、シリアル通信のフレーム長を可変にすることができる。
以上説明したように、上記各実施形態の一態様によれば、FIFO制御部B5、B8を用いることにより、シリアル通信先の装置の1フレームのデータ長に柔軟に対応することができる。また、シフト・レジスタを繰り返し用いること、シフト・レジスタのビット長以下の長さのデータのシリアル通信を可能にすることによって、シリアル制御装置を有効に利用することができる。すなわち、シフト・レジスタなどを追加するなどのハードウエアを追加することなく、シリアル通信先の1フレームのデータ長に対応することを可能にする。
例えば、特許文献1、2に開示されているようにシリアル装置をカスケード接続していたとしても、1つのシリアル装置のフレーム長や、1つのマイクロコンピュータに搭載するシリアル装置の数は固定されていた。これに対して、上記各実施形態では、FIFO制御部B5を用いた制御を行うことによって、スレーブ・デバイスの数や、転送データ長を飛躍的に増やすことが可能となる。
また、特許文献1、2の構成では、設計当初の設計で、スレーブ・デバイスのフレーム長を予測し、ハードウエアでインプリメントしていた。このため、設計当初の予測の範囲内のフレーム長をサポートするにすぎなかった。しかし、本発明に係るシリアル制御装置では、FIFO構造を用いることによって、シリアルデータのフレーム長が設計当初の予測より長いフレームを必要とした場合、FIFO制御部に滞留させるフレーム数は減るものの、シリアル転送が可能であるという効果がある。これは、シリアル転送のビットに対する周波数が速くならない限り、割り込みの周期は、確保できるので、FIFO制御部に滞留するフレーム数は減っても、次フレームの設定時間を確保できるという効果がある。
また、特許文献1では、図12に記載されている通り、複数の周辺装置60、70を接続しているため、シフト・レジスタ18を複数存在する事になっていた。そのため、装置全体として、物理的にシフト・レジスタのビット長が長くなっていた。また、独立した複数の周辺装置10、60、70をもっているため、多くの制御回路が有効に活用されていなかった。
本発明に係るシリアル制御装置によれば、FIFO制御部の機能を用いることによって任意の長さのシリアルデータを格納し、所望の長さの転送単位(例えば、シフト・レジスタのビット幅)で繰り返し転送することが可能になる。このため、例えば複数のシフト・レジスタにシリアルデータを格納しておく必要がなくなり、ハードウエア資源を有効に利用することが可能になる。
特許文献2においても、特許文献1と同様に、複数のシリアル制御装置を必要としていた。しかしながら、本発明では一つのシリアル制御装置を用いて任意のフレームの長さのシリアルデータを転送することを可能にする。
上述したように、本発明に係るシリアル制御装置は、従来技術に比べ少ないハードウエアを用いて任意の長さのシリアルデータの転送を可能とする。このため、半導体装置に備える端子などのハードウエア資源を有効に利用することが可能になる。また、コストを削減することができる。
このように、本発明のシリアル制御装置の一態様によれば、1フレームの転送長を自由長に拡張し、通信の最中に、1フレーム単位に、通信対象デバイス等に応じて、1ビット〜無限大ビットまでを選択できる。
なお、本発明は上記に示す実施形態に限定されるものではない。本発明の範囲において、上記実施形態の各要素を、当業者であれば容易に考えうる内容に変更、追加、変換することが可能である。
B1、B7 シリアル転送部
B2 ビット長設定レジスタ
B3 転送間隔設定レジスタ
B4 送受信許可レジスタ
B5、B8 FIFO制御部
B6 CPUバス
B11 クロック制御部(CLK制御部)
B12 シフト・レジスタ
B13 SO出力レジスタ
B14、B74 転送制御部
B15 送信データ要求制御部
B51 データ領域
B52 EDL領域
B53、B83 FIFOバッファ
B84 CS

Claims (8)

  1. 任意の長さのシリアルデータを転送するシリアル制御装置であって、
    前記シリアルデータの最終データを含むか否かを示す最終情報を使用して、前記最終情報が最終データを含まないことを示す場合、前記シリアルデータのうち前記予め設定された転送単位の長さのデータを転送し、前記最終情報が前記最終データを含むことを示す場合、前記シリアルデータのうち未転送部分を転送するシリアル制御装置。
  2. 前記転送単位以下のシリアルデータと、前記最終情報とを対応づけて格納するFIFO(First-In First-Out)制御部と、
    前記最終情報が最終データを含まないことを示す場合、前記転送単位の長さのデータを転送し、前記最終情報が前記最終部分を含むことを示す場合、前記未転送部分を転送するシリアル転送部と、を備えるシリアル制御装置。
  3. 前記シリアル転送部は、前記最終情報が最終データを含まないことを示す場合、次のシリアルデータの転送を続けて行い、前記最終情報が前記最後データを含むことを示す場合、前記未転送部分を転送後、次のシリアルデータの転送を開始するまでに任意の期間を経過させることを特徴とする請求項2記載のシリアル制御装置。
  4. 前記未転送部分の長さを格納するデータ長設定レジスタと、
    前記任意の期間を格納する転送間隔設定レジスタと、をさらに備え、
    前記シリアル転送部は、前記最終情報が最終データを含むことを示す場合、前記データ長設定レジスタに格納されている前記未転送部分の長さを用いて、前記シリアルデータを転送し、前記転送間隔設定レジスタに格納される任意の期間を用いて、前記任意の期間を経過させ、前記任意の期間経過後、次のシリアルデータの転送を開始することを特徴とする請求項3記載のシリアル制御装置。
  5. 前記FIFO制御部は、自装置に接続する複数の装置とシリアルデータの転送をするか否かを示す装置情報をさらに有し、
    前記シリアル転送部は、前記装置情報に基づいて、シリアルデータを転送する装置を選択することを特徴とする請求項2乃至4のいずれか一項に記載のシリアル制御装置。
  6. 前記最終情報は、1つのフレームに含まれるシリアルデータの最後尾を最終データとすることを特徴とする請求項1乃至5のいずれか一項に記載のシリアル制御装置。
  7. 前記1乃至6のいずれか一項に記載のシリアル制御装置を搭載した半導体装置。
  8. 任意の長さのシリアルデータを転送するシリアルデータの転送方法であって、
    前記シリアルデータの最終データを含むか否かを示す最終情報を使用して、前記最終情報が最終データを含まないことを示す場合、前記シリアルデータのうち前記予め設定された転送単位の長さのデータを転送し、前記最終情報が前記最終データを含むことを示す場合、前記シリアルデータのうち未転送部分を転送するシリアルデータの転送方法。
JP2009107349A 2009-04-27 2009-04-27 シリアル制御装置、半導体装置及びシリアルデータの転送方法 Pending JP2010257280A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2009107349A JP2010257280A (ja) 2009-04-27 2009-04-27 シリアル制御装置、半導体装置及びシリアルデータの転送方法
US12/766,605 US8190793B2 (en) 2009-04-27 2010-04-23 FIFO serial control device, semiconductor device, and serial data transfer method that indicates inclusion or non-inclusion of end data of serial data
US13/458,394 US8341313B2 (en) 2009-04-27 2012-04-27 FIFO serial control device, semicondicutor device, and serial data transfer method that indicates inclusion or non-inclusion of end data of serial data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009107349A JP2010257280A (ja) 2009-04-27 2009-04-27 シリアル制御装置、半導体装置及びシリアルデータの転送方法

Publications (2)

Publication Number Publication Date
JP2010257280A true JP2010257280A (ja) 2010-11-11
JP2010257280A5 JP2010257280A5 (ja) 2012-04-12

Family

ID=42993111

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009107349A Pending JP2010257280A (ja) 2009-04-27 2009-04-27 シリアル制御装置、半導体装置及びシリアルデータの転送方法

Country Status (2)

Country Link
US (2) US8190793B2 (ja)
JP (1) JP2010257280A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015032258A (ja) * 2013-08-06 2015-02-16 ラピスセミコンダクタ株式会社 データ出力回路、pll装置及びデータ出力方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8135881B1 (en) * 2010-09-27 2012-03-13 Skyworks Solutions, Inc. Dynamically configurable serial data communication interface
JP5840088B2 (ja) * 2012-07-20 2016-01-06 株式会社日立ハイテクノロジーズ 端末通信装置および分散制御システム
JP6602579B2 (ja) * 2015-07-15 2019-11-06 ルネサスエレクトロニクス株式会社 半導体装置およびシステム
CN110165876B (zh) * 2019-05-15 2020-07-10 昆山龙腾光电股份有限公司 供电电路及其电子设备
IT202100015488A1 (it) * 2021-06-14 2022-12-14 St Microelectronics Srl Microcontrollore e procedimento di funzionamento corrispondente

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63118967A (ja) * 1986-11-07 1988-05-23 Nec Corp シリアルインタ−フエイス回路
JPH03159341A (ja) * 1989-11-16 1991-07-09 Nec Corp 可変長混在パケット転送装置
JPH06243672A (ja) * 1993-02-15 1994-09-02 Nippon Steel Corp Fifoメモリの書き込み・読み出し構造
JPH07244623A (ja) * 1994-03-03 1995-09-19 Fuji Electric Co Ltd 伝送制御装置
JP2000330931A (ja) * 1999-05-17 2000-11-30 Nec Eng Ltd Dma転送制御装置およびdma転送制御方法
JP2002007312A (ja) * 2000-06-19 2002-01-11 Sony Corp 情報入出力装置
JP2010118004A (ja) * 2008-11-14 2010-05-27 Denso Corp 送信装置およびシリアル通信システム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5454097A (en) 1993-01-25 1995-09-26 Motorola, Inc. Cascadable peripheral data interface including a shift register, counter, and randomly-accessed registers of different bit length
US5708852A (en) * 1995-08-01 1998-01-13 International Business Machines Corporation Apparatus for serial port with pattern generation using state machine for controlling the removing of start and stop bits from serial bit data stream
US6323682B1 (en) * 1996-11-22 2001-11-27 Xilinx, Inc. FPGA architecture with wide function multiplexers
US5889413A (en) * 1996-11-22 1999-03-30 Xilinx, Inc. Lookup tables which double as shift registers
JP4101034B2 (ja) * 2002-11-14 2008-06-11 松下電器産業株式会社 符号化装置及び方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63118967A (ja) * 1986-11-07 1988-05-23 Nec Corp シリアルインタ−フエイス回路
JPH03159341A (ja) * 1989-11-16 1991-07-09 Nec Corp 可変長混在パケット転送装置
JPH06243672A (ja) * 1993-02-15 1994-09-02 Nippon Steel Corp Fifoメモリの書き込み・読み出し構造
JPH07244623A (ja) * 1994-03-03 1995-09-19 Fuji Electric Co Ltd 伝送制御装置
JP2000330931A (ja) * 1999-05-17 2000-11-30 Nec Eng Ltd Dma転送制御装置およびdma転送制御方法
JP2002007312A (ja) * 2000-06-19 2002-01-11 Sony Corp 情報入出力装置
JP2010118004A (ja) * 2008-11-14 2010-05-27 Denso Corp 送信装置およびシリアル通信システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015032258A (ja) * 2013-08-06 2015-02-16 ラピスセミコンダクタ株式会社 データ出力回路、pll装置及びデータ出力方法

Also Published As

Publication number Publication date
US20120215951A1 (en) 2012-08-23
US8190793B2 (en) 2012-05-29
US20100274934A1 (en) 2010-10-28
US8341313B2 (en) 2012-12-25

Similar Documents

Publication Publication Date Title
CN110309526B (zh) 用于可配置从端点电路的外围互连
US7930462B2 (en) Interface controller that has flexible configurability and low cost
US8667195B2 (en) Bus-system including an interconnector, a master device, a slave device, and an operating method thereof
CN110188059B (zh) 数据有效位统一配置的流控式fifo缓存装置及方法
JP2010257280A (ja) シリアル制御装置、半導体装置及びシリアルデータの転送方法
US20020184453A1 (en) Data bus system including posted reads and writes
JP2010057164A (ja) 通信装置及びそれを有する通信システム並びに通信方法
JP6602579B2 (ja) 半導体装置およびシステム
JP2007220046A (ja) バス装置、バスシステムおよび情報転送方法
KR20180030511A (ko) 8 비트 미만의 바이트들 및 가변 패킷 크기를 갖는 spi 인터페이스
US10120815B2 (en) Configurable mailbox data buffer apparatus
US8284792B2 (en) Buffer minimization in interface controller
KR102206313B1 (ko) 시스템 인터커넥트 및 시스템 인터커넥트의 동작 방법
US8443129B1 (en) Method and apparatus for implementing a data bus interface
US10489319B2 (en) Automatic transmission of dummy bits in bus master
US20080320178A1 (en) DMA transfer apparatus
CN111949069B (zh) 用于异步数据传送的电路
KR100874073B1 (ko) 버스의 전송 채널에 대역폭을 할당하기 위한 방법 및 장치
JP3599692B2 (ja) データ伝送装置
CN114385246A (zh) 桶式多线程处理器中的可变流水线长度
CN114641763A (zh) 协议转换器模块系统和使用该协议转换器模块系统的方法
CN100353296C (zh) 控制外围设备输出数据到总线的方法及计算机系统
JP2018173856A (ja) 情報処理装置およびその制御方法
CN106294232A (zh) 一种dma控制器及其实现方法
JP5387155B2 (ja) Dma転送制御装置およびdma転送制御方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120224

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120224

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130705

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130716

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130917

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131022