JP5804930B2 - シリアル通信方法、通信装置、およびシリアル通信システム - Google Patents
シリアル通信方法、通信装置、およびシリアル通信システム Download PDFInfo
- Publication number
- JP5804930B2 JP5804930B2 JP2011278587A JP2011278587A JP5804930B2 JP 5804930 B2 JP5804930 B2 JP 5804930B2 JP 2011278587 A JP2011278587 A JP 2011278587A JP 2011278587 A JP2011278587 A JP 2011278587A JP 5804930 B2 JP5804930 B2 JP 5804930B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- phase
- communication
- bits
- master
- 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.)
- Active
Links
Images
Landscapes
- Information Transfer Systems (AREA)
- Communication Control (AREA)
Description
第1フレームにて、マスタ側デバイスからスレーブ側デバイスへ、アドレスデータを送信し、第2フレームにて、スレーブ側からマスタ側へ、受信したアドレスのリードデータを送信する。
なお、アドレスデータは、最大7ビットのアドレスと、読み出し(R)か書き込み(W)かを制御する1ビットのR/W制御情報とから構成されることを前提としているが、これより大きいビット数のアドレスの場合にはフレームを追加することになる。
図1は、本実施の形態1に係るシリアル通信システムの構成を示すブロック図である。図示例のシリアル通信システムは、マスタ装置100とスレーブ装置200を備え、これらマスタ装置100とスレーブ装置200との間がシリアルクロック入力用のシリアルクロックライン(SCLK端子)および2本のシリアルデータライン(データ入力用のSDI端子とデータ出力用のSDO端子)の合計3ラインで接続されて、SPI(Serial Prepheral Interface)を利用した全二重通信を行う。
また、1通信単位(1フレーム)で構成された、以下の3つのフェーズを定義する。各フェーズの詳細は後述する。
(1)Address set phase(ASフェーズ)
(2)Write data phase(WDフェーズ)
(3)Read data phase(RDフェーズ)
また、マスタ装置100からスレーブ装置200のレジスタ(不図示)へのリード/ライト動作は、ASフェーズ+RDフェーズの2フェーズ動作、またはASフェーズ+WDフェーズの2フェーズ動作によって実現する。よって、2フェーズ動作には、8ビットの通信2回分(即ち、2フレーム分)の通信時間を要することになる。
マスタ装置主要処理部120は、スレーブ装置200へ送信するデータのパリティを計算してシフトレジスタ111へ出力すると共に、スレーブ装置200から受信したデータに含まれるパリティを取得してパリティチェックを行う。
スレーブ装置主要処理部220は、マスタ装置100へ送信するデータのパリティを計算して送信データセレクタ212へ出力すると共に、マスタ装置100から受信したデータに含まれるパリティを取得してパリティチェックを行う。
状態遷移制御部213は、SDI端子から入力される各ビットのデータに基づいて、リード/ライト動作およびフェーズ種別を判定して、各ビットについて予め定められた選択信号(アドレス情報またはライト情報)を送信データセレクタ212およびスレーブ装置主要処理部220に出力する。
図2(a)は、ASフェーズのフレーム構成を説明する図である。また、図3および図4は、スレーブ装置200のタイミングチャートであり、図3はライト動作時のASフェーズとWDフェーズ、図4はリード動作時のASフェーズとRDフェーズを示す。なお、図3に示すように、スレーブ装置200は、SCLK端子から入力されるクロック信号に同期し、SDI端子の信号をクロック信号の立下りで検出し、かつ、クロック信号の立下りでSDO端子から出力する。一方、マスタ装置100はSDI端子の信号を、図3および図4に破線で示すタイミングで検出する。
図2(b)は、WDフェーズのフレーム構成を説明する図である。
ASフェーズに続くWDフェーズにおいて、マスタ側のSDO端子からスレーブ側のSDI端子へビット0〜7の順にデータが送信される。ビット0〜7は、先のASフェーズで指定したアドレスに書き込むためのライトデータ(8ビット)である。
マスタ側からスレーブ側への送信と同時に、スレーブ側のSDO端子からマスタ側のSDI端子へもビット0〜7の順にデータが送信される。ただし、ビット0〜5はどのような値であってもよく、例えばダミーデータとして前フェーズでスレーブ側が受信した上位7ビットをそのまま返送する。ビット7は、スレーブ側で受信したライトデータのパリティチェック結果を示す情報であり、このWDフェーズで受信したライトデータを、先のASフェーズで受信したWD用パリティを用いて、ビット7のサイクルでパリティチェック(エラーがなければ1)したものである。
図2(c)は、RDフェーズのフレーム構成を説明する図である。
ASフェーズに続くRDフェーズにおいて、マスタ側のSDO端子からスレーブ側のSDI端子へビット0〜7の順にデータが送信される。ただし、ビット0〜7は、どのような値であってもよい。
マスタ側からスレーブ側への送信と同時に、スレーブ側のSDO端子からマスタ側のSDI端子へもビット0〜7の順にデータが送信される。ビット0〜7は、先のASフェーズで指定されたアドレスのレジスタから読み出したリードデータ(8ビット)である。
以下、これら送信データセレクタ212と状態遷移制御部213を備えたスレーブ装置200の動作を中心にして、マスタ装置100を含めたシリアル通信システム全体の動作を説明する。
ライト動作時のASフェーズにおいて、マスタ装置100では、マスタ装置主要処理部120においてライトデータのアドレスとR/W制御情報とからAS用パリティを計算して、シフトレジスタ111へ出力すると共に、ライトデータからWD用パリティを計算してシフトレジスタ111へ出力する。
シフトレジスタ111は、マスタ装置主要処理部120から出力されたアドレスおよびR/W制御情報、ならびにAS用パリティおよびWD用パリティをビット1〜7に格納する。ビット0はスタートビットである。
そして、シリアル通信部110は、クロック生成部130が生成するクロック信号をSCLK端子から出力すると共に、シフトレジスタ111に格納された8ビットデータをクロック信号に同期してSDO端子から出力する(ASフェーズ)。
他方、スタートビットを検出した状態遷移制御部213は、送信データセレクタ212へ選択信号を出力し、送信データセレクタ212が受信シフトレジスタ211に格納されていた前回受信データの上位1ビットを選択して、ダミーデータとしてSDO端子からマスタ装置100へ送信する(ステップST11)。
他方、状態遷移制御部213が引き続き送信データセレクタ212へ選択信号を出力し、送信データセレクタ212が受信シフトレジスタ211に格納されていた前回受信データのビット1〜5を選択して、ダミーデータとしてSDO端子からマスタ装置100へ送信する(ステップST12)。
さらに、状態遷移制御部213は、受信シフトレジスタ211に格納されたビット1〜4のアドレスを、先行してスレーブ装置主要処理部220へ通知し、スレーブ装置主要処理部220はASフェーズ中にリードデータを読み出してRD用パリティを計算する(ステップTT21,ST22)。
他方、状態遷移制御部213はR/W制御情報に従ってライトかリードかを判定し、ライトの場合は引き続き送信データセレクタ212へ選択信号を出力し、送信データセレクタ212が受信シフトレジスタ211に格納されていた前回受信データのビット6を選択して、ダミーデータとしてSDO端子からマスタ装置100へ送信する(ステップST13)。リードの場合の処理は後述する。なお、ライトの場合はステップST22で求めたRD用パリティは不要となる。
また、スレーブ装置主要処理部220が、受信シフトレジスタ211からデータを取得し、AS用パリティを用いて、アドレスとR/W制御情報のパリティチェックを行う(ステップST23)。
他方、状態遷移制御部213は送信データセレクタ212に対してスレーブ装置主要処理部220からアドレスのパリティチェック結果を取得するよう選択信号を出力する。送信データセレクタ212は、ステップST23でスレーブ装置主要処理部220の計算したアドレスのパリティチェック結果を取得して、ビット7としてSDO端子からマスタ装置100へ送信する(ステップST14)。
続いてマスタ装置主要処理部120からシフトレジスタ111へ8ビットのライトデータが出力され、シフトレジスタ111がSDO端子から出力する(WDフェーズ)。
また、スレーブ装置主要処理部220は、受信シフトレジスタ211に既に格納された7ビット分とこのクロックで受信した1ビット分の計8ビットのライトデータについて、ASフェーズのステップST5にて取得しておいたWD用パリティを用いてパリティチェックする(ステップST24)。
リード動作時のASフェーズにおいて、マスタ装置100では、マスタ装置主要処理部120においてリードデータのアドレスとR/W制御情報とから、ライト動作のASフェーズと同様にAS用パリティを計算してシフトレジスタ111へ出力する。
シフトレジスタ111は、マスタ装置主要処理部120から出力されたアドレスおよびR/W制御情報、ならびにAS用パリティをビット1〜6に格納する。ビット0はスタートビット、ビット7は不要である。
そして、シリアル通信部110は、クロック信号に同期して、シフトレジスタ111に格納されたASフェーズのフレームを出力する。
リード動作時のASフェーズでは、ステップST2においてビット1〜4のアドレスを受信すると、続くR/W制御情報およびAS用パリティを受信する間に、状態遷移制御部213の通知を受けてスレーブ装置主要処理部220がこのアドレスのリードデータ取得し(ステップST21)、パリティを計算する(ステップST22)。
続いてシフトレジスタ111は、クロック信号に同期してSDO端子からダミーデータを出力する(RDフェーズ)。
また、状態遷移制御部213はASフェーズからRDフェーズに遷移したことを判定して(ステップST15“Read”)、送信データセレクタ212へ選択信号を出力し、送信データセレクタ212がスレーブ装置主要処理部220から出力されるリードデータをSDO端子からマスタ装置100へ送信する(ステップST18)。
即ち、仮に通信速度が9600bps、マイコンコアの動作周波数が4MHzと仮定すれば、1ビットの通信パルス幅は1sec/9600=約104μsecであり、マイコンコアの動作周期は1sec/4,000,000=250nsec(0.25μsec)である。
1バイト=8ビットのデータフレームを送受信するにあたって、従来手法によれば、その通信時間は104μsec×8ビット×3フレーム=2496μsecと求めることができるが、本発明での通信時間は104μsec×8ビット×2フレーム=1664μsecとなるため、差し引き2496−1664=832μsecの通信レイテンシの短縮が可能となる。
動作周波数4MHzのマイコンコアにおいて、この差は832μsec/250nsec=3328サイクルに相当することになる。
つまり、本発明により、従来方式に比較して、通信レイテンシの短縮により、通信完了後に実行すべき最大3328命令分もの処理を先行して実行可能となる。
ここで、マスタ装置100およびスレーブ装置200のデータビット数というのは、各装置の内部で、1度に処理できるデータの幅をビット数で表したものであり、例えば一度に8ビットのみ演算できるものはデータビット数8ビット、32ビットの演算ができるものについてはデータビット数32ビットとなる。
なお、外部データ・バス幅が16ビットの32ビット・マイコンなど、入出力ビット数が内部データ・バス幅より少ない製品も存在するが、これらデータビット数については一般に用いられる概念に過ぎないため、説明の詳細は割愛する。
また、ASフェーズとWDフェーズは順番が逆であってもよい。即ち、ライト動作時のマスタ装置100は、先ずWDフェーズにおいて、スレーブ装置200へ書き込むためのライトデータをマスタ装置主要処理部120から受け付けてシフトレジスタ111からスレーブ装置200へ送信し、続くASフェーズにおいて、このライトデータのアドレス、およびマスタ装置主要処理部120で求めたWD用パリティを含めたフレームをシフトレジスタ111からスレーブ装置200へ送信するように構成する。他方のスレーブ装置200は、先ずWDフェーズにおいて、スレーブ装置主要処理部220に書き込むためのライトデータを含むフレームをマスタ装置100より受信し、続くASフェーズにおいて、マスタ装置100よりライトデータのアドレスおよびWD用パリティを含むフレームを受信し、かつ、スレーブ装置主要処理部220が、ASフェーズで受信したWD用パリティを用いてWDフェーズで受信したライトデータのエラー検出処理を行い、パリティチェック結果を含めたフレームをマスタ装置100へ送信するように構成する。この場合であっても、2フレームの通信時間でWD用パリティを含んだ信頼性の高い通信を完了させることができる。
なお、通信単位であるフレームのビット数は、マスタ装置100およびスレーブ装置200のデータビット数と一致するか、またはデータビット数より少ないものとする。
例えば、上記実施の形態1では1台のマスタ装置100と1台のスレーブ装置200を用いたが、スレーブ装置200を複数台用いても構わない。
また例えば、マスタ装置100として汎用マイコンを用いたが、これに限定されるものではなく、スレーブ装置200をマスタ装置100として利用してもよい。この構成の場合、クロック生成部130を具備したスレーブ装置200を複数台用意し、そのうちの1台のクロック生成部130をアクティブにして他のスレーブ装置200へクロック信号を送信する等すればよい。
また例えば、アドレス、リードデータおよびライトデータそれぞれのエラー検出処理を行う構成にしたが、これに限定されるものではなく、エラー検出に加えエラー訂正を行う構成にしてもよい。
また、シリアルデータラインはデータ入力用のSDI端子とデータ出力用のSDO端子の2本として説明したが、例えば通信高速化等の目的のため、2本以上のデータラインを用いても同様の技術的思想により本発明を適用しうることを言うまでも無い。
110,210 シリアル通信部
111 シフトレジスタ
120 マスタ装置主要処理部
130 クロック生成部
200 スレーブ装置
211 受信シフトレジスタ
212 送信データセレクタ
213 状態遷移制御部
220 スレーブ装置主要処理部
Claims (13)
- データ信号を送受信するシリアルデータラインにより接続され、全二重通信を行う通信装置のシリアル通信方法において、
通信単位であるフレームのビット数が、マスタ側およびスレーブ側の各通信装置のデータビット数と一致する場合、または当該データビット数より少ない場合に、
前記マスタ側から前記スレーブ側へリードデータのアドレス情報を含めたフレームを送信し、かつ、前記スレーブ側では前記アドレス情報を受信した時点で前記リードデータを読み出してエラー検出または訂正のための情報を求めて同一フレーム中に前記マスタ側へ返送する第1フェーズと、
前記スレーブ側から前記マスタ側へ、前記第1フェーズで読み出した当該リードデータを含めたフレームを送信する第2フェーズとを備えることを特徴とするシリアル通信方法。 - データ信号を送受信するシリアルデータラインにより接続されてシリアル通信を行う通信装置のシリアル通信方法において、
通信単位であるフレームのビット数が、マスタ側およびスレーブ側の各通信装置のデータビット数と一致する場合、または当該データビット数より少ない場合に、
前記マスタ側から前記スレーブ側へライトデータのアドレス情報と、当該ライトデータのエラー検出または訂正のための情報とを含めたフレームを送信する第1フェーズと、
前記マスタ側から前記スレーブ側へ当該ライトデータを含めたフレームを送信する第2フェーズとを備えることを特徴とするシリアル通信方法。 - 第1フェーズにて、マスタ側からスレーブ側へエラー検出または訂正のための情報より先出側にアドレス情報を詰めたフレームを送信することを特徴とする請求項1または請求項2記載のシリアル通信方法。
- 第1フェーズにて、マスタ側からスレーブ側へアドレス情報と、リード動作かライト動作かを指示する制御情報と、当該アドレス情報および当該制御情報のエラー検出または訂正のための情報とを含めたフレームを送信することを特徴とする請求項1から請求項3のうちのいずれか1項記載のシリアル通信方法。
- スレーブ側では、第1フェーズにてマスタ側からアドレス情報と、リード動作かライト動作かを指示する制御情報と、当該アドレス情報および当該制御情報のエラー検出または訂正のための情報とを含めたフレームを受信し、当該アドレス情報および制御情報について当該エラー検出または訂正のための情報を用いてエラー検出または訂正処理を行い、処理結果を同一フレーム中に前記マスタ側へ返送することを特徴とする請求項4記載のシリアル通信方法。
- スレーブ側では、ライトデータのアドレス情報と制御情報に対するエラー検出または訂正処理においてエラーが検出された場合、当該ライトデータの書き込みを中止可能とすることを特徴とする請求項5記載のシリアル通信方法。
- スレーブ側では、第2フェーズにてライトデータに対するエラー検出または訂正処理を行って処理結果を同一フレーム中に前記マスタ側へ返送すると共に、当該エラー検出または訂正処理においてエラーが検出された場合、当該ライトデータの書き込みを中止可能とすることを特徴とする請求項2記載のシリアル通信方法。
- マスタ側からスレーブ側へ、第1フェーズにてライトデータを含めたフレームを送信し、第2フェーズにて当該ライトデータのアドレス情報とエラー検出または訂正のための情報とを含めたフレームを送信することを特徴とする請求項2記載のシリアル通信方法。
- データ信号を送受信するシリアルデータラインにより接続され、全二重通信を行う通信装置において、
通信単位であるフレームのビット数が、マスタ側およびスレーブ側の各通信装置のデータビット数と一致する場合、または当該データビット数より少ない場合に、
マスタ側の通信装置は、
第1フェーズにおいて、リードデータのアドレス情報を含めたフレームをスレーブ側へ送信し、かつ、前記スレーブ側より当該リードデータのエラー検出または訂正のための情報を含むフレームを受信し、
第2フェーズにおいて、前記スレーブ側より当該リードデータを含むフレームを受信することを特徴とする通信装置。 - データ信号を送受信するシリアルデータラインにより接続されてシリアル通信を行う通信装置において、
通信単位であるフレームのビット数が、マスタ側およびスレーブ側の各通信装置のデータビット数と一致する場合、または当該データビット数より少ない場合に、
前記マスタ側の通信装置は、
第1フェーズにおいて、ライトデータのアドレス情報と、当該ライトデータのエラー検出または訂正のための情報とを含むフレームを前記スレーブ側へ送信し、
第2フェーズにおいて、当該ライトデータを含むフレームを前記スレーブ側へ送信することを特徴とする通信装置。 - データ信号を送受信するシリアルデータラインにより接続され、全二重通信を行う通信装置において、
通信単位であるフレームのビット数が、マスタ側およびスレーブ側の各通信装置のデータビット数と一致する場合、または当該データビット数より少ない場合に、
スレーブ側の通信装置は、
第1フェーズにおいて、前記マスタ側よりリードデータのアドレス情報を含むフレームを受信し、かつ、当該アドレス情報を受信した時点で当該リードデータを読み出してエラー検出または訂正のための情報を求めて同一フレーム中に前記マスタ側へ送信し、
第2フェーズにおいて、前記第1フェーズで読み出した当該リードデータを含めたフレームを前記マスタ側へ送信することを特徴とする通信装置。 - データ信号を送受信するシリアルデータラインにより接続されてシリアル通信を行う通信装置において、
通信単位であるフレームのビット数が、マスタ側およびスレーブ側の各通信装置のデータビット数と一致する場合、または当該データビット数より少ない場合に、
前記スレーブ側の通信装置は、
第1フェーズにおいて、前記マスタ側よりライトデータのアドレス情報と、当該ライトデータのエラー検出または訂正のための情報とを含むフレームを受信し、
第2フェーズにおいて、前記マスタ側より当該ライトデータを含むフレームを受信することを特徴とする通信装置。 - 請求項9または請求項10記載の通信装置をマスタ側として用い、請求項11または請求項12記載の通信装置をスレーブ側として用い、両通信装置間でシリアル通信を行うシリアル通信システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011278587A JP5804930B2 (ja) | 2011-12-20 | 2011-12-20 | シリアル通信方法、通信装置、およびシリアル通信システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011278587A JP5804930B2 (ja) | 2011-12-20 | 2011-12-20 | シリアル通信方法、通信装置、およびシリアル通信システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013131836A JP2013131836A (ja) | 2013-07-04 |
JP5804930B2 true JP5804930B2 (ja) | 2015-11-04 |
Family
ID=48909097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011278587A Active JP5804930B2 (ja) | 2011-12-20 | 2011-12-20 | シリアル通信方法、通信装置、およびシリアル通信システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5804930B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101558687B1 (ko) | 2013-12-10 | 2015-10-08 | 현대자동차주식회사 | 직렬 통신 테스트 장치, 시스템 및 방법 |
KR101637998B1 (ko) * | 2014-11-19 | 2016-07-12 | 현대오트론 주식회사 | 에스피아이 통신 장치 및 방법 |
-
2011
- 2011-12-20 JP JP2011278587A patent/JP5804930B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2013131836A (ja) | 2013-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8234463B2 (en) | Data processing apparatus, memory controller, and access control method of memory controller | |
EP1477899B1 (en) | Data processing apparatus and method | |
JP5835464B2 (ja) | 情報処理装置及び情報処理装置制御方法 | |
TW200910372A (en) | Improving latency by offsetting cyclic redundancy code lanes from data lanes | |
CN102446546A (zh) | 产生片内终结信号的电路和方法及使用它的半导体装置 | |
JP5804930B2 (ja) | シリアル通信方法、通信装置、およびシリアル通信システム | |
JP2008011123A (ja) | 冗長なデータ通信を行う通信装置 | |
JPWO2020166378A1 (ja) | 通信装置および通信方法、並びにプログラム | |
US10764409B2 (en) | Data communication device, arithmetic processing device, and control method of data communication device | |
CN115963891A (zh) | 同步串行通信延迟补偿的方法、装置、存储介质及设备 | |
CN109327284B (zh) | 数据传输方法、装置及电子设备 | |
CN113821463A (zh) | 基于fpga的pcie控制器验证方法、装置及计算机设备 | |
JP6595868B2 (ja) | 情報処理システム、デバイス、インタフェース制御方法 | |
JP2015154233A (ja) | データ伝送装置、データ伝送システム、キャリブレーション方法及びプログラム | |
WO2023139963A1 (ja) | 半導体装置、電子機器 | |
US11777627B2 (en) | Serial communication apparatus and serial communication method that are capable of efficiently eliminating a timing lag between serial, data transferred via a plurality of routes in serial communication | |
CN112422229B (zh) | 一种物理层重构*** | |
WO2019176580A1 (ja) | 通信装置、通信方法、プログラム、および、通信システム | |
JP4239482B2 (ja) | データ転送システム、lsi及びデータ転送方法 | |
JP6359192B2 (ja) | 二重化プロセス制御装置 | |
JP2018125814A (ja) | 伝送装置、伝送方法及び伝送システム | |
CN118337723A (zh) | 一种突发数据传输方法及装置 | |
CN115687188A (zh) | 显示接口信号输出转换电路及相关的方法 | |
CN114915365A (zh) | 时间同步方法及介质 | |
JP2016096493A (ja) | 通信システムおよび画像形成装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140922 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150724 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20150804 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150901 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5804930 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |