KR20200130140A - 직렬 주변장치 인터페이스 기능을 가진 통신 시스템 - Google Patents

직렬 주변장치 인터페이스 기능을 가진 통신 시스템 Download PDF

Info

Publication number
KR20200130140A
KR20200130140A KR1020200052734A KR20200052734A KR20200130140A KR 20200130140 A KR20200130140 A KR 20200130140A KR 1020200052734 A KR1020200052734 A KR 1020200052734A KR 20200052734 A KR20200052734 A KR 20200052734A KR 20200130140 A KR20200130140 A KR 20200130140A
Authority
KR
South Korea
Prior art keywords
spi
node
transceiver
slave
command
Prior art date
Application number
KR1020200052734A
Other languages
English (en)
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 KR20200130140A publication Critical patent/KR20200130140A/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/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
    • 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
    • G06F13/4072Drivers or receivers
    • 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/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • 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/4295Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
    • 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/0002Serial port, e.g. RS232C
    • 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)

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)
  • Dc Digital Transmission (AREA)

Abstract

2-와이어 통신 버스에서 노드 트랜시버들의 직렬 주변장치 인터페이스(SPI) 기능을 위한 시스템들 및 기술들이 여기에서 개시된다. 예를 들어, 몇몇 실시예들에서, 노드 트랜시버는 SPI 회로 및 업스트림 또는 다운스트림 트랜시버 회로를 포함할 수 있다. SPI 회로를 통해 수신된 SPI 명령은 노드 트랜시버에 의해 실행되거나, 또는 또 다른 노드 트랜시버 또는 또 다른 노드 트랜시버에 결합된 슬레이브 디바이스에 의한 실행을 위해 2-와이어 버스를 따라 업스트림 또는 다운스트림으로 송신될 수 있다.

Description

