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

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

Info

Publication number
KR102645211B1
KR102645211B1 KR1020197034083A KR20197034083A KR102645211B1 KR 102645211 B1 KR102645211 B1 KR 102645211B1 KR 1020197034083 A KR1020197034083 A KR 1020197034083A KR 20197034083 A KR20197034083 A KR 20197034083A KR 102645211 B1 KR102645211 B1 KR 102645211B1
Authority
KR
South Korea
Prior art keywords
communication device
group
address
group address
command
Prior art date
Application number
KR1020197034083A
Other languages
English (en)
Other versions
KR20200016845A (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 KR20200016845A publication Critical patent/KR20200016845A/ko
Application granted granted Critical
Publication of KR102645211B1 publication Critical patent/KR102645211B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • 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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • 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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping
    • 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/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • 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)
    • 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/0052Assignment of addresses or identifiers to the modules of a bus system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Systems (AREA)
  • Small-Scale Networks (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

보다 확실하고 효율 좋게 통신을 행한다. 임의의 복수대의 슬레이브를 하나의 그룹으로 하여, 그 그룹을 상대처로 하는 그룹 어드레스를 사용한 통신을 행하기 위해, 그룹에 소속하여 통신을 행할 수 있는 그룹 소속 능력을 갖는 슬레이브가 인식된다. 그리고, 그룹 소속 능력을 갖는 슬레이브와, 그룹 소속 능력을 갖지 않는 슬레이브가 혼재하여 버스에 참가하고 있는 상태에서, 그룹 소속 능력을 갖는다고 인식된 슬레이브에 대해 그룹 어드레스가 할당된다. 본 기술은, 예를 들면, 버스 IF에 적용할 수 있다.

Description

통신 장치, 통신 방법, 프로그램, 및, 통신 시스템
본 개시는, 통신 장치, 통신 방법, 프로그램, 및, 통신 시스템에 관한 것으로, 특히, 보다 확실하게 효율 좋게 통신을 행할 수 있도록 한 통신 장치, 통신 방법, 프로그램, 및, 통신 시스템에 관한 것이다.
종래, 각종의 디바이스에서의 레지스터를 제어하기 위한 버스 IF(Interface)로서 CCI(Camera Control Interface)가 널리 사용되고 있고, CCI에서는, 물리층에 I2C(Inter-Integrated Circuit) 규격이 채용되고 있다. 또한, 근래, I2C의 고속화를 실현하는 것이 요구되고 있고, 차세대의 규격으로서 I3C(Improved Inter Integrated Circuit)의 규정이 책정되어, 그 개정이 진행되고 있다.
예를 들면, I2C 및 I3C는, 버스 IF를 통한 통신의 주도권을 갖는 마스터에 의한 제어에 따라, 버스 IF에 접속되어 있는 슬레이브와 통신을 행할 수 있도록 구성된다. 또한, I3C에서는, I2C의 디바이스와 통신을 행할 수 있도록 호환성을 유지하는 기능이나, 버스 IF에 도중에서 슬레이브가 참가하는 것을 가능하게 하는 핫조인이라고 칭하여지는 기능, 복수의 마스터끼리에서 마스터 권한을 양도하는 기능 등이 제공된다.
또한, 특허문헌 1에는, I3C에서, 통신의 스타트나 스톱 등의 오검출(誤檢出)에 수반하여 통신 불능이 되는 것을 회피하도록 에러 검출 방법을 정의함으로써, 보다 확실하게 통신을 행하는 것이 가능한 통신 장치가 개시되어 있다.
국제공개 제2017/061330호
그런데, 현행의 I3C의 규격에서는, 버스 IF에 접속된 모든 디바이스를 상대처(相手先)(destination)로 하여 통신을 행하는 것, 및, 버스 IF에 접속된 임의의 하나의 디바이스를 상대처로 하여 통신을 행하는 것이 규정되어 있다.
그 때문에, 예를 들면, 버스 IF에 접속된 임의의 복수대의 디바이스에 동일한 내용의 기록을 행하여 싶은 경우, 마스터는, 그들의 디바이스에 대해 개별적으로 기록 전송을 반복해서 행하여야 하였다. 따라서, 보다 효율 좋게 통신을 행할 수 있도록 하기 위해, 임의의 복수대의 디바이스를 상대처로 하여 통신을 행하는 수법을 확립하는 것이 생각된다. 그리고, 그러한 수법으로 통신을 행하는데 수반하여 발생하는 것이 우려되는 통신 에러를 회피하여, 확실하게 통신이 행하여지도록 하는 것이 필요해진다.
본 개시는, 이와 같은 상황을 감안하여 이루어진 것으로 보다 확실하게 효율 좋게 통신을 행할 수 있도록 하는 것이다.
본 개시의 한 측면의 통신 장치는, 버스를 통한 통신의 주도권을 갖는 통신 장치로서, 상기 통신 장치에 의한 제어에 따라 통신을 행하는 다른 통신 장치와의 사이에서의 신호의 송수신을 제어하는 송수신 제어부와, 상기 버스에 참가하고 있는 2대 이상의 상기 다른 통신 장치 중의, 임의의 복수대의 상기 다른 통신 장치를 하나의 그룹으로 하여, 그 그룹을 상대처로 하는 그룹 어드레스를 사용한 통신을 행하기 위해, 상기 그룹에 소속하여 통신을 행할 수 있는 그룹 소속 능력을 갖는 상기 다른 통신 장치를 인식하는 처리, 및, 상기 그룹 소속 능력을 갖는다고 인식된 상기 다른 통신 장치에 대해 상기 그룹 어드레스를 할당하는 처리를 행하는 처리 실행부를 구비한다.
본 개시의 한 측면의 통신 방법 또는 프로그램은, 버스를 통한 통신의 주도권을 갖는 통신 장치의 통신 방법, 또는, 버스를 통한 통신의 주도권을 갖는 통신 장치가 내장하는 컴퓨터에 실행시키는 프로그램에 있어서, 상기 통신 장치에 의한 제어에 따라 통신을 행하는 다른 통신 장치와의 사이에서의 신호의 송수신을 제어하고, 상기 버스에 참가하고 있는 2대 이상의 상기 다른 통신 장치 중의, 임의의 복수대의 상기 다른 통신 장치를 하나의 그룹으로 하여, 그 그룹을 상대처로 하는 그룹 어드레스를 사용한 통신을 행하기 위해, 상기 그룹에 소속하여 통신을 행할 수 있는 그룹 소속 능력을 갖는 상기 다른 통신 장치를 인식하는 처리를 행하고, 상기 그룹 소속 능력을 갖는다고 인식된 상기 다른 통신 장치에 대해 상기 그룹 어드레스를 할당하는 처리를 행하는 스텝을 포함한다.
본 개시의 한 측면의 통신 시스템은, 버스를 통한 통신의 주도권을 갖는 통신 장치와, 상기 통신 장치에 의한 제어에 따라 통신을 행하는 다른 통신 장치에 의해 통신이 행하여지는 통신 시스템에 있어서, 상기 통신 장치가, 상기 다른 통신 장치와의 사이에서의 신호의 송수신을 제어하는 송수신 제어부와, 상기 버스에 참가하고 있는 2대 이상의 상기 다른 통신 장치 중의, 임의의 복수대의 상기 다른 통신 장치를 하나의 그룹으로 하여, 그 그룹을 상대처로 하는 그룹 어드레스를 사용한 통신을 행하기 위해, 상기 그룹에 소속하여 통신을 행할 수 있는 그룹 소속 능력을 갖는 상기 다른 통신 장치를 인식하는 처리, 및, 상기 그룹 소속 능력을 갖는다고 인식된 상기 다른 통신 장치에 대해 상기 그룹 어드레스를 할당하는 처리를 행하는 처리 실행부를 구비한다.
본 개시의 한 측면에서는, 통신 장치에 의한 제어에 따라 통신을 행하는 다른 통신 장치와의 사이에서의 신호의 송수신이 제어되고, 버스에 참가하고 있는 2대 이상의 다른 통신 장치 중의, 임의의 복수대의 다른 통신 장치를 하나의 그룹으로 하여, 그 그룹을 상대처로 하는 그룹 어드레스를 사용한 통신을 행하기 위해, 그룹에 소속하여 통신을 행할 수 있는 그룹 소속 능력을 갖는 다른 통신 장치를 인식하는 처리가 행하여지고, 그룹 소속 능력을 갖는다고 인식된 다른 통신 장치에 대해 그룹 어드레스를 할당하는 처리가 행하여진다.
본 개시의 한 측면에 의하면, 보다 확실하게 효율 좋게 통신을 행할 수가 있다.
또한, 여기에 기재된 효과는 반드시 한정되는 것이 아니고, 본 개시 중에 기재된 어느 하나의 효과라도 좋다.
도 1은 본 기술을 적용한 버스 IF의 한 실시의 형태의 구성례를 도시하는 블록도.
도 2는 마스터 및 슬레이브의 구성례를 도시하는 블록도.
도 3은 디바이스 정보가 등록된 테이블의 한 예를 도시하는 도면.
도 4는 다이내믹 어드레스 및 그룹 어드레스를 할당하는 처리를 설명하는 플로우 차트.
도 5는 다이내믹 어드레스 및 그룹 어드레스를 할당하는 처리의 변형례를 설명하는 플로우 차트.
도 6은 GETGRPCAP 커맨드의 제1의 포맷례를 도시하는 도면.
도 7은 GETGRPCAP 커맨드의 제2의 포맷례를 도시하는 도면.
도 8은 GETGRPCAP 커맨드의 제3의 포맷례를 도시하는 도면.
도 9는 SETGRPA 커맨드의 제1의 포맷례를 도시하는 도면.
도 10은 SETGRPA 커맨드의 제2의 포맷례를 도시하는 도면.
도 11은 DEFGRPS 커맨드의 제1의 포맷례를 도시하는 도면.
도 12는 DEFGRPS 커맨드의 제2의 포맷례를 도시하는 도면.
도 13은 DEFGRPS 커맨드의 제3의 포맷례를 도시하는 도면.
도 14는 기록 전송에서의 통신 포맷의 한 예를 도시하는 도면.
도 15는 기록 전송 및 판독 전송에서의 통신 포맷의 한 예를 도시하는 도면.
도 16은 기록 전송 및 판독 전송에서의 통신 포맷의 한 예를 도시하는 도면.
도 17은 본 기술을 적용한 컴퓨터의 한 실시의 형태의 구성례를 도시하는 블록도.
이하, 본 기술을 적용한 구체적인 실시의 형태에 관해, 도면을 참조하면서 상세히 설명한다.
<버스 IF의 구성례>
도 1은, 본 기술을 적용한 버스 IF의 한 실시의 형태의 구성례를 도시하는 블록도이다.
도 1에 도시되어 있는 버스 IF(11)는, 3대의 마스터(12-1 내지 12-3) 및 6대의 슬레이브(13-1 내지 13-6)가, 시리얼 데이터(SDA)를 전송하는 데이터 신호선(14)과, 시리얼 클록(SCL)를 전송하는 클록 신호선(15)를 통하여 접속되어 구성된다.
마스터(12-1 및 12-2), 및, 슬레이브(13-1 내지 13-4)는, 새롭게 제안된 버전의 I3C의 규격(I3C_v1.1)에 준거하고 있다. 또한, 마스터(12-3) 및 슬레이브(13-5)는, 현행의 버전의 I3C의 규격(I3C_v1.0)에 준거하고 있고, 슬레이브(13-6)는, I2C의 규격에 준거하고 있다. 이와 같이, 버스 IF(11)는, I3C_v1.1에 준거하고 있는 디바이스, I3C_v1.0에 준거하고 있는 디바이스, 및 I2C의 규격에 준거하고 있는 디바이스가 혼재하여도 운용 가능하게 구성된다.
또한, I3C에서는, 가동하고 있는 상태의 버스 IF(11)에 도중(途中)부터 참가하는 것을 가능하게 하는 기능인 핫조인이 규정되어 있다. 도 1에서 파선으로 도시되어 있는 슬레이브(13-4)는, 예를 들면, 파워 오프가 되어 버스 IF(11)에 참가하지 않는 상태를 나타내고 있다. 그리고, 슬레이브(13-4)는, 파워 온이 된 후에 핫조인 리퀘스트를 송신하여, 버스 IF(11)에 참가할 수 있다.
마스터(12-1 내지 12-3)는, 버스 IF(11)를 통한 통신을 주도적으로 제어하는 기능을 구비하고 있고, 슬레이브(13-1 내지 13-6)는, 마스터(12-1 내지 12-3) 중의 주도권을 갖는 1대의 제어에 따라, 버스 IF(11)를 통한 통신을 행할 수가 있다. 또한, 이하 적절히, 마스터(12-1 내지 12-3) 각각을 구별할 필요가 없는 경우, 단지, 마스터(12)라고 칭하고, 슬레이브(13-1 내지 13-6) 각각을 구별할 필요가 없는 경우, 단지, 슬레이브(13)라고 칭한다.
또한, 마스터(12-1 내지 12-3) 중, 버스 IF(11)에서의 통신의 주도권(이하, 마스터 권한이라고 칭한다)을 갖는 1대의 마스터(12)를 커런트 마스터(12C)라고 칭하고, 그 밖의 마스터(12)를 세컨드리 마스터(12S)라고 칭한다. 예를 들면, 마스터 권한을 갖지 않는 세컨드리 마스터(12S)는, 커런트 마스터(12C)의 제어에 따라 버스 IF(11)를 통한 통신을 행할 수가 있고, 커런트 마스터(12C)로부터 마스터 권한이 양도되면, 커런트 마스터(12C)로서 기능한다. 이와 같이, 마스터(12)는, 통신의 주도권을 갖고 있는 상태에서 커런트 마스터(12C)로서 기능하고, 통신의 주도권을 갖지 않는 상태의 세컨드리 마스터(12S)는 슬레이브(13)와 마찬가지로 취급된다. 따라서, 본 실시의 형태에서는, 커런트 마스터(12C)의 제어에 따라 통신을 행하는 세컨드리 마스터(12S)도, 슬레이브(13)에 포함되는 것으로 하여 설명한다.
여기서, 이하 적절히, I3C_v1.1에 준거하고 있는 슬레이브(13-1 내지 13-4), 및, I3C_v1.0에 준거하고 있는 슬레이브(13-5)인 것을, I3C 슬레이브(13)라고도 칭한다. 또한, I3C_v1.1 및 I3C_v1.0 어느 하나에 준거하고 있는 디바이스(즉, 마스터(12) 및 I3C 슬레이브(13))를, I3C 디바이스라고도 칭한다.
그런데, I3C_v1.1에서는, 커런트 마스터(12C)가, 임의의 복수대의 I3C 슬레이브(13)를 상대처로 하여, 그들의 I3C 슬레이브(13)에 대해 일제히 기록 전송을 행하는 것을 가능하게 하는 그룹 어드레스를 설정하여 운용하는 것이 검토되어 있다.
즉, 후술하는 도 6 내지 8에 도시하는 바와 같은 포맷의 SETGRPA 커맨드를 정의함으로써, 동일한 그룹에 속하는 복수대의 I3C 슬레이브(13)에 대해, 동일한 그룹 어드레스가 설정된다. 예를 들면, 개개의 그룹마다 다이내믹 어드레스를 설정함으로써, 그 다이내믹 어드레스를 그룹 어드레스로서 사용할 수 있다. 또한, 1대의 I3C 슬레이브(13)가 복수의 그룹에 속할 수도 있고, 1대의 I3C 슬레이브(13)에 대해, 적어도 하나 이상의 그룹 어드레스를 할당하는 것이 가능하게 되다.
예를 들면, 커런트 마스터(12C)는, SETGRPA 커맨드를 사용하여, 각각의 그룹에 대해 그룹 어드레스를 설정한다. 그리고, 커런트 마스터(12C)는, I3C로 규정되는 각종의 기록 전송(Direct Write CCC/Private Write/HDR Write)를 행할 때에, 기록 전송의 커맨드의 슬레이브 어드레스 필드에, 그룹 어드레스를 지정한다. 이에 의해, 커런트 마스터(12C)는, 1회의 기록 전송으로, 그 그룹에 속하는 복수대의 I3C 슬레이브(13)에 대해, 일제히 데이터를 기록할 수 있다.
한편, I3C 슬레이브(13)는, 버스 IF(11)에 참가하고 있는 모든 I3C 슬레이브(13)를 지정하는 어드레스 7'h7E, 자신의 다이내믹 어드레스, 또는 자신이 속하는 그룹 어드레스에 대한 통신을 수신하고, 그 통신의 내용에 따른 처리를 행한다.
또한, 커런트 마스터(12C)가, 그룹 어드레스에 의한 지정을 행하여 복수대의 I3C 슬레이브(13)에 대해 판독 커맨드를 송신하는 경우, 그들 복수대의 I3C 슬레이브(13)로부터 전송되는 판독 데이터가 컨플릭트하는 것이 상정된다. 그 때문에, I3C로 규정되는 각종의 판독 전송(Direct Read CCC/Private Read/HDR Read)를 행할 때에, 판독 전송의 커맨드의 슬레이브 어드레스 필드에, 그룹 어드레스를 지정하는 것을 금지하는 운용이 상정된다. 또한, 후술하는 도 15 및 도 16에 도시하는 바와 같이, 복수대의 I3C 슬레이브(13)마다 판독 데이터를 출력하는 타이밍을 제어하는 경우, 판독 데이터의 컨플릭트를 회피할 수 있다. 이 경우, 각종의 판독 전송을 행할 때에, 그룹 어드레스를 지정하는 것을 금지하지 않고 운용할 수 있다. 또한, 그룹 어드레스를 지정한 판독 전송을 이네이블로 하기 위해, 레지스터 등을 구비하도록 하여도 좋다.
그런데, 도 1에 도시하는 버스 IF(11)는, 그룹 어드레스에 관한 기능이 규정되는 I3C_v1.1에 준거하고 있는 마스터(12-1 및 12-2) 및 I3C 슬레이브(13-1 내지 13-4)와, 그룹 어드레스에 관한 기능이 규정되지 않은 I3C_v1.0에 준거하고 있는 마스터(12-3) 및 I3C 슬레이브(13-5)와, I2C의 규격에 준거하고 있는 I2C 슬레이브(13-6)가 혼재한 구성으로 되어 있다.
이와 같이 구성된 버스 IF(11)에서는, 마스터(12-1 및 12-2)가, 그룹 어드레스의 할당을 행하기 위해서는, 버스 IF(11)에 참가하고 있는 모든 마스터(12) 및 슬레이브(13) 중, 그룹 어드레스에 대응하고 있는 I3C 디바이스를 인식할 수 있도록 I3C_v1.1을 규정할 필요가 있다.
또한, 버스 IF(11)에 참가하고 있는 복수의 마스터(12)가 그룹 어드레스에 대응하고 있는 경우, 그들의 마스터(12)끼리에서, 다른 마스터(12)가 할당한 그룹 어드레스를 인식할 수 있도록 I3C_v1.1을 규정할 필요가 있다. 즉, 있는 마스터(12)가, 다른 마스터(12)가 할당한 그룹 어드레스를 인식할 수 없는 경우, 이미 사용완료의 어드레스값을 그룹 어드레스에 사용하여버려, 통신 에러가 발생하는 것이 우려된다. 또한, 있는 마스터(12)가 설정한 그룹 어드레스를, 다른 마스터(12)가 재기록하여 버림에 의해, 그룹 어드레스 정보가 파괴되어버려, 통신 에러가 발생하는 것이 우려된다.
그래서, I3C_v1.1에 준거하고 있는 마스터(12-1 및 12-2)는, 그룹 어드레스를 운용함에 있어서, 그룹 어드레스에의 대응 상황을 인식하고, 그룹 어드레스를 사용함에 의해 발생하는 것이 우려되는 통신 에러를 회피할 수 있도록 구성된다. 이에 의해, 버스 IF(11)에서는, 통신 에러를 회피하여 확실하게, 그룹 어드레스를 이용하여 효율 좋게 통신을 행할 수가 있다.
<마스터 및 슬레이브의 구성례>
도 2는, 마스터(12) 및 슬레이브(13)의 구성례를 도시하는 블록도이다.
도 2에 도시하는 구성에서는, 마스터(12)는, 마스터 디바이스(21)의 물리층으로서 조립되고, 마스터 디바이스(21)는, 마스터(12)에 대해 상위가 되는 상위층(22)(예를 들면, CCI 레이어)을 구비한다. 마찬가지로, 슬레이브(13)는, 슬레이브 디바이스(31)의 물리층으로서 조립되고, 슬레이브 디바이스(31)는, 슬레이브(13)에 대해 상위가 되는 상위층(32)(예를 들면, CCI 레이어)을 구비한다.
도 2에 도시하는 바와 같이, 마스터(12)는, 송수신 제어부(41), 데이터 수신부(42), 데이터 송신부(43), 마스터십 리퀘스트 제어부(44), 커맨드 해석부(45), 정보 유지부(46), 커맨드 송신부(47), 및 테이블 유지부(48)를 구비하여 구성된다. 또한, 이들의 각 부분, 또는, 그 일부는, 예를 들면, 반도체 집적 회로나, 프로그램 가능한 반도체 집적 회로, 소프트웨어 등에 의해 실현하도록 하여도 좋다.
송수신 제어부(41)는, 버스 IF(11)에 접속되어 있는 다른 디바이스와의 사이에서의 신호의 송수신을 제어한다. 예를 들면, 송수신 제어부(41)는, 클록 신호선(15)을 구동하여 시리얼 클록(SCL)을 송신하고, 시리얼 클록(SCL)의 타이밍에 맞추어서 데이터 신호선(14)을 구동함으로써 시리얼 데이터(SDA)의 다른 디바이스에의 송신을 제어한다. 또한, 송수신 제어부(41)는, 시리얼 클록(SCL)의 타이밍에 맞추어서, 다른 디바이스가 데이터 신호선(14)를 구동하여 송신하여 오는 시리얼 데이터(SDA)의 수신을 제어한다.
데이터 수신부(42)는, 송수신 제어부(41)에 의한 제어에 따라, 다른 디바이스로부터 송신되어 오는 데이터를 수신하고, 상위층(22)에 공급한다.
데이터 송신부(43)는, 상위층(22)부터 공급되는 데이터를, 송수신 제어부(41)에 의한 제어에 따라, 다른 디바이스에 송신한다.
마스터십 리퀘스트 제어부(44)는, 상위층(22)부터의 요구에 따라, 마스터(12)가 세컨드리 마스터(12S)일 때에, 커런트 마스터(12C)에 대해 마스터 권한의 양도를 요구하는 마스터십 리퀘스트의 송신에 관한 제어를 행한다.
커맨드 해석부(45)는, 송수신 제어부(41)에 의한 제어에 따라 수신한 커맨드에 대한 해석을 행하여, 정보 유지부(46)에 유지되어 있는 각종의 정보를 참조하여, 그 커맨드에 응한 처리를 실행한다.
정보 유지부(46)는, 커맨드 해석부(45)가 커맨드에 응한 처리를 행하는데 필요한 각종의 정보를 유지할 수 있다. 예를 들면, 정보 유지부(46)에는, 그룹에 관련되는 능력으로서, 마스터(12) 자신이 갖는 능력을 나타내는 정보인 그룹 관련 능력 정보가 유지된다. 예를 들면, 마스터(12) 자신이 그룹 어드레스를 할당하는 능력(이하, 그룹 관리 능력이라고도 칭한다)를 갖는 경우, 정보 유지부(46)에는, 그룹 관리 능력을 갖는 것을 나타내는 그룹 관련 능력 정보가 유지된다.
커맨드 송신부(47)는, 상위층(22)부터의 요구에 따라, 송수신 제어부(41)에 의한 제어에 의해, 버스 IF(11)를 통하여 커맨드를 송신한다. 또한, 커맨드 송신부(47)는, 예를 들면, 마스터(12)로부터 송신된 커맨드에 응하여, 버스 IF(11)에 참가하고 있는 디바이스로부터 송신되어 오는 그룹 관련 능력 정보를, 테이블 유지부(48)에 공급한다.
테이블 유지부(48)는, 버스 IF(11)에 참가하고 있는 모든 디바이스에 대응시켜서, 각각의 디바이스에 관한 디바이스 정보가 등록된 디바이스 정보 테이블(후술하는 도 3 참조)을 유지한다. 예를 들면, 디바이스 정보 테이블에는, 디바이스를 식별하는 디바이스 ID(Identification)에 대응시켜서, 그룹 관련 능력 정보나 그룹 어드레스 등을 포함하는 디바이스 정보가 등록된다. 그리고, 테이블 유지부(48)는, 커맨드 송신부(47)로부터 공급되는 각 디바이스의 그룹 관련 능력 정보를, 디바이스 정보 테이블에 유지함과 함께 상위층(22)에도 통지한다.
슬레이브(13)는, 송수신 제어부(51), 데이터 수신부(52), 데이터 송신부(53), 핫조인 리퀘스트 제어부(54), 다이내믹 어드레스 유지부(55), 그룹 어드레스 유지부(56), 커맨드 해석부(57), 및 정보 유지부(58)를 구비하여 구성된다. 또한, 이들의 각 부분, 또는, 그 일부는, 예를 들면, 반도체 집적 회로나, 프로그램 가능한 반도체 집적 회로, 소프트웨어 등에 의해 실현하도록 하여도 좋다.
송수신 제어부(51)는, 버스 IF(11)에 접속되어 있는 다른 디바이스와의 사이에서의 신호의 송수신을 제어한다. 예를 들면, 송수신 제어부(51)는, 시리얼 클록(SCL)의 타이밍에 맞추어서, 다른 디바이스가 데이터 신호선(14)를 구동하여 송신하여 오는 시리얼 데이터(SDA)의 수신을 제어한다. 또한, 송수신 제어부(51)는, 시리얼 클록(SCL)의 타이밍에 맞추어서 데이터 신호선(14)를 구동함으로써 시리얼 데이터(SDA)의 다른 디바이스에의 송신을 제어한다.
데이터 수신부(52)는, 송수신 제어부(41)에 의한 제어에 따라, 다른 디바이스로부터 송신되어 오는 데이터를 수신하고, 상위층(32)에 공급한다.
데이터 송신부(53)는, 상위층(32)부터 공급되는 데이터를, 송수신 제어부(41)에 의한 제어에 따라, 다른 디바이스에 송신한다.
핫조인 리퀘스트 제어부(54)는, 예를 들면, 버스 IF(11)에 참가하지 않는 상태의 슬레이브(13)가, 가동하고 있는 상태의 버스 IF(11)에 참가하는 것을 요구한 핫조인 리퀘스트의 송신에 관한 제어를 행한다.
다이내믹 어드레스 유지부(55)는, 슬레이브(13)에 할당된 다이내믹 어드레스를 유지할 수 있고, 커맨드 해석부(57)에 의한 지시에 따라, 적절히, 다이내믹 어드레스를 유지한다.
그룹 어드레스 유지부(56)는, 슬레이브(13)에 할당된 그룹 어드레스를 유지할 수 있고, 커맨드 해석부(57)에 의한 지시에 따라, 적절히, 그룹 어드레스를 유지한다.
커맨드 해석부(57)는, 송수신 제어부(51)에 의한 제어에 따라 수신한 커맨드에 대한 해석을 행하여, 정보 유지부(58)에 유지되어 있는 각종의 정보를 참조하여, 그 커맨드에 응한 처리를 실행한다.
정보 유지부(58)는, 커맨드 해석부(57)가 커맨드에 응한 처리를 행하는데 필요한 각종의 정보를 유지할 수 있다. 예를 들면, 정보 유지부(58)에는, 그룹에 관련되는 능력으로서, 슬레이브(13) 자신이 갖는 능력을 나타내는 정보인 그룹 관련 능력 정보가 유지된다. 예를 들면, 슬레이브(13) 자신이 그룹 어드레스에 할당되는 능력(이하, 그룹 소속 능력이라고도 칭한다)를 갖는 경우, 정보 유지부(58)에는, 그룹 소속 능력을 갖는 것을 나타내는 그룹 관련 능력 정보가 유지된다.
여기서, 도 3을 참조하여, 테이블 유지부(48)에 유지된 디바이스 정보 테이블에 관해 설명한다. 도 3A에는, I3C_v1.1에 준거하고 있는 마스터(12-1 및 12-2)의 테이블 유지부(48)에 유지된 디바이스 정보 테이블의 한 예가 도시되어 있고, 도 3B에는, I3C_v1.0에 준거하고 있는 마스터(12-3)의 테이블 유지부(48)에 유지된 디바이스 정보 테이블의 한 예가 도시되어 있다.
도 3A에 도시하는 바와 같이, I3C_v1.1의 디바이스 정보 테이블에는, 버스 IF(11)에 참가하고 있는 모든 디바이스를 식별하는 디바이스 ID(도 3의 예에서는, 디바이스 ID : A∼H)가 등록된다. 그리고, 각각의 디바이스 ID에 대응시켜서, 기능 정보, 스태틱 어드레스(SA), 다이내믹 어드레스(DA), 그룹 정보 유효 정보, 그룹 관리 능력 정보, 그룹 소속 능력 정보, 및 그룹 어드레스(GRPA)가, 디바이스 정보로서 등록된다. 또한, 이 디바이스 정보 테이블에는, 커런트 마스터(12C)로 되어 있는 마스터(12)의 디바이스 ID(도 3의 예에서는, 디바이스 ID : A)가 등록된다.
기능 정보에는, 버스 IF(11)에 참가하고 있는 디바이스가 구비하는 기능을 나타내는 디바이스 정보가 등록되고, 예를 들면, I3C 메인 마스터, I3C 세컨드리 마스터, I3C 슬레이브, 및 I2C 슬레이브의 어느 하나를 나타내는 디바이스 정보가 등록된다.
스태틱 어드레스에는, 디바이스가 갖는 스태틱 어드레스를 나타내는 어드레스값(SA값)이 디바이스 정보로서 등록되는 외에, 스태틱 어드레스를 갖지 않는 디바이스에 대해서는, 그 취지를 나타내는 디바이스 정보(무(無))가 등록된다.
다이내믹 어드레스에는, 디바이스에 할당된 다이내믹 어드레스를 나타내는 어드레스값(DA값)이 디바이스 정보로서 등록되는 외에, 다이내믹 어드레스를 가질 수 없는 디바이스(I2C 디바이스)에 대해서는, 그 취지를 나타내는 디바이스 정보(무)가 등록된다. 또한, 다이내믹 어드레스에는, 다이내믹 어드레스를 가질 수 있지만, 다이내믹 어드레스가 아직도 할당되지 않은 경우에는, 그 취지를 나타내는 디바이스 정보(미(未)(not yet))가 등록된다.
그룹 정보 유효 정보에는, 그룹 관리 능력 정보, 그룹 소속 능력 정보, 및 그룹 어드레스에 등록되어 있는 디바이스 정보가 유효한 것을 나타내는 디바이스 정보(유(有)), 또는, 그들의 디바이스 정보가 아직도 취득되지 않은 것을 나타내는 디바이스 정보(무)가 등록된다.
그룹 관리 능력 정보에는, 디바이스가 그룹 어드레스를 할당하는 능력을 갖는 것을 나타내는 디바이스 정보(유), 또는, 디바이스가 그룹 어드레스를 할당하는 능력을 갖지 않는 것을 나타내는 디바이스 정보(무)가 등록된다. 또한, 그룹 관리 능력 정보가 취득되지 않은 디바이스에 관해서는, 그룹 관리 능력 정보는 공란(空欄)인 채로 된다.
그룹 소속 능력 정보에는, 디바이스가 그룹 어드레스가 할당되는 능력을 갖는 것을 나타내는 디바이스 정보(유), 또는, 디바이스가 그룹 어드레스가 할당되는 능력을 갖지 않는 것을 나타내는 디바이스 정보(무)가 등록된다. 또한, 그룹 소속 능력 정보가 취득되지 않은 디바이스에 관해서는, 그룹 소속 능력 정보는 공란인 채로 된다.
그룹 어드레스에는, 디바이스가 소속하는 그룹에 할당된 그룹 어드레스를 나타내는 어드레스값(GRPA값)이 디바이스 정보로서 등록된다. 또한, 그룹 어드레스가 할당되는 응력(應力)을 갖지 않는 디바이스(I2C 디바이스나, 그룹 소속 능력 정보를 갖지 않는 I3C 디바이스 등)에 대해서는, 그 취지를 나타내는 디바이스 정보(무)가 등록된다. 또한, 그룹 어드레스에는, 그룹 어드레스가 할당되는 응력을 갖지만, 그룹 어드레스가 아직도 할당되지 않은 경우에는, 그 취지를 나타내는 디바이스 정보(미)가 등록된다. 또한, 그룹 어드레스가 취득되지 않은 디바이스에 관해서는, 그룹 어드레스는 공란인 채로 된다.
또한, 도 3B에 도시하는 바와 같이, I3C_v1.0의 디바이스 정보 테이블에는, I3C_v1.1의 디바이스 정보 테이블에 등록된 디바이스 정보 중, 각각의 디바이스 ID에 대응시켜서, 기능 정보, 스태틱 어드레스(SA), 및 다이내믹 어드레스(DA)가, 디바이스 정보로서 등록된다. 즉, I3C_v1.0에서는, 그룹 어드레스에 관해서는 정의되어 있지 않기 때문에, 그룹 정보 유효 정보, 그룹 관리 능력 정보, 그룹 소속 능력 정보, 및 그룹 어드레스는, 디바이스 정보 테이블에 등록되지 않는다.
이와 같이, 테이블 유지부(48)에는, 스태틱 어드레스, 다이내믹 어드레스, 또는 그룹 어드레스의 할당 상황 등이 등록된 디바이스 정보 테이블이 유지된다.
<어드레스 할당 처리>
도 4에 도시하는 플로우 차트를 참조하여, 커런트 마스터(12C)가, 다이내믹 어드레스 및 그룹 어드레스를 할당하는 처리에 관해 설명한다.
예를 들면, 커런트 마스터(12C)가 파워 온이 되면 처리가 시작되고, 스텝 S11에서, 커런트 마스터(12C)는, 자신의 초기화를 행한다. 그 후, 커런트 마스터(12C)의 송수신 제어부(41)는, 데이터 신호선(14) 및 클록 신호선(15)의 전위를 함께 H레벨로 구동하여, 버스 IF(11)를 버스 프리 상태로 한다.
스텝 S12에서, 커런트 마스터(12C)는, 버스 IF(11)에 참가하고 있는 I3C 디바이스 중, 스태틱 어드레스를 갖는 I3C 디바이스의 존재를 인식한다. 그리고, 커런트 마스터(12C)는, I3C 디바이스의 스태틱 어드레스를 지정하여, 다이내믹 어드레스의 할당을 지시하는 SETDASA 커맨드를 송신한다. 이에 응하여, 스태틱 어드레스를 갖는 I3C 디바이스에 대한 다이내믹 어드레스의 할당이 완료되면, 처리는 스텝 S13으로 진행한다.
스텝 S13에서, 커런트 마스터(12C)는, 스텝 S12에서 다이내믹 어드레스가 할당되지 않은 나머지 I3C 디바이스에 대해 다이내믹 어드레스의 할당을 지시하는 ENTDAA 커맨드 시퀀스를 실행한다. 이에 응하여, 버스 IF(11)에 참가하고 있는 모든 I3C 디바이스에 대해 다이내믹 어드레스가 할당되면, 처리는 스텝 S14로 진행한다.
스텝 S14에서, 커런트 마스터(12C)는, 버스 IF(11)에 참가하고 있는 모든 세컨드리 마스터(12S)에 대해, 디바이스 정보의 공유를 지시하는 DEFSLVS 커맨드를 송신한다. 이에 의해, 커런트 마스터(12C)는, 버스 IF(11)에 참가하고 있는 모든 디바이스에 관한 디바이스 정보를 세컨드리 마스터(12S)와 공유한다. 또한, 이 시점에서는 그룹 어드레스에 관한 처리는 행하여지지 않기 때문에, 스텝 S14에서 공유된 디바이스 정보에는, 상술한 도 3에 도시한 테이블에 등록되어 있는 디바이스 정보 중의, 디바이스 ID, 기능 정보, 스태틱 어드레스, 및, 다이내믹 어드레스가 포함된다.
스텝 S15에서, 커런트 마스터(12C)는, 정보 유지부(46)가 유지하고 있는 그룹 관련 능력 정보를 참조하여, 자신이 그룹 어드레스를 할당하는 능력을 갖는지의 여부를 판정한다.
스텝 S15에서, 커런트 마스터(12C)가, 그룹 어드레스를 할당하는 능력을 갖지 않는다고 판정한 경우, 처리는 종료된다. 예를 들면, 커런트 마스터(12C)가, I3C_v1.0에 준거하고 있는 마스터(12-3)인 경우, 그룹 어드레스를 할당하는 능력을 갖지 않는다. 또한, I3C_v1.1에서 그룹 어드레스를 할당하는 능력이 옵션으로 규정되어 있고, 커런트 마스터(12C)로 되어 있는 마스터(12-1 또는 12-2)에, 그 능력이 설정되지 않은 경우, 그룹 어드레스를 할당하는 능력을 갖지 않는다고 판정된다.
한편, 스텝 S15에서, 커런트 마스터(12C)가, 그룹 어드레스를 할당하는 능력을 갖는다고 판정한 경우, 처리는 스텝 S16으로 진행한다. 또한, 커런트 마스터(12C) 및 세컨드리 마스터(12S)가 그룹 관리 능력을 갖는 것이 필수라고 규정된 경우, 스텝 S15의 처리는 생략하여도 좋고, 스텝 S15를 스킵하고 처리는 스텝 S16으로 진행한다.
스텝 S16에서, 커런트 마스터(12C)는, 버스 IF(11)에 참가하고 있는 모든 I3C 디바이스에 대해, 그룹 관련 능력 정보의 송신의 요구를 지시하는 GETGRPCAP 커맨드(후술하는 도 6 내지 도 8 참조)를 송신한다. 이에 응하여, 커런트 마스터(12C)가, 각 I3C 디바이스로부터 송신되어 오는 그룹 관련 능력 정보를 취득하면, 처리는 스텝 S17로 진행한다.
스텝 S17에서, 커런트 마스터(12C)는, 스텝 S16에서 취득한 그룹 관련 능력 정보를, 도 2의 상위층(22)에 통지한다. 이에 의해, 상위층(22)은, 각 I3C 디바이스의 그룹 어드레스에의 대응을 파악할 수 있고, 예를 들면, 어느 I3C 슬레이브(13)에 그룹 어드레스를 할당하는지를 판단할 수 있다.
스텝 S18에서, 커런트 마스터(12C)는, I3C 슬레이브(13)에 그룹 어드레스의 할당을 행하는지의 여부를 판정한다. 예를 들면, 커런트 마스터(12C)는, 그룹 관련 능력 정보에 의거하여 판단을 행하는 상위층(22)부터, 그룹 어드레스의 할당이 지시되면, 그 지시에 따라 I3C 슬레이브(13)에 그룹 어드레스를 할당한다고 판정할 수 있다.
스텝 S18에서, 커런트 마스터(12C)가, 그룹 어드레스의 할당을 행한다고 판정한 경우, 처리는 스텝 S19로 진행한다. 스텝 S19에서, 커런트 마스터(12C)는, 그룹 어드레스의 할당을 지시하는 SETGRPA 커맨드(후술하는 도 9 및 도 10 참조)를 송신하고, 상위층(22)부터의 지시에 따라 I3C 슬레이브(13)에 대해 그룹 어드레스를 할당한다.
한편, 스텝 S18에서, 커런트 마스터(12C)가, 그룹 어드레스의 할당을 행하지 않는다고 판정한 경우, 또는, 스텝 S19의 처리 후, 처리는 스텝 S20으로 진행한다.
스텝 S20에서, 커런트 마스터(12C)는, 테이블 유지부(48)에 유지되어 있는 디바이스 정보 테이블을 참조하여, 커런트 마스터(12C) 이외에, 그룹 어드레스를 할당하는 능력을 갖는 세컨드리 마스터(12S)가 있는지의 여부를 판정한다.
스텝 S20에서, 커런트 마스터(12C)가, 그룹 어드레스를 할당하는 능력을 갖는 세컨드리 마스터(12S)가 있다고 판정한 경우, 처리는 스텝 S21로 진행한다. 또한, 커런트 마스터(12C) 및 세컨드리 마스터(12S)가 그룹 관리 능력을 갖는 것이 필수라고 규정된 경우, 스텝 S20의 처리는 생략하여도 좋고, 스텝 S20을 스킵하고 처리는 스텝 S21로 진행한다.
스텝 S21에서, 커런트 마스터(12C)는, 그룹 어드레스를 할당하는 능력을 갖는 세컨드리 마스터(12S)에 대해, 그룹 어드레스에 관한 정보의 공유를 지시하는 DEFGRPS 커맨드(후술하는 도 11 내지 도 13 참조)를 송신한다. 이에 의해, 커런트 마스터(12C)는, 그룹 어드레스를 할당하는 능력을 갖는 세컨드리 마스터(12S)와의 사이에서, 버스 IF(11)에 참가하고 있는 모든 디바이스에 관한 그룹 어드레스에 관한 정보를 공유한다. 예를 들면, 그룹 어드레스에 관한 정보로서, 커런트 마스터(12C)는, 버스 IF(11)에 참가하고 있는 개개의 디바이스에 관해, 그룹 관리 능력 정보 및 그룹 소속 능력 정보를 공유한다. 또한, 커런트 마스터(12C)는, 스텝 S19에서 I3C 슬레이브(13)에 그룹 어드레스를 할당한 경우에는, 그룹 어드레스에 관한 정보로서 그룹 어드레스를 공유한다.
스텝 S20에서 커런트 마스터(12C)가, 그룹 어드레스를 할당하는 능력을 갖는 세컨드리 마스터(12S)가 없다고 판정한 경우, 또는, 스텝 S21의 처리 후, 처리는 종료된다.
이상과 같이, 커런트 마스터(12C)는, 버스 IF(11)에 참가하고 있는 모든 I3C 디바이스의 그룹 관련 능력 정보를 취득함에 의해, 그룹 소속 능력을 갖는 I3C 슬레이브(13)를 인식할 수 있다. 이에 의해, 커런트 마스터(12C)는, 그룹 소속 능력을 갖는 I3C 슬레이브(13)에 대해, 확실하게 그룹 어드레스를 할당할 수 있다.
또한, 커런트 마스터(12C)는, 버스 IF(11)에 참가하고 있는 모든 I3C 디바이스의 그룹 관련 능력 정보를 취득함에 의해, 그룹 관리 능력을 갖는 세컨드리 마스터(12S)를 인식할 수 있다. 이에 의해, 커런트 마스터(12C)는, 그룹 관리 능력을 갖는 세컨드리 마스터(12S)와의 사이에서, 그룹 어드레스에 관한 정보를 공유할 수 있다.
이와 같이, 그룹 어드레스에 관한 정보가 공유됨에 의해, 버스 IF(11)에서는, 예를 들면, 다른 마스터(12)에 의해 이미 사용완료의 어드레스값을, 새롭게 그룹 어드레스로서 사용함에 의해 통신 에러가 발생하는 사태를 회피할 수 있다. 또한, 그룹 어드레스에 관한 정보가 공유됨에 의해, 버스 IF(11)에서는, 예를 들면, 다른 마스터(12)가 설정한 그룹 어드레스를, 재기록하여 버림에 의해 통신 에러가 발생하는 사태를 회피할 수 있다. 따라서, 버스 IF(11)에서는, 통신 에러가 발생하는 일 없이, 보다 확실하게, 그룹 어드레스를 사용하여 효율 좋게 통신을 행할 수가 있다.
또한, 커런트 마스터(12C)가, 다이내믹 어드레스 및 그룹 어드레스를 할당하는 처리는, 도 4를 참조하여 설명한 바와 같은 순서로 한정되는 일 없이, 그 밖의 순서를 채용하여도 좋다.
예를 들면, 커런트 마스터(12C)는, 도 5에 도시하는 바와 같은 순서로, 다이내믹 어드레스 및 그룹 어드레스를 할당하여도 좋다.
즉, 도 5에 도시하는 플로우 차트에서는, 스텝 S31 내지 S33에서, 도 4의 스텝 S11 내지 스텝 S13과 같은 처리가 행하여진다. 그리고, 스텝 S34에서, 커런트 마스터(12C)는, 정보 유지부(46)가 유지하고 있는 그룹 관련 능력 정보를 참조하여, 자신이 그룹 어드레스를 할당하는 능력을 갖는지의 여부를 판정한다.
스텝 S34에서, 커런트 마스터(12C)가, 그룹 어드레스를 할당하는 능력을 갖는다고 판정한 경우, 스텝 S35 내지 S38에서, 도 4의 스텝 S16 내지 S19와 같은 처리가 행하여진 후, 처리는 스텝 S39로 진행한다. 또한, 스텝 S34에서, 커런트 마스터(12C)가, 그룹 어드레스를 할당하는 능력을 갖지 않는다고 판정한 경우, 처리는 스텝 S39로 진행한다.
스텝 S39에서, 커런트 마스터(12C)는, 버스 IF(11)에 참가하고 있는 전부의 세컨드리 마스터(12S)에 대해, 디바이스 정보의 공유를 지시하는 DEFSLVS 커맨드를 송신한다. 이에 의해, 커런트 마스터(12C)는, 버스 IF(11)에 참가하고 있는 모든 디바이스에 관한 디바이스 정보(디바이스 ID, 기능 정보, 스태틱 어드레스, 및 다이내믹 어드레스)를 세컨드리 마스터(12S)와 공유한다.
그 후, 스텝 S40에서, 커런트 마스터(12C)는, 정보 유지부(46)가 유지하고 있는 그룹 관련 능력 정보를 참조하여, 자신이 그룹 어드레스를 할당하는 능력을 갖는지의 여부를 판정한다.
스텝 S40에서, 커런트 마스터(12C)가, 그룹 어드레스를 할당하는 능력을 갖지 않는다고 판정한 경우, 처리는 종료된다. 한편, 스텝 S40에서, 커런트 마스터(12C)가, 그룹 어드레스를 할당하는 능력을 갖는다고 판정한 경우, 스텝 S41 및 S42에서, 도 4의 스텝 S20 및 21과 같은 처리가 행하여지고, 그 후, 처리는 종료된다.
이상과 같이, 버스 IF(11)에서는, 예를 들면, 스태틱 어드레스 및 다이내믹 어드레스와 함께, 그룹 어드레스를 공유할 수 있다.
<GETGRPCAP 커맨드의 포맷례>
도 6에는, 도 4의 스텝 S16에서 송신되는 GETGRPCAP 커맨드의 제1의 포맷례가 도시되어 있다.
상술한 바와 같이, GETGRPCAP 커맨드는, 버스 IF(11)에 참가하고 있는 모든 I3C 디바이스에 대해, 그룹 관련 능력 정보의 송신의 요구를 지시한다.
도 6에 도시하는 예에서는, 우선, 커런트 마스터(12C)는, 스타트 컨디션(S)을 발행하여, 버스 IF(11)에 참가하고 있는 모든 디바이스를 지정하는 어드레스 7'h7E를 송신하는데 뒤이어서, 그룹 관련 능력 정보의 송신을 요구하는 커먼 커맨드 코드(GETGRPCAP CCC)를 송신한다. 그리고, 커런트 마스터(12C)가, 리퀘스트(Sr)에 뒤이어서 슬레이브 어드레스(Slave Address)를 송신하면, 그 슬레이브 어드레스의 I3C 슬레이브(13)가, 그룹 관련 능력 정보(GRPCAP)를 회신한다.
도시하는 바와 같이, 8비트의 그룹 관련 능력 정보 중, 0비트째는, 그룹 관리 능력을 갖는지의 여부를 나타내는 플래그이고, 1비트째는, 그룹 소속 능력을 갖는지의 여부를 나타내는 플래그이고, 2비트째부터 7비트째까지는 리저브로 되어 있다. 따라서, 그룹 관련 능력 정보의 송신을 요구하는 커먼 커맨드 코드를 수신하고, 슬레이브 어드레스로 지정된 I3C 슬레이브(13)는, 그룹 소속 능력을 갖는지의 여부를 나타내는 플래그에 의해, 자신의 그룹 관련 능력 정보를, 커런트 마스터(12C)에 인식시킬 수 있다.
즉, GETGRPCAP 커맨드를 수신한 디바이스가, 그룹 관리 능력 또는 그룹 소속 능력을 갖는 경우, 그 디바이스는, ACK 응답한다. 또한, 그룹 관리 능력을 갖는 디바이스는, 그룹 관리 능력을 갖는지의 여부를 나타내는 플래그에 1을 송신하고, 그룹 관리 능력을 갖지 않는 디바이스는, 그룹 관리 능력을 갖는지의 여부를 나타내는 플래그에 0을 송신한다. 또한, 그룹 소속 능력을 갖는 디바이스는, 그룹 소속 능력을 갖는지의 여부를 나타내는 플래그에 1을 송신하고, 그룹 소속 능력을 갖지 않는 디바이스는, 그룹 소속 능력을 갖는지의 여부를 나타내는 플래그에 0을 송신한다. 또한, 리저브 영역은, 전부 0을 송신한다.
한편, GETGRPCAP 커맨드를 수신한 디바이스가, 그룹 관리 능력 및 그룹 소속 능력을 갖지 않는 경우, 그 디바이스는, NACK 응답하는지, ACK 응답하고 나서 데이터를 ALL 0으로 송신하도록 I3C_v1.1로 규정할 필요가 있다. 예를 들면, I3C_v1.0의 규격에서는, 서포트하지 않는 다이렉트 커먼 커맨드 코드(Direct CCC)를 수신한 디바이스는, NACK 응답하는 것이 규정되어 있다. 그리고, GETGRPCAP 커맨드는, I3C_v1.0의 규격에서는 규정되어 있지 않기 때문에, I3C_v1.0에 준거한 디바이스는, GETGRPCAP 커맨드에 대해서는, 반드시, NACK 응답하게 된다.
이와 같이, GETGRPCAP 커맨드에 대한 응답을 규정함으로써, I3C_v1.1에 준거한 디바이스와, I3C_v1.0에 준거한 디바이스가 혼재하여 있는 버스 IF(11)라도, 모순이 발생하는 일 없이, GETGRPCAP 커맨드를 운용할 수 있다.
또한, GETGRPCAP 커맨드는, 판독 커맨드이기 때문에, 슬레이브 어드레스에는 다이내믹 어드레스만 지정하는 것이 가능하고, 그룹 어드레스를 지정할 수가 없다.
또한, 그룹 어드레스를 할당하는 능력을 갖고 있는 마스터(12)는, 도 6에 도시하는 바와 같은 GETGRPCAP 커맨드를 반드시 송신할 수 있도록 I3C_v1.1로 규정할 필요가 있다. 한편, 그룹 어드레스를 할당하는 능력을 갖지 않는 마스터(12)는, 도 6에 도시하는 바와 같은 GETGRPCAP 커맨드를 송신하면 안되도록 I3C_v1.1로 규정할 필요가 있다.
도 7에는, GETGRPCAP 커맨드의 제2의 포맷례가 도시되어 있다.
도 7에 도시하는 바와 같이, GETGRPCAP 커맨드를 수신한 디바이스는, ACK 응답하고 나서, 제1의 그룹 관련 능력 정보(GRPCAP1) 및 제2의 그룹 관련 능력 정보(GRPCAP2)를 송신한다. 제1의 그룹 관련 능력 정보(GRPCAP1)에서는, 그룹 관리 능력을 갖는지의 여부를 나타내는 플래그가 송신되고, 제2의 그룹 관련 능력 정보(GRPCAP2)에서는, 그룹 소속 능력을 갖는지의 여부를 나타내는 플래그에 더하여, 자신에게 할당되어 있는 그룹 어드레스가 송신된다. 또한, 그룹 어드레스가 할당되지 않은 디바이스, 및, 그룹 소속 능력을 갖지 않는 디바이스는, 제2의 그룹 관련 능력 정보의 그룹 어드레스로서 7'h00(할당 금지)를 송신한다.
도 8에는, GETGRPCAP 커맨드의 제3의 포맷례가 도시되어 있다.
상술한 바와 같이, 1대의 I3C 슬레이브(13)가 복수의 그룹에 속할 수도 있고, 1대의 I3C 슬레이브(13)에 대해, 적어도 하나 이상의 그룹 어드레스를 할당하는 것이 가능하게 된다. 따라서, GETGRPCAP 커맨드를 수신한 I3C 슬레이브(13)는, 자신에게 할당 가능한 그룹 어드레스의 개수를, 커런트 마스터(12C)에 통지할 수 있다.
도 8에 도시하는 바와 같이, 그룹 관련 능력 정보(GRPCAP)는, 0비트째부터 2비트째까지, 그룹 어드레스의 슬롯수(할당 가능한 개수)가 송신된다. 또한, 그룹 소속 능력을 갖지 않는 디바이스는, 예를 들면, 0비트째부터 2비트째까지를 전부 0을 송신함으로써, 그 취지를 나타낼 수 있다. 또한, 3비트째부터 6비트째까지는 리저브로 되어 있고, 7비트째에, 그룹 관리 능력을 갖는지의 여부를 나타내는 플래그가 송신된다.
또한, 도 8에 도시하는 예에서는, 그룹 어드레스의 슬롯수는 3비트로 표시되어 있지만, 그것으로 한정되는 일 없이, 규격상 최대의 슬롯수에 응하여 비트 폭을 결정할 수 있다.
이상과 같은 포맷의 GETGRPCAP 커맨드를 이용하여, 커런트 마스터(12C)는, 버스 IF(11)에 참가하고 있는 모든 디바이스의 그룹 관리 능력 및 그룹 소속 능력을 인식할 수 있다.
<SETGRPA 커맨드의 포맷례>
도 9에는, 도 4의 스텝 S19에서 송신되는 SETGRPA 커맨드의 제1의 포맷례가 도시되어 있다.
도 9에 도시하는 예에서는, 우선, 커런트 마스터(12C)는, 스타트 컨디션(S)을 발행하고, 버스 IF(11)에 참가하고 있는 모든 디바이스를 지정하는 어드레스 7'h7E를 송신하는데 뒤이어서, 그룹 어드레스의 할당을 지시하는 커먼 커맨드 코드(SETGRPA CCC)를 송신한다.
그리고, 커런트 마스터(12C)는, 리퀘스트(Sr)에 뒤이어서 슬레이브 어드레스(Slave Address)를 송신하고, 그 슬레이브 어드레스의 I3C 슬레이브(13)에 대해 할당하는 7비트의 어드레스값의 그룹 어드레스를 송신한다. 또한, 여기서 송신되는 슬레이브 어드레스에는, 다이내믹 어드레스, 또는, 이미 할당완료의 그룹 어드레스를 지정할 수 있다.
그리고, SETGRPA 커맨드를 수신한 디바이스가, 그룹 관리 능력 또는 그룹 소속 능력을 갖는 경우, 그 디바이스는, ACK 응답한다. 또한, 그 디바이스는, 그룹 어드레스가 아직도 할당되지 않은 경우, 수신한 어드레스값의 그룹 어드레스를, 자신의 그룹 어드레스로서 설정한다. 또한, 그 디바이스가, 그룹 어드레스가 이미 할당되어 있는 경우, 수신한 어드레스값의 그룹 어드레스를, 자신의 그룹 어드레스로서 갱신한다.
한편, SETGRPA 커맨드를 수신한 디바이스가, 그룹 관리 능력 및 그룹 소속 능력을 갖지 않는 경우, 그 디바이스는, NACK 응답하여야 한다. 예를 들면, I3C_v1.0의 규격에서는, 서포트하지 않는 다이렉트 커먼 커맨드 코드(Direct CCC)를 수신한 디바이스는, NACK 응답하는 것이 규정되어 있다. 그리고, SETGRPA 커맨드는, I3C_v1.0의 규격에서는 규정되어 있지 않기 때문에, I3C_v1.0에 준거한 디바이스는, SETGRPA 커맨드에 대해서는, 반드시, NACK 응답하게 된다.
또한, 그룹 어드레스를 할당하는 능력을 갖고 있는 마스터(12)는, 도 9에 도시하는 바와 같은 SETGRPA 커맨드를 반드시 송신할 수 있도록 I3C_v1.1로 규정할 필요가 있다. 한편, 그룹 어드레스를 할당하는 능력을 갖지 않는 마스터(12)는, 도 9에 도시하는 바와 같은 SETGRPA 커맨드를 송신하면 안되도록 I3C_v1.1로 규정할 필요가 있다.
도 10에는, SETGRPA 커맨드의 제2의 포맷례가 도시되어 있다.
상술한 바와 같이, 1대의 I3C 슬레이브(13)가 복수의 그룹에 속하는 것도 가능하고, 1대의 I3C 슬레이브(13)에 대해, 적어도 하나 이상의 그룹 어드레스를 할당하는 것이 가능하게 되다.
따라서 커런트 마스터(12C)는, 그룹 어드레스의 할당을 지시하는 커먼 커맨드 코드(SETGRPA CCC)를 송신한 후, 슬레이브 어드레스(Slave Address)에 뒤이어서, 그 슬레이브 어드레스의 I3C 슬레이브(13)에 대해 할당하는 것이 가능한 개수분의 valid flag 및 그룹 어드레스의 어드레스값을 송신한다.
또한, SETGRPA 커맨드로 복수의 그룹 어드레스를 할당하는 경우, 슬레이브 어드레스에는 다이내믹 어드레스만이 지정 가능하게 되고, 그룹 어드레스의 지정은 금지된다. 즉, I3C 슬레이브(13)를 개별적으로 수신처로 하는 다이내믹 어드레스를 사용하여, 그룹 어드레스의 할당이 행하여진다.
또한, valid=0의 슬롯은 그룹 어드레스를 무효로 하고, valid=1의 슬롯은 그룹 어드레스를 유효로 한다. 그리고, 커런트 마스터(12C)는, 그룹 어드레스를 할당한 디바이스의 그룹 어드레스의 슬롯수만큼, 그룹 어드레스를 설정하는 바이트를 송신하여야 한다. 이때, 예를 들면, 바이트수가 슬롯수 미만인 경우, 그 디바이스는, 수신한 바이트수만큼 그룹 어드레스를 설정하고, 부족한 분의 설정은 행하지 않는다. 또한, 예를 들면, 바이트수가 슬롯수보다 큰 경우, 그 디바이스는, 슬롯수를 초과한 분의 바이트는 무시한다.
이상과 같은 포맷의 SETGRPA 커맨드를 이용하여, 커런트 마스터(12C)는, 버스 IF(11)에 참가하고 있는 I3C 디바이스에 대해, 그룹 어드레스를 할당할 수 있다.
<DEFGRPS 커맨드의 포맷례>
도 11에는, 도 4의 스텝 S21에서 송신되는 DEFGRPS 커맨드의 제1의 포맷례가 도시되어 있다.
상술한 바와 같이, DEFGRPS 커맨드에 의해, 그룹 관리 능력을 갖는 마스터(12)끼리, 그룹 관련 능력 정보를 공유할 수 있다.
도 11에 도시하는 예에서는, 우선, 커런트 마스터(12C)는, 스타트 컨디션(S)을 발행하고, 버스 IF(11)에 참가하고 있는 모든 디바이스를 지정하는 어드레스 7'h7E를 송신하는데 뒤이어서, 그룹 어드레스에 관한 정보의 공유를 지시하는 DEFGRPS 커맨드(DEFGRPS CCC)를 송신한다. 또한, 커런트 마스터(12C)는, 커런트 마스터(12C)가 존재를 인식하고 있는 버스 IF(11)에 참가하고 있는 모든 디바이스의 개수(Count), 즉, 후속으로 송신하는 데이터의 조수(組數)(the number of combinations of data)를 송신한다.
그에 뒤이어서, 커런트 마스터(12C)는, 커런트 마스터(12C) 자신의 다이내믹 어드레스(DA), 그룹 관련 능력 정보(GRPCAP), 그룹 어드레스(GRPA), 및 GAvalid를 송신한다. 그 후, 커런트 마스터(12C)는, 버스 IF(11)에 참가하고 있는 모든 디바이스의 개수분만큼, 같은 데이터를 반복해서 송신한다. 또한, I3C 디바이스에 관해서는 다이내믹 어드레스(DA)가 송신되고, I2C 디바이스에 관해서는 스태틱 어드레스(SA)가 송신된다.
예를 들면, GAvalid는, 그룹 소속 능력을 갖지 않는 경우에는 1'b0이 송신되고, 그룹 소속 능력을 갖지만 그룹 어드레스가 아직 할당되지 않은 경우에는 1'b0이 송신되고, 그룹 소속 능력을 가지며 그룹 어드레스가 할당완료인 경우에는 1'b1이 송신된다. 또한, 그룹 어드레스는, 그룹 소속 능력을 갖지 않는 경우에는 7'h00이 송신되고, 그룹 소속 능력을 갖지만 그룹 어드레스가 아직도 할당되지 않은 경우에는 7'h00이 송신되고, 그룹 소속 능력을 가지며 그룹 어드레스가 할당완료인 경우에는 어드레스값이 송신된다.
또한, 그룹 어드레스를 할당하는 능력을 갖고 있는 마스터(12)는, 도 11에 도시하는 바와 같은 DEFGRPS 커맨드를 반드시 송신할 수 있도록 I3C_v1.1로 규정할 필요가 있다. 한편, 그룹 어드레스를 할당하는 능력을 갖지 않는 마스터(12)는, 도 11에 도시하는 바와 같은 DEFGRPS 커맨드를 송신하면 안되도록 I3C_v1.1로 규정할 필요가 있다.
그룹 어드레스를 할당하는 능력을 갖지 않는 마스터(12)는, DEFGRPS 커맨드를 수신하여도 무시하여야 한다. 예를 들면, I3C_v1.0에서는, 서포트하지 않는 브로드캐스트 커먼 커맨드 코드(Broadcast CCC)를 수신한 디바이스는, 그 커맨드를 무시하는 것이 규정되어 있다. 그리고, DEFGRPS 커맨드는, I3C_v1.0의 규격에서는 규정되어 있지 않기 때문에, I3C_v1.0에 준거한 디바이스는, DEFGRPS 커맨드에 대해서는, 반드시, 무시하게 된다.
그리고, 그룹 어드레스를 할당하는 능력을 갖고 있는 마스터(12)는, DEFGRPS 커맨드를 수신할 수 있어야 한다.
도 12에는, DEFGRPS 커맨드의 제2의 포맷례가 도시되어 있다.
도 12에 도시하는 DEFGRPS 커맨드에서는, DEFGRPS 커맨드(DEFGRPS CCC)에 뒤이어서, 커런트 마스터(12C)가 존재를 인식하고 있는 I3C 디바이스의 개수(Count), 즉, 후속으로 송신하는 데이터의 조수를 송신한다. 즉, I2C 디바이스는, 그룹 관리 능력 및 그룹 소속 능력의 어느것도 갖지 않는 것은 명백하고, I3C 디바이스에 관해서만 그룹 관련 능력 정보를 공유하도록 하여도 좋다.
그에 뒤이어서, 커런트 마스터(12C)는, 커런트 마스터(12C) 자신의 다이내믹 어드레스(DA), 그룹 관리 능력 정보(GETGRPCAP 커맨드에서 취득한 플래그), 그룹 어드레스(GRPA), 그룹 소속 능력 정보(GETGRPCAP 커맨드에서 취득한 플래그)를 송신한다. 그 후, 커런트 마스터(12C)는, I3C 디바이스의 개수분만큼, 같은 데이터를 반복해서 송신한다. 또한, 그룹 어드레스(GRPA)로서, 그룹 어드레스가 아직 할당되지 않은 경우에는, 7'h00이 송신되고, 그룹 소속 능력 정보를 갖는 I3C 디바이스에 대해 그룹 어드레스가 할당완료인 경우, 그 어드레스값이 송신된다.
또한, 도 12에 도시하는 DEFGRPS 커맨드의 제2의 포맷례에서는, 1디바이스분의 정보를 2바이트 영역에 채워서 보내고, 또한, I2C 디바이스분의 정보를 송신하지 않음으로써, 송신 데이터량의 삭감을 도모할 수 있다.
도 13에는, DEFGRPS 커맨드의 제3의 포맷례가 도시되어 있다.
도 13에 도시하는 DEFGRPS 커맨드에서는, DEFGRPS 커맨드(DEFGRPS CCC)에 뒤이어서, 커런트 마스터(12C)가 존재를 인식하고 있는 버스 IF(11)에 참가하고 있는 모든 디바이스의 개수(Count), 즉, 후속으로 송신하는 데이터의 조수가 송신된다.
그에 뒤이어서, 커런트 마스터(12C)는, 커런트 마스터(12C) 자신의 다이내믹 어드레스(DA), 그룹 관련 능력 정보(GRPCAP), 그룹 어드레스(GRPA), 및 GAvalid를 송신한다. 이때, 커런트 마스터(12C)는, 그룹 관련 능력 정보(GRPCAP)에서, 도 8을 참조하여 설명한 것과 마찬가지로, 그룹 어드레스의 슬롯수를 송신한다. 그리고, 도 10을 참조하여 설명한 것과 마찬가지로, 그룹 어드레스의 슬롯수와 같은 바이트수만큼의 valid flag 및 그룹 어드레스를 송신한다.
또한, 도 13에 도시하는 DEFGRPS 커맨드의 제3의 포맷례에서는, 디바이스마다 할당될 수 있는 그룹 어드레스의 슬롯수와, 그룹 어드레스 슬롯수만큼, 그룹 어드레스의 정보를 송신한다.
이상과 같은 포맷의 DEFGRPS 커맨드를 이용하여, 커런트 마스터(12C)는, 세컨드리 마스터(12S)와의 사이에서, 버스 IF(11)에 참가하고 있는 디바이스의 그룹 어드레스 관리 능력, 그룹 어드레스의 할당 상황, 및, 그룹 어드레스의 어드레스값을 공유할 수 있다.
<그룹 어드레스를 이용한 통신 포맷>
도 14 내지 도 16을 참조하여, 그룹 어드레스를 이용한 통신에서 이용되는 통신 포맷에 관해 설명한다.
도 14에는, 기록 전송(I3C Directed CCC Write)에서의 통신 포맷의 한 예가 도시되어 있다.
도 14에 도시하는 바와 같이, 임의의 복수대의 I3C 슬레이브(13)를 상대처로 하여 커런트 마스터(12C)로부터 송신되는 그룹 어드레스(I3C Group Address)에 대해, I3C 슬레이브(13)로부터 ACK가 회신되고, 그 후, 그 그룹을 대상으로 하여 기록 데이터(Optional Write Data)가 송신된다. 그리고, 필요한 데이터량만큼, 그 그룹 어드레스를 상대처로 한 데이터의 송신이 행하여진다.
또한, 동일한 그룹에 소속하는 복수대의 I3C 슬레이브(13) 중, 다수의 I3C 슬레이브(13)가 ACK를 회신하고, 일부의 I3C 슬레이브(13)가 NACK를 송신한 경우, 커런트 마스터(12C)가 NACK를 인식할 수 없는 것도 상정되지만, 그 후의 통신 처리에서의 에러 검출로 대응함에 의해, 정상적인 통신을 행하는 것이 가능하다.
도 15에는, 기록 전송(I3C Private Write) 및 판독 전송(I3C Private Read)에서의 통신 포맷의 한 예가 도시되어 있다.
도 15에 도시하는 4개의 통신 포맷 중의, 상측의 2개가 기록 전송에서의 통신 포맷을 나타내고 있고, 하측의 2개가 기록 전송에서의 통신 포맷을 나타내고 있다.
기록 전송에서는, 임의의 복수대의 I3C 슬레이브(13)를 상대처로 하여 커런트 마스터(12C)로부터 송신되는 그룹 어드레스(I3C Group Address)에 대해, I3C 슬레이브(13)로부터 ACK가 회신되고, 그 후, 그 그룹을 대상으로 하여 기록하는 N개의 데이터(Write Data-1∼Write Data-N)가 송신된다.
판독 전송에서는, 동일한 그룹에 소속하는 복수대의 I3C 슬레이브(13)에 관해, 순차적으로, 각각의 I3C 슬레이브(13)로부터 N개의 데이터(Read Data-1∼Read Data-N)가 판독된다. 즉, 복수대의 I3C 슬레이브(13)로부터 판독된 데이터가 컨플릭트를 발생하지 않도록, 각각의 I3C 슬레이브(13)로부터 데이터를 판독하는 타이밍이 다른 것이 되도록 제어할 필요가 있다.
도 16에는, 기록 전송(I3C Private Write) 및 판독 전송(I3C Private Read)에서의 통신 포맷의 한 예가 도시되어 있다.
도 15에 도시한 통신 포맷과 마찬가지로, 기록 전송에서는, 그룹을 대상으로 하여 기록하는 N개의 데이터가 송신되고, 판독 전송에서는, 동일한 그룹의 I3C 슬레이브(13)마다 순차적으로, N개의 데이터가 판독된다.
예를 들면, 스타트 컨디션(S만, Sr는 포함하지 않음)의 후의 그룹 어드레스(I3C Group Address)는, 커런트 마스터(12C)측부터 오픈 드레인 출력에 의해 400㎑ 정도로 데이터 전송이 행하여진다. 이때, 최초의 1바이트만 오픈 드레인 출력으로 하고, 그 이후의 비트(6bit+R/W)는, 푸시풀 출력에 의해 12.5㎒로 데이터 전송되도록 하여도 좋다.
<컴퓨터의 구성례>
또한, 상술한 플로우 차트를 참조하여 설명한 각 처리는, 반드시 플로우 차트로서 기재된 순서에 따라 시계열로 처리할 필요는 없고, 병렬적 또는 개별적으로 실행되는 처리(예를 들면, 병렬 처리 또는 오브젝트에 의한 처리)도 포함하는 것이다. 또한, 프로그램은, 단일한 CPU에 의해 처리되는 것이라 좋고, 복수의 CPU에 의해 분산 처리되는 것이라 좋다.
또한, 상술한 일련의 처리(통신 방법)는, 하드웨어에 의해 실행할 수도 있고, 소프트웨어에 의해 실행할 수도 있다. 일련의 처리를 소프트웨어에 의해 실행하는 경우에는, 그 소프트웨어를 구성하는 프로그램이, 전용의 하드웨어에 조립되어 있는 컴퓨터, 또는, 각종의 프로그램을 인스톨함으로써, 각종의 기능을 실행하는 것이 가능한, 예를 들면 범용의 퍼스널 컴퓨터 등에, 프로그램이 기록된 프로그램 기록 매체로부터 인스톨된다.
도 14는, 상술한 일련의 처리를 프로그램에 의해 실행하는 컴퓨터의 하드웨어의 구성례(마스터(12)가 행하는 처리를 실행하는 처리 실행부의 한 예)를 도시하는 블록도이다.
컴퓨터에서, 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) 및 클록 신호선(15))에 접속된다.
이상과 같이 구성된 컴퓨터에서는, CPU(101)가, 예를 들면, ROM(102) 및 EEPROM(104)에 기억되어 있는 프로그램을, 버스(105)를 통하여 RAM(103)에 로드하여 실행함에 의해, 상술한 일련의 처리가 행하여진다. 또한, 컴퓨터(CPU(101))가 실행하는 프로그램은, ROM(102)에 미리 기록하여 두는 외에, 입출력 인터페이스(105)를 통하여 외부로부터 EEPROM(104)에 인스톨하거나, 갱신하거나 할 수 있다.
<구성의 조합례>
또한, 본 기술은 이하와 같은 구성도 취할 수 있다.
(1)
버스를 통한 통신의 주도권을 갖는 통신 장치로서,
상기 통신 장치에 의한 제어에 따라 통신을 행하는 다른 통신 장치와의 사이에서의 신호의 송수신을 제어하는 송수신 제어부와,
상기 버스에 참가하고 있는 2대 이상의 상기 다른 통신 장치 중의, 임의의 복수대의 상기 다른 통신 장치를 하나의 그룹으로 하여, 그 그룹을 상대처로 하는 그룹 어드레스를 사용한 통신을 행하기 위해, 상기 그룹에 소속하여 통신을 행할 수 있는 그룹 소속 능력을 갖는 상기 다른 통신 장치를 인식하는 처리, 및,
상기 그룹 소속 능력을 갖는다고 인식된 상기 다른 통신 장치에 대해 상기 그룹 어드레스를 할당하는 처리를
행하는 처리 실행부를
구비하는 통신 장치.
(2)
상기 처리 실행부는, 상기 그룹 소속 능력을 갖는 상기 다른 통신 장치와, 상기 그룹 소속 능력을 갖지 않는 상기 다른 통신 장치가 혼재하여 상기 버스에 참가하고 있는 상태에서, 상기 그룹 소속 능력을 갖는 상기 다른 통신 장치를 개별적으로 수신처로 하여 상기 그룹 어드레스의 할당을 지시하는 커맨드를 송신하는
상기 (1)에 기재된 통신 장치.
(3)
상기 통신 장치로부터 상기 통신의 주도권이 양도되면 상기 통신 장치로서 기능하는 것이 가능하고, 상기 통신의 주도권을 갖지 않을 때에는 상기 통신 장치에 의한 제어에 따라 통신을 행하는 특정한 다른 통신 장치가 상기 버스에 참가할 수 있고,
상기 처리 실행부는, 상기 버스에 참가하고 있는 상기 특정한 다른 통신 장치 중의, 상기 그룹 어드레스를 관리하여 통신을 행할 수 있는 그룹 관리 능력을 갖는 상기 특정한 다른 통신 장치를 인식하는 처리를 행하는
상기 (1) 또는 (2)에 기재된 통신 장치.
(4)
상기 처리 실행부는, 상기 그룹 관리 능력을 갖는다고 인식된 상기 특정한 다른 통신 장치와의 사이에서, 상기 다른 통신 장치의 그룹 소속 능력의 인식 상황, 상기 특정한 다른 통신 장치의 그룹 관리 능력의 인식 상황, 및, 상기 다른 통신 장치에 대한 상기 그룹 어드레스의 할당 상황을 공유하는 처리를 행하는
(3)에 기재된 통신 장치.
(5)
상기 버스에, 복수대의 상기 그룹 관리 능력을 갖는 상기 특정한 다른 통신 장치가 접속되어 있는 상태에서,
상기 처리 실행부는, 상기 그룹 어드레스에 관한 정보의 공유를 지시하는 커맨드를 송신함으로써, 상기 다른 통신 장치의 그룹 소속 능력의 인식 상황, 상기 특정한 다른 통신 장치의 그룹 관리 능력의 인식 상황, 및, 상기 다른 통신 장치에 대한 상기 그룹 어드레스의 할당 상황의 공유를 행하는
(4)에 기재된 통신 장치.
(6)
버스를 통한 통신의 주도권을 갖는 통신 장치의 통신 방법으로서,
상기 통신 장치에 의한 제어에 따라 통신을 행하는 다른 통신 장치와의 사이에서의 신호의 송수신을 제어하고,
상기 버스에 참가하고 있는 2대 이상의 상기 다른 통신 장치 중의, 임의의 복수대의 상기 다른 통신 장치를 하나의 그룹으로 하여, 그 그룹을 상대처로 하는 그룹 어드레스를 사용한 통신을 행하기 위해, 상기 그룹에 소속하여 통신을 행할 수 있는 그룹 소속 능력을 갖는 상기 다른 통신 장치를 인식하는 처리를 행하고,
상기 그룹 소속 능력을 갖는다고 인식된 상기 다른 통신 장치에 대해 상기 그룹 어드레스를 할당하는 처리를 행하는
스텝을 포함하는 통신 방법.
(7)
버스를 통한 통신의 주도권을 갖는 통신 장치가 내장하는 컴퓨터에 실행시키는 프로그램에 있어서,
상기 통신 장치에 의한 제어에 따라 통신을 행하는 다른 통신 장치와의 사이에서의 신호의 송수신을 제어하고,
상기 버스에 참가하고 있는 2대 이상의 상기 다른 통신 장치 중의, 임의의 복수대의 상기 다른 통신 장치를 하나의 그룹으로 하여, 그 그룹을 상대처로 하는 그룹 어드레스를 사용한 통신을 행하기 위해, 상기 그룹에 소속하여 통신을 행할 수 있는 그룹 소속 능력을 갖는 상기 다른 통신 장치를 인식하는 처리를 행하고,
상기 그룹 소속 능력을 갖는다고 인식된 상기 다른 통신 장치에 대해 상기 그룹 어드레스를 할당하는 처리를 행하는
스텝을 포함하는 처리를 실행시키는 프로그램.
(8)
버스를 통한 통신의 주도권을 갖는 통신 장치와, 상기 통신 장치에 의한 제어에 따라 통신을 행하는 다른 통신 장치에 의해 통신이 행하여지는 통신 시스템에 있어서,
상기 통신 장치가,
상기 다른 통신 장치와의 사이에서의 신호의 송수신을 제어하는 송수신 제어부와,
상기 버스에 참가하고 있는 2대 이상의 상기 다른 통신 장치 중의, 임의의 복수대의 상기 다른 통신 장치를 하나의 그룹으로 하여, 그 그룹을 상대처로 하는 그룹 어드레스를 사용한 통신을 행하기 위해, 상기 그룹에 소속하여 통신을 행할 수 있는 그룹 소속 능력을 갖는 상기 다른 통신 장치를 인식하는 처리,
및, 상기 그룹 소속 능력을 갖는다고 인식된 상기 다른 통신 장치에 대해 상기 그룹 어드레스를 할당하는 처리를
행하는 처리 실행부를
구비하는 통신 시스템.
또한, 본 실시의 형태는, 상술한 실시의 형태로 한정된 것이 아니고, 본 개시의 요지를 일탈하지 않는 범위에서 여러 가지의 변경이 가능하다. 또한, 본 명세서에 기재된 효과는 어디까지나 예시이고 한정되는 것이 아니고, 다른 효과가 있어도 좋다.
11 : 버스 IF
12-1 내지 12-3 : 마스터
13-1 내지 13-6 : 슬레이브
14 : 데이터 신호선
15 : 클록 신호선
21 : 마스터 디바이스
22 : 상위층
31 : 슬레이브 디바이스
32 : 상위층
41 : 송수신 제어부
42 : 데이터 수신부
43 : 데이터 송신부
44 : 마스터십 리퀘스트 제어부
45 : 커맨드 해석부
46 : 정보 유지부
47 : 커맨드 송신부
48 : 테이블 유지부
51 : 송수신 제어부
52 : 데이터 수신부
53 : 데이터 송신부
54 : 핫조인 리퀘스트 제어부
55 : 다이내믹 어드레스 유지부
56 : 그룹 어드레스 유지부
57 : 커맨드 해석부
58 : 정보 유지부

