KR102350136B1 - 통신 장치, 통신 방법, 프로그램, 및, 통신 시스템 - Google Patents

통신 장치, 통신 방법, 프로그램, 및, 통신 시스템 Download PDF

Info

Publication number
KR102350136B1
KR102350136B1 KR1020187031337A KR20187031337A KR102350136B1 KR 102350136 B1 KR102350136 B1 KR 102350136B1 KR 1020187031337 A KR1020187031337 A KR 1020187031337A KR 20187031337 A KR20187031337 A KR 20187031337A KR 102350136 B1 KR102350136 B1 KR 102350136B1
Authority
KR
South Korea
Prior art keywords
bit
preamble
data
master
transmitted
Prior art date
Application number
KR1020187031337A
Other languages
English (en)
Other versions
KR20190008196A (ko
Inventor
히로오 타카하시
타카시 요코카와
손푼 리
나오히로 코시사카
Original Assignee
소니그룹주식회사
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 소니그룹주식회사 filed Critical 소니그룹주식회사
Publication of KR20190008196A publication Critical patent/KR20190008196A/ko
Application granted granted Critical
Publication of KR102350136B1 publication Critical patent/KR102350136B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/04Speed or phase control by synchronisation signals
    • H04L7/041Speed or phase control by synchronisation signals using special codes as synchronising signal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0016Inter-integrated circuit (I2C)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L2001/125Arrangements for preventing errors in the return channel

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Communication Control (AREA)

Abstract

[과제]
보다 확실하게 통신을 행한다.
[해결 수단]
마스터는 슬레이브와 신호의 송수신을 행하는 송수신부를 구비하고, 송수신부는, 슬레이브로부터 판독되는 리드 데이터를 수신하고, 그 리드 데이터의 후에 송수신되는 프리앰블의 2비트째에 대한 구동을 항상 행한다. 마스터는, 이 프리앰블의 2비트째에 의해, 슬레이브에 대해 통신을 도중에 차단하는 것, 또는, 통신의 차단을 행하지 않는 것을 통지할 수 있다. 본 기술은, 예를 들면, I3C의 규격에 준거하여 통신을 행하는 버스 IF에 적용할 수 있다.

Description

통신 장치, 통신 방법, 프로그램, 및, 통신 시스템
본 개시는, 통신 장치, 통신 방법, 프로그램, 및, 통신 시스템에 관한 것으로, 특히, 보다 확실하게 통신을 행할 수가 있도록 한 통신 장치, 통신 방법, 프로그램, 및, 통신 시스템에 관한 것이다.
<우선권 주장의 표시>
본 발명은 2016년 5월 18일에 일본에 출원된 JP2016-099953호에 의거한 우선권을 주장하고, 그 내용을 여기에 원용한다.
종래, 복수의 디바이스가 실장된 보드 내에서 버스를 통한 디바이스 사이의 통신에 이용되는 버스 IF(Interface)로서, 예를 들면, I2C(Inter-Integrated Circuit)가 많이 이용되어 있다.
또한, 근래, I2C의 고속화를 실현하는 것이 요구되고 있고, 차세대의 규격으로서 I3C(Improved Inter Integrated Circuit)의 규정이 진행하고 있다. I3C에서는, 마스터 및 슬레이브는, 2개의 신호선을 통하여 쌍방향으로 통신을 행할 수가 있고, 예를 들면, 마스터로부터 슬레이브에의 데이터 전송(라이트 전송)과, 슬레이브로부터 마스터에의 데이터 전송(리드 전송)이 행하여진다.
예를 들면, 특허 문헌 1에는, 호스트·프로세서와 서브시스템·컨트롤러를, I2C에 의해 상호 접속하는 디지털·데이터 처리 시스템이 개시되어 있다. 또한, 특허 문헌 2에는, 표준 I2C 프로토콜의 상부에 층상으로 배치된 통신 프로토콜을 실현하는 방법이 개시되어 있다.
특허 문헌 1 : 일본국 특개2000-99448호 공보 특허 문헌 2 : 일본국 특개2002-175269호 공보
그런데, 상술한 바와 같은 I3C에서는, 예를 들면, 마스터 및 슬레이브에 있어서, 패리티 또는 CRC(Cyclic Redundancy Check) 등에 의한 에러 검출이 행하여지는 것이 규정되어 있지만, 그와 같은 에러 검출이 준비되지 않은 신호의 송수신도 행하여진다. 그때문에, 에러 검출이 준비되지 않은 신호에 에러가 발생한 때에, 마스터 및 슬레이브가, 정상적인 통신을 행할 수가 없게 되는 것이 우려된다.
본 개시는, 이와 같은 상황을 감안하고 이루어진 것이고, 보다 확실하게 통신을 행할 수가 있도록 하는 것이다.
본 개시의 제1의 측면의 통신 장치는, 다른 통신 장치와 신호의 송수신을 행하는 송수신부를 구비하고, 상기 송수신부는, 상기 다른 통신 장치로부터 판독되는 리드 데이터를 수신하고, 상기 리드 데이터의 후에 송수신 되는 프리앰블의 2비트째에 대한 구동을 항상 행한다.
본 개시의 제1의 측면의 통신 방법 또는 프로그램은, 다른 통신 장치와 신호의 송수신을 행하는 송수신부에 의해, 상기 다른 통신 장치로부터 판독되는 리드 데이터를 수신하고, 상기 리드 데이터의 후에 송수신되는 프리앰블의 2비트째에 대한 구동을 항상 행하는 스텝을 포함한다.
본 개시의 제1의 측면에서는, 다른 통신 장치와 신호의 송수신을 행하는 송수신부에 의해, 다른 통신 장치로부터 판독되는 리드 데이터가 수신되고, 그 리드 데이터의 후에 송수신되는 프리앰블의 2비트째에 대한 구동이 항상 행하여진다.
본 개시의 제2의 측면의 통신 시스템은, 버스에서의 제어의 주도권을 갖는 제1의 통신 장치와, 상기 제1의 통신 장치에 의한 제어에 따라 통신을 행하는 제2의 통신 장치를 구비하고, 상기 제1의 통신 장치가, 상기 제2의 통신 장치와 신호의 송수신을 행하는 송수신부를 구비하고, 상기 송수신부는, 상기 제2의 통신 장치로부터 판독되는 리드 데이터를 수신하고, 상기 리드 데이터의 후에 송수신되는 프리앰블의 2비트째에 대한 구동을 항상 행한다.
본 개시의 제2의 측면에서는, 버스에서의 제어의 주도권을 갖는 제1의 통신 장치와, 제1의 통신 장치에 의한 제어에 따라 통신을 행하는 제2의 통신 장치에 의해 통신이 행하여진다. 그리고, 제1의 통신 장치가, 제2의 통신 장치와 신호의 송수신을 행하는 송수신부를 구비하고, 송수신부에 의해, 제2의 통신 장치로부터 판독되는 리드 데이터가 수신되고, 리드 데이터의 후에 송수신되는 프리앰블의 2비트째에 대한 구동이 항상 행하여진다.
본 개시의 제1 및 제2의 측면에 의하면, 보다 확실하게 통신을 행할 수가 있다.
도 1은 본 기술을 적용한 버스 IF의 한 실시의 형태의 구성례를 도시하는 블록도.
도 2는 프리앰블의 제1의 정의례를 도시하는 도면.
도 3은 프리앰블의 제1의 정의례의 변형례를 도시하는 도면.
도 4는 리드 전송시에 있어서의 타이밍 차트를 도시하는 도면.
도 5는 리드 커맨드의 직후의 프리앰블에서 ACK에 1비트 에러가 발생하는 예를 도시하는 도면.
도 6은 리드 커맨드의 직후의 프리앰블에서 NACK에 1비트 에러가 발생하는 예를 도시하는 도면.
도 7은 리드 데이터의 직후의 프리앰블의 1비트째가 1인 때에, 그 1비트째에 1비트 에러가 발생하는 제1의 예를 도시하는 도면.
도 8은 리드 데이터의 직후의 프리앰블의 1비트째가 1인 때에, 그 1비트째에 1비트 에러가 발생하는 제2의 예를 도시하는 도면.
도 9는 리드 데이터의 직후의 프리앰블의 1비트째가 0인 때에, 그 1비트째에 1비트 에러가 발생하는 제1의 예를 도시하는 도면.
도 10은 리드 데이터의 직후의 프리앰블의 1비트째가 0인 때에, 그 1비트째에 1비트 에러가 발생하는 제2의 예를 도시하는 도면.
도 11은 마스터의 DDR 모드에서의 통신 처리를 설명하는 플로우 차트.
도 12는 프리앰블의 제2의 정의례를 도시하는 도면.
도 13은 리드 전송시에 있어서의 타이밍 차트를 도시하는 도면.
도 14는 리드 커맨드에 계속해서 리드 데이터가 송신될 때의 프레퍼레이션 비트 및 프리앰블에 1비트 에러가 발생하는 예를 도시하는 도면.
도 15는 리드 데이터에 계속해서 리드 데이터가 송신될 때의 프레퍼레이션 비트 및 프리앰블에 1비트 에러가 발생하는 예를 도시하는 도면.
도 16은 리드 커맨드에 계속해서 CRC 워드가 송신될 때의 프레퍼레이션 비트 및 프리앰블에 1비트 에러가 발생하는 예를 도시하는 도면.
도 17은 본 기술을 적용한 컴퓨터의 한 실시의 형태의 구성례를 도시하는 블록도이다.
이하, 본 기술을 적용한 구체적인 실시의 형태에 관해, 도면을 참조하면서 상세히 설명한다.
<버스 IF의 구성례>
도 1은, 본 기술을 적용한 버스 IF의 한 실시의 형태의 구성례를 도시하는 블록도이다.
도 1에 도시되어 있는 버스 IF(11)는, 마스터(12)와 3대의 슬레이브(13-1 내지 13-3)가, 데이터 신호선(14-1) 및 클록 신호선(14-2)을 통하여 접속되어 구성된다.
마스터(12)는, 버스 IF(11)에서의 제어의 주도권을 갖고 있고, 데이터 신호선(14-1) 및 클록 신호선(14-2)을 통하여, 슬레이브(13-1 내지 13-3)와 통신을 행할 수가 있다.
슬레이브(13-1 내지 13-3)는, 마스터(12)에 의한 제어에 따라, 데이터 신호선(14-1) 및 클록 신호선(14-2)을 통하여, 마스터(12)와 통신을 행할 수가 있다. 또한, 슬레이브(13-1 내지 13-3)는, 각각 마찬가지로 구성되어 있고, 이하, 그들을 구별할 필요가 없는 경우, 단지 슬레이브(13)라고 칭하고, 슬레이브(13)를 구성하는 각 블록에 대해서도 마찬가지로 한다.
데이터 신호선(14-1) 및 클록 신호선(14-2)은, 마스터(12) 및 슬레이브(13)의 사이에서 신호를 전송하는데 이용된다. 예를 들면, 버스 IF(11)에서는, 데이터 신호선(14-1)을 통하여, 1비트씩 순차적으로 시리얼 데이터(SDA : Serial Data)가 전송되고, 클록 신호선(14-2)을 통하여, 소정의 주파수의 시리얼 클록(SCL : Serial Clock)이 전송된다.
또한, 버스 IF(11)에서는, I3C의 규격에 준하여, 통신 속도가 다른 복수의 전송 방식이 규정되어 있고, 마스터(12)는, 그들의 전송 방식을 전환할 수 있다. 예를 들면, 버스 IF(11)에서는, 데이터의 전송 레이트에 응하여, 통상의 전송 레이트로 데이터 통신을 행하는 SDR(Standard Data Rate) 모드, 및, SDR 모드보다도 높은 전송 레이트로 데이터 통신을 행하는 HDR(High Data Rate) 모드가 규정되어 있다. 또한, HDR 모드에서는, DDR(Double Data Rate) 모드, TSP(Ternary Symbol Pure-Bus) 모드, 및, TSL(Ternary Symbol Legacy-inclusive-Bus) 모드의 3개의 모드가 규격으로 정의되어 있다. 또한, 버스 IF(11)에서는, 통신을 시작할 때에는 SDR 모드로 통신을 행하는 것이 규정되어 있다.
마스터(12)는, 송수신부(21), 에러 검출부(22), 확인신호 검출부(23), 및 컨플릭트 회피부(24)를 구비하여 구성된다.
송수신부(21)는, 데이터 신호선(14-1) 및 클록 신호선(14-2)을 통하여, 슬레이브(13)와 신호의 송수신을 행한다. 예를 들면, 송수신부(21)는, 클록 신호선(14-2)을 구동함에 의해 송신하는 시리얼 클록의 타이밍에 맞추어서, 데이터 신호선(14-1)에 대한 구동을 행함(전위를 H레벨 또는 L레벨로 전환함)에 의해, 슬레이브(13)에 신호를 송신한다. 또한, 송수신부(21)는, 클록 신호선(14-2)의 시리얼 클록의 타이밍에 맞추어서, 슬레이브(13)가 데이터 신호선(14-1)에 대한 구동을 행함에 의해, 슬레이브(13)로부터 송신되어 오는 신호를 수신하다. 또한, 클록 신호선(14-2)에 대한 구동은, 항상, 마스터(12)측에 의해 행하여진다.
에러 검출부(22)는, 송수신부(21)가 수신한 신호에 발생하고 있는 에러를 검출한다. 예를 들면, 에러 검출부(22)는, 송수신부(21)가 수신한 신호에 대한 패리티 체크나 순회 용장 검사(CRC) 등을 행하거나, 슬레이브(13)로부터 마스터(12)에 송신권을 이행할 때에 발행되는 토큰을 확인하거나 함으로써, 에러를 검출할 수 있다. 그리고, 에러 검출부(22)는, 송수신부(21)가 수신한 신호에 에러가 발생하고 있는 것을 검출한 경우, 예를 들면, 송수신부(21)에 대해 슬레이브(13)와의 통신을 최초부터 다시 하도록 지시할 수 있다.
예를 들면, 에러 검출부(22)는, 슬레이브(13)로부터 송신되어 오는 데이터에 포함되어 있는 2비트의 패리티 중, 일방을 짝수 패리티로 하고, 타방을 홀수 패리티로 하여, 송수신부(21)가 수신한 데이터에 대한 패리티 체크를 행함으로써 에러의 발생을 검출한다. 이에 의해, 에러 검출부(22)는, 마스터(12) 및 슬레이브(13)의 어느 것도 데이터 신호선(14-1)에 대한 구동이 행하여지지 않는 상태가 발생하여도, 데이터가 올바른 것인지의 여부를 검출할 수 있다.
확인신호 검출부(23)는, 송수신부(21)로부터 송신된 신호를 수신한 슬레이브(13)로부터 송신되어 오는 ACK(수신 확인신호) 또는 NACK(비수신 확인신호)를 검출함에 의해, 슬레이브(13)가 커맨드나 데이터 등의 수신에 성공하였는지의 여부를 확인한다. 예를 들면, 버스 IF(11)에서는, 신호에 에러가 발생하지 않고, 슬레이브(13)가 커맨드나 데이터 등의 수신에 성공한 때에는, 슬레이브(13)로부터 마스터(12)에 ACK를 송신하도록 규정되어 있다. 또한, 버스 IF(11)에서는, 신호에 에러가 발생하여, 슬레이브(13)가 커맨드나 데이터 등의 수신에 실패한 때에는, 슬레이브(13)로부터 마스터(12)에 NACK를 송신하도록 규정되어 있다.
따라서 확인신호 검출부(23)는, 마스터(12)로부터 송신된 커맨드나 데이터 등에 대해, 슬레이브(13)로부터 송신되어 오는 ACK를 검출한 경우에는, 슬레이브(13)가 커맨드나 데이터 등을 수신하는데 성공하였다고 확인할 수 있다. 한편, 확인신호 검출부(23)는, 마스터(12)로부터 송신된 커맨드나 데이터 등에 대해, 슬레이브(13)로부터 송신되어 오는 NACK를 검출한 경우에는, 슬레이브(13)가 커맨드나 데이터 등을 수신하는데 실패하였다고 확인할 수 있다.
컨플릭트 회피부(24)는, 예를 들면, 도 5를 참조하여 후술하는 바와 같이, 확인신호 검출부(23)에 의해 NACK가 검출된 경우, NACK에 계속된 소정수의 비트를 무시한 후에, 통신을 도중에 차단할 것을 지시하는 어보트 신호를 송신하도록, 송수신부(21)에 대한 지시를 행한다. 이에 의해, 컨플릭트 회피부(24)는, 예를 들면, 슬레이브(13)로부터 송신되는 리드 데이터와, 마스터(12)로부터 송신되는 HDR 종료 커맨드에 의해 컨플릭트가 발생하는 것을 회피할 수 있다.
또한, 컨플릭트 회피부(24)는, 예를 들면, 도 7을 참조하여 후술하는 바와 같이, 토큰 및 CRC5에 의거하여 에러가 발생하고 있는 것을 검출한 때에, 프리앰블에 에러가 발생하고 있는 것이라고 추정하여, 소정수의 비트의 추가 클록을 송신한 후에 어보트 신호를 송신하도록, 송수신부(21)에 대한 지시를 행한다. 이에 의해, 컨플릭트 회피부(24)는, 예를 들면, 슬레이브(13)로부터 송신되는 리드 데이터와, 마스터(12)로부터 송신되는 HDR 종료 커맨드에 의해 컨플릭트가 발생하는 것을 회피할 수 있다.
슬레이브(13)는, 송수신부(31) 및 에러 검출부(32)를 구비하여 구성된다.
송수신부(31)는, 데이터 신호선(14-1) 및 클록 신호선(14-2)을 통하여, 마스터(12)와 신호의 송수신을 행한다. 예를 들면, 송수신부(31)는, 클록 신호선(14-2)의 시리얼 클록의 타이밍에 맞추어서, 마스터(12)가 데이터 신호선(14-1)에 대한 구동을 행함에 의해, 마스터(12)로부터 송신되어 오는 신호를 수신한다. 또한, 송수신부(31)는, 클록 신호선(14-2)의 시리얼 클록의 타이밍에 맞추어서, 데이터 신호선(14-1)에 대한 구동을 행함에 의해, 마스터(12)에 신호를 송신한다.
에러 검출부(32)는, 마스터(12)의 에러 검출부(22)와 마찬가지로, 송수신부(31)가 수신한 신호에 발생하고 있는 에러를 검출한다. 그리고, 에러 검출부(32)는, 송수신부(31)가 수신한 신호에 에러가 발생하지 않은 경우, 그 신호에 의해 전송된 커맨드나 데이터 등의 수신에 성공한 것을 전하는 ACK를, 송수신부(31)에 의해 마스터(12)에 송신시킨다. 한편, 에러 검출부(32)는, 송수신부(31)가 수신한 신호에 에러가 발생하고 있는 경우, 그 신호에 의해 전송된 커맨드나 데이터 등의 수신에 실패한 것을 전하는 NACK를, 송수신부(31)에 의해 마스터(12)에 송신시킨다.
또한, 에러 검출부(32)는, 예를 들면, 송수신부(31)가 수신한 신호에 에러가 발생하여, 정상적인 통신을 행할 수가 없는 경우에는, 그 후의 일체의 통신을 무시하고, 마스터(12)에 대한 응답을 정지하여 슬레이브(13)를 대기 상태로 만든다.
이상과 같이 버스 IF(11)는 구성되어 있고, 마스터(12) 및 슬레이브(13)는, 데이터 신호선(14-1) 및 클록 신호선(14-2)을 통하여 신호를 송수신할 수 있다. 그리고, 버스 IF(11)에서는, 마스터(12)가, 컨플릭트 회피부(24)에 의해 컨플릭트의 발생을 회피할 수 있다.
여기서, 버스 IF(11)에서는, DDR 모드시에 있어서, 예를 들면, 도 2에 도시하는 바와 같이, 프리앰블이라고 불리는 2비트의 신호를 사용하여, 다음에 송신하는 데이터의 타입을 지정하도록 규정되어 있다. 그런데, 프리앰블에는, 패리티나 CRC에 의한 에러 검출이 준비되어 있지 않기 때문에, 프리앰블에 에러가 발생한 경우에는, 그 에러를 검출할 수가 없다.
또한, 버스 IF(11)에서는, 리드 데이터에 계속된 프리앰블의 2비트째를, 마스터(12)가 항상 구동하도록 프리앰블이 정의된다. 이에 의해, 버스 IF(11)에서는, 예를 들면, 그 2비트째가 컨플릭트하는 것을 회피하여, 보다 확실하게 통신을 행할 수가 있다.
<프리앰블의 제1의 정의례>
도 2에는, 버스 IF(11)에서의 프리앰블의 제1의 정의례가 도시되어 있다. 이하에서 설명하는 바와 같이, 프리앰블은, 1비트째(pre[1]) 및 2비트째(pre[0])로 이루어지는 2비트의 신호에 의해 구성된다.
HDR 모드에 들어간 직후의 프리앰블의 1비트째 및 2비트째는, 마스터(12)에 의해 구동되고, 슬레이브(13)에 의해 수신된다.
그리고, HDR 모드에 들어간 직후의 프리앰블의 1비트째가 0인 때, 프리앰블에 계속해서 커맨드 워드가 송신되는 것이 지정된다. 또한, 이 1비트째가 1인 때의 의미는, 리저브되어 있다. 또한, HDR 모드에 들어간 직후의 프리앰블의 2비트째가 1인 때, 프리앰블에 계속해서 커맨드 워드가 송신되는 것이 지정된다. 또한, 이 2비트째가 0인 때의 의미는, 리저브되어 있다.
리드 커맨드의 직후의 프리앰블의 1비트째는, 마스터(12)에 의해 구동되고, 슬레이브(13)에 의해 수신된다. 또한, 리드 커맨드의 직후의 프리앰블의 2비트째는, 슬레이브(13)에 의해 구동되고, 마스터(12)에 의해 수신된다.
그리고, 리드 커맨드의 직후의 프리앰블의 1비트째가 1인 때, 프리앰블에 계속해서 데이터가 송신되는 것이 지정된다. 또한, 이 1비트째가 0인 때의 의미는, 리저브되어 있다. 또한, 리드 커맨드의 직후의 프리앰블의 2비트째가 0인 때, 슬레이브(13)에 의한 리드 커맨드의 수신이 성공한 것을 나타내는 ACK를 의미하고, 이 2비트째가 1인 때, 슬레이브(13)에 의한 리드 커맨드의 수신이 실패한 것을 나타내는 NACK를 의미한다.
여기서, 리드 커맨드의 직후의 프리앰블의 2비트째는, 마스터(12)에 의해 데이터 신호선(14-1)이 H레벨로 유지되는 것(High Keeper : weak pull up)이 필수로 되어 있다. 이에 의해, 데이터 신호선(14-1)이 H레벨로 유지되는 비트는, 마스터(12) 및 슬레이브(13)의 어느 것도 구동되지 않는 경우, 그 직전의 비트가 1인 경우에 한하여 1이 된다.
리드 데이터의 직후의 프리앰블의 1비트째는, 슬레이브(13)에 의해 구동되고, 마스터(12)에 의해 수신된다. 또한, 리드 데이터의 직후의 프리앰블의 2비트째는, 마스터(12)에 의해 항상 구동되고, 슬레이브(13)에 의해 수신됨과 함께, 슬레이브(13)에 의한 사용이 금지된다.
그리고, 리드 데이터의 직후의 프리앰블의 1비트째가 0인 때, 프리앰블에 계속해서 CRC 워드가 송신되고, 이 1비트째가 1인 때, 프리앰블에 계속해서 데이터가 송신되는 것이 지정된다. 또한, 리드 데이터의 직후의 프리앰블의 2비트째가 0인 때, 마스터(12)에 의해 통신이 도중에 차단(Master Aborts)되는 것을 의미하고, 이 2비트째가 1인 때, 마스터(12)에 의해 통신을 도중에 차단하지 않는 것(Master doesn't aborts)을 의미한다. 여기서, 리드 데이터의 직후의 프리앰블의 2비트째는, 마스터(12)에 의해 데이터 신호선(14-1)이 H레벨로 유지되지만, 이것은 필수가 아니고, 부정(否定) 회피 때문이다.
라이트 커맨드의 직후의 프리앰블의 1비트째 및 2비트째는, 마스터(12)에 의해 구동되고, 슬레이브(13)에 의해 수신된다.
그리고, 라이트 커맨드의 직후의 프리앰블의 1비트째가 1인 때, 라이트 커맨드에 계속해서 데이터가 송신되는 것이 지정된다. 또한, 이 1비트째가 0인 때의 의미는, 리저브되어 있다. 또한, 라이트 커맨드의 직후의 프리앰블의 2비트째가 0인 때, 라이트 커맨드에 계속해서 데이터가 송신되는 것이 지정된다. 또한, 이 1비트째가 1인 때의 의미는, 리저브되어 있다.
라이트 데이터의 직후의 프리앰블의 1비트째 및 2비트째는, 마스터(12)에 의해 구동되고, 슬레이브(13)에 의해 수신된다.
그리고, 라이트 데이터의 직후의 프리앰블의 1비트째가 0인 때, 프리앰블에 계속해서 CRC 워드가 송신되고, 이 1비트째가 1인 때, 프리앰블에 계속해서 데이터가 송신되는 것이 지정된다. 또한, 라이트 데이터의 직후의 프리앰블의 2비트째가 1인 때, CRC 워드 또는 데이터가 송신되는 것이 지정된다. 또한, 이 2비트째가 0인 때의 의미는, 리저브되어 있다.
이와 같이, 버스 IF(11)에서의 프리앰블이 정의되어 있다. 그리고, 예를 들면, 리드 데이터의 직후의 프리앰블의 2비트째가, 마스터(12)에 의해 항상 구동되도록 정의됨에 의해, 컨플릭트의 발생을 회피할 수 있다.
예를 들면, 가령, 리드 데이터의 직후의 프리앰블의 2비트째에 관해, CRC 워드를 전송할 때에는 슬레이브(13)가 구동하고, 그 이외는 마스터(12)가 구동하도록 규정하였다고 한다. 이 경우, 리드 데이터를 송신할 때의 프리앰블에 에러가 발생하여, 슬레이브(13)가, CRC 워드를 송신하려고 하였던 바, 마스터(12)가, 리드 데이터로 오인식한 때, 그 2비트째가 컨플릭트하는 것이 상정된다. 즉, 이 경우, 프리앰블의 1비트째를 마스터(12)가 오인식한 경우 등, 그 2비트째를 구동하는 주체가 다르기 때문에, 버스 IF(11)에서의 신호가 충돌하는 것이 발생할 우려가 있다. 또한, 이 경우, 슬레이브(13)가 CRC 워드를 송신하는 경우에는, 마스터(12)가 어보트 신호를 출력할 수 없는 것이 상정된다.
이에 대해, 버스 IF(11)에서는, 리드 데이터의 후에 송신되는 프리앰블의 2비트째를, 항상, 마스터(12)가 구동하도록 규정된다. 이에 의해, 예를 들면, 마스터(12)가, 어보트 신호를 출력할 때에 다음의 클록을 내지 않기 위해, 슬레이브(13)가 구동할 수 없는 상태가 되고, 버스 IF(11)가 컨플릭트하는 일은 발생하지 않는다. 또한, 상술한 바와 같이, 슬레이브(13)가 CRC 워드를 송신하는 경우에는, 마스터(12)가 어보트 신호를 출력할 수 없게 된 것도 회피되고, 슬레이브(13)가 CRC 워드를 송신하는 경우에도, 마스터(12)가 어보트 신호를 출력할 수 있다.
이와 같이, 버스 IF(11)에서는, 마스터(12)가, 슬레이브(13)로부터 판독되는 리드 데이터를 수신하고, 그 리드 데이터의 후에 송수신되는 프리앰블의 2비트째를 항상 구동함으로써, 그 2비트째가 컨플릭트하는 것을 회피하여, 보다 확실하게 통신을 행할 수가 있다.
도 3에는, 버스 IF(11)에서의 프리앰블의 제1의 정의례의 변형례가 도시되어 있다.
도 3에 도시하는 프리앰블에서는, 라이트 데이터의 후에 송신되는 프리앰블의 2비트째가, 도 2와 다른 것으로 되어 있다. 또한, 그 이외는, 도 2와 동일하고, 그들의 상세한 설명은 생략한다.
즉, 도 3에 도시하는 바와 같이, 라이트 데이터의 후에 송신되는 프리앰블의 2비트째가 0인 때, 그 프리앰블의 다음에 데이터가 송신되는 것이 지정된다. 또한, 라이트 데이터의 후에 송신되는 프리앰블의 2비트째가 1인 때, 그 프리앰블의 다음에 CRC 워드가 송신되는 것이 지정된다. 즉, 이 예에서는, 라이트 데이터의 후에 송신되는 프리앰블의 1비트째와 2비트째의 값이 반전하도록 정의된다. 예를 들면, 프리앰블의 1비트째가 0이고, 2비트째가 1인 때에 CRC 워드가 송신되고, 프리앰블의 1비트째가 1이고, 2비트째가 0인 때에 라이트 데이터가 송신된다고 정의된다.
또한, 다른 예로서, 예를 들면, CRC 워드가 송신될 때에는 프리앰블의 1비트째 및 2비트째에 0을 송신하고, 데이터가 송신될 때에는 프리앰블의 1비트째 및 2비트째에 1을 송신하여도 좋다. 즉, 마스터(12)가, 프리앰블의 1비트째 및 2비트째의 값을 반전시키는 일 없이, 2회 연속해서 같은 값을 보냄으로써, 프리앰블에 발생하는 1비트 에러를 검출할 수 있다. 단, 이 경우, 마스터(12) 및 슬레이브(13)의 어느 것도 데이터 신호선(14-1)에 대한 구동을 행하지 않는 상태와 구별하는 것이 곤란해짐에 의해, 도 3에 도시하는 바와 같이, 프리앰블의 1비트째와 2비트째의 값이 반전하고 있는 편이 바람직하다.
이와 같이, 버스 IF(11)에서, 라이트 데이터의 후에 송신되는 프리앰블의 2비트째를 정의함으로써 예를 들면, 프리앰블에 1비트 에러가 발생한 것을 슬레이브(13)가 용이하게 검출할 수 있다.
<HDR 모드에서의 통신에 관한 설명>
도 4에는, 리드 전송시에 있어서의 타이밍 차트가 도시되어 있다.
또한, 이하의 도면에서, 그레이의 해칭이 시행되어 있는 부분은, 슬레이브(13)에 의해 구동이 행하여지고 있는 것을 나타내고 있다. 또한, 세선의 사선의 해칭이 시행되어 있는 부분은, 슬레이브(13)에 의해 구동이 행하여지고, 마스터(12)에 의해 데이터 신호선(14-1)이 H레벨로 유지되는 것을 나타내고 있고, 태선의 사선의 해칭이 시행되어 있는 부분은, 구동이 행하여지지 않는 것 나타내고 있다.
도 4에 도시하는 바와 같이, 마스터(12)는, 우선, SDR 모드에서, 버스 IF(11)를 구성하는 모든 슬레이브(13)를 대상으로 하여 일제히 커맨드를 송신하는 것을 통지하는 브로드캐스트 커맨드(0x7E+R/W=0)를 송신한다. 그 후, 마스터(12)는, 브로드캐스트 커맨드의 수신이 성공한 것을 확인하기 위해 슬레이브(13)로부터 송신되어 오는 ACK를 수신하고, HDR 모드로 들어가기 위한 커먼 커맨드 코드(ENTHDR CCC(0x20))를 송신한다. 이와 같이, 마스터(12)는, 슬레이브(13)에 대해 HDR 모드로 들어가는 것을 통지하고 HDR 모드로 이행한다.
그 후, HDR 모드로 이행한 직후의 프리앰블의 1비트째 및 2비트째는, 마스터(12)에 의해 구동되고, 도 4의 예에서는, 프리앰블의 다음에 커맨드 워드(DDR command)를 송신하는 것이 지정(pre[1]:0, pre[0]:1)되어 있다. 그리고, 그 프리앰블에 계속해서, 마스터(12)에 의해 커맨드 워드(Command Code, Slave address, Reserved, Parity)가 송신된다.
또한, 커맨드 워드를 송신한 직후의 프리앰블에 관해서는, 1비트째는 마스터(12)에 의해 구동되고, 2비트째는 슬레이브(13)에 의해 구동된다. 도 4의 예에서는, 1비트째에 의해, 프리앰블의 다음에 데이터(DDR Data)를 송신하는 것이 지정(pre[1]:1)됨과 함께, 2비트째에 의해, 슬레이브(13)에서 커맨드의 수신에 성공한 것(pre[0]:0)가 나타나고 있다. 그리고, 그 프리앰블에 계속해서, 슬레이브(13)에 의해 리드 데이터(Data bit, Parity)가 송신된다.
계속해서, 리드 데이터를 송신한 직후의 프리앰블에 관해서는, 1비트째는 슬레이브(13)에 의해 구동되고, 2비트째는 마스터(12)에 의해 구동된다. 도 4의 예에서는, 1비트째에 의해, 프리앰블의 다음에 데이터(DDR Data)를 송신하는 것이 지정(pre[1]:1)되어 있다. 또한, 2비트째에 의해, 다음에 판독되는 데이터가 리드 데이터인지 CRC인지를 불문하고, 마스터(12)에 의해 어보트 신호(pre[1]:0) 또는 비어보트 신호(pre[1]:1)의 어느 하나가 송신되고, 마스터(12)가, 어보트 신호를 송신한 경우에는 통신이 차단되고, 비어보트 신호를 송신하는 경우에는 통신이 계속된다. 이 2비트째는, 상술한 바와 같이, 항상, 마스터(12)에 의해 구동된다.
그리고, 통신이 계속되는 경우, 이하, 마찬가지로, 리드 데이터의 송신이 반복해서 행하여지고, 슬레이브(13)는, 마스터(12)로부터 요구된 모든 데이터의 송신을 행한다.
그 후, 최후의 리드 데이터를 송신한 직후의 프리앰블의 1비트째에 의해, 프리앰블의 다음에 CRC 워드(DDRCRC)를 송신하는 것이 지정(pre[1]:0)된다. 또한, CRC 워드의 송신 직전의 프리앰블의 2비트째는, 슬레이브(13)에 의해 구동되는 것은 금지된다.
그리고, 그 프리앰블에 계속해서, 슬레이브(13)에 의해 CRC 워드(Token(0xC), CRC5)가 송신된 후, 마스터(12)에 의해 HDR 종료 커맨드(HDR Exit)가 송신되고, HDR 모드에서의 통신이 종료된다. 또한, HDR 종료 커맨드의 1비트째(세트 업)는 마스터(12)에 의해 출력된다. 또한, 도시하는 바와 같이, CRC 워드의 수신 직후의 비트로부터, 데이터 신호선(14-1)에 대한 구동이, 슬레이브(13)로부터 마스터(12)로 전환되도록 함으로써, 안전하게 빨리 통신을 종료시킬 수 있다.
이와 같이, 버스 IF(11)에서는, HDR 모드로 리드 전송이 행하여진다. 그리고, 버스 IF(11)에서는, 리드 데이터의 직후의 프리앰블의 2비트째를 항상, 마스터(12)가 구동함에 의해, 그 2비트째가 컨플릭트하는 것을 회피할 수 있다. 이에 의해, 버스 IF(11)에서는, 보다 확실하게 통신을 행할 수가 있다.
<프리앰블 에러의 설명>
도 5 내지 도 10을 참조하여, 프리앰블에 발생하는 에러와, 프리앰블에 에러가 발생한 때의 처리에 관해 설명한다.
도 5 및 도 6을 참조하여, 리드 커맨드에 계속해서 리드 데이터가 송신될 때의 프리앰블의 2비트째에, 비트의 값이 반전하는 1비트 에러가 발생하는 예에 관해 설명한다. 상술한 바와 같이, 리드 커맨드의 직후의 프리앰블의 2비트째는, 슬레이브(13)로부터 마스터(12)에 송신되는 ACK 또는 NACK를 나타낸다.
도 5에는, 리드 커맨드의 직후의 프리앰블에서, 슬레이브(13)로부터 송신되는 ACK에 1비트 에러가 발생하는 예가 도시되어 있다.
도 5의 좌측에 도시하는 바와 같이, 통상시에는, 슬레이브(13)가, 프리앰블의 2비트째를 0으로 구동함에 의해, 마스터(12)는 ACK가 송신되어 왔다고 인식한다. 이 경우, 마스터(12)는, ACK를 검출한 것에 응하여, 프리앰블에 계속해서 슬레이브(13)로부터 송신되어 오는 리드 데이터를 수신하는 처리를 행한다.
이에 대해, 에러시에는, 도 5의 우측에 도시하는 바와 같이, 프리앰블의 2비트째가 비트 반전하여 1이 되기 때문에, 마스터(12)는, NACK가 송신되어 온 것으로 오인식하여 버린다. 이 경우, 마스터(12)는, 프리앰블에 발생한 에러를 검출할 수는 없지만, NACK를 검출한 때의 통상의 처리를 행하여 통신을 종료시킬 수 있다. 즉, 마스터(12)는, 슬레이브(13)로부터 송신되어 오는 리드 데이터의 비트수에 대응하는 컨플릭트 방지 클록 기간이 경과한 후의 프리앰블의 2비트째를 0으로 구동하여, 슬레이브(13)에 어보트 신호를 송신한다.
이와 같이, 마스터(12)는, ACK를 NACK로 오인식하여도, 슬레이브(13)에 대해 통신이 차단하는 것을 정상적으로 통지할 수 있기 때문에, 그 오인식에 의거하여 컨플릭트가 발생하는 것은 회피된다. 그 후, 마스터(12)가, HDR 종료 커맨드를 송신함으로써, HDR 모드에서의 통신이 종료된다.
도 6에는, 리드 커맨드의 직후의 프리앰블에서, 슬레이브(13)로부터 송신되는 NACK에 1비트 에러가 발생하는 예가 도시되어 있다.
도 6의 좌측에 도시하는 바와 같이, 통상시에는, 슬레이브(13)가, 프리앰블의 2비트째를 1로 구동함에 의해, 마스터(12)는 NACK가 송신되어 왔다고 인식한다. 이 경우, 마스터(12)는, NACK를 검출한 것에 응하여, 리드 데이터의 비트수에 대응하는 컨플릭트 방지 클록 기간이 경과한 후의 프리앰블의 2비트째를 0으로 구동하여, 슬레이브(13)에 어보트 신호를 송신한다. 그 후, 마스터(12)가, HDR 종료 커맨드를 송신함으로써, HDR 모드에서의 통신이 종료된다.
이에 대해, 도 6의 우측에 도시하는 바와 같이, 에러시에는, 프리앰블의 2비트째가 비트 반전하여 0이 되기 때문에, 마스터(12)는, ACK가 송신되어 온 것으로 오인식하여 버린다. 이 경우, 마스터(12)는, 슬레이브(13)로부터 송신되어 오는 리드 데이터를 수신하는 처리를 행하지만, 슬레이브(13)가 리드 커맨드의 수신에 실패하고 있기 때문에, 리드 데이터가 송신되어 오는 일은 없다. 그때문에, 이 기간은, 마스터(12) 및 슬레이브(13)의 어느 것도 데이터 신호선(14-1)에 대한 구동을 행하지 않는 상태가 된다.
이때, 마스터(12)는, 리드 데이터가 송신된다고 오인식하고 있는 기간에서 수신한 신호에 대해 패리티 체크 등을 행함에 의해 에러를 검출하는 것, 즉, 리드 데이터가 정상적으로 송신되지 않는 것을 검출할 수 있다. 예를 들면, 리드 데이터에 포함되는 패리티에는, 리드 데이터가 송신된다고 마스터(12)에 의해 오인식되어 있는 기간에서, 데이터 신호선(14-1)에 대한 구동이 행하여지지 않는 때에 에러가 발생한 것을 검출할 수 있도록 정의되어 있다.
이 에러의 검출에 따라, 마스터(12)는, 리드 데이터가 송신된다고 오인식하고 있는 기간의 직후의 프리앰블의 2비트째를 0으로 구동하여, 슬레이브(13)에 어보트 신호를 송신한다. 그 후, 마스터(12)가, HDR 종료 커맨드를 송신함으로써, HDR 모드에서의 통신이 종료된다.
다음에, 도 7 및 도 8을 참조하여, 리드 데이터에 계속해서 리드 데이터가 송신될 때의 프리앰블의 1비트째에, 비트의 값이 반전하는 1비트 에러가 발생하는 예에 관해 설명한다. 상술한 바와 같이, 리드 데이터의 직후의 프리앰블의 1비트째는, 프리앰블에 계속해서 CRC 워드가 송신될 때 1로 구동되고, 프리앰블에 계속해서 리드 데이터가 송신될 때 0으로 구동된다.
도 7에는, 리드 데이터의 직후의 프리앰블의 1비트째가 1인 때에, 그 1비트째에 1비트 에러가 발생하는 제1의 예가 도시되어 있다.
도 7의 좌측에 도시하는 바와 같이, 통상시에는, 슬레이브(13)가, 프리앰블의 1비트째를 1로 구동함에 의해, 마스터(12)는, 프리앰블에 계속해서 리드 데이터가 송신되고 온다고 인식한다. 이 경우, 마스터(12)는, 그 리드 데이터를 수신하는 처리를 행한다.
이에 대해, 에러시에는, 도 7의 우측에 도시하는 바와 같이, 프리앰블의 1비트째가 비트 반전하여 0이 되기 때문에, 마스터(12)는, 프리앰블에 계속해서 CRC 워드가 송신되어 오는 것으로 오인식하여 버린다. 이 경우, 마스터(12)는, CRC 워드에 포함되는 토큰 및 CRC5에 의거하여 에러가 발생하고 있는 것을 검출할 수 있고, 프리앰블에 에러가 발생하고 있는 것이라고 추정한다.
따라서 이 경우, 마스터(12)는, 리드 데이터의 비트수(18비트)와, CRC 워드의 비트수(9비트)와의 차에 대응하는 비트수의 추가 클록(9비트)을 송신한 후의 프리앰블의 2비트째를 0으로 구동하여, 슬레이브(13)에 어보트 신호를 송신한다. 그 후, 마스터(12)가, HDR 종료 커맨드를 송신함으로써, HDR 모드에서의 통신이 종료된다.
도 8에는, 리드 데이터의 직후의 프리앰블의 1비트째가 1인 때에, 그 1비트째에 1비트 에러가 발생하는 제2의 예가 도시되어 있다.
도 8의 좌측에 도시하는 바와 같이, 슬레이브(13)가, 리드 데이터에 계속해서 리드 데이터를 송신하려고 하는 한편으로, 마스터(12)가, 어보트 신호를 송신하여, 통신을 도중에 차단하는 일이 있다.
이때, 도 7의 우측에 도시하는 바와 같이, 리드 데이터의 직후의 프리앰블의 1비트째에 1비트 에러가 발생하면, 마스터(12)는, 프리앰블에 계속해서 리드 데이터가 송신되어 온다고 오인식한다. 이때, 마스터(12)는, 그 프리앰블의 2비트째로 어보트 신호를 송신하기 때문에, 그들의 오인식이 있었다고 하더라도, 문제가 발생하는 일 없이, HDR 모드에서의 통신이 종료된다.
다음에, 도 9 및 도 10을 참조하여, 리드 데이터에 계속해서 CRC 워드가 송신될 때의 프리앰블의 1비트째에, 비트의 값이 반전하는 1비트 에러가 발생하는 예에 관해 설명한다. 상술한 바와 같이, 리드 데이터의 직후의 프리앰블의 1비트째는, 프리앰블에 계속해서 CRC 워드가 송신될 때 1로 구동되고, 프리앰블에 계속해서 리드 데이터가 송신될 때 0으로 구동된다.
도 9에는, 리드 데이터의 직후의 프리앰블의 1비트째가 0인 때에, 그 1비트째에 1비트 에러가 발생하는 제1의 예가 도시되어 있다.
도 9의 좌측에 도시하는 바와 같이, 통상시에는, 슬레이브(13)가, 프리앰블의 1비트째를 0으로 구동함에 의해, 마스터(12)는, 프리앰블에 계속해서 CRC 워드가 송신되고 온다고 인식한다. 이 경우, 마스터(12)는, 그 CRC 워드를 수신하는 처리를 행하고, 그 후에 HDR 종료 커맨드를 송신한다.
이에 대해, 에러시에는, 도 9의 우측에 도시하는 바와 같이, 프리앰블의 1비트째가 비트 반전하여 1이 되기 때문에, 마스터(12)는, 프리앰블에 계속해서 리드 데이터가 송신되어 오는 것으로 오인식하여 버린다. 이 경우, 리드 데이터가 송신된다고 마스터(12)에서 오인식되고 있는 기간 중의, 토큰 및 CRC를 수신한 후의 기간은, 데이터 신호선(14-1)에 대한 구동이 행하여지지 않는 상태가 된다. 따라서, 마스터(12)는, 리드 데이터가 송신된다고 오인식하고 있는 기간에서 수신한 신호에 대한 패리티 체크를 행함에 의해 에러를 검출하는 것, 즉, 리드 데이터가 정상적으로 송신되지 않는 것을 검출할 수 있다.
이 에러의 검출에 따라, 마스터(12)는, 리드 데이터가 송신된다고 오인식하고 있는 기간의 직후의 프리앰블의 2비트째를 0으로 구동하여, 슬레이브(13)에 어보트 신호를 송신한다. 그 후, 마스터(12)가, HDR 종료 커맨드를 송신함으로써, HDR 모드에서의 통신이 종료된다.
도 10에는, 리드 데이터의 직후의 프리앰블의 1비트째가 0인 때에, 그 1비트째에 1비트 에러가 발생하는 제2의 예가 도시되어 있다.
도 10의 좌측에 도시하는 바와 같이, 슬레이브(13)가, 리드 데이터에 계속해서 CRC 워드를 송신하려고 하는 한편으로, 마스터(12)가, 어보트 신호를 송신하여, 통신을 도중에 차단하는 일이 있다.
이때, 도 10의 우측에 도시하는 바와 같이, 리드 데이터의 직후의 프리앰블의 1비트째에 1비트 에러가 발생하면, 마스터(12)는, 프리앰블에 계속해서 리드 데이터가 송신되어 온다고 오인식한다. 이때, 마스터(12)는, 그 프리앰블의 2비트째에서 어보트 신호를 송신하기 때문에, 그들의 오인식이 있었다고 하더라도, 문제가 발생하는 일 없이, HDR 모드에서의 통신이 종료된다.
이상과 같이, 버스 IF(11)에서는, 프리앰블에 대한 에러 검출이 준비되어 있지 않아도, 마스터(12)에 의해, 버스 IF(11)가 데드 로크하는 것을 회피할 수 있고, 보다 확실하게 통신을 행할 수가 있다.
<컨플릭트의 발생을 회피하는 통신 방법>
도 11은, 마스터(12)가, HDR 모드의 하나인 DDR 모드로 슬레이브(13)로부터 데이터를 판독하는 통신 처리(DDR Read)를 설명하는 플로우 차트이다.
스텝 S11에서, 마스터(12)는, 통신을 SDR 모드로부터 HDR 모드로 전환하는 처리를 행한다. 구체적으로는, 마스터(12)에서는, 송수신부(21)가, 데이터 신호선(14-1) 및 클록 신호선(14-2)을 구동하여, SDR 모드에서, 버스 IF(11)를 구성하는 모든 슬레이브(13)를 대상으로 하여 일제히 커맨드를 송신하는 것을 통지하는 브로드캐스트 커맨드(0x7E+R/W=0)를 송신한다. 그 후, 마스터(12)에서는, 확인신호 검출부(23)가, 브로드캐스트 커맨드의 수신이 성공한 것을 확인하기 위해 슬레이브(13)로부터 송신되어 오는 ACK를 수신하면, 송수신부(21)가, HDR 모드로 들어가기 위한 커먼 커맨드 코드(ENTHDR CCC(0x20))를 송신한다.
스텝 S12에서, 마스터(12)의 송수신부(21)는, 데이터 신호선(14-1) 및 클록 신호선(14-2)을 구동하여, 리드 커맨드를 송신한다.
스텝 S13에서, 확인신호 검출부(23)는, 리드 커맨드를 송신한 후의 프리앰블의 2비트째의 값을 검출하고, 슬레이브(13)로부터 ACK 및 NACK의 어느 것이 송신되어 왔는지를 판정한다. 즉, 확인신호 검출부(23)는, 리드 커맨드를 송신한 후의 프리앰블의 2비트째가 0인 것을 검출한 경우, 슬레이브(13)로부터 ACK가 송신되어 왔다고 판정한다. 한편, 확인신호 검출부(23)는, 리드 커맨드를 송신한 후의 프리앰블의 2비트째가 1인 것을 검출한 경우, 슬레이브(13)로부터 NACK가 송신되어 왔다고 판정한다.
스텝 S13에서, 확인신호 검출부(23)가, 슬레이브(13)로부터 ACK가 송신되어 왔다고 판정한 경우, 처리는 스텝 S14로 진행하고, 송수신부(21)는, 프리앰블에 계속해서 송신되어 오는 리드 데이터를 수신한다. 또한, 송수신부(21)는, 리드 데이터에 계속해서 송신되어 오는 프리앰블의 1비트째를 수신한다.
스텝 S15에서, 마스터(12)는, 통신을 계속하는지의 여부를 판정한다. 예를 들면, 마스터(12)는, 다음의 리드 데이터 또는 CRC 워드가 불필요하다라고 판단한 경우, 통신을 계속하지 않는다고 판정할 수 있다.
스텝 S15에서, 마스터(12)가 통신을 계속하지 않는다고 판정한 경우, 처리는 스텝 S16로 진행하고, 송수신부(21)는, 통신을 도중에 차단할 것을 지시하는 어보트 신호(pre[1]:0)를 프리앰블의 2비트째로 송신한다. 그 후, 처리는 스텝 S21로 진행하고, 송수신부(21)는, 어보트 신호에 계속해서, HDR 종료 커맨드를 송신한다. 한편, 스텝 S15에서, 마스터(12)가 통신을 계속한다고 판정한 경우, 송수신부(21)는, 통신을 도중에 차단하지 않는 것을 지시하는 비어보트 신호(pre[1]:1)를 프리앰블의 2비트째로 송신하고, 처리는 스텝 S17로 진행한다.
스텝 S17에서, 송수신부(21)는, 스텝 S14에서 수신한 프리앰블의 1비트째에 의거하여, 리드 데이터 및 CRC 워드의 어느 것의 송신을 지정하고 있는지를 판정한다.
스텝 S17에서, 송수신부(21)가, 프리앰블은 리드 데이터의 송신을 지정하고 있다고 판정한 경우, 처리는 스텝 S14로 되돌아와, 이하, 같은 처리가 반복된다. 한편, 스텝 S17에서, 송수신부(21)가, 프리앰블은 CRC 워드의 송신을 지정하고 있다고 판정한 경우, 처리는 스텝 S18로 진행한다.
스텝 S18에서, 송수신부(21)는, 스텝 S13에서 수신한 프리앰블에 계속해서 송신되어 오는 신호를 수신하고, 에러 검출부(22)는, 그 신호에 에러가 발생하고 있는지의 여부를 판정한다.
스텝 S18에서, 에러 검출부(22)가, CRC 워드의 송신을 지정하고 있는 프리앰블에 계속해서 송신되어 오는 신호에 에러가 발생하고 있다고 판정한 경우, 처리는 스텝 S19로 진행한다. 즉, 이 경우, 에러 검출부(22)에 의해 토큰 에러 또는 CRC 에러가 검출되면, 컨플릭트 회피부(24)는, 프리앰블에 에러가 발생한 것으로 추정한다.
스텝 S19에서, 에러 검출부(22)는, 도 7을 참조하여 설명한 바와 같은 추가 클록을 송신하고, 그 후에, 통신을 도중에 차단할 것을 지시하는 어보트 신호를 송신하도록, 송수신부(21)에 대한 지시를 행한다. 이에 따라, 송수신부(21)는, 추가 클록을 송신한 후, 슬레이브(13)에 어보트 신호를 송신한다. 그 후, 처리는 스텝 S21로 진행하고, 송수신부(21)는, 어보트 신호에 계속해서, HDR 종료 커맨드를 송신한다.
한편, 스텝 S18에서, 에러 검출부(22)가, CRC 워드의 송신을 지정하고 있는 프리앰블에 계속해서 송신되어 오는 신호에 에러가 발생하지 않았다고 판정한 경우도, 스텝 S21에서, 송수신부(21)는, HDR 종료 커맨드를 송신한다.
한편, 스텝 S13에서, 확인신호 검출부(23)가, 슬레이브(13)로부터 NACK가 송신되어 왔다고 판정한 경우, 처리는 스텝 S20으로 진행한다. 스텝 S20에서, 컨플릭트 회피부(24)는, 리드 데이터의 비트수에 대응하는 컨플릭트 방지 클록 기간이 경과한 후에, 통신을 도중에 차단할 것을 지시하는 어보트 신호를 송신하도록, 송수신부(21)에 대한 지시를 행한다. 이에 따라, 도 6을 참조하여 상술한 바와 같이, 송수신부(21)는, 슬레이브(13)에 어보트 신호를 송신한다. 그 후, 처리는 스텝 S21로 진행하고, 송수신부(21)는, 어보트 신호에 계속해서, HDR 종료 커맨드를 송신한다.
이에 의해, 마스터(12)가 DDR 모드로 슬레이브(13)로부터 데이터를 판독하는 통신 처리(DDR Read)는 종료된다.
이상과 같이, 버스 IF(11)에서는, 리드 데이터의 직후의 프리앰블의 2비트째를 항상, 마스터(12)가 구동함에 의해, 그 2비트째가 컨플릭트하는 것을 회피할 수 있다. 또한, 버스 IF(11)에서는, 마스터(12)가 NACK를 수신하였다고 판정한 경우, 그 NACK가 ACK의 1비트 에러였다고 하여도, 컨플릭트의 발생을 회피할 수 있다. 또한, 버스 IF(11)에서는, 슬레이브(13)가 CRC 워드의 송신을 지정하는 프리앰블에 1비트 에러가 발생하여도, 마스터(12)에서 CRC 워드에 의거한 에러 검출에 의해 프리앰블에 에러가 발생하였다고 추정할 수 있고, 컨플릭트의 발생을 회피할 수 있다.
따라서 버스 IF(11)에서는, 프리앰블에 에러 검출이 준비되어 있지 않아도, 프리앰블에 에러가 발생함에 의한 컨플릭트을 회피하여, 보다 확실하게 통신을 행할 수가 있다.
<프리앰블의 제2의 정의례>
도 12에는, 버스 IF(11)에서의 프리앰블의 제2의 정의례가 도시되어 있다.
또한, 버스 IF(11)에서는, 프리앰블에 대해 용장성을 주기 위해, 프리앰블의 1비트 전(前)에 프레퍼레이션 비트(ppr)를 송신하도록 정의되어 있다. 도 12에는, 프레퍼레이션 비트의 정의례도 도시되어 있다.
HDR 모드에 들어간 직후의 프리앰블의 1비트 전에서는, 프레퍼레이션 비트를 송신하지 않도록 정의된다. 또한, HDR 모드에 들어간 직후의 프리앰블은, 도 2와 마찬가지로 정의되어 있다.
리드 커맨드의 직후의 프리앰블의 1비트 전의 프레퍼레이션 비트는, 마스터(12)에 의해 구동되고, 슬레이브(13)에 의해 수신된다. 그리고, 이 프레퍼레이션 비트가 1인 때, 프리앰블에 계속해서 데이터가 송신되는 것이 지정된다. 또한, 이 프레퍼레이션 비트가 0인 때의 의미는, 리저브되어 있다.
또한, 리드 커맨드의 직후의 프리앰블은, 1비트째는 슬레이브(13)에 의해 구동되고, 마스터(12)에 의해 수신된다. 그리고, 이 1비트째가 0인 때, 슬레이브(13)에 의한 리드 커맨드의 수신이 성공한 것을 나타내는 ACK를 의미하고, 이 1비트째가 1인 때, 슬레이브(13)에 의한 리드 커맨드의 수신이 실패한 것을 나타내는 NACK를 의미한다. 여기서, 리드 커맨드의 직후의 프리앰블의 1비트째는, 마스터(12)에 의해 데이터 신호선(14-1)이 H레벨로 유지되는 것이 필수로 되어 있다. 즉, 리드 커맨드의 직후의 프리앰블의 1비트째는, 그 2비트째와 동일하게 되도록 정의되어 있다.
리드 데이터의 직후의 프리앰블의 1비트 전의 프레퍼레이션 비트는, 슬레이브(13)에 의해 구동되고, 마스터(12)에 의해 수신된다. 그리고, 이 프레퍼레이션 비트가 0인 때, 리드 데이터에 계속해서 CRC 워드가 송신되는 것이 지정되고, 이 프레퍼레이션 비트가 1인 때, 리드 데이터에 계속해서 데이터가 송신되는 것이 지정된다. 또한, 리드 데이터의 직후의 프리앰블은, 도 2와 마찬가지로 정의되어 있다.
라이트 커맨드의 직후의 프리앰블의 1비트 전의 프레퍼레이션 비트는, 마스터(12)에 의해 구동되고, 슬레이브(13)에 의해 수신된다. 그리고, 이 프레퍼레이션 비트가 1인 때, 라이트 커맨드에 계속해서 데이터가 송신되는 것이 지정되고, 이 프레퍼레이션 비트가 0인 때의 의미는, 리저브되어 있다. 또한, 라이트 커맨드의 직후의 프리앰블은, 도 2와 마찬가지로 정의되어 있다.
라이트 데이터의 직후의 프리앰블의 1비트 전의 프레퍼레이션 비트는, 마스터(12)에 의해 구동되고, 슬레이브(13)에 의해 수신된다. 그리고, 이 프레퍼레이션 비트가 0인 때, 라이트 데이터에 계속해서 CRC 워드가 송신되는 것이 지정되고, 이 프레퍼레이션 비트가 1인 때, 라이트 데이터에 계속해서 데이터가 송신되는 것이 지정된다. 또한, 라이트 데이터의 직후의 프리앰블은, 도 2와 마찬가지로 정의되어 있다.
도 12에 도시하는 바와 같은 프레퍼레이션 비트를 이용함으로써, 프리앰블에 발생하는 에러를 검출 가능하게 할 수 있다.
예를 들면, 프리앰블에 에러가 발생하여, 마스터(12) 및 슬레이브(13)의 어느 것도 버스 IF(11)를 구동하지 않는 경우에, 패리티 에러를 검출하는 것이 필요해지는데, 우연히, 패리티가 정해(正解)되어 버릴 가능성이 있다. 그래서, 이와 같은 우연히 일치할 가능성을 배제하고, 프리앰블에 에러가 발생한 경우에는, 마스터(12)가 확실하게 마스터 어보트할 수 있도록, 2비트의 패리티를 1비트로 변경하고, 그 1비트에 프레퍼레이션 비트를 이용하도록 함으로써, 프리앰블에 발생하는 에러를 검출할 수 있다. 구체적으로는, 커맨드 및 데이터의 패리티를 1비트 삭제하고, 도 12에 도시한 바와 같은 프레퍼레이션 비트를 정의한다.
예를 들면, 상술한 바와 같이, 리드 데이터의 후의 프레퍼레이션 비트와, 프리앰블의 1비트째의 1비트를 이용하여, 그 프리앰블에 계속해서, 리드 데이터 및 CRC 워드의 어느 것이 송신되는지가 명시된다. 이에 의해, 프리앰블 에러를 검지할 수 있다.
또한, 리드 데이터에 계속된 프리앰블의 2비트째를, 마스터(12)가 항상 구동하도록 함으로써, 마스터 어보트할 때에 마스터(12)가 다음의 클록을 출력하지 않기 위해, 슬레이브(13)가 구동할 수 없는 상태가 되고, 컨플릭트의 발생을 회피할 수 있다.
또한, 리드 커맨드에 계속된 프리앰블의 1비트째 및 2비트째에서, 동일한 비트를 2회 송신함으로써, ACK 또는 NACK에 발생하는 에러를 검출 가능하게 할 수 있다. 이에 의해서도, 마스터(12) 및 슬레이브(13)의 어느 것도 구동하지 않는 구간이 발생하는 것을 회피할 수 있고, 패리티 에러가 우연히 일치하는 것을 회피하여, 마스터(12)에 의해 마스터 어보트를 행할 수가 있다. 이 경우의 프레퍼레이션 비트는, 마스터(12)에 의해 H레벨로 유지되도록, 1로 달아올리기 위해 사용된다.
<HDR 모드에서의 통신에 관한 설명>
도 13에는, 리드 전송시에 있어서의 타이밍 차트가 도시되어 있다. 여기서, 도 13에서는, 도 4에 도시한 타이밍 차트와 다른 점에 관해 설명한다.
예를 들면, 도 4의 타이밍 차트에서는, 커맨드 워드(DDR command)의 최후의 2비트가 패리티였음에 대해, 도 13의 타이밍 차트에서는, 그 2비트 중, 1비트째가 패리티로 되어 있고, 2비트째가 프레퍼레이션 비트로 되어 있다. 마찬가지로, 도 4의 타이밍 차트에서는, 리드 데이터(DDR Data)의 최후의 2비트가 패리티였음에 대해, 도 13의 타이밍 차트에서는, 그 2비트 중, 1비트째가 패리티로 되어 있고, 2비트째가 프레퍼레이션 비트로 되어 있다.
이와 같이, 예를 들면, 리드 커맨드에 계속해서 리드 데이터가 송신되는 경우, 리드 커맨드에 계속된 프리앰블은, 같은 값이 2회 송신된다. 또한, 리드 데이터에 계속해서 리드 데이터가 송신되는 경우, 리드 데이터의 최후의 프레퍼레이션 비트와, 리드 데이터에 계속된 프리앰블의 1비트째에서, 같은 값이 2회 송신된다. 또한, 리드 데이터에 계속해서 CRC 워드가 송신되는 경우, 리드 데이터의 최후의 프레퍼레이션 비트와, 리드 데이터에 계속된 프리앰블의 1비트째에서, 같은 값이 2회 송신된다.
이와 같이, 버스 IF(11)에서는, 프레퍼레이션 비트를 이용함으로써, 같은 비트를 2회 전송할 수 있고, 용장화를 도모할 수 있음에 의해, 프리앰블에 발생하는 에러를 검출할 수 있다.
<프레퍼레이션 비트 및 프리앰블의 에러의 설명>
도 14 내지 도 16을 참조하여, 프레퍼레이션 비트 및 프리앰블에 발생하는 에러에 관해 설명한다.
도 14에는, 리드 커맨드에 계속해서 리드 데이터가 송신될 때의 프레퍼레이션 비트 및 프리앰블에 1비트 에러가 발생하는 예가 도시되어 있다. 상술한 바와 같이, 리드 커맨드의 직후의 프리앰블의 2비트째는, 슬레이브(13)로부터 마스터(12)에 송신되는 ACK 또는 NACK를 나타낸다.
도 14의 좌측에 도시하는 바와 같이, 슬레이브(13)가 ACK를 송신할 때에는, 프레퍼레이션 비트는 1로 구동되고, 프리앰블의 1비트째 및 2비트째는 0으로 구동(ppr:1, pre[1]:0, pre[0], 0)된다.
또한, 도 14의 중앙에 도시하는 바와 같이, 슬레이브(13)가 NACK를 송신할 때에는, 프레퍼레이션 비트는 1로 구동되고, 프리앰블의 1비트째 및 2비트째는 1로 구동(ppr:1, pre[1]:1, pre[0], 1)된다. 또한, 도 14에는, 마스터(12)가 NACK를 검출한 후에, 충돌 방지용의 클록을 1비트 삽입한 후에, HDR 종료 커맨드(HDR Exit)를 송신하는 예가 도시되어 있다. 또한, 마스터(12)는, 이와 같은 충돌 방지용의 클록을 삽입하지 않고, NACK를 검출한 직후에 HDR 종료 커맨드를 송신하여도 좋다.
이와 같이, 프레퍼레이션 비트 및 프리앰블의 3비트의 조합은, (ppr:1, pre[1]:0, pre[0], 0) 또는 (ppr:1, pre[1]:1, pre[0], 1)의 어느 하나밖에 취할 수가 없기 때문에, 도 14의 우측에 도시하는 바와 같이 에러가 발생한 때, 마스터(12)는, 1비트 에러의 발생을 반드시 검출할 수 있다. 그리고, 마스터(12)는, 에러를 검출한 때, 컨플릭트의 발생을 회피하기 위해, 추가 클록을 송신하여 리드 데이터에 일시적으로 천이하고(수신 데이터는 전부 무시한다), 그 후, 마스터 어보트 처리를 행한다.
도 15에는, 리드 데이터에 계속해서 리드 데이터가 송신될 때의 프레퍼레이션 비트 및 프리앰블에 1비트 에러가 발생하는 예가 도시되어 있다.
도 15의 좌측에 도시하는 바와 같이, 리드 데이터에 계속해서 리드 데이터를 송신할 때, 프레퍼레이션 비트 및 프리앰블의 1비트째는 1로 구동(ppr:1, pre[1]:1)된다. 또한, 프리앰블의 2비트째는, 마스터(12)에 의해 1 또는 0의 어느 하나로 구동되지만, 마스터(12)가 마스터 어보트하지 않는 경우는, 이 2비트째는 구동되지 않고, 슬레이브(13)는, 이 값을 참조하지 않는다.
도 15의 중앙에 도시하는 바와 같이, 마스터(12)는, 마스터 어보트할 때, 프리앰블의 2비트째를 0으로 구동한다. 이때, 이 2비트째를 슬레이브(13)가 구동하는 일은 없기 때문에, 컨플릭트가 발생하는 일 없이, 마스터(12)는, 안전하게 처리를 중단할 수 있다.
그리고, 프레퍼레이션 비트 및 프리앰블의 1비트째의 2비트의 조합은, (ppr:1, pre[1]:1) 또는 (ppr:0, pre[1]:0)의 어느 하나밖에 취할 수가 없기 때문에, 도 15의 우측에 도시하는 바와 같이 에러가 발생한 때, 마스터(12)는, 1비트 에러의 발생을 반드시 검출할 수 있다. 그리고, 마스터(12)는, 에러를 검출한 때, 마스터 어보트 처리를 행한다.
도 16에는, 리드 데이터에 계속해서 CRC 워드가 송신될 때의 프레퍼레이션 비트 및 프리앰블에 1비트 에러가 발생하는 예가 도시되어 있다.
도 16의 좌측에 도시하는 바와 같이, 리드 데이터에 계속해서 CRC 워드를 송신할 때, 프레퍼레이션 비트 및 프리앰블의 1비트째는 0으로 구동(ppr:0, pre[1]:0)된다. 또한, 프리앰블의 2비트째는, 마스터(12)에 의해 1 또는 0의 어느 하나로 구동되지만, 마스터(12)가 마스터 어보트하지 않는 경우는, 이 2비트째는 구동되지 않고, 슬레이브(13)는, 이 값을 참조하지 않는다.
도 16의 중앙에 도시하는 바와 같이, 마스터(12)는, 마스터 어보트할 때, 프리앰블의 2비트째를 0으로 구동한다. 이때, 이 2비트째를 슬레이브(13)가 구동하는 일은 없기 때문에, 컨플릭트가 발생하는 일 없이, 마스터(12)는, 안전하게 처리를 중단할 수 있다.
그리고, 프레퍼레이션 비트 및 프리앰블의 1비트째의 2비트의 조합은, (ppr:1, pre[1]:1) 또는 (ppr:0, pre[1]:0)의 어느 하나밖에 취할 수가 없기 때문에, 도 16의 우측에 도시하는 바와 같이 에러가 발생한 때, 마스터(12)는, 1비트 에러의 발생을 반드시 검출할 수 있다. 그리고, 마스터(12)는, 에러를 검출한 때, 마스터 어보트 처리를 행한다.
도 14 내지 도 16에 도시한 바와 같이, 컨플릭트의 발생을 회피하여, 버스 IF(11)가 데드 로크하는 일 없이, 보다 확실하게 통신을 행할 수가 있다.
또한, 본 기술은, I3C의 규격에 따른 버스 IF(11)로 한정되는 일은 없고, 기타의 규격에 따른 버스 IF(11)에 적용할 수 있다. 또한, 도 1에 도시하는 버스 IF(11)에서는, 슬레이브(13-1 내지 13-3)가 접속된 구성례가 도시되어 있지만, 슬레이브(13)는, 예를 들면, 1대 또는 2대라도 좋고, 또는, 3대 이상이라도 좋다.
또한, 상술의 플로우 차트를 참조하여 설명한 각 처리는, 반드시 플로우 차트로서 기재된 순서에 따라 시계열로 처리할 필요는 없고, 병렬적 또는 개별적으로 실행되는 처리(예를 들면, 병렬 처리 또는 오브젝트에 의한 처리)도 포함하는 것이다. 또한, 프로그램은, 하나 CPU에 의해 처리되는 것이라도 좋고, 복수의 CPU에 의해 분산 처리되는 것이라도 좋다.
또한, 본 명세서에서, 시스템이란, 복수의 장치에 의해 구성되는 장치 전체를 나타내는 것이다.
또한, 상술한 일련의 처리는, 하드웨어에 의해 실행할 수도 있고, 소프트웨어에 의해 실행할 수도 있다. 일련의 처리를 소프트웨어에 의해 실행하는 경우에는, 그 소프트웨어를 구성하는 프로그램이, 전용의 하드웨어에 조립되어 있는 컴퓨터, 또는, 각종의 프로그램을 인스톨함으로써, 각종의 기능을 실행하는 것이 가능하다, 예를 들면 범용의 퍼스널 컴퓨터 등에, 프로그램이 기록된 프로그램 기록 매체로부터 인스톨된다.
<하드웨어의 구성례>
도 17은, 상술한 일련의 처리를 프로그램에 의해 실행하는 컴퓨터의 하드웨어의 구성례를 도시하는 블록도이다.
컴퓨터에서, CPU(Central Processing Unit)(101), ROM(Read Only Memory)(102), RAM(Random Access Memory)(103), 및 EEPROM(Electronically Erasable and Programmable Read Only Memory)(104)은, 버스(105)에 의해 상호 접속되어 있다. 버스(105)에는, 또한, 입출력 인터페이스(106)가 접속되어 있고, 입출력 인터페이스(106)가 외부(예를 들면, 도 1의 데이터 신호선(14-1) 및 클록 신호선(14-2))에 접속된다.
이상과 같이 구성된 컴퓨터에서는, CPU(101)가, 예를 들면, ROM(102) 및 EEPROM(104)에 기억되어 있는 프로그램을, 버스(105)를 통하여 RAM(103)에 로드하여 실행함에 의해, 상술한 일련의 처리가 행하여진다. 또한, 컴퓨터(CPU(101))가 실행하는 프로그램은, ROM(102)에 미리 기록하여 두는 외에, 입출력 인터페이스(106)를 통하여 외부로부터 EEPROM(104)에 인스톨하거나, 갱신하거나 할 수 있다.
또한, 본 기술은 이하와 같은 구성도 취할 수 있다.
(1)
다른 통신 장치와 신호의 송수신을 행하는 송수신부를 구비하고,
상기 송수신부는,
상기 다른 통신 장치로부터 판독되는 리드 데이터를 수신하고,
상기 리드 데이터의 후에 송수신되는 프리앰블의 2비트째에 대한 구동을 항상 행하는 통신 장치.
(2)
상기 송수신부는, 상기 프리앰블의 2비트째에 의해, 다음에 판독되는 데이터가 리드 데이터인지 CRC(Cyclic Redundancy Check)인지를 불문하고, 상기 다른 통신 장치에 대해 통신을 도중에 차단하는 것, 또는, 통신의 차단을 행하지 않는 것을 통지하는 상기 (1)에 기재된 통신 장치.
(3)
상기 송수신부는,
상기 다른 통신 장치에 대해 기록되는 라이트 데이터를 송신하고,
상기 라이트 데이터의 후에 상기 다른 통신 장치에 송신하는 프리앰블의 1비트째의 값과 2비트째의 값이 반전하도록 구동하는 상기 (1) 또는 (2)에 기재된 통신 장치.
(4)
상기 송수신부는,
상기 다른 통신 장치에 대해 기록되는 라이트 데이터를 송신하고,
상기 라이트 데이터의 후에 상기 다른 통신 장치에 송신하는 프리앰블의 1비트째의 값과 2비트째의 값으로 2회 같은 값을 송신하도록 구동하는 상기 (1) 또는 (2)에 기재된 통신 장치.
(5)
상기 송수신부는, 상기 프리앰블에 의해, 그 프리앰블에 계속해서 CRC(Cyclic Redundancy Check) 및 데이터의 어느 것을 송신하는지를 지정하는 상기 (1)부터 (4)의 어느 하나에 기재된 통신 장치.
(6)
상기 송수신부는, 상기 프리앰블에 대해 용장성을 갖게 하기 위한 1비트의 프레퍼레이션 비트를 송신하는 상기 (1)부터 (5)의 어느 하나에 기재된 통신 장치.
(7)
상기 송수신부는, 상기 프레퍼레이션 비트의 2비트 및 상기 프리앰블의 1비트를 이용하여, 동일한 신호를 2회 송신하는 상기 (6)에 기재된 통신 장치.
(8)
상기 송수신부에 의해, 다음에 송신하는 데이터의 타입을 지정하는 프리앰블이 수신되고, 그 프리앰블에 계속해서 수신된 신호의 비트열과, 상기 프리앰블에 의해 송신되는 것이 지정된 타입에서 송신되어야 할 비트열을 비교함에 의해, 에러의 발생을 검출하는 에러 검출부와,
상기 에러 검출부에 의해 에러의 발생이 검출된 경우, 상기 프리앰블에 계속해서 소정 비트수에 응한 클록을 송신한 후에, 통신을 도중에 차단할 것을 지시하는 어보트 신호를 송신하도록, 상기 송수신부에 대한 지시를 행하는 컨플릭트 회피부를 또한 구비하는 상기 (1)부터 (7)의 어느 하나에 기재된 통신 장치.
(9)
상기 송수신부로부터 송신된 신호를 수신한 상기 다른 통신 장치로부터 송신되어 오는 수신 확인신호 및 비수신 확인신호의 어느 하나를 검출하는 확인신호 검출부와,
상기 확인신호 검출부에 의해 상기 비수신 확인신호가 검출된 때, 상기 비수신 확인신호에 계속된 소정수의 비트를 무시한 후에, 통신을 도중에 차단할 것을 지시하는 어보트 신호를 송신하도록, 상기 송수신부에 대한 지시를 행하는 컨플릭트 회피부를 또한 구비하는 상기 (1)부터 (8)의 어느 하나에 기재된 통신 장치.
(10)
상기 에러 검출부는, 상기 데이터에 포함되어 있는 2비트의 패리티 중, 일방을 짝수 패리티로 하고, 타방을 홀수 패리티로 하여, 상기 송수신부가 수신한 데이터에 대한 패리티 체크를 행함으로써 에러의 발생을 검출하는 상기 (8)에 기재된 통신 장치.
(11)
상기 송수신부는, 상기 다른 통신 장치가 데이터 신호선에 대한 구동을 행하여 송신하는 CRC(Cyclic Redundancy Check) 워드의 수신 직후의 비트로부터, 상기 데이터 신호선에 대한 구동을 행하는 상기 (1)부터 (10)의 어느 하나에 기재된 통신 장치.
(12)
상기 송수신부는, 통상의 전송 레이트로 데이터 통신을 행하는 SDR(Standard Data Rate) 모드, 및, SDR 모드보다도 높은 전송 레이트로 데이터 통신을 행하는 HDR(High Data Rate) 모드로, 신호의 송수신을 행할 수 있는 상기 (1)부터 (11)의 어느 하나에 기재된 통신 장치.
(13)
상기 송수신부는, 1비트씩 순차적으로 시리얼 데이터를 전송하는 데이터 신호선, 및, 소정의 주파수의 시리얼 클록을 전송하는 클록 신호선의 2개의 신호선을 통하여 통신을 행하는 상기 (1)부터 (12)의 어느 하나에 기재된 통신 장치.
(14)
상기 송수신부, I3C(Improved Inter Integrated Circuit)의 규격에 준한 통신을 행하는 상기 (1)부터 (13)의 어느 하나에 기재된 통신 장치.
(15)
다른 통신 장치와 신호의 송수신을 행하는 송수신부에 의해,
상기 다른 통신 장치로부터 판독되는 리드 데이터를 수신하고,
상기 리드 데이터의 후에 송수신되는 프리앰블의 2비트째에 대한 구동을 항상 행하는 스텝을 포함하는 통신 방법.
(16)
다른 통신 장치와 신호의 송수신을 행하는 송수신부에 의해,
상기 다른 통신 장치로부터 판독되는 리드 데이터를 수신하고,
상기 리드 데이터의 후에 송수신되는 프리앰블의 2비트째에 대한 구동을 항상 행하는 스텝을 포함하는 통신 처리를 컴퓨터에 실행시키는 프로그램.
(17)
버스에서의 제어의 주도권을 갖는 제1의 통신 장치와,
상기 제1의 통신 장치에 의한 제어에 따라 통신을 행하는 제2의 통신 장치를 구비하고,
상기 제1의 통신 장치가, 상기 제2의 통신 장치와 신호의 송수신을 행하는 송수신부를 구비하고,
상기 송수신부는,
상기 제2의 통신 장치로부터 판독되는 리드 데이터를 수신하고,
상기 리드 데이터의 후에 송수신되는 프리앰블의 2비트째에 대한 구동을 항상 행하는 통신 시스템.
또한, 본 실시의 형태는, 상술한 실시의 형태로 한정되는 것이 아니고, 본 개시의 요지를 일탈하지 않는 범위에서 여러가지의 변경이 가능하다.
11 : 버스 IF
12 : 마스터
13 : 슬레이브
14-1 : 데이터 신호선
14-2 : 클록 신호선
21 : 송수신부
22 : 에러 검출부
23 : 확인신호 검출부
24 : 컨플릭트 회피부
31 : 송수신부
32 : 에러 검출부

Claims (20)

  1. 데이터 신호선을 통해 데이터를 송수신하고 클럭 신호선을 통해 클럭을 전송하는 것을 포함하는 외부 통신 장치와 통신하도록 구성된 송수신 회로; 및
    상기 송수신 회로에 의해 수신된 데이터에 응답하여 상기 외부 통신 장치로부터 송신된 확인신호 또는 확인신호의 부재 중 적어도 하나를 검출하도록 구성된 제어 회로를 포함하며,
    제어 회로가 확인신호의 부재를 검출하는 경우에, 송수신 회로가 확인신호의 부재 다음에 적어도 제1의 소정수의 비트들에 대한 컨플릭트를 방지하게 하고, 수신된 데이터의 프리앰블 다음의 제1의 비트 시퀀스와 상기 프리앰블에 의해 지정된 데이터 타입에 대응하는 제2의 비트 시퀀스를 비교함으로써 상기 수신된 데이터 내의 에러의 발생을 검출하게 하고,
    상기 에러의 발생이 검출된 경우, 상기 송수신 회로가 상기 프리앰블 다음의 적어도 제2의 소정수의 비트들에 대응하는 제1의 지속 기간(duration) 중에 클록을 전송하고,
    상기 송수신 회로는, 컨플릭트 방지 클럭 주기 다음에 특정 통신 모드에서 통신을 종료 또는 재시작하라는 커맨드를 송신하고, 상기 컨플릭트 방지 클럭 주기는 확인신호의 부재 다음에 적어도 상기 제1의 소정수의 비트에 대응하는 지속 기간을 갖는 것을 특징으로 하는 통신 장치.
  2. 제1항에 있어서,
    데이터의 프리앰블이 토큰 및 CRC-5를 포함하는 순회 용장 검사(CRC)(Cyclic Redundancy Check) 워드의 전송을 지정하는 경우, 상기 제어 회로는 제1의 비트 시퀀스에 의거하여 토큰 에러 또는 CRC 에러 중 적어도 하나의 발생을 검출하고, 상기 송수신 회로는 상기 CRC 워드 내의 적어도 다수의 비트들에 따른 제2의 지속 기간 중의 클록 및 상기 제1의 지속 기간 중의 추가 클럭을 전송한 이후에 커맨드 신호를 전송하고, 상기 제2의 소정수의 비트는 상기 CRC 워드 내의 비트수와 데이터 내의 비트수 사이의 차이에 대응하는 것을 특징으로 하는 통신 장치.
  3. 제2항에 있어서,
    상기 제어 회로는 상기 추가 클록의 송신 중에 적어도 1주기(period) 동안에 상기 데이터를 무시하는 것을 특징으로 하는 통신 장치.
  4. 삭제
  5. 제2항에 있어서,
    상기 송수신 회로는 상기 데이터 신호선을 구동하는 상기 외부 통신 장치에 의해 송신된 순회 용장 검사(CRC) 워드를 수신한 직후의 비트로부터 상기 데이터 신호선을 구동하는 것을 특징으로 하는 통신 장치.
  6. 제1항에 있어서,
    상기 제어 회로는 판독 커맨드 이후에 상기 수신된 데이터의 데이터 워드에 대한 상기 확인신호 또는 상기 확인신호의 부재 중 적어도 하나를 검출하고, 상기 수신된 데이터의 순회 용장 검사(CRC) 워드에 대한 상기 수신된 데이터 내의 에러의 발생을 검출하도록 더 구성되는 것을 특징으로 하는 통신 장치.
  7. 제1항에 있어서,
    상기 제어 회로는, 상기 제2의 비트 시퀀스의 비트 수가 상기 제1의 비트 시퀀스의 비트 수보다 작으면 상기 에러가 발생함을 검출하도록 구성된 것을 특징으로 하는 통신 장치.
  8. 제1항에 있어서,
    상기 제어 회로는 상기 프리앰블의 제1의 비트에서 제1의 1-비트 에러가 발생하고 상기 제어 회로에 의한 상기 확인신호의 부재의 검출이 외부 통신 장치로부터 송신된 프리앰블의 제2의 비트에서 제2의 1-비트 에러의 결과이면, 에러가 발생함을 검출하도록 구성된 것을 특징으로 하는 통신 장치.
  9. 제1항에 있어서,
    상기 송수신 회로는 판독 데이터 다음에 송신 또는 수신된 프리앰블의 제2의 비트를 구동하는 것을 특징으로 하는 통신 장치.
  10. 삭제
  11. 제1항에 있어서,
    상기 제어 회로는 확인신호의 부재 다음의 적어도 상기 제1의 소정수의 비트에 대응하는 지속 기간을 갖는 컨플릭트 방지 클록 주기를 무시하도록 구성되는 것을 특징으로 하는 통신 장치.
  12. 제1항에 있어서,
    상기 송수신 회로는 확인신호의 부재가 검출되는 경우에 다수의 클럭 사이클을 송신하고, 상기 다수의 클럭 사이클은 상기 확인신호의 부재 다음의 상기 제1의 소정수의 비트와 동일한 것을 특징으로 하는 통신 장치.
  13. 제1항에 있어서,
    상기 송수신 회로는, 제1의 전송 레이트로 데이터 통신이 행해지는 SDR 모드와, 상기 제1의 전송 레이트보다 더 높은 제2의 전송 레이트로 데이터 통신이 행해지는 적어도 하나의 HDR 모드로, 상기 데이터를 송신하고 상기 신호를 수신할 수 있고,
    적어도 하나의 상기 HDR 모드는 상기 송수신 회로가 통신할 수 있는 복수의 추가 모드를 포함하고, 상기 복수의 추가 모드는 DDR(Double Data Rate) 모드, TSP(Ternary Symbol Pure-Bus) 모드, 및, TSL(Ternary Symbol Legacy-inclusive-Bus) 모드를 포함하는 것을 특징으로 하는 통신 장치.
  14. 제13항에 있어서,
    상기 통신 디바이스는 모드 변경 신호를 통해 상기 외부 통신 디바이스의 모드를 스위칭하도록 더 구성되는 것을 특징으로 하는 통신 장치.
  15. 제13항에 있어서,
    상기 송수신 회로는 상기 제1의 지속 기간이 경과 한 후에 상기 적어도 하나의 HDR 모드에서 통신을 재시작하도록 명령하는 커맨드를 송신하는 것을 특징으로 하는 통신 장치.
  16. 제13항에 있어서,
    상기 송수신 회로는 상기 제1의 지속 기간이 경과 한 후에 상기 적어도 하나의 HDR 모드를 종료하라는 커맨드를 송신하는 것을 특징으로 하는 통신 장치.
  17. 제13항에 있어서,
    상기 제어 회로는, HDR 모드에서 판독 커맨드를 송신 한 직후 및 판독 데이터 직전에 프리앰블에서 에러를 검출하도록 구성되는 것을 특징으로 하는 통신 장치.
  18. 제1항에 있어서,
    상기 제어 회로는 상기 송수신 회로에 의해 수신된 데이터에 대해 패리티 체크를 수행함으로써 에러를 검출하고, 상기 데이터에 포함된 제1의 패리티 비트는 짝수 패리티이고, 상기 데이터에 포함된 제2의 패리티 비트는 홀수 패리티인 것을 특징으로 하는 통신 장치.
  19. 삭제
  20. 삭제
KR1020187031337A 2016-05-18 2017-05-02 통신 장치, 통신 방법, 프로그램, 및, 통신 시스템 KR102350136B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2016-099953 2016-05-18
JP2016099953A JP6911282B2 (ja) 2016-05-18 2016-05-18 通信装置、通信方法、プログラム、および、通信システム
PCT/JP2017/017219 WO2017199759A1 (en) 2016-05-18 2017-05-02 Communication apparatus, communication method, program, and communication system

Publications (2)

Publication Number Publication Date
KR20190008196A KR20190008196A (ko) 2019-01-23
KR102350136B1 true KR102350136B1 (ko) 2022-01-14

Family

ID=58745318

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187031337A KR102350136B1 (ko) 2016-05-18 2017-05-02 통신 장치, 통신 방법, 프로그램, 및, 통신 시스템

Country Status (6)

Country Link
US (1) US10892852B2 (ko)
EP (1) EP3459189B1 (ko)
JP (1) JP6911282B2 (ko)
KR (1) KR102350136B1 (ko)
CN (1) CN109155689B (ko)
WO (1) WO2017199759A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6786871B2 (ja) * 2016-05-18 2020-11-18 ソニー株式会社 通信装置、通信方法、プログラム、および、通信システム
JP6828271B2 (ja) 2016-05-18 2021-02-10 ソニー株式会社 通信装置、通信方法、プログラム、および、通信システム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150100711A1 (en) * 2013-10-07 2015-04-09 Qualcomm Incorporated Low power camera control interface bus and devices

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10215289A (ja) * 1996-06-04 1998-08-11 Matsushita Electric Ind Co Ltd 同期装置
US6356984B1 (en) 1998-06-30 2002-03-12 Sun Microsystems, Inc. Digital data processing system having a data bus and a control bus
JP4489922B2 (ja) * 2000-09-22 2010-06-23 株式会社日立国際電気 復調方法
US6874052B1 (en) 2000-09-29 2005-03-29 Lucent Technologies Inc. Expansion bridge apparatus and method for an I2C bus
CN101625846B (zh) * 2008-07-08 2011-03-30 鸿富锦精密工业(深圳)有限公司 显示数据通道接口电路
JP5300098B2 (ja) * 2011-03-15 2013-09-25 Necアクセステクニカ株式会社 情報処理装置、情報処理方法及び情報処理プログラム
US9569386B2 (en) * 2013-04-16 2017-02-14 Nxp B.V. Method and system for single-line inter-integrated circuit (I2C) bus
CN104125172B (zh) * 2014-07-22 2017-05-24 福建星网锐捷网络有限公司 一种接口模式自动匹配的交换设备
US20170255588A1 (en) * 2016-03-07 2017-09-07 Qualcomm Incorporated Multiprotocol i3c common command codes

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150100711A1 (en) * 2013-10-07 2015-04-09 Qualcomm Incorporated Low power camera control interface bus and devices

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
I2C-bus specification and user manual*

Also Published As

Publication number Publication date
KR20190008196A (ko) 2019-01-23
WO2017199759A1 (en) 2017-11-23
CN109155689A (zh) 2019-01-04
CN109155689B (zh) 2021-12-10
JP6911282B2 (ja) 2021-07-28
EP3459189A1 (en) 2019-03-27
US10892852B2 (en) 2021-01-12
US20190123858A1 (en) 2019-04-25
JP2017207934A (ja) 2017-11-24
EP3459189B1 (en) 2020-11-18

Similar Documents

Publication Publication Date Title
JP6971538B2 (ja) 通信装置、通信方法、プログラム、および、通信システム
KR102375363B1 (ko) 통신 장치, 통신 방법, 프로그램, 및 통신 시스템
KR102350136B1 (ko) 통신 장치, 통신 방법, 프로그램, 및, 통신 시스템
KR102350137B1 (ko) 통신 장치, 통신 방법, 프로그램, 및, 통신 시스템
WO2017183482A1 (en) Communication device, communication method, program, and communication system
JP6903645B2 (ja) 通信装置、通信方法、プログラム、および、通信システム
JP6739983B2 (ja) 通信装置、通信方法、プログラム、および、通信システム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right