(57)【要約】  電子データ処理装置は、プロセッサ（１）と、着信データ用の接続（１６）および発信データ用の接続（１８）を有するシリアルインタフェースと、該シリアルインタフェースを制御するハードウェアシリアルインタフェースコントローラ（６）と、着信データを受信する受信バッファ（２２）とを備える。プロセッサ（１）は、受信バッファ（２２）に書き込まれたデータを自動的に読み出す。前記装置は、プロセッサ（１）がデータを受信不可能であることをシリアルインタフェースコントローラ（６）に示すことができる。該コントローラ（６）は、発信データ用のシリアル接続（１８）を経由して拒絶メッセージを送信して着信データに応答し、かつ、着信データが受信バッファ（２２）内に置かれることを防止する。【選択図】図１
2018524703.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
着信データ用接続および発信データ用接続を有するシリアルインタフェースと、
前記シリアルインタフェースを制御するハードウェアのシリアルインタフェースコントローラと、
着信データを受信する受信バッファと、を備える電子データ処理装置であって、
前記プロセッサは前記受信バッファに書き込まれたデータを自動的に読み出すように構成され、
前記プロセッサがデータを受け入れ不可能であることを前記プロセッサから前記シリアルインタフェースコントローラに示すことができ、次に、前記シリアルインタフェースコントローラは、前記発信データ用接続から拒絶メッセージを送信することによって着信データに応答し、着信データが前記受信バッファ内に格納されることを防止するように、前記シリアルインタフェースコントローラが構成されること、
を特徴とする電子データ処理装置。
【請求項２】
前記電子データ処理装置がスレーブ装置であること、
を特徴とする請求項１に記載の電子データ処理装置。
【請求項３】
前記拒絶メッセージがマスタ装置に送信されるように前記スレーブ装置が構成されること、
を特徴とする請求項２に記載の電子データ処理装置。
【請求項４】
前記シリアルインタフェースが、シリアル・ペリフェラル・インタフェース（ＳＰＩ）バスであること、
を特徴とする請求項１〜３のいずれか一項に記載の電子データ処理装置。
【請求項５】
シリアル・ペリフェラル・インタフェース（ＳＰＩ）スレーブを含むこと、
を特徴とする請求項４に記載の電子データ処理装置。
【請求項６】
前記受信バッファがシフトレジスタを含むこと、
を特徴とする請求項１〜５のいずれか一項に記載の電子データ処理装置。
【請求項７】
最大受信制限を有すること、
を特徴とする請求項１〜６のいずれか一項に記載の電子データ処理装置。
【請求項８】
受信データ量が前記最大受信制限を超える場合、オーバーフローイベントを生成すること、
を特徴とする請求項７に記載の電子データ処理装置。
【請求項９】
受信カウンタを備えること、
を特徴とする請求項１〜８のいずれか一項に記載の電子データ処理装置。
【請求項１０】
データを送信するための送信バッファを備えること、
を特徴とする請求項１〜９のいずれか一項に記載の電子データ処理装置。
【請求項１１】
前記受信バッファおよび前記送信バッファが個別に設けられること、
を特徴とする請求項１０に記載の電子データ処理装置。
【請求項１２】
最大送信制限を有すること、
を特徴とする請求項１０または請求項１１に記載の電子データ処理装置。
【請求項１３】
前記最大送信制限より多いデータを送信することを命令された場合、オーバーリードイベントを生成すること、
を特徴とする請求項１０〜１２のいずれか一項に記載の電子データ処理装置。
【請求項１４】
オーバーリードイベントに続いてオーバーリードキャラクタを送信すること、
を特徴とする請求項１３に記載の電子データ処理装置。
【請求項１５】
送信カウンタを備えること、
を特徴とする請求項１０〜１４のいずれか一項に記載の電子データ処理装置。
【請求項１６】
前記シリアルインタフェースが受信バッファ満杯フラグを生成するように構成されたこと、
を特徴とする請求項１〜１５のいずれか一項に記載の電子データ処理装置。
【請求項１７】
前記シリアルインタフェースが着信データ用の複数の接続を有すること、
を特徴とする請求項１〜１６のいずれか一項に記載の電子データ処理装置。
【請求項１８】
前記シリアルインタフェースが、発信データ用の複数の接続を有すること、
を特徴とする請求項１〜１７のいずれか一項に記載の電子データ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
現在の多くの電子システム、特に組込システムは、必要に応じて異なる装置間でデータを共有することができるように、通信手段を備えることが必要である。シリアル通信は、通信チャネル上で一度に１ビットを送信する処理および受信する処理を含むトランザクション（すなわち１つの装置から他の装置へのデータ転送）を可能にする。
【背景技術】
【０００２】
さまざまな設計パラメータおよび制約に対応するようにさまざまな環境で使用される、多数のさまざまなシリアル通信プロトコルおよび仕様がある。そのような１つのプロトコルはシリアル・ペリフェラル・インタフェース（ＳＰＩ）バスであり、Ｍｏｔｏｒｏｌａが最初に設計し、組込システム産業でデファクト・スタンダードとなったプロトコルである。ＳＰＩは、マスタ装置と１つまたは複数のスレーブ装置の間のシリアル全二重通信を提供する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
シリアルデータの処理に使用される電子装置は、一般的にそれぞれのクロックサイクル毎に同時に新しいデータをクロックインし古いデータをクロックアウトするシフトレジスタを用いて実装される。破損データの送信を防ぐため、すべての所与のトランザクションの開始前に、全ての既存のデータを抽出し、全ての新しいデータをシフトレジスタにロードすることが重要である。そのような装置の多くでは、破損データの送信の防止を確実にする責任をＣＰＵが負っている。
【０００４】
トランザクションの全てを前記マスタ装置が開始することは、シリアル通信プロトコルの共通の特徴であり、前記スレーブ装置はデータフローの制御権を有さないので、必然的に、前記スレーブ装置には、全ての着信データを、永久に喪失する前に前記シフトレジスタに読み込むための制限時間が課される。前記マスタ装置が別のトランザクションを開始する前の時間内に前記シフトレジスタを更新しないと、前記スレーブ装置は破損データを送信する可能性がある。
【０００５】
１つの可能な解決策は、データ破壊につながる不適切な時間に前記マスタ装置がトランザクションを開始するのを防止するために優先度の高い割り込みを使用することである。しかし、組込システムＣＰＵ内に優先度の高い他のタスクがあるとき、この解決策は常に実現可能というわけではない。
【課題を解決するための手段】
【０００６】
第１の態様では、本発明は、
プロセッサと、
着信データ用接続および発信データ用接続を有するシリアルインタフェースと、
前記シリアルインタフェースを制御するハードウェアシリアルインタフェースコントローラと、
着信データを受信する受信バッファと、を備える電子データ処理装置であって、
前記プロセッサは該受信バッファに書き込まれたデータを自動的に読み出すように構成され、
前記プロセッサがデータを受け入れ不可能であることを前記プロセッサから前記シリアルインタフェースコントローラに示すことができ、次に、前記シリアルインタフェースコントローラは、前記発信データ用接続から拒絶メッセージを送信することによって着信データに応答し、着信データが前記受信バッファ内に格納されることを防止するように、前記シリアルインタフェースコントローラが構成されることを特徴とする、電子データ処理装置を提供する。
【０００７】
従って、当業者は、本発明によって、前記電子データ処理装置が、該装置にデータを送信するさらに別の装置に対して、データを喪失または破損するのではなく、データを受け入れ不可能であるという表示をすることができることが分かるであろう。
【０００８】
いくつかのプロトコルでは、それぞれの装置を「「同等」「とみなすことができるが、他のプロトコルでは、マスタ−スレーブ階層を設けることができる。いくつかの実施形態では、前記装置はスレーブ装置である。いくつかの実施形態では、前記スレーブ装置は、拒絶メッセージをマスタ装置に送信するように構成される。この構成は、（一般的にはデータフローの制御権を有さない）スレーブ装置に、着信データの制御権をいくぶんか提供する。前記スレーブ装置は、前記マスタ装置が何らかの追加データを該スレーブ装置に送信することを止めることはできないであろうが、少なくともいくらかの追加データが破棄されるであろうという表示を前記マスタに提供することができる。これによって、次に前記マスタ装置が、一定時間経ってから該当データを再送信することが可能になる。
【０００９】
本発明が応用できる多くのさまざまなシリアル通信プロトコルがある。いくつかの実施形態では、前記シリアルインタフェースはシリアル・ペリフェラル・インタフェース（ＳＰＩ）バスである。前述のように、ＳＰＩはデファクト・スタンダードであり、特に、本明細書に記載したデータ処理装置に適する。いくつかの実施形態では、前記装置はＳＰＩスレーブを含む。
【００１０】
バッファは記憶装置上の固定記憶位置を用いてハードウェア内で物理的に実装することができる。または、記憶装置上の記憶位置へのポインタを使用してソフトウェア内で仮想的に実装することもできる。バッファは通常先入れ先出し（ＦＩＦＯ）方式で動作し、この方式では、該バッファはデータを入力された順序で出力する。いくつかの実施形態では、受信バッファはシフトレジスタを含む。シフトレジスタはＦＩＦＯバッファの実装の効果的な方法であり、クロックサイクル毎に新しいデータがクロックインされ最も古いデータがクロックアウトされる。当業者は、「クロックイン」および「クロックアウト」という用語が、シフトレジスタが立ち上がりエッジまたは立ち下がりエッジ（シフトレジスタの構成による）を受信し、データをそれぞれ入力または出力し、同時に存在する全てのデータが前記レジスタ内で「シフトする」ことを意味することを理解されるであろう。
【００１１】
全てのバッファは、（物理的記憶スペースまたはソフトウェアの制限のどちらかにより）任意の一時店で格納可能なデータの量が特定の大きさに制限される。いくつかの実施形態では、前記装置は最大受信制限を有する。いくつかのさらに別の実施形態では、前記装置は受信データ量が前記最大受信制限を超える場合、オーバーフローイベントを生成するように構成される。これは、前記装置が前記オーバーフローイベントを起こした着信データを破棄することを可能にする。
【００１２】
いくつかの実施形態では、前記装置は受信カウンタを備える。該受信カウンタによって、前記装置が以前のトランザクションで前記受信バッファに書き込まれたデータの量を監視することが可能になる。前記装置は、受信するデータ量について事前の情報を持つことができない場合、前記受信カウンタによって例えば、前記ＣＰＵが受信したバイト数を追跡することができる。
【００１３】
データの受信と同様に、前記装置は、また、データの送信もすることができる。よって、いくつかの実施形態では、前記装置はデータの送信のための送信バッファを備える。いくつかの実施形態では、前記受信バッファおよび送信バッファは異なっている。データの送信および受信のための個別のバッファを有することは、前記装置が両方の動作を同時に実行することを可能にする。
【００１４】
上述のように、バッファ内に保持可能なデータの量には制限がある。いくつかの実施形態では、前記装置は最大送信制限を有する。いくつかのさらに別の実施形態では、前記装置が前記最大送信制限より大きなデータを送信することを命令された場合、該装置はオーバーリードイベントを生成するように構成される。いくつかの実施形態では、前記装置はそのような事象が発生したときにオーバーリードキャラクタを送信するよう構成される。このオーバーリードキャラクタは、前記装置が実際前記バッファ内に有するよりも多くのデータを送信するように命令されたことを示す。
【００１５】
いくつかの実施形態では、前記装置は送信カウンタを備える。該送信カウンタは、前記装置が以前のトランザクションで該送信バッファから読み出したデータの量を監視することを可能にする。前記装置が送信するデータ量について事前の情報を持たない場合、前記送信カウンタによって、例えば、前記ＣＰＵが、送信バッファから読み出されたバイト数を監視し続けることができる。
【００１６】
前記拒絶メッセージを使用して、他の装置に対して追加のデータを送信しないように、または、紛失または破損した可能性のあるデータを再送信するように、警告することができる。さらに、いくつかの実施形態では、前記シリアルインタフェースが受信バッファ満杯フラグを生成することができるように、前記装置を構成することができる。これは、好都合なことに、前記プロセッサがデータを受信中に前記シリアルインタフェースを能動的に監視する必要がないということを意味する。
【００１７】
前述の実施形態は、着信および発信接続を有する装置に関するが、いくつかの実施形態では、前記シリアルインタフェースが着信データ用の複数の接続を有する。加えてまたは代わりに、前記シリアルインタフェースは、発信データ用の複数の接続を有する。これは、本発明の実施形態がデュアルＳＰＩおよびクワッドＳＰＩのような、多重線路通信インタフェースで使用されることを可能にする。これらの構成は、所定の時間内により多くのシリアルデータを送信可能で、システムのビットレートを増大させるような、多重パラレルシリアル接続を提供する。
【００１８】
本発明のいくつかの実施形態を、添付の図を参照して例示のみの目的で説明する。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施形態による電子データ処理装置のブロック図を示す。
【図２】図１と同一の実施形態に対応する、一連の典型的なトランザクションのタイムチャートを示す。
【図３】本発明のさらに別の実施形態による電子データ処理装置のブロック図を示す。
【発明を実施するための形態】
【００２０】
図１は、本発明の実施形態による電子データ処理装置のブロック図を示す。この実施形態では、該装置はＳＰＩスレーブ装置２を備え、それがランダムアクセスメモリ（ＲＡＭ）４に接続される。
【００２１】
ＳＰＩスレーブ装置２は、セマフォ６、送受信機８、ダイレクトメモリアクセス（ＤＭＡ）モジュール１０、およびマルチプレクサを用いて物理的に実装することができる、２つの単極双投スイッチ１３、１４を備える。装置２はまた、いくつかの汎用入力／出力（ＧＰＩＯ）ピンを備え、それらのうちの４つが、チップセレクト１２、マスタ出力スレーブ入力（ＭＯＳＩ）すなわちシリアルデータイン１６、マスタ入力スレーブ出力（ＭＩＳＯ）すなわちシリアルデータアウト１８、およびシリアルクロック２０として割り当てられることが示されている。
【００２２】
メモリ４は、受信バッファ２２および送信バッファ２４を含む。ＤＭＡモジュール１０はダイレクトアクセスでバッファ２２、２４に接続され、受信ポインタ２６および送信ポインタ２８を用いて、それぞれ、受信バッファ２２および送信バッファ２４の特定のメモリ位置を指定することができる。
【００２３】
セマフォ６はソフトウェアセマフォと同等のハードウェアであり、制御ライン１５を介して２つのスイッチ１３、１４の状態を切り替えることにより、バッファ２２、２４へのアクセスを制御する。１つの状態では、スイッチ１３、１４はデータインピン１６、およびデータアウトピン１８をＤＭＡモジュール１０に接続し、次にデータがピン１６、１８と受信バッファ２２、および送信バッファ２４の間をそれぞれ通過することを可能にする。他の状態では、データアウトピン１８に対応付けられたスイッチ１４が初期値キャラクタ３０に接続され、一方、データインピン１６に対応付けられたスイッチ１３が空き端子３２に接続される。
【００２４】
セマフォ６は、入力として取得信号３４および解放信号３６を持つ。ＣＰＵ１は、受信ポインタ２６、および送信ポインタ２８を確実に更新する前に、まずセマフォ６を「取得」する必要がある。前記ＣＰＵは、「取得」信号３４を送信し、「取得 済み」イベント４０の受信を待つことにより、セマフォ６を取得することができる。前記ＣＰＵが受信ポインタ２６、および送信ポインタ２８を更新したとき、ＳＰＩスレーブ装置２がセマフォ６を取得可能になる前に、前記ＣＰＵは（「解放」信号３６を送信することにより）セマフォ６を「解放」しなければならない。
【００２５】
最大受信レジスタ４８は、ＳＰＩスレーブ装置２が許可された１回のトランザクション内で受信可能な最大バイト数を指定する。ＳＰＩスレーブ装置２が（最大受信レジスタ４８により規定された）受信可能な最大バイト数より多くのデータを受信する場合、オーバーフローイベント５０が生成され、オーバーした着信バイトは破棄される。
【００２６】
最大送信レジスタ５２は、ＳＰＩスレーブ装置２が許可された１回のトランザクション内で送信可能な最大バイト数を指定する。ＳＰＩスレーブ装置２が（最大送信レジスタ５２により規定された）許可された最大バイト数より多くのデータを送信することを命じられた場合、オーバーリードイベント５４が生成され、オーバーリードキャラクタ５６がクロックアウトされる。
【００２７】
許可されたトランザクションが完了すると、受信量レジスタ５８、および送信量レジスタ６０が更新される。送信量レジスタ６０は、最後のトランザクションで送信バッファ２４から読み出されたバイト数を示す。つまり、オーバーリードキャラクタ５６はこの数に含まれない。同様に受信量レジスタ５８は、最後のトランザクションで受信バッファ２２内に書き込まれたバイト数を示す。
【００２８】
図２は、図１の実施形態に対応する一連の典型的トランザクションのタイムチャートを示す。このタイムチャートは、時間関数としてトランザクションステータス６２およびセマフォステータス６４を示す。この例では、取得終了ショートカット４６が有効にされる。該取得終了ショートカットは、終了イベントの直後に、前記ＣＰＵが前記ＳＰＩスレーブ装置から前記セマフォを取得することを可能にする。セマフォステータス６４は、セマフォ６が現在割り当てられている、ＣＰＵ、ＳＰＩスレーブ、または割り当て無し（「Ｎ／Ａ」とラベル付けする）のような、現在エンティティがラベル付けされる。
【００２９】
最初の時刻１００で、セマフォ６は、ＳＰＩスレーブ装置２が起動された後、デフォルトでＣＰＵ１に設定される。この最初のセマフォ切り替えに対しては、取得イベントは生成されない。
【００３０】
次の時刻１０２で、チップセレクトピン１２がローになり、それをきっかけとして、ＳＰＩスレーブ装置２がセマフォ６を取得しようとして、シリアルクロック１２を有効にする。セマフォ６がＣＰＵ１にすでに割り当てられているので、ＳＰＩスレーブ装置２はこの時点でセマフォ６を取得することができず、トランザクション６６は無視される。次にシリアルデータイン１６上の全ての着信データ７０Ａは破棄され、該トランザクション６６の持続時間中、シリアルデータアウト１８の信号線から初期値キャラクタ３０がクロックアウトされる。前記トランザクションの取得試行中、時刻１０４において、セマフォ６がＣＰＵ１により解放されたときでも、該トランザクション６６は無視され続ける。すなわちトランザクションは最初に要求した時に許可されなければならない。
【００３１】
時刻１０６において競合状態が発生し、ＣＰＵ１およびＳＰＩスレーブ装置２の両方が同時にセマフォ６を取得しようとする。この場合、既定の動作では、ＣＰＵ１にセマフォ６へのアクセスを許可する。再度、前記初期値キャラクタ３０がシリアルデータアウト１８からクロックアウトされ、全ての着信データ７２Ａ、７２Ｂ、および７２Ｃが破棄される。
【００３２】
時刻１０８で、ＳＰＩスレーブ装置２はセマフォ６を取得することに成功し、トランザクション６８が許可される。こうして、シリアルデータイン１６上の着信データ７４Ａ、７４Ｂ、および７４Ｃは受信バッファ２２内に格納され、送信バッファ２４内のデータ８０Ａ、８０Ｂ、および８０Ｃがシリアルデータアウト１８にクロックアウトされる。許可されたトランザクション６８が完了し、チップセレクトピン１２がハイになると、ＳＰＩスレーブ装置２はセマフォ６を自動的に解放し、終了イベント４４を生成する。
【００３３】
セマフォ６が割り当てられない限り、ＳＰＩスレーブ装置２は複数のトランザクションを連続して許可されることができる。ＣＰＵ１が、許可されたトランザクション間で受信ポインタ２６および送信ポインタ２８を再設定できない場合、同一の送信データがクロックアウトされ、受信バッファ２２は上書きされる。このようなことの発生を防ぐため、「取得終了ショートカット」４６を使用することができる。該ショートカット４６が有効にされた状態で、現在の許可されたトランザクションが完了すると、セマフォ６は自動的にＣＰＵ１に引き渡され、ＣＰＵ１が受信ポインタ２６、および送信ポインタ２８を更新することができるようにする。
【００３４】
セマフォ６がＳＰＩスレーブ装置２に割り当てられているときに、ＣＰＵ１がセマフォ６を取得しようとする場合、即時引き渡しは拒絶される。しかしこの場合、現在のトランザクションの完了後にＳＰＩスレーブ装置２がセマフォ６を解放するとすぐに、セマフォ６はＣＰＵ１に引き渡される。時刻１１０では、「取得終了ショートカット」４６が有効にされ、ＣＰＵ１がトランザクション中に取得信号３４を送信しているので、前記セマフォ６の引き渡しはトランザクション完了後即時行われる。
【００３５】
図３は、本発明のさらに別の実施形態による電子データ処理装置のブロック図を示す。この実施形態は図１と非常によく似ており、異なる点は、送信トランザクションおよび受信トランザクションを独立して制御可能であることのみである。図１の実施形態と共通の機能は同一の参照番号にダッシュ記号を加えて示し、再度の説明はしない。
【００３６】
本実施形態では、セマフォ６’は、受信器制御ライン１５ａおよび送信器制御ライン１５ｂを介してそれぞれ２つのスイッチ１３’、１４’の状態を切り替えることにより、バッファ２２’、２４’へのアクセスを制御する。
【００３７】
セマフォ６’は、入力として受信器取得信号３４ａ、受信器解放信号３６ａ、送信器取得信号３４ｂ、および送信器解放信号３６ｂを持つ。ＣＰＵ１’が受信を希望する場合、ＣＰＵ１’は受信器取得信号３４ａを送信することができ、「受信器取得済み」イベント４０ａを受信するまで待機する。ＣＰＵ１’が受信ポインタ２６’を更新したとき、ＳＰＩスレーブ装置２’が受信のためにセマフォ６’を取得可能になる前に、ＣＰＵ１’は（受信器解放信号３６ａを送信することにより）セマフォ６’を「解放」しなければならない。
【００３８】
同様に、ＣＰＵ１’が送信を希望する場合、ＣＰＵ１’は送信器取得信号３４ｂを送信することができ、「送信器取得」イベント４０ｂを受信するまで待機する。ＣＰＵ１’が送信ポインタ２８’を更新したとき、ＳＰＩスレーブ装置２’が送信のためにセマフォ６’を取得可能になる前に、ＣＰＵ１’は（送信器解放信号３６ｂを送信することにより） セマフォ６’を「解放」しなければならない。
【００３９】
このように、本明細書には、データバッファの共有を可能にし、同時にデータ破壊の防止を可能にする電子データ処理装置が開示されていることがわかるであろう。特定の実施形態を詳細に記載したが、多数の変形および修正が本発明の範囲内で可能である。
【図１】
2018524703.tif 000003
【図２】
2018524703.tif 000004
【図３】
2018524703.tif 000005
【国際調査報告】
2018524703.tif 000006
2018524703.tif 000007