Claims (16)

  1. 버스를 통한 통신의 주도권을 갖는 1차 통신 장치로서,
    상기 1차 통신 장치에 의한 제어에 따라 통신을 행하는 복수의 2차 통신 장치와 통신하도록 구성된 통신 회로와,
    상기 1차 통신 장치가 각각의 상기 복수의 2차 통신 장치에 각각의 다이내믹 어드레스를 할당하게 하고,
    상기 1차 통신 장치가 상기 복수의 2차 통신 장치 중 적어도 하나로부터 각각의 능력 정보를 취득하게 하고,
    상기 1차 통신 장치가 상기 복수의 2차 통신 장치 중 적어도 하나에 각각의 그룹 어드레스를 할당하게 하도록 구성된
    제어 회로를 구비하고,
    상기 제어 회로는, 상기 1차 통신 장치가 제2의 커맨드를 송신함으로써 상기 각각의 그룹 어드레스를 할당하도록 구성되고,
    상기 제2의 커맨드는, 제2의 커맨드 코드, 할당된 다이내믹 어드레스, 및 상기 각각의 그룹 어드레스를 포함하는 것을 특징으로 하는 1차 통신 장치.
  2. 제1항에 있어서,
    상기 제어 회로는, 상기 복수의 2차 통신 장치 중 하나가 상기 버스를 통한 상기 통신의 주도권을 갖고 그룹 어드레스 할당을 행하는 능력을 갖는지 여부를 판정하도록 구성되는 것을 특징으로 하는 1차 통신 장치.
  3. 제2항에 있어서,
    상기 제어 회로가 상기 복수의 2차 통신 장치 중 하나인 제1의 2차 통신 장치가 상기 버스를 통한 상기 통신의 주도권을 갖는 능력을 갖고 상기 그룹 어드레스 할당을 행하는 능력을 갖는 것으로 판정하는 경우, 상기 제어 회로는, 상기 1차 통신 장치가 할당된 그룹 어드레스를 상기 제1의 2차 통신 장치에 통지하도록 구성되는 것을 특징으로 하는 1차 통신 장치.
  4. 제3항에 있어서,
    상기 제어 회로는, 상기 1차 통신 장치가 제1의 커맨드를 송신함에 의해 상기 제1의 2차 통신 장치에 상기 할당된 그룹 어드레스를 통지하도록 구성되고,
    상기 제1의 커맨드는, 제1의 커맨드 코드, 카운트, 상기 1차 통신 장치에 관한 정보, 및 상기 복수의 2차 통신 장치 중 적어도 하나에 관한 정보를 포함하는 것을 특징으로 하는 1차 통신 장치.
  5. 제1항에 있어서,
    상기 제어 회로는,
    상기 복수의 2차 통신 장치 중 하나가 상기 버스를 통한 상기 통신의 주도권을 갖는 능력을 갖는지 여부를 판정하고,
    상기 제어 회로가 상기 복수의 2차 통신 장치 중 하나인 제2의 2차 통신 장치가 상기 버스를 통한 상기 통신의 주도권을 갖는 능력을 갖는 것으로 판정하는 경우, 상기 1차 통신 장치가 상기 제2의 2차 통신 장치에 상기 복수의 2차 통신 장치에 대한 각각의 장치 정보를 통지하도록 구성되는 것을 특징으로 하는 1차 통신 장치.
  6. 제5항에 있어서,
    상기 각각의 장치 정보는, 디바이스 ID, 기능 정보, 스태틱 어드레스 및 할당된 다이내믹 어드레스로 구성되는 그룹으로부터 선택된 하나 이상을 포함하는 것을 특징으로 하는 1차 통신 장치.
  7. 삭제
  8. 제1항에 있어서,
    상기 제어 회로는, 상기 1차 통신 장치가 판독 커맨드를 발행하도록 구성되고,
    상기 그룹 어드레스는, 상기 판독 커맨드에서 지정되는 것이 금지되는 것을 특징으로 하는 1차 통신 장치.
  9. 제1항에 있어서,
    상기 각각의 능력 정보는, 대응하는 2차 통신 장치의 I3C 버전에 대응하는 정보를 포함하는 것을 특징으로 하는 1차 통신 장치.
  10. 제1항에 있어서,
    상기 각각의 능력 정보는, 대응하는 2차 통신 장치의 할당 가능한 그룹 어드레스 슬롯수를 나타내는 정보를 포함하는 것을 특징으로 하는 1차 통신 장치.
  11. 제1항에 있어서,
    상기 통신 회로 및/또는 상기 제어 회로는, 각각 반도체 집적 회로로 구성되는 것을 특징으로 하는 1차 통신 장치.
  12. 제1항에 있어서,
    상기 제어 회로는, 상기 1차 통신 장치가 특정한 그룹 어드레스를 갖는 상기 복수의 2차 통신 장치 중 하나에 기록 커맨드를 발행하도록 구성되는 것을 특징으로 하는 1차 통신 장치.
  13. 제12항에 있어서,
    상기 1차 통신 장치는, 상기 기록 커맨드에 응답하여, 상기 특정한 그룹 어드레스를 갖는 상기 복수의 2차 통신 장치 중 하나로부터 확인 응답을 수신하도록 구성되는 것을 특징으로 하는 1차 통신 장치.
  14. 제1항에 있어서,
    상기 복수의 2차 통신 장치 중 적어도 하나로부터 획득된 상기 각각의 능력 정보를 저장하도록 구성된 레지스터를 더 구비하는 것을 특징으로 하는 1차 통신 장치.
  15. 버스를 통한 통신의 주도권을 갖는 1차 통신 장치에 의해 행해지는 통신 방법으로서,
    상기 1차 통신 장치에 의한 제어에 따라 통신을 행하도록 구성된 복수의 2차 통신 장치와 통신하고,
    상기 1차 통신 장치가 각각의 상기 복수의 2차 통신 장치에 각각의 다이내믹 어드레스를 할당하게 하고,
    상기 1차 통신 장치가 상기 복수의 2차 통신 장치 중 적어도 하나로부터 각각의 능력 정보를 취득하게 하고,
    상기 1차 통신 장치가 상기 복수의 2차 통신 장치 중 적어도 하나에 각각의 그룹 어드레스를 할당하게 하고,
    상기 1차 통신 장치가 제2의 커맨드를 송신함으로써 상기 각각의 그룹 어드레스를 할당하게 하고,
    상기 제2의 커맨드는, 제2의 커맨드 코드, 할당된 다이내믹 어드레스, 및 상기 각각의 그룹 어드레스를 포함하는 것을 특징으로 하는 통신 방법.
  16. 버스를 통한 통신의 주도권을 갖는 1차 통신 장치와,
    상기 1차 통신 장치에 의한 제어에 따라 통신을 행하도록 구성된 복수의 2차 통신 장치를 구비하고,
    상기 1차 통신 장치는,
    상기 복수의 2차 통신 장치와 통신하도록 구성된 통신 회로와,
    상기 1차 통신 장치가 각각의 상기 복수의 2차 통신 장치에 각각의 다이내믹 어드레스를 할당하게 하고,
    상기 1차 통신 장치가 상기 복수의 2차 통신 장치 중 적어도 하나로부터 각각의 능력 정보를 취득하게 하고,
    상기 1차 통신 장치가 상기 복수의 2차 통신 장치 중 적어도 하나에 각각의 그룹 어드레스를 할당하게 하도록 구성된
    제어 회로를 포함하고,
    상기 제어 회로는, 상기 1차 통신 장치가 제2의 커맨드를 송신함으로써 상기 각각의 그룹 어드레스를 할당하도록 구성되고,
    상기 제2의 커맨드는, 제2의 커맨드 코드, 할당된 다이내믹 어드레스, 및 상기 각각의 그룹 어드레스를 포함하는 것을 특징으로 하는 통신 시스템.