직렬 주변장치 인터페이스 기능을 가진 통신 시스템{COMMUNICATION SYSTEMS WITH SERIAL PERIPHERAL INTERFACE FUNCTIONALITY}
전자 구성요소들이 크기가 감소함에 따라 및 성능 기대들이 증가함에 따라, 더 많은 구성요소들이 이전에 비-계장화되거나 또는 덜-계장화된 디바이스들에 포함된다. 몇몇 설정들에서, 이들 구성요소들(예컨대, 차량에서) 사이에서 신호들을 교환하기 위해 사용된 통신 기반시설은 케이블들의 두껍고 무거운 번들들을 요구하여 왔다.
실시예들은 수반된 도면들과 함께 다음의 상세한 설명에 의해 쉽게 이해될 것이다. 이러한 설명을 가능하게 하기 위해, 유사한 참조 숫자들은 유사한 구조적 요소들을 지정한다. 실시예들은 수반된 도면들의 도들에서, 제한으로서가 아닌, 예로서 예시된다.
도 1은 다양한 실시예들에 따른, 예시적인 2-와이어 통신 시스템의 블록도이다.
도 2는 다양한 실시예들에 따른, 도 1의 시스템의 노드에 포함될 수 있는 노드 트랜시버의 블록도이다.
도 3은 다양한 실시예들에 따른, 도 1의 시스템에서 통신을 위해 사용된 동기화 제어 프레임의 일 부분의 다이어그램이다.
도 4는 다양한 실시예들에 따른, 도 1의 시스템에서 통신을 위해 사용된 슈퍼프레임의 다이어그램이다.
도 5는 다양한 실시예들에 따른, 도 1의 시스템의 동작의 상이한 모드들에서 동기화 제어 프레임에 대한 예시적인 포맷들을 예시한다.
도 6은 다양한 실시예들에 따른, 도 1의 시스템의 동작의 상이한 모드들에서 동기화 응답 프레임에 대한 예시적인 포맷들을 예시한다.
도 7은 다양한 실시예들에 따른, 도 2의 버스 프로토콜 회로의 다양한 구성요소들의 블록도이다.
도 8 내지 도 11은 여기에서 설명된 버스 프로토콜들의 다양한 실시예들에 따른, 2-와이어 버스를 따르는 정보 교환의 예들을 예시한다.
도 12는 다양한 실시예들에 따른, 2-와이어 버스에 대한 링 토폴로지 및 그것 상에서의 단방향 통신 기법을 예시한다.
도 13은 다양한 실시예들에 따른, 도 1의 시스템에서 노드 또는 호스트로서 작용할 수 있는 디바이스의 블록도이다.
도 14는 다양한 실시예들에 따른, 로컬 노드 직렬 주변장치 인터페이스(SPI) 기능을 포함한 예시적인 2-와이어 통신 시스템의 일 부분의 블록도이다.
도 15a 및 도 15b는 다양한 실시예들에 따른, 로컬 노드 SPI 기능의 구현에서 사용될 수 있는 명령들의 타이밍 도들이다.
도 16은 다양한 실시예들에 따른, 원격 노드 SPI 기능을 포함한 예시적인 2-와이어 통신 시스템의 일 부분의 블록도이다.
도 17은 다양한 실시예들에 따른, 예시적인 원격 노드 SPI 기록 절차의 흐름도이다.
도 18은 다양한 실시예들에 따른, 예시적인 원격 노드 SPI 판독 절차의 흐름도이다.
도 19a 내지 도 19d는 다양한 실시예들에 따른, 원격 노드 SPI 기능의 구현에서 사용될 수 있는 명령들의 타이밍 도들이다.
도 20은 다양한 실시예들에 따른, 원격 주변장치 SPI 기능을 포함한 예시적인 2-와이어 통신 시스템의 일 부분의 블록도이다.
도 21은 다양한 실시예들에 따른, 예시적인 원격 주변장치 SPI 기록 절차의 흐름도이다.
도 22는 도 21의 원격 주변장치 SPI 기록 절차의 실시예에서 수행될 수 있는 동작들의 표이다.
도 23은 다양한 실시예들에 따른, 예시적인 원격 주변장치 SPI 판독 절차의 흐름도이다.
도 24는 도 23의 원격 주변장치 SPI 판독 절차의 실시예에서 수행될 수 있는 동작들의 표이다.
도 25는 다양한 실시예들에 따른, 예시적인 원격 주변장치 SPI 전이중 절차의 흐름도이다.
도 26은 도 25의 원격 주변장치 SPI 전이중 절차의 실시예에서 수행될 수 있는 동작들의 표이다.
도 27은 다양한 실시예들에 따른, 예시적인 원격 주변장치 SPI 벌크 기록 절차의 흐름도이다.
도 28은 도 27의 원격 주변장치 SPI 벌크 기록 절차의 실시예에서 수행될 수 있는 동작들의 표이다.
도 29는 다양한 실시예들에 따른, 마스터 노드에서 데이터 터널 슬롯들의 구성들의 예들을 예시한다.
도 30은 다양한 실시예들에 따른, 마지막 슬레이브 노드에서 데이터 터널 슬롯들의 구성들의 예들을 예시한다.
도 31은 다양한 실시예들에 따른, 마지막이 아닌 슬레이브 노드인 터널 소유자에서 데이터 터널 슬롯들의 구성들의 예들을 예시한다.
도 32 내지 도 33은 다양한 실시예들에 따라, 터널에서의 중간 노드에서 데이터 터널 슬롯들의 구성들의 예들을 예시하며, 중간 노드는 마지막이 아닌 슬레이브 노드이다.
도 34는 다양한 실시예들에 따른, 마지막이 아닌 슬레이브 노드인 터널 응답기에서 데이터 터널 슬롯들의 구성들의 예들을 예시한다.
도 35는 다양한 실시예들에 따라, 데이터 슬롯 크기 및 슬롯들의 수의 함수로서 데이터 터널에서 바이트들의 수의 예를 예시한다.
도 36은 다양한 실시예들에 따른, 데이터 터널 소유자에 대한 예시적인 SPI 패킷 명령 바이트를 예시한다.
도 37은 다양한 실시예들에 따른, 데이터 터널 소유자에 대한 예시적인 SPI 슬레이브 선택/노드 바이트를 예시한다.
도 38은 다양한 실시예들에 따른, 예시적인 터널 소유자 패킷 구조를 예시한다.
도 39 및 도 40은 다양한 실시예들에 따른, 예시적인 터널 소유자 패킷들을 예시한다.
도 41은 다양한 실시예들에 따른, 예시적인 터널 응답기 프로토콜 바이트를 예시한다.
도 42는 다양한 실시예들에 따른, 예시적인 터널 응답기 패킷 구조를 예시한다.
도 43은 다양한 실시예들에 따른, 예시적인 터널 응답기 패킷들을 예시한다.
도 44는 다양한 실시예들에 따른, 예시적인 터널 패킷 흐름들을 예시한다.
도 45는 다양한 실시예들에 따라, SPI-대-집적 회로-간(I2C) 기능을 포함한 예시적인 2-와이어 통신 시스템의 일 부분의 블록도이다.
도 46은 다양한 실시예들에 따른, 예시적인 SPI-대-I2C 기록 절차의 흐름도이다.
도 47은 다양한 실시예들에 따른, 예시적인 SPI-대-I2C 판독 절차의 흐름도이다.
도 48a 및 도 48b는 다양한 실시예들에 따른, SPI-대-I2C 기능의 구현에서 사용될 수 있는 명령들의 타이밍 도들이다.
2-와이어 통신 버스에서 노드 트랜시버들에 대한 직렬 주변장치 인터페이스(SPI) 기능을 위한 시스템들 및 기술들이 여기에서 개시된다. 예를 들어, 몇몇 실시예들에서, 노드 트랜시버는 SPI 회로 및 업스트림 또는 다운스트림 트랜시버 회로를 포함할 수 있다. SPI 회로를 통해 수신된 SPI 명령들은 노드 트랜시버에 의해 실행되거나, 또는 또 다른 노드 트랜시버 또는 또 다른 노드 트랜시버에 결합된 슬레이브 디바이스에 의한 실행을 위해 2-와이어 버스를 따라 업스트림 또는 다운스트림으로 송신될 수 있다.
다음의 상세한 설명에서, 참조는 그 일부를 형성하며 유사한 숫자들이 전체에 걸쳐 유사한 부분들을 지정하고 예시로서 실시될 수 있는 실시예들이 도시되는 수반된 도면들에 대해 이루어진다. 다른 실시예들이 이용될 수 있으며, 본 개시의 범위로부터 벗어나지 않고, 구조적 또는 논리적 변화들이 이루어질 수 있다는 것이 이해될 것이다. 그러므로, 다음의 상세한 설명은 제한적인 의미로 취해지지 않을 것이다.
다양한 동작들은, 청구된 주제를 이해하는데 가장 도움이 되는 방식으로, 다수의 별개의 작용들 또는 동작들로서 차례차례 설명될 수 있다. 그러나, 설명의 순서는 이들 동작들이 반드시 순서 의존적임을 내포하도록 해석되어서는 안된다. 특히, 이들 동작들은 프리젠테이션의 순서로 수행되지 않을 수 있다. 설명된 동작들은 설명된 실시예와 상이한 순서로 수행될 수 있다. 다양한 부가적인 동작들이 수행될 수 있으며 및/또는 설명된 동작들은 부가적인 실시예들에서 생략될 수 있다.
본 개시의 목적들을 위해, 구절("A 및/또는 B")은 (A), (B), 또는 (A 및 B)를 의미한다. 본 개시의 목적들을 위해, 구절("A, B, 및/또는 C")은 (A), (B), (C), (A 및 B), (A 및 C), (B 및 C), 또는 (A, B, 및 C)를 의미한다. 논의의 용이함을 위해, 도 15a 및 도 15b의 도면들의 모음은 여기에서 "도 15"로서 불리울 수 있고, 도 19a 내지 도 19d의 도면들의 모음은 여기에서 "도 19"로서 불리울 수 있다.
다양한 구성요소들은 여기에서 단수형(예컨대, "프로세서", "주변 디바이스" 등)으로 참조되거나 또는 예시될 수 있지만, 이것은 간단히 논의의 용이함을 위한 것이며, 단수형으로 참조된 임의의 요소는 여기에서의 교시들에 따라 다수의 이러한 요소들을 포함할 수 있다.
설명은 구절들("실시예에서" 또는 "실시예들에서")을 사용하며, 이것은 각각 동일한 또는 상이한 실시예들 중 하나 이상을 나타낼 수 있다. 더욱이, 용어들("포함한", "포함시키는", "가진" 등)은, 본 개시의 실시예들에 대하여 사용된 바와 같이, 동의어이다. 여기에서 사용된 바와 같이, 용어("회로")는 애플리케이션-특정 집적 회로(ASIC), 전자 회로, 및 광학 회로, 프로세서(공유, 전용, 또는 그룹), 및/또는 하나 이상의 소프트웨어 또는 펌웨어 프로그램들, 조합형 로직 회로, 및/또는 설명된 기능을 제공하는 다른 적절한 하드웨어를 실행하는 메모리(공유, 전용, 또는 그룹)를 나타내고, 그것의 부분이거나, 또는 이를 포함할 수 있다.
도 1은 다양한 실시예들에 따른, 예시적인 반-이중 2-와이어 통신 시스템(100)의 블록도이다. 시스템(100)은 호스트(110), 마스터 노드(102-1) 및 적어도 하나의 슬레이브 노드(102-2)를 포함한다. 도 1에서, 3개의 슬레이브 노드들(0, 1, 및 2)이 예시된다. 도 1에서 3개의 슬레이브 노드들(102-2)의 묘사는 단순히 예시적이며, 시스템(100)은 원하는 대로, 1, 2, 또는 그 이상의 슬레이브 노드들(102-2)을 포함할 수 있다.
마스터 노드(102-1)는 2-와이어 버스(106)를 통해 슬레이브 노드들(102-2)과 통신할 수 있다. 버스(106)는 데이지-체인 방식으로 버스(106)를 따라 노드들을 연결하기 위해 버스(106)를 따라 인접한 노드들 사이에 상이한 2-와이어 버스 링크들을 포함할 수 있다. 예를 들어, 도 1에서 예시된 바와 같이, 버스(106)는 마스터 노드(102-1)를 슬레이브 노드 0에 결합한 링크, 슬레이브 노드 0을 슬레이브 노드 1에 결합한 링크, 및 슬레이브 노드 1을 슬레이브 노드 2에 결합한 링크를 포함할 수 있다. 몇몇 실시예들에서, 버스(106)의 링크들은 각각 단일 연선 쌍(예컨대, 비차폐 꼬임 쌍)으로 형성될 수 있다. 몇몇 실시예들에서, 버스(106)의 링크들은 각각 동축 케이블(예컨대, "양의" 라인을 제공하는 코어 및 "음의" 라인을 제공하는 실드, 또는 그 반대를 제공하는 코어를 갖는)로 형성될 수 있다. 2-와이어 버스 링크들은 어떤 부가적인 접지 또는 전압 소스 라인들도 사용될 필요가 없도록 완전한 전기적 경로(예컨대, 순방향 및 복귀 전류 경로)를 함께 제공한다.
호스트(110)는 마스터 노드(102-1)를 프로그램하며, 버스(106)를 따라 송신된 다양한 페이로드들의 발신자 및 수신자로서 동작하는 프로세서를 포함할 수 있다. 몇몇 실시예들에서, 호스트(110)는 예를 들면, 마이크로제어기이거나 또는 이를 포함할 수 있다. 특히, 호스트(110)는 버스(106)를 따라 일어나는 집적 회로-간 사운드(I2S) 통신들의 마스터일 수 있다. 호스트(110)는 I2S/시간 분할 다중화(TDM) 프로토콜, SPI 프로토콜, 및/또는 집적 회로-간(I2C) 프로토콜을 통해 마스터 노드(102-1)와 통신할 수 있다. 몇몇 실시예들에서, 마스터 노드(102-1)는 호스트(110)와 동일한 하우징 내에 위치된 트랜시버(예컨대, 도 2를 참조하여 이하에서 논의되는 노드 트랜시버(120))일 수 있다. 마스터 노드(102-1)는 구성 및 되읽기를 위해 I2C 버스를 통해 호스트(110)에 의해 프로그램 가능할 수 있으며, 슬레이브 노드들(102-2) 모두를 위한 클록, 동기화, 및 프레이밍을 생성하도록 구성될 수 있다. 몇몇 실시예들에서, 호스트(110)와 마스터 노드(102-1) 사이에서 I2C 제어 버스의 연장은 버스(106)를 통해 송신된 데이터 스트림들에 내장될 수 있어서, 호스트(110)가 하나 이상의 슬레이브 노드들(102-2)을 위한 상태 정보 및 레지스터들로의 직접 액세스를 허용할 뿐만 아니라, 호스트(110)가 주변 디바이스들(108)을 제어하도록 허용하기 위해 거리에 걸친 I2C-대-I2C 통신을 가능하게 한다. 도 14 내지 도 48을 참조하여 이하에서 상세하게 논의되는 바와 같이, 호스트(110)와 마스터 노드(102-1) 사이에서의 SPI 제어 버스의 연장은 버스(106)를 통해 송신된 데이터 스트림들에 내장될 수 있어서, 호스트(110)가 하나 이상의 슬레이브 노드들(102-2)을 위한 상태 정보 및 레지스터들로의 직접 액세스를 허용할 뿐만 아니라, 호스트가 주변 디바이스들(108)을 제어하도록 허용하기 위해 거리에 걸친 SPI-대-SPI 또는 SPI-대-I2C 통신을 가능하게 한다. 시스템(100)이 차량에 포함되는 실시예들에서, 호스트(110) 및/또는 마스터 노드(102-1)는 차량의 헤드엔드에 포함될 수 있다.
마스터 노드(102-1)는 "다운스트림" 신호들(예컨대, 버스(106)를 따라 마스터 노드(102-1)로부터 멀리 송신된, 데이터 신호들, 전력 신호들 등)을 생성하고, "업스트림" 신호들(예컨대, 버스(106)를 따라 마스터 노드(102-1)를 향해 송신된)을 수신할 수 있다. 마스터 노드(102-1)는 버스(106)를 통한 동기식 데이터 송신을 위해 클록 신호를 제공할 수 있다. 여기에서 사용된 바와 같이, "동기 데이터"는 버스(106)를 따라 동일한 노드로/로부터 두 개의 연속적인 송신들 사이에서 고정된 시간 간격을 갖고 연속으로 스트리밍된 데이터(예컨대, 오디오 신호들)를 포함할 수 있다. 몇몇 실시예들에서, 마스터 노드(102-1)에 의해 제공된 클록 신호는 호스트(110)에 의해 마스터 노드(102-1)로 제공된 I2S 입력으로부터 도출될 수 있다. 슬레이브 노드(102-2)는 버스(106) 상에서 다운스트림으로 또는 버스(106) 상에서 업스트림으로 송신된 데이터 프레임들에 대한 가능한 목적지를 나타내는 어드레싱 가능한 네트워크 연결 포인트일 수 있다. 슬레이브 노드(102-2)는 또한 다운스트림 또는 업스트림 데이터 프레임들의 가능한 소스를 나타낼 수 있다. 시스템(100)은 제어 정보 및 다른 데이터가 하나의 노드로부터 다음으로 버스(106)를 통해 양쪽 방향들 모두로 송신되도록 허용할 수 있다. 슬레이브 노드들(102-2) 중 하나 이상은 또한 버스(106)를 통해 송신된 신호들에 의해 작동될 수 있다.
특히, 마스터 노드(102-1) 및 슬레이브 노드들(102-2)의 각각은 양의 업스트림 단자("AP"로 표시됨), 음의 업스트림 단자("AN"으로 표시됨), 양의 다운스트림 단자("BP"로 표시됨), 및 음의 다운스트림 단자("BN"으로 표시됨)를 포함할 수 있다. 노드의 양의 및 음의 다운스트림 단자들은 각각, 인접한 다운스트림 노드의 양의 및 음의 업스트림 단자들에 결합될 수 있다. 도 1에 도시된 바와 같이, 마스터 노드(102-1)는 양의 및 음의 업스트림 단자들을 포함할 수 있지만, 이들 단자들은 사용되지 않을 수 있으며; 다른 실시예들에서, 마스터 노드(102-1)는 양의 및 음의 업스트림 단자들을 포함하지 않을 수 있다. 버스(106)를 따르는 마지막 슬레이브 노드(102-2)(도 1에서 슬레이브 노드 2)는 양의 및 음의 다운스트림 단자들을 포함할 수 있지만, 이들 단자들은 사용되지 않을 수 있으며; 다른 실시예들에서, 버스를 따르는 마지막 슬레이브 노드(102-2)는 양의 및 음의 다운스트림 단자들을 포함하지 않을 수 있다.
이하에서 상세하게 논의되는 바와 같이, 마스터 노드(102-1)는, 선택적으로 슬레이브 노드들(102-2) 중 하나 이상을 위해 의도된 데이터와 함께, 다운스트림으로 동기화 제어 프레임을 주기적으로 전송할 수 있다. 예를 들어, 마스터 노드(102-1)는 48kHz의 주파수로 1024 비트들마다(슈퍼프레임을 나타내는) 동기화 제어 프레임을 송신할 수 있어서, 49.152Mbps의 버스(106) 상에서 유효 비트 레이트를 야기한다. 예를 들어, 44.1kHz를 포함한, 다른 레이트들이 지원될 수 있다. 동기화 제어 프레임은 슬레이브 노드들(102-2)이 각각의 슈퍼프레임의 처음을 식별하도록 허용할 수 있으며, 또한 물리 계층 인코딩/시그널링과 조합하여, 각각의 슬레이브 노드(102-2)가 버스(106)로부터 내부 동작 클록을 도출하도록 허용할 수 있다. 동기화 제어 프레임은 동기화의 시작을 시그널링하기 위한 프리앰블, 뿐만 아니라 다양한 어드레싱 모드들(예컨대, 보통, 브로드캐스트, 탐색), 구성 정보(예컨대, 슬레이브 노드들(102-2)의 레지스터들로 쓰기), I2C 정보의 수송, 슬레이브 노드들(102-2)에서 특정한 범용 입력/출력(GPIO) 핀들의 원격 제어, 및 다른 서비스들을 허용하는 제어 필드들을 포함할 수 있다. 프리앰블 및 페이로드 데이터를 따르는 동기화 제어 프레임의 일 부분은 동기화 제어 프레임에서의 정보가 새로운 프리앰블에 대해 잘못될 가능성을 감소시키도록, 및 관련된 전자기 방출들의 스펙트럼을 평탄화하도록 스크램블링될 수 있다.
동기화 제어 프레임은, 그것이 마스터 노드(102-1)에 의해 마지막 슬레이브 노드(102-2)로서 구성되었거나 또는 마지막 슬레이브 노드(102-2)로서 자체-식별된, 마지막 슬레이브 노드(102-2)(즉, 도 1에서 슬레이브 노드 2)에 도달할 때까지 슬레이브 노드(102-2) 사이에서 지나갈 수 있다(선택적으로 마스터 노드(102-1)로부터 올 수 있지만 부가적으로 또는 대안적으로 하나 이상의 업스트림 슬레이브 노드들(102-2)로부터 또는 슬레이브 노드(102-2) 자체로부터 올 수 있는, 다른 데이터와 함께). 동기화 제어 프레임을 수신하면, 마지막 슬레이브 노드(102-2)는 송신하도록 허용된 임의의 데이터(예컨대, 지정된 시간 슬롯에서 24-비트 오디오 샘플)에 앞서 동기화 응답 프레임을 송신할 수 있다. 동기화 응답 프레임은 슬레이브 노드들(102-2) 사이에서 업스트림으로 통과될 수 있으며(선택적으로, 다운스트림 슬레이브 노드들(102-2)과 함께), 동기화 응답 프레임에 기초하여, 각각의 슬레이브 노드(102-2)는 만약에 있다면, 시간 슬롯을 식별할 수 있으며, 여기에서 슬레이브 노드(102-2)는 송신하도록 허용된다.
몇몇 실시예들에서, 시스템(100)에서 슬레이브 노드들(102-2) 중 하나 이상은 주변 디바이스(108)에 결합되며 그것과 통신할 수 있다. 예를 들어, 슬레이브 노드(102-2)는 이하에서 논의되는 바와 같이, I2S, 펄스 밀도 변조(PDM), TDM, 및/또는 I2C 프로토콜들을 사용하여 연관된 주변 디바이스(108)로부터 데이터를 판독하고 및/또는 그것으로 데이터를 기록하도록 구성될 수 있다. "주변 디바이스(108)"는 여기에서 단수형으로 참조될 수 있지만, 이것은 단순히 논의의 용이함을 위한 것이며, 단일 슬레이브 노드(102-2)는 0, 1, 또는 그 이상의 주변 디바이스들과 결합될 수 있다. 주변 디바이스(108)에 포함될 수 있는 주변 디바이스들의 예들은 디지털 신호 프로세서(DSP), 필드 프로그램 가능한 게이트 어레이(FPGA), ASIC, 아날로그-디지털 변환기(ADC), 디지털-아날로그 변환기(DAC), 코덱, 마이크로폰, 마이크로폰 어레이, 스피커, 오디오 증폭기, 프로토콜 분석기, 가속도계 또는 다른 모션 센서, 환경 조건 센서(예컨대, 온도, 습도, 및/또는 가스 센서), 유선 또는 무선 통신 트랜시버, 디스플레이 디바이스(예컨대, 터치스크린 디스플레이), 사용자 인터페이스 구성요소(예컨대, 버튼, 다이얼, 또는 다른 제어부), 카메라(예컨대, 비디오 카메라), 메모리 디바이스, 또는 데이터를 송신 및/또는 수신하는 임의의 다른 적절한 디바이스를 포함할 수 있다. 상이한 주변 디바이스 구성들의 다수의 예들이 여기에서 상세하게 논의된다.
몇몇 실시예들에서, 주변 디바이스(108)는 집적 회로-간 사운드(I2S) 통신을 위해 구성된 임의의 디바이스를 포함할 수 있으며; 주변 디바이스(108)는 I2S 프로토콜을 통해 연관된 슬레이브 노드(102-2)와 통신할 수 있다. 몇몇 실시예들에서, 주변 디바이스(108)는 집적 회로-간(I2C) 통신을 위해 구성된 임의의 디바이스를 포함할 수 있으며; 주변 디바이스(108)는 I2C 프로토콜을 통해 연관된 슬레이브 노드(102-2)와 통신할 수 있다. 몇몇 실시예들에서, 슬레이브 노드(102-2)는 임의의 주변 디바이스(108)에 결합되지 않을 수 있다.
슬레이브 노드(102-2) 및 그것의 연관된 주변 디바이스(108)는 별개의 하우징들에 포함되며 유선 또는 무선 통신 연결을 통해 결합될 수 있거나 또는 공통 하우징에 포함될 수 있다. 예를 들어, 주변 디바이스(108)로서 연결된 스피커는 연관된 슬레이브 노드(102-2)를 위한 하드웨어(예컨대, 도 2를 참조하여 이하에서 논의되는 노드 트랜시버(120))와 함께 패키징될 수 있으며, 따라서 연관된 슬레이브 노드(102-2)를 위한 하드웨어는 다른 스피커 구성요소들을 포함하는 하우징 내에 포함된다. 이것은 임의의 유형의 주변 디바이스(108)에 대해서도 마찬가지일 수 있다.
상기 논의된 바와 같이, 호스트(110)는 다-채널 I2S 및 I2C 통신 프로토콜들을 사용하여 마스터 노드(102-1)와 통신하고 그것을 제어할 수 있다. 특히, 호스트(110)는 마스터 노드(102-1)에서 I2S를 통해 프레임 버퍼(예시되지 않음)로 송신할 수 있으며, 마스터 노드(102-1)는 프레임 버퍼로부터 데이터를 판독하며 버스(106)를 따라 데이터를 송신할 수 있다. 유사하게, 마스터 노드(102-1)는 버스(106)를 통해 수신된 데이터를 프레임 버퍼에 저장할 수 있으며, 그 후 I2S를 통해 데이터를 호스트(110)로 송신할 수 있다.
각각의 슬레이브 노드(102-2)는 마스터 노드(102-1)로부터의 통신들에 의해 구성될 수 있는 내부 제어 레지스터들을 가질 수 있다. 다수의 이러한 레지스터들은 이하에서 상세하게 논의된다. 각각의 슬레이브 노드(102-2)는 다운스트림 데이터를 수신할 수 있으며 데이터를 추가로 다운스트림으로 재송신할 수 있다. 각각의 슬레이브 노드(102-2)는 업스트림 데이터를 수신하고 및/또는 생성하며 및/또는 데이터를 업스트림으로 재송신하고 및/또는 데이터를 트랜잭션에 및 업스트림으로 부가할 수 있다.
버스(106)를 따르는 통신들은 주기적인 슈퍼프레임들에서 발생할 수 있다. 각각의 슈퍼프레임은 다운스트림 동기화 제어 프레임으로 시작할 수 있고; 다운스트림 송신(또는 "다운스트림 부분들"로 불리움), 업스트림 송신(또한 "업스트림 부분들"로 불리움), 및 무 송신(여기에서 버스(106)는 구동되지 않는다)의 기간들로 나뉘며; 또 다른 다운스트림 동기화 제어 프레임의 송신 직전에 종료할 수 있다. 마스터 노드(102-1)는 슬레이브 노드들(102-2) 중 하나 이상으로 송신할 다운스트림 부분들의 수 및 슬레이브 노드들(102-2) 중 하나 이상으로부터 수신될 업스트림 부분들의 수로 프로그램될 수 있다(호스트(110)에 의해). 각각의 슬레이브 노드(102-2)는 버스(106) 아래로 재송신할 다운스트림 부분들의 수, 소비할 다운스트림 부분들의 수, 버스(106) 위로 재송신할 업스트림 부분들의 수, 및 슬레이브 노드(102-2)가 연관된 주변 디바이스(108)로부터 슬레이브 노드(102-2)로부터 수신된 데이터를 송신할 수 있는 업스트림 부분들의 수로 프로그램될 수 있다(마스터 노드(102-1)에 의해). 버스(106)를 따르는 통신은 도 2 내지 도 12를 참조하여 이하에서 추가로 상세하게 논의된다.
여기에서 개시된 통신 시스템(100)의 실시예들은 모든 슬레이브 노드들(102-2)이 동일한 슈퍼프레임 내에서 버스(106)를 통해 출력 데이터를 수신할 수 있다(예컨대, 모든 슬레이브 노드들(102-2)은 노드들(102-1) 간에 샘플 지연들 없이 동일한 오디오 샘플을 수신할 수 있다)는 점에서 종래의 통신 시스템들 중에서 고유하다. 종래의 통신 시스템들에서, 데이터는 다음 노드로 다음 프레임에서 아래쪽으로 전달되기 전에 각각의 노드에 버퍼링되고 프로세싱된다. 결과적으로, 이들 종래의 통신 시스템들에서, 데이터 송신의 대기시간은 노드들의 수에 의존한다(각각의 노드는 하나의 오디오 샘플의 지연을 더한다). 여기에서 개시된 통신 시스템들(100)에서, 버스(106)는 제 1 또는 마지막 슬레이브 노드(102-2)가 데이터를 수신하는지에 상관없이, 단지 1 사이클의 대기시간만을 더할 수 있다. 이는 업스트림 통신에 대해서도 참이며; 데이터는 어떤 슬레이브 노드(102-2)가 데이터를 제공했는지에 상관없이, 다음 슈퍼프레임에서의 업스트림 노드(102-1)에서 이용 가능할 수 있다.
뿐만 아니라, 여기에서 개시된 통신 시스템들(100)의 실시예들에서, 다운스트림 데이터(예컨대, 다운스트림 오디오 데이터)는 마스터 노드(102-1)에 의해 또는 수신한 슬레이브 노드(102-2)의 업스트림인 슬레이브 노드들(102-2) 중 임의의 것에 의해 버스(106) 상에 놓일 수 있으며; 유사하게, 업스트림 데이터(예컨대, 업스트림 오디오 데이터)는 수신 노드(102)(즉, 마스터 노드(102-1) 또는 슬레이브 노드(102-2))의 다운스트림인 슬레이브 노드들(102-2) 중 임의의 것에 의해 버스(106) 상에 놓일 수 있다. 이러한 능력은 슬레이브 노드(102-2)가 특정 시간(예컨대, 특정 오디오 샘플 시간)에 업스트림 및 다운스트림 데이터 양쪽 모두를 제공하도록 허용한다. 오디오 데이터에 대해, 이러한 데이터는 추가 지연들 없이(슈퍼프레임 경계 내에 있는 작은 프로세싱 지연들 외에) 임의의 다운스트림 또는 업스트림 노드(102)에서 다음 오디오 샘플에 수신될 수 있다. 여기에서 추가로 논의되는 바와 같이, 제어 메시지들(예컨대, 동기화 제어 프레임(SCF)에서)은 마지막 노드(102)(특정 노드(102)를 어드레싱하거나 또는 브로드캐스팅하는)로 이동할 수 있으며 업스트림 응답(예컨대, 동기화 응답 프레임(SRF)에서)은 동일한 슈퍼프레임 내에서 마지막 다운스트림 노드(102)에 의해 생성될 수 있다. SCF에 의해 어드레싱된 노드들(102)은 그것들 자신의 응답으로 업스트림 SRF의 콘텐트를 변경한다. 결과적으로, 동일한 오디오 샘플 내에서, 제어 및 응답은 다수의 노드들(102)에 걸쳐 완전히 실행될 수 있다. 이것은 또한, 샘플 대기시간들이 노드들 간에 발생되는(하나의 노드에서 다른 것으로 메시지들을 전달하기 위해), 종래의 통신 시스템들과 대조적이다.
마스터 노드(102-1) 및 슬레이브 노드들(102-2)의 각각은 시스템(100)의 구성요소들 사이에서 통신을 관리하기 위해 트랜시버를 포함할 수 있다. 도 2는 다양한 실시예들에 따라, 도 1의 시스템(100)의 노드(예컨대, 마스터 노드(102-1) 또는 슬레이브 노드(102-2))에 포함될 수 있는 노드 트랜시버(120)의 블록도이다. 몇몇 실시예들에서, 노드 트랜시버(120)는 시스템(100)의 노드들의 각각에 포함될 수 있으며, 제어 신호는 노드 트랜시버(120)가 마스터(예컨대, MSTR 핀이 하이일 때) 또는 슬레이브(예컨대, MSTR 핀이 로우일 때)로서 동작할지를 나타내기 위해 마스터(MSTR) 핀을 통해 노드 트랜시버(120)에 제공될 수 있다.
노드 트랜시버(120)는 업스트림 차등 시그널링(DS) 트랜시버(122) 및 다운스트림 DS 트랜시버(124)를 포함할 수 있다. 업스트림 DS 트랜시버(122)는 도 1을 참조하여 상기 논의된 양의 및 음의 업스트림 단자들에 결합될 수 있으며, 다운스트림 DS 트랜시버(124)는 도 1을 참조하여 상기 논의된 양의 및 음의 다운스트림 단자들에 결합될 수 있다. 몇몇 실시예들에서, 업스트림 DS 트랜시버(122)는 저 전압 DS(LVDS) 트랜시버일 수 있으며, 다운스트림 DS 트랜시버(124)는 LVDS 트랜시버일 수 있다. 시스템(100)에서 각각의 노드는 버스(106)에 AC-결합될 수 있으며, 데이터 신호들은 버스(106)를 통해 타이밍 정보를 제공하기 위해 적절한 인코딩을 갖고(예컨대, 차등 맨체스터 코딩, 복상 마크 코딩, 맨체스터 코딩, 영점 비복귀(Non-Return-to-Zero), 런-길이 제한을 가진 역(NRZI) 코딩, 또는 임의의 다른 적절한 인코딩) 미리 결정된 형태의 DS(예컨대, LVDS 또는 다중포인트 LVDS(MLVDS) 또는 유사한 시그널링)를 사용하여 버스(106)를 따라(예컨대, 업스트림 DS 트랜시버(122) 및/또는 다운스트림 DS 트랜시버(124)를 통해) 수송될 수 있다.
업스트림 DS 트랜시버(122) 및 다운스트림 DS 트랜시버(124)는 버스 프로토콜 회로(126)와 통신할 수 있으며, 버스 프로토콜 회로(126)는 다른 구성요소들 중에서, 위상 잠금 루프(PLL)(128) 및 전압 조절기 회로(130)와 통신할 수 있다. 노드 트랜시버(120)에 전원이 넣어질 때, 전압 조절기 회로(130)는 PLL(128)에 의해 파워-온 리셋으로서 사용되는 "전력 양호(power good)" 신호를 일으킬 수 있다.
상기 주지된 바와 같이, 시스템(100)에서 슬레이브 노드들(102-2) 중 하나 이상은 버스(106)를 통해 데이터와 동시에 송신된 전력을 수신할 수 있다. 전력 분배를 위해(슬레이브 노드들(102-2) 중 일부가 독점적으로 그것들에 제공된 로컬 전력을 갖도록 구성될 수 있으므로, 선택적이다), 마스터 노드(102-1)는 마스터 노드(102-1)와 슬레이브 노드 0 사이에서 버스 링크 상에 DC 바이어스를 둘 수 있다(예컨대, 전압 조절기에 의해 제공된 전압 소스에 다운스트림 단자들 중 하나를 및 접지에 다른 다운스트림 단자를 연결함으로써). DC 바이어스는 5V, 8V, 자동차 배터리의 전압, 또는 더 높은 전압과 같은, 미리 결정된 전압일 수 있다. 각각의 연속적인 슬레이브 노드(102-2)는 선택적으로 전력을 복구하기 위해 그것의 업스트림 버스 링크를 태핑할 수 있다(예컨대, 전압 조절기 회로(130)를 사용하여). 이러한 전력은 슬레이브 노드(102-2) 자체(및 선택적으로 슬레이브 노드(102-2)에 결합된 하나 이상의 주변 디바이스(108))를 작동시키기 위해 사용될 수 있다. 슬레이브 노드(102-2)는 또한 선택적으로 업스트림 버스 링크로부터 또는 로컬 전원 공급 장치로부터 복구된 전력을 갖고 2번째 슬레이브 노드(102-2)에 대해 다운스트림으로 버스 링크를 바이어싱할 수 있다. 예를 들어, 슬레이브 노드 0은 슬레이브 노드 0 자체에 대해 및/또는 하나 이상의 연관된 주변 디바이스(108)에 대해 전력을 복구하기 위해 업스트림 버스 링크(106) 상에서 DC 바이어스를 사용할 수 있으며, 및/또는 슬레이브 노드 0은 그것의 다운스트림 버스 링크(106)를 바이어싱하기 위해 그것의 업스트림 버스 링크(106)로부터 전력을 복구할 수 있다.
따라서, 몇몇 실시예들에서, 시스템(100)에서의 각각의 노드는 다운스트림 버스 링크를 통해 다음의 다운스트림 노드에 전력을 제공할 수 있다. 노드들의 파워링은 순차적인 방식으로 수행될 수 있다. 예를 들어, 버스(106)를 통해 슬레이브 노드 0을 탐색하고 구성한 후, 마스터 노드(102-1)는 슬레이브 노드 1에 전력을 제공하기 위해 그것의 다운스트림 버스 링크(106)에 전력을 제공하도록 슬레이브 노드 0에 지시할 수 있고; 슬레이브 노드 1이 탐색되고 구성된 후, 마스터 노드(102-1)는 슬레이브 노드 2(및 버스(106)에 결합된 부가적인 슬레이브 노드들(102-2)에 대해서도)에 전력을 제공하기 위해 그것의 다운스트림 버스 링크(106)에 전력을 제공하도록 슬레이브 노드 1에 지시할 수 있다. 몇몇 실시예들에서, 슬레이브 노드들(102-2) 중 하나 이상은, 그것의 업스트림 버스 링크로부터 동력을 공급받는 대신, 또는 그 외에, 국소적으로 동력을 공급받을 수 있다. 몇몇 이러한 실시예들에서, 주어진 슬레이브 노드(102-2)에 대한 로컬 전원은 하나 이상의 다운스트림 슬레이브 노드들로 전력을 제공하기 위해 사용될 수 있다.
몇몇 실시예들에서, 업스트림 버스 인터페이스 회로(132)는 업스트림 DS 트랜시버(122)와 전압 조절기 회로(130) 사이에 배치될 수 있으며, 다운스트림 버스 인터페이스 회로(131)는 다운스트림 DS 트랜시버(124)와 전압 조절기 회로(130) 사이에 배치될 수 있다. 버스(106)의 각각의 링크가 AC(신호) 및 DC(전력) 구성요소들을 운반할 수 있으므로, 업스트림 버스 인터페이스 회로(132) 및 다운스트림 버스 인터페이스 회로(131)는 AC 및 DC 구성요소들을 분리하여, 업스트림 DS 트랜시버(122) 및 다운스트림 DS 트랜시버(124)에 AC 구성요소들을 제공하고, 전압 조절기 회로(130)에 DC 구성요소들을 제공한다. 업스트림 DS 트랜시버(122) 및 다운스트림 DS 트랜시버(124)의 라인 측 상에서의 AC 결합들은 고속 양-방향 통신들을 허용하기 위해 라인 상에서 DC 구성요소로부터 트랜시버들(122 및 124)을 실질적으로 분리시킨다. 상기 논의된 바와 같이, DC 구성요소는 전력을 위해 태핑될 수 있으며, 업스트림 버스 인터페이스 회로(132) 및 다운스트림 버스 인터페이스 회로(131)는 전압 조절기 회로(130)로 제공된 AC 구성요소를 감소시키기 위해, 예를 들어, 페라이트, 공통 모드 초크, 또는 인덕터를 포함할 수 있다. 몇몇 실시예들에서, 업스트림 버스 인터페이스 회로(132)는 업스트림 DS 트랜시버(122)에 포함될 수 있으며, 및/또는 다운스트림 버스 인터페이스 회로(131)는 다운스트림 DS 트랜시버(124)에 포함될 수 있고; 다른 실시예들에서, 필터링 회로는 트랜시버들(122 및 124)의 외부에 있을 수 있다.
노드 트랜시버(120)는 노드 트랜시버(120)와 외부 디바이스(155) 사이에서 I2S, TDM, 및 PDM 통신을 위해 트랜시버(127)를 포함할 수 있다. "외부 디바이스(155)"는 여기에서 단수형으로 참조될 수 있지만, 이것은 단순히 예시의 용이함을 위한 것이며, 다수의 외부 디바이스들이 I2S/TDM/PDM 트랜시버(127)를 통해 노드 트랜시버(120)와 통신할 수 있다. 이 기술분야에 알려진 바와 같이, I2S 프로토콜은 펄스 코드 변조(PCM) 정보를 운반하기 위한 것이다(예컨대, 인쇄 회로 보드(PCB) 상에서의 오디오 칩들 사이에서). 여기에서 사용된 바와 같이, "I2S/TDM"은 TDM을 사용하여 다수의 채널들로의 I2S 스테레오(2-채널) 콘텐트의 확장을 나타낼 수 있다. 이 기술분야에 알려진 바와 같이, PDM은 시그마 델타 변환기들에서 사용될 수 있으며, 특히 PDM 포맷은 데시메이션 전에 오버-샘플링된 1-비트 시그마 델타 ADC 신호를 나타낼 수 있다. PDM 포맷은 종종 디지털 마이크로폰들을 위한 출력 포맷으로서 사용된다. I2S/TDM/PDM 트랜시버(127)는 외부 디바이스(166)와의 통신을 위해 핀들 및 버스 프로토콜 회로(126)와 통신할 수 있다. 6개의 핀들, 즉 BCLK, SYNC, DTX[1:0], 및 DRX[1:0]은 도 2에서 예시되며; BCLK 핀은 I2S 비트 클록을 위해 사용될 수 있고, SYNC 핀은 I2S 프레임 동기화 신호를 위해 사용될 수 있으며, DTX[1:0] 및 DRX[1:0] 핀들은 각각, 데이터 채널들을 송신하고 수신하기 위해 사용된다. 2개의 송신 핀들(DTX[1:0]) 및 2개의 수신 핀들(DRX[1:0])이 도 2에서 예시되지만, 임의의 원하는 수의 수신 및/또는 송신 핀들이 사용될 수 있다.
노드 트랜시버(120)가 마스터 노드(102-1)에 포함될 때, 외부 디바이스(155)는 호스트(110)를 포함할 수 있으며, I2S/TDM/PDM 트랜시버(127)는 호스트(110)의 I2S 인터페이스 클록과 동시에 호스트(110)로부터 데이터를 수신하고 호스트(110)로 데이터를 전송할 수 있는 I2S 슬레이브(BCLK 및 SYNC에 관한)를 제공할 수 있다. 특히, I2S 프레임 동기화 신호는 호스트(100)로부터의 입력으로서 SYNC 핀에서 수신될 수 있으며, PLL(128)은 클록들을 발생시키기 위해 상기 신호를 사용할 수 있다. 노드 트랜시버(120)가 슬레이브 노드(102-2)에 포함될 때, 외부 디바이스(155)는 하나 이상의 주변 디바이스들(108)을 포함할 수 있으며, I2S/TDM/PDM 트랜시버(127)는 주변 디바이스(108)와의 I2S 통신을 제어할 수 있는 I2S 클록 마스터(BCLK 및 SYNC를 위한)를 제공할 수 있다. 특히, I2S/TDM/PDM 트랜시버(127)는 출력으로서 SYNC 핀에서 I2S 프레임 동기화 신호를 제공할 수 있다. 노드 트랜시버(120)에서의 레지스터들은 어떤 및 어떻게 많은 I2S/TDM 채널들이 버스(106)를 통해 데이터 슬롯들로서 송신되는지를 결정할 수 있다. 노드 트랜시버(120)에서 TDM 모드(TDMMODE) 레지스터는 TDM 송신 또는 수신 핀 상에서 연속적인 SYNC 펄스들에 얼마나 많은 TDM 채널들이 적합한지에 대한 값을 저장할 수 있다. 채널 크기에 대한 지식과 함께, 노드 트랜시버(120)는 샘플링 시간 내에서 비트들의 수를 매칭시키기 위해 BCLK 레이트(예컨대, 48kHz)를 자동으로 설정할 수 있다.
노드 트랜시버(120)는 노드 트랜시버(120)와 외부 디바이스(157) 사이에서 I2C 통신을 위해 트랜시버(129)를 포함할 수 있다. "외부 디바이스(157)"는 여기에서 단수형으로 참조될 수 있지만, 이것은 단순히 예시의 용이함을 위한 것이며, 다수의 외부 디바이스들이 I2C 트랜시버(129)를 통해 노드 트랜시버(120)와 통신할 수 있다. 이 기술분야에 알려진 바와 같이, I2C 프로토콜은 데이터 전송을 제공하기 위해 클록(SCL) 및 데이터(SDA) 라인들을 사용한다. I2C 트랜시버(129)는 외부 디바이스(157)와의 통신을 위해 핀들 및 버스 프로토콜 회로(126)와 통신할 수 있다. 4개의 핀들, 즉 ADR1, ADR2, SDA, 및 SCL이 도 2에 예시되며; ADR1 및 ADR2는 노드 트랜시버(120)가 I2C 슬레이브로 동작할 때(예컨대, 그것이 마스터 노드(102-1)에 포함될 때) 노드 트랜시버(120)에 의해 사용된 I2C 어드레스들을 수정하기 위해 사용될 수 있으며, SDA 및 SCL은 각각 I2C 직렬 데이터 및 직렬 클록 신호들을 위해 사용된다. 노드 트랜시버(120)가 마스터 노드(102-1)에 포함될 때, 외부 디바이스(157)는 호스트(110)를 포함할 수 있으며, I2C 트랜시버(129)는 호스트(110)로부터 프로그래밍 지시들을 수신할 수 있는 I2C 슬레이브를 제공할 수 있다. 특히, I2C 직렬 클록 신호는 레지스터 액세스들을 위해 호스트(110)로부터의 입력으로서 SCL 핀에서 수신될 수 있다. 노드 트랜시버(120)가 슬레이브 노드(102-2)에 포함될 때, 외부 디바이스(157)는 주변 디바이스(108)를 포함할 수 있으며 I2C 트랜시버(129)는 I2C 트랜시버가 호스트(110)에 의해 제공되고 버스(106)를 통해 노드 트랜시버(120)로 송신된 지시들에 따라 하나 이상의 주변 디바이스들을 프로그램하도록 허용하기 위해 I2C 마스터를 제공할 수 있다. 특히, I2C 트랜시버(129)는 출력으로서 SCL 핀에서 I2C 직렬 클록 신호를 제공할 수 있다.
노드 트랜시버(120)는 노드 트랜시버(120)와 외부 디바이스(138) 사이에 SPI 통신을 위한 트랜시버(136)를 포함할 수 있다. "외부 디바이스(138)"가 여기에서 단수형으로 참조될 수 있지만, 이것은 단순히 예시의 용이함을 위한 것이며, 다수의 외부 디바이스들이 SPI 트랜시버(136)를 통해 노드 트랜시버(120)와 통신할 수 있다. 이 기술분야에 알려진 바와 같이, SPI 프로토콜은 데이터 전달을 제공하기 위해 슬레이브 선택(SS), 클록(BCLK), 마스터-아웃-슬레이브-인(MOSI), 및 마스터-인-슬레이브-아웃(MISO) 데이터 라인들을 사용하며, 이들 4개의 라인들에 대응하는 핀들이 도 2에서 예시된다. SPI 트랜시버(136)는 외부 디바이스(138)와의 통신을 위해 핀들 및 버스 프로토콜 회로(126)와 통신할 수 있다. 노드 트랜시버(120)가 마스터 노드(102-1)에 포함될 때, 외부 디바이스(138)는 호스트(110) 또는 또 다른 외부 디바이스를 포함할 수 있으며, SPI 트랜시버(136)는 호스트(110) 또는 다른 외부 디바이스로부터 명령들을 수신하며 그것에 응답할 수 있는 SPI 슬레이브를 제공할 수 있다. 노드 트랜시버(120)가 슬레이브 노드(102-2)에 포함될 때, 외부 디바이스(138)는 주변 디바이스(108)를 포함할 수 있으며 SPI 트랜시버(136)는 SPI 트랜시버(136)가 하나 이상의 주변 디바이스들(108)로 명령들을 수신하도록 허용하기 위해 SPI 호스트를 제공할 수 있다. SPI 트랜시버(136)는 판독 데이터 선입선출(first-in-first-out; FIFO) 버퍼 및 기록 데이터 FIFO 버퍼를 포함할 수 있다. 판독 데이터 FIFO 버퍼는 다른 노드들(102-1)로부터 판독된 데이터를 수집하기 위해 사용될 수 있으며, 외부 디바이스(138)가 적절한 판독 명령을 송신할 때 외부 디바이스(138)에 의해 판독될 수 있다. 기록 데이터 FIFO 버퍼는 기록 데이터가 또 다른 디바이스로 송신되기 전에 외부 디바이스(138)로부터 기록 데이터를 수집하기 위해 사용될 수 있다. 개별적으로, 함께, 또는 임의의 조합으로 구현될 수 있는 SPI 기능의 다양한 예들이 도 14 내지 도 48을 참조하여 이하에서 논의된다.
노드 트랜시버(120)는 버스 프로토콜 회로(126)와 통신하는 인터럽트 요청(IRQ) 핀을 포함할 수 있다. 노드 트랜시버(120)가 I2C 트랜시버(129)를 통해 마스터 노드(102-1)에 포함될 때, 버스 프로토콜 회로(126)는 IRQ 핀을 통해 호스트(110)를 향해 이벤트-구동 인터럽트 요청들을 제공할 수 있다. 노드 트랜시버(120)가 슬레이브 노드(102-2)에 포함될 때(예컨대, MSTR 핀이 로우일 때), IRQ 핀은 인터럽트 요청 능력을 가진 GPIO 핀으로서 작용할 수 있다. 노드 트랜시버(120)는 도 2에 도시된 것들 외에 다른 핀들을 포함할 수 있다(예컨대, 이하에서 논의된 바와 같이).
시스템(100)은 다수의 상이한 동작 모드들 중 임의의 것으로 동작할 수 있다. 버스(106) 상에서의 노드들은 각각 어떤 동작 모드가 현재 가능한지를 나타내는 레지스터를 가질 수 있다. 설명들은 구현될 수 있는 다양한 동작 모드들의 예들을 따른다. 대기 동작 모드에서, 버스 활동은 전역적 전력 절감들을 가능하게 하기 위해 감소될 수 있고; 단지 요구된 트래픽은 각각의 노드의 PLL들(예컨대, PLL(128))을 동기화되어 유지하기 위한 최소 다운스트림 프리앰블이다. 대기 동작 모드에서, 버스(106)에 걸친 판독들 및 기록들은 지원되지 않는다. 탐색 동작 모드에서, 마스터 노드(102-1)는 버스(106)를 따라 미리 결정된 신호들을 전송하며 버스(106)를 따라 분포된 슬레이브 노드들(102-2)의 토폴로지를 계획하기 위해 적절한 응답들을 기다릴 수 있다. 정상 동작 모드에서, 버스(106)를 통한 주변 디바이스들(108)로 및 그로부터의 액세스뿐만 아니라 전체 레지스터 액세스가 슬레이브 노드들(102-2)로 및 그로부터 이용 가능할 수 있다. 정상 모드는 동기식 업스트림 데이터를 갖거나 또는 그것 없이 및 동기식 다운스트림 데이터를 갖거나 또는 그것 없이 호스트(110)에 의해 전역적으로 구성될 수 있다.
도 3은 다양한 실시예들에 따른, 시스템(100)에서 통신을 위해 사용된 동기화 제어 프레임(180)의 일 부분의 다이어그램이다. 특히, 동기화 제어 프레임(180)은, 이하에서 논의되는 바와 같이, 데이터 클록 복구 및 PLL 동기화를 위해 사용될 수 있다. 상기 주지된 바와 같이, 버스(106)를 통한 통신들은 양쪽 방향들 모두로 발생할 수 있기 때문에, 통신들은 다운스트림 부분들 및 업스트림 부분들로 시간-다중화될 수 있다. 다운스트림 부분에서, 동기화 제어 프레임 및 다운스트림 데이터는 마스터 노드(102-1)로부터 송신될 수 있지만, 업스트림 부분에서, 동기화 응답 프레임, 및 업스트림 데이터는 슬레이브 노드들(102-2)의 각각으로부터 마스터 노드(102-1)로 송신될 수 있다. 동기화 제어 프레임(180)은 프리앰블(182) 및 제어 데이터(184)를 포함할 수 있다. 각각의 슬레이브 노드(102-2)는 PLL(128)을 공급하기 위한 시간 베이스로서 수신된 동기화 제어 프레임(180)의 프리앰블(182)을 사용하도록 구성될 수 있다. 이를 가능하게 하기 위해, 프리앰블(182)은 유효한 제어 데이터(184)의 "규칙들"을 따르지 않으며, 따라서 제어 데이터(184)로부터 쉽게 구별될 수 있다.
예를 들어, 몇몇 실시예들에서, 버스(106)를 따르는 통신은 클록 우선, 영점으로의 전이 차등 맨체스터 코딩 기법을 사용하여 인코딩될 수 있다. 이러한 인코딩 기법에 따르면, 각각의 비트 시간은 클록 전이로 시작한다. 데이터 값이 0이면, 인코딩된 신호는 비트 시간의 중간에 다시 전이한다. 데이터 값이 1이면, 인코딩된 신호는 다시 전이하지 않는다. 도 5에 예시된 프리앰블(182)은 인코딩 프로토콜을 위반할 수 있으며(예컨대, 비트 시간들(5, 7, 및 8)의 초기에 발생하지 않는 클록 전이들을 가짐으로써), 이것은 프리앰블(182)이 제어 데이터(184)에 대한 임의의 합법적인(예컨대, 정확하게 인코딩된) 패턴에 매칭되지 않을 수 있음을 의미한다. 또한, 프리앰블(182)은 제어 데이터(184)에 대한 합법적 패턴을 취하고 단일 비트 시간 동안 또는 다수의 비트 시간 기간 동안 버스(106)를 하이 또는 로우가 되게 함으로써 재생될 수 없다. 도 5에 예시된 프리앰블(182)은 단순히 예시적이며, 동기화 제어 프레임(180)은 임의의 적절한 방식으로 제어 데이터(184)에 의해 사용된 인코딩을 위반할 수 있는 상이한 프리앰블들(182)을 포함할 수 있다.
버스 프로토콜 회로(126)는 버스(106)로부터 복구된 클록 상에서 구동하며 프레임 동기 표시자를 PLL(128)로 전송하기 위해 동기화 제어 프레임(180)을 검출하는 차등 맨체스터 디코더 회로를 포함할 수 있다. 이러한 방식으로, 동기화 제어 프레임(180)은 시스템 클록 또는 고속 오버샘플링 클록을 사용하지 않고 검출될 수 있다. 결과적으로, 슬레이브 노드들(102-2)은 슬레이브 노드들(102-2)에서 수정 클록 소스를 요구하지 않고 버스(106)로부터 PLL 동기화 신호를 수신할 수 있다.
상기 주지된 바와 같이, 버스(106)를 따르는 통신들은 주기적인 슈퍼프레임들에서 발생할 수 있다. 도 4는 다양한 실시예들에 따른, 슈퍼프레임(190)의 다이어그램이다. 도 6에 도시된 바와 같이, 슈퍼프레임은 동기화 제어 프레임(180)으로 시작할 수 있다. 동기화 제어 프레임(180)이 PLL(128)을 위한 타이밍 소스로서 사용될 때, 슈퍼프레임들이 전달되는 주파수("슈퍼프레임 주파수")는 동기화 신호 주파수와 동일할 수 있다. 오디오 데이터가 버스(106)를 따라 송신되는 몇몇 실시예들에서, 슈퍼프레임 주파수는 시스템(100)에서 사용된 오디오 샘플링 주파수(예컨대, 48kHz 또는 44.1kHz)와 동일할 수 있지만, 임의의 적절한 슈퍼프레임 주파수가 사용될 수 있다. 각각의 슈퍼프레임(190)은 다운스트림 송신의 기간들(192), 업스트림 송신의 기간들(194), 무송신의 기간들(196)(예컨대, 버스(106)가 구동되지 않을 때)로 나뉠 수 있다.
도 4에서, 슈퍼프레임(190)은 다운스트림 송신(192)의 초기 기간 및 업스트림 송신(194)의 나중 기간을 갖고 도시된다. 다운스트림 송신(192)의 기간은 동기화 제어 프레임(180) 및 X 다운스트림 데이터 슬롯들(198)을 포함할 수 있으며, 여기에서 X는 0일 수 있다. 버스(106) 상에서 실질적으로 모든 신호들은 상기 논의된 바와 같이, 동기화 제어 프레임(180)에서 동기화 프리앰블(182)의 형태로 마스터 노드(102-1)로부터 마지막 슬레이브 노드(102-2)(예컨대, 슬레이브 노드(102-2C))로 다운스트림으로 포워딩된 라인-코딩된 동기화 신호일 수 있다. 다운스트림, TDM, 동기식 데이터는 동기화 제어 프레임(180) 후 X 다운스트림 데이터 슬롯들(198)에 포함될 수 있다. 다운스트림 데이터 슬롯들(198)은 동일한 폭을 가질 수 있다. 상기 논의된 바와 같이, PLL(128)은 버스(106)를 통해 시간 통신들로 노드가 사용하는 클록을 제공할 수 있다. 버스(106)가 오디오 데이터를 송신하기 위해 사용되는 몇몇 실시예들에서, PLL(128)은 오디오 샘플링 주파수의 배수(예컨대, 각각의 슈퍼프레임에서 1024-비트 클록들을 야기하는, 오디오 샘플링 주파수의 1024배)로 동작할 수 있다.
업스트림 송신(194)의 기간은 동기화 응답 프레임(197) 및 Y 업스트림 데이터 슬롯들(199)을 포함할 수 있으며, 여기에서 Y는 0일 수 있다. 몇몇 실시예들에서, 각각의 슬레이브 노드(102-2)는 다운스트림 데이터 슬롯들(198)의 일 부분을 소비할 수 있다. 마지막 슬레이브 노드(예컨대, 도 1에서 슬레이브 노드 2)는 동기화 응답 프레임(197)으로 응답할 수 있다(마지막 슬레이브 노드의 레지스터에 저장된 미리 결정된 응답 시간 후). 업스트림, TDM, 동기화 데이터는 동기화 응답 프레임(197) 직후 각각의 슬레이브 노드(102-2)에 의해 업스트림 데이터 슬롯들(199)에 부가될 수 있다. 업스트림 데이터 슬롯들(199)은 동일한 폭을 가질 수 있다. 마지막 슬레이브 노드가 아닌 슬레이브 노드(102-2)(예컨대, 도 1에서 슬레이브 노드 0 및 1)는 그것의 레지스터들 중 하나의 판독이 슈퍼프레임(190)의 동기화 제어 프레임(180)에서 요청되었다면 또는 원격 I2C가 슈퍼프레임(190)의 동기화 제어 프레임(180)에서 요청되었다면 그 자신의 업스트림 응답으로 수신된 동기화 응답 프레임(197)을 대신할 수 있다.
상기 논의된 바와 같이, 동기화 제어 프레임(180)은 각각의 다운스트림 송신을 시작할 수 있다. 몇몇 실시예들에서, 동기화 제어 프레임(180)은 길이가 64비트일 수 있지만, 임의의 다른 적절한 길이가 사용될 수 있다. 동기화 제어 프레임(180)은 상기 주지된 바와 같이, 프리앰블(182)로 시작할 수 있다. 몇몇 실시예들에서, 동기화 제어 프레임(180)이 슬레이브 노드(102-2)에 의해 다운스트림 슬레이브 노드(102-2)로 재송신될 때, 프리앰블(182)은 재송신되기보다는, 송신 슬레이브 노드(102-2)에 의해 생성될 수 있다.
동기화 제어 프레임(180)의 제어 데이터(184)는 버스(106)를 통한 트랜잭션들을 제어하기 위해 사용된 데이터를 포함하는 필드들을 포함할 수 있다. 이들 필드들의 예들은 이하에서 논의되며, 몇몇 실시예들은 도 5에서 예시된다. 특히, 도 5는 다양한 실시예들에 따라, 정상 모드, I2C 모드, 및 탐색 모드에서 동기화 제어 프레임(180)에 대한 예시적인 포맷들을 예시한다. 몇몇 실시예들에서, 상이한 프리앰블(182) 또는 동기화 제어 프레임(180)은 슬레이브 노드들(102-2)이 정상 모드로의 전이가 전송될 때까지 동기화 제어 프레임(180)의 모두를 수신할 필요가 없도록 전적으로 대기 모드에서 사용될 수 있다.
몇몇 실시예들에서, 동기화 제어 프레임(180)은 카운트(CNT) 필드를 포함할 수 있다. CNT 필드는 임의의 적절한 길이(예컨대, 2비트들)를 가질 수 있으며 이전 슈퍼프레임에서 사용된 값으로부터 증가될 수 있다(모듈로 필드의 길이). 예상되지 않은 CNT 값을 수신하는 슬레이브 노드(102-2)는 인터럽트를 리턴하도록 프로그램될 수 있다.
몇몇 실시예들에서, 동기화 제어 프레임(180)은 노드 어드레싱 모드(NAM) 필드를 포함할 수 있다. NAM 필드는 임의의 적절한 길이(예컨대, 2비트들)를 가질 수 있으며 버스(106)를 통해 슬레이브 노드(102-2)의 레지스터들로의 액세스를 제어하기 위해 사용될 수 있다. 정상 모드에서, 슬레이브 노드(102-2)의 레지스터들은 슬레이브 노드(102-2)의 ID 및 레지스터의 어드레스에 기초하여 판독되고 및/또는 기록될 수 있다. 브로드캐스트 트랜잭션들은 모든 슬레이브 노드(102-2)에 의해 취해져야 하는 기록들이다. 몇몇 실시예들에서, NAM 필드는 "무"(예컨대, 임의의 특정한 슬레이브 노드(102-2)로 어드레싱되지 않은 데이터), "정상"(예컨대, 이하에서 논의되는 어드레스 필드에서 특정된 특정 슬레이브 노드(102-2)로의 데이터 유니캐스트), "브로드캐스트"(예컨대, 모든 슬레이브 노드들(102-2)로 어드레싱됨), 및 "탐색"을 포함한, 4개의 노드 어드레싱 모드들을 위해 제공할 수 있다.
몇몇 실시예들에서, 동기화 제어 프레임(180)은 I2C 필드를 포함할 수 있다. I2C 필드는 임의의 적절한 길이(예컨대, 1비트)를 가질 수 있으며 다운스트림 송신의 기간(192)이 I2C 트랜잭션을 포함한다는 것을 나타내기 위해 사용될 수 있다. I2C 필드는 호스트(110)가 연관된 슬레이브 노드(102-2)에 대하여 I2C 슬레이브로서 동작하는 주변 디바이스(108)를 원격으로 액세스하기 위한 지시들을 제공하였음을 나타낼 수 있다.
몇몇 실시예들에서, 동기화 제어 프레임(180)은 노드 필드를 포함할 수 있다. 노드 필드는 임의의 적절한 길이(예컨대, 4비트들)를 가질 수 있으며 어떤 슬레이브 노드가 정상 및 I2C 액세스들을 위해 어드레싱되는지를 나타내기 위해 사용될 수 있다. 탐색 모드에서, 이 필드는 슬레이브 노드(102-2)의 노드 ID 레지스터에서 새롭게 탐색된 슬레이브 노드(102-2)에 대한 식별자를 프로그램하기 위해 사용될 수 있다. 시스템(100)에서 각각의 슬레이브 노드(102-2)는, 이하에서 논의된 바와 같이, 슬레이브 노드(102-2)가 마스터 노드(102-1)에 의해 탐색될 때 고유 ID를 할당받을 수 있다. 몇몇 실시예들에서, 마스터 노드(102-1)는 노드 ID를 갖지 않지만, 다른 실시예들에서, 마스터 노드(102-1)는 노드 ID를 가질 수 있다. 몇몇 실시예들에서, 버스(106) 상에서 마스터 노드(102-1)에 접속된 슬레이브 노드(102-2)(예컨대, 도 1에서 슬레이브 노드 0)는 슬레이브 노드 0일 것이며, 각각의 연속적인 슬레이브 노드(102-2)는 이전 슬레이브 노드보다 1 더 높은 수를 가질 것이다. 그러나, 이것은 단순히 예시적이며, 임의의 적절한 슬레이브 노드 식별 시스템이 사용될 수 있다.
몇몇 실시예들에서, 동기화 제어 프레임(180)은 판독/기록(RW) 필드를 포함할 수 있다. RW 필드는 임의의 적절한 길이(예컨대, 1비트)를 가질 수 있으며 정상 액세스들이 판독들(예컨대, RW==1) 또는 기록들(예컨대, RW==0)인지를 제어하기 위해 사용될 수 있다.
몇몇 실시예들에서, 동기화 제어 프레임(180)은 어드레스 필드를 포함할 수 있다. 어드레스 필드는 임의의 적절한 길이(예컨대, 8비트들)를 가질 수 있으며 버스(106)를 통해 슬레이브 노드(102-2)의 특정 레지스터들을 어드레싱하기 위해 사용될 수 있다. I2C 트랜잭션들을 위해, 어드레스 필드는 START/STOP, WAIT, RW, 및 DATA VLD와 같은, I2C 제어 값들로 대체될 수 있다. 탐색 트랜잭션들을 위해, 어드레스 필드는 미리 결정된 값(예컨대, 도 5에 예시된 바와 같이)을 가질 수 있다.
몇몇 실시예들에서, 동기화 제어 프레임(180)은 데이터 필드를 포함할 수 있다. 데이터 필드는 임의의 적절한 길이(예컨대, 8비트들)를 가질 수 있으며 정상, I2C, 및 브로드캐스트 기록들을 위해 사용될 수 있다. 4로 곱한, RESPCYCS 값은 새롭게 탐색된 노드가 수신되는 동기화 제어 프레임(180)의 시작과 송신되는 동기화 응답 프레임(197)의 시작 사이에서 얼마나 많은 사이클들이 경과하도록 허용해야 하는지를 결정하기 위해 사용될 수 있다. NAM 필드가 탐색 모드를 나타낼 때, 이하에서 논의된 노드 어드레스 및 데이터 필드들은, 적절한 선택적 승수(예컨대, 4)로 곱하여질 때, 동기화 제어 프레임(180)의 종료로부터 동기화 응답 프레임(197)의 시작까지 시간을 비트들로 나타내는 RESPCYCS 값으로서 인코딩될 수 있다. 이것은 새롭게 탐색된 슬레이브 노드(102-2)가 업스트림 송신을 위한 적절한 시간 슬롯을 결정하도록 허용한다.
몇몇 실시예들에서, 동기화 제어 프레임(180)은 순환 중복 검사(CRC) 필드를 포함할 수 있다. CRC 필드는 임의의 적절한 길이(예컨대, 16비트들)를 가질 수 있으며 프리앰블(182)을 따르는 동기화 제어 프레임(180)의 제어 데이터(184)에 대한 CRC 값을 송신하기 위해 사용될 수 있다. 몇몇 실시예들에서, CRC는 CCITT-CRC 에러 검출 기법에 따라 산출될 수 있다.
몇몇 실시예들에서, 프리앰블(182)과 CRC 필드 사이에서의 동기화 제어 프레임(180)의 적어도 일 부분은 이러한 간격에서의 비트들의 시퀀스가 주기적으로 프리앰블(182)에 매칭할 가능성을 감소시키기 위해(및 그에 따라 슬레이브 노드(102-2)에 의해 새로운 슈퍼프레임(190)의 시작으로서 잘못 해석될 수 있는), 뿐만 아니라 상기 주지된 바와 같이 전자기 방출들을 감소시키기 위해 스크램블링될 수 있다. 몇몇 이러한 실시예들에서, 동기화 제어 프레임(180)의 CNT 필드는 스크램블링된 필드들이 하나의 슈퍼프레임에서 다음 것으로 상이하게 스크램블링됨을 보장하기 위해 스크램블링 로직에 의해 사용될 수 있다. 여기에서 설명된 시스템(100)의 다양한 실시예들은 스크램블링을 생략할 수 있다.
다른 기술들은 프리앰블(182)이 슬레이브 노드들(102-2)에 의해 고유하게 식별될 수 있음을 보장하기 위해 또는 프리앰블(182)이 상기 논의된 바와 같이, 스크램블링 및/또는 에러 인코딩과 같은 기술들 외에 또는 그 대신에, 동기화 제어 프레임(180)에서의 다른 곳에 나타나는 가능성을 감소시키기 위해 사용될 수 있다. 예를 들어, 보다 긴 동기화 시퀀스는 동기화 제어 프레임(180)의 나머지의 특정한 인코딩이 그것에 매칭될 가능성을 감소시키기 위해 사용될 수 있다. 부가적으로 또는 대안적으로, 동기화 제어 프레임의 나머지는 적절한 비트들에서 고정된 "0" 또는 "1" 값들을 둠으로써와 같은, 동기화 시퀀스가 발생할 수 없도록 구조화될 수 있다.
마스터 노드(102-1)는 버스(106) 상에서의 통신에 특정적인 요청들 및 I2C 요청들 모두를 포함하여, 판독 및 기록 요청들을 슬레이브 노드들(102-2)로 전송할 수 있다. 예를 들어, 마스터 노드(102-1)는 판독 및 기록 요청들(RW 필드를 사용하여 표시된)을 하나 이상의 지정된 슬레이브 노드들(102-2)(NAM 및 노드 필드들을 사용하여)로 전송할 수 있으며 요청이 버스(106)에 특정적인 슬레이브 노드(102-2)에 대한 요청, 슬레이브 노드(102-2)에 대한 I2C 요청, 또는 슬레이브 노드(102-2)의 하나 이상의 I2C 포트들에서 슬레이브 노드(102-2)에 결합된 I2C-호환 가능 주변 디바이스(108)로 넘겨질 I2C 요청인지를 나타낼 수 있다.
업스트림 통신으로 돌아가면, 동기화 응답 프레임(197)은 각각의 업스트림 송신을 시작할 수 있다. 몇몇 실시예들에서, 동기화 응답 프레임(197)은 길이가 64비트들일 수 있지만, 임의의 다른 적절한 길이가 사용될 수 있다. 동기화 응답 프레임(197)은 또한 동기화 제어 프레임(180)의 프리앰블(182)을 참조하여 상기 논의된 바와 같이, 프리앰블, 이어서 데이터 부분을 포함할 수 있다. 다운스트림 송신의 끝에서, 버스(106) 상에서의 마지막 슬레이브 노드(102-2)는 RESPCYCS 카운터가 만료될 때까지 기다리며 그 후 동기화 응답 프레임(197)을 업스트림을 송신하기 시작할 수 있다. 업스트림 슬레이브 노드(102-2)가 정상 판독 또는 기록 트랜잭션에 의해 타겟팅되었다면, 슬레이브 노드(102-2)는 그 자신의 동기화 응답 프레임(197)을 생성하며 다운스트림으로부터 수신된 것을 대신할 수 있다. 임의의 슬레이브 노드(102-2)가 예상된 시간에서 다운스트림 슬레이브 노드(102-2)로부터 동기화 응답 프레임(197)을 보지 않는다면, 슬레이브 노드(102-2)는 그 자신의 동기화 응답 프레임(197)을 생성하고 그것을 업스트림으로 송신하기 시작할 것이다.
동기화 응답 프레임(197)의 데이터 부분은 응답 정보를 마스터 노드(102-1)로 다시 전달하기 위해 사용된 데이터를 포함하는 필드들을 포함할 수 있다. 이들 필드들의 예들은 이하에서 논의되며, 몇몇 실시예들은 도 6에서 예시된다. 특히, 도 6은 다양한 실시예들에 따라, 정상 모드, I2C 모드, 및 탐색 모드에서 동기화 응답 프레임(197)에 대한 예시적인 포맷들을 예시한다.
몇몇 실시예들에서, 동기화 응답 프레임(197)은 카운트(CNT) 필드를 포함할 수 있다. CNT 필드는 임이의 적절한 길이(예컨대, 2비트들)를 가질 수 있으며 이전에 수신된 동기화 제어 프레임(180)에서 CNT 필드의 값을 송신하기 위해 사용될 수 있다.
몇몇 실시예들에서, 동기화 응답 프레임(197)은 확인 응답(ACK) 필드를 포함할 수 있다. ACK 필드는 임의의 적절한 길이(예컨대, 2비트들)를 가질 수 있으며, 슬레이브 노드(102-2)가 동기화 응답 프레임(197)을 생성할 때 이전 동기화 제어 프레임(180)에서 수신된 명령을 확인응답하기 위해 슬레이브 노드(102-2)에 의해 삽입될 수 있다. ACK 필드에서 전달될 수 있는 예시적인 표시자들은 대기, 확인응답, 부정 확인응답(NACK), 및 재시도를 포함한다. 몇몇 실시예들에서, ACK 필드는 브로드캐스트 메시지를 수신하고 프로세싱한 슬레이브 노드(102-2)에 의해 확인응답을 송신하기 위해 사이징될 수 있다(예컨대, 마스터 노드(102-1)로 브로드캐스트 확인응답을 송신함으로써). 몇몇 이러한 실시예들에서, 슬레이브 노드(102-2)는 또한 슬레이브 노드(102-2)가 송신할 데이터(예를 들어, 키패드 또는 터치스크린으로부터의 비-TDM 입력들과 같은, 요구-기반 업스트림 송신들을 위해, 또는 슬레이브 노드(102-2)가 에러 또는 긴급 상태를 보고하고 싶어할 때와 같은, 우선화된 업스트림 송신을 위해 사용될 수 있는)를 갖고 있는지를 나타낼 수 있다.
몇몇 실시예들에서, 동기화 응답 프레임(197)은 I2C 필드를 포함할 수 있다. I2C 필드는 임의의 적절한 길이(예컨대, 1비트)를 가질 수 있으며 이전에 수신된 동기화 제어 프레임(180)에서 I2C 필드의 값을 송신하기 위해 사용될 수 있다.
몇몇 실시예들에서, 동기화 응답 프레임(197)은 노드 필드를 포함할 수 있다. 노드 필드는 임의의 적절한 길이(예컨대, 4비트들)를 가질 수 있으며 동기화 응답 프레임(197)을 생성하는 슬레이브 노드(102-2)의 ID를 송신하기 위해 사용될 수 있다.
몇몇 실시예들에서, 동기화 응답 프레임(197)은 데이터 필드를 포함할 수 있다. 데이터 필드는 임의의 적절한 길이(예컨대, 8비트들)를 가질 수 있으며, 그것의 값은 동기화 응답 프레임(197)을 생성하는 슬레이브 노드(102-2)의 ACK 응답 및 트랜잭션의 유형에 의존할 수 있다. 탐색 트랜잭션들을 위해, 데이터 필드는 이전에 수신된 동기화 제어 프레임(180)에서 RESPCYCS 필드의 값을 포함할 수 있다. ACK 필드가 NACK을 나타낼 때, 또는 동기화 응답 프레임(197)이 브로드캐스트 트랜잭션에 응답할 때, 데이터 필드는 브로드캐스트 확인응답(BA) 표시자(마지막 슬레이브 노드(102-2)는 브로드캐스트 기록이 에러 없이 수신되었는지를 나타낼 수 있다), 탐색 에러(DER) 표시자(탐색 트랜잭션에서 새롭게 탐색된 슬레이브 노드(102-2)가 기존의 슬레이브 노드(102-2)에 매칭되는지를 나타내는), 및 CRC 에러(CER) 표시자(NACK이 CRC 에러에 의해 야기되었는지를 나타내는)를 포함할 수 있다.
몇몇 실시예들에서, 동기화 응답 프레임(197)은 CRC 필드를 포함할 수 있다. CRC 필드는 임의의 적절한 길이(예컨대, 16비트들)를 가질 수 있으며 프리앰블과 CRC 필드 사이에서 동기화 응답 프레임(197)의 부분에 대한 CRC 값을 송신하기 위해 사용될 수 있다.
몇몇 실시예들에서, 동기화 응답 프레임(197)은 인터럽트 요청(IRQ) 필드를 포함할 수 있다. IRQ 필드는 임의의 적절한 길이(예컨대, 1비트)를 가질 수 있으며 인터럽트가 슬레이브 노드(102-2)로부터 시그널링되었음을 나타내기 위해 사용될 수 있다.
몇몇 실시예들에서, 동기화 응답 프레임(197)은 IRQ 노드(IRQNODE) 필드를 포함할 수 있다. IRQODE 필드는 임의의 적절한 길이(예컨대, 4비트들)를 가질 수 있으며 IRQ 필드에 의해 제공된 인터럽트를 시그널링한 슬레이브 노드(102-2)의 ID를 송신하기 위해 사용될 수 있다. 몇몇 실시예들에서, IRQ 필드를 생성하기 위한 슬레이브 노드(102-2)는 그 자신의 ID를 IRQNODE 필드로 삽입할 것이다.
몇몇 실시예들에서, 동기화 응답 프레임(197)은 제 2 CRC(CRC-4) 필드를 포함할 수 있다. CRC-4 필드는 임의의 적절한 길이(예컨대, 4비트들)를 가질 수 있으며 IRQ 및 IRQNODE 필드들에 대한 CRC 값을 송신하기 위해 사용될 수 있다.
몇몇 실시예들에서, 동기화 응답 프레임(197)은 IRQ 필드, IRQNODE 필드, 및 CRC-4 필드를 동기화 응답 프레임(197)의 마지막 비트들(예컨대, 마지막 10비트들)로서 포함할 수 있다. 상기 논의된 바와 같이, 이들 인터럽트-관련 필드들은 CRC-4의 형태로 그것들 자신의 CRC 보호를 가질 수 있다(및 그에 따라 이전 CRC 필드에 의해 보호되지 않는다). 마스터 노드(102-1)로 인터럽트를 시그널링할 필요가 있는 임의의 슬레이브 노드(102-2)는 이들 필드들로 인터럽트 정보를 삽입할 것이다. 몇몇 실시예들에서, 인터럽트 보류를 가진 슬레이브 노드(102-2)는 또한 추가 다운스트림으로 인터럽트 보류를 가진 임의의 슬레이브 노드(102-2)보다 높은 우선순위를 가질 수 있다. 버스(106)를 따르는 마지막 슬레이브 노드(102-2)(예컨대, 도 1에서 슬레이브 노드 2)는 항상 이들 인터럽트 필드들을 실장할 수 있다. 마지막 슬레이브 노드(102-2)가 어떤 인터럽트 보류도 갖지 않는다면, 마지막 슬레이브 노드(102-2)는 IRQ 비트를 0으로, IRQNODE 필드를 그것의 노드 ID로 설정하며, 정확한 CRC-R 값을 제공할 수 있다. 편리함을 위해, 인터럽트를 수송하는 동기화 응답 프레임(197)은 여기에서 "인터럽트 프레임"으로서 불리울 수 있다.
몇몇 실시예들에서, 프리앰블(182)과 CRC 필드 사이에서 동기화 응답 프레임(197)의 적어도 일 부분은 방출들을 감소시키기 위해 스크램블링될 수 있다. 몇몇 이러한 실시예들에서, 동기화 응답 프레임(197)의 CNT 필드는 스크램블링된 필드들이 하나의 슈퍼프레임에서 다음 것으로 상이하게 스크램블링됨을 보장하기 위해 스크램블링 로직에 의해 사용될 수 있다. 여기에서 설명된 시스템(100)의 다양한 실시예들은 스크램블링을 생략할 수 있다.
다른 기술들은, 상기 논의된 바와 같이 스크램블링 및/또는 에러 인코딩과 같은 기술들 외에 또는 그 대신에, 프리앰블(182)이 슬레이브 노드들(102-2)에 의해 고유하게 식별될 수 있음을 보장하기 위해 또는 프리앰블(182)이 동기화 응답 프레임(197)에서의 다른 곳에 나타나는 가능성을 감소시키기 위해 사용될 수 있다. 예를 들어, 보다 긴 동기화 시퀀스는 동기화 응답 프레임(180)의 나머지의 특정한 인코딩이 그것에 매칭될 가능성을 감소시키기 위해 사용될 수 있다. 부가적으로 또는 대안적으로, 동기화 응답 프레임의 나머지는, 적절한 비트들에서 고정된 "0" 또는 "1" 값들을 둠으로써와 같은, 동기화 시퀀스가 발생할 수 없도록 구조화될 수 있다.
도 7은 다양한 실시예들에 따른, 도 2의 버스 프로토콜 회로(126)의 블록도이다. 버스 프로토콜 회로(126)는 여기에서 설명된 버스(106)에 대한 프로토콜에 따라 노드 트랜시버(120)의 동작을 제어하기 위해 제어 회로(154)를 포함할 수 있다. 특히, 제어 회로(154)는 송신을 위한 동기화 프레임들(예컨대, 상기 논의된 바와 같이, 동기화 제어 프레임들 또는 동기화 응답 프레임들)의 생성, 수신된 동기화 프레임들의 프로세싱, 및 수신된 동기화 제어 프레임들에서 특정된 제어 동작들의 수행을 제어할 수 있다. 제어 회로(154)는 이하에서 논의된 바와 같이, 프로그램 가능한 레지스터들을 포함할 수 있다. 제어 회로(154)는 동기화 제어 프레임들을 생성하고 수신하고, 수신된 메시지들에 적절히 반응하며(예컨대, 버스 프로토콜 회로(126)가 슬레이브 노드(102-2)에 포함될 때 동기화 제어 프레임과 연관된 또는 버스 프로토콜 회로(126)가 마스터 노드(102-1)에 포함될 때 I2C 디바이스로부터), 프레이밍을 상이한 동작 모드들(예컨대, 정상, 탐색, 대기 등)로 조정한다.
노드 트랜시버(120)가 버스(106)를 따라 송신을 위한 데이터를 준비하고 있을 때, 프리앰블 회로(156)는 송신을 위한 동기화 프레임들에 대한 프리앰블들을 생성하며, 수신된 동기화 프레임들로부터 프리앰블들을 수신하도록 구성될 수 있다. 몇몇 실시예들에서, 다운스트림 동기화 제어 프레임 프리앰블은 1024 비트들마다 마스터 노드(102-1)에 의해 전송될 수 있다. 상기 논의된 바와 같이, 하나 이상의 슬레이브 노드들(102-2)은 다운스트림 동기화 제어 프레임 프리앰블에 동기화하며 프리앰블로부터 국소, 위상-동조 마스터 클록들을 생성할 수 있다.
CRC 삽입 회로(158)는 송신을 위한 동기화 프레임들에 대한 하나 이상의 CRC들을 생성하도록 구성될 수 있다. 프레임/압축 회로(160)는 I2S/TDM/PDM 트랜시버(127)(예컨대, 트랜시버(127)와 연관된 프레임 버퍼로부터) 및/또는 I2C 트랜시버(129)로부터 인입 데이터를 취하고, 선택적으로 데이터를 압축하며, 선택적으로 데이터에 대한 패리티 검사 비트들 또는 에러 정정 코드들(ECC)을 생성하도록 구성될 수 있다. 다중화기(MUX)(162)는 프리앰블 회로(156)로부터의 프리앰블, 동기화 프레임들, 및 데이터를 송신을 위한 스트림으로 다중화할 수 있다. 몇몇 실시예들에서, 송신 스트림은 송신 전에 스크램블링 회로(164)에 의해 스크램블링될 수 있다.
예를 들어, 몇몇 실시예들에서, 프레임/압축 회로(160)는 부동 소수점 압축 기법을 이용할 수 있다. 이러한 실시예에서, 제어 회로(154)는 수에서 부호 비트들이 얼마나 많이 반복되는지를 나타내기 위해 3비트들, 이어서 부호 비트 및 N-4비트들의 데이터를 송신할 수 있으며, 여기에서 N은 버스(106)를 통해 송신될 데이터의 크기이다. 데이터 압축의 사용은 요구될 때 마스터 노드(102-1)에 의해 구성될 수 있다.
몇몇 실시예들에서, 노드 트랜시버(120)에 들어가는 수신 스트림은 디스크램블링 회로(166)에 의해 디스크램블링될 수 있다. 역다중화기(DEMUX)(168)는 수신 스트림으로부터 프리앰블, 동기화 프레임들, 및 데이터를 역다중화할 수 있다. 수신 측 상에서 CRC 검사 회로(159)는 정확한 CRC에 대해 수신된 동기화 프레임들을 검사할 수 있다. CRC 검사 회로(159)가 인입한 동기화 제어 프레임(180)에서 CRC 실패를 식별할 때, 제어 회로(154)는 실패를 통지받을 수 있으며 동기화 제어 프레임(180)의 제어 데이터(184)에서 임의의 제어 명령들을 수행하지 않을 것이다. CRC 검사 회로(159)가 인입한 동기화 응답 프레임(197)에서 CRC 실패를 식별할 때, 제어 회로(154)는 실패를 통지받을 수 있으며 인터럽트 프레임에서 호스트(110)로의 송신을 위한 인터럽트를 생성할 수 있다. 디프레임/압축 해제 회로(170)는 수신 데이터를 수용하고, 선택적으로 그것의 패리티를 검사하고, 선택적으로 에러 검출 및 정정을 수행하고(예컨대, 단일 에러 정정 - 이중 에러 검출(SECDED)), 선택적으로 데이터를 압축 해제하며, 수신 데이터를 I2S/TDM/PDM 트랜시버(127)(예컨대, 트랜시버(127)와 연관된 프레임 버터) 및/또는 I2C 트랜시버(129)로 기록할 수 있다.
상기 논의된 바와 같이, 업스트림 및 다운스트림 데이터는 슈퍼프레임(190) 내에서의 TDM 데이터 슬롯들에서 버스(106)를 따라 송신될 수 있다. 제어 회로(154)는 버스(106) 상에서 이들 데이터 슬롯들을 관리하는데 전용되는 레지스터들을 포함할 수 있으며, 그것의 다수의 예들은 이하에서 논의된다. 제어 회로(154)가 마스터 노드(102-1)에 포함될 때, 이들 레지스터들에서의 값들은 호스트(110)에 의해 제어 회로(154)로 프로그램될 수 있다. 제어 회로(154)가 슬레이브 노드(102-2)에 포함될 때, 이들 레지스터들에서의 값들은 마스터 노드(102-1)에 의해 제어 회로(154)로 프로그램될 수 있다.
몇몇 실시예들에서, 제어 회로(154)는 다운스트림 슬롯(DNSLOTS) 레지스터를 포함할 수 있다. 노드 트랜시버(120)가 마스터 노드(102-1)에 포함될 때, 이러한 레지스터는 다운스트림 데이터 슬롯들의 총 수의 값을 유지할 수 있다. 이 레지스터는 또한 마스터 노드(102-1)에서 I2S/TDM/PDM 트랜시버(127)에 의해 수신된 조합된 I2S/TDM/PDM을 위해 사용될 데이터 슬롯들의 수를 정의할 수 있다. 슬레이브 노드(102-2)에서, 이 레지스터는 LDNSLOTS를 참조하여 이하에서 추가로 상세하게 논의되는 바와 같이, 국소적으로 생성된 다운스트림 슬롯들의 부가 전 또는 후에 다음 슬레이브 노드(102-2) 아래로 전달되는 데이터 슬롯들의 수를 정의할 수 있다.
몇몇 실시예들에서, 제어 회로(154)는 로컬 다운스트림 슬롯(LDNSLOTS) 레지스터를 포함할 수 있다. 이 레지스터는 마스터 노드(102-1)에서 사용되지 않을 수 있다. 슬레이브 노드(102-2)에서, 이 레지스터는 슬레이브 노드(102-2)가 사용하고 재송신하지 않을 데이터 슬롯들의 수를 정의할 수 있다. 대안적으로, 이 레지스터는 슬레이브 노드(102-2)가 다운스트림 버스 링크(106)에 기여할 수 있는 슬롯들의 수를 정의할 수 있다.
몇몇 실시예들에서, 제어 회로(154)는 업스트림 슬롯(UPSLOTS) 레지스터를 포함할 수 있다. 마스터 노드(102-1)에서, 이 레지스터는 업스트림 데이터 슬롯들의 총 수의 값을 유지할 수 있다. 이 레지스터는 마스터 노드(102-1)에서 I2S/TDM/PDM 트랜시버(127)에 의한 I2S/TDM 송신을 위해 사용될 슬롯들의 수를 정의할 수 있다. 슬레이브 노드(102-2)에서, 이 레지스터는 슬레이브 노드(102-2)가 그 자신의 데이터를 부가하기 시작하기 전에 업스트림으로 전달되는 데이터 슬롯들의 수를 정의할 수 있다.
몇몇 실시예들에서, 제어 회로(154)는 로컬 업스트림 슬롯(LUPSLOTS) 레지스터를 포함할 수 있다. 이 레지스터는 마스터 노드(102-1)에서 사용되지 않을 수 있다. 슬레이브 노드(102-2)에서, 이 레지스터는 슬레이브 노드(102-2)가 그것이 업스트림으로 전송되기 전에 다운스트림으로부터 수신된 데이터에 부가할 데이터 슬롯들의 수를 정의할 수 있다. 이 레지스터는 슬레이브 노드(102-2)에서 I2S/TDM/PDM 트랜시버(127)에 의한 조합된 I2S/TDM/PDM 수신을 위해 사용될 데이터 슬롯들의 수를 정의할 수 있다.
몇몇 실시예들에서, 제어 회로(154)는 브로드캐스트 다운스트림 슬롯(BCDNSLOTS) 레지스터를 포함할 수 있다. 이 레지스터는 마스터 노드(102-1)에서 사용되지 않을 수 있다. 슬레이브 노드(102-2)에서, 이 레지스터는 브로드캐스트 데이터 슬롯들의 수를 정의할 수 있다. 몇몇 실시예들에서, 브로드캐스트 데이터 슬롯들은 항상 데이터 필드의 처음에 올 수 있다. 브로드캐스트 데이터 슬롯들에서의 데이터는 다수의 슬레이브 노드들(102-2)에 의해 사용될 수 있으며 그것들이 사용되는지 여부에 관계없이 모든 슬레이브 노드들(102-2)에 의해 다운스트림으로 전달될 수 있다.
몇몇 실시예들에서, 제어 회로(154)는 슬롯 포맷(SLOTFMT) 레지스터를 포함할 수 있다. 이 레지스터는 업스트림 및 다운스트림 송신들을 위한 데이터의 포맷을 정의할 수 있다. I2S/TDM/PDM 트랜시버(127)를 위한 데이터 크기가 또한 이 레지스터에 의해 결정될 수 있다. 몇몇 실시예들에서, 유효한 데이터 크기들은 8, 12, 16, 20, 24, 28, 및 32비트들을 포함한다. 이 레지스터는 또한 다운스트림 및 업스트림 트래픽을 위한 부동 소수점 압축을 가능하게 하기 위한 비트들을 포함할 수 있다. 부동 소수점 압축이 가능해질 때, I2S/TDM 데이터 크기는 버스(106)를 통한 데이터 크기보다 4비트 더 클 수 있다. 시스템(100)에서의 모든 노드들은 데이터 슬롯들이 가능해질 때 SLOTFMT를 위한 동일한 값들을 가질 수 있으며, 노드들은 모든 노드들이 동일한 값으로 업데이트되도록 브로드캐스트 기록에 의해 프로그램될 수 있다.
도 8 내지 도 11은 여기에서 설명된 버스 프로토콜들의 다양한 실시예들에 따른, 버스(106)를 따르는 정보 교환의 예들을 예시한다. 특히, 도 8 내지 도 11은 각각의 슬레이브 노드(102-2)가 주변 디바이스(108)로서 하나 이상의 스피커들 및/또는 하나 이상의 마이크로폰들에 결합되는 실시예들을 예시한다. 이것은, 주변 디바이스(108)의 임의의 원하는 배열이 여기에서 설명된 기술들에 따라 임의의 특정한 슬레이브 노드(102-2)에 결합될 수 있으므로, 단순히 예시적이다.
시작을 위해, 도 8은 다양한 실시예들에 따른, 버스(106) 상에서 양-방향 통신을 위한 시그널링 및 타이밍 고려사항들을 예시한다. 도 8에 묘사된 슬레이브 노드들(102-2)은 다양한 수들의 센서/작동기 요소들을 가지며, 따라서 상이한 양들의 데이터가 다양한 슬레이브 노드들(102-2)로 전송되거나, 또는 그로부터 수신될 수 있다. 구체적으로, 슬레이브 노드 1은 2개의 요소들을 갖고, 슬레이브 노드 4는 4개의 요소들을 가지며, 슬레이브 노드 5는 3개의 요소들을 갖고, 따라서 마스터 노드(102-1)에 의해 송신된 데이터는 슬레이브 노드 1에 대해 2개의 시간 슬롯들, 슬레이브 노드 4에 대해 4개의 시간 슬롯들, 및 슬레이브 노드 5에 대해 3개의 시간 슬롯들을 포함한다. 유사하게, 슬레이브 노드 0은 3개의 요소들을 갖고, 슬레이브 노드 2는 3개의 요소들을 갖고, 슬레이브 노드 3은 3개의 요소들을 갖고, 슬레이브 6은 1개의 요소를 가지며, 슬레이브 노드 7은 4개의 요소들을 갖고, 따라서 이들 슬레이브 노드들(102-2)에 의해 업스트림으로 송신된 데이터는 대응하는 수의 시간 슬롯들을 포함한다. 요소들과 시간 슬롯들 사이에서 1-대-1 상관일 필요는 없다는 것이 주의되어야 한다. 예를 들어, 3개의 마이크로폰들을 가진, 주변 디바이스(108)에 포함된, 마이크로폰 어레이는, 프로세싱의 유형에 의존하여, 단일 시간 슬롯 또는 다수의 시간 슬롯들에 대응할 수 있는, 단일 데이터 샘플을 생성하기 위해 3개의 마이크로폰들로부터의 신호들(및 가능하게는 또한 마스터 노드(102-1)로부터 또는 다른 슬레이브 노드들(102-2)로부터 수신된 정보)을 조합하는 DSP를 포함할 수 있다.
도 8에서, 마스터 노드(102-1)는 특정 슬레이브 노드들(102-2)에 결합된 스피커들에 대한 데이터(SD)에 앞서 동기화 제어 프레임(SCF)을 송신한다. 각각의 연속적인 슬레이브 노드(102-2)는 SCF를 포워딩하며 또한 다운스트림 슬레이브 노드들(102-2)을 향한 적어도 임의의 데이터를 포워딩한다. 특정한 슬레이브 노드(102-2)는 모든 데이터를 포워딩할 수 있거나 또는 상기 슬레이브 노드(102-2)를 향한 데이터를 제거할 수 있다. 마지막 슬레이브 노드(102-2)가 SCF를 수신할 때, 상기 슬레이브 노드(102-2)는 선택적으로 슬레이브 노드(102-2)가 송신하도록 허용되는 임의의 데이터에 앞서 동기화 응답 프레임(SRF)을 송신한다. 각각의 연속적인 슬레이브 노드(102-2)는 다운스트림 슬레이브 노드들(102-2)로부터의 임의의 데이터와 함께 SRF를 포워딩하며 선택적으로 특정한 슬레이브 노드들(102-2)에 결합된 하나 이상의 마이크로폰들로부터의 데이터(MD)를 삽입한다. 도 8의 예에서, 마스터 노드(102-1)는 데이터를 슬레이브 노드들 1, 4, 및 5(활성 스피커들로서 도 8에 묘사됨)로 전송하며 슬레이브 노드들 7, 6, 3, 2, 및 0(마이크로폰 어레이들로서 도 8에 묘사됨)으로부터 데이터를 수신한다.
도 9는 다양한 실시예들에 따라, 다운스트림 DS 트랜시버(124)의 관점으로부터, 다운스트림 송신으로부터의 데이터의 동적 제거 및 업스트림 송신으로의 데이터의 삽입을 개략적으로 예시한다. 도 8에서처럼, 도 9에서, 마스터 노드(102-1)는 역순으로 슬레이브 노드들 1, 4, 및 5에 대한 데이터(SD)에 앞서 SCF를 송신한다(예컨대, 슬레이브 노드 5에 대한 데이터는 슬레이브 노드 4에 대한 데이터로 이어지고, 이것은 슬레이브 노드 1에 대한 데이터로 이어진다)(MASTER로 라벨링된 로우 참조). 슬레이브 노드 1이 이러한 송신을 수신할 때, 슬레이브 노드 1은 그 자신의 데이터를 제거하며 슬레이브 노드들 5 및 4에 대한 데이터에 앞서 단지 SCF만을 슬레이브 노드 2로 포워딩한다. 슬레이브 노드들 2 및 3은 변경되지 않은 데이터를 포워딩하며(SLAVE 2로 라벨링된 로우 참조), 따라서 슬레이브 노드 1에 의해 포워딩된 데이터는 슬레이브 노드 4에 의해 수신된다(SLAVE 3으로 라벨링된 로우 참조). 슬레이브 노드 4는 그 자신의 데이터를 제거하며 슬레이브 노드 5에 대한 데이터에 앞서 SCF만을 슬레이브 노드 5로 포워딩하고, 유사하게, 슬레이브 노드 5는 그 자신의 데이터를 제거하며 단지 SCF만을 슬레이브 노드 6으로 포워딩한다. 슬레이브 노드 6은 SCF를 슬레이브 노드 7로 포워딩한다(SLAVE 6으로 라벨링된 로우 참조).
이때, 슬레이브 노드 7은 그것의 데이터에 앞서 SRF를 슬레이브 노드 6으로 송신한다(SLAVE 6으로 라벨링된 로우 참조). 슬레이브 노드 6은 슬레이브 노드 7로부터의 데이터 및 그 자신의 데이터와 함께 SRF를 슬레이브 노드 5로 포워딩하며, 슬레이브 노드 5는 결국 슬레이브 노드 7 및 6으로부터의 데이터와 함께 SRF를 슬레이브 노드 4로 포워딩한다. 슬레이브 노드 4는 부가할 데이터가 없으며, 따라서 그것은 간단히 데이터를 슬레이브 노드 3으로 포워딩하고(SLAVE 3으로 라벨링된 로우 참조), 이것은 그 자신의 데이터와 함께 데이터를 슬레이브 노드 2로 포워딩하며(SLAVE 2로 라벨링된 로우 참조), 이것은 결국 그 자신의 데이터와 함께 데이터를 슬레이브 노드 1로 포워딩한다. 슬레이브 노드 1은 부가할 데이터가 없으며, 따라서 그것은 데이터를 슬레이브 노드 0으로 포워딩하고, 이것은 그 자신의 데이터와 함께 데이터를 포워딩한다. 그 결과, 마스터 노드(102-1)는 슬레이브 노드들 7, 6, 3, 2, 및 0으로부터의 데이터에 앞서 SRF를 수신한다(MASTER로 라벨링된 로우 참조).
도 10은 도 9에서처럼, 다운스트림 DS 트랜시버(124)의 관점으로부터, 다운스트림 송신으로부터의 데이터의 동적 제거 및 업스트림 송신으로의 데이터의 삽입의 또 다른 예를 예시하지만, 도 10에서, 슬레이브 노드들(102-2)은 마스터 노드(102-1)가 슬레이브 노드들(102-2) 모두로 다운스트림으로 데이터를 전송하고 슬레이브 노드들(102-2) 모두로부터 다시 데이터를 수신하도록 주변 디바이스(108)로서 센서들 및 작동기들 모두와 결합된다. 또한, 도 10에서, 데이터는 그것이 향하거나 또는 그로부터 비롯된 노드 어드레스에 기초하여 순서화된다. "Y"로 라벨링된 데이터 슬롯은 데이터 무결성 검사 또는 데이터 정정을 위해 사용될 수 있다.
도 11은 도 9에서처럼, 다운스트림 DS 트랜시버(124)의 관점으로부터, 다운스트림 송신으로부터의 데이터의 동적 제거 및 업스트림 송신으로의 데이터의 삽입의 또 다른 예를 예시하지만, 도 11에서, 데이터는 역순보다는 순차적인 순서로 다운스트림으로 및 업스트림으로 수송된다. 각각의 슬레이브 노드(102-2)에서의 버퍼링은 데이터를 선택적으로 부가하고, 제거하며, 및/또는 포워딩하는 것을 허용한다.
상기 논의된 바와 같이, 각각의 슬레이브 노드(102-2)는 다운스트림 또는 업스트림 송신들로부터 데이터를 제거할 수 있으며 및/또는 다운스트림 또는 업스트림 송신들에 데이터를 부가할 수 있다. 따라서, 예를 들어, 마스터 노드(102-1)는 다수의 슬레이브 노드들(102-2)의 각각에 데이터의 별개의 샘플을 송신할 수 있으며, 각각의 이러한 슬레이브 노드(102-2)는 그것의 데이터 샘플을 제거하며 다운스트림 슬레이브들을 위해 의도된 데이터만을 포워딩할 수 있다. 다른 한편으로, 슬레이브 노드(102-2)는 다운스트림 슬레이브 노드(102-2)로부터 데이터를 수신하며 부가적인 데이터와 함께 데이터를 포워딩할 수 있다. 요구된 만큼 적은 정보를 송신하는 하나의 이점은 시스템(100)에 의해 총괄하여 소비된 전력의 양을 감소시키는 것이다.
시스템(100)은 또한 구체적으로, 슬레이브 노드들(102-2)의 다운스트림 슬롯 사용의 구성을 통해, 마스터 노드(102-1)로부터 슬레이브 노드(102-2)로 브로드캐스트 송신들(및 멀티캐스트 송신들)을 지원할 수 있다. 각각의 슬레이브 노드(102-2)는 브로드캐스트 송신을 프로세싱하며 그것을 다음 슬레이브 노드(102-2)로 넘길 수 있지만, 특정한 슬레이브 노드(102-2)는 브로드캐스트 메시지를 "소비"할 수 있다(즉, 브로드캐스트 송신을 다음 슬레이브 노드(102-2)로 넘기지 않는다).
시스템(100)은 또한 업스트림 송신들(예컨대, 특정한 슬레이브 노드(102-2)로부터 하나 이상의 다른 슬레이브 노드들(102-2)로)을 지원할 수 있다. 이러한 업스트림 송신들은 유니캐스트, 멀티캐스트, 및/또는 브로드캐스트 업스트림 송신들을 포함할 수 있다. 업스트림 어드레싱을 갖고, 다운스트림 송신들을 참조하여 상기 논의된 바와 같이, 슬레이브 노드(102-2)는 슬레이브 노드들(102-2)의 업스트림 슬롯 사용의 구성에 기초하여 업스트림 송신으로부터의 데이터를 제거할지 여부 및/또는 다음 업스트림 슬레이브 노드(102-2)로 업스트림 송신을 넘길지 여부를 결정할 수 있다. 따라서, 예를 들어, 데이터는 마스터 노드(102-1)로 데이터를 전달하는 것 외에, 또는 그 대신에, 특정한 슬레이브 노드(102-2)로부터 하나 이상의 슬레이브 노드들(102-2)로 전달될 수 있다. 이러한 슬레이브-슬레이브 관계들은, 예를 들면, 마스터 노드(102-1)를 통해 구성될 수 있다.
따라서, 다양한 실시예들에서, 슬레이브 노드들(102-2)은 선택적으로 정보를 포워딩하고, 드롭하며, 부가하기 위한 능력을 갖고, 활성/지능형 리피터 노드들로서 동작할 수 있다. 슬레이브 노드들(102-2)은 일반적으로, 각각의 슬레이브 노드(102-2)가 그것이 데이터를 수신/송신할 적절한 시간 슬롯(들)을 알고 있으므로, 데이터의 모두를 반드시 디코딩/조사하지 않고 이러한 기능들을 수행할 수 있으며, 그러므로 시간 슬롯으로부터 데이터를 제거하거나 또는 그것으로 데이터를 부가할 수 있다. 슬레이브 노드들(102-2)이 모든 데이터를 디코딩/조사할 필요가 없음에도 불구하고, 슬레이브 노드들(102-2)은 통상적으로 그것이 송신/포워딩하는 데이터를 재-클로킹할 수 있다. 이것은 시스템(100)의 강건성을 개선할 수 있다.
몇몇 실시예들에서, 버스(106)는 링 토폴로지에서 단방향 통신들을 위해 구성될 수 있다. 예를 들어, 도 12는 다양한 실시예들에 따라, 링 토폴로지에서 마스터 노드(102-1) 및 4개의 슬레이브 노드들(102-2)의 배열(1200)을 예시하며, 배열(1200)에서 단방향 통신을 위한 시그널링 및 타이밍 고려사항들을 예시한다. 이러한 실시예들에서, 노드들에서의 노드 트랜시버들(120)은 업스트림 및 다운스트림 통신을 위해 두 개의 양-방향 트랜시버들보다는, 수신-전용 트랜시버(MASTER IN) 및 송신-전용 트랜시버(MASTER OUT)를 포함할 수 있다. 도 12에 예시된 링크-계층 동기화 기법에서, 마스터 노드(102-1)는 선택적으로 다양한 슬레이브 노드들(102-2)에 결합된 3개의 스피커들에 대한 "다운스트림" 데이터(1202)(도 8 내지 도 11을 참조하여 상기 논의된 바와 같이, 상이한 스피커들에 대한 데이터는 임의의 적절한 순서로 배열될 수 있다)에 앞서, SCF(180)를 송신하며, 각각의 연속적인 슬레이브 노드(102-2)는 "업스트림" 데이터(1204)(예컨대, 도 8 내지 도 11을 참조하여 상기 논의된 바와 같이, 8개의 상이한 마이크로폰들로부터의 데이터가 임의의 적절한 순서로 배열될 수 있다)를 제공하기 위해 이전 슬레이브 노드들(102-2)로부터의 임의의 "업스트림" 데이터 및 그 자신의 "업스트림" 데이터와 함께 동기화 제어 프레임(180)을 포워딩한다.
여기에서 설명된 바와 같이, 데이터는 다수의 방식들 중 임의의 것으로 시스템(100)의 요소들 사이에서 전달될 수 있다. 몇몇 실시예들에서, 데이터는 슬레이브 노드(102-2)에 의해 업스트림으로 또는 슬레이브 노드(102-2) 또는 마스터 노드(102-1)에 의해 다운스트림으로(예컨대, 데이터 슬롯들(198)을 사용하여) 동기 데이터 슬롯들의 세트의 부분으로서 전송될 수 있다. 이러한 데이터의 볼륨은 데이터 슬롯에서 비트들의 수를 변경하거나, 또는 추가 데이터 슬롯들을 포함함으로써 조정될 수 있다. 데이터는 또한 동기화 제어 프레임(180) 또는 동기화 응답 프레임(197)에서의 포함에 의해 시스템(100)에서 전달될 수 있다. 이러한 방식으로 전달된 데이터는 호스트(110)로부터의 I2C 제어 데이터(슬레이브 노드(102-2)와 연관된 주변 디바이스(108)로부터의 응답으로); 호스트(110)/마스터 노드(102-1)로부터 슬레이브 노드(102-2)로의 기록 액세스 및 슬레이브 노드(102-2)로부터 호스트(110)/마스터 노드(102-1)로의 판독 액세스를 포함할 수 있는 슬레이브 노드들(102-2)의 레지스터들로의 액세스들(예컨대, 슬롯들 및 인터페이스들의 탐색 및 구성을 위한); 및 주변 디바이스(108)로부터 호스트(110)로의 인터럽트들을 통한 이벤트 시그널링을 포함할 수 있다. 몇몇 실시예들에서, GPIO 핀들은 슬레이브 노드(102-2)로부터 마스터 노드(102-1)로 정보를 수송하기 위해 사용될 수 있다(예컨대, I2C를 통해 마스터 노드(102-1)가 GPIO 핀들을 폴링함으로써, 또는 슬레이브 노드(102-2)의 노드 트랜시버(120)가 인터럽트 요청 핀에서 인터럽트를 생성함으로써). 예를 들어, 몇몇 이러한 실시예들에서, 호스트(110)는 I2C를 통해 마스터 노드(102-1)로 정보를 전송할 수 있으며, 그 후 마스터 노드(102-1)는 상기 정보를 GPIO 핀들을 통해 슬레이브로 전송할 수 있다. 버스(106)를 통해 송신된 것으로서 여기에서 논의된 데이터의 유형들 중 임의의 것은 이들 통신 경로들 중 임의의 하나 이상을 사용하여 송신될 수 있다. 시스템(100) 내에서 다른 유형들의 데이터 및 데이터 통신 기술들이 여기에서 개시될 수 있다.
본 개시의 실시예들은 원하는 대로 구성하기 위해 임의의 적절한 하드웨어 및/또는 소프트웨어를 사용하여 시스템으로 구현될 수 있다. 도 13은 다양한 실시예들에 따라, 호스트 또는 노드(예컨대, 호스트(110), 마스터 노드(102-1), 또는 슬레이브 노드(102-2))로서 작용할 수 있는 디바이스(1300)를 개략적으로 예시한다. 다수의 구성요소들은 디바이스(1300)에 포함되는 것으로 도 13에서 예시되지만, 이들 구성요소들 중 임의의 하나 이상은, 애플리케이션에 적절한 대로, 생략되거나 또는 중복될 수 있다.
부가적으로, 다양한 실시예들에서, 디바이스(1300)는 도 13에 예시된 구성요소들 중 하나 이상을 포함하지 않을 수 있으며, 디바이스(1300)는 하나 이상의 구성요소들로의 결합을 위해 인터페이스 회로를 포함할 수 있다. 예를 들어, 디바이스(1300)는 디스플레이 디바이스(1306)를 포함하지 않을 수 있으며, 디스플레이 디바이스(1306)가 결합될 수 있는 디스플레이 디바이스 인터페이스 회로(예컨대, 커넥터 및 드라이버 회로)를 포함할 수 있다. 또 다른 세트의 예들에서, 디바이스(1300)는 오디오 입력 디바이스(1324) 또는 오디오 출력 디바이스(1308)를 포함하지 않을 수 있으며, 오디오 입력 디바이스(1324) 또는 오디오 출력 디바이스(1308)가 결합될 수 있는 오디오 입력 또는 출력 디바이스 인터페이스 회로(예컨대, 커넥터들 및 지원 회로)를 포함할 수 있다.
디바이스(1300)는 디바이스(1300)가 버스(106)에 결합될 때 버스(106)를 따르는 통신을 관리하기 위해, 여기에서 개시된 실시예들 중 임의의 것에 따른, 노드 트랜시버(120)를 포함할 수 있다. 디바이스(1300)는 프로세싱 디바이스(1302)(예컨대, 하나 이상의 프로세싱 디바이스들)를 포함할 수 있으며, 이것은 노드 트랜시버(120)에 포함되거나 또는 노드 트랜시버(120)로부터 분리될 수 있다. 여기에서 사용된 바와 같이, 용어("프로세싱 디바이스")는 전자 데이터를 레지스터들 및/또는 메모리에 저장될 수 있는 다른 전자 데이터로 변환하기 위해 레지스터들 및/또는 메모리로부터의 상기 전자 데이터를 프로세싱하는 임의의 디바이스 또는 디바이스의 부분을 나타낼 수 있다. 프로세싱 디바이스(1302)는 하나 이상의 DSP들, ASIC들, 중앙 프로세싱 유닛들(CPU들), 그래픽 프로세싱 유닛들(GPU들), 암호 프로세서들(cryptoprocessors), 또는 임의의 다른 적절한 프로세싱 디바이스들을 포함할 수 있다. 디바이스(1300)는 메모리(1304)를 포함할 수 있으며, 이것은 자체가 휘발성 메모리(예컨대, 동적 랜덤 액세스 메모리(DRAM)), 비-휘발성 메모리(예컨대, 판독-전용 메모리(ROM)), 플래시 메모리, 고체 상태 메모리, 및/또는 하드 드라이브와 같은 하나 이상의 메모리 디바이스들을 포함할 수 있다.
몇몇 실시예들에서, 메모리(1304)는 디바이스(1300)로 하여금 여기에서 개시된 기술들 중 임의의 적절한 것들을 수행하게 하도록 프로그래밍 지시들의 작업 사본 및 영구 사본을 저장하기 위해 이용될 수 있다. 몇몇 실시예들에서, 상기 설명된 기술들을 수행하기 위한 기계-액세스 가능한 미디어(비-일시적 컴퓨터-판독 가능한 저장 미디어를 포함한), 방법들, 시스템들, 및 디바이스들은 2-와이어 버스를 통한 통신을 위해 여기에서 개시된 실시예들의 예시적인 예들이다. 예를 들어, 컴퓨터-판독 가능한 미디어(예컨대, 메모리(1304))는, 프로세싱 디바이스(1302)에 포함된 프로세싱 디바이스들 중 하나 이상에 의해 실행될 때, 디바이스(1300)로 하여금 여기에 개시된 기술들 중 임의의 것을 수행하게 하는 지시들을 저장할 수 있다.
몇몇 실시예들에서, 디바이스(1300)는 또 다른 통신 칩(1312)(예컨대, 하나 이상의 다른 통신 칩들)을 포함할 수 있다. 예를 들어, 통신 칩(1312)은 디바이스(1300)로 및 그로부터의 데이터의 전달을 위한 무선 통신들을 관리하기 위해 구성될 수 있다. 용어("무선") 및 그것의 파생어들은 비-고체 매체를 통해 변조된 전자기 복사의 사용을 통해 데이터를 전달할 수 있는, 회로들, 디바이스들, 시스템들, 방법들, 기술들, 통신 채널들 등을 설명하기 위해 사용될 수 있다. 용어는 연관된 디바이스들이 임의의 와이어들을 포함하지 않는다는 것을 의미하지 않지만, 몇몇 실시예들에서, 그것은 아닐 수 있다.
통신 칩(1312)은 이에 제한되지 않지만 Wi-Fi(전기 전자 학회(IEEE) 802.11 군), IEEE 802.16 표준들(예컨대, IEEE 802.16-2005 보정), 임의의 보정들, 업데이트들, 및/또는 개정들(예컨대, 개선된 LTE 프로젝트, 초 이동 광대역(UMB) 프로젝트(또한 "3GPP2"로 불리우는) 등)과 함께 장기 진화(LTE) 프로젝트를 포함한, 다수의 무선 표준들 또는 프로토콜들 중 임의의 것을 구현할 수 있다. IEEE 802.16 호환 가능한 광대역 무선 액세스(BWA) 네트워크들은 일반적으로, IEEE 802.16 표준들에 대한 적합성 및 상호 운용성 테스트들을 통과한 제품들에 대한 인증 마크인, 마이크로파 액세스를 위한 월드와이드 상호 운용성을 나타내는 두문자어인, WiMAX 네트워크들로 불리운다. 하나 이상의 통신 칩들(1312)은 이동 통신을 위한 전역적 시스템(GSM), 일반 패킷 라디오 서비스(GPRS), 범용 이동 전기통신 시스템(UMTS), 고속 패킷 액세스(HSPA), 진화된 HSPA(E-HSPA), 또는 LTE 네트워크에 따라 동작할 수 있다. 하나 이상의 통신 칩들(1312)은 GSM 진화를 위한 강화된 데이터(EDGE), GSM EDGE 라디오 액세스 네트워크(GERAN), 범용 지상파 라디오 액세스 네트워크(UTRAN), 또는 진화된 UTRAN(E-UTRAN)에 따라 동작할 수 있다. 하나 이상의 통신 칩들(1312)은 코드 분할 다중 액세스(CDMA), 시간 분할 다중 액세스(TDMA), 디지털 강화된 무코드 전기통신(DECT), 진화-데이터 최적화(EV-DO), 및 그것의 파생물들, 뿐만 아니라 3G, 4G, 5G 이상으로서 지정되는 임의의 다른 무선 프로토콜들에 따라 동작할 수 있다. 통신 칩(1312)은 다른 실시예들에서 다른 무선 프로토콜들에 따라 동작할 수 있다. 디바이스(1300)는 무선 통신들을 가능하게 하기 위해 및/또는 다른 무선 통신들(AM 또는 FM 라디오 송신들과 같은)을 수신하기 위해 안테나(1322)를 포함할 수 있다.
몇몇 실시예들에서, 통신 칩(1312)은 여기에서 설명된 버스(106)를 위한 프로토콜이 아닌 프로토콜을 사용하여 유선 통신들을 관리할 수 있다. 유선 통신들은 전기적, 광학적, 또는 임의의 다른 적절한 통신 프로토콜들을 포함할 수 있다. 통신 칩(1312)에 의해 가능해질 수 있는 유선 통신 프로토콜들의 예들은 이더넷, 제어기 영역 네트워크(CAN), I2C, 미디어 지향 시스템 수송(MOST), 또는 임의의 다른 적절한 유선 통신 프로토콜을 포함한다.
상기 주지된 바와 같이, 통신 칩(1312)은 다수의 통신 칩들을 포함할 수 있다. 예를 들면, 제 1 통신 칩(1312)은 Wi-Fi 또는 블루투스와 같은 단거리 무선 통신들에 전용될 수 있으며, 제 2 통신 칩(1312)은 전역적 위치결정 시스템(GPS), EDGE, GPRS, CDMA, WiMAX, LTE, EV-DO, 또는 기타와 같은 장거리 무선 통신들에 전용될 수 있다. 몇몇 실시예들에서, 제 1 통신 칩(1312)은 무선 통신들에 전용될 수 있으며, 제 2 통신 칩(1312)은 유선 통신들에 전용될 수 있다.
디바이스(1300)는 배터리/전력 회로(1314)를 포함할 수 있다. 배터리/전력 회로(1314)는 하나 이상의 에너지 저장 디바이스들(예컨대, 배터리들 또는 커패시터들) 및/또는 디바이스(1300)로부터 분리된 에너지 소스(예컨대, AC 라인 전력, 자동차 배터리에 의해 제공된 전압 등)에 디바이스(1300)의 구성요소들을 결합하기 위한 회로를 포함할 수 있다. 예를 들어, 배터리/전력 회로(1314)는 도 2를 참조하여 상기 논의된 업스트림 버스 인터페이스 회로(132) 및 다운스트림 버스 인터페이스 회로(131)를 포함할 수 있으며 버스(106) 상에서 바이어스에 의해 하전될 수 있다.
디바이스(1300)는 디스플레이 디바이스(1306)(또는 상기 논의된 바와 같이, 대응하는 인터페이스 회로)를 포함할 수 있다. 디스플레이 디바이스(1306)는 예를 들어, 헤드-업 디스플레이, 컴퓨터 모니터, 프로젝터, 터치스크린 디스플레이, 액정 디스플레이(LCD), 발광 다이오드 디스플레이, 또는 평판 디스플레이와 같은, 임의의 시각적 표시자들을 포함할 수 있다.
디바이스(1300)는 오디오 출력 디바이스(1308)(또는 상기 논의된 바와 같이, 대응하는 인터페이스 회로)를 포함할 수 있다. 오디오 출력 디바이스(1308)는 예를 들어, 스피커들, 헤드셋들, 또는 이어버드들과 같은, 가청 표시자를 생성하는 임의의 디바이스를 포함할 수 있다.
디바이스(1300)는 오디오 입력 디바이스(1324)(또는 상기 논의된 바와 같이, 대응하는 인터페이스 회로)를 포함할 수 있다. 오디오 입력 디바이스(1324)는 마이크로폰들, 마이크로폰 어레이들, 또는 디지털 기기들(예컨대, 악기 디지털 인터페이스(MIDI) 출력을 가진 기기들)과 같은, 사운드를 나타내는 신호를 생성하는 임의의 디바이스를 포함할 수 있다.
디바이스(1300)는 GPS 디바이스(1318)(또는, 상기 논의된 바와 같이, 대응하는 인터페이스 회로)를 포함할 수 있다. GPS 디바이스(1318)는 이 기술분야에 알려진 바와 같이, 위성-기반 시스템과 통신할 수 있으며 디바이스(1300)의 위치를 수신할 수 있다.
디바이스(1300)는 또 다른 출력 디바이스(1310)(또는 상기 논의된 바와 같이, 대응하는 인터페이스 회로)를 포함할 수 있다. 다른 출력 디바이스(1310)의 오디오 코덱, 비디오 코덱, 프린터, 정보를 다른 디바이스들로 제공하기 위한 유선 또는 무선 송신기, 또는 부가적인 저장 디바이스를 포함할 수 있다. 부가적으로, 여기에서 논의된 주변 디바이스들(108) 중 임의의 적절한 것들이 다른 출력 디바이스(1310)에 포함될 수 있다.
디바이스(1300)는 또 다른 입력 디바이스(1320)(또는 상기 논의된 바와 같이, 대응하는 인터페이스 회로)를 포함할 수 있다. 다른 입력 디바이스(1320)의 예들은 가속도계, 자이로스코프, 이미지 캡처 디바이스, 키보드, 마우스, 스타일러스, 터치패드, 바코드 판독기, 빠른 응답(QR) 코드 판독기, 또는 라디오 주파수 식별(RFID) 판독기와 같은 커서 제어 디바이스를 포함할 수 있다. 부가적으로, 여기에서 논의된 센서들 또는 주변 디바이스들(108) 중 임의의 적절한 것들이 다른 입력 디바이스(1320)에 포함될 수 있다.
디바이스(1300)를 참조하여 상기 설명된 디스플레이, 입력, 출력, 통신, 또는 메모리 디바이스들 중 임의의 적절한 것들은 시스템(100)에서 주변 디바이스(108)로서 작용할 수 있다. 대안적으로 또는 부가적으로, 디바이스(1300)를 참조하여 상기 설명된 디스플레이, 입력, 출력, 통신, 또는 메모리 디바이스들 중 적절한 것들은 호스트(예컨대, 호스트(110)) 또는 노드(예컨대, 마스터 노드(102-1) 또는 슬레이브 노드(102-2))에 포함될 수 있다.
상기 주지된 바와 같이, 몇몇 실시예들에서, 노드(102)는 노드 트랜시버(120)에 포함된 SPI 트랜시버(136)를 통해 SPI 디바이스와 통신할 수 있다. 몇몇 실시예들에서, SPI 디바이스는 노드 트랜시버(120)의 핀들을 통해 SPI 트랜시버(136)에 결합될 수 있다. 이러한 실시예들에서, SPI 디바이스는 SPI 호스트로서 동작할 수 있는 반면 노드(102)는 SPI 슬레이브로서 동작하고; 이러한 동작의 모드는 여기에서 "로컬 노드 SPI 기능"으로 불리우며, 이러한 기능의 예들은 이하에서 도 14 내지 도 15를 참조하여 상세하게 논의된다.
몇몇 실시예들에서, SPI 디바이스는 제 1 노드(102)의 SPI 트랜시버(136)에 결합될 수 있으며, 제 1 노드(102)는 버스(106)를 통해 제 2 노드(102)에 결합될 수 있다. 이러한 실시예들에서, SPI 디바이스는 SPI 호스트로서 동작할 수 있지만 제 2 노드(102)는 SPI 슬레이브로서 동작하고; 이러한 동작의 모드는 여기에서 "원격 노드 SPI 기능"으로서 불리울 수 있으며, 이러한 기능의 예들은 이하에서 도 16 내지 도 19를 참조하여 상세하게 논의된다.
몇몇 실시예들에서, 제 1 SPI 디바이스는 제 1 노드(102)의 SPI 트랜시버(136)에 결합될 수 있고, 제 1 노드(102)는 버스(106)를 통해 제 2 노드(102)에 결합될 수 있으며, 제 2 노드(102)의 SPI 트랜시버(136)는 제 2 SPI 디바이스에 결합될 수 있다. 이러한 실시예들에서, 제 1 SPI 디바이스는 SPI 호스트로서 동작할 수 있지만 제 2 SPI 디바이스는 SPI 슬레이브로서 동작하고; 이러한 동작의 모드는 여기에서 "원격 주변장치 SPI 기능"으로서 불리울 수 있으며, 이러한 기능의 예들은 이하에서 도 20 내지 도 44를 참조하여 상세하게 논의된다.
몇몇 실시예들에서, SPI 디바이스는 제 1 노드(102)의 SPI 트랜시버(136)에 결합될 수 있고, 제 1 노드(102)는 버스(106)를 통해 제 2 노드(102)에 결합될 수 있으며, 제 2 노드(102)의 I2C 트랜시버(129)는 I2C에 결합될 수 있다. 이러한 실시예들에서, 제 1 SPI 디바이스는 SPI 호스트로서 동작할 수 있고, 제 2 노드는 SPI 슬레이브로서 및 I2C 호스트로서 동작할 수 있으며, I2C 디바이스는 I2C 슬레이브로서 동작하고; 이러한 동작의 모드는 여기에서 "SPI-대-I2C 기능"으로서 불리울 수 있으며, 이러한 기능의 예들은 이하에서 도 45 내지 도 48을 참조하여 상세하게 논의된다.
도 14는 다양한 실시예들에 따른, 로컬 노드 SPI 기능을 포함한 예시적인 2-와이어 통신 시스템(100)의 일 부분의 블록도이다. 도 14는 SPI 호스트(150)로서 동작하는 외부 디바이스(138) 및 노드(102)를 포함하고; SPI 호스트(150)는 노드(102)(도시되지 않음)의 노드 트랜시버(120)에 포함된 SPI 트랜시버(136)를 통해 노드(102)와 통신할 수 있다. 도 14의 실시예에서, 노드(102)는 SPI 슬레이브(140)로서 동작할 수 있다. 노드(102)는 마스터 노드(102-1) 또는 슬레이브 노드(102-2)일 수 있으며, 적절하다면 버스(106)의 업스트림 및/또는 다운스트림 섹션들에 결합될 수 있다. 로컬 노드 SPI 기능을 포함한 시스템(100)의 동작 동안, SPI 호스트(150)는 노드(102)(SPI 슬레이브(140))로 둘 간의 SPI 인터페이스를 통해 명령들을 송신할 수 있으며, 노드(102)는 SPI 인터페이스를 통해 응답할 수 있다. 단지 단일 SPI 호스트(150) 및 단일 노드(102)(SPI 슬레이브(140)로서 동작하는)만이 도 14에 예시되지만, 여기에서 개시된 통신 시스템들(100) 중 임의의 것은 로컬 노드 SPI 기능을 가진 다수의 노드들(102)(예컨대, SPI를 통해 SPI 호스트들(150)과 직접 통신하는 다수의 노드들(102))을 포함할 수 있다. 몇몇 실시예들에서, 로컬 노드 SPI 기능에 따라 수행된 SPI 트랜잭션들은 I2C 트랜시버(129)를 통해 이들 레지스터들로의 액세스와 동시에 노드(102)에서의 레지스터들을 액세스할 수 있다.
도 14에 예시된 것과 같은 로컬 노드 SPI 실시예에서, SPI 호스트(150)는 노드(102)의 로컬 레지스터들로 데이터를 기록하기 위해 SPI 기록 명령을 노드(102)(SPI 슬레이브(140))로 송신할 수 있으며, 노드(102)의 로컬 레지스터들로부터 데이터를 판독하기 위해 SPI 판독 명령을 노드(102)로 송신할 수 있고; 로컬 노드(102)는 SPI 프로토콜에 따라 응답할 수 있다. 도 15a 및 도 15b는 다양한 실시예들에 따른, 로컬 노드 SPI 기능의 구현에서 사용될 수 있는 명령들의 타이밍 도들이다. 특히, 도 15a는 로컬 노드 SPI 레지스터 기록을 위한 타이밍 도지만, 도 15b는 로컬 노드 SPI 레지스터 판독을 위한 타이밍 도이다. 도 15a에서, 제 1 바이트(도 15a에서 0x00)는 명령 유형(즉, 로컬 노드 SPI 레지스터 기록)을 나타내며; 특정한 바이트 0x00이 도면에서 로컬 노드 SPI 레지스터 기록을 나타내는 것으로 예시될지라도, 임의의 적절한 바이트 코드는 로컬 노드 SPI 레지스터 기록을 나타내기 위해 정의될 수 있다. 보다 일반적으로, 수반된 도면들 중 다양한 것들이 특정한 명령 유형들과 연관된 특정한 바이트 코드들을 묘사하지만, 이것들은 단순히 예시적이며, 임의의 적절한 바이트 코드들이 연관된 명령 유형들을 나타내기 위해 정의된다. 도 15a에서, 제 2 바이트(도 15a에서 addr)는 노드(102)의 로컬 레지스터들로 기록될 어드레스를 나타내며 마지막 바이트들(도 15a에서 N 바이트들)은 기록될 데이터를 나타낸다. 몇몇 실시예들에서, 256 바이트들(N=256)까지의 버스트 기록들이 지원될 수 있다. 몇몇 실시예들에서, 로컬 레지스터 기록들은 인터럽트를 생성하지 않고 완료하도록 보장될 수 있다.
도 15b에서, 제 1 바이트(도 15b에서 0x01)는 명령 유형(즉, 로컬 노드 SPI 레지스터 판독)을 나타내고, 제 2 바이트(도 15b에서 addr)는 노드(102)의 로컬 레지스터들에서 판독될 어드레스를 나타내며, 마지막 바이트는 판독될 바이트들의 수를 나타낸다. 몇몇 실시예들에서, 256 바이트들(N=256)까지의 버스트 판독들이 지원될 수 있다. 도 15b에 도시된 바와 같이, 노드(102)는 MISO 라인에 요청된 판독 데이터(도 15b에서 N 바이트들)를 둠으로써 로컬 노드 SPI 레지스터 판독 명령의 수신에 응답할 수 있다. 몇몇 실시예들에서, 로컬 레지스터 판독들은 인터럽트를 발생시키지 않고 완료하도록 보장될 수 있다.
도 16은 다양한 실시예들에 따른, 원격 노드 SPI 기능을 포함한 예시적인 2-와이어 통신 시스템(100)의 일 부분의 블록도이다. 도 16은 SPI 호스트(150)로서 동작하는 외부 디바이스(138), 뿐만 아니라 버스(106)를 통해 하나 이상의 슬레이브 노드들(102-2)과 통신하는 마스터 노드(102-1)를 포함한다. 슬레이브 노드들(102-2) 중 하나는 도시된 바와 같이 SPI 슬레이브(140)로서 동작할 수 있다. 특정한 수의 슬레이브 노드들(102-2)이 도 16에 묘사되지만, 이것은 단순히 예시적이며, 더 많거나 또는 더 적은 슬레이브 노드들(102-2)이 포함될 수 있다. SPI 호스트(150)는 마스터 노드(102-1)(도시되지 않음)의 노드 트랜시버(120)에 포함된 SPI 트랜시버(136)를 통해 마스터 노드(102-1)와 통신할 수 있으며, 마스터 노드(102-1)는 버스(106)를 통해 SPI 슬레이브(140)(존재한다면, 그 사이에서 임의의 슬레이브 노드들(102-2)을 포함한)와 통신할 수 있다. 여기에서 사용된 바와 같이, SPI 인터페이스를 통해 SPI 호스트(150)에 직접 결합된 노드(102)는 "로컬 노드(140)"로서 불리울 수 있지만, 원격 노드 SPI 구성에서 SPI 슬레이브(140)로서 작용하는 노드(102)는 여기에서 "원격 노드(144)"로 불리울 수 있다. 도 16은 로컬 노드(142)를 마스터 노드(102-1)인 것으로 예시하지만, 원격 노드 SPI 기능의 다른 실시예들에서, 로컬 노드(142)는 슬레이브 노드(102-2)일 수 있다. 뿐만 아니라, 도 16은 SPI 슬레이브(140)를 로컬 노드(142)의 다운스트림인 것으로 예시하지만, 원격 노드 SPI 기능의 다른 실시예들에서, SPI 슬레이브(140)는 로컬 노드(142)의 업스트림일 수 있다. 몇몇 이러한 실시예들에서, 예를 들어, SPI 슬레이브(140)는 마스터 노드(102-1)일 수 있다.
원격 노드 SPI 기능을 포함한 시스템(100)의 동작 동안, SPI 호스트(150)는 로컬 노드(142)로 둘 사이에서의 SPI 인터페이스를 통해 명령들을 송신할 수 있으며, 로컬 노드(142)는 버스(106)를 통해 이들 명령들을 SPI 슬레이브(140)로 전달할 수 있다. SPI 슬레이브(140)는 버스(106)를 통해 로컬 노드(142)에 응답할 수 있으며, 로컬 노드(142)는 SPI 인터페이스를 통해 SPI 호스트(150)로 이러한 응답을 전달할 수 있다. 단지 단일 SPI 호스트(150) 및 단일 SPI 슬레이브(140)만이 도 16에서 예시되지만, 여기에서 개시된 통신 시스템들(100) 중 임의의 것은 원격 노드 SPI 기능을 가진 다수의 노드들(102)(예컨대, 적어도 부분적으로 버스(106)를 따르는 SPI 호스트들(150)과 통신하는 다수의 노드들(102))을 포함할 수 있다. 몇몇 실시예들에서, 원격 노드 SPI 기능에 따라 수행된 SPI 트랜잭션들은 I2C 트랜시버(129)를 통해 이들 레지스터들로의 액세스와 동시에 SPI 슬레이브(140)에서 레지스터들을 액세스할 수 있다.
도 17은 다양한 실시예들에 따른, 예시적인 원격 노드 SPI 기록 절차(400)의 흐름도이다. 원격 노드 SPI 기록 절차(400)의 동작들은 도 16의 시스템(100)을 참조하여 예시될 수 있지만, 임의의 적절한 시스템(100)은 원격 노드 SPI 기록 절차(400)를 수행할 수 있다.
402에서, SPI 호스트는, SPI 슬레이브로서 작용하는 원격 노드로 데이터를 기록하기 위해, SPI 기록 명령을 SPI를 통해 로컬 노드로 전송할 수 있다. 예를 들어, SPI 호스트(150)는 SPI 기록 명령(예컨대, 도 19a를 참조하여 이하에서 논의되는 원격 노드 SPI 레지스터 기록 명령)을 SPI를 통해(예컨대, 로컬 노드(142)에 포함된 SPI 트랜시버(136)를 통해) 로컬 노드(142)(예컨대, 마스터 노드(102-1))로 전송할 수 있다. SPI 기록 명령은 기록 명령의 목적지로서 원격 노드(144)(예컨대, 슬레이브 노드(102-2))의 표시자, 기록될 레지스터 어드레스, 및 기록될 데이터를 포함할 수 있다.
404에서, 402의 SPI 기록 명령에 응답하여, 로컬 노드는 버스를 통해 기록 데이터를 원격 노드로 전송할 수 있다. 예를 들어, 로컬 노드(142)는 버스(106)를 통해 기록 데이터를 원격 노드(144)로 전송할 수 있다.
406에서, 원격 노드는 버스를 통해 기록 데이터를 수신할 수 있으며 데이터를 기록할 수 있다. 예를 들어, 원격 노드(144)는 버스(106)를 통해 기록 데이터를 수신할 수 있으며 원격 노드(144)의 레지스터들에서 특정된 어드레스로 데이터를 기록할 수 있다.
도 18은 다양한 실시예들에 따른, 예시적인 원격 노드 SPI 판독 절차(410)의 흐름도이다. 원격 노드 SPI 판독 절차(410)의 동작들이 도 16의 시스템(100)을 참조하여 예시될 수 있지만, 임의의 적절한 시스템(100)이 원격 노드 SPI 판독 절차(410)를 수행할 수 있다.
412에서, SPI 호스트는 SPI 슬레이브로서 작용하는 원격 노드로부터 데이터를 판독하기 위해, SPI 판독 요청을 SPI를 통해 로컬 노드로 전송할 수 있다. 예를 들어, SPI 호스트(150)는 SPI 판독 요청 명령(예컨대, 도 19b를 참조하여 이하에서 논의되는 원격 노드 SPI 판독 요청 명령)을 SPI를 통해(예컨대, 로컬 노드(142)에 포함된 SPI 트랜시버(136)를 통해) 로컬 노드(142)(예컨대, 마스터 노드(102-1))로 전송할 수 있다. SPI 판독 요청은 판독 명령의 목적지로서 원격 노드(144)(예컨대, 슬레이브 노드(102-2))의 표시자, 및 판독될 레지스터 어드레스를 포함할 수 있다.
414에서, 412의 SPI 판독 요청 명령에 응답하여, 로컬 노드는 버스를 통해 판독 명령을 원격 노드로 전송할 수 있다. 예를 들어, 로컬 노드(142)는 버스(106)를 통해 판독 명령을 원격 노드(144)로 전송할 수 있다.
416에서, 원격 노드는 버스를 통해 판독 명령을 수신할 수 있다. 예를 들어, 원격 노드(144)는 버스(106)를 통해 판독 명령을 수신할 수 있다.
418에서, 판독 명령의 수신에 응답하여, 원격 노드는 버스를 통해 판독 데이터를 로컬 노드로 전송할 수 있다. 예를 들어, 원격 노드(144)는 원격 노드(144)의 레지스터들에서 특정된 어드레스에 저장된 데이터를 검색할 수 있으며, 이러한 판독 데이터를 버스(106)를 통해 로컬 노드(142)로 송신할 수 있다.
420에서, 판독 데이터 모두의 수신에 응답하여, 로컬 노드는 표시자(예컨대, 표시자 출력으로서 작용할 수 있는 로컬 레지스터에서의 비트 또는 트랜시버(120) 상에서의 GPIO 핀)를 설정할 수 있다. 예를 들어, 로컬 노드(142)는 판독 데이터 모두가 원격 노드(144)로부터 수신되었을 때 로컬 노드(142)에 국소적인 레지스터에서 표시자 비트를 설정할 수 있다.
422에서, 표시자의 설정의 검출에 응답하여, SPI 호스트는 SPI 판독 명령을 SPI를 통해 로컬 노드로 전송할 수 있다. 예를 들어, SPI 호스트(150)는 SPI 상태 판독 명령(예컨대, 도 19c를 참조하여 이하에서 논의되는 SPI 상태 판독 명령)을 SPI를 통해 로컬 노드(142)로 전송할 수 있으며, 이에 응답하여, 로컬 노드(142)는 표시자 비트의 현재 값을 송신할 수 있다. 표시자 비트가 설정되면, SPI 호스트(150)는 SPI 판독 명령(예컨대, 도 19d를 참조하여 이하에서 논의되는 SPI 데이터 판독 명령)을 SPI를 통해 로컬 노드(142)로 전송할 수 있다.
424에서, 422의 SPI 판독 명령에 응답하여, 로컬 노드는 판독 데이터를 SPI를 통해 SPI 호스트로 전송할 수 있다. 예를 들어, 로컬 노드(142)는 판독 데이터(원격 노드(144)로부터 수신된)를 SPI를 통해 SPI 호스트(150)로 전송할 수 있다.
도 19a 내지 도 19d는 다양한 실시예들에 따른, 원격 노드 SPI 기능의 구현 시 사용될 수 있는 명령들의 타이밍 도들이다. 특히, 도 19a는 원격 노드 SPI 레지스터 기록에 대한 타이밍 도이고, 도 19b는 원격 노드 SPI 판독 요청을 위한 타이밍 도이고, 도 19c는 SPI 상태 판독 명령에 대한 타이밍 도이며, 도 19d는 SPI 데이터 판독 명령에 대한 타이밍 도이다.
도 19a에서, 제 1 바이트(도 19a에서 0x02)는 명령 유형(즉, 원격 노드 SPI 레지스터 기록)을 나타내고, 제 2 바이트(도 19a에서 노드)는 기록될 원격 노드(144)를 나타내고, 제 3 바이트(도 19a에서 addr)는 원격 노드(144)의 로컬 레지스터들로 기록될 어드레스를 나타내며, 마지막 바이트들(도 19a에서 N 바이트들)은 기록될 데이터를 나타낸다. 몇몇 실시예들에서, 원격 노드 SPI 레지스터 기록 명령의 "노드" 바이트(예컨대, 도 19a의 실시예에서 제 2 바이트)는 설정될 때, 모든 노드들(102)이 특정된 데이터를 특정된 어드레스로 기록함을 나타내는 브로드캐스트 비트를 포함할 수 있고; 브로드캐스트 비트가 설정되지 않을 때, 노드 바이트의 나머지 비트들은 원격 노드(144)를 식별한다. 몇몇 실시예들에서, 256 바이트들(N=256)까지의 버스트 기록들이 지원될 수 있다. 원격 노드 SPI 레지스터 기록의 실행은 다수의 슈퍼 프레임들이 완성되길 요구할 수 있다. 몇몇 실시예들에서, 로컬 노드(142)(예컨대, 마스터 노드(102-1))는 기록의 실행이 시작될 때 비트 SPISTAT.SPIBUSY를 어서팅할 수 있고, 비트 SPISTAT.SPIBUSY는 기록이 완료될 때까지 어서팅된 채로 있을 수 있으며; SPISTAT 레지스터의 예들은 이하에서 추가로 논의된다.
도 19b에서, 제 1 바이트의 제 1 비트들(도 19b에서 110)은 명령 유형(즉, 원격 노드 SPI 판독 요청)을 나타내고, 제 1 바이트의 나머지 비트들(도 19b에서 LEN)은 얼마나 많은 데이터가 판독될지를 나타내고, 제 2 바이트(도 19b에서 노드)는 판독될 원격 노드(144)를 나타내며, 제 3 바이트(도 19b에서 addr)는 원격 노드(144)의 로컬 레지스터들로부터 판독될 어드레스를 나타낸다. 상기 논의된 바와 같이, 원격 노드 SPI 판독 요청은 원격 노드(144)로부터 로컬 노드(142)로의 바이트들의 전달을 개시한다.
도 19c에서, 바이트(도 19c에서 0x04)는 명령 유형(즉, SPI 상태 판독 명령)을 나타낸다. 도 19c에 도시된 바와 같이, 로컬 노드(142)는 MISO 라인 상에 SPISTAT 레지스터(도 19c에서 1 바이트)에 저장된 비트를 위치시킴으로써 SPI 상태 판독 명령의 수신에 응답할 수 있다. SPI 호스트(150)는, 도 19a를 참조하여 상기 논의된 바와 같이, SPISTAT 레지스터의 SPIBUSY 비트가 0일 때 기록이 완료됨을 결정할 수 있다. 몇몇 실시예들에서, SPI 상태 판독들은 인터럽트를 발생시키지 않고 완료되도록 보장될 수 있다.
도 19d에서, 바이트(도 19d에서 0x05)는 명령 유형(즉, SPI 데이터 판독)을 나타낸다. 도 19d에 도시된 바와 같이, 로컬 노드(142)는 FIFO 버퍼로부터 원격 노드(144)로부터 수신된 판독 데이터를 검색하며, MISO 라인 상에 판독 데이터(도 19d에서 N 바이트들)를 위치시킴으로써 SPI 데이터 판독 명령의 수신에 응답할 수 있다. 몇몇 실시예들에서, 256 바이트들(N=256)까지의 버스트 판독들이 지원될 수 있다. 몇몇 실시예들에서, 로컬 노드(142)는 SPI 데이터 판독 명령이 인출된 이전 원격 노드 SPI 판독 요청보다 FIFO 버퍼로부터 더 많은 데이터를 판독하려고 시도한다면, 또는 데이터가 원격 노드(144)로부터 반환되기 전에 FIFO 버퍼로부터 판독된다면 비트 SPIINT.FIFOUNF를 어서팅할 수 있다(및 제로들이 MISO 라인 상에서 반환될 수 있다).
도 20은 다양한 실시예들에 따른, 원격 주변장치 SPI 기능을 포함한 예시적인 2-와이어 통신 시스템(100)의 일 부분의 블록도이다. 도 20은 SPI 인터페이스를 통해 마스터 노드(102-1)에 결합된 외부 디바이스(138), 및 SPI 인터페이스를 통해 슬레이브 노드(102-2)에 결합된 외부 디바이스(138)를 포함한다. 마스터 노드(102-1)는 또한 버스(106)를 통해 하나 이상의 슬레이브 노드들(102-2)과 통신한다. 마스터 노드(102-1)에 결합된 외부 디바이스(138)는 SPI 호스트(150)로서 작용할 수 있으며(로컬 노드(142)로 작용하는 연관된 마스터 노드(102-1)와 함께), 슬레이브 노드(102-2)에 결합된 외부 디바이스(138)는 SPI 슬레이브(140)로서 작용할 수 있다(원격 주변장치 SPI 시스템에서 원격 노드(144)로서 작용하는 연관된 슬레이브 노드(102-2)와 함께). 특정한 수의 슬레이브 노드들(102-2)이 도 20에서 묘사되지만, 이것은 단순히 예시적이며, 더 많거나 또는 더 적은 슬레이브 노드들(102-2)이 포함될 수 있다. SPI 호스트(150)는 로컬 노드(142)의 노드 트랜시버(120)(도시되지 않음)에 포함된 SPI 트랜시버(136)를 통해 로컬 노드(142)와 통신할 수 있고, 로컬 노드(142)는 버스(106)를 통해(존재한다면, 그 사이에 임의의 슬레이브 노드들(102-2)을 포함하여) 원격 노드(144)와 통신할 수 있으며, 원격 노드(144)는 원격 노드(144)의 노드 트랜시버(120)(도시되지 않음)에 포함된 SPI 트랜시버(136)를 통해 SPI 슬레이브(140)와 통신할 수 있다. 시스템(100)이 원격 주변장치 SPI 기능을 위해 구성될 때, 로컬 노드(142)와 원격 노드(144) 사이에서 버스(106)를 따르는 SPI 데이터의 데이터 경로는 여기에서 "데이터 터널" 또는 "터널"로서 불리울 수 있고, 로컬 노드(142)는 "데이터 터널 소유자" 또는 "터널 소유자"로서 불리울 수 있으며, 원격 노드(144)는 "데이터 터널 응답기" 또는 "터널 응답기"로서 불리울 수 있다. 도 20은 로컬 노드(142)를 마스터 노드(102-1)인 것으로 예시하지만, 원격 주변장치 SPI 기능의 다른 실시예들에서, 로컬 노드(142)는 슬레이브 노드(102-2)일 수 있다. 뿐만 아니라, 도 20은 원격 노드(144)를 로컬 노드(142)의 다운스트림인 것으로 예시하지만, 원격 주변장치 SPI 기능의 다른 실시예들에서, 원격 노드(144)는 로컬 노드(142)의 업스트림일 수 있다. 몇몇 이러한 실시예들에서, 예를 들어, 원격 노드(144)는 마스터 노드(102-1)일 수 있다.
원격 주변장치 SPI 기능을 포함한 시스템(100)의 동작 동안, SPI 호스트(150)는 명령들을 둘 사이에 있는 SPI 인터페이스를 통해 로컬 노드(142)로 송신할 수 있고, 로컬 노드(142)는 버스(106)를 통해 이들 명령들을 원격 노드(144)로 전달할 수 있으며, 원격 노드(144)는 둘 사이의 SPI 인터페이스를 통해 이들 명령들을 SPI 슬레이브(140)로 전달할 수 있다. SPI 슬레이브(140)는 둘 사이의 SPI 인터페이스를 통해 원격 노드(140)에 응답할 수 있고, 원격 노드(144)는 버스(106)를 통해 로컬 노드(142)에 응답할 수 있으며, 로컬 노드(142)는 둘 사이의 SPI 인터페이스를 통해 SPI 호스트로 이러한 응답을 전달할 수 있다. 단지 단일 SPI 호스트(150) 및 단일 SPI 슬레이브(140)만이 도 20에서 예시되지만, 여기에서 개시된 통신 시스템들(100) 중 임의의 것은 원격 주변장치 SPI 기능을 가진 다수의 노드들(102)(예컨대, 다수의 주변장치 디바이스들(108)은 SPI 슬레이브들(140)로서 작용하며 적어도 부분적으로 버스(106)를 따라 SPI 호스트들(150)과 통신한다)을 포함할 수 있다.
터널 소유자 노드들(102) 및 터널 응답기 노드들(102)은 각각 연관된 데이터 터널의 상태를 모니터링하기 위해 사용될 수 있는 여러 상태 비트들을 가진 SPISTAT 레지스터를 유지할 수 있다. 몇몇 실시예들에서, 비트 SPISTAT.DTACIVE는 연관된 노드(102)의 SPI 포트가 활발히 데이터 터널을 사용하고 있는지를 나타내기 위해 사용될 수 있다. 몇몇 실시예들에서, 비트 SPISTAT.DTINVALID는 데이터 터널이 부적절하게 구성됨(예컨대, 합법적 또는 일관되지 않은 수의 터널 슬롯들이 없고, 다수의 터널 소유자들이 있으며, 터널 응답기는 구성되지 않는다 등)을 나타내기 위해 사용될 수 있다. 몇몇 실시예들에서, 비트 SPISTAT.DTBADPKT는 변질된 패킷이 수신되었는지를 나타내기 위해 사용될 수 있다. 몇몇 실시예들에서, 비트 SPISTAT.DTABORT는 노드가 터널 트랜잭션의 보드를 갖는다는(예컨대, 변질된 패킷, 예상되지 않은 패킷, 손실된 응답 패킷 등으로 인한) 것을 나타내기 위해 사용될 수 있다. 몇몇 실시예들에서, 터널 소유자 노드들(102) 및 터널 응답기 노드들(102)은 연관된 터널에 의해 프로세싱된 마지막 명령이 저장되는 레지스터 SPIDTLCMD를 유지할 수 있으며, 중단의 경우에, 이 정보는 실패한 트랜잭션의 유형 및 그것의 어떤 부분들이 완성되고 완성되지 않았는지를 식별하기 위해 사용될 수 있다.
도 21은 다양한 실시예들에 따른, 예시적인 원격 주변장치 SPI 기록 절차(200)의 흐름도이다. 원격 주변장치 SPI 기록 절차(200)의 동작들은 도 20의 시스템(100)을 참조하여 예시될 수 있지만, 임의의 적절한 시스템(100)은 원격 주변장치 SPI 기록 절차(200)를 수행할 수 있다.
202에서, SPI 호스트는 데이터를 SPI 슬레이브로 기록하기 위해, SPI 기록 명령을 SPI를 통해 로컬 노드로 전송할 수 있다. 예를 들어, SPI 호스트(150)는 SPI 기록 명령(예컨대, 도 39 내지 도 40을 참조하여 이하에서 논의되는 원자 기록 명령들 중 임의의 것)을 SPI를 통해(예컨대, 로컬 노드(142)에 포함된 SPI 트랜시버(136)를 통해) 로컬 노드(142)(예컨대, 마스터 노드(102-1))로 전송할 수 있다. SPI 기록 명령은 SPI 슬레이브(140)가 결합되는 원격 노드(144)(예컨대, 슬레이브 노드(102-2))의 표시자, 기록될 어드레스, 및 기록될 데이터를 포함할 수 있다.
204에서, 202의 SPI 기록 명령에 응답하여, 로컬 노드는 기록 데이터를 버스를 통해 원격 노드로 전송할 수 있다. 예를 들어, 로컬 노드(142)는 기록 데이터를 버스(106)를 통해 원격 노드(144)로 전송할 수 있다.
206에서, 원격 노드는 버스를 통해 기록 데이터를 수신할 수 있다. 예를 들어, 원격 노드(144)는 버스(106)를 통해 기록 데이터를 수신할 수 있다.
208에서, 기록 데이터의 수신에 응답하여, 원격 노드는 (SPI를 통해) 기록 데이터의 SPI 슬레이브로의 SPI 기록을 수행할 수 있다. 예를 들어, 원격 노드(144)는 기록 데이터를 SPI 슬레이브(140)로 기록하기 위해(예컨대, 데이터를 SPI 슬레이브(140)의 특정된 어드레스로 기록하기 위해) 종래의 SPI 프로토콜들을 사용할 수 있다.
도 22는 도 21의 원격 주변장치 SPI 기록 절차(200)의 실시예에서 수행될 수 있는 동작들의 표이다. 도 22에서 개괄된 동작들은 다른 세트들의 기록 동작들로부터 도 22에서 개괄된 동작들을 대조하기 위해(각각, 도 26 및 도 28을 참조하여 이하에서 논의되는 전이중 및 벌크 기록 동작들), "원자 기록"으로서 불리울 수 있다. 도 22의 표의 좌측 상에서의 동작들은 SPI를 통해 (각각, 도 26 및 도 28을 참조하여 이하에서 논의되는 전이중 및 벌크 기록 동작들) 호스트(150)로부터 로컬 노드(142)(터널 소유자)로 송신된 데이터에 대응하는 반면, 도 22의 표의 우측 상에서 동작들은 (각각, 도 26 및 도 28을 참조하여 이하에서 논의되는 전이중 및 벌크 기록 동작들)를 통해 원격 노드(144)(터널 응답기)로부터 (각각, 도 26 및 도 28을 참조하여 이하에서 논의되는 전이중 및 벌크 기록 동작들) 슬레이브(140)로 송신된 데이터에 대응한다.
도 22의 원자 기록 절차는 SPI 호스트(150)가 제 1 바이트를 로컬 노드(142)로 전송하는 것으로 시작할 수 있으며, 상기 제 1 바이트는 명령 유형(즉, 원자 기록")을 나타낸다. SPI 호스트로부터 로컬 노드(142)로 전송된 다음 바이트는 원격 노드(144) 및 연관된 SPI 슬레이브(140)를 나타내며, 뒤이은 바이트들은 기록될 데이터를 포함한다. 기록될 데이터를 송신한 후, SPI 호스트(150) 및 로컬 노드(142) 사이에서의 SPI 연결은 SPI 기록 트랜잭션이 원격 노드(144)와 SPI 슬레이브(140) 사이에서 발생하기를 기다릴 수 있다. SPI 호스트(150)가 원자 기록 명령을 로컬 노드(142)로 송신하는 동안, 로컬 노드(142)와 원격 노드(144) 사이에서의 터널은 조용할 수 있다. 일단 전체 원자 기록 명령이 로컬 노드(142)로 송신되었다면, 로컬 노드(142)는 버스(06)를 따라 터널을 통해 원격 노드(144)로 명령을 전달할 수 있다. 수신 시, 원격 노드(144)는 원격 노드(144)와 SPI 슬레이브(140) 사이에서의 SPI 연결을 통해 기록 바이트들을 SPI 슬레이브(140)로 기록할 수 있다.
도 23은 다양한 실시예들에 따른, 예시적인 원격 주변장치 SPI 판독 절차(220)의 흐름도이다. 원격 주변장치 SPI 판독 절차(220)의 동작들이 도 20의 시스템(100)을 참조하여 예시될 수 있지만, 임의의 적절한 시스템(100)은 원격 주변장치 SPI 판독 절차(220)를 수행할 수 있다.
222에서, SPI 호스트는 원격 노드에 결합된 SPI 슬레이브로부터 데이터를 판독하기 위해, SPI 판독 요청을 SPI를 통해 로컬 노드로 전송할 수 있다. 예를 들어, SPI 호스트(150)는 SPI 판독 요청 명령(예컨대, 도 19b를 참조하여 상기 논의된 원격 노드 SPI 판독 요청 명령)을 SPI를 통해(예컨대, 로컬 노드(142)에 포함된 SPI 트랜시버(136)를 통해) 로컬 노드(142)(예컨대, 마스터 노드(102-1))로 전송할 수 있다. SPI 판독 요청은 판독 명령의 목적지로서 원격 노드(144)(예컨대, 슬레이브 노드(102-2)) 및 특정한 SPI 슬레이브(140)의 표시자, 및 판독될 레지스터 어드레스를 포함할 수 있다.
224에서, 412의 SPI 판독 요청 명령에 응답하여, 로컬 노드는 버스를 통해 판독 명령을 원격 노드로 전송할 수 있다. 예를 들어, 로컬 노드(142)는 버스(106)를 통해 판독 명령을 원격 노드(144)로 전송할 수 있다.
226에서, 원격 노드는 버스를 통해 판독 명령을 수신할 수 있다. 예를 들어, 원격 노드(144)는 버스(106)를 통해 판독 명령을 수신할 수 있다.
228에서, 판독 명령의 수신에 응답하여, 원격 노드는 SPI를 통해 판독 명령을 SPI 슬레이브로 전송할 수 있다. 예를 들어, 원격 노드(144)는 원격 노드(144)와 SPI 슬레이브(140) 사이에서의 로컬 SPI 연결을 통해 SPI 슬레이브(140)로부터 특정된 어드레스를 판독하기 위해 판독 명령을 전송할 수 있다.
230에서, 판독 명령의 수신에 응답하여, SPI 슬레이브는 판독 데이터를 SPI를 통해 원격 노드로 반환할 수 있다. 예를 들어, SPI 슬레이브(140)는 특정된 어드레스에 저장된 데이터를 액세스할 수 있으며, 원격 노드(144)와 SPI 슬레이브(140) 사이에서의 로컬 SPI 연결을 통해 상기 데이터를 원격 노드(144)로 제공할 수 있다.
232에서, 판독 데이터의 수신에 응답하여, 원격 노드는 버스를 통해 판독 데이터를 로컬 노드로 전송할 수 있다. 예를 들어, 원격 노드(144)는 버스(106)를 통해 판독 데이터를 로컬 노드(142)로 송신할 수 있다.
234에서, 판독 데이터 모두의 수신에 응답하여, 로컬 노드는 SPI를 통해 SPI DONE 인터럽트를 SPI 호스트로 전송할 수 있다. 예를 들어, 로컬 노드(142)는 판독 데이터 모두가 원격 노드(144)로부터 수신되었을 때 SPI DONE 인터럽트를 SPI 호스트(150)로 전송할 수 있다(로컬 노드(142)와 SPI 호스트(150) 사이에서의 로컬 SPI 연결을 통해).
236에서, 234의 인터럽트의 수신에 응답하여, SPI 호스트는 SPI를 통해 SPI 판독 명령을 로컬 노드로 전송할 수 있다. 예를 들어, SPI 호스트(150)는 SPI를 통해 SPI 판독 명령(예컨대, 도 19d를 참조하여 상기 논의된 SPI 데이터 판독 명령)을 로컬 노드(142)로 전송할 수 있다.
238에서, 236의 SPI 판독 명령에 응답하여, 로컬 노드는 판독 데이터를 SPI를 통해 SPI 호스트로 전송할 수 있다. 예를 들어, 로컬 노드(142)는 (원격 노드(144)를 통해 SPI 슬레이브(140)로부터 수신된) 판독 데이터를 SPI를 통해 SPI 호스트(150)로 전송할 수 있다.
도 24는 도 23의 원격 주변장치 SPI 판독 절차의 실시예에서 수행될 수 있는 동작들의 표이다. 도 24에서 개괄된 동작들은 다른 세트들의 판독 동작들로부터 도 24에서 개괄된 동작들을 대조하기 위해(예컨대, 도 26을 참조하여 이하에서 논의되는 전이중 동작들) "원자 판독"으로서 불리울 수 있다. 도 24의 표의 좌측 상에서의 동작들은 SPI를 통해 SPI 호스트(150)로부터 로컬 노드(142)(터널 소유자)로 송신된 데이터에 대응하지만, 도 24의 표의 우측 상에서의 동작들은 SPI를 통해 원격 노드(144)(터널 응답기)로부터 SPI 슬레이브(140)로 송신된 데이터에 대응한다. 도 24에 예시된 기록 동작들은 선택적이며; 몇몇 실시예들에서, 기록 동작들은 판독 데이터가 MISO 상에 제공되기 전에 MOSI 상에서의 기록 데이터를 요구하는(예컨대, 어드레스를 설정하기 위해) 주변장치들(108)을 위해 사용될 수 있다.
도 25는 다양한 실시예들에 따른, 예시적인 원격 주변장치 SPI 전이중 절차(240)의 흐름도이다. 원격 주변장치 SPI 전이중 절차(240)의 동작들이 도 20의 시스템(100)을 참조하여 예시될 수 있지만, 임의의 적절한 시스템(100)은 원격 주변장치 SPI 전이중 절차(240)를 수행할 수 있다.
242에서, SPI 호스트는 원격 노드에 결합된 SPI 슬레이브로부터 데이터를 판독하고 그것으로 데이터를 기록하기 위해, 전이중 명령을 SPI를 통해 로컬 노드로 전송할 수 있다. 예를 들어, SPI 호스트(150)는 전이중 명령을 SPI를 통해(예컨대, 로컬 노드(142)에 포함된 SPI 트랜시버(136)를 통해) 로컬 노드(142)(예컨대, 마스터 노드(102-1))로 전송할 수 있다. 전이중 명령은 판독 및 기록 명령들의 목적지로서 원격 노드(144)(예컨대, 슬레이브 노드(102-2)) 및 특정한 SPI 슬레이브(140)의 표시자, 및 기록되고 판독될 레지스터 어드레스들을 포함할 수 있다.
244에서, 242의 전이중 명령에 응답하여, 로컬 노드는 SPI 슬레이브로부터 이전에 수신된 판독 데이터를 SPI를 통해 SPI 호스트로 전송할 수 있다. 예를 들어, 로컬 노드(142)는 SPI 슬레이브(140)로부터 이전에 수신된 판독 데이터를 가질 수 있으며(이전 판독 명령에 응답하여), 상기 판독 데이터를 로컬 노드(142)의 메모리에(예컨대, 상기 논의된 FIFO 버퍼에) 저장될 수 있다. 이러한 이전에 수신된 판독 데이터는 전이중 명령의 수신에 응답하여 (로컬 노드(142)와 SPI 호스트(150) 사이에서의 로컬 SPI 연결을 통해) SPI 호스트(150)로 전송될 수 있다.
246에서, 244에서 이전에 수신된 판독 데이터를 SPI 호스트로 전송하는 것과 동시에, 로컬 노드는 SPI를 통해 SPI 호스트로부터 SPI 슬레이브에 대한 기록 데이터를 수신할 수 있다. 예를 들어, SPI 호스트(150)는 로컬 노드(142)가 MISO 라인을 통해 이전에 수신된 판독 데이터를 SPI 호스트(150)로 전송하는 동안 로컬 SPI 연결의 MOSI 라인을 통해 기록 데이터를 로컬 노드(142)로 전송할 수 있다.
248에서, 모든 기록 데이터가 246에서 SPI 호스트로부터 로컬 노드에서 수신되기 전에, 로컬 노드는 버스를 통해 이러한 기록 데이터를 원격 노드로 전송하기 시작할 수 있다. 예를 들어, 로컬 노드(142)는 기록 데이터가 수신될 때 및 전체적으로 기록 데이터를 수신하기 전에 버스(106)를 통해 기록 데이터를 원격 노드(144)로 전송할 수 있다.
250에서, 모든 기록 데이터가 로컬 노드로부터 원격 노드에서 수신되기 전에, 원격 노드는 SPI를 통해 기록 데이터를 SPI 슬레이브로 기록하기 시작할 수 있다. 예를 들어, 원격 노드(144)는 원격 노드(144)가 로컬 노드(142)로부터 기록 데이터 모두를 수신하기 전에 원격 노드(144)와 SPI 슬레이브(140) 사이에서의 로컬 SPI 연결을 통해 기록 데이터를 SPI 슬레이브(140)로 기록할 수 있다.
252에서, 기록 데이터를 SPI 슬레이브로 기록하는 것과 동시에, 원격 노드는 SPI를 통해 SPI 슬레이브로부터 새로운 판독 데이터를 수신할 수 있다. 예를 들어, 원격 노드(144)가 기록 데이터를 SPI 슬레이브(140)로 기록하는 동안, 원격 노드(144)는 원격 노드(144)와 SPI 슬레이브(140) 사이에서의 로컬 SPI 연결을 통해 SPI 슬레이브(140)로부터 새로운 판독 데이터를 수신하고 있을 수 있다.
254에서, 원격 노드는 새로운 판독 데이터를 버스를 통해 로컬 노드로 전송할 수 있다. 예를 들어, 원격 노드(144)는 버스(106)를 통해 새로운 판독 데이터를 로컬 노드(142)로 송신할 수 있다. 로컬 노드(142)는 부가적인 판독 또는 전이중 명령이 SPI 호스트(150)로부터 수신될 때까지(로컬 노드(142)가 로컬 SPI 연결을 통해 새로운 판독 데이터를 SPI 호스트(150)로 제공하는 것에 응답하여) 새로운 판독 데이터를 메모리에(예컨대, 상기 논의된 FIFO 버퍼에) 저장할 수 있다.
도 26은 도 25의 원격 주변장치 SPI 전이중 절차의 실시예에서 수행될 수 있는 동작들의 표이다. 도 25에서 개괄된 동작들은, 도 25를 참조하여 상기 논의된 바와 같이, "전이중 SPI 트랜잭션"으로 불리울 수 있다. 도 26의 표의 좌측 상에서의 동작들은 SPI를 통해 SPI 호스트(150)로부터 로컬 노드(142)(터널 소유자)로 송신된 데이터에 대응하지만, 도 26의 표의 우측 상에서의 동작들은 SPI를 통해 원격 노드(144)(터널 응답기)로부터 SPI 슬레이브(140)로 송신된 데이터에 대응한다.
도 26의 전이중 절차는 SPI 호스트(150)가 제 1 바이트를 로컬 노드(142)로 전송하는 것으로 시작할 수 있으며, 상기 제 1 바이트는 명령 유형(즉, "전이중")을 나타낸다. SPI 호스트로부터 로컬 노드(142)로 전송된 다음 바이트는 원격 노드(144) 및 연관된 SPI 슬레이브(140)를 나타내고, 다음 바이트(도 26에서 길이)는 판독되고 기록될 바이트들의 수를 나타내며, 뒤이은 바이트들은 기록될 데이터를 나타낸다. MOSI 라인 상에 기록될 데이터(WR2)를 송신하는 동안, SPI 호스트(150)는 로컬 노드(142)로부터 MISO 라인 상에서 SPI 슬레이브(140)로부터 이전 판독된(및 로컬 노드(142)에 저장된) 데이터(RD1)를 수신한다. SPI 호스트(150)가 로컬 노드(142)로 기록 데이터를 송신하는 동안, 및 로컬 노드(142)로의 기록 데이터의 송신이 완료되기 전에, 로컬 노드(142)는 버스(106)를 따라 터널을 통해 원격 노드(144)로 기록 데이터를 전달하기 시작할 수 있다. 수신 시, 원격 노드(144)는 원격 노드(144)와 SPI 슬레이브(140) 사이에서의 SPI 연결을 통해 기록 바이트들을 SPI 슬레이브(140)로 기록할 수 있으며; 도 26에 도시된 바와 같이, SPI 슬레이브(140)로의 기록 데이터의 기록은 기록 데이터의 모두가 로컬 노드(142)로 송신되기 전에 시작할 수 있다. 원격 노드(144)가 기록 데이터를 MOSI 라인 상에서의 SPI 슬레이브(140)로 기록하는 동안, SPI 슬레이브(140)는 MISO 라인 상에서 원격 노드(144)로 새로운 판독 데이터(RD2)를 송신하기 시작할 수 있다.
도 27은 다양한 실시예들에 따른, 예시적인 원격 주변장치 SPI 벌크 기록 절차(260)의 흐름도이다. 원격 주변장치 SPI 벌크 기록 절차(260)의 동작들이 도 20의 시스템(100)을 참조하여 예시될 수 있지만, 임의의 적절한 시스템(100)이 60에 대해 원격 주변장치 SPI 벌크 기록 절차를 수행할 수 있다.
262에서, SPI 호스트는 데이터를 SPI 슬레이브로 기록하기 위해, 벌크 기록 명령을 SPI를 통해 로컬 노드로 전송할 수 있다. 예를 들어, SPI 호스트(150)는 SPI를 통해(예컨대, 로컬 노드(142)에 포함된 SPI 트랜시버(136)를 통해) 벌크 기록 명령을 로컬 노드(142)(예컨대, 마스터 노드(102-1))로 전송할 수 있다. 벌크 기록 명령은 원격 노드(144)(예컨대, 슬레이브 노드(102-2)) 및 SPI 슬레이브(140)의 표시자, 기록될 어드레스, 기록될 데이터의 길이, 및 기록될 데이터를 포함할 수 있다.
264에서, 262의 SPI 기록 명령에 응답하여 및 기록 데이터의 모두가 로컬 노드에서 수신되기 전에, 로컬 노드는 버스를 통해 기록 데이터를 원격 노드로 전송하기 시작할 수 있다. 예를 들어, 로컬 노드(142)는 로컬 노드(142)가 SPI 호스트(150)로부터 기록 데이터 모두를 수신하기 전에 버스(106)를 통해 기록 데이터를 원격 노드(144)로 전송하기 시작할 수 있다.
266에서, 기록 데이터의 수신에 응답하여 및 기록 데이터의 모두가 원격 노드에서 수신되기 전에, 원격 노드는 (SPI를 통해) SPI 슬레이브로의 기록 데이터의 SPI 기록을 수행할 수 있다. 예를 들어, 원격 노드(144)는 기록 데이터를 SPI 슬레이브(140)로 기록하기 위해(예컨대, 데이터를 SPI 슬레이브(140)의 특정된 어드레스로 기록하기 위해) 종래의 SPI 프로토콜들을 사용할 수 있다.
도 28은 도 27의 원격 주변장치 SPI 벌크 기록 절차의 실시예에서 수행될 수 있는 동작들의 표이다. 도 28에서 개괄된 동작들은 도 27을 참조하여 상기 논의된 바와 같이, "벌크 기록"으로 불리울 수 있다. 도 28의 표의 좌측 상에서의 동작들은 SPI를 통해 SPI 호스트(150)로부터 로컬 노드(142)(터널 소유자)로 송신된 데이터에 대응하지만, 도 28의 표의 우측 상에서의 동작들은 SPI를 통해 원격 노드(144)(터널 응답기)로부터 SPI 슬레이브(140)로 송신된 데이터에 대응한다.
도 28의 벌크 기록 절차는 SPI 호스트(150)가 제 1 바이트를 로컬 노드(142)로 전송하는 것으로 시작할 수 있으며, 상기 제 1 바이트는 명령 유형(즉, "벌크")을 나타낸다. SPI 호스트로부터 로컬 노드(142)로 전송된 다음 바이트는 원격 노드(144) 및 연관된 SPI 슬레이브(140)를 나타내고, 다음 바이트(도 28에서 길이)는 기록될 바이트들의 수를 나타내며, 뒤이은 바이트들은 기록될 데이터를 나타낸다. 로컬 노드(142)로의 기록 데이터의 송신이 완료되기 전에, 로컬 노드(142)는 버스(106)를 따라 터널을 통해 원격 노드(144)로 기록 데이터를 전달하기 시작할 수 있다. 수신 시, 원격 노드(144)는 원격 노드(144)와 SPI 슬레이브(140) 간의 SPI 연결을 통해 기록 데이터를 SPI 슬레이브(140)로 기록할 수 있으며; 도 28에 도시된 바와 같이, SPI 슬레이브(140)로의 기록 데이터의 기록은 기록 데이터의 모두가 로컬 노드(142)로 송신되기 전에 시작할 수 있다.
상기 주지된 바와 같이, 원격 주변장치 SPI 구성에서, SPI 데이터는 버스(106)를 따라 데이터 터널을 통해 송신될 수 있다. 몇몇 실시예들에서, 데이터 터널은 원격 주변장치 SPI 기능을 위한 제어 정보 및 데이터를 송신하기 위해 전용 업스트림 및 다운스트림 데이터 슬롯들을 포함할 수 있다. 몇몇 실시예들에서, 타이틀들은 시스템(100)의 동작 동안 크기가 동적으로 더해지고, 제거되거나 또는 변경될 수 있으며, 다수의, 비-중첩 터널들이 시스템(100)에 존재할 수 있다. 뿐만 아니라, 업스트림 및 다운스트림 터널들은 상이한 크기들일 수 있다.
몇몇 실시예들에서, 각각의 노드(102)에서의 4개의 레지스터들이 상기 노드(102)에 대한 데이터 터널을 구성하기 위해 사용될 수 있다: DTCFG는 터널에서 노드의 위치를 기술할 수 있으며, DTSLOTS, DTUPOFFSET, 및 DTDNOFFSET은 어떤 데이터 슬롯들이 터널에 할당되는지를 기술할 수 있다. 여기에서 설명된 이들 및 다른 레지스터들의 명칭들은 단순히 예시적이며, 임의의 적절한 명칭들이 선택될 수 있다.
몇몇 실시예들에서, DTCFG 레지스터는 3개의 비트들을 포함한다. 제 1 비트, DTEN은 터널 기능을 가능하게 할 수 있다. 2개의 부가 비트들, DTFRST 및 DTLAST는 노드(102)가 터널의 가장 업스트림(제 1) 또는 가장 다운스트림(마지막) 노드인지를 나타낼 수 있다. 몇몇 실시예들에서, DTEN이 마스터 노드(102-1) 상에서 설정되면, DTFRST가 설정되어야 한다. 몇몇 실시예들에서, DTEN이 마지막 슬레이브 노드(102-2) 상에서 설정되면, DTLAST가 설정되어야 한다. DTFRST는 터널의 가장 업스트림 노드(102)에 설정될 수 있다. DTLAST는 터널의 가장 다운스트림 노드(102)에서 설정될 수 있다. 단일 노드(102)는 DTFRST 및 DTLAST 양쪽 모두를 설정하지 않을 수 있다.
레지스터들(DTSLOTS, DTUPOFFSET, 및 DTDNOFFSET)은 업스트림 및 다운스트림 터널들의 크기 및 위치를 기술할 수 있다. 업스트림 터널은 DTSLOTS.DTUPSLOTS 슬롯들을 사용할 수 있으며 DTUPOFFSET.DTUPOFFSET에 의해 선택된 슬롯에서 시작할 수 있다. 다운스트림 터널은 DTSLOTS.DTDNSLOTS 슬롯들을 사용할 수 있으며 DTDNOFFSET.DTDNOFFSET에 의해 선택된 슬롯에서 시작할 수 있다. DTEN=1을 가진 터널 세그먼트에서 모든 노드들(102)은 이들 레지스터들에 대해 동일한 설정들을 사용할 수 있다. DTxxSLOTS 및 DTxxOFFSET 레지스터들에서 설정들은 DTEN=0인 경우 무시될 수 있다.
몇몇 실시예들에서, 데이터 슬롯들(DNSLOTS 및 UPSLOTS)은 오디오 콘텐트 다운스트림(DN) 및 업스트림(UP)을 위해 사용될 수 있다. 데이터 터널 슬롯들(DTDNSLOTS 및 DTUPSLOTS)은 비동기식 데이터 터널링(예컨대, SPI), 다운스트림(DN) 및 업스트림(UP)을 위해 사용될 수 있다. DNSLOTS는 업스트림 노드(102)로부터(또는 수신 노드(102)가 마스터 노드(102-1)일 때 호스트(110)로부터) 수신되며 다운스트림 노드(102)로 전달된 데이터 슬롯들의 수를 나타낼 수 있다. DNMASK는 로컬 노드(102)가 어떤 다운스트림 데이터 슬롯(A-측으로부터)을 사용하는지(슬롯 1에 대해 1, 슬롯 2에 대해 2, 슬롯들 1과 2에 대해 3, 슬롯 3에 대해 4 등)를 나타내는 마스크일 수 있다. LDNSLOTS는 노드(102)에 의해 다운스트림 노드(102)에 기여된 데이터 슬롯들의 수를 나타낼 수 있다. DTDNOFFS는 다운스트림 데이터 터널 슬롯들의 슬롯 오프셋 위치를 나타낼 수 있다(예컨대, 2는 2개의 다운스트림 슬롯들 후를 나타낼 수 있다). 데이터 터널에 수반된 모든 노드들(102)은 동일한 DTDNOFFS 설정을 가질 수 있다. DTDNSLOTS는 데이터 터널을 위해 사용된 다운스트림 슬롯들의 수를 나타낼 수 있다. UPSLOTS는 다운스트림 노드(102)로부터(또는 수신 노드(102)가 마스터 노드(102-1)일 때 호스트(110)로부터) 수신되고 업스트림 노드(102)로 전달된 데이터 슬롯들의 수를 나타내기 위해 사용될 수 있다. UPMASK는 로컬 노드가 어떤 업스트림 데이터 슬롯(B-측으로부터)을 사용하는지(슬롯 1에 대해 1, 슬롯 2에 대해 2, 슬롯 1과 2에 대해 3, 슬롯 3에 대해 4 등)를 나타내는 마스크일 수 있다. LUPSLOTS는 노드(102)에 의해 업스트림 노드(102)에 기여된 데이터 슬롯들의 수를 나타낼 수 있다. DTUPOFFS는 업스트림 데이터 터널 슬롯들의 스롯 오프셋 위치(예컨대, 2: 2개의 다운스트림 슬롯들 후)를 나타낼 수 있다. 데이터 터널에 수반된 모든 노드들(102)은 동일한 DTUPOFFS 설정을 가질 수 있다. DTUPSLOTS는 데이터 터널을 위해 사용된 업스트림 슬롯들의 수를 나타낼 수 있다.
도 29는 다양한 실시예들에 따른, 마스터 노드(102-1)에서 데이터 터널 슬롯들의 구성들의 예들을 예시한다. 특히, 도 29는 DNSLOTS/UPSLOTS에 의해 정의된 오디오 데이터 슬롯들 앞에, 그 안에, 및 그 뒤에 데이터 터널을 가진 마스터 노드(102-1) 상에서의 유효 데이터 터널 슬롯 구성들의 예들을 예시한다.
도 30은 다양한 실시예들에 따른, 마지막 슬레이브 노드(102-2)에서 데이터 터널 슬롯들의 구성들의 예들을 예시한다. 특히, 도 30은 DNSLOTS/UPSLOTS에 의해 정의된 오디오 데이터 슬롯들 앞에, 그 안에, 및 그 뒤에 데이터 터널을 가진 버스(106)를 따르는 마지막 슬레이브 노드(102-2) 상에서의 유효 데이터 터널 슬롯 구성들의 예들을 예시한다.
도 31은 다양한 실시예들에 따른, 마지막이 아닌 슬레이브 노드(102-2)인 터널 소유자에서 데이터 터널 슬롯들의 구성들의 예들을 예시한다. 특히, 도 31은 마지막이 아닌 슬레이브 노드(102-2) 상에서 유효 데이터 터널 슬롯 구성들의 예들을 예시한다.
도 32 및 도 33은 다양한 실시예들에 따른, 터널에서의 중간 노드에서(즉, 데이터 터널의 가장 업스트림도 아니고 가장 다운스트림 노드(102)도 아닌) 데이터 터널 슬롯들의 구성들의 예들을 예시하며, 여기에서 상기 중간 노드는 마지막이 아닌 슬레이브 노드(102-2)이다. 특히, 도 32 및 도 33은 마지막이 아닌 슬레이브 노드(102-2)인 중간 노드 상에서 유효 데이터 터널 슬롯 구성들의 예들을 예시한다.
도 34는 다양한 실시예들에 따른, 마지막이 아닌 슬레이브 노드인 터널 응답기에서 데이터 터널 슬롯들의 구성들의 예들을 예시한다. 특히, 도 34는 데이터 터널의 가장 다운스트림 노드(102)인 마지막이 아닌 슬레이브 노드(102-2)의 유효 데이터 터널 슬롯 구성들의 예들을 예시한다.
몇몇 실시예들에서, 시스템(100)은 하나 이상의 포맷을 가진 데이터 터널들을 지원할 수 있다. 예를 들어, 몇몇 실시예들에서, 데이터 터널은 터널에서 바이트들의 수에 기초하여 두 개의 포맷들 중 하나를 가질 수 있다. 예를 들어, 길이가 17 바이트 미만인 터널들은 12비트 CRC 및 4비트 길이 필드를 가진 표준 터널 프로토콜을 사용할 수 있다. 길이가 17바이트들보다 큰 터널들은 16-비트 CRC 및 8-비트 길이 필드를 가진 점보(jumbo) 터널 프로토콜을 사용할 수 있다. 터널에서 바이트들의 수는 터널에서 슬롯들의 수(DTSLOTS) 및 슬롯 크기(SLOTFMT.UPSIZE 및 SLOTFMT.DNSIZE)에 기초할 수 있다. 예를 들어, 도 35는 다양한 실시예들에 따라, 데이터 슬롯 크기 및 슬롯들의 수의 함수로서 데이터 터널에서 바이트들의 수의 예를 예시한다. 표준 및 점보 프로토콜들 양쪽 모두는 모든 터널 크기들에 대해 4의 해밍 거리(Hamming distance)를 달성할 수 있다.
몇몇 실시예들에서, 터널 소유자 패킷들은 명령 바이트, 주어진 수의 명령 파라미터 바이트들(예컨대, 0 내지 3 명령 파라미터 바이트들 사이에 있는), 트랜잭션 데이터, 페이로드 길이, 및 CRC를 포함할 수 있다. 사용되지 않은 바이트들은 모두 0으로 채워질 수 있다. 다양한 실시예들에 따라, 도 36은 데이터 터널 소유자에 대한 예시적인 SPI 패킷 명령 바이트를 예시하지만, 도 37은 데이터 터널 소유자에 대한 예시적인 SPI 슬레이브 선택/노드 바이트를 예시한다. 도 38은 다양한 실시예들에 따라, 예시적인 터널 소유자 패킷 구조를 예시한다. 도 38은 표준 및 점보 터널 패킷들에 대한 예시적인 패킷 구조들을 포함한다. 페이로드 길이 필드는 명령, 명령 파라미터들, 및 트랜잭션 데이터에 의해 소비된 바이트들의 수와 동일할 수 있으며, 사용되지 않은 바이트들, 길이 필드, 또는 CRC 필드를 포함하지 않을 수 있다. 도 38의 예시적인 구조들에서 바이트들의 순서는 단순히 예시적이며, 임의의 적절한 순서가 사용될 수 있고; 이는 여기에서 개시된 데이터 구조들 중 임의의 것에서 비트들/바이트들의 순서에 대해 참이다. 도 39 및 도 40은 다양한 실시예들에 따른, 예시적인 터널 소유자 패킷들을 예시한다.
몇몇 실시예들에서, 터널 응답기 패킷들은 응답 바이트, 판독 데이터, 페이로드 길이, 및 CRC를 포함할 수 있다. 사용되지 않은 바이트들은 모두 0으로 채워질 수 있다. 도 41은 다양한 실시예들에 따른, 예시적인 터널 응답기 프로토콜 바이트를 예시한다. 도 42는 다양한 실시예들에 따른, 예시적인 터널 응답기 패킷 구조를 예시한다. 도 42는 표준 및 점보 터널 패킷들에 대한 예시적인 패킷 구조들을 포함한다. 페이로드 길이 필드는 명령, 명령 파라미터들, 및 트랜잭션 데이터에 의해 소비된 바이트들의 수와 동일할 수 있으며, 사용되지 않은 바이트들, 길이 필드, 또는 CRC 필드를 포함하지 않을 수 있다. 도 43은 다양한 실시예들에 따른, 예시적인 터널 응답기 패킷들을 예시한다.
상기 주지된 바와 같이, 데이터 터널은 가장 업스트림 노드(102)(DTFRST=1을 가진 노드(102)), 가장 다운스트림 노드(102)(DTLAST=1을 가진 노드(102)), 및 그 사이에서 버스(106)를 따르는 모든 노드들(102)을 포함할 수 있다. 터널에서의 노드들(102)은 터널 능력을 인에이블(DTEN=1), 디스에이블(DTEN=0)할 수 있거나, 또는 터널 능력을 갖지 않을 수 있다. 가장 업스트림 노드(102)는 가장 업스트림 노드(102)가 유휴 상태이면 "콘텐트 없음" 패킷으로, 또는 가장 업스트림 노드(102)가 활성이면 적절한 프로토콜 패킷으로 다운스트림 터널 슬롯들을 채울 수 있다. 가장 다운스트림 노드(102)는 가장 다운스트림 노드(102)가 유휴 상태이면 "콘텐트 없음" 패킷으로 또는 가장 다운스트림 노드(102)가 활성이면 적절한 프로토콜 패킷으로 업스트림 터널 슬롯들을 채울 수 있다. 터널을 알지 못하거나, 또는 터널을 알 수 없는 노드들(102)은, 그것들이 국소적으로 소비되지 않은 다른 버스 슬롯들을 위한 것이므로, 그것들의 a-포트들로부터 그것들의 B-포트들로 아래쪽으로 터널 패킷들을, 및 그것들의 b-포트들로부터 그것들의 a-포트들로 수정되지 않고 지난다. 터널 소유자들은 "콘텐트 없음" 패킷에 대해 활성 프로토콜 패킷을 대신함으로써 공동성을 개시할 수 있다. 타겟팅된 터널 응답기는 "콘텐트 없음" 패킷에 대해 응답 패킷을 대신할 수 있다.
터널 소유자의 부분 상에서, 몇몇 실시예들에서, 단일 트랜잭션과 연관된 모든 패킷들은 연속적으로 전송될 수 있다. 트랜잭션은 부적절한 또는 손실된 응답 패킷이 트랜잭션 동안 발생한다면 중단될 수 있다. 트랜잭션 중단은 "콘텐트 없음" 패킷을 갖고 터널 응답기들로 시그널링될 수 있으며, 이러한 중단은 새로운 트랜잭션을 시작하기 전에 요구될 수 있다.
터널 응답기의 부분 상에서, 몇몇 실시예들에서, 연속적인 응답 패킷들은 터널 응답기가 활성인 동안 전송될 수 있다. 기록 동작들 동안, "응답확인" 또는 "판독 반환" 패킷들이 모든 판독 데이터가 반환될 때까지 전송될 수 있다. 트랜잭션들은 부적절한 또는 변질된 패킷이 트랜잭션 동안 수신된다면 중단될 수 있으며, 트랜잭션 상태는 SPISTAT 비트의 값을 판독함으로써 결정될 수 있다. 도 44는 다양한 실시예들에 따른, 예시적인 터널 패킷 흐름들을 예시한다.
도 45는 다양한 실시예들에 따른, SPI-대-I2C 기능을 포함한 예시적인 2-와이어 통신 시스템(100)의 일 부분의 블록도이다. 도 20은 SPI 인터페이스를 통해 마스터 노드(102-1)에 결합된 외부 디바이스(138), 및 I2C 인터페이스를 통해 슬레이브 노드(102-2)에 결합된 외부 디바이스(157)를 포함한다. 마스터 노드(102-1)는 또한 버스(106)를 통해 하나 이상의 슬레이브 노드들(102-2)과 통신한다. 마스터 노드(102-1)에 결합된 외부 디바이스(138)는 SPI 호스트(150)로서 작용할 수 있으며(연관된 마스터 노드(102-1)는 로컬 노드(142)로서 작용한다), 슬레이브 노드(102-2)에 결합된 외부 디바이스(157)는 I2C 슬레이브(145)로서 작용할 수 있다(연관된 슬레이브 노드(102-2)는 원격 노드(144)로서 작용한다). 특정한 수의 슬레이브 노드들(102-2)이 도 45에서 묘사되지만, 이것은 단순히 예시적이며, 더 많거나 또는 더 적은 슬레이브 노드들(102-2)이 포함될 수 있다. SPI 호스트(150)는 버스(106)를 통해 원격 노드(144)(존재한다면, 그 사이에서의 임의의 슬레이브 노드들(102-2)을 포함하여)와 통신할 수 있으며, 원격 노드(144)는 원격 노드(144)의 노드 트랜시버(120)(도시되지 않음)에 포함된 I2C 트랜시버(129)를 통해 I2C 슬레이브(145)와 통신할 수 있다. 도 45는 다른 실시예들에서 SPI-대-I2C 기능의, 마스터 노드(102-1)인 것으로 로컬 노드(142)를 예시하지만, 로컬 노드(142)는 슬레이브 노드(102-2)일 수 있다. 뿐만 아니라, 도 45는 원격 노드(144)를 로컬 노드(142)의 다운스트림, 다른 실시예들에서 SPI-대-I2C 기능인 것으로 예시하지만, 원격 노드(144)는 로컬 노드(142)의 업스트림일 수 있다. 몇몇 이러한 실시예들에서, 예를 들어, 원격 노드(144)는 마스터 노드(102-1)일 수 있다.
몇몇 실시예들에서, SPI-대-I2C 기능은 마스터 노드(102-1) 상에서의 SPI 포트가 시스템을 통해 데이터를 이동시키기 위해 상기 설명된 원격 I2C 프로토콜 후크들을 사용하여 슬레이브 노드들(102-2)에 결합된 외부 디바이스들(157)로부터 판독하고 그것으로 기록하도록 허용한다. 보다 일반적으로, SPI-대-I2C 기능을 포함한 시스템(100)의 동작 동안, SPI 호스트(150)는 둘 간의 SPI 인터페이스를 통해 명령들을 로컬 노드(142)로 송신할 수 있고, 로컬 노드(142)는 이들 명령들을 버스(106)를 통해 원격 노드(144)로 전달할 수 있으며, 원격 노드(144)는 둘 사이에서의 I2C 인터페이스를 통해 이들 명령들을 I2C 슬레이브(145)로 제공할 수 있다. I2C 슬레이브(145)는 둘 사이에서의 I2C 인터페이스를 통해 원격 노드(144)에 응답할 수 있고, 원격 노드(144)는 버스(106)를 통해 로컬 노드(142)에 응답할 수 있으며, 로컬 노드(142)는 둘 사이에서의 SPI 인터페이스를 통해 이러한 응답을 SPI 호스트(150)로 전달할 수 있다. 단지 단일 SPI 호스트(150) 및 단일 I2C만이 도 45에서 예시되지만, 여기에서 개시된 통신 시스템들(100) 중 임의의 것은 SPI-대-I2C 기능을 가진 다수의 노드들(102)을 포함할 수 있다(예컨대, 다수의 주변 디바이스들(108)은 I2C 슬레이브들(145)로서 작용하며 적어도 부분적으로 버스(106)를 따라 SPI 호스트들(150)과 통신한다).
도 46은 다양한 실시예들에 따른 예시적인 SPI-대-I2C 기록 절차(280)의 흐름도이다. SPI-대-I2C 기록 절차(280)의 동작들이 도 45의 시스템(100)을 참조하여 예시될 수 있지만, 임의의 적절한 시스템(100)이 SPI-대-I2C 기록 절차(200)를 수행할 수 있다.
282에서, SPI 호스트는 데이터를 I2C 슬레이브로 기록하기 위해, I2C 기록 명령을 SPI를 통해 로컬 노드로 전송할 수 있다. 예를 들어, SPI 호스트(150)는 SPI를 통해(예컨대, 로컬 노드(142)에 포함된 SPI 트랜시버(136)를 통해) I2C 기록 명령(예컨대, 도 48a를 참조하여 이하에서 논의된 원격 I2C 기록 명령)을 로컬 노드(142)(예컨대, 마스터 노드(102-1))로 전송할 수 있다.
282에서, SPI 호스트는 데이터를 I2C 슬레이브로 기록하기 위해, I2C 기록 명령을 SPI를 통해 로컬 노드로 전송할 수 있다. 예를 들어, SPI 호스트(150)는 SPI를 통해(예컨대, 로컬 노드(142)에 포함된 SPI 트랜시버(136)를 통해) I2C 기록 명령(예컨대, 도 48a를 참조하여 이하에서 논의된 원격 I2C 기록 명령)을 로컬 노드(142)(예컨대, 마스터 노드(102-1))로 전송할 수 있다. I2C 기록 명령은 I2C 슬레이브(145)가 결합되는 원격 노드(144)(예컨대, 슬레이브 노드(102-2))의 표시자, 기록될 어드레스, 및 기록될 데이터를 포함할 수 있다.
284에서, 282의 I2C 기록 명령에 응답하여, 로컬 노드는 버스를 통해 기록 데이터를 원격 노드로 전송할 수 있다. 예를 들어, 로컬 노드(142)는 버스(106)를 통해 기록 데이터를 원격 노드(144)로 전송할 수 있다.
286에서, 원격 노드는 버스를 통해 기록 데이터를 수신할 수 있다. 예를 들어, 원격 노드(144)는 버스(106)를 통해 기록 데이터를 수신할 수 있다.
288에서, 기록 데이터의 수신에 응답하여, 원격 노드는 (I2C를 통해) I2C 슬레이브로의 기록 데이터의 I2C 기록을 수행할 수 있다. 예를 들어, 원격 노드(144)는 기록 데이터를 I2C 슬레이브(145)로 기록하기 위해(예컨대, 데이터를 I2C 슬레이브(145)의 특정된 어드레스로 기록하기 위해) 종래의 I2C 프로토콜들을 사용할 수 있다.
도 47은 다양한 실시예들에 따른, 예시적인 SPI-대-I2C 판독 절차(300)의 흐름도이다. SPI-대-I2C 판독 절차(300)의 동작들이 도 45의 시스템(100)을 참조하여 예시될 수 있지만, 임의의 적절한 시스템(100)이 SPI-대-I2C 판독 절차(300)를 수행할 수 있다.
302에서, SPI 호스트는 원격 노드에 결합된 I2C 슬레이브로부터 데이터를 판독하기 위해, SPI를 통해 I2C 판독 요청을 로컬 노드로 전송할 수 있다. 예를 들어, SPI 호스트(150)는 SPI를 통해(예컨대, 로컬 노드(142)에 포함된 SPI 트랜시버(136)를 통해) I2C 판독 요청 명령(예컨대, 도 48b를 참조하여 이하에서 논의되는 원격 I2C 판독 요청 명령)을 로컬 노드(142)(예컨대, 마스터 노드(102-1))로 전송할 수 있다. SPI 판독 요청은 판독 명령의 목적지로서 원격 노드(144)(예컨대, 슬레이브 노드(102-2)) 및 특정한 I2C 슬레이브(145)의 표시자, 및 판독될 레지스터 어드레스를 포함할 수 있다.
304에서, 302의 I2C 판독 요청 명령에 응답하여, 로컬 노드는 버스를 통해 판독 명령을 원격 노드로 전송할 수 있다. 예를 들어, 로컬 노드(142)는 버스(106)를 통해 판독 명령을 원격 노드(144)로 전송할 수 있다.
306에서, 원격 노드는 버스를 통해 판독 명령을 수신할 수 있다. 예를 들어, 원격 노드(144)는 버스(106)를 통해 판독 명령을 수신할 수 있다.
308에서, 판독 명령의 수신에 응답하여, 원격 노드는 I2C를 통해 I2C 판독 명령을 I2C 슬레이브로 전송할 수 있다. 예를 들어, 원격 노드(144)는 원격 노드(144) 및 I2C 슬레이브(145) 간의 로컬 I2C 연결을 통해 I2C 슬레이브(145)로부터 특정된 어드레스를 판독하기 위해 판독 명령을 전송할 수 있다.
310에서, 판독 명령의 수신에 응답하여, I2C 슬레이브는 I2C를 통해 판독 데이터를 원격 노드로 반환할 수 있다. 예를 들어, I2C 슬레이브(145)는 특정된 어드레스에 저장된 데이터를 액세스할 수 있으며, 원격 노드(144)와 I2C 슬레이브(145) 간의 로컬 I2C 연결을 통해 상기 데이터를 원격 노드(144)로 제공할 수 있다.
312에서, 판독 데이터의 수신에 응답하여, 원격 노드는 버스를 통해 판독 데이터를 로컬 노드로 전송할 수 있다. 예를 들어, 원격 노드(144)는 버스(106)를 통해 판독 데이터를 로컬 노드(242)로 송신할 수 있다.
314에서, 원격 노드에서 판독 데이터의 수신 후, SPI 호스트는 SPI를 통해 SPI 판독 명령을 로컬 노드로 전송할 수 있다. 예를 들어, SPI 호스트(150)는 SPI를 통해 SPI 판독 명령(예컨대, 도 19d를 참조하여 상기 논의된 SPI 데이터 판독 명령)을 로컬 노드(142)로 전송할 수 있다.
316에서, 314의 SPI 판독 명령에 응답하여, 로컬 노드는 SPI를 통해 판독 데이터를 SPI로 전송할 수 있다. 예를 들어, 로컬 노드(142)는 SPI를 통해 판독 데이터(원격 노드(144)를 통해 I2C 슬레이브(145)로부터 수신된)를 SPI 호스트(150)로 전송할 수 있다.
도 48a 및 도 48b는 다양한 실시예들에 따라, SPI-대-I2C 기능의 구현에서 사용될 수 있는 명령들의 타이밍 도들이다. 특히, 도 48a는 원격 I2C 기록에 대한 타이밍 도이지만, 도 48b는 원격 I2C 판독 요청에 대한 타이밍 도이다. 도 48a에서, 제 1 바이트(도 48a에서 0x07)는 명령 유형(즉, 원격 I2C 기록)을 나타내고, 제 2 바이트(도 48a에서 노드)는 원격 노드(144)를 나타내며 마지막 바이트들(도 48a에서 N 바이트들)은 기록될 데이터를 나타낸다. 몇몇 실시예들에서, 256 바이트들(B=256)까지의 버스트 기록들이 지원될 수 있다.
도 48b에서, 제 1 바이트(도 48b에서 0x08)는 명령 유형(즉, 원격 I2C 판독 요청)을 나타내고, 제 2 바이트(도 48b에서 노드)는 원격 노드(144)를 나타내며, 마지막 바이트는 판독될 바이트들의 수를 나타낸다. 몇몇 실시예들에서, 256 바이트들(N=256)까지의 버스트 판독들이 지원될 수 있다.
다음의 단락들은 여기에서 개시된 실시예들 중 다양한 것들의 예들을 제공한다.
예 1은 직렬 주변장치 인터페이스(SPI) 기능을 가진 장치이며, 상기 장치는: 제 1 노드 트랜시버를 포함하며, 상기 제 1 노드 트랜시버는 제 2 노드 트랜시버로부터 2-와이어 버스의 2개의 와이어들을 통해 송신된 신호를 수신하기 위해 트랜시버 회로를 포함하고; 상기 제 1 노드 트랜시버는 상기 SPI 회로가 SPI 호스트에 결합될 때 상기 제 1 노드 트랜시버가 SPI 슬레이브로서 동작하도록 허용하기 위해 상기 SPI 회로를 더 포함한다.
예 2는 예 1의 주제를 포함하며, 상기 SPI 회로가 상기 SPI 호스트로부터 로컬 판독 명령을 수신하며, 상기 로컬 판독 명령에 응답하여, 상기 제 1 노드 트랜시버의 메모리 디바이스에 저장된 데이터를 상기 SPI 호스트로 제공하기 위한 것임을 또한 특정한다.
예 3은 예 1 또는 예 2의 주제를 포함하며, 상기 SPI 회로가 상기 SPI 호스트로부터 로컬 기록 명령을 수신하며, 상기 로컬 기록 명령에 응답하여, 데이터가 상기 제 1 노드 트랜시버의 메모리 디바이스로 기록되게 하기 위한 것임을 또한 특정한다.
예 4는 예 1의 주제를 포함하며, 상기 SPI 회로가 또한 상기 SPI 호스트로부터 SPI 명령을 수신하며, 상기 SPI 명령의 수신에 응답하여, 상기 2개의 와이어들을 통해 2-와이어 버스 명령을 상기 제 2 노드 트랜시버로 송신하기 위한 것임을 또한 특정한다.
예 5는 예 4의 주제를 포함하며, 상기 SPI 명령은 슬레이브 판독 요청 명령을 포함하며 상기 2-와이어 버스 명령은 판독 명령을 포함한다는 것을 또한 특정한다.
예 6은 예 5의 주제를 포함하며, 상기 SPI 회로는 상기 판독 명령에 응답하여 상기 트랜시버 회로를 통해 상기 제 2 노드 트랜시버로부터 판독 데이터를 수신하기 위한 것임을 또한 특정한다.
예 7은 예 6의 주제를 포함하며, 상기 제 2 노드 트랜시버가 상기 제 2 노드 트랜시버의 메모리 디바이스로부터 판독 데이터를 제공하기 위한 것임을 또한 특정한다.
예 8은 예 6 또는 예 7의 주제를 포함하며, 상기 SPI 회로가, 상기 제 1 노드 트랜시버에 의한 상기 판독 데이터의 수신이 완료될 때 표시자를 설정하기 위한 것임을 또한 특정한다.
예 9는 예 8의 주제를 포함하며, 상기 SPI 회로는 상기 SPI 호스트로부터 상태 판독 명령을 수신하며, 상기 상태 판독 명령의 수신에 응답하여, 상기 표시자의 값을 상기 SPI 호스트로 제공하기 위한 것임을 또한 특정한다.
예 10은 예 6 내지 예 9 중 임의의 것의 주제를 포함하며, 상기 SPI 회로가 상기 SPI 호스트로부터 선입선출(FIFO) 판독 명령을 수신하며, 상기 FIFO 판독 명령의 수신에 응답하여, 상기 판독 데이터를 상기 SPI 호스트로 제공하기 위한 것임을 또한 특정한다.
예 11은 예 4의 주제를 포함하며, 상기 SPI 명령이 슬레이브 기록 명령을 포함하며 상기 2-와이어 버스 명령이 기록 명령을 포함한다는 것을 또한 특정한다.
예 12는 예 4 내지 예 11 중 임의의 것의 주제를 포함하며, 상기 SPI 명령은 상기 제 2 노드 트랜시버의 표시자를 포함한다는 것을 또한 특정한다.
예 13은 예 1의 주제를 포함하며, 상기 SPI 회로가 또한 상기 SPI 호스트로부터 제 1 SPI 명령을 수신하며, 상기 제 1 SPI 명령의 수신에 응답하여, 상기 두 개의 와이어들을 통해 2-와이어 버스 명령을 상기 제 2 노드 트랜시버로 송신하기 위한 것이고; 상기 2-와이어 버스 명령의 수신에 응답하여, 상기 제 2 노드 트랜시버가 상기 제 2 노드 트랜시버의 SPI 회로에 결합된 SPI 슬레이브 디바이스로 제 2 SPI 명령을 송신하기 위한 것임을 또한 특정한다.
예 14는 예 13의 주제를 포함하며, 상기 제 1 SPI 명령이 슬레이브 판독 요청 명령을 포함하고, 상기 2-와이어 버스 명령은 판독 명령을 포함하며, 상기 제 2 SPI 명령은 판독 명령을 포함한다는 것을 또한 특정한다.
예 15는 예 14의 주제를 포함하며, 상기 SPI 회로는 상기 제 2 노드 트랜시버로 송신된 상기 판독 명령에 응답하여, 상기 트랜시버 회로를 통해 상기 제 2 노드 트랜시버로부터 판독 데이터를 수신하기 위한 것임을 또한 특정한다.
예 16은 예 15의 주제를 포함하며, 상기 판독 데이터가 상기 SPI 슬레이브 디바이스에 의해 상기 제 2 노드 트랜시버의 SPI 회로로 제공된다는 것을 또한 특정한다.
예 17은 예 15 또는 예 16의 주제를 포함하며, 상기 제 1 노드 트랜시버에 의한, 상기 판독 데이터의 수신이 완료될 때 상기 SPI 회로가 인터럽트를 상기 SPI로 송신하기 위한 것임을 또한 특정한다.
예 18은 예 15 내지 예 17 중 임의의 것의 주제를 포함하며, 상기 SPI 회로가 상기 SPI 호스트로부터 선입선출(FIFO) 판독 명령을 수신하며, 상기 FIFO 판독 명령의 수신에 응답하여, 상기 판독 데이터를 상기 SPI 호스트로 제공하기 위한 것임을 또한 특정한다.
예 19는 예 15 내지 예 18 중 임의의 것의 주제를 포함하며, 상기 2-와이어 버스 명령의 수신이 완료된 후 상기 제 2 노드 트랜시버는 상기 SPI 슬레이브 디바이스로의 상기 제 2 SPI 명령의 송신을 시작하기 위한 것임을 또한 특정한다.
예 20은 예 15 내지 예 18 중 임의의 것의 주제를 포함하며, 상기 제 2 노드 트랜시버는 상기 2-와이어 버스 명령의 수신이 완료되기 전에 상기 SPI 슬레이브 디바이스로의 상기 제 2 SPI 명령의 송신을 시작하기 위한 것임을 또한 특정한다.
예 21은 예 13의 주제를 포함하며, 상기 SPI 명령이 슬레이브 명령을 포함하고, 상기 2-와이어 버스 명령이 기록 명령을 포함하며, 상기 제 2 SPI 명령이 기록 명령을 포함한다는 것을 또한 특정한다.
예 22는 예의 주제를 포함하며, 상기 2-와이어 버스 명령의 수신이 완료된 후 SPI 명령을 상기 SPI 슬레이브 디바이스로.
예 23은 예 21의 주제를 포함하며, 상기 2-와이어 버스 명령의 수신이 완료되기 전에 상기 제 2 노드 트랜시버가 상기 SPI 슬레이브 디바이스로의 상기 제 2 SPI 명령의 송신을 시작하기 위한 것임을 또한 특정한다.
예 24는 예 13 내지 예 23 중 임의의 것의 주제를 포함하며, 상기 제 1 SPI 명령은 상기 제 2 노드 트랜시버의 표시자 및 상기 SPI 슬레이브 디바이스의 표시자를 포함한다는 것을 또한 특정한다.
예 25는 예 1의 주제를 포함하며, 상기 SPI 회로가 또한 상기 SPI 호스트로부터 제 1 SPI 명령을 수신하며, 상기 제 1 SPI 명령의 수신에 응답하여, 상기 2개의 와이어들을 통해 상기 제 2 노드 트랜시버로의 제 1 집적 회로-간(I2C) 명령의 송신을 야기하기 위한 것이며; 상기 제 1 I2C 명령의 수신에 응답하여, 상기 제 2 노드 트랜시버는 제 2 I2C 명령을 상기 제 2 노드 트랜시버의 I2C 회로에 결합된 I2C 슬레이브 디바이스로 송신하기 위한 것임을 또한 특정한다.
예 26은 예 25의 주제를 포함하며, 상기 제 1 SPI 명령은 I2C 판독 요청 명령을 포함하고, 상기 제 1 I2C 명령은 I2C 판독 명령을 포함하며, 상기 제 2 I2C 명령은 I2C 판독 명령을 포함한다는 것을 또한 특정한다.
예 27은 예 26의 주제를 포함하며, 상기 SPI 회로가 상기 제 2 노드 트랜시버로 송신된 판독 명령에 응답하여, 상기 트랜시버 회로를 통해 상기 제 2 노드 트랜시버로부터 판독 데이터를 수신하기 위한 것임을 또한 특정한다.
예 28은 예 27의 주제를 포함하며, 상기 판독 데이터는 상기 I2C 슬레이브 디바이스에 의해 상기 제 2 노드 트랜시버의 I2C 회로로 제공된다는 것을 또한 특정한다.
예 29는 예 27 또는 예 28의 주제를 포함하며, 상기 SPI 회로가 상기 SPI 호스트로부터 선입선출(FIFO) 판독 명령을 수신하며, 상기 FIFO 판독 명령의 수신에 응답하여, 상기 판독 데이터를 상기 SPI 호스트로 제공하기 위한 것임을 또한 특정한다.
예 30은 예 25의 주제를 포함하며, 상기 제 1 SPI 명령이 I2C 기록 명령을 포함하고, 상기 제 1 I2C 명령이 기록 명령을 포함하며, 상기 제 2 I2C 명령이 기록 명령을 포함한다는 것을 또한 특정한다.
예 31은 예 25 내지 예 30 중 임의의 것의 주제를 포함하며, 상기 제 1 SPI 명령이 상기 제 2 노드 트랜시버의 표시자 및 상기 I2C 슬레이브 디바이스의 표시자를 포함한다는 것을 또한 특정한다.
예 32는 예 1 내지 예 31 중 임의의 것의 주제를 포함하며, 상기 SPI 회로가 슬레이브 선택 포트, 비트 클록 포트, 마스터-아웃-슬레이브-인 포트, 및 슬레이브-아웃-마스터-인 포트를 포함한다는 것을 또한 특정한다.
예 33은 예 1 내지 예 32 중 임의의 것의 주제를 포함하며, 상기 트랜시버 회로는 제 1 트랜시버 회로이고, 상기 2개의 와이어들은 첫 두 개의 와이어들이고, 상기 제 1 노드 트랜시버는 제 3 노드 트랜시버로부터 상기 2-와이어 버스의 두 번째 2개의 와이어들을 통해 송신된 신호를 수신하기 위해 제 2 트랜시버 회로를 추가로 포함하며, (a) 상기 제 1 트랜시버 회로는 업스트림 트랜시버 회로이고 상기 제 2 트랜시버 회로는 다운스트림 트랜시버 회로이거나, 또는 (b) 상기 제 1 트랜시버 회로는 다운스트림 트랜시버 회로이고 상기 제 2 트랜시버 회로는 업스트림 트랜시버 회로임을 또한 특정한다.
예 34는 예 33의 주제를 포함하며, 상기 제 1 노드 트랜시버가 슬레이브 노드 트랜시버임을 또한 특정한다.
예 35는 예 33 또는 예 34의 주제를 포함하며, 상기 제 1 노드 트랜시버가: 상기 2-와이어 버스의 두 개의 업스트림 와이어들을 통해 수신된 제 1 신호에서 동기화 제어 프레임의 프리앰블에 기초하여 상기 제 1 노드 트랜시버에서 클록 신호를 생성하기 위한 클록 회로로서, 상기 제 1 노드 트랜시버에 의한 상기 2-와이어 버스를 통한 신호들의 수신 및 공급의 타이밍은 상기 클록 신호에 기초하는, 상기 클록 회로; 및 상기 제 3 노드 트랜시버로부터 상기 2-와이어 버스의 두 개의 업스트림 와이어들 사이에서 전압 바이어스를 수신하기 위한 전력 회로를 더 포함한다는 것을 또한 특정한다.
예 36은 예 1 내지 예 32 중 임의의 것의 주제를 포함하며, 상기 제 1 노드 트랜시버가 마스터 노드 트랜시버임을 또한 특정한다.
예 37은 예 36의 주제를 포함하며, 상기 제 1 노드 트랜시버가: 클록 신호를 생성하기 위한 클록 회로로서, 트랜시버 회로가 상기 2-와이어 버스의 두 개의 다운스트림 와이어들을 통해 제 1 신호를 제공하기 위한 것인, 상기 클록 회로를 추가로 포함하며, 상기 제 1 신호의 동기화 제어 프레임의 프리앰블은 상기 클록 신호에 기초하고, 상기 제 2 노드 트랜시버는 상기 프리앰블에 기초하여 그 자신의 클록 신호를 생성하기 위한 것이며, 상기 제 1 노드 트랜시버는 상기 2-와이어 버스의 두 개의 다운스트림 와이어들 사이에 전압 바이어스를 제공하기 위한 것임을 또한 특정한다.
예 38은 예 1 내지 예 37 중 임의의 것의 주제를 포함하며, 상기 SPI 호스트를 추가로 포함한다.
예 39는 예 1 내지 예 38 중 임의의 것의 주제를 포함하며, 상기 제 2 노드 트랜시버를 추가로 포함한다.
예 40은 예 1 내지 예 39 중 임의의 것의 주제를 포함하며, 상기 2-와이어 버스가 비차폐 꼬임 쌍을 포함한다는 것을 또한 특정한다.
예 41은 예 1 내지 예 40 중 임의의 것의 주제를 포함하며, 상기 장치가 적어도 부분적으로 차량에 포함된다는 것을 또한 특정한다.
예 42는 직렬 주변장치 인터페이스(SPI) 기능을 가진 장치이며, 상기 장치는: 제 1 노드 트랜시버를 포함하며, 상기 제 1 노드 트랜시버는 제 2 노드 트랜시버로부터 2-와이어 버스의 두 개의 와이어들을 통해 송신된 신호를 수신하기 위해 트랜시버 회로를 포함하고; 상기 제 2 노드 트랜시버는 상기 제 2 노드 트랜시버가 SPI 호스트와 인터페이스하도록 허용하기 위해 SPI 회로를 포함하며, 상기 제 1 노드 트랜시버는 상기 SPI 호스트로부터 상기 2-와이어 버스를 통해 송신된 SPI 명령들에 응답하여 SPI 슬레이브로서 동작하기 위한 것이다.
예 43은 예 42의 주제를 포함하며, 상기 SPI 회로는 상기 SPI 호스트로부터 SPI 명령을 수신하며, 상기 SPI 명령의 수신에 응답하여, 상기 2개의 와이어들을 통해 2-와이어 버스 명령을 상기 제 1 노드 트랜시버로 송신하기 위한 것임을 또한 특정한다.
예 44는 예 43의 주제를 포함하며, 상기 SPI 명령은 슬레이브 판독 요청 명령을 포함하고 상기 2-와이어 버스 명령은 판독 명령을 포함한다는 것을 또한 특정한다.
예 45는 예 44의 주제를 포함하며, 상기 제 1 노드 트랜시버는 상기 판독 명령에 응답하여 상기 트랜시버 회로를 통해 상기 제 2 노드 트랜시버로 판독 데이터를 제공하기 위한 것임을 또한 특정한다.
예 46은 예 45의 주제를 포함하며, 상기 제 1 노드 트랜시버는 상기 제 1 노드 트랜시버의 메모리 디바이스로부터 상기 판독 데이터를 제공하기 위한 것임을 또한 특정한다.
예 47은 예 45 또는 예 46의 주제를 포함하며, 상기 SPI 회로는 상기 제 2 노드 트랜시버에 의한 상기 판독 데이터의 수신이 완료될 때 표시자를 설정하기 위한 것임을 또한 특정한다.
예 48은 예 47의 주제를 포함하며, 상기 SPI 회로는 상기 SPI 호스트로부터 상태 판독 명령을 수신하며, 상기 상태 판독 명령의 수신에 응답하여, 상기 표시자의 값을 상기 SPI 호스트로 제공하기 위한 것임을 또한 특정한다.
예 49는 예 45 내지 예 48 중 임의의 것의 주제를 포함하며, 상기 SPI 회로는 상기 SPI 호스트로부터 선입선출(FIFO) 판독 명령을 수신하며, 상기 FIFO 판독 명령의 수신에 응답하여, 상기 판독 데이터를 상기 SPI 호스트로 제공하기 위한 것임을 또한 특정한다.
예 50은 예 43의 주제를 포함하며, 상기 SPI 명령은 슬레이브 기록 명령을 포함하며 상기 2-와이어 버스 명령은 기록 명령을 포함한다는 것을 또한 특정한다.
예 51은 예 43 내지 예 50 중 임의의 것의 주제를 포함하며, 상기 SPI 명령은 상기 제 1 노드 트랜시버의 표시자를 포함한다는 것을 또한 특정한다.
예 52는 예 42 내지 예 51 중 임의의 것의 주제를 포함하며, 상기 SPI 회로는 슬레이브 선택 포트, 비트 클록 포트, 마스터-아웃-슬레이브-인 포트, 및 슬레이브-아웃-마스터-인 포트를 포함한다는 것을 또한 특정한다.
예 53은 예 42 내지 예 52 중 임의의 것의 주제를 포함하며, 상기 트랜시버 회로는 제 1 트랜시버 회로이고, 상기 2개의 와이어들은 첫 두 개의 와이어들이고, 상기 제 1 노드 트랜시버는 제 3 노드 트랜시버로부터 상기 2-와이어 버스의 두 번째 2개의 와이어들에 걸쳐 송신된 신호를 수신하기 위한 제 2 트랜시버 회로를 더 포함하며, (a) 상기 제 1 트랜시버 회로는 업스트림 트랜시버 회로이며 상기 제 2 트랜시버 회로는 다운스트림 트랜시버 회로이거나, 또는 (b) 상기 제 1 트랜시버 회로는 다운스트림 트랜시버 회로이며 상기 제 2 트랜시버 회로는 업스트림 트랜시버 회로임을 또한 특정한다.
예 54는 예 42 내지 예 53 중 임의의 것의 주제를 포함하며, 상기 제 1 노드 트랜시버가 슬레이브 노드 트랜시버임을 또한 특정한다.
예 55는 예 42 내지 예 54 중 임의의 것의 주제를 포함하며, 상기 제 1 노드 트랜시버는: 상기 2-와이어 버스의 두 개의 업스트림 와이어들을 통해 수신된 제 1 신호에서 동기화 제어 프레임의 프리앰블에 기초하여 상기 제 1 노드 트랜시버에서 클록 신호를 생성하기 위한 클록 회로로서, 상기 제 1 노드 트랜시버에 의한 상기 2-와이어 버스를 통한 신호들의 수신 및 공급의 타이밍은 상기 클록 신호에 기초하는, 상기 클록 회로; 및 상기 제 3 노드 트랜시버로부터 상기 2-와이어 버스의 두 개의 업스트림 와이어들 사이에서 전압 바이스를 수신하기 위한 전력 회로를 추가로 포함한다는 것을 또한 특정한다.
예 56은 예 42 내지 예 55 중 어느 하나의 주제를 포함하며, 상기 제 2 노드 트랜시버를 추가로 포함한다.
예 57은 예 42 내지 예 56 중 어느 하나의 주제를 포함하며, 상기 SPI 호스트를 추가로 포함한다.
예 58은 예 42 내지 예 57 중 어느 하나의 주제를 포함하며, 상기 2-와이어 버스는 비차폐 꼬임 쌍을 포함한다는 것을 또한 특정한다.
예 59는 예 42 내지 예 58 중 어느 하나의 주제를 포함하며, 상기 장치는 적어도 부분적으로 차량 헤드엔드에 포함되는 것을 또한 특정한다.
예 60은 직렬 주변장치 인터페이스(SPI) 기능을 가진 장치이며, 상기 장치는: 제 1 노드 트랜시버를 포함하며, 상기 제 1 노드 트랜시버는 제 2 노드 트랜시버로부터 2-와이어 버스의 두 개의 와이어들을 통해 송신된 신호를 수신하기 위해 트랜시버 회로를 포함하고; 상기 제 1 노드 트랜시버는 제 1 노드 트랜시버가 SPI 슬레이브와 인터페이스하도록 허용하기 위해 제 1 SPI 회로를 포함하고, 상기 제 2 노드 트랜시버는 상기 제 2 노드 트랜시버가 SPI 호스트와 인터페이스하도록 허용하기 위해 제 2 SPI 회로를 포함하며, 상기 SPI 슬레이브는 상기 SPI 호스트로부터 상기 2-와이어 버스를 통해 송신된 SPI 명령들에 응답하기 위한 것이다.
예 61은 예 60의 주제를 포함하며, 상기 제 2 SPI 회로는 상기 SPI 호스트로부터 제 1 SPI 명령을 수신하기 위한 것이고, 상기 제 1 SPI 명령의 수신에 응답하여, 상기 2개의 와이어들을 통해 상기 제 1 노드 트랜시버로 2-와이어 버스 명령을 송신하며; 상기 2-와이어 버스 명령의 수신에 응답하여, 상기 제 1 노드 트랜시버의 제 1 SPI 회로가 제 2 SPI 명령을 상기 SPI 슬레이브로 송신하기 위한 것임을 또한 특정한다.
예 62는 예 61의 주제를 포함하며, 상기 제 1 SPI 명령은 슬레이브 판독 요청 명령을 포함하고, 상기 2-와이어 버스 명령은 판독 명령을 포함하며, 상기 제 2 SPI 명령은 판독 명령을 포함한다는 것을 또한 특정한다.
예 63은 예 62의 주제를 포함하며, 상기 제 2 SPI 회로가 상기 제 1 노드 트랜시버로 송신된 판독 명령에 응답하여, 상기 트랜시버 회로를 통해 상기 제 1 노드 트랜시버로부터 판독 데이터를 수신하기 위한 것임을 또한 특정한다.
예 64는 예 63의 주제를 포함하며, 상기 판독 데이터는 상기 SPI 슬레이브에 의해 상기 제 1 노드 트랜시버의 제 1 SPI 회로로 제공된다는 것을 또한 특정한다.
예 65는 예 63 또는 예 64의 주제를 포함하며, 상기 제 2 SPI 회로는, 상기 제 2 노드 트랜시버에 의한, 상기 판독 데이터의 수신이 완료될 때 인터럽트를 상기 SPI 호스트로 송신하기 위한 것임을 또한 특정한다.
예 66은 예 63 내지 예 65 중 어느 하나의 주제를 포함하며, 상기 제 2 SPI 회로는, 상기 SPI 호스트로부터 선입선출(FIFO) 판독 명령을 수신하며, 상기 FIFO 판독 명령의 수신에 응답하여, 상기 판독 데이터를 상기 SPI 호스트로 제공하기 위한 것임을 또한 특정한다.
예 67은 예 63 내지 예 66 중 어느 하나의 주제를 포함하며, 상기 제 1 노드 트랜시버는 상기 2-와이어 버스 명령의 수신이 완료된 후 상기 SPI 슬레이브로의 상기 제 2 SPI 명령의 송신을 시작하기 위한 것임을 또한 특정한다.
예 68은 예 63 내지 예 66 중 어느 하나의 주제를 포함하며, 상기 제 1 노드 트랜시버는 상기 2-와이어 버스 명령의 수신이 완료되기 전에 상기 SPI 슬레이브로의 상기 제 2 SPI 명령의 송신을 시작하기 위한 것임을 또한 특정한다.
예 69는 예 61의 주제를 포함하며, 상기 제 1 SPI 명령은 슬레이브 기록 명령을 포함하고, 상기 2-와이어 버스 명령은 기록 명령을 포함하며, 상기 제 2 SPI 명령은 기록 명령을 포함한다는 것을 또한 특정한다.
예 70은 예 69의 주제를 포함하며, 상기 제 1 노드 트랜시버는 상기 2-와이어 버스 명령의 수신이 완료된 후 상기 SPI 슬레이브로의 상기 제 2 SPI 명령의 송신을 시작하기 위한 것임을 또한 특정한다.
예 71은 예 69의 주제를 포함하며, 상기 제 1 노드 트랜시버는 상기 2-와이어 버스 명령의 수신이 완료되기 전에 상기 SPI 슬레이브로의 상기 제 2 SPI 명령의 송신을 시작하기 위한 것임을 또한 특정한다.
예 72는 예 61 내지 예 71 중 어느 하나의 주제를 포함하며, 상기 제 1 SPI 명령은 상기 제 1 노드 트랜시버의 표시자 및 상기 SPI 슬레이브의 표시자를 포함한다는 것을 또한 특정한다.
예 73은 예 60 내지 예 72 중 어느 하나의 주제를 포함하며, 상기 제 1 SPI 회로는 슬레이브 선택 포트, 비트 클록 포트, 마스터-아웃-슬레이브-인 포트, 및 슬레이브-아웃-마스터-인 포트를 포함한다는 것을 또한 특정한다.
예 74는 예 60 내지 예 73 중 어느 하나의 주제를 포함하며, 상기 트랜시버 회로는 제 1 트랜시버 회로이고, 상기 2개의 와이어들은 첫 두 개의 와이어들이고, 상기 제 1 노드 트랜시버는 제 3 노드 트랜시버로부터 상기 2-와이어 버스의 두 번째 2개의 와이어들에 걸쳐 송신된 신호를 수신하기 위해 제 2 트랜시버 회로를 추가로 포함하며, (a) 상기 제 1 트랜시버 회로는 업스트림 트랜시버 회로이고 상기 제 2 트랜시버 회로는 다운스트림 트랜시버 회로이거나, 또는 (b) 상기 제 1 트랜시버 회로는 다운스트림 트랜시버 회로이고 상기 제 2 트랜시버 회로는 업스트림 트랜시버 회로임을 또한 특정한다.
예 75는 예 74의 주제를 포함하며, 상기 제 1 노드 트랜시버가: 상기 2-와이어 버스의 두 개의 업스트림 와이어들을 통해 수신된 제 1 신호에서 동기화 제어 프레임의 프리앰블에 기초하여 상기 제 1 노드 트랜시버에서 클록 신호를 생성하기 위한 클록 회로로서, 상기 제 1 노드 트랜시버에 의한 상기 2-와이어 버스를 통한 신호들의 수신 및 공급의 타이밍은 상기 클록 신호에 기초하는, 상기 클록 회로; 및 상기 제 3 노드 트랜시버로부터 상기 2-와이어 버스의 두 개의 업스트림 와이어들 사이에서 전압 바이어스를 수신하기 위한 전력 회로를 추가로 포함한다는 것을 또한 특정한다.
예 76은 예 60 내지 예 75 중 어느 하나의 주제를 포함하며, 상기 제 1 노드 트랜시버는 슬레이브 노드 트랜시버임을 또한 특정한다.
예 77은 예 60 내지 예 76 중 어느 하나의 주제를 포함하며, 상기 제 2 노드 트랜시버를 추가로 포함한다.
예 78은 예 60 내지 예 77 중 어느 하나의 주제를 포함하며, 상기 SPI 호스트를 추가로 포함한다.
예 79는 예 60 내지 예 78 중 어느 하나의 주제를 포함하며, 상기 SPI 슬레이브를 추가로 포함한다.
예 80은 예 60 내지 예 79 중 어느 하나의 주제를 포함하며, 상기 2-와이어 버스는 비차폐 꼬임 쌍을 포함한다는 것을 또한 특정한다.
예 81은 예 60 내지 예 80 중 어느 하나의 주제를 포함하며, 상기 장치는 적어도 부분적으로 차량 헤드엔드에 포함된다는 것을 또한 특정한다.
예 82는 직렬 주변장치 인터페이스(SPI) 기능을 가진 장치이며, 상기 장치는: 제 1 노드 트랜시버를 포함하며, 상기 제 1 노드 트랜시버는 제 2 노드 트랜시버로부터 2-와이어 버스의 두 개의 와이어들을 통해 송신된 신호를 수신하기 위해 트랜시버 회로를 포함하고; 상기 제 1 노드 트랜시버는 상기 제 1 노드 트랜시버가 I2C 슬레이브와 인터페이스하도록 허용하기 위해 집적 회로-간(I2C) 회로를 포함하고, 상기 제 2 노드 트랜시버는 상기 제 2 노드 트랜시버가 SPI 호스트와 인터페이스하도록 허용하기 위해 SPI 회로를 포함하며, 상기 I2C 슬레이브는 상기 SPI 호스트로부터 상기 2-와이어 버스를 통해 송신된 명령들에 응답하기 위한 것이다.
예 83은 예 82의 주제를 포함하며, 상기 SPI 회로는 또한 상기 SPI 호스트로부터 제 1 SPI 명령을 수신하고, 상기 제 1 SPI 명령에 응답하여, 상기 2개의 와이어들을 통해 제 1 I2C 명령을 상기 제 1 노드 트랜시버로 송신하며; 상기 제 1 I2C 명령의 수신에 응답하여, 상기 제 1 노드 트랜시버는 제 2 I2C 명령을 상기 I2C 슬레이브로 송신하기 위한 것임을 또한 특정한다.
예 84는 예 83의 주제를 포함하며, 상기 제 1 SPI 명령은 I2C 판독 요청 명령을 포함하고, 상기 제 1 I2C 명령은 I2C 판독 명령을 포함하며, 상기 제 2 I2C 명령은 I2C 판독 명령을 포함한다는 것을 또한 특정한다.
예 85는 예 84의 주제를 포함하며, 상기 SPI 회로는, 상기 제 1 노드 트랜시버로 송신된 판독 명령에 응답하여, 상기 트랜시버 회로를 통해 상기 제 1 노드 트랜시버로부터, 판독 데이터를 수신하기 위한 것임을 또한 특정한다.
예 86은 예 85의 주제를 포함하며, 상기 판독 데이터는 상기 I2C 슬레이브에 의해 상기 제 2 노드 트랜시버의 I2C 회로로 제공된다는 것을 또한 특정한다.
예 87은 예 85 또는 예 86의 주제를 포함하며, 상기 SPI 회로는, 상기 SPI 호스트로부터 선입선출(FIFO) 판독 명령을 수신하며, 상기 FIFO 판독 명령의 수신에 응답하여, 상기 판독 데이터를 상기 SPI 호스트로 제공하기 위한 것임을 또한 특정한다.
예 88은 예 83의 주제를 포함하며, 상기 제 1 SPI 명령은 I2C 기록 명령을 포함하고, 상기 제 1 I2C 명령은 기록 명령을 포함하며, 상기 제 2 I2C 명령은 기록 명령을 포함한다는 것을 또한 특정한다.
예 89는 예 83 내지 예 88 중 어느 하나의 주제를 포함하며, 상기 제 1 SPI 명령은 상기 제 1 노드 트랜시버의 표시자 및 상기 I2C 슬레이브의 표시자를 포함한다는 것을 또한 특정한다.
예 90은 예 82 내지 예 89 중 어느 하나의 주제를 포함하며, 상기 SPI 회로는 슬레이브 선택 포트, 비트 클록 포트, 마스터-아웃-슬레이브-인 포트, 및 슬레이브-아웃-마스터-인 포트를 포함한다는 것을 또한 특정한다.
예 91은 예 82 내지 예 90 중 어느 하나의 주제를 포함하며, 상기 트랜시버 회로는 제 1 트랜시버 회로이고, 상기 2개의 와이어들은 첫 두 개의 와이어들이고, 상기 제 1 노드 트랜시버는 제 3 노드 트랜시버로부터 상기 2-와이어 버스의 두 번재 두 개의 와이어들을 통해 송신된 신호를 수신하기 위해 제 2 트랜시버 회로를 추가로 포함하며, (a) 상기 제 1 트랜시버 회로는 업스트림 트랜시버 회로이고 상기 제 2 트랜시버 회로는 다운스트림 트랜시버 회로이거나, 또는 (b) 상기 제 1 트랜시버 회로는 다운스트림 트랜시버 회로이고 상기 제 2 트랜시버 회로는 업스트림 트랜시버 회로임을 또한 특정한다.
예 92는 예 91의 주제를 포함하며, 상기 제 1 노드 트랜시버는: 상기 2-와이어 버스의 두 개의 업스트림 와이어들을 통해 수신된 제 1 신호에서 동기화 제어 프레임의 프리앰블에 기초하여 상기 제 1 노드 트랜시버에서 클록 신호를 생성하기 위한 클록 회로로서, 상기 제 1 노드 트랜시버에 의한 상기 2-와이어 버스를 통한 신호들의 수신 및 공급의 타이밍은 상기 클록 신호에 기초하는, 상기 클록 회로; 및 상기 제 3 노드 트랜시버로부터 상기 2-와이어 버스의 두 개의 업스트림 와이어들 사이에 걸쳐 전압 바이어스를 수신하기 위한 전력 회로를 추가로 포함한다는 것을 또한 특정한다.
예 93은 예 82 내지 예 92 중 어느 하나의 주제를 포함하며, 상기 제 1 노드 트랜시버는 슬레이브 노드 트랜시버임을 또한 특정한다.
예 94는 예 82 내지 예 93 중 어느 하나의 주제를 포함하며, 상기 SPI 호스트를 추가로 포함한다.
예 95는 예 82 내지 예 94 중 어느 하나의 주제를 포함하며, 상기 제 2 노드 트랜시버를 추가로 포함한다.
예 96은 예 82 내지 예 95 중 어느 하나의 주제를 포함하며, 상기 I2C 슬레이브를 추가로 포함한다.
예 97은 예 82 내지 예 96 중 어느 하나의 주제를 포함하며, 상기 2-와이어 버스는 비차폐 꼬임 쌍을 포함한다는 것을 또한 특정한다.
예 98은 예 82 내지 예 97 중 어느 하나의 주제를 포함하며, 상기 장치는 적어도 부분적으로 차량에 포함된다는 것을 또한 특정한다.
예 99는 여기에서 개시된 실시예들 중 임의의 것에 따른, SPI 기능을 가진 통신 시스템이다.
예 100은 여기에서 개시된 실시예들 중 임의의 것에 따른, 통신 시스템에서 노드를 위한 SPI 기능을 제공하는 방법이다.
예 101은 여기에서 개시된 실시예들 중 임의의 것에 따른, SPI 기능을 위한 수단을 포함한 통신 시스템이다.
예 102는 여기에서 개시된 방법들 중 임의의 것을 수행하기 위한 수단을 포함한 통신 시스템이다.
예 103은 여기에서 개시된 실시예들 중 임의의 것에 따른 SPI 기능을 제공하기 위한 방법이다.

Claims (20)

  1. 직렬 주변장치 인터페이스(SPI) 기능을 가진 장치에 있어서,
    제 1 노드 트랜시버로서, 상기 제 1 노드 트랜시버는 제 2 노드 트랜시버로부터 2-와이어 버스의 두 개의 와이어들을 통해 송신된 신호를 수신하기 위해 트랜시버 회로를 포함하는, 상기 제 1 노드 트랜시버를 포함하며,
    상기 제 1 노드 트랜시버는 상기 SPI 회로가 SPI 호스트에 결합될 때 상기 제 1 노드 트랜시버가 SPI 슬레이브로서 동작하도록 허용하기 위해 SPI 회로를 더 포함하는, 장치.
  2. 청구항 1에 있어서,
    상기 SPI 회로는 상기 SPI 호스트로부터 로컬 판독 명령을 수신하며, 상기 로컬 판독 명령에 응답하여, 상기 제 1 노드 트랜시버의 메모리 디바이스에 저장된 데이터를 상기 SPI 호스트로 제공하기 위한 것인, 장치.
  3. 청구항 1에 있어서,
    상기 SPI 회로는 상기 SPI 호스트로부터 로컬 기록 명령을 수신하며, 상기 로컬 기록 명령에 응답하여, 데이터가 상기 제 1 노드 트랜시버의 메모리 디바이스로 기록되게 하기 위한 것인, 장치.
  4. 청구항 1에 있어서,
    상기 SPI 회로는 또한 상기 SPI 호스트로부터 SPI 명령을 수신하며, 상기 SPI 명령의 수신에 응답하여, 상기 2개의 와이어들을 통해 2-와이어 버스 명령을 상기 제 2 노드 트랜시버로 송신하기 위한 것인, 장치.
  5. 청구항 4에 있어서,
    상기 SPI 명령은 슬레이브 판독 요청 명령을 포함하며 상기 2-와이어 버스 명령은 판독 명령을 포함하는, 장치.
  6. 청구항 4에 있어서,
    상기 SPI 명령은 슬레이브 기록 명령을 포함하며 상기 2-와이어 버스 명령은 기록 명령을 포함하는, 장치.
  7. 청구항 1에 있어서,
    상기 SPI 회로는 또한 상기 SPI 호스트로부터 제 1 SPI 명령을 수신하며, 상기 제 1 SPI 명령의 수신에 응답하여, 상기 2개의 와이어들을 통해 2-와이어 버스 명령을 상기 제 2 노드 트랜시버로 송신하기 위한 것이며;
    상기 2-와이어 버스 명령의 수신에 응답하여, 상기 제 2 노드 트랜시버는 상기 제 2 노드 트랜시버의 SPI 회로에 결합된 SPI 슬레이브 디바이스로 제 2 SPI 명령을 송신하기 위한 것인, 장치.
  8. 청구항 7에 있어서,
    상기 제 1 SPI 명령은 슬레이브 판독 요청 명령을 포함하고, 상기 2-와이어 버스 명령은 판독 명령을 포함하며, 상기 제 2 SPI 명령은 판독 명령을 포함하는, 장치.
  9. 청구항 7에 있어서,
    상기 제 1 SPI 명령은 슬레이브 기록 명령을 포함하고, 상기 2-와이어 버스 명령은 기록 명령을 포함하며, 상기 제 2 SPI 명령은 기록 명령을 포함하는, 장치.
  10. 청구항 1에 있어서,
    상기 SPI 회로는 또한 상기 SPI 호스트로부터 제 1 SPI 명령을 수신하며, 상기 제 1 SPI 명령의 수신에 응답하여, 상기 2개의 와이어들을 통해 상기 제 2 노드 트랜시버로의 제 1 집적 회로-간(I2C) 명령의 송신을 야기하기 위한 것이며;
    상기 제 1 I2C 명령의 수신에 응답하여, 상기 제 2 노드 트랜시버는 제 2 I2C 명령을 상기 제 2 노드 트랜시버의 I2C 회로에 결합된 I2C 슬레이브 디바이스로 송신하기 위한 것인, 장치.
  11. 청구항 10에 있어서,
    상기 제 1 SPI 명령은 I2C 판독 요청 명령을 포함하고, 상기 제 1 I2C 명령은 I2C 판독 명령을 포함하며, 상기 제 2 I2C 명령은 I2C 판독 명령을 포함하는, 장치.
  12. 청구항 10에 있어서,
    상기 제 1 SPI 명령은 I2C 기록 명령을 포함하고, 상기 제 1 I2C 명령은 기록 명령을 포함하며, 상기 제 2 I2C 명령은 기록 명령을 포함하는, 장치.
  13. 청구항 1에 있어서,
    상기 트랜시버 회로는 제 1 트랜시버 회로이고, 상기 두 개의 와이어들은 첫 두 개의 와이어들이고, 상기 제 1 노드 트랜시버는 제 3 노드 트랜시버로부터 상기 2-와이어 버스의 두 번째 2개의 와이어들을 통해 송신된 신호를 수신하기 위해 제 2 트랜시버 회로를 더 포함하며, (a) 상기 제 1 트랜시버 회로는 업스트림 트랜시버 회로이며 상기 제 2 트랜시버 회로는 다운스트림 트랜시버 회로이거나, 또는 (b) 상기 제 1 트랜시버 회로는 다운스트림 트랜시버 회로이며 상기 제 2 트랜시버 회로는 업스트림 트랜시버 회로인, 장치.
  14. 청구항 13에 있어서,
    상기 제 1 노드 트랜시버는:
    상기 2-와이어 버스의 두 개의 업스트림 와이어들을 통해 수신된 제 1 신호에서 동기화 제어 프레임의 프리앰블에 기초하여 상기 제 1 노드 트랜시버에서 클록 신호를 생성하기 위한 클록 회로로서, 상기 제 1 노드 트랜시버에 의한 상기 2-와이어 버스를 통한 신호들의 수신 및 공급의 타이밍은 상기 클록 신호에 기초하는, 상기 클록 회로; 및
    상기 제 3 노드 트랜시버로부터 상기 2-와이어 버스의 두 개의 업스트림 와이어들 사이를 통해 전압 바이어스를 수신하기 위한 전력 회로를 더 포함하는, 장치.
  15. 청구항 1에 있어서,
    상기 제 1 노드 트랜시버는 마스터 노드 트랜시버인, 장치.
  16. 청구항 15에 있어서,
    상기 제 1 노드 트랜시버는:
    클록 신호를 생성하기 위한 클록 회로를 더 포함하며;
    트랜시버 회로는 상기 2-와이어 버스의 두 개의 다운스트림 와이어들을 통해 제 1 신호를 제공하기 위한 것이고, 상기 제 1 신호의 동기화 제어 프레임의 프리앰블은 상기 클록 신호에 기초하고, 상기 제 2 노드 트랜시버는 상기 프리앰블에 기초하여 그 자신의 클록 신호를 생성하기 위한 것이며, 상기 제 1 노드 트랜시버는 상기 2-와이어 버스의 두 개의 다운스트림 와이어들 사이에 전압 바이어스를 제공하기 위한 것인, 장치.
  17. 청구항 1에 있어서,
    상기 2-와이어 버스는 비차폐 꼬임 쌍을 포함하는, 장치.
  18. 청구항 1에 있어서,
    상기 장치는 적어도 부분적으로 차량에 포함되는, 장치.
  19. 직렬 주변장치 인터페이스(SPI) 기능을 가진 장치에 있어서,
    제 1 노드 트랜시버로서, 상기 제 1 노드 트랜시버는 제 2 노드 트랜시버로부터 2-와이어 버스의 두 개의 와이어들을 통해 송신된 신호를 수신하기 위해 트랜시버 회로를 포함하는, 상기 제 1 노드 트랜시버를 포함하며,
    상기 제 2 노드 트랜시버는 상기 제 2 노드 트랜시버가 SPI 호스트와 인터페이스하도록 허용하기 위해 SPI 회로를 포함하며, 상기 제 1 노드 트랜시버는 상기 SPI 호스트로부터 및 상기 2-와이어 버스를 통해 송신된 SPI 명령들에 응답하여 SPI 슬레이브로서 동작하기 위한 것인, 장치.
  20. 직렬 주변장치 인터페이스(SPI) 기능을 가진 장치에 있어서,
    제 1 노드 트랜시버로서, 상기 제 1 노드 트랜시버는 제 2 노드 트랜시버로부터 2-와이어 버스의 두 개의 와이어들을 통해 송신된 신호를 수신하기 위해 트랜시버 회로를 포함하는, 상기 제 1 노드 트랜시버를 포함하며,
    상기 제 1 노드 트랜시버는 상기 제 1 노드 트랜시버가 SPI 슬레이브와 인터페이스하도록 허용하기 위해 제 1 SPI 회로를 포함하고, 상기 제 2 노드 트랜시버는 상기 제 2 노드 트랜시버가 SPI 호스트와 인터페이스하도록 허용하기 위해 제 2 SPI 회로를 포함하며, 상기 SPI 슬레이브는 상기 SPI 호스트로부터 상기 2-와이어 버스를 통해 송신된 SPI 명령들에 응답하기 위한 것인, 장치.
KR1020200052734A 2019-05-08 2020-04-29 직렬 주변장치 인터페이스 기능을 가진 통신 시스템 KR20200130140A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/406,329 2019-05-08
US16/406,329 US10884972B2 (en) 2019-05-08 2019-05-08 Communication systems with serial peripheral interface functionality

Publications (1)

Publication Number Publication Date
KR20200130140A true KR20200130140A (ko) 2020-11-18

Family

ID=72943705

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200052734A KR20200130140A (ko) 2019-05-08 2020-04-29 직렬 주변장치 인터페이스 기능을 가진 통신 시스템

Country Status (3)

Country Link
US (2) US10884972B2 (ko)
KR (1) KR20200130140A (ko)
DE (1) DE102020110675A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10884972B2 (en) * 2019-05-08 2021-01-05 Analog Devices, Inc. Communication systems with serial peripheral interface functionality
US11411607B2 (en) 2020-01-07 2022-08-09 Analog Devices, Inc. Audio and lighting control via a communication bus
GB2594052A (en) * 2020-04-07 2021-10-20 Landa Labs 2012 Ltd Apparatus for coating a surface with particles
US11860730B2 (en) * 2021-12-06 2024-01-02 Waymo Llc Low-overhead, bidirectional error checking for a serial peripheral interface
US11888498B2 (en) 2022-01-18 2024-01-30 Analog Devices International Unlimited Company Elimination of probability of bit errors in successive approximation register (SAR) analog-to-digital converter (ADC) logic

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1037458A (en) 1910-01-11 1912-09-03 James F Durbin Railway-car coupling.
US1064994A (en) 1911-03-11 1913-06-17 James Rose Umbrella-rib.
US5819051A (en) 1995-12-29 1998-10-06 Compaq Computer Corporation Low speed serial bus protocol and circuitry
US7315551B2 (en) 2002-03-15 2008-01-01 Lockheed Martin Corporation Synchronous low voltage differential I/O buss
US7158596B2 (en) 2002-08-14 2007-01-02 Standard Microsystems Corp. Communication system and method for sending and receiving data at a higher or lower sample rate than a network frame rate using a phase locked loop
US7272202B2 (en) 2002-08-14 2007-09-18 Standard Microsystems Corp. Communication system and method for generating slave clocks and sample clocks at the source and destination ports of a synchronous network using the network frame rate
US8667194B2 (en) 2003-12-15 2014-03-04 Finisar Corporation Two-wire interface in which a master component monitors the data line during the preamble generation phase for synchronization with one or more slave components
US7395362B2 (en) 2006-02-03 2008-07-01 Standard Microsystems Corporation Method for a slave device to convey an interrupt and interrupt source information to a master device
JP2007215102A (ja) 2006-02-13 2007-08-23 Denso Corp 通信装置
JP4918866B2 (ja) 2006-03-13 2012-04-18 ミツミ電機株式会社 通信装置、半導体集積回路装置及び通信システム
US7707437B2 (en) 2006-05-03 2010-04-27 Standard Microsystems Corporation Method, system, and apparatus for a plurality of slave devices determining whether to adjust their power state based on broadcasted power state data
US7966379B2 (en) 2006-05-05 2011-06-21 Standard Microsystems Corporation In-band event polling
US7657680B2 (en) * 2006-06-21 2010-02-02 Finisar Corporation Multiple bus interface control using a single controller
US7802036B2 (en) 2007-02-06 2010-09-21 Seiko Epson Corporation Serial communication system using an I2C bus as a serial bus
US8806083B2 (en) 2007-05-15 2014-08-12 Texas Instruments Incorporated Identification address configuration circuit and method without use of dedicated address pins
AU2008221607A1 (en) 2007-09-25 2009-04-09 Acei Ab A gaming network
US8700830B2 (en) 2007-11-20 2014-04-15 Spansion Llc Memory buffering system that improves read/write performance and provides low latency for mobile systems
US8060681B2 (en) * 2007-11-27 2011-11-15 Microsoft Corporation Interface protocol and API for a wireless transceiver
FR2927308B1 (fr) 2008-02-08 2010-10-22 Airbus France Systeme distribue de commande de vol.
US8185759B1 (en) 2008-11-06 2012-05-22 Smsc Holdings S.A.R.L. Methods and systems for interfacing bus powered devices with host devices providing limited power levels
US8156274B2 (en) 2009-02-02 2012-04-10 Standard Microsystems Corporation Direct slave-to-slave data transfer on a master-slave bus
US8615091B2 (en) 2010-09-23 2013-12-24 Bose Corporation System for accomplishing bi-directional audio data and control communications
EP2442587A1 (en) 2010-10-14 2012-04-18 Harman Becker Automotive Systems GmbH Microphone link system
JP5655562B2 (ja) 2010-12-28 2015-01-21 ソニー株式会社 電子機器、電子機器の制御方法、送信装置および受信装置
US10311010B2 (en) 2011-10-05 2019-06-04 Analog Devices, Inc. Two-wire communication systems and applications
US9448959B2 (en) 2012-10-05 2016-09-20 Analog Devices, Inc. Two-wire communication protocol engine
CN103946829B (zh) 2011-10-05 2016-09-21 美国亚德诺半导体公司 用于高速数据和电力分配的双线通信系统
US8987933B2 (en) 2012-04-30 2015-03-24 Broadcom Corporation Power over one-pair Ethernet approach
FR2996322A1 (fr) 2012-10-02 2014-04-04 St Microelectronics Rousset Procede de gestion du fonctionnement d'un circuit connecte sur un bus a deux fils, en particulier un bus i²c, et circuit correspondant
US9772665B2 (en) 2012-10-05 2017-09-26 Analog Devices, Inc. Power switching in a two-wire conductor system
US8873659B2 (en) 2012-10-19 2014-10-28 Broadcom Corporation Reduced pair Ethernet transmission system
US9858235B2 (en) * 2012-11-15 2018-01-02 Advanced Micro Devices, Inc. Emulated legacy bus operation over a bit-serial bus
DE102013001385A1 (de) 2013-01-26 2014-07-31 Audi Ag Kraftfahrzeug und Mikrofon für eine Mikrofonanordnung in dem Kraftfahrzeug
US9229889B2 (en) 2013-03-13 2016-01-05 Atieva, Inc. Dual voltage communication bus
US9514086B2 (en) 2013-03-13 2016-12-06 Atieva, Inc. Configuration switch for a broadcast bus
US9946675B2 (en) 2013-03-13 2018-04-17 Atieva, Inc. Fault-tolerant loop for a communication bus
US9225556B2 (en) 2013-06-07 2015-12-29 Broadcom Corporation Multiplexed packet local area networking using an Ethernet physical layer device
US9197226B2 (en) 2013-07-08 2015-11-24 Analog Devices, Inc. Digital phase detector
US9059724B2 (en) 2013-07-08 2015-06-16 Analog Devices, Inc. Differential decoder
US20150032599A1 (en) 2013-07-23 2015-01-29 Xsolla ( USA) Inc. Computer-based method for sorting payment systems
CN105453169B (zh) 2013-08-12 2020-03-17 美国亚德诺半导体公司 噪声消除的系统和方法
US9990316B2 (en) * 2015-09-21 2018-06-05 Qualcomm Incorporated Enhanced serial peripheral interface
US10872049B2 (en) 2016-01-29 2020-12-22 Analog Devices, Inc. GPIO-to-GPIO communication on a multi-node daisy-chained network
US10250376B2 (en) 2016-01-29 2019-04-02 Analog Devices, Inc. Clock sustain in the absence of a reference clock in a communication system
US10397021B2 (en) * 2016-01-29 2019-08-27 Analog Devices, Inc. Synchronous slave-to-slave communications
US10031882B2 (en) * 2016-03-31 2018-07-24 Intel Corporation Sensor bus communication system
US9851938B2 (en) 2016-04-26 2017-12-26 Analog Devices, Inc. Microphone arrays and communication systems for directional reception
US10120434B2 (en) * 2016-05-13 2018-11-06 Infineon Technologies Ag Semiconductor device chip package with electronic switching using dedicated ground pin coupled to a virtual ground node
KR20220101776A (ko) * 2016-08-25 2022-07-19 아나로그 디바이시즈 인코포레이티드 원격 버스 활성화를 위한 시스템들 및 기술들
US10380061B2 (en) * 2017-12-26 2019-08-13 The United States Of America As Represented By The Administrator Of Nasa Dual I2C and SPI slave for FPGA and ASIC implementation
US10856199B2 (en) * 2019-01-04 2020-12-01 Analog Devices, Inc. Communication systems with auxiliary master and auxiliary call support functionality
US10884972B2 (en) * 2019-05-08 2021-01-05 Analog Devices, Inc. Communication systems with serial peripheral interface functionality

Also Published As

Publication number Publication date
US10884972B2 (en) 2021-01-05
US20210157766A1 (en) 2021-05-27
US20200356521A1 (en) 2020-11-12
DE102020110675A1 (de) 2020-11-12
US11409690B2 (en) 2022-08-09

Similar Documents

Publication Publication Date Title
KR102535076B1 (ko) 원격 버스 활성화를 위한 시스템들 및 기술들
US10649945B1 (en) Non-native digital interface support over a two-wire communication bus
US11409690B2 (en) Communication systems with serial peripheral interface functionality
US9946679B2 (en) Distributed audio coordination over a two-wire communication bus
US10856199B2 (en) Communication systems with auxiliary master and auxiliary call support functionality
US9851938B2 (en) Microphone arrays and communication systems for directional reception
US20170222829A1 (en) Synchronous slave-to-slave communications
US10852799B2 (en) Adaptive use of multiple power supplies in communication systems
US10374583B1 (en) Dynamic hysteresis circuit
US10931476B2 (en) Content protection over synchronous data networks
US11411607B2 (en) Audio and lighting control via a communication bus
US20230396504A1 (en) Node discovery and configuration in a daisy-chained network
US20230344673A1 (en) Asynchronous data networking over a network bus
CN109257260B (zh) 通信系统中多个电源的适应性应用
US20240004825A1 (en) Serial daisy-chained bus power for serial daisy-chained communication system
US20240004446A1 (en) Synchronous audio communication and bus power over multi-pair cables and connectors
JP2023549799A (ja) マイクロフォンアレイ較正のためのシステム及び技法