JP5379134B2 - データ通信システム、通信装置及び通信方法 - Google Patents

データ通信システム、通信装置及び通信方法 Download PDF

Info

Publication number
JP5379134B2
JP5379134B2 JP2010517704A JP2010517704A JP5379134B2 JP 5379134 B2 JP5379134 B2 JP 5379134B2 JP 2010517704 A JP2010517704 A JP 2010517704A JP 2010517704 A JP2010517704 A JP 2010517704A JP 5379134 B2 JP5379134 B2 JP 5379134B2
Authority
JP
Japan
Prior art keywords
communication
data
code
switching
reception
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
Application number
JP2010517704A
Other languages
English (en)
Other versions
JPWO2009153944A1 (ja
Inventor
伸一郎 西岡
寛 末永
勉 関部
勇雄 加藤
正 小野
英之 山田
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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2010517704A priority Critical patent/JP5379134B2/ja
Publication of JPWO2009153944A1 publication Critical patent/JPWO2009153944A1/ja
Application granted granted Critical
Publication of JP5379134B2 publication Critical patent/JP5379134B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/0264Arrangements for coupling to transmission lines
    • H04L25/0272Arrangements for coupling to multiple lines, e.g. for differential transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/14Two-way operation using the same type of signal, i.e. duplex
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/14Two-way operation using the same type of signal, i.e. duplex
    • H04L5/1438Negotiation of transmission parameters prior to communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/14Two-way operation using the same type of signal, i.e. duplex
    • H04L5/16Half-duplex systems; Simplex/duplex switching; Transmission of break signals non-automatically inverting the direction of transmission

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Quality & Reliability (AREA)
  • Power Engineering (AREA)
  • Bidirectional Digital Transmission (AREA)
  • Communication Control (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Description

本発明は、全二重通信と半二重通信が可能な複数の通信路を介して接続された複数の通信装置を含む通信システムにおける通信方式の切り替えの技術に関する。
近年の半導体微細化と高速化技術の進展に伴って、機器間あるいは機器内に搭載されるLSI間で通信するデータ量は益々増加傾向にあるが、その一方で、パッケージコストに影響するLSIの端子(パッド)数には厳しい制約がある。
このような制約のもとで用いられる通信方式としては、送受信の方向制御や送信権の調停制御が必要な半二重通信方式と、送受信を同時に処理できる全二重通信方式が挙げられる。
これら通信方式を切り替えることで、処理すべきデータの送受信を効率的に行う技術が開示されている(特許文献1、2)。
例えば、特許文献1では、送信あるいは受信の一方のみを行う場合には通信方式を半二重通信方式へ切り替え、送信及び受信の双方を行う場合には通信方式を全二重通信方式に切り替える技術が開示されている。
また、特許文献2では、半二重通信方式への切り替え時においては、8b/10bのようなエンコード方式で規定される特殊な制御コードを用いて、送受信の方向制御や方向制御後のビット同期を行う技術が開示されている。
特開2002−94600号公報 特開2005−260361号公報
ところで、通信方式の切り替え時に関して、従来、切り替え開始後、予め定められた期間(固定期間)が経過するとデータの送受信を開始するという手順が用いられている。なお、ここで、通信方式の切り替えとは、前記複数の通信路と接続され、データの入出力を行うインタフェース部が、切り替えられるべき通信方式に基づき、前記複数の通信路を用いてデータを受信すべき構成、データを送信すべき構成及びデータを疎受信すべき構成の何れかに切り替えることをいう。
しかしながら、従来の手順では、例えば、固定期間を経過する前に装置間を接続する複数の通信路に対する通信方向の切り替えが完了している場合、データの送受信が行えるにも関わらず固定期間を経過していないためデータの送受信を開始しない。そのため、固定期間を経過するまでの待ち時間が無駄となる。また、逆に、固定期間が経過してもなお複数の通信路に対する通信方向の切り替えが完了していない場合、例えば、ある装置が複数の通信路に対する通信方向の切り替えが完了しておらず、処理すべきデータを受信できる状態でない場合、通信方向の切り替えが完了した他の装置は相手装置が受信できないにも関わらず固定期間を経過したためデータの送信を開始するので、 受信エラーの通知やそれに伴う再送処理のような無駄な通信が発生する。
上記のような待ち時間や無駄な通信は、相手装置において接続された複数の通信路に対する通信方向の切替完了を認識していないために生じる問題である。
そこで、本発明は、上記問題に鑑みてなされたものであり、通信方式の切替完了を認識した上で処理すべきデータの送受信を開始することのできるデータ通信システム、通信装置及び通信方法を提供することを目的とする。
上記にて示す目的を達成するために、本発明は、第1装置と第2装置とからなり、前記第1装置と前記第2装置とを接続する第1及び第2の通信路を用いて全二重通信と半二重通信とを切り替えて処理対象であるデータの送受信を行うデータ通信システムであって、前記第1装置は、半二重通信時に当該第1装置がデータ送信側である場合において、半二重通信から全二重通信への切り替えを示す指示コードを前記第1の通信路を介して前記第2装置へ送出する第1送出手段と、前記第1及び前記第2の通信路と接続された第1インターフェース部を、前記第2の通信路によりデータを送信する構成から受信する構成へと切り替える第1切替制御手段と、前記第1切替制御手段による切替が完了し、且つ全二重通信への切替完了を示す応答コードを前記第2の通信路を介して前記第2装置から受け付けた後、全二重通信により処理対象となるデータの送受信を開始する第1通信制御手段とを備え、前記第2装置は、前記第1装置から前記指示コードを前記第1の通信路を介して受け付けると、前記第1及び前記第2の通信路と接続された第2インターフェース部において、前記第2の通信路によりデータを受信する構成から送信する構成へと切り替える第2切替制御手段と、前記第2切替制御手段による切替が完了した後、前記応答コードを前記第2の通信路を介して前記第1装置へ送出する第2送出手段と、前記応答コードを送出後、全二重通信により処理対象となるデータの送受信を開始する第2通信制御手段とを備えることを特徴とする。
上記にて示す構成によると、データ通信システムにおける第1装置及び第2装置は、指示コードを送受信してから応答コードを送受信するまでの間、つまり、指示コードと応答コードとによるハンドシェイクが成立するまでの間、通信方式の切替完了とは認識しない。そのため、切替が完了していないにも関わらず誤って処理すべきデータの送受信を開始することはない。また、ハンドシェイクが成立するとデータの送受信を開始するので切替完了から通信開始までの待ち時間が発生することもない。
ここで、前記第1送出手段は、さらに、前記第1通信制御手段による処理対象となるデータの送受信の開始に先立って、前記応答コードを受信した旨を示し、且つ前記第2装置からのデータの受信の待ち受け状態である旨を示す応答受信コードを前記第2装置へ送出し、前記第1通信制御手段は、前記第1送出手段による前記応答受信コードの送出後、処理対象のデータの送受信を開始し、前記第2通信制御手段は、前記応答受信コードの受信後、処理対象のデータの送受信を開始するとしてもよい。
この構成によると、データ通信システムにおける第1装置及び第2装置は、指示コードと応答コードとによるハンドシェイクが成立に加え、応答コードと応答受信コードによるハンドシェイクが成立するまでの間、データの送受信を開始しない。つまり、データ通信システムは、第1装置が自身にて送出した指示コードが第2装置へ届いたかどうかを応答コードの受信で認識し、且つ第2装置が自身にて送出した応答コードが第1装置へ届いたかどうかを応答受信コードの受信で認識した上で、全二重通信でのデータの送受信を開始する。これにより、両装置は、2種類のハンドシェイクが成立することで、相手装置の通信方式の切替が完了したことを認識することができるので、全二重通信によるデータの送受信を確実に開始することができる。
ここで、前記データ通信システムは、データ送信側がデータ送信を抑止する旨の抑止コードを、データ受信側が前記抑止コードの受信に対するメッセージコードを、それぞれ相手側の装置へ送信するフロー制御によるデータ通信を行い、前記第1送出手段は、前記指示コードの送出に先立って、前記抑止コードを前記第1の通信路を介して前記第2装置へ送出し、その後、前記指示コードを送出し、前記第2送出手段は、前記第2切替制御手段による前記切替が完了すると、前記応答コードの代わりに前記メッセージコードを送出し、前記第1通信制御手段は、前記第2装置から前記応答コードとして前記メッセージコードを受け付けるとしてもよい。
この構成によると、データ通信システムは、フロー制御にてデータ通信を制御する場合、第1装置は抑止コードの送信を指示コードの送信の契機としており、抑止コードに対するメッセージコードを指示コードに対する応答コードとして第2装置から受け付けている。これにより、データ通信システムは、抑止コードに対する制御が完了し、且つ通信方式の切替が完了すると、データの送受信を開始するので、フロー制御を用いたデータ通信時においても効率よくデータの送受信を開始できる。
ここで、前記データ通信システムは、データ送信側がデータ送信を抑止する旨の抑止コードを、データ受信側が前記抑止コードの受信に対するメッセージコードを、それぞれ相手側の装置へ送信するフロー制御によるデータ通信を行い、前記第1送出手段は、半二重通信によるデータ通信時において、前記指示コードの代わりに前記抑止コードを前記第2装置へ送出し、前記第2切替制御手段は、前記第1装置から前記指示コードとして前記抑止コードを受信し、前記第2送出手段は、前記第2切替制御手段による前記切替が完了すると、前記応答コードの代わりに前記メッセージコードを送出し、 前記第1通信制御手段は、前記第2装置から前記応答コードとして前記メッセージコードを受け付けるとしてもよい。
この構成によると、データ通信システムは、フロー制御にてデータ通信を制御する場合、第1装置は指示コードの代わりに抑止コードを送信しており、第2装置は応答コードとして抑止コードに対するメッセージコードを送信している。これにより、データ通信システムは、抑止コードに対する制御が完了し、且つ通信方式の切替が完了すると、データの送受信を開始するので、フロー制御を用いたデータ通信時においても効率よくデータの送受信を開始できる。
ここで、全二重通信時において、前記第1の通信路は前記第1装置から前記第2装置へデータを送信するよう用いられ、前記第2の通信路は前記第2装置から前記第1装置へデータを送信するよう用いられ、前記第1送出手段は、全二重通信時において、前記第2装置へデータを送信する旨を示すコードと半二重通信にてデータ通信を行う旨を示すコードとを含む送信要求コードを前記第1の通信路を介して前記第2装置へ送出し、前記第2送出手段は、前記送信要求コードを前記第1の通信路を介して受け取ると、当該送信要求コードを受け付けた旨を示す要求受信コードを前記第2の通信路を介して前記第1装置へ送出し、前記第1切替制御手段は、前記要求受信コードを前記第2の通信路を介して受け取ると、前記第1インターフェース部において、前記第2の通信路によりデータを受信する構成から送信する構成へと切り替え、前記第2切替制御手段は、前記要求受信コードの送出した後、前記第2インターフェース部において、前記第2の通信路によりデータを送信する構成から受信する構成へと切り替え、前記第1通信制御手段は、前記要求受信コードを受け取ってから所定の時間が経過した後、半二重通信により処理対象となるデータの送信を開始するとしてもよい。
この構成によると、第1装置及び第2装置は、送信要求コードと要求受信コードとのハンドシェイクが成立すると、半二重通信への切替を開始するので、どちらか一方のみが誤って切替を開始することはない。また、通信方式の切替のタイミングは要求受信コードの送受信後であるため両装置とも同じようなタイミングで切り替えを開始することができ、切り替えられた第2の通信路の利用が同じようなタイミングで可能となる。
ここで、前記データ通信システムは、前記第1装置が前記送信要求コードを送信した場合において、前記第2装置が受信待ちである旨の待ち受けコードを、前記第1装置が前記待ち受けコードの受信に対するメッセージコードを、それぞれ相手側の装置へ送信するフロー制御によるデータ通信を行い、前記第2送出手段は、前記第2切替制御手段による前記第2の通信路によりデータを送信する構成から受信する構成への切り替えに先立って、前記待ち受けコードを前記第2の通信路を介して前記第1装置へ送出し、前記第1送出手段は、前記要求受信コードを受け取り後、さらに前記待ち受けコードを前記第2の通信路を介して受け取ると、通信方式を全二重通信から半二重通信へと切り替える旨の指示コードを前記第1の通信路を介して前記第2装置へ送出し、前記第1切替制御手段は、前記待ち受けコードの受け取り後、前記第1インターフェース部を前記第2の通信路によりデータを受信する構成から送信する構成への切り替え、前記第2切替制御手段は、通信方式を全二重通信から半二重通信へと切り替える旨の指示コードを前記第1の通信路を介して受け取ると、前記第2インターフェース部を前記第2の通信路によりデータを送信する構成から受信する構成への切り替え、前記第1送出手段は、前記待ち受けコードを受け取ってから前記所定の時間の経過すると、前記第1通信制御手段による処理対象となるデータの送信の開始に先立って、前記メッセージコードを前記第1の通信路を介して前記第2装置へ送出し、前記第1通信制御手段は、前記第1送出手段による前記メッセージコードを送出した後、半二重通信により処理対象のデータの送信を開始するとしてもよい。
この構成によると、データ通信システムは、フロー制御にてデータ通信を制御する場合、第1装置は第2装置からの待ち受けコードの受信を指示コードの送信の契機としている。通常、フロー制御では、データを送信する場合、相手装置から待ち受けコードを受信し、データ送信の準備が完了した後に、データの送受信が開始される。そこで、待ち受けコードの送受信を指示コードの送受信の契機とすることで、待ち受けコードの送信前に、誤って半二重通信への切替を行ってデータ受信側からの待ち受けコードの送信ができなくなるという事態を防ぐことができる。
ここで、前記データ通信システムは、前記第1装置が前記送信要求コードを送信した場合において、前記第2装置が受信待ちである旨の待ち受けコードを、前記第1装置が前記待ち受けコードの受信に対するメッセージコードを、それぞれ相手側の装置へ送信するフロー制御によるデータ通信を行い、前記第2送出手段は、前記第2切替制御手段による第2インターフェース部を前記第2の通信路によりデータを送信する構成から受信する構成への切り替えに先立って、前記待ち受けコードを前記第2の通信路を介して前記第1装置へ送出し、前記第2切替制御手段は、前記待ち受けコードが送出されると、前記第2インターフェース部を前記第2の通信路によりデータを送信する構成から受信する構成への切り替え、前記第1送出手段は、前記要求受信コードの受け取り後、さらに前記待ち受けコードを前記第2の通信路を介して受け取ると、前記待ち受けコードの受け取りから前記所定の時間が経過すると、前記第1通信制御手段による処理対象となるデータの送信の開始に先立って、前記メッセージコードを前記第1の通信路を介して前記第2装置へ送出し、前記第1通信制御手段は、前記第1送出手段による前記メッセージコードを送出した後、半二重通信により処理対象のデータの送信を開始するとしてもよい。
この構成によると、データ通信システムにおいて、フロー制御にてデータ通信を制御する場合、両装置は、待ち受けコードの送受信を半二重通信への切替の契機としている。通常、フロー制御では、データを送信する場合、相手装置から待ち受けコードを受信し、データ送信の準備が完了した後に、データの送受信が開始される。そこで、待ち受けコードの送受信を半二重通信へ切替の契機とすることで、待ち受けコードの送信前に、誤って半二重通信への切替を行ってデータ受信側からの待ち受けコードの送信ができなくなるという事態を防ぐことができる。
ここで、全二重通信時において、前記第1の通信路は前記第1装置から前記第2装置へデータを送信するよう用いられ、前記第2の通信路は前記第2装置から前記第1装置へデータを送信するよう用いられ、前記第1送出手段は、前記第2装置からデータを受信する旨のコードと半二重通信にてデータ通信を行う旨のコードとを含む受信要求コードを前記第1の通信路を介して前記第2装置へ送出し、前記第2送出手段は、前記受信要求コードを前記第1の通信路を介して受け取ると、当該受信要求コードを受け付けた旨を示す要求受信コードを前記第2の通信路を介して前記第1装置へ送出し、前記第1切替制御手段は、前記要求受信コードを受け取った後、第1インターフェース部を前記第1の通信路によりデータを送信する構成から受信する構成へと切り替え、前記第2切替制御手段は、前記要求受信コードの送出後、第2インターフェース部を前記第1の通信路によりデータを受信する構成から送信する構成へと切り替え、前記第2通信制御手段は、前記要求受信コードを送出してから所定の時間が経過した後、半二重通信により処理対象のデータの送信を開始するとしてもよい。
この構成によると、第1装置及び第2装置は、受信要求コードと要求受信コードとのハンドシェイクが成立すると、半二重通信への切替を開始するので、どちらか一方のみが誤って切替を開始することはない。また、通信方式の切替のタイミングは要求受信コードの送受信後であるため両装置とも同じようなタイミングで切り替えを開始することができ、切り替えられた第1の通信路の利用が同じようなタイミングで可能となる。
ここで、前記データ通信システムは、前記第1装置が前記受信要求コードを送信した場合において、前記第1装置が受信待ちである旨の待ち受けコードを、前記第2装置が前記待ち受けコードの受信に対するメッセージコードを、それぞれ相手側の装置へ送信するフロー制御によるデータ通信を行い、前記第1送出手段は、前記要求受信コードを受け取った後、前記第1切替制御手段による第1インターフェース部を前記第1の通信路によりデータを送信する構成から受信する構成への切り替えに先立って、前記待ち受けコードを前記第1の通信路を介して前記第2装置へ送出し、前記第2送出手段は、前記要求受信コードの送出後、さらに前記待ち受けコードを前記第1の通信路を介して受け取ると、全二重通信から半二重通信への通信方式の切り替える旨の指示コードを前記第2の通信路を介して前記第1装置へ送出し、前記第1切替制御手段は、前記要求受信コードの受け取り後、さらに全二重通信から半二重通信への通信方式の切り替える旨の指示コードを前記第2の通信路を介して受け取ると、第1インターフェース部を前記第1の通信路によりデータを送信する構成から受信する構成へと切り替え、前記第2送出手段は、前記待ち受けコードを受け取ってから前記所定の時間の経過すると、前記第2通信制御手段による処理対象となるデータの送信の開始に先立って、前記メッセージコードを前記第2の通信路を介して前記第1装置へ送出し、前記第2通信制御手段は、前記メッセージコードの送出した後、半二重通信により処理対象のデータの送信を開始するとしてもよい。
この構成によると、データ通信システムは、フロー制御にてデータ通信を制御する場合、第2装置は第1装置からの待ち受けコードの受信を、半二重通信への切り替える旨の指示コードの送信の契機としている。通常、フロー制御では、データを送信する場合、相手装置から待ち受けコードを受信し、データ送信の準備が完了した後に、データの送受信が開始される。そこで、待ち受けコードの送受信を、半二重通信への切り替える旨の指示コードの送受信の契機とすることで、待ち受けコードの送信前に、誤って半二重通信への切替を行ってデータ受信側からの待ち受けコードの送信ができなくなるという事態を防ぐことができる。
ここで、前記データ通信システムは、前記第1装置が前記受信要求コードを送信した場合において、前記第1装置が受信待ちである旨の待ち受けコードを、前記第2装置が前記待ち受けコードの受信に対するメッセージコードを、それぞれ相手側の装置へ送信するフロー制御によるデータ通信を行い、前記第1送出手段は、前記要求受信コードを受け取った後、前記第1切替制御手段による前記第1インターフェース部を前記第1の通信路によりデータを送信する構成から受信する構成への切り替えに先立って、前記待ち受けコードを前記第1の通信路を介して前記第2装置へ送出し、前記第1切替制御手段は、前記待ち受けコードが送出されると、第1インターフェース部を前記第1の通信路によりデータを送信する構成から受信する構成へと切り替え、前記第2送出手段は、前記要求受信コードの送出した後、さらに前記待ち受けコードを前記第1の通信路を介して受け取ると、前記待ち受けコードを受け取ってから前記所定の時間が経過した後、前記第2通信制御手段による処理対象となるデータの送信の開始に先立って、前記メッセージコードを前記第2の通信路を介して前記第1装置へ送出し、前記第2通信制御手段は、前記第2送出手段による前記メッセージコードの送出した後、半二重通信により処理対象となるデータの送信を開始するとしてもよい。
この構成によると、データ通信システムにおいて、フロー制御にてデータ通信を制御する場合、両装置は、待ち受けコードの送受信を半二重通信への切替の契機としている。通常、フロー制御では、データを送信する場合、相手装置から待ち受けコードを受信し、データ送信の準備が完了した後に、データの送受信が開始される。そこで、待ち受けコードの送受信を半二重通信への切替の契機とすることで、待ち受けコードの送信前に、誤って半二重通信への切替を行ってデータ受信側からの待ち受けコードの送信ができなくなるという事態を防ぐことができる。
ここで、全二重通信から半二重通信への切り替えにおける前記所定の時間は、前記第2装置が前記第2切替制御手段により半二重通信から全二重通信への切り替えを開始してから前記第1装置との間で処理すべきデータの送受信を開始する状態となるまでに要した期間であるとしてもよい。
この構成によると、データ通信システムは、所定の時間を、半二重通信から全二重通信への切替に要した時間とすることで、全二重通信から半二重通信への切替に必要な時間を最適なものにすることができる。
ここで、半二重通信で前記第1装置が処理対象となるデータを受信する場合において、前記第2送出手段は、半二重通信から全二重通信への切り替えを示す指示コードを前記第2の通信路を介して前記第1装置へ送出し、前記第2切替制御手段は、第2インターフェース部を前記第1の通信路によりデータを送信する構成から受信する構成へと切り替え、前記第1切替制御手段は、半二重通信から全二重通信への切り替えを示す前記指示コードを前記第1の通信路を介して受け付けると、第1インターフェース部を前記第1の通信路によりデータを受信する構成から送信する構成へと切り替え、前記第1送出手段は、前記第1切替制御手段による切り替えが完了した後、全二重通信への切替完了を示す前記応答コードを前記第1の通信路を介して前記第2装置へ送出し、前記第1通信制御手段は、全二重通信への切替完了を示す前記応答コードを送出した後、全二重通信により処理対象となるデータの送受信を開始し、前記第2通信制御手段は、前記第1装置から全二重通信への切替完了を示す応答コードを前記第2の通信路を介して受け付けると、全二重通信により処理対象となるデータの送受信を開始するとしてもよい。
この構成によると、第1装置及び第2装置は、指示コードと応答コードとによるハンドシェイクが成立するまでの間、通信方式の切替完了とは認識しない。そのため、切替が完了していないにも関わらず誤って処理すべきデータの送受信を開始することはない。また、ハンドシェイクが成立するとデータの送受信を開始するので切替完了から通信開始までの待ち時間が発生することもない。
ここで、前記第1装置が前記指示コードの送出に用いる前記第1の通信路は、当該第1装置が全二重通信時において前記第2装置へデータを送信するために用いる通信路であるとしてもよい。
この構成によると、データ通信システムは、前記第1装置が前記指示コードの送出に用いる前記第1の通信路を、当該第1装置が全二重通信時において前記第2装置へデータを送信するために用いる通信路としている。つまり、全二重通信への切替時に、切り替える必要のない第1の通信路を用いて指示コードを送出しているので、第1装置及び第2装置とも、指示コードの送出に用いられていない第2の通信路を切替の対象として特定することが容易にできる。
また、本発明は、他装置との間で接続された第1及び第2の通信路を用いて全二重通信と半二重通信とを切り替えて処理対象であるデータの送受信を行うデータ通信装置であって、半二重通信時に当該データ通信装置がデータ送信側である場合において、半二重通信から全二重通信への切り替えを示す指示コードを前記第1の通信路を介して前記他装置へ送出する送出手段と、前記第1及び第2の通信路と接続された第1インターフェース部を、前記第2の通信路によりデータを送信する構成から受信する構成へと切り替える切替制御手段と、前記切替制御手段による切り替えが完了し、且つ全二重通信への切替完了を示す応答コードを前記第2の通信路を介して前記他装置から受け付けると、全二重通信により処理対象となるデータの送受信を開始する通信制御手段とを備えることを特徴とする。
この構成によると、データ通信装置は、指示コードを送受信してから応答コードを送受信するまでの間、つまり、指示コードと応答コードとによるハンドシェイクが成立するまでの間、通信方式の切替完了とは認識しない。そのため、切替が完了していないにも関わらず誤って処理すべきデータの送受信を開始することはない。また、ハンドシェイクが成立するとデータの送受信を開始するので切替完了から通信開始までの待ち時間が発生することもない。
ここで、前記切替制御手段は、当該データ通信装置が半二重通信時においてデータ受信側である場合に、前記他装置から半二重通信から全二重通信への切り替えを示す指示コードを前記第2の通信路を介して受け付けると、前記第1インターフェース部を、前記第1の通信路によりデータを受信する構成から送信する構成へと切り替え、前記送出手段は、前記切替制御手段により前記第1インターフェース部において前記第1の通信路によりデータを受信する構成から送信する構成へと切り替えが完了した後、全二重通信への切替完了を示す応答コードを前記第1の通信路を介して前記他装置へ送出し、前記通信制御手段は、全二重通信への切替完了を示す前記応答コードを送出後、全二重通信により処理対象となるデータの送受信を開始するとしてもよい。
この構成によると、データ通信装置は、半二重通信時においてデータの受信側となっている場合においても、指示コードと応答コードとによる他装置とのハンドシェイクが成立するまでの間、通信方式の切替完了とは認識しない。そのため、切替が完了していないにも関わらず誤って処理すべきデータの送受信を開始することはない。また、ハンドシェイクが成立するとデータの送受信を開始するので切替完了から通信開始までの待ち時間が発生することもない。
ここで、前記他装置は、データ通信に用いられる第1端子及び第2端子を備えており、前記データ通信装置は、データ通信に用いられる第3端子及び第4端子を有し、前記他装置と着脱可能であり、前記他装置への装着時に前記第1端子と前記第3端子とが、前記第2端子と前記第4端子とがそれぞれ接続されることで前記第1及び前記第2の通信路を形成するメモリカード又はI/Oカードであるとしてもよい。
この構成によると、データ通信装置としてメモリカード又はI/Oカードを用いることができるので、これらカードは、通信方式の切替完了を認識できる状態である場合には、当該完了を認識した上で処理すべきデータの送受信を開始することができる。
通信システム10の構成を示すブロック図である。 通信インタフェース部105の構成を示すブロック図である。 制御レジスタT100のデータ構造の一例を示す図である。 各種パケットのヘッダ部のデータ構造の一例を示す図である。 メモリコマンドパケットのデータ構造の一例を示す図である。 I/Oコマンドパケットのデータ構造の一例を示す図である。 データパケットのデータ構造の一例を示す図である。 レスポンスパケットのデータ構造の一例を示す図である。 メッセージパケットのデータ構造の一例を示す図である。 リンクパケットのデータ構造の一例を示す図である。 Kコード一覧テーブルT200を示す図である。 通信インタフェース部106の構成を示すブロック図である。 通信システム10における処理の概要を示す流れ図である。 (a)はマスタ100側における通信モード通知処理の動作を示す流れ図であり、(b)はスレーブ101側における通信モード通知処理の動作を示す流れ図である。 全二重通信によるデータ通信について具体例を用いた流れ図である。 通信モードの移行・復旧を含む半二重データ通信について具体例を用いた流れ図である。 マスタ100側における通信モード移行処理の動作を示す流れ図である。 スレーブ101側における通信モード移行処理の動作を示す流れ図である。 (a)は全二重通信から半二重通信への切り替える場合(マスタ100がデータの送信側となる場合)、制御コードの送受信の流れを示す図である。(b)は全二重通信から半二重通信への切り替える場合(マスタ100がデータの受信側となる場合)、制御コードの送受信の流れを示す図である。 マスタ100側における通信モードの復旧処理の動作を示す流れ図である。 スレーブ101側における通信モードの復旧処理の動作を示す流れ図である。 (a)はマスタ100がデータの送信側である半二重通信から全二重通信へと切り替える場合の制御コードの送受信の流れを示す図である。(b)はマスタ100がデータの受信側である半二重通信から全二重通信へと切り替える場合の制御コードの送受信の流れを示す図である。 半二重通信時においてデータ受信側の通信装置からの割込みを通知するための動作を示す図である。 通信モードの切替(半二重通信においてマスタが受信側となる場合)と、フロー制御と組み合わせた場合の動作を示す図である。 通信モードの切替(半二重通信においてマスタが送信側となる場合)と、フロー制御と組み合わせた場合の動作を示す図である。 通信システム10aの構成を示すブロック図である。 半二重通信から全二重通信への切替を示すコード(FDX)と、全二重通信から半二重通信への切替を示すコード(HDX)とをKコードに割り当てた場合のKコード一覧テーブルT201の一例を示す図である。 方向制御コードの送受信を、切替完了後におけるプリアンブルコードの送受信のトリガーとして用いた場合の制御コードの送受信の流れを示す図である。
1.実施の形態1
以下、本発明に係る通信システム10について、図面を用いて説明する。
1.1 通信システム10の構成
図1には、本発明の実施形態1に係る通信システム10の全体構成を示す。
通信システム10は、図1にて示すように、マスタ通信装置100(以下、マスタ)とスレーブ通信装置101(以下、スレーブ)とから構成されている。マスタ100とスレーブ101は、シリアル通信網102及びクロックライン115を介して接続されている。
マスタ100はイニシエータ103と通信インタフェース部(通信I/F部)105とを備え、スレーブ101はターゲット104と通信I/F部106を備える。
マスタ100及びスレーブ101は、通信I/F部105、106を用いてイニシエータ103とターゲット104との通信を行う。なお、本発明における処理対象のデータの送受信とは、通信インタフェース部105、106を用いてイニシエータ103とターゲット104との間で行われる通信(データの送受信)のことをいう。
通信I/F部105は、トランザクション制御部107とリンク制御部109と送受信部111とを備える。また、通信I/F部106も同様に、トランザクション制御部108とリンク制御部110と送受信部112とを備える。
トランザクション制御部107、108は、イニシエータ103とターゲット104との通信全体(トランザクション層)の制御を行う。
リンク制御部109、110は、通信する各種パケットの解析や伝送エラーのチェック、あるいは通信路の方向制御やビット同期などデータリンク層の制御を行う。
送受信部111、112は、トランスミッタ回路やレシーバ回路を含み、シリアル通信網102を用いた物理層の処理を行う。
シリアル通信網102は、図1にて示すように、第1通信路113(以下、DAT0ラインともいう。)と第2通信路114(以下、DAT1ラインともいう。)を含むシリアル通信路からなり、これら通信路を用いて全二重通信及び半二重通信が行われる。
全二重通信時において、DAT0ライン113はマスタ100からスレーブ101に向けたダウンリンク状態であり、DAT1ライン114はスレーブ101からマスタ100に向けたアップリンク状態となっている。リンク制御部109、110の制御によって、DAT0ライン113及びDAT1ライン114のいずれもダウンリンクやアップリンクとした半二重通信モードとすることもできる。
1.2 マスタ100について
ここでは、マスタ100における通信I/F部105について説明する。
通信I/F部105は、上述したように、トランザクション制御部107とリンク制御部109と送受信部111とを備える。
以下、各構成要素について詳細に説明する。
(1)トランザクション制御部107
トランザクション制御部107は、図2にて示すように、デスクリプタ202と、パケット生成部203と、データを一時蓄積する送信バッファ204及び受信バッファ205とを備えている。
(1−1)デスクリプタ202
デスクリプタ202は、制御レジスタT100を含み、当該制御レジスタを用いてイニシエータ103からの通信制御を行う。
デスクリプタ202に含まれる制御レジスタT100には、例えば、図3に示すように、起動レジスタと、メモリ空間の先頭アドレスや転送サイズを設定するための3種類の設定レジスタとの組が、トランザクション毎に定義されている。ここでは、これらレジスタは4バイトから構成されているものとする。
起動レジスタT101には、R/Wフラグ300、通信モードフラグ301及び起動フラグ302が含まれる。R/Wフラグ300は、1ビットからなり、データの受信(Read)若しくは送信(Write)のいずれかを示すものである。通信モードフラグ301は、データの送受信を行う通信モードが全二重通信モードか半二重通信モードか、あるいはそれらいずれも可能かを示すものである。起動フラグ302は、R/Wフラグ300及び通信モードフラグ301の設定に応じて通信を起動するためのものである。
ここで、イニシエータ103から複数の通信(トランザクション)をエントリ可能とするため、図3の例では、256組の制御レジスタを備えており、それらトランザクションはID0からID255までのトランザクションIDで識別される。
(1−2)送信バッファ204、受信バッファ205
送信バッファ204はスレーブ101へ送信すべきデータを一時蓄積するものであり、受信バッファ205はスレーブ101から受信したデータを一時蓄積するものである。
(1−3)パケット生成部203
パケット生成部203は、デスクリプタ202の設定や送信バッファ204、受信バッファ205の状態に応じて、通信開始のトリガーとなるコマンドパケットやデータパケットを生成するものである。
イニシエータ103により、制御レジスタT100のうち一のトランザクションIDに対応する各レジスタに必要な値が設定され、当該トランザクションIDに対応するトランザクションが起動されると、パケット生成部203は、送信すべき各種パケットを生成し、リンク制御部206に出力する。
以下、パケット生成部203にて生成される各種パケットについて説明する。
(1−2−1)共通
先ず、パケット生成部203にて生成される各種パケットに共通するデータ構造について、図4を用いて説明する。
各種パケットは、ヘッダ(共通)部400とアーギュメント部401とを少なくとも含んでいる。このうち各種パケットに共有するデータ構造は、ヘッダ(共通)部400である。
図4(a)は、ヘッダ部400のデータ構造の一例を示す図である。ヘッダ部400は、パケットの先頭2バイトからなり、デバイスID410、カテゴリ411、R/W412、及びトランザクションID413が含まれる。
デバイスID410は、図示していないが1つのマスタにハブを介して複数のスレーブが接続された場合においてパケットの送信対象となるスレーブを識別するために用いられる識別子である。
カテゴリ411はパケットの種別を示すものである。図4(b)にて、パケットの種別を示す。例えば、値“000”はI/Oコマンドパケットを、値“001”はメモリコマンドパケットを、値“010”はレスポンスパケットを、値“111”はメッセージパケットを、それぞれ示している。なお、ここでは、値“100”から“110”までにはコマンド種別は割り当てられていないものとする。
R/W412は受信(Read)あるいは送信(Write)のいずれかを示す。トランザクションID413は上述したようにイニシエータ103から起動されたトランザクションを識別するために用いられる。
(1−2−2)メモリコマンドパケット
次に、メモリコマンドパケットのデータ構造について、図5を用いて説明する。
メモリコマンドパケットは、“(1−2−1)共通”及び図5(a)にて示すように、ヘッダ部400とアーギュメント部401とから構成されている。
ヘッダ部400のデータ構造については、“(1−2−1)共通”にて説明しているので、ここでの説明は省略する。なお、ヘッダ部400のカテゴリには、値“001”が設定されている。
メモリコマンドパケットのアーギュメント部401は、通信モード420、アドレス長421、アドレス(下位32ビット)423、アドレス(上位32ビット)424及び転送サイズ425を含んでいる。
通信モード420にはデータ通信時の通信モードが格納されている。図5(b)にて、通信モードの種別を示す。例えば、値“01”は全二重通信で通信を行うことを示すモードであり、値“10”は半二重通信で通信を行うことを示すモードであり、値“11”はどちらの通信でもよい旨を示すモードである。なお、通信モードは、マスタ100の通信の性能、及び送信若しく受信すべきデータのサイズ等に応じて決定される。
アドレス長422には、後続するアドレスフィールドが4バイト(32ビット)か8バイト(64ビット)かを識別するため値が格納されている。
アドレス423及びアドレス424には、送受信対象のデータの先頭アドレスが格納される。具体的には、アドレス長422にてアドレスフィールドが4バイトを示す値が格納されている場合には、アドレス423のみを用いてデータのアドレスが示される。また、アドレス長422にてアドレスフィールドが8バイトを示す値が格納されている場合には、データのアドレスのうち下位32ビットがアドレス423にて示され、上位32ビットがアドレス424にて示される。
転送サイズ425には、送受信対象のデータのサイズが格納される。
(1−2−3)I/Oコマンドパケット
次に、I/Oコマンドパケットについて説明する。
I/Oコマンドパケットは、マスタ100とスレーブ101との間で、デスクリプタ202内の制御レジスタあるいはイニシエータ103やターゲット104内の制御レジスタなどがマッピングされた、I/O空間の通信を行うために用いられる。
I/Oコマンドパケットには、“(1−2−1)共通”“及び図6にて示すように、ヘッダ部400とアーギュメント部401とに加えて、データペイロード402が含まれる。
ヘッダ部400のデータ構造については、“(1−2−1)共通”にて説明しているので、ここでの説明は省略する。なお、ヘッダ部400のカテゴリには、値“000”が設定されている。
アーギュメント部401は、I/O空間に応じたアドレス長を示すI/Oアドレス431を含んでいる。
データペイロード402は、データの送信時であれば実際の通信内容であるI/Oデータ432を含んでいる。
通常、I/Oデータ432は、一般に制御レジスタの内容など、短い固定長のデータであることが多いので、本実施の形態では、I/Oコマンドパケットの送受信は、常に全二重通信モードで通信を行うこととする。
(1−2−4)データパケット
次に、データパケットについて説明する。
図7は、データパケットのデータ構造の一例を示す図である。
データパケットは、図7にて示すように、I/Oコマンドパケットと同様、ヘッダ部400とアーギュメント部401とデータペイロード402とから構成されている。
データパケットは、メモリコマンドパケットにて設定した転送サイズのデータをマスタ100とスレーブ101との間で送受信するためのものである。具体的には、メモリコマンドパケットにて設定した転送サイズのデータは、予めマスタとスレーブとの間でI/Oコマンドなどで事前共有したブロックサイズ(BLK)毎に、1つ以上のデータブロックに分割(パケット化)される。そして、分割したデータブロック毎にデータパケットが生成される。
ヘッダ部400のデータ構造については、“(1−2−1)共通”にて説明しているので、ここでの説明は省略する。なお、ヘッダ部400のカテゴリには、値“011”が設定されている。
アーギュメント部401は、分割されたデータブロックの番号を示すシーケンスID440を含んでいる。これにより、データの受信側は、受け取ったデータブロックが何番目のものであるかを知ることができる。
データペイロード402は、シーケンスID440にて示されるデータブロックの番号に対応する、分割されたデータブロック441を含んでいる。
(1−2−5)レスポンスパケット
次に、レスポンスパケットについて説明する。
レスポンスパケットは、マスタ100が発行したパケットに対する応答として、スレーブ101のトランザクション制御部108で生成および発行されるパケットである。
図8は、レスポンスパケットのデータ構造の一例を示す図である。
レスポンスパケットは、図8にて示すように、I/Oコマンドパケットと同様、ヘッダ部400とアーギュメント部401とデータペイロード402とから構成されている。
ヘッダ部400のデータ構造については、“(1−2−1)共通”にて説明しているので、ここでの説明は省略する。なお、ヘッダ部400のカテゴリには、値“010”が設定されている。
アーギュメント部401は、コマンドパケット同様の通信モード450、ACKビット452、エラーコード453を含んでいる。ACKビット452は、コマンドパケットを正しく受け付けて応答可能(ACK)か、アドレスエラーや転送サイズエラーなどのエラーがあって応答不能(NAK)かを示すものである。エラーコード453は、ACKビット452に“NAK”を示す値が設定される場合に、そのエラーの種別を示すものである。
データペイロード402には、I/Oコマンドパケットを受信した場合に対する応答においては、I/Oデータ454が付加される。
(1−2−6)メッセージパケット
最後に、メッセージパケットについて説明する。
メッセージパケットは、シリアル通信網102を用いて割込み等のサイドバンド信号を通信するためのパケットである。
図9は、メッセージパケットのデータ構造の一例を示す図である。
レスポンスパケットは、図9(a)にて示すように、ヘッダ部400とアーギュメント部401とから構成されている。
ヘッダ部400のデータ構造については、ここでの説明は省略する。なお、ヘッダ部400のカテゴリには、値“111”が設定されている。
アーギュメント部401は、メッセージカテゴリ460、REQ/ACKビット462、及びメッセージの詳細を示すメッセージインデックス463を含んでいる、
メッセージカテゴリ460は、メッセージの種別を示すものである。図9(b)にてメッセージの種別を示す。例えば、値“0000”は割込みアサートを、値“0001”は割込みネゲートを、値“0010”はCRCエラーを、値“0011”はアボートを、値“1110”は電力制御を、値“1111”はリセットを、それぞれ示している。なお、ここでは、値“0100”から“1101”までにはメッセージ種別は割り当てられていないものとする。
REQ/ACKビット462は、メッセージのリクエスト(REQ)か、メッセージに対するアクノリッジ(ACK)かを示すものである。
ここで、割込みアサートは割込みを通知するものであり、割込みネゲートはその割込み要因が取り除かれたことを示すものである。CRCエラーは、伝送エラーが発生したことを示すものであり、アボートは転送中止を示すものである。電力制御はアイドル状態の消費電力の削減を指示するためのものであり、リセットは初期化を指示するものである。
また、割込みアサート及び割込みネゲートの場合におけるメッセージインデックスは、I/O空間にマッピングされた割込み要因レジスタの番号を示す。CRCエラーの場合には、エラーがあったデータパケットのシーケンスIDを示す。アボートの場合には、アボート前に転送完了したデータパケットのシーケンスIDを示す。電力制御の場合には、電力制御対象が送受信部111、112やリンク制御部109、110であるか、あるいはトランザクション制御部107、108についても含むかを示す。
(2) リンク制御部109
リンク制御部109は、図2にて示すように、リンクパケット生成・解析部207、方向制御部208、同期制御部209及びI/F部210から構成されている。
(2−1)リンクパケット生成・解析部207
リンクパケット生成・解析部207は、トランザクション制御部107のパケット生成部203にて生成された各種パケットについてのCRC演算を行う。
そして、リンクパケット生成・解析部207は、CRC演算を行ったパケットの末尾にフッタ部としてCRCコードを付与して、リンクパケットを生成し、生成したリンクパケットを送受信部111へ出力する。
図10は、パケットサイズ“PKT”であるパケットの末尾にフッタ部が付与されたリンクパケットのデータ構造の一例を示す図である。
リンクパケットは、ヘッダ部400、パケット部405及びフッタ部406から構成されている。
ヘッダ部400は、上述しているので、ここでの説明は省略する。
パケット部405は、上述したアーギュメント部401を含むものである、若しくはアーギュメント部401とデータペイロード402とを含むものであるので、ここでの説明は省略する。
フッタ部406は、CRCコード(例えば、16ビット)を含んでいる。
また、リンクパケット生成・解析部207は、送受信部111から入力されたリンクパケットに対して、そのリンクパケットに含まれるCRCコードを用いて伝送エラーチェックを行う。その後、リンクパケット生成・解析部207は、CRCコードなどを取り除いて必要な部分のみトランザクション制御部107に出力する。
(2−2)方向制御部208
方向制御部208は、全二重通信モードと半二重通信モードとの通信方式の切り替えに伴う通信路の方向制御を行う。
具体的には、当該マスタ100を処理すべきデータの受信側として、全二重通信から半二重通信への切り替えに伴う方向制御を行う場合には、方向制御部208は、DAT0ライン113とDAT1ライン114に接続する通信路I/F部250において、DAT0ライン113とDAT1ライン114との双方からデータを受信するよう通信路I/F部250の構成を変更する。また、当該マスタ100を処理すべき送信側として、全二重通信から半二重通信への切り替えに伴う方向制御を行う場合には、方向制御部208は、通信路I/F部250において、DAT0ライン113とDAT1ライン114との双方からデータを送信するよう通信路I/F部250の構成を変更する。半二重通信から全二重通信への切り替えに伴う方向制御を行う場合には、方向制御部208は、通信路I/F部250において、DAT0ライン113からデータを送信し、DAT1ライン114からデータを受信するよう通信路I/F部250の構成を変更する。
なお、通信路I/F部250については後述する。
(2−3)同期制御部209
同期制御部209は、初期化直後にビット同期やシンボル同期のための同期コード(プリアンブル)生成を行う。
(2−4)I/F部210
I/F部210は、リンク制御部109と送受信部111との間のデータの入出力を行うものである。
(3)送受信部111
送受信部111は、データ入出力制御部213、クロック生成部214、CDR(Clock Data Recovery)回路215、I/F部212及び通信路I/F部250から構成されている。
(3−1)クロック生成部214、CDR回路215
クロック生成部214は、基準クロックを生成する。
CDR回路215は、シリアル通信路のデータに埋め込まれた高速クロックを、基準クロックとの位相合わせを行って抽出する。
(3−2)通信路I/F部250
通信路I/F部250は、差動トランスミッタ216、217、219、差動レシーバ218、220を有している。
各差動トランスミッタは、シリアル信号を差動信号に変換して、送信するものである。
差動トランスミッタ216は、基準クロックをクロックライン115で送信する。
差動トランスミッタ217はシリアルデータをDAT0ライン113を用いて送信し、差動トランスミッタ219はシリアルデータをDAT1ライン114で送信する。
各差動レシーバは、受信した差動信号をシリアル信号に変換するものである。
差動レシーバ218はシリアルデータをDAT0ライン113を用いて受信し、差動レシーバ220はシリアルデータをDAT1ライン114を用いて受信する。
具体的には、全二重通信時には、差動トランスミッタ217と、差動レシーバ220とがそれぞれDAT0ライン113及びDAT1ライン114に接続されて、有効に動作している。この場合において、当該マスタ100がデータを送信する側として、全二重通信から半二重通信へと切り替わる場合には、方向制御部208の制御により、DAT1ライン114との接続先が差動レシーバ220から差動トランスミッタ219へと切り替えられることで、通信の方向が制御される。また、当該マスタ100がデータを受信する側として、全二重通信から半二重通信へと切り替わる場合には、方向制御部208の制御により、DAT0ライン113との接続先が差動トランスミッタ217から差動レシーバ218へと切り替えられることで、通信の方向が制御される。
ここで、差動トランスミッタから差動レシーバへの切り替え、及び差動レシーバから差動トランスミッタへの切り替えの具体例について説明する。
差動トランスミッタ217と差動レシーバ218とは、第1スイッチ回路(図示せず)を介して、電力を供給する電源部と接続されている。第1スイッチ回路は、方向制御部208の制御により差動トランスミッタ217と差動レシーバ218の何れかと接続されるものである。方向制御部208は、DAT0ライン113を用いてデータをスレーブ101へ送信する場合には第1スイッチ回路を差動トランスミッタ217と接続するよう制御し、DAT0ライン113を用いてデータをスレーブ101から受信する場合には第1スイッチ回路を差動レシーバ218と接続するよう制御する。
差動トランスミッタ219と差動レシーバ220とは、第2スイッチ回路(図示せず)を介して、電源部と接続されている。第2スイッチ回路は、方向制御部208の制御により差動トランスミッタ219と差動レシーバ220の何れかと接続されるものである。方向制御部208は、DAT1ライン114を用いてデータをスレーブ101へ送信する場合には第2スイッチ回路を差動トランスミッタ219と接続するよう制御し、DAT1ライン114を用いてデータをスレーブ101から受信する場合には第2スイッチ回路を差動レシーバ220と接続するよう制御する。
これにより、第1スイッチ回路と接続された差動トランスミッタ217若しくは差動レシーバ218は電力が供給されるので、利用できる有効な状態となり、接続されていない他方は無効な状態となる。
また、同様に、第2スイッチ回路と接続された差動トランスミッタ219若しくは差動レシーバ220は電力が供給されるので、利用できる有効な状態となり、接続されていない他方は無効な状態となる。
なお、以降において、差動レシーバ及び差動トランスミッタの有効な状態とは電力が供給された状態のことをいい、無効な状態とは電力が供給されていない状態のことをいう。
(3−3)データ入出力制御部213
データ入出力制御部213は、符号化部224、復号化部225、パラレル/シリアル変換部(P/S変換部)226及びシリアル/パラレル変換部(S/P変換部)227から構成されている。
(3−3−1)符号化部224、復号化部225
符号化部224は、シリアルデータに高速クロックを埋め込んで伝送するための8b/10bのようなエンコード方式でデータを符号化するものである。
復号化部225は、8b/10bのようなエンコード方式で符号化されたデータを復号化するものである。
通常、8b/10b方式には、符号化の冗長性を活かした制御コード(Kコード)が定義されている。そこで、本実施の形態においては、符号化部224にはリンク制御部206からの指示によりKコードを生成するコード生成部228を、復号化部225には復号化したパラレルデータからKコードを検出するコード検出部229をそれぞれ含むものとする。
ここで、本実施形態におけるKコードの機能割当ての一例を図11に示す。
Kコード一覧テーブルT200は、Kコード、シンボル、機能、元データ、Current RD−及びCurrent RD+からなる組を1つ以上含んでいる。
Kコードはコードを示すものであり、シンボルは対応するKコードが示す機能を識別するものである。機能は対応するKコードが示す機能を示すものであり、元データはリンク制御部206にてなされた指示を示すデータである。この元データとKコードとが対応している。Current RD−及びCurrent RD+は、0が多いコードと1が多いコードが交互に伝送されて信号のDC(直流)成分のバランスをとるようにするために用いるコード属性である。
リンク制御部206が、図11に示す元データを送受信部111へ送信すると同時にKコードへの変換を指示することで、符号化部224のコード生成部228は、Kコード一覧テーブルT200の内容に基づいて、受信した元データに対応するKコードを生成する。符号化部224は、生成したKコードに対応するCurrent RD−及びCurrent RD+を交互に送信する。
また、コード検出部229は、復号したパラレルデータに含まれるCurrent RD−及びCurrent RD+に基づいてKコードを検出し、検出したKコードに対応する機能を特定する。
図11に示す各種制御コードの使用方法は、後述する本実施形態の動作において説明する。
(3−3−2)P/S変換部226、S/P変換部227
P/S変換部226は、符号化されたデータをパラレルデータからシリアルデータに変換するものである。変換したシリアルデータは、通信路I/F部250を介してスレーブ101へ送信される。
S/P変換部227は、通信路I/F部250を介してスレーブ101から受け取ったシリアルデータをパラレルの符号化されたデータへと変換するものである。
(3−4)I/F部212
I/F部212は、リンク制御部109と送受信部111との間のデータの入出力を行うものである。
1.3 スレーブ101について
ここでは、スレーブ101における通信I/F部106について説明する。
通信I/F部106は、図12に示すように、マスタ100の通信I/F部105と同様に、トランザクション制御部108とリンク制御部110と送受信部112とを備える。
以下、各構成要素について詳細に説明する。
トランザクション制御部108は、図12に示すように、デスクリプタ1102、パケット生成部1103、送信バッファ1104及び受信バッファ1105から構成されている。これら構成要素は、マスタ100のトランザクション制御部107にて示す各構成要素と同様であるので、ここでの説明は省略する。
リンク制御部110は、図12に示すように、リンクパケット生成・解析部1107、方向制御部1108、同期制御部1109及びI/F部1110から構成されている。これら構成要素は、マスタ100のリンク制御部109にて示す各構成要素と同様であるので、ここでの説明は省略する。
送受信部112は、データ入出力制御部1113、CDR回路1114、I/F部1112及び通信路I/F部1150から構成されている。
データ入出力制御部1113、CDR回路1114及びI/F部1112のそれぞれは、マスタ100が有するデータ入出力制御部213、CDR回路215及びI/F部212のそれぞれと同様であるので、ここでの説明は省略する。
ここでは、通信路I/F部1150の構成について説明する。
通信路I/F部1150は、差動レシーバ1115、差動トランスミッタ1116、1118、差動レシーバ1117、1119を有している。
差動レシーバ1115は、マスタ100から送信された基準クロックをクロックライン115を介して受信する。
差動トランスミッタ1116はシリアルデータをDAT0ライン113を用いて送信し、差動トランスミッタ1118はシリアルデータをDAT1ライン114で送信する。
差動レシーバ1117はシリアルデータをDAT0ライン113を用いて受信し、差動レシーバ1119はシリアルデータをDAT1ライン114を用いて受信する。
具体的には、全二重通信時には、差動レシーバ1117と、差動トランスミッタ1118とがそれぞれDAT0ライン113及びDAT1ライン114に接続されて、有効に動作している。この場合において、マスタ100がデータを送信する側(つまり、当該スレーブ101がデータの受信側)として、全二重通信から半二重通信へと切り替わる場合には、方向制御部1108の制御により、DAT1ライン114との接続先が差動トランスミッタ1118から差動レシーバ1119へと切り替えられることで、通信の方向が制御される。また、マスタ100がデータを受信する側(つまり、当該スレーブ101がデータを送信する側)として、全二重通信から半二重通信へと切り替わる場合には、方向制御部1108の制御により、DAT0ライン113との接続先が差動レシーバ1117から差動トランスミッタ1116へと切り替えられることで、通信の方向が制御される。
なお、差動レシーバと差動トランスミッタとの切り替えについては、通信路I/F部250にて説明したように、電源部(図示せず)からの電力の供給の有無により実現できるので、ここでの説明は省略する。
スレーブ101が上記のような構成要素を備え、例えばターゲット104がメモリデバイスとすることで、以下のような動作を行うことができる。トランザクション制御部108は、マスタ100から受信したコマンドパケットからアドレスや転送サイズを抽出してデスクリプタ1102に登録する。そして、デスクリプタ1102は、送信バッファ1104及び受信バッファ1105を用いてターゲットであるメモリデバイスのアクセス準備を行う。デスクリプタ1102による準備ができると、パケット生成部1103はレスポンスパケットを生成し、マスタ100に送信し、必要があれば通信方式を切り替え、その後、データ通信を開始することになる。
1.4 動作
(1)通信システム10の動作
ここでは、通信システム10における全体の動作について、図13にて示す流れ図を用いて説明する。
まず、通信システム10は、マスタ100とスレーブ101との間でI/Oコマンドを送受信することでデータパケットのブロックサイズなどの制御情報を共有する、通信初期化を行う(ステップS5)。このとき、通信システム10は、シリアル通信網102の内、DAT0ライン113をマスタ100からスレーブ101に向けたダウンリンク、DAT1ライン114をスレーブ101からマスタ100に向けたアップリンクとして全二重通信モードで通信可能な状態とする。
次に、マスタ100はDAT0ライン113を用いてコマンドパケットを送信することで、通信要求を行う(ステップS10)。スレーブ101は、マスタ100からDAT0ライン113を用いてコマンドパケットを受信すると、DAT1ライン114を用いてレスポンスパケットを送信することで、通信応答を行う(ステップS15)。このようにして、マスタ100とスレーブ101との間でコマンドパケットとレスポンスパケットのハンドシェイクが成立する。ここで、マスタ100及びスレーブ101それぞれは、送信すべきパケットをパケット生成部203(1103)及びリンクパケット生成・解析部207(1107)にて生成し、生成したパケットをデータ入出力制御部213(1113)にて符号化して相手装置へ送信する。以降において、パケットの送信時には、このような動作が行われるものとする。また、マスタ100及びスレーブ101それぞれは、相手装置から各種パケットを受信すると、リンクパケット生成・解析部207(1107)にて伝送エラーチェックが行われ、その後、CRCコードなどを取り除いて必要な部分のみトランザクション制御部107(108)に出力する。トランザクション制御部107(108)にて受信したパケットの内容を解析し、その結果に基づく処理を行う。以降において、パケットの受信時には、このような動作が行われるものとする。
マスタ100は、データ通信を全二重通信モードで行うか、半二重通信モードに移行してから行うかを確定し、その結果をスレーブ101へ通知する(ステップS20)。具体的には、通信モードの確定は、図5および図8にそれぞれ示すコマンドパケットとレスポンスパケットおけるアーギュメント部に含む通信モードフィールドに基づいて行われる。例えば、マスタ100が発行するコマンドパケットの通信モードフィールドが全二重通信モードか半二重通信モードであればその通信モードで確定する。任意モードであればスレーブ101が発行するレスポンスパケットの通信モードフィールドに従って通信モードを確定する。そして、マスタ100は、確定した通信モードが半二重通信である場合には図11に示す制御コードの内、方向制御コード(DIR)を通知し、全二重通信である場合にはアイドルコード(IDL)を通知する。なお、本実施の形態においては、コマンドパケットとレスポンスパケットの双方に通信モードフィールドを含んでいるので、それらの示す通信モードに相違が発生することが考えられる。このため、マスタ100は最終的に確定した通信モードをスレーブ101に通知する必要がある。しかしながら、本実施の形態のように、マスタ100は、通信モードの切替が必要な場合には方向制御コードを送信し、必要ない場合にはアイドルコードを送信することで、スレーブ101は、通信モードの相違の有無に関わらず、受信した制御コード(DIR若しくはIDL)にて切替が必要であるか否かを判断することができる。
通信モードとして全二重通信が選定されると(ステップS20における「全二重」)、通信システム10は、全二重通信によるデータ通信を行う(ステップS25)。その後、処理対象となるデータの通信が終了したか否かを判断する(ステップS45)。終了していないと判断する場合(ステップS45における「No」)、処理はステップS10へ戻る。終了したと判断する場合(ステップS45における「Yes」)、処理は終了する。
通信モードとして半二重通信が選定されると(ステップS20における「半二重」)、マスタ100及びスレーブ101は、通信モードを全二重通信から半二重通信へと切り替える(移行する)処理を行う(ステップS30)。全二重通信から半二重通信への切り替えが完了すると、半二重通信によるデータ通信を行う(ステップS35)。通信システム10は、ステップS35にて送信対象のデータが送信されると、通信モードの復旧処理、つまり通信モードを半二重通信から全二重通信へと切り替える処理を行う(ステップS40)。その後、ステップS45が実行される。
(2)通信モードの通知処理
ここでは、図13にて示すステップS20にて行われる通信モード通知の処理の手順をマスタ100側、スレーブ101側に分けて図14(a)及び(b)にて示す流れ図を用いて説明する。
図14(a)は、マスタ100側における処理の流れを示す流れ図である。
マスタ100は、確定した通信モードは半二重通信であるか否かを判断する(ステップS100)。
半二重通信であると判断する場合には(ステップS100のおける「Yes」)、マスタ100は、方向制御コード(DIR)をDAT0ライン113を用いてスレーブ101へ送信する(ステップS105)。その後、アクノリッジコード(ACK)を受信したか否かを判断する(ステップS110)。受信したと判断する場合には(ステップS110における「Yes」)、マスタ100は、アイドルコード(IDL)をDAT0ライン113を用いてスレーブ101へ送信する(ステップS115)。アクノリッジコードを受信していないと判断する場合には(ステップS110における「No」)、マスタ100は、アクノリッジコードを受信するまでの間、方向制御コードの送信を継続する。ここで、マスタ100及びスレーブ101は、方向制御コードやアクノリッジコードなどのKコードの送信時には、コード生成部228(1127)にて送信すべきKコードを生成し、符号化部224(1124)が符号化して相手装置へ送信する。またマスタ100及びスレーブ101は、Kコードの受信時には、コード検出部229(1128)にてKコードを検出する。以降において、Kコードの送信及び受信時には、このような動作が行われる。
半二重通信でないと判断する場合には(ステップS100のおける「No」)、マスタ100は、アイドルコードをDAT0ライン113を用いてスレーブ101へ送信する(ステップS115)。
図14(b)は、スレーブ101側における処理の流れを示す流れ図である。
スレーブ101は、制御コードを受信したか否かを判断する(ステップS150)。
受信していないと判断する場合には(ステップS150における「No」)、スレーブ101は、制御コードを受信するまでステップS150の判断を行う。
受信したと判断する場合には(ステップS150における「Yes」)、スレーブ101は、受信した制御コードの種別を判定する(ステップS155)。
受け取った制御コードが方向制御コード(DIR)である場合には(ステップS155における「DIR」)、スレーブ101は、アクノリッジコードをマスタ100へ送信する(ステップS160)。その後、アイドルコードを受信したか否かを判断する(ステップS165)。
受信したと判断する場合には(ステップS165における「Yes」)、スレーブ101は、処理を終了する。アイドルコードを受信していないと判断する場合には(ステップS165における「No」)、スレーブ101は、アイドルコードを受信するまでの間、アクノリッジコードの送信を継続する。
ステップS150にて受け取った制御コードがアイドルコード(IDL)である場合には(ステップS155における「IDL」)、スレーブ101は、処理を終了する。
このような手順により、切り替えの指示をリンク層の制御コード(方向制御コード、アクノリッジコード)によるハンドシェイクで確実に通知することができる。
(全二重通信によるデータ通信)
ここで、全二重通信によるデータ通信について具体例を用いて説明する。
全二重通信によるデータ通信は、図15に示すように、マスタ100とスレーブ101との間は、ダウンリンク状態のDAT0ライン113とアップリンク状態のDAT1ライン114とで接続されている。
マスタ100から通信モードを全二重通信モードとする送信コマンドパケットがスレーブ101へ送信され(ステップS200)、スレーブ101は受信準備ができるとレスポンスパケットで応答する(ステップS205)。
レスポンスパケットを受けたマスタ100は、ダウンリンク状態のDAT0ライン113のみを用いてデータパケット(WDAT PKT 0、1)の送信を行う(ステップS210、S215)。例えば、ステップS5における通信初期化にて共有したデータパケットのブロックサイズを512バイトとし、送信コマンドパケットで指定した転送サイズを1Kバイトとすると、2個の送信データパケットが送信される。
同様に、マスタ100は通信モードを全二重通信モードとする受信コマンドパケットをスレーブ101へ送信する(ステップS220)。スレーブ101は、送信準備ができるとレスポンスパケットで応答する(ステップS225)。そして、マスタ100はアップリンク状態のDAT1ライン114のみを用いてデータパケット(RDAT PKT 0、1)を受信する(ステップS230、S235)。
(半二重通信によるデータ通信)
次に、図13にて示すステップS20において通信モードとして半二重通信が選定されると、まず、全二重通信モードから半二重通信モードに移行するためにステップS30が実行され、その後、ステップS35にて半二重通信でのデータ通信が行われる。それが完了すると、ステップS40にて通信モードの復旧が行われる。このような通信モードの移行・復旧を含む半二重データ通信についての具体例を図16を用いて説明する。
まず、マスタ100は、通信モードフィールドを半二重通信モードあるいは任意モードとした送信コマンドパケットをスレーブ101へ送信する(ステップS250)。スレーブ101は、半二重通信モードでの受信準備ができると通信モードフィールドを半二重通信モードとしたレスポンスパケットで応答する(ステップS255)。
そして、マスタ100及びスレーブ101は、方向制御コード(DIR)とアクノリッジコード(ACK)とのハンドシェイクにより、全二重通信から半二重通信への切り替えを行う(ステップS260)。この場合、アップリンク状態のDAT1ライン114がダウンリンク状態となるよう切り替えられる。
切り替えが完了すると、マスタ100は、ダウンリンク状態の2つの通信路を用い、データパケット(WDAT PKT 0、1)の半二重送信を行う(ステップS265からS280)。マスタ100は、例えば、DAT0ライン113を用いて偶数バイトを、DAT1ライン114を用いて奇数バイトをそれぞれ送信する。
ステップS250にて送信された送信コマンドパケットに指定された転送サイズの送信を完了すると、マスタ100及びスレーブ101は、再び全二重通信モードに復旧するため、ダウンリンク状態のDAT1ライン114をアップリンク状態に切り替える(ステップS285)。
半二重通信によるマスタ100側がデータを受信する場合も同様に、コマンドパケットの送受信とレスポンスパケットの送受信とによるハンドシェイクが行われる(ステップS290、S295)。
そして、マスタ100及びスレーブ101は、方向制御コード(DIR)とアクノリッジコード(ACK)とのハンドシェイクにより、全二重通信から半二重通信への切り替えを行う(ステップS300)。この場合、ダウンリンク状態のDAT0ライン113がアップリンク状態となるように切り替えられる。
そして、マスタ100は、半二重通信によるデータパケット(RDAT PKT 0、1)を受信する(ステップS305からS320)。その後、再び全二重通信モードに復旧するためアップリンク状態のDAT0ライン113はダウンリンク状態となるよう切り替えられる(ステップS325)。
(3)通信モードの移行処理
ここでは、図13にて示すステップS30にて行われる通信モードの移行処理について、マスタ100側及びスレーブ101側に分けて、図17、図18を用いて説明する。
(マスタ100側の動作)
図17は、マスタ100側における処理の流れを示す流れ図である。
マスタ100は、通信モードの通知(通信モードが半二重通信である旨)を完了すると、自装置がデータを送信するか受信するかを判断する(ステップS350)。具体的には、マスタ100の方向制御部208は、送信したコマンドパケットに含まれるR/W412(図4参照)が示す種別に基づいて判断する。
自装置がデータを送信すると判断する場合、つまりコマンドパケットに含まれるR/W412が書き込みを示す場合(ステップS350における「送信」)、マスタ100の方向制御部208は、DAT1ライン114をダウンリンク状態とするため、現在有効な状態である差動レシーバ220を無効な状態とし、現在無効な状態である差動トランスミッタ219を有効な状態に切り替える(ステップS355)。これにより、通信路I/F部250はDAT1ライン114を用いたデータを受信する構成からデータを送信する構成へと切り替えられる。その後、マスタ100は、DAT1ライン114を用いてプリアンブルコード(PRE)をスレーブ101へ送信し、ビット同期や高速クロックの抽出を行って通信可能な状態とする(ステップS360)。
自装置がデータを受信すると判断する場合、つまりコマンドパケットに含まれるR/W412が読み出しを示す場合(ステップS350における「受信」)、マスタ100の方向制御部208は、DAT0ライン113をアップリンク状態とするため、現在有効な状態にある差動トランスミッタ217を無効な状態にし、現在無効な状態にある差動レシーバ218を有効な状態に切り替える(ステップS365)。これにより、通信路I/F部250はDAT0ライン113を用いたデータを送信する構成からデータを受信する構成へと切り替えられる。その後、マスタ100は、DAT0ライン113を用いてスレーブ101側からプリアンブルコード(PRE)を受信し、ビット同期や高速クロックの抽出を行って通信可能な状態とする(ステップS370)。
(スレーブ101側の動作)
図18は、スレーブ101側における処理の流れを示す流れ図である。
スレーブ101は、通信モードの通知(通信モードが半二重通信である旨)を受け取ると、自装置がデータを送信するか受信するかを判断する(ステップS400)。具体的には、スレーブ101の方向制御部1108は、受信したコマンドパケットに含まれるR/W412(図4参照)が示す種別に基づいて判断する。
自装置がデータを受信すると判断する場合、つまり受信したコマンドパケットに含まれるR/W412が書き込みを示す場合(ステップS400における「受信」)、スレーブ101の方向制御部1108は、DAT1ライン114をダウンリンク状態とするため、現在有効な状態にある差動トランスミッタ1118を無効な状態にし、現在無効な状態にある差動レシーバ1119を有効な状態に切り替える(ステップS405)。これにより、通信路I/F部1150はDAT1ライン114を用いたデータを送信する構成からデータを受信する構成へと切り替えられる。その後、スレーブ101は、DAT1ライン114を用いてマスタ100からプリアンブルコード(PRE)を受信し、ビット同期や高速クロックの抽出を行って通信可能な状態とする(ステップS410)。
自装置がデータを送信すると判断する場合、つまり受信したコマンドパケットに含まれるR/W412が読み出しを示す場合(ステップS400における「送信」)、スレーブ101の方向制御部1108は、DAT0ライン113をアップリンク状態とするため、現在有効な状態である差動レシーバ1117を無効な状態とし、現在無効な状態である差動トランスミッタ1116を有効な状態に切り替える(ステップS415)。これにより、通信路I/F部1150はDAT0ライン113を用いたデータを受信する構成からデータを送信する構成へと切り替えられる。その後、スレーブ101は、DAT0ライン113を用いてプリアンブルコード(PRE)をマスタ100へ送信し、ビット同期や高速クロックの抽出を行って通信可能な状態とする(ステップS420)。
(全二重通信から半二重通信への切り替え)
図19(a)は、全二重通信から半二重通信への切り替え時において、マスタ100がデータの送信側となる場合における制御コードの送受信の詳細を示す図である。
マスタ100は、全二重通信から半二重通信への切り替え指示として方向制御コード(DIR)をDAT0ライン113を用いてスレーブ101へ送信する。このとき、マスタ100は、方向制御コードに対する応答としてアクノリッジコード(ACK)をDAT1ライン114を用いてスレーブ101から受信するまでの間、方向制御コードの送信を継続する(ステップS450)。
スレーブ101は、方向制御コードをDAT0ライン113を用いてマスタ100から受信すると、アクノリッジコードをDAT1ライン114を用いてマスタ100へ送信する。このとき、スレーブ101は、アクノリッジコードに対する応答としてアイドルコード(IDL)をDAT0ライン113を用いてマスタ100から受信するまでの間、アクノリッジコードの送信を継続する(ステップS451)。
マスタ100は、アクノリッジコードをDAT1ライン114を用いてスレーブ101から受信すると、アイドルコードをDAT0ライン113を用いてスレーブ101へ送信する。アイドルコードの送信は、DAT1ライン114との同期が完了するまでの間、継続される(ステップS452)。
マスタ100は、アイドルコードの送信を開始すると、図17のステップS355にて示したように、通信路I/F部250に対するDAT1ライン114の接続を切り替え、スレーブ101は、アイドルコードを受信すると、図18のステップS405にて示したように、通信路I/F部1150に対するDAT1ライン114の接続を切り替える(ステップS453)。
マスタ100は、DAT1ライン114に対する切替が完了すると、プリアンブルコード(PRE)をDAT1ライン114を用いてスレーブ101へ送信する。なお、プリアンブルコードの送信は、DAT0ライン113との同期が完了するまでの間、継続される(ステップS454)。
同期が完了すると、マスタ100とスレーブ101との間で半二重通信によるデータパケットの送受信が行われる(ステップS455)。
ここで、プリアンブルコードの送受信は、マスタ100及びスレーブ101の間で確実にビット同期が行えるよう固定長とする。プリアンブルコードの送受信が終了すると、処理対象のデータの送受信が行われる。ここで、データパケットは先頭にパケット先頭コード(SOP)、末尾にパケット末尾コード(EOP)が付加される。なお、アイドルコード(IDL)の生成やパケット先頭、末尾コード(SOP、EOP)などの制御コードはリンク制御部206、1106で生成される。
図19(b)は、全二重通信から半二重通信への切り替え時において、マスタ100がデータの受信側となる場合における制御コードの送受信の詳細を示す図である。
マスタ100は、全二重通信から半二重通信への切り替え指示として方向制御コード(DIR)をDAT0ライン113を用いてスレーブ101へ送信する。このとき、マスタ100は、アクノリッジコード(ACK)をDAT1ライン114を用いてスレーブ101から受信するまでの間、方向制御コードの送信を継続する(ステップS460)。
スレーブ101は、方向制御コードをDAT0ライン113を用いてマスタ100から受信すると、アクノリッジコードをDAT1ライン114を用いてマスタ100へ送信する。このとき、スレーブ101は、アイドルコード(IDL)をDAT0ライン113を用いてマスタ100から受信するまでの間、アクノリッジコードの送信を継続する(ステップS461)。
マスタ100は、アクノリッジコードをDAT1ライン114を用いてスレーブ101から受信すると、アイドルコードをDAT0ライン113を用いてスレーブ101へ送信する。このとき、マスタ100は、アイドルコードをDAT1ライン114を用いてスレーブ101から受信するまでの間、アイドルコードの送信を継続する(ステップS462)。
スレーブ101は、アクノリッジコードに対する応答としてアイドルコードを受信すると、その応答としてアイドルコードを、DAT1ライン114を用いてマスタ100へ送信する。なお、この送信は、DAT0ライン113との同期が完了するまでの間、継続される(ステップS463)。
マスタ100は、スレーブ101からアイドルコードを受信すると、図17のステップS365にて示したように、通信路I/F部250に対するDAT0ライン113の接続を切り替え、スレーブ101は、アイドルコードの送信を開始すると、図18のステップS415にて示したように、通信路I/F部1150に対するDAT0ライン113の接続を切り替える(ステップS464)。
スレーブ101は、DAT0ライン113に対する切替が完了すると、プリアンブルコード(PRE)をDAT0ライン113を用いてマスタ100へ送信する。なお、プリアンブルコードの送信は、DAT1ライン114との同期が完了するまでの間、継続される(ステップS465)。ここで、プリアンブルコードの送受信は、上記と同様に固定長とする。
同期が完了すると、マスタ100とスレーブ101との間で半二重通信によるデータパケットの送受信が行われる(ステップS466)。
ここで、図19(a)及び(b)において、方向制御コード(DIR)及びアクノリッジコード(ACK)は図14のようなハンドシェイクを行う。そのため、そのハンドシェイクが確立するまでディスパリティが+と−のKコードを繰り返した可変長となる。なお、方向制御対象外の通信路はアイドルコード(IDL)で埋められる。
(4)通信モードの復旧処理
ここでは、図13にて示すステップS40にて行われる通信モードの復旧処理について、マスタ100側及びスレーブ101側に分けて、図20及び図21を用いて説明する。
(マスタ100側の動作)
図20は、マスタ100側における処理の流れを示す流れ図である。
マスタ100は、処理対象のデータ通信が終了すると、自装置がデータの送信側であるか受信側であるかを判断する(ステップS500)。具体的には、マスタ100の方向制御部208は、通信要求時に送信したコマンドパケットに含まれるR/W412(図4参照)が示す種別に基づいて判断する。
自装置がデータの送信側である判断する場合(ステップS500における「送信」)、マスタ100は、方向制御コード(DIR)をDAT0ライン113を用いてスレーブ101へ送信する(ステップS505)。その後、マスタ100は、方向制御部208の制御により、DAT1ライン114をアップリンク状態とするため、現在有効な状態である差動トランスミッタ219を無効な状態とし、現在無効な状態である差動レシーバ220を有効な状態に切り替える(ステップS510)。これにより、通信路I/F部250はDAT1ライン114を用いたデータを送信する構成からデータを受信する構成へと切り替えられる。
マスタ100は、プリアンブルコードをDAT1ライン114を用いてスレーブ101から受信したか否かを判断する(ステップS515)。
受信していないと判断する場合(ステップS515における「No」)、マスタ100は方向制御コードをDAT0ライン113を用いてスレーブ101へ送信し(ステップS520)、処理はステップS515へ戻る。つまり、マスタ100は、プリアンブルコードを受信するまでの間、方向制御コードの送信を継続する。なお、方向制御コードの送信の継続と、ステップS510にて行われるDAT1レシーバの切替は並列に行われるものとする。
プリアンブルコードを受信したと判断する場合(ステップS515における「Yes」)、マスタ100は、アクノリッジコード(ACK)を、DAT0ライン113を用いてスレーブ101へ送信する(ステップS525)。
マスタ100は、アイドルルコード(IDL)をDAT1ライン114を用いてスレーブ101から受信したか否かを判断する(ステップS530)。
受信していないと判断する場合(ステップS530における「No」)、処理はステップS525へ戻る。つまり、マスタ100は、アイドルコードを受信するまでの間、アクノリッジコードの送信を継続する。
受信したと判断する場合(ステップS530における「Yes」)、処理は終了する。
自装置がデータの受信側である判断する場合(ステップS500における「受信」)、マスタ100は、方向制御コードをDAT1ライン114を用いてスレーブ101から受信したか否かを判断する(ステップS530)。
受信していないと判断する場合(ステップS530における「No」)、処理は、ステップS530へ戻る。
受信したと判断する場合(ステップS530における「Yes」)、マスタ100は、方向制御部208の制御により、DAT0ライン113をダウンリンク状態とするため、現在有効な状態である差動レシーバ218を無効な状態とし、現在無効な状態である差動トランスミッタ217を有効な状態に切り替える(ステップS535)。これにより、通信路I/F部250はDAT0ライン113を用いたデータを受信する構成からデータを送信する構成へと切り替えられる。
マスタ100は、プリアンブルコードをDAT0ライン113を用いてスレーブ101へ送信する(ステップS540)。
マスタ100は、アクノリッジコードをDAT1ライン114を用いてスレーブ101から受信したか否かを判断する(ステップS545)。
受信していないと判断する場合(ステップS545における「No」)、処理はステップS540へ戻る。つまり、マスタ100は、アクノリッジコードを受信するまでの間、プリアンブルコードの送信を継続する。
アクノリッジコードを受信したと判断する場合(ステップS545における「Yes」)、マスタ100は、アイドルコード(IDL)を、DAT0ライン113を用いてスレーブ101へ送信する(ステップS550)。
(スレーブ101側の動作)
図21は、スレーブ101側における処理の流れを示す流れ図である。
スレーブ101は、処理対象のデータ通信が終了すると、自装置がデータの送信側であるか受信側であるかを判断する(ステップS570)。具体的には、スレーブ101は、通信要求時に受信したコマンドパケットに含まれるR/W412(図4参照)が示す種別に基づいて判断する。
自装置がデータの受信側である判断する場合(ステップS570における「受信」)、スレーブ101は、方向制御コードをDAT0ライン113を用いてマスタ100から受信したか否かを判断する(ステップS575)。
受信していないと判断する場合(ステップS575における「No」)、処理は、ステップS575へ戻る。
受信したと判断する場合(ステップS575における「Yes」)、スレーブ101は、方向制御部1108の制御により、DAT1ライン114をアップリンク状態とするため、現在有効な状態である差動レシーバ1119を無効な状態とし、現在無効な状態である差動トランスミッタ1118を有効な状態に切り替える(ステップS580)。これにより、通信路I/F部1150はDAT1ライン114を用いたデータを受信する構成からデータを送信する構成へと切り替えられる。
スレーブ101は、プリアンブルコードをDAT1ライン114を用いてマスタ100へ送信する(ステップS585)。
スレーブ101は、アクノリッジコードをDAT0ライン113を用いてマスタ100から受信したか否かを判断する(ステップS590)。
受信していないと判断する場合(ステップS590における「No」)、処理はステップS585へ戻る。つまり、スレーブ101は、アクノリッジコードを受信するまでの間、プリアンブルコードの送信を継続する。
アクノリッジコードを受信したと判断する場合(ステップS590における「Yes」)、スレーブ101は、アイドルコード(IDL)を、DAT1ライン114を用いてマスタ100へ送信する(ステップS595)。
自装置がデータの送信側である判断する場合(ステップS570における「送信」)、スレーブ101は、方向制御コード(DIR)をDAT1ライン114を用いてマスタ100へ送信する(ステップS600)。その後、スレーブ101は、方向制御部1108の制御により、DAT0ライン113をダウンリンク状態とするため、現在有効な状態である差動トランスミッタ1116を無効な状態とし、現在無効な状態である差動レシーバ1117を有効な状態に切り替える(ステップS605)。これにより、通信路I/F部1150はDAT0ライン113を用いたデータを送信する構成からデータを受信する構成へと切り替えられる。
スレーブ101は、プリアンブルコードをDAT0ライン113を用いてマスタ100から受信したか否かを判断する(ステップS610)。
受信していないと判断する場合(ステップS610における「No」)、スレーブ101は方向制御コードをDAT1ライン114を用いてマスタ100へ送信し(ステップS615)、処理はステップS610へ戻る。つまり、スレーブ101は、プリアンブルコードを受信するまでの間、方向制御コードの送信を継続する。なお、方向制御コードの送信の継続と、ステップS605にて行われるDAT0レシーバの切替は並列に行われるものとする。
プリアンブルコードを受信したと判断する場合(ステップS610における「Yes」)、スレーブ101は、アクノリッジコード(ACK)を、DAT1ライン114を用いてマスタ100へ送信する(ステップS615)。
スレーブ101は、アイドルルコード(IDL)をDAT0ライン113を用いてマスタ100から受信したか否かを判断する(ステップS620)。
受信していないと判断する場合(ステップS620における「No」)、処理はステップS615へ戻る。つまり、スレーブ101は、アイドルコードを受信するまでの間、アクノリッジコードの送信を継続する。
受信したと判断する場合(ステップS620における「Yes」)、処理は終了する。
(半二重通信から全二重通信への切り替え)
図22(a)は、マスタ100がデータの送信側である半二重通信から全二重通信へと切り替える場合の、制御コードの送受信の詳細を示す図である。
マスタ100は、半二重通信から全二重通信への切り替え指示として方向制御コード(DIR)をDAT0ライン113を用いてスレーブ101へ送信する。このとき、マスタ100は、方向制御コードに対する応答としてプリアンブルコード(PRE)をDAT1ライン114を用いてスレーブ101から受信するまでの間、方向制御コードの送信を継続する(ステップS650)。
マスタ100は、方向制御コードを送信した後、図20のステップS510にて示したように、通信路I/F部250に対するDAT1ライン114の接続を切り替え、スレーブ101は、方向制御コードをDAT0ライン113を用いてマスタ100から受信すると、図21のステップS580にて示したように、通信路I/F部1150に対するDAT1ライン114の接続を切り替える(ステップS651)。
その後、スレーブ101は、切替が完了すると、プリアンブルコードをDAT1ライン114を用いてマスタ100へ送信する。このとき、スレーブ101は、プリアンブルコードに対する応答としてアクノリッジコード(ACK)を受信するまでの間、プリアンブルコードの送信を継続する(ステップS652)。
マスタ100は、プリアンブルコードをDAT1ライン114を用いてスレーブ101から受信すると、その応答としてアクノリッジコードをDAT0ライン113を用いてスレーブ101へ送信する。このとき、マスタ100は、アクノリッジコードの応答としてアイドルコード(IDL)を受信するまでの間、アクノリッジコードの送信を継続する(ステップS653)。
スレーブ101は、アクノリッジコードを受信すると、その応答としてアイドルコードをDAT1ライン114を用いてスレーブ101へ送信する(ステップS654)。
図22(b)は、マスタ100がデータの受信側である半二重通信から全二重通信へと切り替える場合の、制御コードの送受信の詳細を示す図である。
スレーブ101は、半二重通信から全二重通信への切り替え指示として方向制御コード(DIR)をDAT1ライン114を用いてマスタ100へ送信する。このとき、スレーブ101は、プリアンブルコード(PRE)をDAT0ライン113を用いてマスタ100から受信するまでの間、方向制御コードの送信を継続する(ステップS660)。
スレーブ101は、方向制御コードを送信した後、図21のステップS605にて示したように、通信路I/F部1150に対するDAT0ライン113の接続を切り替え、マスタ100は、方向制御コードをDAT1ライン114を用いてスレーブ101から受信すると、図20のステップS535にて示したように、通信路I/F部250に対するDAT0ライン113の接続を切り替える(ステップS661)。
マスタ100は、切替が完了すると、プリアンブルコードをDAT0ライン113を用いてスレーブ101へ送信する。このとき、マスタ100は、プリアンブルコードに対する応答としてアクノリッジコード(ACK)を受信するまでの間、プリアンブルコードの送信を継続する(ステップS662)。
スレーブ101は、プリアンブルコードをDAT0ライン113を用いてマスタ100から受信すると、その応答としてアクノリッジコードをDAT1ライン114を用いてマスタ100へ送信する。このとき、スレーブ101は、アクノリッジコードの応答としてアイドルコード(IDL)を受信するまでの間、アクノリッジコードの送信を継続する(ステップS663)。
マスタ100は、アクノリッジコードを受信すると、その応答としてアイドルコードをDAT0ライン113を用いてスレーブ101へ送信する(ステップS664)。
ここで、図22(a)及び(b)によると、方向制御コード(DIR)とプリアンブルコード(PRE)とのハンドシェイク、およびプリアンブルコードとアクノリッジコード(ACK)とのハンドシェイクが連続的に行われていることがわかる。
ここで、図22(a)におけるスレーブ101や図22(b)におけるマスタ100のようなデータ受信側の通信装置において、プリアンブルコードの送信開始から、アクノリッジコードを受けるまでのプリアンブルコードの送信数を記憶しておく。それ以降に通信モードを移行する場合、図17及び図18におけるプリアンブルコードの送信(ステップS360、S410)は、上記送信数と同等のプリアンブルコードを送信することで、実際にビット同期が確立した状態を実現することができる。つまり、固定長の期間を記憶しているプリアンブルコードの送信数を送信する期間とすることで、固定長の期間を適切なサイズとすることができる。
さらに、そのプリアンブルコードの送信数は方向制御のオーバヘッドを示す。
このため、コマンドパケットに含まれた転送サイズに比べてプリアンブルコードの送信数が十分に大きければ、通信モード確定ステップにおいて半二重通信モードが選択されないようにすることも可能である。なお、コマンドパケット内の転送サイズ分を送受信してから全二重通信モードに復旧する場合、最後のデータパケットの送受信完了が全二重通信モードへの復旧開始タイミングとなる。
このため、必ずしも図20、21にて示す方向制御コードの送受信は必須ではない。しかしながら、例えば、半二重通信モードで受信側の通信装置は、連続するデータパケットを受信すると受信バッファのオーバーフローやCRCエラーが発生する可能性がある。そのような、受信側の通信装置からの状態通知(割込み)を受けるため、送信側の通信装置はデータパケットの送信完了後に一時的に全二重通信モードに復旧させることが考えられ、この場合は明示的に方向制御コードを送信する必要がある。
(半二重通信時におけるデータ受信側からの割込み動作)
以下では、上記に示すような、半二重通信時においてデータ受信側の通信装置からの割込みを通知するための動作について図23を用いて説明する。
まず、マスタ100とスレーブ101との間でコマンドパケットとレスポンスパケットのハンドシェイクを行い(ステップS700、S705)、その後、全二重通信から半二重通信への切り替えを行う(ステップS710)。切替が完了すると、マスタ100は、図16と同様に半二重通信モードでのデータパケット(WDAT PKT0)の送信を行う(ステップS715、S720)。ここでは、データパケット(WDAT PKT0)の送信後に、通信システム10は、一時的に全二重通信モードに復旧、つまり半二重通信から全二重通信へ切り替えを行う(ステップS725)。これによりマスタ100は、スレーブ101からの割込みを受け付け可能な状態になる。例えば、スレーブ101は、データパケット(WDAT PKT0)の受信時にCRCエラーがあれば、メッセージカテゴリをCRCエラーとしたメッセージパケットを発行し、発行したメッセージパケットをDAT1ライン114を用いてマスタ100へ送信する(ステップS730)。
マスタ100は、メッセージパケットを受信すると、再び半二重通信モードへ切り替え(ステップS735)、データパケットの再送を行う(ステップS740、S745)。
通信システム10は、再度、一時的に全二重通信モードに復旧、つまり半二重通信から全二重通信へ切り替えを行う(ステップS750)。
通信システム10は、スレーブ101にて受信したデータパケットにCRCエラーがなく、割込みが不要であれば、再び半二重通信モードに切り替える(ステップS755)。
その後、マスタ100は、半二重通信モードでのデータパケット(WDAT PKT1)の送信を行う(ステップS760、S765)。そして、データパケット(WDAT PKT1)の送信が完了すると、通信システム10は、半二重通信から全二重通信へ切り替えを行う(ステップS770)。
このとき、ステップS750にて行われる全二重通信モードへの切り替えにおけるスレーブ101は、図21に示す復旧処理のステップS595にて行われるアイドルコードの送信の代わりに、例えば方向制御コード(DIR)を送信することで割込み不要を通知できる。それを受けたマスタ100は、即座に半二重通信モードに移行させることができる。また、同じくステップS750にて行われる切替時のスレーブ101は、即座に半二重通信モードに移行しても受信バッファの確保ができていない場合、その準備ができるまでアイドルコードを送信する代わりにビジーコード(BSY)を送信することで、フロー制御を実現できる。
2.変形例1
上記実施の形態1における方向制御コードの送受信、通信路の切り替えを、フロー制御と組み合わせて行ってもよい。ここで、フロー制御とは、互いに通信が可能な状態かを確認してからデータ通信を開始する制御のことである。
以下、フロー制御と組み合わせた場合における通信モードの切り替えの手順について説明する。
2.1 データ読み込み時について
ここでは、マスタ100が、スレーブ101からデータを読み出す場合、つまりスレーブ101がデータの送信側となる場合において、通信モードの切替と、フロー制御と組み合わせた場合について、図24を用いて説明する。なお、ここでは、実施の形態1と同様に、全二重通信時には、DAT0ライン113はダウンリンク状態にあり、DAT1ライン114はアップリンク状態にあるものとする。
マスタ100は、コマンドパケットをDAT0ライン113を用いてスレーブ101へ送信する(ステップS800)。ことき、コマンドパケットのR/W412(図4参照)には読み込み(Read)を示す値が格納されており、通信モード420(図5参照)には半二重通信(HD mode)を示す値が格納されている。
スレーブ101は、マスタ100からコマンドパケットを受信すると、その応答としてレスポンスパケットをDAT1ライン114を用いてマスタ100へ送信する(ステップS805)。このとき、レスポンスパケットのR/W412には読み込み(Read)を示す値が格納されており、通信モード420(図5参照)には半二重通信(HD mode)を示す値が格納されている。
データの受信側であるマスタ100は、フロー制御におけるコードの1つである、通信(データ受信)の準備を示すFCRDYコードをDAT0ライン113を用いてスレーブ101へ送信する(ステップS810)。なお、このFCRDYには、半二重通信(HD mode)を示す値が格納されているものとする。
スレーブ101は、マスタ100からFCRDYコードを受信すると、方向制御コード(DIR)を、DAT1ライン114を用いてマスタ100へ送信する(ステップS811)。このとき、スレーブ101は、所定期間の間、方向制御コードの送信を継続する(ステップS817)。なお、当該所定期間内において、フロー制御による通信開始の準備が完了しているものとする。
マスタ100は、FCRDYコードの送信後、ダウンリンク状態のDAT0ライン113がアップリンク状態となるように通信路I/F部250の構成の切り替えを行う(ステップS815)。また、ステップS815において、スレーブ101側では、マスタ100からFCRDYコードを受信すると、ダウンリンク状態のDAT0ライン113がアップリンク状態となるように通信路I/F部1150の構成の切り替えを行う。つまり、ステップS815では、通信路I/F部250と通信路I/F部1150との構成の切替が行われる。なお、切替の詳細は、実施の形態1にて示しているので、ここでの説明は省略する。
スレーブ101は、通信路I/F部1150の構成の切り替えが完了すると、プリアンブルコードをDAT0ライン113を用いてマスタ100へ送信する(ステップS816)。
スレーブ101は、方向制御コードの送信開始から所定期間が経過し、且つ通信開始の準備が完了すると、当該方向制御コード及びプリアンブルコードの送信を抑止し、マスタ100から受信したFCRDYコードに対する応答としてFCRDYコードをDAT1ライン114を用いてマスタ100へ送信する(ステップS820)。なお、スレーブ101から送信されるFCRDYコードも、マスタ100から送信されるFCRDYコードと同様に、半二重通信(HD mode)を示す値が格納されている。
スレーブ101からFCRDYコードが送信された後、半二重通信にて、スレーブ101からデータの送信が行われる(ステップS825、S830、S835、S840)。
その後、スレーブ101は、フロー制御におけるコードの1つである、通信の不可を示すFCBSYコードをDAT1ライン114を用いてマスタ100へ送信する(ステップS845)。
マスタ100は、FCBSYコードを受信すると、アップリンク状態のDAT0ライン113がダウンリンク状態となるように通信路I/F部250の構成の切り替えを行う(ステップS850)。また、ステップS850において、スレーブ101側では、マスタ100へFCBSYコードを送信した後、アップリンク状態のDAT0ライン113がダウンリンク状態となるように通信路I/F部1150の構成の切り替えを、方向制御コードの送信(ステップS846、S852)と並行して行う。つまり、ステップS850では、通信路I/F部250と通信路I/F部1150との構成の切替が行われる。なお、切替の詳細は、実施の形態1にて示しているので、ここでの説明は省略する。
また、スレーブ101は、FCBSYコードを送信した後、方向制御コード(DIR)をDAT1ライン114を用いてマスタ100へ送信する(ステップS846)。このとき、スレーブ101は、マスタ100へ送信したFCBSYコードに対する応答があるまでの間、方向制御コードの送信を継続する(ステップS852)。
また、マスタ100は、ステップS850にて通信路I/F部250の構成の切り替えが完了すると、受信したFCBSYコートに対する応答の準備が完了するまでの間、プリアンブルコードをDAT0ライン113を用いてスレーブ101へ送信する(ステップS851)。
マスタ100は、FCBSYコートに対する応答をDAT0ライン113を用いてスレーブ101へ送信する(ステップS855)。なお、マスタ100は、FCBSYコートに対する応答として、スレーブ101からデータ通信が正常である場合にはFCBSYコードを送信し、データ通信にエラーがある場合にはCRCエラーコードを送信する。
2.2 データ書き込み時について
ここでは、マスタ100が、スレーブ101へデータを書き込む場合、つまりマスタ100がデータの送信側となる場合において、通信モードの切替と、フロー制御と組み合わせた場合について、図25を用いて説明する。なお、上述したように、全二重通信時には、DAT0ライン113はダウンリンク状態にあり、DAT1ライン114はアップリンク状態にあるものとする。
マスタ100は、コマンドパケットをDAT0ライン113を用いてスレーブ101へ送信する(ステップS900)。ことき、コマンドパケットのR/W412(図4参照)には書き込み(Write)を示す値が格納されており、通信モード420(図5参照)には半二重通信(HD mode)を示す値が格納されている。
スレーブ101は、マスタ100からコマンドパケットを受信すると、その応答としてレスポンスパケットをDAT1ライン114を用いてマスタ100へ送信する(ステップS905)。このとき、レスポンスパケットのR/W412には読み込み(Write)を示す値が格納されており、通信モード420(図5参照)には半二重通信(HD mode)を示す値が格納されている。
データの受信側であるスレーブ101は、通信(データ受信)の準備を示すFCRDYコードをDAT1ライン114を用いてマスタ100へ送信する(ステップS910)。なお、このFCRDYには、半二重通信(HD mode)を示す値が格納されているものとする。
マスタ100は、スレーブ101からFCRDYコードを受信すると、方向制御コード(DIR)を、DAT0ライン113を用いてスレーブ101へ送信する(ステップS911)。このとき、マスタ100は、所定期間の間、方向制御コードの送信を継続する(ステップS915)。なお、当該所定期間内において、フロー制御による通信開始の準備が完了しているものとする。
スレーブ101は、FCRDYコードの送信後、アップリンク状態のDAT1ライン114がダウンリンク状態となるように通信路I/F部1150の構成の切り替えを行う(ステップS916)。また、ステップS916において、マスタ100側では、スレーブ101からFCRDYコードを受信すると、アップリンク状態のDAT1ライン114がダウンリンク状態となるように通信路I/F部250の構成の切り替えを、方向制御コードの送信(ステップS911、S915)と並行して行う。つまり、ステップS916では、通信路I/F部250と通信路I/F部1150との構成の切替が行われる。なお、切替の詳細は、実施の形態1にて示しているので、ここでの説明は省略する。
マスタ100は、通信路I/F部250の構成の切り替えが完了すると、プリアンブルコードをDAT1ライン114を用いてスレーブ101へ送信する(ステップS917)。
マスタ100は、方向制御コードの送信開始から所定期間が経過すると、当該方向制御コード及びプリアンブルコードの送信を抑止し、スレーブ101から受信したFCRDYコードに対する応答としてFCRDYコードをDAT0ライン113を用いてスレーブ101へ送信する(ステップS920)。なお、マスタ100から送信されるFCRDYコードも、スレーブ101から送信されるFCRDYコードと同様に、半二重通信(HD mode)を示す値が格納されている。
マスタ100からFCRDYコードが送信された後、半二重通信にて、マスタ100からデータの送信が行われる(ステップS925、S930、S935、S940)。
その後、マスタ100は、FCBSYコードをDAT0ライン113を用いてスレーブ101へ送信する(ステップS945)。
スレーブ101は、FCBSYコードを受信すると、ダウンリンク状態のDAT1ライン114がアップリンク状態となるように通信路I/F部1150の構成の切り替えを行う(ステップS951)。また、ステップS951において、マスタ100側では、スレーブ101へFCBSYコードを送信した後と、ダウンリンク状態のDAT1ライン114がアップリンク状態となるように通信路I/F部250の構成の切り替えを行う。つまり、ステップS951では、通信路I/F部250と通信路I/F部1150との構成の切替が行われる。なお、切替の詳細は、実施の形態1にて示しているので、ここでの説明は省略する。
また、マスタ100は、FCBSYコードを送信した後、方向制御コード(DIR)をDAT0ライン113を用いてスレーブ101へ送信する(ステップS946)。このとき、マスタ100は、スレーブ101へ送信したFCBSYコードに対する応答があるまでの間、方向制御コードの送信を継続する(ステップS950)。
また、スレーブ101は、ステップS951にて通信路I/F部1150の構成の切り替えが完了すると、受信したFCBSYコートに対する応答の準備が完了するまでの間、プリアンブルコードをDAT1ライン114を用いてマスタ100へ送信する(ステップS952)。
スレーブ101は、FCBSYコートに対する応答をDAT1ライン114を用いてマスタ100へ送信する(ステップS955)。なお、FCBSYコートに対する応答として、上述したようにFCBSYコードやCRCエラーコードがある。
2.3 まとめ
図24及び図25にて示すように、半二重通信から全二重通信へと切り替える場合、現時点でデータの送信側である装置が、当該装置が全二重通信時にデータを送信するための通信路を用いて、FCBSYコードを送信している。そして、現時点でデータの受信側である他装置は、FCBSYコードを受信した通信路とは異なる他の通信路の切り替えを行っている。例えば、図24では、半二重通信時ではスレーブ101がデータの送信側となり、スレーブ101が全二重通信時にデータを送信する通信路はDAT1ライン114となる。そこで、スレーブ101は、DAT1ライン114を用いてFCBSYコードを送信することで、他の通信路、ここではDAT0ライン113が方向切替の対象となることが分かる。
つまり、半二重通信時においてデータの送信側の装置が方向切替の対象外の通信路から切替のトリガーとなるコード(ここでは、FCBSYコード)を送信することで、両装置とも切替対象となる通信路を特定することができる。
また、上記変形例1に限らず、実施の形態1においても、図22(a)、(b)にて示すように、半二重通信から全二重通信へと切り替える場合も、上記と同様のことが言える。
これによると、切替のトリガーとなるコードをデータの送信側の装置が方向切替の対象外の通信路を用いて送信するということを予め定めておくことで、図20、21にて示す送受信の判定は不要となる。
3.変形例2
上記変形例1において、全二重通信から半二重通信へと切り替える場合、FCRDYコードの送受信を切り替えの契機としたが、これに限定されない。
FCRDYコードの送受信後に、送受信される方向制御コード(DIR)を、通信路の方向切替のトリガーをしてもよい。
例えば、図24において、マスタ100は、ステップS811にてスレーブ101からDAT1ライン114を用いて出力される方向制御コードを受信すると、ステップS815による通信路I/F部250の構成の切り替えを行う。また、スレーブ101は、ステップS811にて方向制御コードを出力した後、ステップS815による通信路I/F部1150の構成の切り替えを行う。
図25においては、スレーブ101は、ステップS911にてマスタ100からDAT0ライン113を用いて出力される方向制御コードを受信すると、ステップS916による通信路I/F部1150の構成の切り替えを行う。また、マスタ100は、ステップS911にて方向制御コードを出力した後、ステップS916による通信路I/F部250の構成の切り替えを行う。
このように、FCRDYコードの送受信後に、送受信される方向制御コード(DIR)を、通信路の方向切替のトリガーとすることで、「2.3まとめ」にて記載したように、全二重通信から半二重通信へと切り替える際に、データの送信側となるべき装置が方向切替の対象外の通信路から切替のトリガーとなるコード(ここでは、DIRコード)を送信することで、両装置とも切替対象となる通信路を特定することができる。
(補足)
(1)上記変形例2において、1シンボル(1つ)の方向制御コードを送受信した場合に、方向切替の契機としたが、これに限定されない。
例えば、2シンボルの方向制御コードを送受信したことを切替の契機としてもよい。つまり、所定数の方向制御コードの送受信を切替の契機としてもよい。
(2)実施の形態1において、全二重通信から半二重通信へと切り替える場合、図19(a)、(b)にて示すように、常にマスタ100側から方向制御コードを送信したが、これに限定されない。
上述したように、半二重通信時においてデータの送信側となるべき装置が方向切替の対象外の通信路から切替のトリガーとなるコード(ここでは、FCRDYコード)を送信するとしてもよい。
この場合、マスタ100から送信されるコマンドパケットによりどちらの装置が送信側となるか特定することができる。例えば、コマンドパケットのR/W412に書き込みを示す値が格納されている場合にはデータの送信側はマスタ100となり、読み込みを示す値が格納されている場合にはデータの送信側はスレーブ101となる。そして、データの送信側として特定された装置が、方向切替の対象外の通信路から方向制御コードを送信する。
これにより、切替のトリガーとなるコードをデータの送信側となるべき装置が方向切替の対象外の通信路を用いて送信するということを予め定めておくことで、図17、18にて示す送受信の判定は不要となる。
(3)上記変形例1における半二重通信から全二重通信への切り替える場合、FCBSYコードの送受信を切り替えの契機としたが、これに限定されない。
半二重通信から全二重通信への切り替える場合においても、変形例2と同様に、FCBSYコードの送受信後に、送受信される方向制御コード(DIR)を、通信路の方向切替のトリガーをしてもよい。
これによると、実施の形態1や変形例2と同様に、方向制御コードの送受信を、切替のトリガーをすることができる。
また、ここでは、1シンボル(1つ)の方向制御コードを送受信した場合に、方向切替の契機としているが、上述したように、所定数の方向制御コードの送受信を切替の契機としてもよい。
4.その他の変形例
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)上記実施の形態1では、符号化部224、復号化部225は、8b/10b方式をサポートするものとしたが、これに限定されない。符号化部224、復号化部225は、4b/5b、64b/66bなど他のエンコード方式とサポートするものとしても良い。
(2)上記実施の形態1では、マスタ100が発行するコマンドパケット及びスレーブ101が発行するレスポンスパケットの双方に、通信モードを設定したが、これに限定されない。
マスタ100が発行するコマンドパケットのみに通信モードを設定してもよい。これにより、図13にて示すステップS10による通信要求の送信により、一意に通信モードを確定させることができるので、図14にて示す通信モード通知処理は不要とすることができる。
(3)ここで、スレーブとなる装置を、マスタ100と着脱可能なメモリカードやI/Oカードとしてもよい。例えば、メモリカードはSDカードであり、I/Oカードは他の装置と無線通信を行うための無線LANカードである。
ここで、スレーブをSDカードとした場合について説明する。
図26は、上記実施の形態1にて示すスレーブ101をSDカード101aとした場合の通信システム10aの構成を示している。通信システム10aは、図26にて示すように、マスタ100aとSDカード101aとから構成されている。なお、以下の説明において、実施の形態1にて示すマスタ100及びスレーブ101の構成要素と同一のものついては、同一の符号を付与し、その説明は省略する。
マスタ100aは、図26にて示すように、イニシエータ103、通信I/F部105及びピン150、151を備えている。通信I/F部105は、実施の形態1と同様に、トランザクション制御部107、リンク制御部109及び送受信部111を有している。
ピン150、151は、SDカード101aと接続されるものである。また、ピン150、151の一端は、図2にて示す通信路I/F部250と接続されている。具体的には、ピン150は差動トランスミッタ217及び差動レシーバ218と接続され、ピン151は差動トランスミッタ219及び差動レシーバ220と接続されている。
SDカード101aは、図26にて示すように、スレーブ101の構成要素に加えて、ピン152、153を備えている。
ピン152、153それぞれは、SDカード101aがマスタ100aに装着されることで、マスタ100aが備えるピン150、151に接続される。また、ピン152、153の一端は、図12にて示す通信路I/F部1150と接続されている。具体的には、ピン152は差動トランスミッタ1116及び差動レシーバ1117と接続され、ピン153は差動トランスミッタ1118及び差動レシーバ1119と接続されている。
つまり、ピン150とピン152とが接続されることで上述した通信路113が、ピン151とピン153とが接続されることで上述した通信路114が、それぞれ形成されることになる。
したがって、これらの接続により、上記の実施の形態1と同様に、マスタ100aとSDカード101aとが、通信路113及び114を介した全二重通信及び半二重通信によるデータ通信が実現できる。なお、図26には図示していないが、マスタ100aは、ピン150、151とは異なるピン(ここでは、ピン155として説明する。)を、SDカード101aはピン152、153とは異なるピン(ここでは、ピン156として説明する。)をそれぞれ有しており、ピン155とピン156とが接続されることにより、図1にて示すクロックライン115が形成される。
また、I/Oカードについても同様の構成にて実現できるので、ここでの説明は省略する。
(4)上記実施の形態1において、Kコードには、切替を指示するための方向制御コードとして1種類のコード(DIR)のみを割り当てたが、これに限定されない。
例えば、半二重通信から全二重通信への切替を示すコード(FDX)と、全二重通信から半二重通信への切替を示すコード(HDX)とをそれぞれKコードに割り当ててもよい。
これらのコードをKコードに割り当てたKコード一覧テーブルT201の一例を図27に示す。図27では、Kコード「K28.0」に“FDX”を割り当て、Kコード「K28.1」に“HDX”を割り当てている。
この場合、図19(a)及び(b)における“DIR”の送受信を、“HDX”の送受信に置き換えればよい。また、図22(a)及び(b)における“DIR”の送受信を、“FDX”の送受信に置き換えればよい。
これにより、各装置は、何れの通信モードの切替かを確実に特定することができる。
(5)上記実施の形態1において、半二重通信から全二重通信への切替時において、方向制御コード(DIR)の送受信を、切替のトリガーとして用いたが、これに限定されない。
方向制御コード(DIR)の送受信を、切替完了後におけるプリアンブルコード(PRE)の送受信のトリガーとして用いてもよい。
この場合の、制御コードの送受信の詳細について、図28にて示す。
図28(a)は、マスタ100がデータの送信側である半二重通信から全二重通信へと切り替える場合の、制御コードの送受信の詳細を示す図である。
マスタ100は、DAT0ライン113及びDAT1ライン114双方にてアイドルコード(IDL)を送信中に全二重通信への切替が発生すると、マスタ100及びスレーブ101にてDAT1ライン114の方向の切り替えを行う(ステップS1000)。
マスタ100は、DAT1ライン114の切り替え中に方向制御コード(DIR)を、当該方向制御コードに対する応答があるまでの間、DAT0ライン113を用いてスレーブ101へ送信する(ステップS1001)。
スレーブ101は、DAT1ライン114の方向の切替が完了し、且つマスタ100から方向制御コードを受信すると、その応答としてプリアンブルコード(PRE)を、当該プリアンブルコードに対する応答があるまでの間、DAT1ライン114を用いてマスタ100へ送信する(ステップS1002)。
マスタ100は、プリアンブルコードを受信すると、その応答としてアクノリッジコード(ACK)を、当該アクノリッジコードに対する応答があるまでの間、DAT0ライン113を用いてスレーブ101へ送信する(ステップS1003)。
スレーブ101は、アクノリッジコードを受信すると、その応答としてアイドルコード(IDL)をDAT1ライン114を用いてマスタ100へ送信する(ステップS1004)。
以降、全二重通信にて処理対象となるデータの送受信を行う。
図28(b)は、マスタ100がデータの受信側である半二重通信から全二重通信へと切り替える場合の、制御コードの送受信の詳細を示す図である。
全二重通信への切替が発生すると、マスタ100及びスレーブ101にてDAT0ライン113の方向の切り替えを行う(ステップS1100)。
スレーブ101は、DAT0ライン113の切り替え中に方向制御コード(DIR)を、当該方向制御コードに対する応答があるまでの間、DAT1ライン114を用いてマスタ100へ送信する(ステップS1101)。
マスタ100は、DAT0ライン113の方向の切替が完了し、且つスレーブ101から方向制御コードを受信すると、その応答としてプリアンブルコード(PRE)を、当該プリアンブルコードに対する応答があるまでの間、DAT0ライン113を用いてスレーブ101へ送信する(ステップS1102)。
スレーブ101は、DAT0ライン113の方向の切替が完了し、且つプリアンブルコードを受信すると、その応答としてアクノリッジコード(ACK)を、当該アクノリッジコードに対する応答があるまでの間、DAT1ライン114を用いてマスタ100へ送信する(ステップS1103)。
マスタ100は、アクノリッジコードを受信すると、その応答としてアイドルコード(IDL)をDAT0ライン113を用いてスレーブ101へ送信する(ステップS1104)。
以降、全二重通信にて処理対象となるデータの送受信を行う。
ここで、図28(a)及び(b)によると、方向制御コード(DIR)とプリアンブルコード(PRE)とのハンドシェイク、およびプリアンブルコードとアクノリッジコード(ACK)とのハンドシェイクが連続的に行われていることがわかる。
(6)上記実施の形態では、マスタ100とスレーブ101との関係が固定されているが、これに限定されない。双方の装置はイニシエータとターゲットとを備えた構成であってもよい。これによると、マスタとスレーブの関係が動的に入れ替わることができる。例えば、マスタとスレーブとの関係は1通信毎に切り替わっても良い。
(7)上記実施の形態において、全二重通信から半二重通信へと切替が行われる場合、切り替え開始からプリアンブルコードの送信の終了までの期間として、半二重通信から全二重通信への切り替えに要した期間を用いてもよい。
この場合、以下のような動作で実現できる。
半二重通信から全二重通信へと切り替えが行われる際に、半二重通信時のデータ受信側の装置、例えば、図22(a)におけるスレーブ101や図22(b)におけるマスタ100のようなデータ受信側の通信装置は、方向制御コード(DIR)を受信してから当該装置がプリアンブルコードの送信を終了するまで(相手装置からアクノリッジコードを受信するまで)にようした時間を計測して、その結果を記憶する。当該装置が半二重通信においてデータの送信側となる場合には、当該装置は、全二重通信から半二重通信への切り替えの際に、記憶している計測時間までの間、図19(a)にて示すステップS453及びS454、若しくは図19(b)にて示すステップS464及びS465の実行を行う。
または、半二重通信から全二重通信へと切り替えが行われる際に、半二重通信時のデータ送信側の装置、例えば、図22(a)におけるマスタ100や図22(b)におけるスレーブ101のようなデータ送信側の通信装置は、図22(a)にて示すステップS650及びS653に要した時間を計測して、その結果を記憶しておく。当該装置が半二重通信においてデータの送信側となる場合には、当該装置は、全二重通信から半二重通信への切り替えの際に、記憶している計測時間までの間、図19(a)にて示すステップS453及びS454、若しくは図19(b)にて示すステップS464及びS465の実行を行う。
また、切り替えに要した期間を計測した時間としたが、送受信した制御コードの数であってもよい。
この場合、以下のような動作で実現できる。
半二重通信から全二重通信へと切り替えが行われる際に、半二重通信時のデータ受信側の通信装置が、相手装置からの方向制御コードを受信した数を記憶する。そして、当該装置が半二重通信においてデータの送信側となる場合には、当該装置は、全二重通信から半二重通信への切り替えの際に、記憶している数と同数のアイドルコードを図19(a)にて示すステップS452若しくは図19(b)にて示すステップS463にて送出した後に処理すべきデータの送信を開始してもよい。また、当該装置は、方向制御コードを受信した数と相手装置からのアクノリッジコードを受信した数との合計数を記憶して、ステップS463にて送出するアイドルコードの数に適用してもよい。
または、半二重通信から全二重通信へと切り替えが行われる際に、半二重通信時のデータ送信側の通信装置は、図22(a)にて示すステップS650及びS653にて送信した方向制御コードの数を記憶しておく。当該装置が半二重通信においてデータの送信側となる場合には、当該装置は、全二重通信から半二重通信への切り替えの際に、記憶している数と同等の数のアイドルコードを送出して、その後、処理すべきデータの送信を開始してもよい。また、当該装置は、方向制御コードを送信した数とアクノリッジコードを送信した数との合計数を記憶して、ステップS463にて送出するアイドルコードの数に適用してもよい。
(8)上記実施の形態において、差動トランスミッタと差動レシーバとの切り替えは、電力の供給の有無により実現したが、これに限定されない。
例えば、図2にて示すDAT0ライン113に含まれるDAT0+ラインの分岐点から差動トランスミッタ217及び差動レシーバ218までの経路それぞれにスイッチを設けてもよい。また、DAT0ライン113に含まれるDAT0−ラインの分岐点から差動トランスミッタ217及び差動レシーバ218までの経路それぞれについても同様に、スイッチを設けてもよい。これにより、差動トランスミッタ217を有効とし、差動レシーバ218を無効にする場合には、DAT0+ラインと差動トランスミッタ217との間に設けられたスイッチを閉じ、DAT0+ラインと差動レシーバ218との間に設けられたスイッチを開く。さらに、DAT0−ラインと差動トランスミッタ217との間に設けられたスイッチを閉じ、DAT0−ラインと差動レシーバ218との間に設けられたスイッチを開く。
また、DAT1ライン114に含まれるDAT1+ライン及びDAT1−ラインそれぞれに対して差動トランスミッタ219及び差動レシーバ220の間においても上記同様に、スイッチを設けてもよい。
また、スレーブ101においても、DAT0+及びDAT0−それぞれに対して差動トランスミッタ1116及び差動レシーバ1117の間においても上記同様に、スイッチを設けてもよい。DAT1+及びDAT1−それぞれに対して差動トランスミッタ1118及び差動レシーバ1119の間においても上記同様に、スイッチを設けてもよい。
(9)上記実施の形態において、半二重通信から全二重通信への切り替え時において(図22(a)、(b)参照)、アクノリッジコード(ACK)は、プリアンブルコード(PRE)を受信したことを示す応答コードとしたが、これに限定されない。プリアンブルコード(PRE)を受信したことを示す応答コードとして、アイドルコード(IDL)で代替させる構成であってもよい。その場合、方向制御コード(DIR)とプリアンブルコード(PRE)とのハンドシェイク、プリアンブルコード(PRE)とアイドルコード(IDL)とのハンドシェイクが連続的に行われることになる。さらに、アイドルコード(IDL)は論理的なアイドル状態を示す8b/10bのコードである必要は無く、差動トランスミッタからの送信を停止した電気的なアイドル状態であってもよい。相手側に差動レシーバは、電気的なアイドル状態を検出すると、送信したプリアンブルコードに対する応答コードを受け取ったと認識する。
(10)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(11)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
本発明は、マスタとスレーブとの間で1通信毎に全二重通信か半二重通信かの通信モードを選択でき、また、それら通信モード切替え時の通信路の方向制御およびビット同期を高速かつ確実に行える特徴を有する。このため、機器間あるいは機器内の機能ブロック間で効率的なデータ転送を行う通信システムに適用でき、有用である。
本発明に係るマスタ通信装置及びスレーブ通信装置は、装置を製造、販売する産業において、経営的、つまり反復的かつ継続的に利用され得る。
10 通信システム
100 マスタ通信装置(マスタ)
101 スレーブ通信装置(スレーブ)
102 シリアル通信網
103 イニシエータ
104 ターゲット
105、106 通信インタフェース(I/F)部
107、108 トランザクション制御部
109、110 リンク制御部
111、112 送受信部
113 第1通信路(DAT0ライン)
114 第2通信路(DAT1ライン)
115 クロックライン

Claims (17)

  1. 第1装置と第2装置とからなり、前記第1装置と前記第2装置とを接続する第1及び第2の通信路を用いて全二重通信と半二重通信とを切り替えて処理対象であるデータの送受信を行うデータ通信システムであって、
    前記第1装置は、
    半二重通信時に当該第1装置がデータ送信側である場合において、半二重通信から全二重通信への切り替えを示す指示コードを前記第1の通信路を介して前記第2装置へ送出する第1送出手段と、
    前記第1及び前記第2の通信路と接続された第1インターフェース部を、前記第2の通信路によりデータを送信する構成から受信する構成へと切り替える第1切替制御手段と、
    前記第1切替制御手段による切替が完了し、且つ全二重通信への切替完了を示す応答コードを前記第2の通信路を介して前記第2装置から受け付けた後、全二重通信により処理対象となるデータの送受信を開始する第1通信制御手段とを備え、
    前記第2装置は、
    前記第1装置から前記指示コードを前記第1の通信路を介して受け付けると、前記第1及び前記第2の通信路と接続された第2インターフェース部において、前記第2の通信路によりデータを受信する構成から送信する構成へと切り替える第2切替制御手段と、
    前記第2切替制御手段による切替が完了した後、前記応答コードを前記第2の通信路を介して前記第1装置へ送出する第2送出手段と、
    前記応答コードを送出後、全二重通信により処理対象となるデータの送受信を開始する第2通信制御手段とを備える
    ことを特徴とするデータ通信システム。
  2. 前記第1送出手段は、さらに、前記第1通信制御手段による処理対象となるデータの送受信の開始に先立って、前記応答コードを受信した旨を示し、且つ前記第2装置からのデータの受信の待ち受け状態である旨を示す応答受信コードを前記第2装置へ送出し、
    前記第1通信制御手段は、前記第1送出手段による前記応答受信コードの送出後、処理対象のデータの送受信を開始し、
    前記第2通信制御手段は、前記応答受信コードの受信後、処理対象のデータの送受信を開始する
    ことを特徴とする請求項1に記載のデータ通信システム。
  3. 前記データ通信システムは、
    データ送信側がデータ送信を抑止する旨の抑止コードを、データ受信側が前記抑止コードの受信に対するメッセージコードを、それぞれ相手側の装置へ送信するフロー制御によるデータ通信を行い、
    前記第1送出手段は、前記指示コードの送出に先立って、前記抑止コードを前記第1の通信路を介して前記第2装置へ送出し、その後、前記指示コードを送出し、
    前記第2送出手段は、前記第2切替制御手段による前記切替が完了すると、前記応答コードの代わりに前記メッセージコードを送出し、
    前記第1通信制御手段は、前記第2装置から前記応答コードとして前記メッセージコードを受け付ける
    ことを特徴とする請求項2に記載のデータ通信システム。
  4. 前記データ通信システムは、
    データ送信側がデータ送信を抑止する旨の抑止コードを、データ受信側が前記抑止コードの受信に対するメッセージコードを、それぞれ相手側の装置へ送信するフロー制御によるデータ通信を行い、
    前記第1送出手段は、半二重通信によるデータ通信時において、前記指示コードの代わりに前記抑止コードを前記第2装置へ送出し、
    前記第2切替制御手段は、前記第1装置から前記指示コードとして前記抑止コードを受信し、
    前記第2送出手段は、前記第2切替制御手段による前記切替が完了すると、前記応答コードの代わりに前記メッセージコードを送出し、
    前記第1通信制御手段は、前記第2装置から前記応答コードとして前記メッセージコードを受け付ける
    ことを特徴とする請求項1に記載のデータ通信システム。
  5. 全二重通信時において、前記第1の通信路は前記第1装置から前記第2装置へデータを送信するよう用いられ、前記第2の通信路は前記第2装置から前記第1装置へデータを送信するよう用いられ、
    前記第1送出手段は、全二重通信時において、前記第2装置へデータを送信する旨を示すコードと半二重通信にてデータ通信を行う旨を示すコードとを含む送信要求コードを前記第1の通信路を介して前記第2装置へ送出し、
    前記第2送出手段は、前記送信要求コードを前記第1の通信路を介して受け取ると、当該送信要求コードを受け付けた旨を示す要求受信コードを前記第2の通信路を介して前記第1装置へ送出し、
    前記第1切替制御手段は、前記要求受信コードを前記第2の通信路を介して受け取ると、前記第1インターフェース部において、前記第2の通信路によりデータを受信する構成から送信する構成へと切り替え、
    前記第2切替制御手段は、前記要求受信コードの送出した後、前記第2インターフェース部において、前記第2の通信路によりデータを送信する構成から受信する構成へと切り替え、
    前記第1通信制御手段は、前記要求受信コードを受け取ってから所定の時間が経過した後、半二重通信により処理対象となるデータの送信を開始する
    ことを特徴とする請求項1に記載のデータ通信システム。
  6. 前記データ通信システムは、
    前記第1装置が前記送信要求コードを送信した場合において、前記第2装置が受信待ちである旨の待ち受けコードを、前記第1装置が前記待ち受けコードの受信に対するメッセージコードを、それぞれ相手側の装置へ送信するフロー制御によるデータ通信を行い、
    前記第2送出手段は、前記第2切替制御手段による前記第2の通信路によりデータを送信する構成から受信する構成への切り替えに先立って、前記待ち受けコードを前記第2の通信路を介して前記第1装置へ送出し、
    前記第1送出手段は、前記要求受信コードを受け取り後、さらに前記待ち受けコードを前記第2の通信路を介して受け取ると、通信方式を全二重通信から半二重通信へと切り替える旨の指示コードを前記第1の通信路を介して前記第2装置へ送出し、
    前記第1切替制御手段は、前記待ち受けコードの受け取り後、前記第1インターフェース部を前記第2の通信路によりデータを受信する構成から送信する構成への切り替え、
    前記第2切替制御手段は、通信方式を全二重通信から半二重通信へと切り替える旨の指示コードを前記第1の通信路を介して受け取ると、前記第2インターフェース部を前記第2の通信路によりデータを送信する構成から受信する構成への切り替え、
    前記第1送出手段は、前記待ち受けコードを受け取ってから前記所定の時間の経過すると、前記第1通信制御手段による処理対象となるデータの送信の開始に先立って、前記メッセージコードを前記第1の通信路を介して前記第2装置へ送出し、
    前記第1通信制御手段は、前記第1送出手段による前記メッセージコードを送出した後、半二重通信により処理対象のデータの送信を開始する
    ことを特徴とする請求項5に記載のデータ通信システム。
  7. 前記データ通信システムは、
    前記第1装置が前記送信要求コードを送信した場合において、前記第2装置が受信待ちである旨の待ち受けコードを、前記第1装置が前記待ち受けコードの受信に対するメッセージコードを、それぞれ相手側の装置へ送信するフロー制御によるデータ通信を行い、
    前記第2送出手段は、前記第2切替制御手段による第2インターフェース部を前記第2の通信路によりデータを送信する構成から受信する構成への切り替えに先立って、前記待ち受けコードを前記第2の通信路を介して前記第1装置へ送出し、
    前記第2切替制御手段は、前記待ち受けコードが送出されると、前記第2インターフェース部を前記第2の通信路によりデータを送信する構成から受信する構成への切り替え、
    前記第1送出手段は、前記要求受信コードの受け取り後、さらに前記待ち受けコードを前記第2の通信路を介して受け取ると、前記待ち受けコードの受け取りから前記所定の時間が経過すると、前記第1通信制御手段による処理対象となるデータの送信の開始に先立って、前記メッセージコードを前記第1の通信路を介して前記第2装置へ送出し、
    前記第1通信制御手段は、前記第1送出手段による前記メッセージコードを送出した後、半二重通信により処理対象のデータの送信を開始する
    ことを特徴とする請求項5に記載のデータ通信システム。
  8. 全二重通信時において、前記第1の通信路は前記第1装置から前記第2装置へデータを送信するよう用いられ、前記第2の通信路は前記第2装置から前記第1装置へデータを送信するよう用いられ、
    前記第1送出手段は、前記第2装置からデータを受信する旨のコードと半二重通信にてデータ通信を行う旨のコードとを含む受信要求コードを前記第1の通信路を介して前記第2装置へ送出し、
    前記第2送出手段は、前記受信要求コードを前記第1の通信路を介して受け取ると、当該受信要求コードを受け付けた旨を示す要求受信コードを前記第2の通信路を介して前記第1装置へ送出し、
    前記第1切替制御手段は、前記要求受信コードを受け取った後、第1インターフェース部を前記第1の通信路によりデータを送信する構成から受信する構成へと切り替え、
    前記第2切替制御手段は、前記要求受信コードの送出後、第2インターフェース部を前記第1の通信路によりデータを受信する構成から送信する構成へと切り替え、
    前記第2通信制御手段は、前記要求受信コードを送出してから所定の時間が経過した後、半二重通信により処理対象のデータの送信を開始する
    ことを特徴とする請求項1に記載のデータ通信システム。
  9. 前記データ通信システムは、
    前記第1装置が前記受信要求コードを送信した場合において、前記第1装置が受信待ちである旨の待ち受けコードを、前記第2装置が前記待ち受けコードの受信に対するメッセージコードを、それぞれ相手側の装置へ送信するフロー制御によるデータ通信を行い、
    前記第1送出手段は、前記要求受信コードを受け取った後、前記第1切替制御手段による第1インターフェース部を前記第1の通信路によりデータを送信する構成から受信する構成への切り替えに先立って、前記待ち受けコードを前記第1の通信路を介して前記第2装置へ送出し、
    前記第2送出手段は、前記要求受信コードの送出後、さらに前記待ち受けコードを前記第1の通信路を介して受け取ると、全二重通信から半二重通信への通信方式の切り替える旨の指示コードを前記第2の通信路を介して前記第1装置へ送出し、
    前記第1切替制御手段は、前記要求受信コードの受け取り後、さらに全二重通信から半二重通信への通信方式の切り替える旨の指示コードを前記第2の通信路を介して受け取ると、第1インターフェース部を前記第1の通信路によりデータを送信する構成から受信する構成へと切り替え、
    前記第2送出手段は、前記待ち受けコードを受け取ってから前記所定の時間経過すると、前記第2通信制御手段による処理対象となるデータの送信の開始に先立って、前記メッセージコードを前記第2の通信路を介して前記第1装置へ送出し、
    前記第2通信制御手段は、前記メッセージコードの送出した後、半二重通信により処理対象のデータの送信を開始する
    ことを特徴とする請求項8に記載のデータ通信システム。
  10. 前記データ通信システムは、
    前記第1装置が前記受信要求コードを送信した場合において、前記第1装置が受信待ちである旨の待ち受けコードを、前記第2装置が前記待ち受けコードの受信に対するメッセージコードを、それぞれ相手側の装置へ送信するフロー制御によるデータ通信を行い、
    前記第1送出手段は、前記要求受信コードを受け取った後、前記第1切替制御手段による前記第1インターフェース部を前記第1の通信路によりデータを送信する構成から受信する構成への切り替えに先立って、前記待ち受けコードを前記第1の通信路を介して前記第2装置へ送出し、
    前記第1切替制御手段は、前記待ち受けコードが送出されると、第1インターフェース部を前記第1の通信路によりデータを送信する構成から受信する構成へと切り替え、
    前記第2送出手段は、前記要求受信コードの送出した後、さらに前記待ち受けコードを前記第1の通信路を介して受け取ると、前記待ち受けコードを受け取ってから前記所定の時間が経過した後、前記第2通信制御手段による処理対象となるデータの送信の開始に先立って、前記メッセージコードを前記第2の通信路を介して前記第1装置へ送出し、
    前記第2通信制御手段は、前記第2送出手段による前記メッセージコードの送出した後、半二重通信により処理対象となるデータの送信を開始する
    ことを特徴とする請求項に記載のデータ通信システム。
  11. 全二重通信から半二重通信への切り替えにおける前記所定の時間は、前記第2装置が前記第2切替制御手段により半二重通信から全二重通信への切り替えを開始してから前記第1装置との間で処理すべきデータの送受信を開始する状態となるまでに要した期間である
    ことを特徴とする請求項8に記載のデータ通信システム。
  12. 半二重通信で前記第1装置が処理対象となるデータを受信する場合において、
    前記第2送出手段は、半二重通信から全二重通信への切り替えを示す指示コードを前記第2の通信路を介して前記第1装置へ送出し、
    前記第2切替制御手段は、第2インターフェース部を前記第1の通信路によりデータを送信する構成から受信する構成へと切り替え、
    前記第1切替制御手段は、半二重通信から全二重通信への切り替えを示す前記指示コードを前記第2の通信路を介して受け付けると、第1インターフェース部を前記第1の通信路によりデータを受信する構成から送信する構成へと切り替え、
    前記第1送出手段は、前記第1切替制御手段による切り替えが完了した後、全二重通信への切替完了を示す前記応答コードを前記第1の通信路を介して前記第2装置へ送出し、
    前記第1通信制御手段は、全二重通信への切替完了を示す前記応答コードを送出した後、全二重通信により処理対象となるデータの送受信を開始し、
    前記第2通信制御手段は、前記第1装置から全二重通信への切替完了を示す応答コードを前記第1の通信路を介して受け付けると、全二重通信により処理対象となるデータの送受信を開始する
    ことを特徴とする請求項8に記載のデータ通信システム。
  13. 前記第1装置が前記指示コードの送出に用いる前記第1の通信路は、
    当該第1装置が全二重通信時において前記第2装置へデータを送信するために用いる通信路である
    ことを特徴とする請求項1に記載のデータ通信システム。
  14. 他装置との間で接続された第1及び第2の通信路を用いて全二重通信と半二重通信とを切り替えて処理対象であるデータの送受信を行うデータ通信装置であって、
    半二重通信時に当該データ通信装置がデータ送信側である場合において、半二重通信から全二重通信への切り替えを示す指示コードを前記第1の通信路を介して前記他装置へ送出する送出手段と、
    前記第1及び第2の通信路と接続された第1インターフェース部を、前記第2の通信路によりデータを送信する構成から受信する構成へと切り替える切替制御手段と、
    前記切替制御手段による切り替えが完了し、且つ全二重通信への切替完了を示す応答コードを前記第2の通信路を介して前記他装置から受け付けると、全二重通信により処理対象となるデータの送受信を開始する通信制御手段とを備える
    ことを特徴とするデータ通信装置。
  15. 前記切替制御手段は、当該データ通信装置が半二重通信時においてデータ受信側である場合に、前記他装置から半二重通信から全二重通信への切り替えを示す指示コードを前記第2の通信路を介して受け付けると、前記第1インターフェース部を、前記第1の通信路によりデータを受信する構成から送信する構成へと切り替え、
    前記送出手段は、前記切替制御手段により前記第1インターフェース部において前記第1の通信路によりデータを受信する構成から送信する構成へと切り替えが完了した後、全二重通信への切替完了を示す応答コードを前記第1の通信路を介して前記他装置へ送出し、
    前記通信制御手段は、全二重通信への切替完了を示す前記応答コードを送出後、全二重通信により処理対象となるデータの送受信を開始する
    ことを特徴とする請求項14に記載のデータ通信装置。
  16. 前記他装置は、データ通信に用いられる第1端子及び第2端子を備えており、
    前記データ通信装置は、
    データ通信に用いられる第3端子及び第4端子を有し、前記他装置と着脱可能であり、前記他装置への装着時に前記第1端子と前記第3端子とが、前記第2端子と前記第4端子とがそれぞれ接続されることで前記第1及び前記第2の通信路を形成するメモリカード又はI/Oカードである
    ことを特徴とする請求項15に記載のデータ通信装置。
  17. 第1装置と第2装置とからなり、前記第1装置と前記第2装置とを接続する第1及び第2の通信路を用いて全二重通信と半二重通信とを切り替えて処理対象であるデータの送受信を行うデータ通信システムで用いられる通信方法であって、
    前記第1装置は、
    半二重通信時に当該第1装置がデータ送信側である場合において、半二重通信から全二重通信への切り替えを示す指示コードを前記第1の通信路を介して前記第2装置へ送出し、
    前記第1及び前記第2の通信路と接続された第1インターフェース部を、前記第2の通信路によりデータを送信する構成から受信する構成へと切り替え、
    前記第1インターフェース部の切替が完了し、且つ全二重通信への切替完了を示す応答コードを前記第2の通信路を介して前記第2装置から受け付けた後、全二重通信により処理対象となるデータの送受信を開始し、
    前記第2装置は、
    前記第1装置から前記指示コードを前記第1の通信路を介して受け付けると、前記第1及び前記第2の通信路と接続された第2インターフェース部において、前記第2の通信路によりデータを受信する構成から送信する構成へと切り替え、
    前記第2インタフェース部の切替が完了した後、前記応答コードを前記第2の通信路を介して前記第1装置へ送出し、
    前記応答コードを送出後、全二重通信により処理対象となるデータの送受信を開始する
    ことを特徴とする通信方法。
JP2010517704A 2008-06-20 2009-06-11 データ通信システム、通信装置及び通信方法 Active JP5379134B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010517704A JP5379134B2 (ja) 2008-06-20 2009-06-11 データ通信システム、通信装置及び通信方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008161330 2008-06-20
JP2008161330 2008-06-20
PCT/JP2009/002639 WO2009153944A1 (ja) 2008-06-20 2009-06-11 データ通信システム、通信装置及び通信方法
JP2010517704A JP5379134B2 (ja) 2008-06-20 2009-06-11 データ通信システム、通信装置及び通信方法

Publications (2)

Publication Number Publication Date
JPWO2009153944A1 JPWO2009153944A1 (ja) 2011-11-24
JP5379134B2 true JP5379134B2 (ja) 2013-12-25

Family

ID=41433868

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010517704A Active JP5379134B2 (ja) 2008-06-20 2009-06-11 データ通信システム、通信装置及び通信方法

Country Status (4)

Country Link
US (1) US8351356B2 (ja)
JP (1) JP5379134B2 (ja)
CN (1) CN101785282B (ja)
WO (1) WO2009153944A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9998545B2 (en) * 2011-04-02 2018-06-12 Open Invention Network, Llc System and method for improved handshake protocol
CN102763346B (zh) 2011-06-22 2015-09-09 华为技术有限公司 中继网络中的工作模式切换方法、基站、中继节点及通讯系统
JP6029290B2 (ja) * 2012-03-01 2016-11-24 キヤノン株式会社 撮像装置、交換レンズ及び撮像装置システム
GB2502627A (en) * 2012-06-01 2013-12-04 Renesas Mobile Corp Wireless Full Duplex indication message and capability message sent between two communication devices
JP5814871B2 (ja) * 2012-07-06 2015-11-17 株式会社東芝 メモリシステム
US9253072B2 (en) * 2012-10-24 2016-02-02 Broadcom Corporation Polarity detection system
EP3046265B1 (en) * 2013-09-10 2019-01-16 Sony Corporation Communication apparatus, communication system and communication method
US9397871B2 (en) 2014-09-30 2016-07-19 Infineon Technologies Ag Communication devices
CN108694144B (zh) * 2017-04-07 2021-08-03 苏州倍昊电子科技有限公司 接口电路、信号传输系统及其信号传输方法
US11700107B2 (en) 2017-11-09 2023-07-11 Qualcomm Incorporated Duplexing modes based on power configurations for transmissions
KR102536637B1 (ko) * 2018-03-29 2023-05-26 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
KR102560251B1 (ko) * 2018-06-20 2023-07-26 삼성전자주식회사 반도체 장치 및 반도체 시스템
JP7165882B2 (ja) * 2019-03-14 2022-11-07 パナソニックIpマネジメント株式会社 通信装置および通信システム
CN111431605B (zh) * 2020-03-30 2021-12-10 阳光电源股份有限公司 一种数据收发控制方法及其应用系统
US20210389982A1 (en) * 2020-06-10 2021-12-16 Q2 Software, Inc. System and method for process and data isolation in a networked service environment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001086104A (ja) * 1999-09-14 2001-03-30 Sharp Corp 双方向伝送システム
JP2002094600A (ja) * 2000-09-13 2002-03-29 Mitsubishi Electric Corp 通信装置および通信方法
JP2003242470A (ja) * 2002-02-21 2003-08-29 Sony Corp 外部接続機器及びホスト機器

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4771417A (en) 1986-09-18 1988-09-13 Racal Data Communications, Inc. High speed modem
US5155726A (en) 1990-01-22 1992-10-13 Digital Equipment Corporation Station-to-station full duplex communication in a token ring local area network
JPH08111761A (ja) 1994-10-07 1996-04-30 Fuji Xerox Co Ltd ファクシミリ装置
EP1012730A1 (en) 1996-01-31 2000-06-28 Ipsilon Networks, Inc. Improved method and apparatus for dynamically shifting between routing and switching packets in a transmission network
US6950459B1 (en) 1999-01-08 2005-09-27 Panasonic Communications Co., Ltd. Activation of multiple xDSL modems with half duplex and full duplex procedures
JP2001086185A (ja) 1999-09-14 2001-03-30 Sharp Corp 通信方法および装置
WO2001020833A1 (fr) * 1999-09-14 2001-03-22 Sharp Kabushiki Kaisha Procede de communication de donnees, procede de communication bidirectionnelle de donnees, systeme de communication de donnees, systeme de communication bidirectionnelle de donnees, emetteur de donnees, et recepteur de donnees
KR100389922B1 (ko) 2001-01-15 2003-07-04 삼성전자주식회사 1000베이스-t 표준을 이용하는 기가비트 이더넷에서의고속 링크를 위한 자동-교섭 방법 및 이를 수행하기 위한장치
US20020124102A1 (en) 2001-03-01 2002-09-05 International Business Machines Corporation Non-zero credit management to avoid message loss
US20040022204A1 (en) * 2002-07-31 2004-02-05 Matthew Trembley Full duplex/half duplex serial data bus adapter
US7697564B2 (en) 2002-09-17 2010-04-13 Broadcom Corporation Long range handshaking communication system for multiple xDSL
JP3809839B2 (ja) 2004-03-09 2006-08-16 セイコーエプソン株式会社 データ転送制御装置、電子機器及びデータ転送制御方法
JP2006020224A (ja) 2004-07-05 2006-01-19 Sony Corp 通信制御装置、電子機器および通信制御方法
JP4409388B2 (ja) 2004-08-18 2010-02-03 株式会社リコー 通信機器、通信モード設定方法、通信モード設定プログラム
US8089907B2 (en) * 2006-02-08 2012-01-03 Marvell World Trade Ltd. Duplex mismatch detection

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001086104A (ja) * 1999-09-14 2001-03-30 Sharp Corp 双方向伝送システム
JP2002094600A (ja) * 2000-09-13 2002-03-29 Mitsubishi Electric Corp 通信装置および通信方法
JP2003242470A (ja) * 2002-02-21 2003-08-29 Sony Corp 外部接続機器及びホスト機器

Also Published As

Publication number Publication date
WO2009153944A1 (ja) 2009-12-23
CN101785282B (zh) 2014-07-02
US8351356B2 (en) 2013-01-08
US20110103224A1 (en) 2011-05-05
JPWO2009153944A1 (ja) 2011-11-24
CN101785282A (zh) 2010-07-21

Similar Documents

Publication Publication Date Title
JP5379134B2 (ja) データ通信システム、通信装置及び通信方法
JP4768017B2 (ja) ポイントツーポイント・リンクのネゴシエーション方法および装置
TWI294083B (en) Device-side controller, host-side controller, communication controller, usb system, and packet communications method
US6687766B1 (en) Method and apparatus for a fibre channel control unit to execute search commands locally
JP5551193B2 (ja) エンハンスドワイヤレスusbプロトコル及びハブ
CN100366029C (zh) 通信控制器、主机端控制器、通信设备、通信系统和方法
US6609165B1 (en) Method and apparatus for using fibre channel extended link service commands in a point-to-point configuration
US7673075B1 (en) Pass-through information transfers in serial communications between a device and a host
US6230218B1 (en) Apparatus for transferring execution of certain channel functions to a control unit and having means for combining certain commands and data packets in one sequence
JPWO2009147785A1 (ja) データ通信システム、データ通信要求装置及びデータ通信応答装置
US7328399B2 (en) Synchronous serial data communication bus
JP2005107683A (ja) 通信コントローラ、通信システム、通信機器、および通信方法
US6338083B1 (en) Method and apparatus for transfer of information using optical fiber connections
JP2014507035A (ja) シリアル・インタフェース
CN102073611B (zh) 一种i2c总线控制系统及方法
JPWO2010123143A1 (ja) 送信装置、送信方法及び送信装置の制御プログラム
EP1471434B1 (en) Information transfer protocol
US20060187960A1 (en) Network interface and computing system including the same
JP2003069603A (ja) パケット通信制御装置
JP2005107677A (ja) 通信コントローラ、通信システム、通信機器、および通信方法
JP3672845B2 (ja) インターフェース装置及びこれを備えた通信機器並びに通信方法
JP2011114625A (ja) 通信システムおよび通信装置
US6330585B1 (en) Transfer information using optical fiber connections
US6499066B1 (en) Method and apparatus for using fibre channel test extended link service commands for interprocess communication
CN116360675B (zh) 一种宽端口场景中的sas帧路由方法和装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130723

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130808

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: 20130903

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130926

R150 Certificate of patent or registration of utility model

Ref document number: 5379134

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150