KR1020197034083A 2017-06-08 2018-05-25 통신 장치, 통신 방법, 프로그램, 및, 통신 시스템 KR102645211B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2017113850A JP6983542B2 (ja) 2017-06-08 2017-06-08 通信装置、通信方法、プログラム、および、通信システム
JPJP-P-2017-113850 2017-06-08
PCT/JP2018/020124 WO2018225536A1 (en) 2017-06-08 2018-05-25 Communication device, communication method, program, and communication system

Publications (2)

Publication Number Publication Date
KR20200016845A KR20200016845A (ko) 2020-02-17
KR102645211B1 true KR102645211B1 (ko) 2024-03-08

Family

ID=62567713

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197034083A KR102645211B1 (ko) 2017-06-08 2018-05-25 통신 장치, 통신 방법, 프로그램, 및, 통신 시스템

Country Status (8)

Country Link
US (1) US11442887B2 (ko)
EP (1) EP3635567B1 (ko)
JP (1) JP6983542B2 (ko)
KR (1) KR102645211B1 (ko)
CN (1) CN110720094B (ko)
SG (1) SG11201909858TA (ko)
TW (1) TWI757492B (ko)
WO (1) WO2018225536A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11250146B2 (en) 2018-12-03 2022-02-15 Hewlett-Packard Development Company, L.P. Logic circuitry
WO2021080607A1 (en) 2019-10-25 2021-04-29 Hewlett-Packard Development Company, L.P. Logic circuitry package
BR112021010651A2 (pt) 2018-12-03 2021-08-17 Hewlett-Packard Development Company, L.P. pacote de circuitos lógicos
CA3121151A1 (en) 2018-12-03 2020-06-11 Hewlett-Packard Development Company, L.P. Logic circuitry
CA3121147C (en) 2018-12-03 2023-08-22 Hewlett-Packard Development Company, L.P. Logic circuitry
US11292261B2 (en) 2018-12-03 2022-04-05 Hewlett-Packard Development Company, L.P. Logic circuitry package
MX2021006229A (es) 2018-12-03 2021-08-11 Hewlett Packard Development Co Conjunto de circuitos logicos.
HUE063370T2 (hu) 2018-12-03 2024-01-28 Hewlett Packard Development Co Logikai áramkör
US11338586B2 (en) 2018-12-03 2022-05-24 Hewlett-Packard Development Company, L.P. Logic circuitry
KR20210087499A (ko) * 2018-12-03 2021-07-12 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 로직 회로
DE102019201533A1 (de) * 2019-02-07 2020-08-13 Robert Bosch Gmbh Systemkomponente mit konfigurierbarem Kommunikationsverhalten und Verfahren zum Betreiben einer solchen Systemkomponente
US11106620B1 (en) * 2020-04-07 2021-08-31 Qualcomm Incorporated Mixed signal device address assignment
US11321269B1 (en) 2020-12-09 2022-05-03 Nxp B.V. Dynamic address allocation in improved inter-integrated circuit communication
EP4075288B1 (en) * 2021-04-12 2023-10-18 STMicroelectronics S.r.l. Dynamic addressing system and method in a digital communication interface
CN115632900B (zh) * 2022-08-31 2023-09-01 超聚变数字技术有限公司 一种计算设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101453313B (zh) * 2007-12-06 2013-03-20 鸿富锦精密工业(深圳)有限公司 主从设备通信电路
US20120066423A1 (en) * 2010-09-13 2012-03-15 Boon Siang Choo Inter-integrated circuit bus multicasting
CN104168524A (zh) * 2013-05-17 2014-11-26 无锡华润矽科微电子有限公司 数字功放设备的控制电路及其控制方法
US9559389B2 (en) * 2013-07-10 2017-01-31 Datang Nxp Semiconductors Co., Ltd. Daisy chain communication bus and protocol
US9996488B2 (en) * 2013-09-09 2018-06-12 Qualcomm Incorporated I3C high data rate (HDR) always-on image sensor 8-bit operation indicator and buffer over threshold indicator
US9921835B2 (en) 2014-03-24 2018-03-20 Inesc Tec—Instituto De Engenharia De Sistemas E Computadores, Tecnologia E Ciã?Ncia Control module for multiple mixed-signal resources management
KR101711698B1 (ko) * 2014-05-26 2017-03-02 한국전자통신연구원 데이터 처리 방법, 및 데이터 처리 장치
US9960981B2 (en) * 2015-10-08 2018-05-01 Sony Corporation Communication device, communication method, program, and communication system
US20170255588A1 (en) * 2016-03-07 2017-09-07 Qualcomm Incorporated Multiprotocol i3c common command codes
CN106649180B (zh) * 2016-09-09 2019-08-20 锐捷网络股份有限公司 一种解除i2c总线死锁的方法及装置

Also Published As

Publication number Publication date
EP3635567A1 (en) 2020-04-15
EP3635567B1 (en) 2022-07-20
TWI757492B (zh) 2022-03-11
SG11201909858TA (en) 2019-11-28
JP2018206266A (ja) 2018-12-27
US20200159689A1 (en) 2020-05-21
TW201904249A (zh) 2019-01-16
US11442887B2 (en) 2022-09-13
CN110720094B (zh) 2023-09-12
WO2018225536A1 (en) 2018-12-13
JP6983542B2 (ja) 2021-12-17
CN110720094A (zh) 2020-01-21
KR20200016845A (ko) 2020-02-17

Similar Documents

Publication Publication Date Title
KR102645211B1 (ko) 통신 장치, 통신 방법, 프로그램, 및, 통신 시스템
US10740268B2 (en) Communication system, communication system control method, and program
JP2017500631A5 (ko)
US11169944B2 (en) Communication device, communication method, program, and communication system
CN107562669B (zh) 一种NVMe协议命令处理方法、装置及系统
JP2009230201A (ja) Usbコントローラ、及びバッファメモリ制御方法
US11119955B2 (en) Communication device, communication method, program, and communication system
CN115589398A (zh) I2c地址分配方法及计算设备
TW200539633A (en) System for automatically distributing communication port address
CN105022707B (zh) 接口单元装置
CN113961496A (zh) 通信电路系统、方法、芯片以及存储介质
JP2004062347A (ja) Usbデバイスおよびusbシステム
CN106547713B (zh) 一种分配地址的方法和装置
CN103812893A (zh) 虚拟桌面外部设备传输方法及系统
US11489880B2 (en) Controller to determine a transmission right and control a timing of communication between nodes
US20230315064A1 (en) Network system, communication method, and computer readable medium
CN113190467A (zh) 地址编制方法和装置
CN105530197A (zh) SoC节点之间资源共享配置方法和设备
KR101876636B1 (ko) 메시지 송수신 장치 및 방법
JPH0823857B2 (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
GRNT Written decision to grant