KR20160147842A - 센서 글로벌 버스 - Google Patents
센서 글로벌 버스 Download PDFInfo
- Publication number
- KR20160147842A KR20160147842A KR1020167032019A KR20167032019A KR20160147842A KR 20160147842 A KR20160147842 A KR 20160147842A KR 1020167032019 A KR1020167032019 A KR 1020167032019A KR 20167032019 A KR20167032019 A KR 20167032019A KR 20160147842 A KR20160147842 A KR 20160147842A
- Authority
- KR
- South Korea
- Prior art keywords
- symbols
- serial bus
- mode
- protocol
- devices
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4295—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0016—Inter-integrated circuit (I2C)
-
- Y02B60/1228—
-
- Y02B60/1235—
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Communication Control (AREA)
- Small-Scale Networks (AREA)
- Arrangements For Transmission Of Measured Signals (AREA)
Abstract
센서 버스의 개선된 성능을 제공하는 시스템들, 방법들, 및 장치들이 설명된다. 제 1 커맨드는 시리얼 버스로 하여금 제 2 모드에서 동작되게 하도록 제 1 프로토콜에 따라 제 1 모드에서 동작되는 시리얼 버스에 커플링되는 디바이스들에 송신된다. 시리얼 버스가 제 2 모드에서 동작되는 동안 제 2 프로토콜에 따라 통신한 후, 제 2 커맨드는 제 2 모드를 만료하도록 제 1 프로토콜에 따라 복수의 디바이스들에 송신된다. 제 2 모드에서, 시리얼 버스 상에 송신된 심볼들의 시퀀스에 삽입된 엑스트라 심볼들은 시리얼 버스 상에서 의도되지 않은 시그널링 상태의 발생을 방지한다. 제 2 모드에서 시리얼 버스의 와이어 상에서 송신되는 펄스들은 제 2 디바이스의 필터가 제한된-지속기간 펄스들을 억제하도록 제한되는 지속기간들을 가질 수도 있다.
Description
관련 출원들의 상호 참조
본 출원은 미국 특허청에 2014년 4월 28일자로 출원된 미국 특허 가출원 번호 제61/985,276호, 및 미국 특허청에 2015년 4월 23일자로 출원된 미국 특허 비가출원 번호 제14/694,618호의 이익을 우선권으로 주장하며, 그 전체 내용은 참조로서 본원에 통합된다.
기술 분야
본 개시물은 일반적으로 호스트 프로세서와 주변 디바이스 사이의 인터페이스에 관한 것이고, 보다 구체적으로, 센서들을 접속하는 인터페이스에 관한 것이다.
모바일 디바이스들, 이를 테면, 셀룰라 폰들의 제조자들은 상이한 제조자들을 포함한 여러 소스들로부터 모바일 디바이스들의 컴포넌트들을 구할 수 있다. 예를 들어, 모바일 컴퓨팅 디바이스에서의 애플리케이션 프로세서는 제 1 제조자로부터 구할 수도 있는 한편, 모바일 컴퓨팅 디바이스에 의해 채용되는 센서들은 하나 이상의 다른 제조자들로부터 구할 수도 있다. 여러 표준들 기반 또는 주변 인터페이스들은 모바일 디바이스들에서의 집적 회로 (IC) 디바이스들과 다른 장치를 상호접속하기 위하여 정의되었고, 이들 인터페이스들은 특정 애플리케이션 또는 여러 애플리케이션에 통상 디렉팅된다. 예를 들어, 셀룰라 전화기들은 MIPI (Mobile Industry Processor Interface Alliance) 에 의해 특정되는 카메라 시리얼 인터페이스 표준에 순응하거나 또는 이 표준에 호환가능한 통신 인터페이스를 이용할 수도 있다.
특정 애플리케이션에 대하여 최적화되는 통상의 인터페이스들은 다른 애플리케이션들에 이용하는데 적합하지 않을 수도 있다. 예를 들어, MIPI 표준들은 마스터 및 하나 이상의 슬레이브들을 접속하기 위한 버스로서 구성되는 2-와이어, 양방향성, 하프듀플렉스, 시리얼 인터페이스를 이용하는 CCI (camera control interface) 를 정의한다. CCI 는 디스플레이들과 연관된 데이터 통신 요건들을 핸들링하도록 최적화되고, 이 요건들은 통상 여러 상이한 유형들의 디바이스에 널리 이용되고 있는 I2C (Inter-Integrated Circuit) 의 능력들을 넘어선다. CCI 시그널링 및 프로토콜들은 CCI 프로토콜들을 이용하여 통신하기 위해 I2C 버스를 채용하는 디바이스들과 호환가능할 수도 있다. 즉, CCI 프로토콜은 I2C SCL (Serial Clock) 및 SDA (Serial Data) 라인들을 이용하고, CCI 디바이스들 및 I2C 디바이스들은 동일한 버스 상에 배치될 수 있어, 둘 이상의 CCI 디바이스들이 CCI 프로토콜들을 이용하여 통신할 수도 있는 한편, I2C 버스를 수반하는 임의의 통신이 I2C 프로토콜들을 이용한다.
CCI 의 이후 버전들은 보다 고속의 시그널링 레이트들을 지원하기 위해 수정된 프로토콜들을 이용하여 보다 높은 스루풋들을 제공할 수 있다. 일 예에서, CCIe (CCI extension) 버스는 CCIe 버스 동작들과 호환가능한 디바이스들에 보다 높은 데이터 레이트들을 제공하는데 이용될 수도 있다. 이러한 디바이스들은 CCIe 디바이스들로서 지칭될 수도 있으며, CCIe 디바이스들은 통상의 CCI 버스의 SCL 라인 및 SDA 라인 양쪽 모두 상에서 송신되는 심볼들로서 데이터를 인코딩하는 것에 의해 서로 통신할 때 더 높은 데이터 레이트들을 얻을 수 있다. CCIe 디바이스들 및 I2C 디바이스들은 동일한 CCIe 버스 상에 공존할 수도 있어, 복수의 디바이스들이 CCIe 인코딩을 이용하여 데이터를 교환할 수도 있는 한편, 레거시 I2C 디바이스들을 수반하는 데이터 교환들은 I2C 시그널링 규정들에 따라 송신될 수도 있다.
상이한 유형들의 주변기기들 또는 협업 디바이스들을 프로세서에 접속하는 버스로서 구성되는 시리얼 인터페이스들에 최적화된 통신들을 제공하는 계속되는 요구가 존재한다.
본원에 개시된 실시형태들은 상이한 프로토콜들 및/또는 시그널링 방식들을 이용하여 시리얼 버스를 통하여 통신하도록 구성되는 디바이스들을 커플링하는 시리얼 버스의 성능을 향상시킬 수 있는 시스템들, 방법들 및 장치들을 제공한다. 본 개시물의 일 양태에서, 방법, 컴퓨터 판독가능 저장 디바이스, 및 장치가 제공된다.
본 개시물의 일 양태에서, 데이터 통신들의 방법은, 시리얼 버스가 제 1 동작 모드에서 동작되는 동안 시리얼 버스에 커플링되는 복수의 디바이스들에 제 1 커맨드를 송신하는 단계로서, 제 1 커맨드는 시리얼 버스로 하여금 제 2 동작 모드에서 동작되게 하도록 제 1 프로토콜에 따라 송신되는, 제 1 커맨드를 송신하는 단계, 시리얼 버스가 제 2 동작 모드에서 동작되는 동안 제 2 프로토콜에 따라 복수의 디바이스들 중 제 1 디바이스와 통신하는 단계, 및 제 2 동작 모드를 만료하도록 제 1 프로토콜에 따라 복수의 디바이스들에 제 2 커맨드를 송신하는 단계를 포함한다. 제 1 디바이스와 통신하는 단계는, 심볼들의 시퀀스에서의 데이터를 인코딩하는 단계로서, 클록 정보는 심볼들의 시퀀스에서 심볼들의 연속하는 페어들 사이의 트랜지션들에서 인코딩되는, 데이터를 인코딩하는 단계; 엑스트라 심볼이 없는 2 개의 심볼들의 송신이 시리얼 버스에 대한 원하지 않는 시그널링 조건을 야기하고 그리고 엑스트라 심볼이 있는 2 개의 심볼들의 송신이 시리얼 버스에 대한 원하지 않는 시그널링 조건을 방지할 때 심볼들의 시퀀스들에서 2 개의 심볼들 사이에 엑스트라 심볼을 삽입하는 단계; 및 시리얼 버스 상에서 심볼들의 시퀀스를 송신하는 단계를 포함할 수도 있다.
본 개시물의 일 양태에서, 데이터 통신을 위한 장치는 시리얼 버스에 장치를 커플링하는 트랜시버 및 프로세싱 회로를 포함한다. 프로세싱 회로는 시리얼 버스가 제 1 동작 모드에서 동작되는 동안 시리얼 버스에 커플링된 복수의 디바이스들에 제 1 커맨드를 송신하도록 구성될 수도 있다. 제 1 커맨드는 시리얼 모드가 제 2 동작 모드에서 동작되게 하도록 제 1 프로토콜에 따라 송신될 수도 있다. 프로세싱 회로는 제 2 프로토콜에 따라 심볼들의 시퀀스에서의 데이터를 인코딩하도록 구성될 수도 있으며, 클록 정보가 심볼들의 시퀀스에서 심볼들의 연속하는 페어들 사이의 트랜지션들에서 인코딩된다. 프로세싱 회로는 엑스트라 심볼이 없는 2 개의 심볼들의 송신이 시리얼 버스에 대한 원하지 않는 시그널링 조건을 야기하고 그리고 엑스트라 심볼이 있는 2 개의 심볼들의 송신이 시리얼 버스에 대한 원하지 않는 시그널링 조건을 방지할 때, 심볼들의 시퀀스들에서 2 개의 심볼들 사이에 엑스트라 심볼을 삽입하도록 구성될 수도 있다. 프로세싱 회로는 제 2 프로토콜에 따라 시리얼 버스에 대한 심볼들의 시퀀스를 송신하고, 제 2 동작 모드를 만료하도록 제 1 프로토콜에 따라 복수의 디바이스들에 제 2 커맨드를 송신하도록 구성될 수도 있다.
본 개시물의 일 양태에서, 데이터 통신 인터페이스에서 수행되는 방법은, 시리얼 버스가 제 1 동작 모드에서 동작되는 동안 시리얼 버스에 커플링되는 복수의 디바이스들에 제 1 커맨드를 송신하는 단계로서, 제 1 커맨드는 시리얼 버스로 하여금 제 2 동작 모드에서 동작되게 하도록 제 1 프로토콜에 따라 송신되는, 제 1 커맨드를 송신하는 단계, 시리얼 버스가 제 2 동작 모드에서 동작되는 동안 제 2 프로토콜에 따라 복수의 디바이스들 중 제 1 디바이스와 통신하는 단계, 및 제 2 동작 모드를 만료하도록 제 1 프로토콜에 따라 복수의 디바이스들에 제 2 커맨드를 송신하는 단계를 포함한다. 제 2 동작 모드에서 시리얼 버스의 제 1 와이어 상에서 송신되는 제한된-지속기간 펄스들은 복수의 디바이스들 중 제 2 디바이스의 필터로 하여금 제한된-지속기간 펄스들을 억제하게 하는 지속기간을 가질 수도 있다.
본 개시물의 일 양태에서, 장치는, 시리얼 버스가 제 1 동작 모드에서 동작되는 동안 시리얼 버스에 커플링되는 복수의 디바이스들에 제 1 커맨드를 송신하는 수단으로서, 제 1 커맨드는 시리얼 버스로 하여금 제 2 동작 모드에서 동작되게 하도록 제 1 프로토콜에 따라 송신되는, 제 1 커맨드를 송신하는 수단, 시리얼 버스가 제 2 동작 모드에서 동작되는 동안 제 2 프로토콜에 따라 복수의 디바이스들 중 제 1 디바이스와 통신하는 수단, 및 제 2 동작 모드를 만료하도록 제 1 프로토콜에 따라 복수의 디바이스들에 제 2 커맨드를 송신하는 수단을 포함한다. 제 2 동작 모드에서 시리얼 버스의 제 1 와이어 상에서 송신되는 제한된-지속기간 펄스들은 복수의 디바이스들 중 제 2 디바이스의 필터로 하여금 제한된-지속기간 펄스들을 억제하게 하는 지속기간을 가질 수도 있다.
도 1 은 복수의 가용 표준들 중 하나에 따라 선택적으로 동작하는 IC 디바이들 사이의 데이터 링크를 채택하는 장치를 나타낸다.
도 2 는 IC 디바이스들 사이의 데이터 링크를 채택하는 장치에 대한 시스템 아키텍쳐를 예시한다.
도 3 은 본원에 개시된 특정 양태들에 따른 송신기 및 수신기를 예시한다.
도 4 는 본원에 개시된 특정 양태들에 따른 인코딩 방식의 제 1 예를 예시한다.
도 5 는 I2C 1 바이트 기록 데이터 동작의 타이밍도를 예시한다.
도 6 은 공통 시리얼 버스에 접속된 I2C 디바이스들 및 센서 글로벌 버스 (SGbus) 디바이스들의 구성을 예시한다.
도 7 은 본원에 개시된 특정 양태들에 따라 시리얼 버스 상에서 이용될 수 있는 다수의 프로토콜들 사이에서 및/또는 시리얼 버스의 동작 모드들 사이에서 트랜지션하기 위한 일반화된 방식을 예시한다.
도 8 은 SGbus 시리얼 인터페이스의 개시 및 만료를 예시한다.
도 9 는 I2C 프로토콜들에 따라 송신되는 다수의 프레임들과 연관된 타이밍을 예시하는 다이어그램이다.
도 10 은 의도되지 않은 START 및 STOP 조건들의 발생을 예시한다.
도 11 은 본원에 개시된 특정 양태들에 따라 공유 버스 상에서 데이터를 송신하기 위한 인코딩 방식의 제 2 예를 예시한다.
도 12 는 본원에 개시된 특정 양태들에 따른 SGbus 인코딩의 예들을 예시한다.
도 13 은 본원에 개시된 특정 양태들에 따른 SGbus 인코딩의 다른 예들을 예시한다.
도 14 는 은 본원에 개시된 특정 양태들에 따라 적응될 수도 있는 프로세싱 회로를 채용하는 장치의 일 예를 예시하는 블록도이다.
도 15 는 본원에 개시된 하나 이상의 양태들에 따라 SGbus 를 이용하여 통신하는 방법의 제 1 예의 흐름도이다.
도 16 은 본원에 개시된 특정 양태들에 따라 적응되는 프로세싱 회로를 채택하는 장치에 대한 하드웨어 구현의 제 1 예를 예시하는 다이어그램이다.
도 17 은 본원에 개시된 하나 이상의 양태들에 따라 SGbus 를 이용하여 통신하는 방법의 제 2 예의 흐름도이다.
도 18 은 본원에 개시된 특정 양태들에 따라 적응되는 프로세싱 회로를 채택하는 장치에 대한 하드웨어 구현의 제 2 예를 예시하는 다이어그램이다.
도 2 는 IC 디바이스들 사이의 데이터 링크를 채택하는 장치에 대한 시스템 아키텍쳐를 예시한다.
도 3 은 본원에 개시된 특정 양태들에 따른 송신기 및 수신기를 예시한다.
도 4 는 본원에 개시된 특정 양태들에 따른 인코딩 방식의 제 1 예를 예시한다.
도 5 는 I2C 1 바이트 기록 데이터 동작의 타이밍도를 예시한다.
도 6 은 공통 시리얼 버스에 접속된 I2C 디바이스들 및 센서 글로벌 버스 (SGbus) 디바이스들의 구성을 예시한다.
도 7 은 본원에 개시된 특정 양태들에 따라 시리얼 버스 상에서 이용될 수 있는 다수의 프로토콜들 사이에서 및/또는 시리얼 버스의 동작 모드들 사이에서 트랜지션하기 위한 일반화된 방식을 예시한다.
도 8 은 SGbus 시리얼 인터페이스의 개시 및 만료를 예시한다.
도 9 는 I2C 프로토콜들에 따라 송신되는 다수의 프레임들과 연관된 타이밍을 예시하는 다이어그램이다.
도 10 은 의도되지 않은 START 및 STOP 조건들의 발생을 예시한다.
도 11 은 본원에 개시된 특정 양태들에 따라 공유 버스 상에서 데이터를 송신하기 위한 인코딩 방식의 제 2 예를 예시한다.
도 12 는 본원에 개시된 특정 양태들에 따른 SGbus 인코딩의 예들을 예시한다.
도 13 은 본원에 개시된 특정 양태들에 따른 SGbus 인코딩의 다른 예들을 예시한다.
도 14 는 은 본원에 개시된 특정 양태들에 따라 적응될 수도 있는 프로세싱 회로를 채용하는 장치의 일 예를 예시하는 블록도이다.
도 15 는 본원에 개시된 하나 이상의 양태들에 따라 SGbus 를 이용하여 통신하는 방법의 제 1 예의 흐름도이다.
도 16 은 본원에 개시된 특정 양태들에 따라 적응되는 프로세싱 회로를 채택하는 장치에 대한 하드웨어 구현의 제 1 예를 예시하는 다이어그램이다.
도 17 은 본원에 개시된 하나 이상의 양태들에 따라 SGbus 를 이용하여 통신하는 방법의 제 2 예의 흐름도이다.
도 18 은 본원에 개시된 특정 양태들에 따라 적응되는 프로세싱 회로를 채택하는 장치에 대한 하드웨어 구현의 제 2 예를 예시하는 다이어그램이다.
첨부된 도면들과 연계하여 하기에 설명되는 상세한 설명은, 여러 구성들의 설명으로서 의도된 것이며 본원에서 설명되는 개념들이 실시될 수도 있는 구성들만을 나타내도록 의도된 것은 아니다. 상세한 설명은 여러 개념들의 철저한 이해를 제공하기 위한 목적으로 특정 세부사항들을 포함한다. 그러나, 이들 개념들이 이들 특정 세부사항들 없이 실시될 수도 있음이 당업자에게는 명백할 것이다. 몇몇 경우들에서, 이러한 개념들을 모호하게 하는 것을 방지하기 위해 공지의 구조들 및 컴포넌트들이 블록도의 형태로 도시된다.
이하, 통신 시스템들의 수 개의 양태들은 여러 장치들 및 방법들을 참조로 제시될 것이다. 이들 장치들 및 방법들은 다음의 상세한 설명에서 설명되며, 여러 블록들, 모듈들, 컴포넌트들, 회로들, 단계들, 프로세스들, 알고리즘들 등 (이하, 총괄하여 "엘리먼트들" 이라 지칭됨) 에 의해 첨부된 도면들에 예시된다. 이들 엘리먼트들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들의 조합을 이용하여 구현될 수도 있다. 이러한 엘리먼트들이 하드웨어 또는 소프트웨어로 구현되는지 여부는 특정 애플리케이션 및 전체 시스템에 부과되는 설계 제약들에 따라 달라진다.
본원에서 사용되는 바와 같이, 용어들 "컴포넌트", "모듈", "시스템" 등은 하드웨어, 펌웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 또는 실행 중인 소프트웨어와 같지만 이에 제한되지 않는 컴퓨터 관련 엔티티를 포함하도록 의도된다. 예를 들면, 컴포넌트는 프로세서 상에서 작동하는 프로세스, 프로세서, 오브젝트, 실행가능물, 실행 스레드, 프로그램, 및/또는 컴퓨터일 수도 있지만, 이들에 제한되는 것은 아니다. 예로서, 컴퓨팅 디바이스 상에서 작동하는 애플리케이션 및 컴퓨팅 디바이스 양자는 컴포넌트일 수 있다. 하나 이상의 컴포넌트들은 프로세스 및/또는 실행의 스레드 내에 상주할 수도 있고, 컴포넌트는 하나의 컴퓨터 및/또는 두 개 이상의 컴퓨터들 사이에 분산되어 로컬라이징될 수도 있다. 또한, 이들 컴포넌트들은 여러 데이터 구조들이 저장된 여러 컴퓨터 판독 가능한 매체로부터 실행될 수도 있다. 컴포넌트들은 하나 이상의 데이터 패킷들 (예를 들면, 로컬 시스템의 다른 컴포넌트, 분산 시스템 및/또는 인터넷과 같은 네트워크를 통해 신호를 통해 다른 시스템들과 상호작용하는 하나의 컴포넌트로부터의 데이터) 을 구비하는 신호에 따르는 것과 같이 로컬 및/또는 원격 프로세스들을 통해 통신할 수도 있다.
또한, 용어 "또는" 은 배타적 "또는" 이 아닌, 포괄적 "또는" 을 의미하도록 의도된다. 즉, 다르게 특정되지 않거나, 또는 문맥상 명백하지 않는 한, 구 "X는 A 또는 B를 활용한다"는 자연적인 포괄적 치환의 임의의 것을 의미하도록 의도된다. 즉, 구 "X는 A 또는 B를 활용한다"는 다음의 예들 중 임의의 것에 의해 충족된다: X는 A를 활용한다; X는 B를 활용한다; 또는 X는 A와 B 양자를 활용한다. 또한, 본 명세서 및 특허청구범위에서 사용된 것과 같은 관사 "a" 및 "an"은, 일반적으로, 다르게 특정되지 않거나 단수 형태를 가리키도록 문맥상 명백하지 않는 한, "하나 이상의"를 의미하도록 해석되어야 한다.
센서 글로벌 버스의 개요
본원에 설명된 광역 통신에 적용가능한 특정 양태들은 센서 글로벌 버스 (SGbus) 의 문맥에서 설명된다. SGbus 는 센서들 및 프로세싱 디바이스들을 커플링하는데 이용되는 2-와이어 버스 인터페이스로서 배치될 수도 있다. SGbus 의 특정 예들은 특정 레거시 I2C 디바이스가 SGbus 에 의해 이용된 동일한 와이어 페어를 통하여 통신할 수도 있는 범위로, 알려진 I2C 버스와 역방향 호환능력들을 제공한다. SGbus 사양들 및 프로토콜들을 이용하여 통신하는 디바이스들은 I2C 인터페이스를 포함한 다른 인터페이스들을 이용하여 제공될 수 있는 것보다 더 높은 성능, 스루풋, 신뢰성 및 견고성에서 유용할 수도 있다.
SGbus 는 저전력 인터페이스의 구현을 통하여 시스템 전력 요건들을 감소시킬 수 있고, 비트 전달 효율을 증가시킬 수 있다. SGbus 는 낮은 오버헤드 및 효율적인 버스 사용량과 연관된 하나 이상의 프로토콜들을 채용하며, SGbus 는 인터페이스가 액티브 상태에 있는 시간의 대응하는 낮은 백분율 및 고속 트랜잭션들을 실현할 수 있다. 비활성 상태 동안에, SGbus 는 통상적으로 작은 실리콘 풋프린트에 부분적으로 기여할 수도 있는 비교적 낮은 전력을 소모한다. SGbus 를 통하여 접속된 센서들의 세트는 예를 들어, 시스템 레벨에서의 복잡도들을 최소하도록 필요에 따라 또는 요구에 따라 국부적으로 구성되고 관리될 수도 있다.
시리얼 버스를 채용하는 디바이스들의 예들
본원에 개시된 특정 양태들은 장치, 이를 테면, 전화기, 모바일 컴퓨팅 디바이스, 웨어러블 컴퓨팅 디바이스, 가전제품, 자동차 전자기기, 항공 시스템들 등의 서브컴포넌트들을 포함할 수도 있는 전자 디바이스들 사이에 배치되는 통신 링크들에 적용가능할 수도 있다. 도 1 은 IC 디바이스들 사이의 통신 링크를 채택할 수도 있는 장치를 나타낸다. 일 예에서, 장치 (100) 는 무선 액세스 네트워크 (RAN), 코어 액세스 네트워크, 인터넷 및/또는 다른 네트워크와 RF (radio frequency) 트랜시버를 통하여 통신하는 무선 통신 디바이스를 포함할 수도 있다. 장치 (100) 는 프로세싱 회로 (102) 에 동작가능하게 커플링되는 통신 트랜시버 (106) 를 포함할 수도 있다. 프로세싱 회로 (102) 는 하나 이상의 IC 디바이스들, 이를 테면, 응용 주문형 IC (ASIC) (108) 를 포함할 수도 있다. ASIC (108) 은 하나 이상의 프로세싱 디바이스들, 논리 회로들 등을 포함할 수도 있다. 프로세싱 회로 (102) 는 프로세싱 회로 (102) 에 의해 실행가능할 수도 있는 명령들 및 데이터를 유지할 수도 있는 프로세서 판독가능 저장부, 이를 테면 메모리 (112) 를 포함하고/하거나 커플링될 수도 있다. 프로세싱 회로 (102) 는 무선 디바이스의 메모리 디바이스 (112) 와 같은 저장 매체 내에 상주하는 소프트웨어 모듈의 실행을 실현하거나 지원하는 애플리케이션 프로그래밍 인터페이스 (API)(110) 계층을 통하여 및/또는 오퍼레이팅 시스템에 의해 제어될 수도 있다. 메모리 디바이스 (112) 는 ROM (read-only memory) 또는 RAM (random-access memory), EEPROM (electrically erasable programmable read-only memory), 플래시 카드들, 또는 프로세싱 시스템 및 컴퓨팅 플랫폼들에 이용될 수 있는 임의의 메모리 디바이스를 포함할 수도 있다. 프로세싱 회로 (102) 는 장치 (100) 를 구성하고 동작시키는데 사용된 동작 파라미터들 및 다른 정보를 유지할 수 있는 로컬 데이터베이스 (114) 를 포함하거나 로컬 데이터베이스 (114) 에 액세스할 수도 있다. 로컬 데이터베이스 (114) 는 데이터베이스 모듈, 플래시 메모리, 자기 매체, EEPROM, 광학 매체, 테이프, 소프트 또는 하드 디스크, 등등 중 하나 이상을 사용하여 구현될 수도 있다. 프로세싱 회로는 또한, 다른 컴포넌트들 중에서 안테나 (122), 디스플레이 (124), 오퍼레이터 제어부들, 예컨대 버튼 (128) 및 키패드 (126) 와 같은 외부 디바이스들에 동작가능하게 커플링될 수도 있다.
도 2 는 통신 버스에 접속된 장치 (200) 의 특정 양태들을 예시하는 블록 개략도이고, 여기에서 장치는 무선 모바일 디바이스, 모바일 전화기, 모바일 컴퓨팅 시스템, 무선 전화기, 노트북 컴퓨터, 테블릿 컴퓨팅 디바이스, 매체 플레이어, 게이밍 디바이스, 개인 휴대 정보 단말기 (PDA), 또는 다른 핸드헬드 디바이스, 노트북, 노트북 컴퓨터, 텔레비전, 엔터테인먼트 디바이스, 웨어러블 디바이스 등 중 하나 이상에서 구현될 수도 있다. 장치 (200) 는 시리얼 버스 (230) 를 이용하여 통신하는 다수의 디바이스들 (202, 220 및 222a-222n) 을 포함할 수도 있다. 시리얼 버스 (230) 는 시리얼 버스 (230) 에 의해 지원되는 강화된 피쳐들에 대하여 구성되는 디바이스들에 대한 통상적인 I2C 버스의 능력들을 확장할 수 있다. 예를 들어, 시리얼 버스 (230) 는 I2C 버스보다 더 높은 비트 레이트를 지원할 수도 있다.
도 2 에 예시된 예에서, 디바이스 (202) 는 시리얼 버스 (230) 상의 슬레이브로서 동작하도록 구성될 수도 있다. 디바이스 (202) 는 하나 이상의 일반 센서들, 고속 센서들, 지문 센서들, 이미지 센서들 (예를 들어, 카메라들), 터치스크린 센서들 등을 포함하고/하거나 관리하는 센서 기능부 (204) 를 제공하도록 적응될 수도 있다. 또한, 디바이스 (202) 는 구성 레지스터들 또는 다른 저장부 (206), 제어 로직 (212), 트랜시버 (210) 및 라인 드라이버들/수신기들 (214a 및 214b) 을 포함할 수도 있다. 제어 로직 (212) 은 프로세싱 회로, 이를 테면, 상태 머신, 시퀀서, 신호 프로세서 또는 범용 프로세서를 포함할 수도 있다. 트랜시버 (210) 는 타이밍, 로직, 및 저장 회로들 및/또는 디바이스들을 포함한, 수신기 (210a), 송신기 (210c) 및 공통 회로들 (210b) 을 포함할 수도 있다. 일 예에서, 송신기 (210c) 는 클록 생성 회로 (208) 에 의해 제공되는 타이밍에 기초하여 데이터를 인코딩하고 송신한다.
도 3 은 본원에 개시된 특정 양태들에 따라 구성되는 송신기 (300) 및 수신기 (320) 의 일 예를 예시하는 블록도이다. SGbus 동작들에서, 송신기 (300) 는 입력 데이터 (310) 를, SCL (216) 및 SDA (218) 신호 와이어 상에서 송신될 심볼들에서 인코딩되는 3진수 (베이스-3) 넘버들로 트랜스코딩할 수도 있다. 예시된 예에서, 입력 데이터 (310) 의 각각의 데이터 엘리먼트 (또한 데이터 워드로도 지칭된다) 는 미리 정해진 비트들의 수, 이를 테면, 8, 12, 16, 19 또는 20 비트들을 가질 수도 있다. 트랜스코더 (302) 는 입력 데이터 (310) 를 수신하고, 각각의 데이터 엘리먼트에 대한 단일 디지트 3진수들 (312) 의 시퀀스를 생성할 수도 있다. 일부 경우들에서, 단일 디지트 3진수들 (312) 의 시퀀스는 다중 디지트 3진수로서 표현될 수도 있다. 단일 디지트 3진수는 2 비트들에서 인코딩될 수도 있고, 단일 디지트 3진수들 (312) 의 각각의 시퀀스에서 12 디지트들이 존재할 수도 있다. 인코더, 이를 테면, 3진수 투 심볼들 컨버터 (304) 는 라인 드라이버들 (306) 의 페어에 제공되는 2-비트 심볼들 (314) 의 스트림을 생성한다. 예시된 예에서, 라인 드라이버들 (306) 은 SCL (216) 및 SDA (218) 신호 와이어들을 구동시키는 오픈 드레인 출력 트랜지스터들 (308) 을 포함한다. 특정 예들에서, 라인 드라이버들 (306) 은 SCL (216) 및 SDA (218) 신호 와이어들을 구동시키는 푸시 풀 드라이버들을 포함하거나 또는 이에 커플링될 수도 있다. 3진수-투-심볼들 컨버터 (304) 에 의해 생성되는 2-비트 심볼들 (314) 의 출력 스트림은 연속하는 심볼들 (314) 의 각각의 페어 사이에서 SCL (216) 및 SDA (218) 신호 와이어들 중 적어도 하나의 시그널링 상태에서의 트랜지션을 야기한다. 이들 트랜지션들은 어떠한 연속하는 심볼들의 페어도 2 개의 동일한 심볼들을 포함하지 않는 것을 보장하는 것에 의해 제공된다. 적어도 하나의 와이어 (216 및/또는 218) 에서의 시그널링 상태에서의 트랜지션의 이용가능성은 수신기 (320) 가 데이터 심볼들 (314) 의 스트림으로부터 수신 클록 (338) 을 추출하는 것을 허용한다.
SGbus 인터페이스에서, 수신기 (320) 는 클록 및 데이터 복구 (CDR) 회로 (328) 를 포함하거나 또는 이 회로와 협업할 수도 있다. 수신기 (320) 는 미가공 2-비트 심볼들 (336) 의 스트림을 CDR 회로 (328) 에 제공하는 라인 인터페이스 회로 (326) 를 포함할 수도 있다. CDR 회로 (328) 는 미가공 심볼들 (336) 로부터 수신 클록 (338) 을 추출하고, 2 비트 심볼들 (334) 의 스트림 및 수신 클록 (338) 을 수신기 (320) 의 다른 회로들 (324 및 322) 에 제공한다. 일부 예들에서, CDR 회로 (328) 는 다중 클록들을 생성할 수도 있다. 디코더, 이를 테면, 심볼-투-3진수 컨버터 (324) 는 수신 클록 (338) 을 이용하여, 심볼들 (334) 의 스트림을 12 개의 3진수들 (332) 의 시퀀스들로 디코딩할 수도 있다. 3진수들 (332) 은 2 비트들을 이용하여 인코딩될 수도 있다. 그 후, 트랜스코더 (322) 는 12 개의 3진수들 (332) 의 각각의 시퀀스를 8, 12, 16, 19 또는 20 비트 출력 데이터 엘리먼트들 (330) 로 변환할 수도 있다.
인코딩된 클록에 의한 트랜지션 인코딩 방식의 예
도 4 는 시리얼 버스 (230) 상의 송신을 위하여 임베딩된 클록과 함께 심볼들 (314) 의 시퀀스를 생성하기 위해 3진수-투-심볼들 컨버터 (304) 에 의해 이용될 수도 있는 인코딩 방식 (400) 을 예시하는 도면이다. 인코딩 방식 (400) 은 시리얼 버스 (230) 로부터 수신되는 심볼들로부터 3진수 트랜지션 넘버들을 추출하기 위해 수신기 (320) 의 심볼-투-3진수 컨버터 (324) 에 의해 또한 이용될 수도 있다. SGbus 인코딩 방식 (400) 에서, 시리얼 버스 (230) 의 2 개의 와이어들은 4 개의 기본 심볼들 S: {0, 1, 2, 3} 의 정의를 허용한다. 심볼들 (314, 334) 의 시퀀스에서의 임의의 2 개의 연속하는 심볼들은 시리얼 버스 (230) 상의 상이한 시그널링 상태들을 생성하며, 심볼 시퀀스들 0,0; 1,1; 2,2; 및 3,3 은 연속하는 심볼들의 무효 조합들이다. 따라서, 단지 3 개의 유효 심볼 트랜지션들만이 각각의 심볼 바운더리에서 이용가능하며, 여기에서, 심볼 바운더리는 송신 클록에 의해 결정되고, 제 1 심볼 (이전 심볼 (Ps))(422) 이 만료하고 제 2 심볼 (현재 심볼 (Cs))(424) 이 시작하는 포인트를 나타낸다.
본원에 개시된 특정 양태들에 따르면, 3 개의 가능한 트랜지션들에는, 각각의 Ps 심볼 (422) 에 대하여 트랜지지션 넘버 (T)(426) 가 배정된다. T (426) 의 값은 3진수에 의해 표현될 수 있다. 일 예에서, 트랜지션 넘버 (426) 의 값은 인코딩 방식의 심볼 오더링 서클 (402) 을 배정하는 것에 의해 결정된다. 심볼 오더링 서클 (402) 은 4 개의 가능한 심볼들에 대한 서클 (402) 상에 로케이션들 (404a-404d) 을 그리고 로케이션들 (404a-404d) 사이에 회전 방향 (406) 을 할당한다. 원하는 예에서, 회전 방향 (406) 은 시계방향이다. 트랜지션 넘버 (426) 는 유효한 현재 심볼들 (424) 과 직전 심볼 (422) 사이의 분리를 표현한다. 분리는 이전 심볼 (422) 로부터 현재 심볼 (Cs)(424) 에 도달하는데 요구되는 심볼 오더링 서클 (402) 상의 회전 방향 (406) 을 따르는 스텝 수로서 정의될 수도 있다. 스텝들의 수는 단일 디지트 베이스-3 넘버로서 표현될 수도 있다. 심볼들 사이의 3-스텝 차이는 0base-3 으로서 표현될 수 있음을 이해할 것이다. 도 4 에서의 테이블 420 은 이 접근방식을 채용하는 인코딩 방식을 요약한다.
송신기 (300) 에서, 테이블 420 은 송신될 현재 심볼 (424), 이전에 생성된 심볼 (422) 의 주어진 정보, 및 트랜지션 넘버 (426) 로서 이용되는 입력 3진수를 룩업하는데 이용된다. 수신기 (320) 에서, 테이블 420 은 이전에 수신된 심볼 (422) 와 현재 수신된 심볼 (424) 사이의 트랜지션을 표현하는 트랜지션 넘버 (426) 를 결정하기 위해 룩업으로서 이용될 수도 있다. 트랜지션 넘버 (426) 는 3진수로서 출력될 수도 있다.
시리얼 버스 상의 공존
복수의 SGbus 디바이스들은 하나 이상의 레거시 I2C 디바이스들과 동일한 버스 (230) 상에서 공존할 수도 있다. 따라서, SGbus 인터페이스는 레거시 I2C 디바이스들에 의해 무시, 비검출, 또는 달리 폐기될 수 있는 시그널링 방식들을 정의한다. 예를 들어, SGbus 디바이스들은 보다 고속의 송신 속도들을 얻기 위하여, I2C 모드 시그널링에 순응하는 시그널링에서 제어 정보를 송신할 수도 있고, CCIe 프로토콜들에 따라 인코딩되는 데이터 페이로드를 송신할 수도 있다. SGbus 디바이스들은 레거시 I2C 모드들을 포함하는 데이터 페이로드를 송신하기 위한 다른 인코딩 모드들을 이용할 수도 있다. 대안의 인코딩 모드들은 심볼들의 시퀀스에서 연속하는 심볼들 사이의 트랜지션들에 임베딩되는 클록 정보와 함께 심볼들의 시퀀스에서의 데이터를 인코딩하기 위해 트랜지션 인코딩을 채용할 수도 있다. 즉, 데이터는 3진수로 트랜스코딩될 수도 있고, 3진수의 각각의 디지트는 버스의 이전 시그널링 상태 (즉, 이전 심볼) 에 기초하여 다음 심볼을 선택한다.
본원에 개시된 특정 양태들은 상이한 통신 프로토콜들 및/또는 시그널링을 이용하여 통신하는 디바이스들의 시리얼 버스 상의 공존에 관련된다. 일부 예들에서, 제 1 프로토콜을 이용하여 시리얼 버스 상에서 통신하도록 구성되는 디바이스는 제 2 프로토콜이 제 1 프로토콜에 의해 인식되는 이벤트들을 생성하는 시그널링을 채용할 때, 제 2 프로토콜을 이용하는 다른 디바이스들 사이의 통신들을 무시할 수도 있다. 이하, 특정 양태들이, 제 1 프로토콜이 I2C 순응 또는 호환가능한 프로토콜이고 제 2 프로토콜이 CCIe, SGbus 또는 다른 프로토콜인 예들을 이용하여 설명될 것이다.
도 5 는 I2C 1-바이트 기록 데이터 동작을 예시하는 타이밍도 (500) 를 예시한다. SCL (216) 을 하이로 유지하면서 SDA (218) 를 로우로 구동하는 것에 의해 마스터 노드가 START 조건 (506) 을 제공할 때, 송신이 개시된다. I2C 마스터 노드는 7-비트 슬레이브 ID (502) 를 SDA (218) 상에 전송하여, I2C 버스 상에서 마스터 노드가 어느 슬레이브 노드에 액세스하기를 원하는지를 나타내고, 이어서, 동작이 판독 동작인지 또는 기록 동작인지를 나타내는 판독/기록 비트 (512) 를 전송하여, 이에 의해 판독/기록 비트 (512) 가 기록 동작을 나타내기 위해 로직 0 에 있고 판독 동작을 나타내기 위해 로직 1 에 있다. ID 가 7-비트 슬레이브 ID (502) 와 매칭하는 슬레이브 노드만이 기록 (또는 다른) 동작에 응답할 수 있다. I2C 슬레이브 노드가 자기 자신의 슬레이브 ID (502) 를 검출하기 위하여, 마스터 노드는 적어도 8-비트들을 SDA (218) 상에서 송신하고, 8 개의 클록 펄스들을 SCL (216) 상에서 송신한다. 마스터 노드는 SCL (216) 가 하이로 유지되는 상태에서 SDA (218) 를 하이로 구동시키는 것에 의해 트랜잭션을 만료하도록 STOP 조건 (516) 을 제공한다. I2C 인터페이스는 START 조건 (506) 후에 "Bus-Busy" 상태에 있고, STOP 조건 (516) 후에 "Bus-Free" 상태에 있는 것으로 고려된다. 이 거동은 CCIe 프로토콜을 포함한 특정 프로토콜에 따라 레거시 I2C 슬레이브 노드들이 송신들에 반응하지 못하게 하도록 활용될 수도 있다.
CCIe 통신들은 데이터 송신을 위하여 I2C 버스의 SCL (216) 및 SDA (218) 의 조합을 이용할 수도 있다. CCIe 심볼은 I2C 송신을 위하여 SCL (216) 상에서 송신되는 클록 신호 펄스 (514) 의 각각의 토글에 대응하는 시간에 송신될 수도 있다. 따라서, 각각의 프레임 송신 주기에서 송신되는 클록 토글들의 수는 각각의 CCIe 송신에 대하여 송신될 수도 있는 심볼들의 수를 정의할 수도 있다. 따라서, 12-심볼 송신들은 6-SCL 펄스 시퀀스 동안에 이용가능한 12 개 시그널링 상태들에 제공될 수도 있다.
I2C 버스의 SCL (216) 및/또는 SDA (218) 는 클록 신호가 심볼 트랜지션들 내에 매립되었을 때 CCIe 모드에서의 데이터 송신에 이용될 수도 있다. 그 결과, SCL (216) 및 SDA (218) 는 CCIe-가능 노드들로부터 레거시 I2C 슬레이브 노드들을 분리하기 위해 브리지 디바이스를 이용하지 않고 그리고 레거시 I2C 슬레이브 노드 기능성에 영향을 주지 않고 임의의 임의적 12 심볼들을 송신하는데 이용될 수 있다. I2C 모드에서, START 조건 (506) 은 I2C 마스터에 의해서만 제공될 수도 있다. CCIe 모드에서, START 조건 (506) 은 어느 노드가 12-심볼 워드를 송신하고 있든지 간에 제공된다.
본원에 개시된 특정 양태들에 따르면, I2C 디바이스들은 SCL (216) 의 특정 시그널링 특징들이 활용될 때 상이한 통신 프로토콜을 채용하는 디바이스와 함께 시리얼 버스 상에 공존할 수도 있다. 예를 들어, 50 ns 미만의 지속기간으로 펄싱 및/또는 스파이크하는 I2C 사양은 I2C 고속 모드 (Fm) 또는 Fm+ 디바이스들에 호환가능 또는 순응하는 디바이스들에 의해 필터링된다. 따라서, I2C 디바이스들과 공유되는 시리얼 버스 상에서 이용되는 프로토콜은 SCL (216) 상의 펄스들이 50 ns 미만인 지속기간으로 제한되는 동작 모드를 포함할 수도 있다. 펄스 지속기간에서의 제약은 SCL (216) 이 50 ns 에 대한 하이 상태를 유지하지 못하게 하는 엑스트라 심볼을 삽입하는 것에 의해 및/또는 SCL (216) 에 대한 제로 복귀 (return-to-zero) 시그널링 방식을 구현하여 SCL (216) 상에서의 하이 상태의 클록 펄스 생성을 제어하는 것에 의해 강화될 수도 있다. 엑스트라 심볼은 더미 심볼로서 본원에서 지칭될 수도 있다. 일 예에서, 심볼들의 수는 50 ns 주기 내에서 송신될 수도 있고, 심볼들의 시퀀스가 50 ns 동안에 SCL (216) 을 하이 상태로 유지할 것 같다고 인코더가 검출할 때, 인코더는 50 ns 하이 주기가 완료하기 전에 SCL (216) 을 로우 상태로 강제하는 더미 심볼을 삽입할 수 있다.
더미 심볼의 삽입은 엑스트라 펄스 (더미 펄스) 로 하여금, 시리얼 버스의 하나 이상의 신호 와이어들 상에서 송신되게 할 수도 있다. 위에 설명된 I2C 예에서, 2 개의 연속하는 심볼들이 로직 하이 상태로 SCL (216) 을 달리 유지할 때 SCL (216) 상에서 로직 로우 상태를 강제하도록 더미 심볼이 삽입될 수도 있다. 더미 심볼의 송신 후에, SCL (216) 은 2 개의 연속하는 심볼들에서 제 2 심볼에 대응하는 로직 하이 상태로 복귀한다. 일부 경우들에서, SCL (216) 상에서 긴 지속기간의 포지티브 펄스들을 방지하기 위해 SCL (216) 에서 제로 복귀 (RZ) 시그널링을 이용할 수도 있다. 일부 경우들에서, 하드웨어 로직은 SCL (216) 이 미리 정의된 기간 동안에 하이 상태로 유지될 때, 짧은 지속기간의 로직 로우 펄스를 삽입하는 것에 의해 SCL (216) 를 폴리스하도록 구성될 수도 있다.
더미 펄스는 트랜지션 심볼 인코딩이 이용될 때 명확한 클록 펄스 지속기간들을 제한하기 보다는 다른 목적들로 시리얼 버스의 하나 이상의 신호 와이어들 상에 삽입될 수 있다. 더미 펄스는 이벤트들 또는 조건들을 동기시키는 것을 나타낼 수도 있는 원하지 않는 상태들의 발생을 회피하도록 제공될 수도 있다. 예를 들어, I2C START 및 STOP 조건은, SDA (218) 이 변경되지 않은 상태로 유지되면서 SCL (216) 이 로우로 진행할 때 표시될 수도 있고, 더미 펄스는 시리얼 버스가 I2C 이외의 프로토콜에 따라 통신들에 이용될 때 이러한 표시를 방지하기 위해 SDA (218) 상에 삽입될 수도 있다.
통신 프로토콜들 사이의 트랜지션
도 6 은 공유 버스 (602) 가 I2C 디바이스들 (6041-604k, 606) 및 CCIe 디바이스들 (612, 6141-614n 및 6161-616m) 을 커플링하는 구성을 예시한다. SGbus 디바이스들 (612, 6141-614n 및 6161-616m) 은 통상 구성되는 I2C 디바이스들 (6041-604k, 606) 과 공존할 수도 있으며, SGbus 디바이스들 (612, 6141-614n 및 6161-616m) 중 특정의 것은 원하는 바에 따라 또는 필요에 따라 통상의 I2C 프로토콜들을 이용하여 통신할 수도 있다.
구성 및 다른 버스 제어 메시지들을 포함한 공유된 버스 (602) 상에서의 데이터의 전달은 I2C 프로토콜의 변형예 또는 I2C 프로토콜의 수정된 버전과 같이 제 1 프로토콜을 이용하여 개시되고 수행될 수도 있다. 일 예에서, 모든 트랜잭션들은 트랜잭션들을 수행하기 위해 통상의 I2C 프로토콜들을 이용하여 개시될 수도 있다.
본원에 개시된 특정 양태들에 따르면, 공유 버스 (602) 에 커플링되는 디바이스들 사이의 데이터 전달들이 버스 관리 및/또는 제어 커맨드들 사이에 발생하는 트랜잭션들 (컨테이너들) 에 캡슐화되도록 공유 버스 (602) 상의 통신들이 효과적으로 컨테이너화될 수도 있다. 통상적으로, 현재 트랜잭션에 참여하는 디바이스들에 의해 채용되는 프로토콜을 이용하여 통신하도록 구성되는 디바이스들은 트랜잭션을 무시할 수도 있거나 또는 인지하지 못할 수도 있다.
도 7 은 공유 버스 (602) 의 동작 모드들 또는 컨테이너들 사이의 트랜지션을 위한 일반화된 방식을 예시하는 흐름도 (700) 이다. 각각의 컨테이너, 동작 모드 및/또는 프로토콜은 공유 버스 (602) 의 대응하는 동작 상태 (702, 704, 706, 708, 710) 와 연관될 수도 있다. 버스의 동작 모드는 시그널링 방식들, 데이터 스루풋, 송신 포맷들 등 사이를 구별할 수도 있다. 상이한 동작 모드들이 프로토콜에 대해 정의될 수도 있다. 예를 들어, 12-심볼 및 20-심볼 모드들은 CCIe 프로토콜에 대해 정의될 수도 있다.
동작시, 공통 프로토콜 상태 (704) 는 모든 버스 마스터 디바이스들에 의해 및/또는 버스 상의 모든 디바이스들에 의해 이해되는 공통 프로토콜을 이용하여 버스 관리 커맨드들을 교환하는데 이용된다. 일 예에서, 단일 프로토콜 슬레이브 디바이스는 공통 프로토콜을 이용하여 통신불가능할 수도 있고, 버스 관리 커맨드들을 연속적으로 무시할 수도 있다. 이 이후의 예에서, 버스 마스터 디바이스는 공유 버스 (602) 의 제어를 취할 수도 있고, 단일 프로토콜 슬레이브 디바이스에 의해 이해되는 프로토콜을 이용하여 단일 프로토콜 슬레이브 디바이스와 통신할 수도 있다.
일부 예들에서, I2C 프로토콜은 공통 프로토콜 상태 (704) 에 이용된다. 다른 예들에서, 상이한 프로토콜은 공통 프로토콜 상태 (704) 에 이용될 수도 있다. 공유 버스 (602) 는 기동 상태 (702) 로 초기화될 수도 있고, 이에 의해 공유 버스 (602) 에 커플링되는 디바이스들이 공통 프로토콜에 대하여 구성된다. 공통 프로토콜들의 단일 버스 마스터 구현들에서, 지정된 버스 마스터는 공통 프로토콜에 의해 정의되는 절차들에 따라 공유된 버스 (602) 에 커플링되는 다른 디바이스들을 디스커버 및/또는 구성시킬 수도 있다. 멀티-마스터 구현들에서, 하나 이상의 마스터 디바이스들은 어느 버스 마스터가 공통 프로토콜 상태 (704) 에 진입시 공유 버스 (602) 를 제어하는지를 결정하도록 디스커버리, 구성, 및/또는 중재 프로세스에 참여할 수도 있다. 버스 계층적 개념이 채택되고, 여기에서 하나의 버스 마스터 디바이스는 공유 버스 (602) 의 활성 제어를 갖고, 다른 버스 마스터 디바이스들은 공유 버스 (602) 의 그랜트 제어에 대하여 요청하여 기다린다.
공통 프로토콜 상태 (704) 에서, 하나 이상의 디바이스들은 공유 버스 (602) 의 제어에 대하여 경합할 수도 있다. 공유 버스 (602) 가 원하거나 또는 중재받은 프로토콜 상태 (706, 708) 에서 동작하여, 공유 버스 (602) 에 커플링되는 디바이스들 사이의 통신 트랜지션을 인에이블할 수도 있다. 트랜잭션의 완료시, 공유 버스 (602) 는 공통 프로토콜 상태 (704) 로 복귀된다. 어떠한 디바이스도 공유 버스 (602) 에의 액세스를 요청하지 않을 때, 공유 버스 (602) 는 아이들 상태 (710) 에 진입할 수도 있다. 아이들 상태에서, 하나 이상의 디바이스들은 파워 다운 동작 모드에 진입할 수도 있다. 버스 마스터 디바이스는 임의의 디바이스가 공유 버스 (602) 에 액세스하는 것을 요청하고 있는지를 결정하기 위해 공유된 버스 (602) 로 하여금 주기적으로 공통 프로토콜 상태 (704) 에 진입하게 할 수도 있다. 일부 경우들에서, 공유 버스 (602) 는 인터럽트 또는 다른 이벤트에 응답하여 공통 프로토콜 상태 (704) 로 복귀할 수도 있다.
프로토콜 상태 (704, 706, 708) 로의 진입 및 프로토콜 상태들 (704, 706, 708) 로부터의 종료는 버스 관리 커맨드들을 이용하여 실시될 수도 있다. 이들 커맨드들은 공유 버스 (602) 의 설계 및 아키텍쳐에 기초하여 선택되는 시그널링, 메시징, 또는 시그널링 및 메시징의 일정 조합을 이용하여 구현될 수도 있다.
데이터의 전달들은 공유 버스 (602) 에 커플링된 디바이스들의 서브세트에 의해 이용되는 프로토콜 상태들 (706, 708) 중 하나 또는 공통 프로토콜 상태 (704) 에서 발생할 수도 있다. 디바이스들의 서브세트들에 의해 이용된 프로토콜 상태들 (706, 708) 은 공유 버스 (602) 와 호환가능한 임의의 프로토콜일 수도 있다. 데이터는 워드들, 프레임들 및/또는 패킷들의 단위들로 전달될 수도 있고, 플렉시블 데이터 전달 모드가 고려된다.
일부 경우들에서, 어드레스들은 공유 버스 (602) 에 커플링되는 디바이스들에 동적으로 할당될 수도 있다. 일 예에서, 동적 어드레스 할당이 공통 프로토콜 상태 (704) 에서 수행되어, 공통 프로토콜을 이용하여 통신하는 디바이스들의 고유 식별을 제공하고, 이러한 디바이스들에 대한 우선순위 랭킹들을 배정한다. 일부 경우들에서, 동적 어드레스 할당이 공통 프로토콜 상태 (706, 708) 에서 수행되어, 공통 프로토콜 이외의 다른 프로토콜들을 이용하여 통신하는 디바이스들의 고유 식별을 제공하고, 이러한 디바이스들에 대한 우선순위 랭킹들을 배정한다.
일부 경우들에서, 예외 핸들링 방식 (exception-handling scheme) 은 공통 프로토콜 상태 (704) 에 대하여 정의된다. 예를 들어, I2C-호환가능 대역내 인터럽트 절차는, 공통 프로토콜이 I2C 또는 I2C 의 파생물일 때 제공될 수도 있다.
일부 경우들에서, "핫-플러그" 절차가 구현될 수도 있고, 여기에서 핫-플러그 절차는 대역내 인터럽트 및 동적 어드레사 할당 절차들을 포함하고/하거나 이용한다.
도 8 은 본원에 설명된 특정 양태들에 따라 공유 버스 (602) 가 비트들 및 심볼들 (802) 송신된 I2C 및 SGbus 프로토콜들을 각각 수반하는 통신 트랜잭션들을 지원하는 일 예를 위하여, 공유 버스 (602) 상에서 수행되는 트랜잭션 (800) 을 예시한다. 초기에, 공유 버스 (602) 는 Bus-Free 상태 (822) 에 있을 수도 있고, 제어 시그널링 (806) 은 공통으로 이해되는 I2C 프로토콜에 따라 핸들링된다. 제어 시그널링 (806) 이 확인응답된 후 (824, 826), SGbus 데이터 교환 (808) 이 발생할 수도 있고, 이 교환 동안에 데이터 페이로드 (810) 가 SGbus 마스터 디바이스 (612) 에 송신된다. 종료 시퀀스 (812) 는 SGbus 데이터 교환 (808)(즉, SGbus 프로토콜들에 따르는 시그널링) 으로부터, I2C 프로토콜들에 부합하여 STOP 조건 (820, 516) 으로서 인식되는 시그널링으로의 트랜지션을 제공한다. 그 후, 버스-프리 상태 (822)(또한 도 7 의 아이들 상태 (710) 를 참조함) 가 야기될 수도 있다.
예시된 이 예에서, 공유된 버스 (602) 상에서의 트랜잭션 (800) 은 일련의 커맨드 코드들 (818) 이 뒤따르는 어드레스들 (816)(예를 들어, I2C 슬레이브 ID (502) 를 참조함) 을 선행하는 I2C START 조건 (814) (도 5 의 START 조건 (506) 을 또한 참조) 에 의해 개시될 수도 있다. 커맨드 코드들 (818) 은 공유 버스 (602) 에 대해 이용되는 SGbus 통신 프로토콜에 의해 미리 정의되는 바이트들의 수를 포함할 수도 있는 가변 길이를 가질 수도 있다.
일 예에서, 커맨드 코드 (818) 는 데이터 전달 프로토콜의 특정 특징들 및/또는 선택된 데이터 전달 프로토콜을 정의하기 위해 송신될 수도 있다. 이 후자의 커맨드 코드는 복수의 데이터 전달 프로토콜들 중 후속하는 데이터 전달들에 이용되는 한 프로토콜을 식별할 수도 있다. 식별된 데이터 전달 프로토콜은 상이한 데이터 전달 프로토콜 커맨드가 버스 상에 삽입될 때까지 트랜잭션들을 제어할 수도 있다.
START 조건 (814) 후에, 공유 버스 (602) 는 다음의 STOP 조건 (820)(도 5 의 STOP 조건 (516) 을 또한 참조함) 때까지 사용중인 것으로 고려된다. Bus-Free 상태 (822) 는, SCL (216) 및 SDA (218) 가 미리 정해진 기간 동안에 로직 하이 상태에 있을 때 발생하는 것으로서 정의될 수도 있다. 공유된 버스 (602) 의 비지/프리 상태는 START 조건들 (814, 506) 및 STOP 조건들 (820, 516) 의 발생에 기초하여 정의 또는 식별될 수도 있다. 데이터가 SGbus-호환가능 프로토콜을 이용하여 송신되는지 또는 I2C-호환가능 프로토콜들을 이용하여 송신되는지와 무관하게, Bus-Free 상태 (822) 가 STOP 조건 (820, 516) 후의 기간을 포함하는 지속기간을 갖고, 이 기간 동안에 SCL (216) 및 SDA (218) 가 로직 하이 상태에 있다. 일 예에서, SCL (216) 및 SDA (218) 가 로직 하이 상태에 있는 기간은 공유 버스 (602) 상에 이용된 가장 느린 클록 주기의 두배이도록 설정될 수도 있다. 예를 들어, I2C 고속 모드에서, SCL (216) 상에서 송신되는 클록 신호는 2.5 ㎲ 의 클록 주기와 함께 적어도 400kHz 의 주파수를 갖고, 5 ㎲ 주기는 Bus-Free 상태 (822) 를 표시하는데 충분할 수도 있다.
도 6 에 도시된 바와 같이, 공유 버스 (602) 는 레거시 I2C 마스터 디바이스 (606), 레거시 I2C 슬레이브 디바이스들 (6041-604k), 프라이머리 SGbus 마스터 디바이스 (612), SGbus 슬레이브 디바이스들 (6141-614n) 및 SGbus 세컨더리 마스터 디바이스들 (6161-616m) 을 지원할 수도 있다. 프라이머리 SGbus 마스터 디바이스 (612) 는 통상적으로, 공유된 버스 (602) 상에 상주하는 레거시 I2C 디바이스들 (606, 6041-604k) 에 관련된 특정 동작 정보로 구성된다. 프라이머리 SGbus 마스터 디바이스 (612) 는 동작 및 다른 정보가 애플리케이션 호스트 디바이스로부터 수신된 통신들에 응답하여 미리 구성되고/되거나 업데이트될 수도 있는 비휘발성 메모리를 포함할 수도 있다.
각각의 세컨더리 SGbus 마스터 디바이스 (6161-616m) 및 SGbus 슬레이브 디바이스들 (6141-614n) 은 임의의 원하는, 구성된 또는 미리 정의된 길이의 랜덤 어드레스를 내부적으로 생성하도록 구성될 수도 있다. 일 예에서, 랜덤 어드레스는 48 비트들을 가질 수도 있다. 이들 디바이스들 (6141-614n, 6161-616m) 은 할당된 로컬 어드레스들을 갖지 않는 디바이스들의 존재를 식별하는데 이용될 수도 있는 예약된 어드레스를 이용하여 인터럽트를 야기하게 할 수도 있다.
동작시, 프라이머리 SGbus 마스터 디바이스 (612) 는 동적 어드레스 할당 커맨드 코드가 뒤따르는 일반 호를 송신할 수도 있다. 그 후, 프라이머리 SGbus 마스터 디바이스 (612) 는 로직 하이 레벨로 풀링될 수도 있는 SDA (218) 를 릴리즈하면서 공유 버스 (602) 의 SCL (216) 상에서 클록 신호를 구동시킬 수도 있다. 중재 프로세스가 뒤따르며, 이에 의해 SGbus 디바이스들 (6141-614n, 6161-616m) 은 이들의 대응하는 랜덤하게 선택된 48-비트 어드레스에 따라 SDA (218) 를 구동시킨다. 최저 어드레스들을 갖는 SGbus 디바이스들 (6141-614n, 6161-616m) 은 I2C 프로토콜에 의해 특정되는 것과 유사한 방식으로 중재권을 차지한다.
프라이머리 SGbus 마스터 디바이스 (612) 는 SDA (218) 를 릴리즈하면서 SCL (216) 상에서 클록 신호를 구동시키는 것을 계속한다. 그 후, SGbus 디바이스들 (6141-614n, 6161-616m) 중에서 획득하여 차지한 디바이스는 하나 이상의 특유의 바이트를 전달할 수도 있다. 특유의 바이트는 디바이스가 슬레이브 디바이스만으로 기능하는지의 여부, 디바이스의 유형 (예를 들어, 가속도계), 데이터 폭 (예를 들어, 16 또는 12 비트 폭), 및 다른 특징들을 포함한 획득하여 차지한 디바이스의 특정 특징들을 식별하는 정보를 포함한다.
프라이머리 SGbus 마스터 디바이스 (612) 는 획득하여 차지한 디바이스에 대한 7-비트 폭 로컬 어드레스를 전달할 수도 있다. 이 어드레스는 프라이머리 SGbus 마스터 디바이스 (612) 가 식별된 디바이스에 배정하는 우선순위 레벨을 포함한다. 프라이머리 SGbus 마스터 디바이스 (612) 는 자신이 어드레스 중재권을 구하는 디바이스로부터 어떠한 응답도 수신하지 못할 때까지 이 절차를 반복할 수도 있다. 프라이머리 SGbus 마스터 디바이스 (612) 는 절차로의 진입을 실시하였던 동적 어드레스 할당 커맨드 코드를 만료하는 특정 커맨드 코드를 전송하는 것에 의해 중재 절차를 만료할 수도 있다.
공유 버스 (602) 에 접속된 세컨더리 SGbus 마스터 디바이스 (6161-616m) 는 중재 프로세스를 모니터링하고 프로세스 동안에 정보 교환을 캡쳐할 수도 있어, 세컨더리 SGbus 마스터 디바이스 (6161-616m) 가 공유 버스 (602) 에 대한 어드레싱, 우선선위 및 구성 정보의 복사본을 갖게 된다. 그럼에도 불구하고, 프라이머리 SGbus 마스터 디바이스 (612) 는 SGbus 슬레이브 디바이스 (6141-614n) 로부터 수신된 정보를 SGbus 마스터 디바이스 (6161-616m) 에 전달할 수도 있다.
SGbus 디바이스들 (6141-614n, 6161-616m) 각각은 동적 어드레스를 저장하기 위하여 이용될 수도 있는 하나 이상의 보유 레지스터들을 가질 수 있어, SGbus 구성이 콜드 파워업 후에 이용하기 위하여 예약될 수 있게 된다. 2 개의 SGbus 디바이스들 (6141-614n 및/또는 6161-616m) 이 동일한 랜덤 48-bit 어드레스를 선택하고 동일한 어드레스를 가지면, 2 개의 디바이스들이 동일한 로컬 어드레스들을 저장할 수도 있다. SGbus 마스터 디바이스 (612) 가 데이터 전달을 요구하고, 2 개의 상이한 2 개의 SGbus 슬레이브 디바이스들 (6141-614n) 에 의해 동시에 송신되는 데이터가 상이할 때까지, 더블 배정이 실제적으로 유지될 수도 있다. 2 개의 SGbus 슬레이브 디바이스들 (6141-614n) 중 적어도 하나는 공유 버스 (602) 에 접속된 다른 SGbus 슬레이브 디바이스들 (6141-614n) 와 동일한 어드레스를 갖는다고 인식할 수도 있고, 공유 버스 (602) 를 드롭 오프할 수도 있다. 다음 버스-프리 상태 (822) 에서, 드롭 오프된 SGbus 슬레이브 디바이스들 (6141-614n) 은 이 요건을 위해 전용 제어 코드를 이용하여 새로운 로컬 어드레스들을 요청할 수도 있다. 본원에 개시된 특정 양태들에 따라 적응될 수도 있는 기존의 절차들을 포함한, 동일한 로컬 어드레스의 더블 배정들을 식별하는 다른 절차들이 이용가능하다. 예를 들어, 프라이머리 또는 메인 마스터 디바이스는 로컬 어드레스를 필요로 하는 디바이스들의 수를 통지받을 수도 있고, 그리고 보다 소수의 로컬 어드레스가 할당 또는 배정되면, 메인 마스터는 복구 절차를 개시 및/또는 수행할 수도 있다. 복구 절차의 일 예에서, 동적 어드레스 할당 절차는 스크래치로부터 재시작될 수도 있다. 신뢰성있는 폴백 절차의 다른 예들은 2 개 이상의 디바이스들이 중복하는 어드레스들을 갖는 경우들로부터의 복구에의 이용에 이용가능하다.
SGbus 디바이스들 (6141-614n 및/또는 6161-616m) 의 각각은 프라이머리 SGbus 마스터 디바이스 (612) 에 의해 우선순위 랭킹을 배정받는다. 우선순위 랭크는 동적으로 할당된 로컬 어드레스의 레벨을 이용하여 SGbus 마스터 디바이스 (612) 에 의해 정의될 수도 있고, 이에 의해 더 낮은 어드레스 값들이 더 높은 우선순위 랭크들을 갖는다.
SGbus 디바이스들 (6141-614n, 6161-616m) 각각은 버스 프리 상태 동안에 항상 대역내 IRQ (Interrupt Request) 을 표명할 수 있다. IRQ 표명 절차는 I2C 및 다른 I2C-관련 인터페이스들에서의 버스 중재에 이용된 유사한 절차들에 대응한다. 그러나, 본원에 개시된 특정 양태들에 따르면, IRQ 절차들에 대해 특정 개선예들 및 강화예들이 채용될 수도 있다.
일 예에서, SGbus 슬레이브 디바이스 (6141-614n) 는 로직 로우 시그널링 상태로 SDA (218) 를 풀링하는 것에 의해 대역내 IRQ 를 표명할 수 있다. 프라이머리 SGbus 마스터 디바이스 (612) 는 SDA (218) 를 구동되지 않는 상태로 유지하면서 SCL (216) 에 대해 클록 신호를 구동시키기 시작할 수도 있다. SDA (218) 는 로직 하이 시그널링 상태를 향하여 풀링될 수도 있다. SGbus 슬레이브 디바이스 (6141-614n) 는 디바이스 자신의 어드레스를 송신하기 위해 SDA (218) 를 구동시킬 수도 있다. 프라이머리 SGbus 마스터 디바이스 (612) 는 IRQ 를 확인응답한 다음, SGbus 슬레이브 디바이스 (6141-614n) 로부터 수신된 어드레스를 이용하여 반복된 START 를 수행한다. 반복된 START 조건 (928)(도 9 를 참조) 은, SCL 신호 와이어 (924) 가 Bus-Busy 상태 동안에 하이로 있는 동안 그리고 STOP 조건 (908) 이 예상될 때 SDA 신호 와이어 (922) 를 로우로 구동시키는 것에 의해 제공된다. 디바이스들 (6141-614n, 6161-616m 및/또는 6041-604k) 은 반복되는 START 조건 (928) 을 검출한 후에 디바이스 자신의 개별적인 어드레스들에 대한 버스를 모니터링할 수도 있다.
이전에 정의된 모드가 현재 원하거나 또는 요구되는 모드와 상이하다면, 프라이머리 SGbus 마스터 디바이스 (612) 는 선택적으로 데이터 전달 프로토콜 바이트를 이용하여 데이터 전달 모드를 구성할 수도 있다. 프라이머리 SGbus 마스터 디바이스 (612) 및 인터럽트한 SGbus 슬레이브 디바이스 (6141-614n) 는 그 후, 통신을 개시할 수도 있다. 버스 경합은 어드레스 평가 동안에 발생하고, 동시에 버스를 차지하려 시도하는 임의의 추가적인 SGbus 디바이스들 (6141-614n, 6161-616m) 및/또는 임의의 레거시 I2C 디바이스들 (6041-604k) 은 중재권을 손실하고 다음 Bus-Free 상태 (822) 에 대해 재시도할 수도 있다.
다른 예에서, 세컨더리 SGbus 마스터 디바이스 (6161-616m) 는 SGbus 슬레이브 디바이스들 (6141-614n) 에 대한 절차와 유사한 절차를 이용하여 대역내 IRQ 를 표명할 수 있다. 프라이머리 SGbus 마스터 디바이스 (612) 는 IRQ 가 세컨더리 SGbus 마스터 디바이스 (6161-616m) 에 의해 표명된 것을 인식할 때, 프라이머리 SGbus 마스터 디바이스 (612) 는 SCL (216) 을 릴리즈하고, 세컨더리 SGbus 마스터 디바이스 (6161-616m) 는 통신을 위한 타겟 디바이스를 어드레싱하기 위해, 즉각적 반복 START 조건 (928) 을 수행한다.
다른 예에서, 레거시 I2C 마스터 디바이스 (606) 는 세컨더리 SGbus 마스터 디바이스들 (6161-616m) 에 대하여 설명된 절차와 유사한 절차에서 IRQ 를 표명할 수도 있다. SGbus 마스터 디바이스 (612) 가 등가의 더 높은 어드레스 (예를 들어, 111 1111) 를 갖고 중재권을 손실하기 때문에, 레거시 I2C 마스터 디바이스 (606) 는 통상적으로, 디바이스가 SGbus 마스터 디바이스 (612) 와 경합해야 할 때를 알지 못한다. 특정 애플리케이션에서, 더 저속의 레거시 디바이스들, 이를 테면, I2C 디바이스들을 SGbus 로부터 배제하는 것이 바람직할 수도 있음을 알아야 한다. 예를 들어, 레거시 디바이스들은 버스 속도 (스루풋 요건들) 로 인하여 또는 공존을 가능하게 하는데 필요한 절차들의 복잡성으로 인하여 배제될 수도 있다.
통신 트랜잭션을 시작하는 프라이머리 SGbus 마스터 디바이스 (612) 는 어드레스 호 동안에 어드레스 중재 절차를 평가한다. 프라이머리 SGbus 마스터 디바이스 (612) 를 인터럽트하려 시도하는, 임의의 SGbus 슬레이브 디바이스 (6141-614n), 세컨더리 SGbus 마스터 디바이스 (6161-616m) 또는 레거시 I2C 마스터 디바이스 (606) 는 통상 성공적이다. 그러나, 하위 우선순위 랭크를 갖는 임의의 디바이스는 다음 Bus-Free 상태 (822) 를 대기해야 할 수도 있다.
일부 경우들에서, 레거시 I2C 마스터 디바이스 (606) 와 SGbus 슬레이브 디바이스 (6141-614n) 사이에 경합이 발생할 수도 있다. 프라이머리 SGbus 마스터 디바이스 (612) 는 디바이스가 START 조건을 알게 될 때 (즉, SDA (218) 가 로우로 진행할 때) SCL (216) 에 대해 클록 신호를 시작시킨다. 따라서, 상위 우선순위 랭크를 갖는 SGbus 슬레이브 디바이스 (6141-614n) 는 중재 프로세스를 추정적으로 차지한다. 프라이머리 SGbus 마스터 디바이스 (612) 는 차지한 어드레스를 포함한 중재 프로세스의 결과를 인지한다.
본원에 개시된 특정 양태들에 따르면, SGbus 는 하나 이상의 SGbus 마스터 디바이스들 (612, 6161-616m) 및 레거시 I2C 마스터 디바이스 (606) 가 대응하는 슬레이브 디바이스들에 대한 제어 및 관리 기능을 제공하는 멀티-마스터된 버스일 수도 있다. SGbus 에서 채택된 특정 멀티 마스터 중재 및 버스 제어 절차는 IRQ 절차들에 대하여 설명된 것과 같은 글로벌 규칙에 따를 수 있다. 따라서, IRQ 규칙들은 레거시 I2C 마스터 디바이스 (606) 가 하나 이상의 SGbus 세컨더리 마스터 디바이스들 (6161-616m) 과 경합할 때 적용할 수도 있다.
SGbus 세컨더리 마스터 디바이스 (6161-616m) 가 트랜잭션을 수행하도록 공유 버스 (602) 의 제어를 획득할 때, SGbus 세컨더리 마스터 디바이스 (6161-616m) 는 트랜잭션을 수행하는데 필요하게 될 때까지만은 공유 버스 (602) 의 제어를 유지한다. 개별적인 트랜잭션 후에, STOP 조건 (820) 은 버스 제어로 하여금, 프라이머리 SGbus 마스터 디바이스 (612) 로 다시 복귀하게 한다.
CCIe 데이터 전달 프로토콜과 같은 다른 데이터 전달 프로토콜들이 이용가능한 경우에도, 레거시 I2C 마스터 (606) 는 일반적으로 데이터를 레거시 I2C 슬레이브 디바이스들 (6041-604k) 에 전달하고, I2C-순응 프로토콜들을 채택한다. 레거시 I2C 마스터 (606) 와 SGbus 디바이스들 (6141-614n, 6161-616m) 사이의 통신들이 시스템 레벨에서 관리될 수도 있다. 일 예에서, 프라이머리 SGbus 마스터 디바이스 (612) 는 SGbus 슬레이브 디바이스들 (6141-614n) 의 존재를 레거시 I2C 마스터 (606) 에 통지할 수도 있다. 프라이머리 SGbus 마스터 디바이스 (612) 는 SGbus 슬레이브 디바이스들 (6141-614n) 의 로컬 어드레스들 및 특징들에 관한 정보를 제공할 수도 있다. 레거시 I2C 마스터 (606) 와 SGbus 슬레이브 디바이스들 (6141-614n) 사이의 임의의 결과적인 통신은 I2C 프로토콜들과 일관될 수도 있다.
본원에 개시된 특정 양태들에 따르면, SGbus 는 SGbus 디바이스 (612, 6141-614n, 또는 6161-616m) 가, 이미 동적으로 구성되었고 동작적인 버스 (602) 내에 삽입될 수도 있는 핫-플러그 능력을 지원할 수도 있다. 핫-플러그된 SGbus 디바이스 (612, 6141-614n, 또는 6161-616m) 는 버스를 통해 파워업하고, 콜드 파워업과 유사한 조건을 보이며, 핫-플러그된 SGbus 디바이스 (612, 6141-614n, 또는 6161-616m) 는 할당받은 로컬 어드레스를 초기에는 갖지 못한다. 할당받은 로컬 어드레스를 갖지 않은 디바이스 (612, 6141-614n, 또는 6161-616m) 는 자신이 로컬 어드레스를 필요로 한다는 표시자로서 미리 정의된 바이트를 이용하여 IRQ 를 수행할 수도 있다. 핫-플러그된 SGbus 디바이스 (612, 6141-614n, 또는 6161-616m) 의 공유 버스 (602) 상의 존재 및 IRQ 를 검출시, 프라이머리 SGbus 마스터 디바이스 (612) 는 본원에 개시된 바와 같은 동적 어드레스 할당 절차를 수행할 수도 있다.
본원에 개시된 특정 양태들에 따르면, SGbus I2C 프로토콜들, CCI 프로토콜들 및 이것의 변형안, 및 다른 프로토콜들을 포함한 복수의 데이터 전달 프로토콜들을 지원할 수도 있다. 일 예에서, CCI 확장 (CCIe) 버스가 SGbus 상의 데이터 전달을 제공하는데 이용될 수도 있다. CCIe 통신들 및 I2C 통신들은 공유 버스 (602) 상에서 수행될 수도 있어, 제 1 시구간에서, 데이터는 CCIe 인코딩을 이용하여 송신될 수도 있게 되고, 다른 데이터는 상이한 시구간에서 I2C 시그널링 협약들에 따라 송신될 수도 있게 된다. SGbus 는 CCIe 송신들이 I2C 프로토콜들을 깨트리지 않는 것을 보장하는 물리 계층 프로토콜을 채택한다.
도 9 는 I2C 버스 상에서 다수의 데이터 송신들과 연관된 타이밍을 예시하는 타이밍도들 (900 및 920) 을 포함한다. 제 1 기본 예에서, STOP 조건 (908) 과 연속하는 START 조건 (910) 사이에 경과하는 기간 (아이들 주기 (914)) 이 연장될 수도 있어, 이 아이들 주기 (914) 동안에 통상의 I2C 버스로 하여금 아이들 상태가 되게 한다. 동작시, I2C 버스 마스터가 제 1 START 조건 (906) 을 그리고 뒤를 이어 데이터를 송신할 때 사용중 주기 (912) 가 시작한다. 사용중 주기 (912) 는 I2C 버스 마스터가 STOP 조건 (908) 을 송신할 때 종료하고 아이들 주기 (914) 가 뒤이어 발생한다. 아이들 주기 (914) 는 제 2 START 조건 (910) 의 송신에 의해 종료한다.
타이밍도 (920) 를 또한 참조하여 보면, 일부 경우들에서, I2C 버스 상에서의 연속하는 데이터 송신들 사이의 아이들 주기들 (914) 은 STOP 조건 (908) 보다는 반복된 START 조건 (Sr)(928) 을 송신하는 것에 의해 그 수가 감소되거나 제거될 수도 있다. 반복된 START 조건 (928) 은 선행한 데이터 송신을 만료하고 동시에 다음 데이터 송신의 시작을 표시한다. SDA 신호 와이어 (922) 상의 상태 트랜지션은 아이들 주기 (930) 및 반복된 START 조건 (928) 후에 발생하는 START 조건 (926) 에 대해서도 동일하다. 구체적으로, SDA 신호 와이어 (922) 는 SCL 신호 와이어 (924) 가 하이인 동안에 하이로부터 로우로 트랜지션한다. 반복된 START 조건 (928) 은 데이터 송신들 사이에 이용될 때, 제 1 사용중 주기 (932) 에, 제 2 사용중 주기 (934) 가 바로 후속한다.
SGbus 에서, 데이터 전달 세그먼트는 임의의 I2C, CCIe 또는 다른 트랜지션 인코딩 프로토콜 또는 이들의 변형안을 이용할 수 있다. 이용될 데이터 전달 프로토콜의 유형은 SGbus 슬레이브 디바이스 (6141-614n) 와의 통신의 시작시에 SGbus 마스터 디바이스 (612, 또는 6161-616m) 에 의해 표시될 수도 있다. 각각의 SGbus 슬레이브 디바이스 (6141-614n) 에 대한 데이터 전달 프로토콜의 선택은 SGbus 마스터 디바이스 (612, 또는 6161-616m) 에 의해 변경될 때까지 사실상 유지된다. 일부 경우들에서, 프라이머리 SGbus 마스터 디바이스 (612) 는 I2C 와 CCIe 모드들 양쪽 모두에서 통신하여 I2C 모드를 디폴트 모드로서 이용할 수 있는 임의의 디바이스를 구성할 수도 있다.
데이터 전달으로부터의 종료는 공유 버스 (602) 가 Bus-Free 상태 (822) 에 진입할 수도 있는 경우에 공유 버스 (602) 상에 STOP 조건 (820, 908) 을 삽입하는 것에 의해 실시될 수도 있다. 공유 버스 (602) 상의 트랜잭션에서 송신되는 심볼들의 특정 시퀀스들은 트랜잭션에 참여하지 않는 하나 이상의 디바이스들 (6041-604n, 6141-614n, 6161-616m) 의 검출 로직에 의해 STOP 조건 (820, 908) 또는 반복된 START 조건 (928) 으로서 식별될 수도 있는 시그널링 상태들을 생성할 수도 있다.
도 10 은 동기 로직에서의 에시된 준안정성 문제들로 인하여 및/또는 정상 데이터 교환 동안에 발생할 수도 있는 의도되지 않은 START 조건들 (1008) 및 의도되지 않은 STOP 조건들 (1012) 의 발생을 예시한다. 의도되지 않은 START 조건들 (1008) 및 의도되지 않은 STOP 조건들 (1012) 은 의도되지 않은 START 조건들 (1008) 및 의도되지 않은 STOP 조건들 (1012) 을 야기할 수도 있는 심볼들의 시퀀스들을 식별하도록 인코더를 구성하는 것에 의해 회피될 수도 있다. 인코더는 의도되지 않은/원하지 않는 STOP 조건들 (1012) 및/또는 의도되지 않은 START 조건들 (1008) 을 발생시키는 것을 회피하도록 송신 심볼들의 스트림을 수정할 수도 있다. 일 예에서, 코딩 프로토콜은 데이터 전달 모드에 있는 동안에 의도되지 않은 STOP 조건들 (1012) 을 회피하기 위하여, 임의의 "01" 심볼 뒤에 2진수 "00" 더미 심볼 삽입을 제공할 수 있다. 다른 예에서, 코딩 프로토콜은 의도되지 않은 START 조건들 (1008) 을 회피하기 위해 2진수 "11" 심볼의 임의의 발생 후에 2진수 "10" 더미 심볼 삽입을 제공할 수도 있고, 이는 오류의 또는 의도되지 않은 START 조건들 (1008) 후에 레거시 I2C 디바이스로 하여금 그 어드레스를 체크하게 할 수도 있다. 레거시 I2C 디바이스가 어드레스 매칭을 발견하고 이에 의해 CCIe 액티브 드라이버들에 악영향을 준다면, 레거시 I2C 디바이스는 오류의 또는 의도되지 않은 START 조건들 (1008) 에 응답할 수도 있음을 이해할 것이다.
CCIe 모드 데이터 전달들에서, 프레임 동기화는 데이터 전달 모드로의 엔트리 포인트 후에 전송된 제 1 심볼에서 시작하여, 공유 버스 (602) 상에서 송신되는 심볼들의 카운트에 기초하여 수행될 수도 있다. SGbus 동작들에서, 반복된 START 조건 (928) 이 프레임에서 12 개의 심볼들의 각각의 시퀀스 또는 20 개의 심볼들의 시퀀스에 앞서 전송될 필요는 없다. 반복된 START 조건 (928) 의 부재는 데이터 스루풋을 증가시킬 수도 있다.
일부 경우들에서, 프레임 동기화는 또한 에러 검출에 이용되는 마지막 3 개의 최하위 비트들 (LSB들) "000" 을 체크하는 것에 의해 검증될 수 있다. 바이너리 디코딩된 수의 마지막 3 개의 LSB들을 체크하는 것에 의해 단일 에러가 검출될 수 있다. 2 개의 연속하는 심볼들이 동일하지 않은 경우, 단일 에러는 임의의 12-심볼 워드 상의 심볼 에러에 관련될 수도 있다. SDA (218) 의 시그널링 상태에 대응하는 비트가 최상위 비트 (MSB) 포지션에 있는 경우에, 심볼들은 2진수들 [SDA:SCL] 로서 인코딩될 수도 있다. 하나의 심볼 에러는 SDA (218) 또는 SCL (216) 의 일방 또는 양방의 샘플링된 시그널링 상태에서의 에러의 결과일 수도 있다.
도 11 을 참조하면서 도 3 및 도 4 와 연계하여 설명된 바와 같이, 송신기 (300) 의 트랜스코더 (302) 에 의해 생성되는 3진수들은 서클 (402) 을 가로질러 그리고 변위 값으로서 표현될 수도 있다. 일 예에서, 시계방향 변위는 3진수 값 T=1 로서 표현될 수도 있고, 반시계방향 변위는 3진수 값 T=0 으로서 표현될 수도 있고, 서클 (402) 을 가로지르는 변위 (즉, 2단계 시계 방향 또는 반시계 방향) 는 3진수 값 T=2 로서 표현될 수도 있다.
즉각적 결과로서, 서클 (402) 상의 인접하는 심볼들 중 어느 것에 일치하는 심볼을 생성하는 라인 에러는 새로운 심볼로 고려되지 않고, 에러는 워드 레벨에서 식별될 수도 있다. 그러나, 2 개의 인접하는 3진수들을 가져오는 단일 심볼 에러는 변경되지 않는다.
본원에 개시된 특정 양태들에 따르면, 에러 정정이 SGbus 통신들에 대해 제공될 수도 있다. 데이터를 전달하기 위하여, 정보의 2진수 스트링이 베이스 3 (3진) 수로서 코딩된 동일 수치값으로 변환될 수도 있다. 이와 같이, 몇몇 문자들은 동일한 정보에 대하여 노드들 사이에서 송신되는 것을 필요로 한다. 변환된 3진수들은 다항식의 합이며, 인수들이 3 의 거듭제곱이고 계수들이 [0, 1, 2] 이다.
여기에서: Tk = 3진수 계수들, ∈ [0, 1, 2].
하나의 심볼 에러는 2 개의 인접하는 Tk 값들의 변경을 발생시킬 수 있고, 총합은 하기 식에 의해 변경될 수도 있다.
여기에서:
"n" = 에러있는 심볼의 랭크, 그리고
"a" 및 "b" 는 차이 계수들이다.
"a" 및 "b" 계수들은 하기에 관련한다:
식 (1) 은 하기와 같이 쓸 수 있다:
LSB들의 마지막 비트들이 에러에 의해 변경되지 않은 상태로 유지되기 위하여, 식 (2) 은 2 의 거듭제곱의 배수이어야 한다. 정수배가 아닌 2 의 거듭제곱의 제 1 랭크는, 하나의 심볼 에러가 식별되도록 하기 위해 얼마나 많은 LSB 최종 비트들이 미리 알려져야 하는지를 표기한다. 인수 3(n-1) 은 3 의 배수이고, 이는 변경되지 않으면, LSB 비트들을 변경시킬 것이다.
관련 인수 (±3a ±b) 의 분석은 심볼-투-3진수 코딩 다이어그램이 원형 대칭성을 갖는다는 견해하에 기초될 수도 있다. 따라서, 하나의 포인트의 설명은 모든 4 개의 포인트들을 커버한다. 예를 들어, "2"가 정확한 심볼이면, 임의의 다른 정확한 심볼 상황에 대해, 이는 개별적인 포지션들을 이들의 회전된 값들로 교체하기에 충분하다. 하기의 표 1 은 가능한 결과적인 "a" 계수들을 나타내고, 표 2 는 가능한 결과적인 "b" 계수들을 나타낸다.
하기의 표 3 은 "a" 및 "b" 계수들의 가능한 결과적인 조합들을 보여준다.
가능한 (a;b) 페어들은 동일의 가능한 "ERROR 심볼" 에 관련되는 것으로서, 동일한 백그라운드 로우에 도시된다. 직접 검사는 각각 이루어질 조합들이 존재함을 나타낸다:
(±3a ±b)=2, 예를 들어, (1;-1) 및 (-1;1),
(±3a ±b)=4, 예를 들어, (-2;2) 및 (2;-2)
(±3a ±b) = 8 을 산출하는 페어들이 존재하지 않는다; 즉, (2;2) 또는 (-2;-2) 에 대해서만 가능해진다.
따라서, LSB 끝에 임의의 알려진 3 개의 비트들은 임의의 하나의 단일 심볼 에러를 검출할 수 있다. 예를 들어, 임의의 다른 3 개의 알려진 비트들이 동일한 역할을 할 수도 있는 경우에도, "000" 가 이용될 수도 있다. SDA (218), 또는 SCL (216) 에서의 임의의 에러는 마지막 3 개의 비트들에 의해 검출될 수도 있다.
본원에 개시된 특정 양태들에 따르면, 부가의 에러 체크는, 데이터 전달이 진행중인 상태에서 STOP 조건 (908) 또는 반복된 START 조건 (928) 의 오류의 식별을 회피하기 위하여 필요에 따라, 심볼 2진수 "01" 로부터 2진수 "00" 로의 강제적인 트랜슬레이션, 또는 심볼 2진수 "11"로부터 2진수 "10"로의 강제적인 트랜슬레이션에 기초할 수 있다. 복수의 12-심볼 또는 20-심볼 프레임들의 전체 데이터 전달의 완료시, 4 개의 심볼들이 삽입될 수도 있고, STOP 조건 (820, 908) 을 생성하기 위해 이들 중 적어도 2 개가 2진수 "01" 이고 이에 후속하여 2진수 "11" 이다.
도 12 및 도 13 을 참조하여 보면, CCIe 의 종래의 구현들과 현재 설명된 SGbus 사이의 특정 차이들이 부각될 수도 있다. 예를 들어, 2 개의 코딩 스타일들은 양쪽 케이스들에서 디코딩된 3진수 계수들이 동일함에도 불구하고 상이한 심볼들을 생성할 수도 있다. 다른 예에서, SGbus 는 공유 버스 (602) 상에서 의도되지 않는 (그리고 원하지 않는) STOP 조건들 (908) 및 반복된 START 조건들 (928)(즉, 2진수 "01" 에서 2진수 "11" 로의 트랜지션, 또는 2진수 "11" 에서 2진수 "10" 으로의 트랜슬레이션) 을 회피한다. 그 후, 일부 데이터 스트림들에 대해, SGbus 는 송신물에 심볼들을 추가하고, 이에 의해, 데이터 스루풋을 감소시킨다. CCIe 인터페이스는 매 12 개의 심볼들 프레임에 대해 송신되는 바운더리 시퀀스를 갖는 한편, SGbus 버스는 프레임별이기보다는, 전체 데이터 전달의 종료시 오직 하나의 종료 시퀀스만을 갖는다.
제 1 예에서, 도 12 의 타이밍도 (1200) 는 송신기 (300) 의 트랜스코더 (302) 에 의해 3진-투-심볼들 컨버터 (304)(도 3 을 참조) 에 제공된 3진수 송신기 (Tx) 트랜지션 넘버들 (1202) 의 시퀀스를 예시한다. 컨버터는 시리얼 버스 (230) 를 통한 수신기 (320) 로의 송신을 위하여 심볼들 (1204) 의 스트림을 생성한다. 수신기 (320) 의 심볼-투-3진수 컨버터 (324) 는 3진수 수신기 (Rx) 트랜지션 넘버들 (1206) 을 생성한다. Tx 트랜지션 넘버들 (1202), 심볼들 (1204) 및 Rx 트랜지션 넘버들 (1206) 사이의 직접 관계가 존재한다.
제 2 예에서, 도 12 의 타이밍도 (1220) 는 제 1 SGbus 데이터 프레임의 송신을 예시하며, 송신에 의해, 송신기 (Tx) 3진수들 (1222) 의 시퀀스가 트랜스코더 (302) 에 의해 3진-투-심볼들 컨버터 (304)(도 3 을 참조) 에 제공된다. 여기에서, 3진-투-심볼들 컨버터 (304) 는 삽입된 추가적인 심볼들 (1230) 을 포함하는 심볼들 (1224) 의 스트림을 생성한다. 수신기 (320) 의 심볼-투-3진수 컨버터 (324) 는 3진수 수신기 (Rx) 트랜지션 넘버들 (1226) 을 생성한다. 심볼-투-3진수 컨버터 (324) 는 트랜스코더 (322) 에 의해 추출된 추가적인 넘버들 (1232) 을 포함하는 Rx 트랜지션 넘버들 (1226) 을 생성한다.
도 13 은 타이밍도들 (1300 및 1320) 에서의 제 3 및 제 4 예들을 포함하고, 이에 의해 제 3 타이밍도 (1300) 는 중간 및/또 최악의 SGbus 프레임에 관련되고, 제 4 타이밍 도 (1320) 는 마지막 SGbus 데이터 프레임에 관련된다. 이들 타이밍도들 (1300, 1320) 에서, 3진-투-심볼들 컨버터 (304) 는 삽입된 추가적인 심볼들 (1310 및 1330) 을 포함하는 심볼들 (1304, 1324) 의 스트림을 생성한다. 수신기 (320) 의 심볼-투-3진수 컨버터 (324) 는 3진수 Rx 트랜지션 넘버들 (1306, 1326) 을 생성한다. 심볼-투-3진수 컨버터 (324) 는 트랜스코더 (322) 에 의해 추출된 추가적인 넘버들 (1312 및 1332) 을 포함하는 Rx 트랜지션 넘버들 (1306, 1326) 을 생성한다.
상이한 데이터 전달 모드들은 버스 클라이언트들의 특성에 기초한 사용을 위해 선택된 모드와 함께, 공유된 시리얼 버스 상에서의 이용에 이용가능할 수도 있다. 일 예에서, 12-심볼 프레임들을 이용한 수정된 CCIe 데이터 전달 모드는 I2C 디바이스들이 존재하지 않거나 또는 버스 상에 참여하지 않을 때 그리고 이 모드에서 더미 트랜슬레이션에 대한 요구가 없을 때 이용가능하다. 다른 예에서, I2C 디바이스들이 공유된 버스 (602) 상에 존재하며, 그리고 수정된 CCIe 데이터 전달 모드가 12-심볼 프레임 및 더미 트랜슬레이션에 채택된다. 이 데이터 전달 모드의 특징은 I2C 클라이언트들의 능력들에 의존하지 않을 수도 있다는 것이다.
다른 예에서, I2C 디바이스들의 모든 유형들은 공유 버스 (602) 에 커플링되는 것으로 나타날 수도 있으며, 20-심볼 수정된 CCIe 데이터 전달 모드가, 각각의 20-심볼 프레임 앞에 삽입된 반복된 START 조건 (928) 에서 이용될 수도 있다. 이 모드에서, 더미 트랜슬레이션은 삽입되지 않고, 레거시 I2C 마스터들은 공유 버스 (602) 에 접속될 수 있다. 또 다른 예에서, 레거시 I2C 디바이들만이 공유 버스 (602) 상에 있고, 프라이머리 마스터 디바이스는 I2C 모드들을 이용한 모드 데이터 전달들에서는, 버스의 능력에 따라 I2C 모드에서 버스를 제어한다.
본원에 개시된 바와 같이, SGbus 는 두개의 와이어들을 이용하여 멀티드롭 및 멀티마스터 능력들을 제공할 수도 있는고속 시리얼 인터페이스 버스일 수 있다. 통상의 클록 신호는 요구되지 않고 양쪽 와이어들을 이용하여 송신된 심볼들은 데이터로 인코딩된다. 클록 정보는 연속하는 심볼들의 각각의 페어 사이의 2 개의 신호 와이어들 중 적어도 하나의 와이어의 시그널링 상태에서의 트랜지션을 보장하는 것에 의해 심볼들의 스트림에 임베딩된다. SGbus 프로토콜은 커맨드 코드들을 이용할 수도 있다. 대역내 인터럽트 능력이 제공되고, 낮은 레이턴시를 갖는 비동기 핫플러그가 지원된다. SGbus 디바이스들은 동일한 물리 버스에 접속될 수 있는 레거시 I2C 디바이스들에 적용하는 동일한 제약들을 준수하여, I2C 디바이스들과 동일한 버스 상에 공존할 수 있다.
일 양태에서, SGbus 는 컨테이너 아키텍쳐를 이용하여 통신하고, 이에 의해 데이터 전달이 버스 관리 엘리먼트들 사이에서 캡슐화된다. 데이터는 버스에 접속된 클라이언트 디바이스들에 의해 요구되거나 또는 선호됨에 따라 복수의 프로토콜들 중 하나를 이용하여 전달될 수도 있다. 일 예에서, 데이터는 CCIe 프로토콜들을 이용하여 전달될 수도 있고, 그리고 다른 예에서, 데이터는 I2C 순응 프로토콜에 따라 전달될 수도 있다. 레거시 I2C 슬레이브들이 어드레싱될 수도 있고 페이로드들이 대응하는 I2C 모드 프로토콜들에서 수송되었지만, 데이터 페이로드는 통상 CCIe 프로토콜들을 이용하여 운반된다.
SGbus 프로토콜과 연관된 버스 관리 기능들은 버스 중재, 대역내 인터럽트, 핫-플로그, 멀티-마스터, 데이터 전달 모드로의 진입 및 종료를 포함한다.
SGbus 마스터 디바이스는 동적 어드레스 할당 능력을 가질 수도 있다. SGbus 마스터는 대역내 인터럽트들에 이용된 클록 생성기, 버스에 접속된 디바이스들의 특징들 및 어드레스들을 보유하기 위한 레지스터 기반 메모리를 포함할 수도 있다. SGbus 마스터 디바이스는 I2C 또는 CCIe 데이터 전달 프로토콜들을 이용하여 통신할 수도 있다.
SGbus 슬레이브는 동적으로 어드레싱가능할 수도 있고, 슬레이브가 접속된 버스에 대한 자신의 어드레스를 요청 및 수신가능할 수도 있다. SGbus 슬레이브 디바이스는 적어도 CCIe 프로토콜들을 지원하고, 일부 예들에서, SGbus 슬레이브 디바이스는 레거시 I2C 프로토콜들을 이용하여 통신가능할 수도 있다.
SGbus 는 송신동안 최적화된 (바이트 당 최소 에너지 량) 을 제공할 수 있는 CCIe 스타일 코딩을 적응시키는 데이터 전달 프로토콜을 포함한 고속 데이터 전달 프로토콜을 지원한다. 대역내 IRQ 절차가 지원될 수도 있고, 최소 레이턴시 제약들 (통상적으로 10 ㎲) 이 부여될 수도 있다. 하트비트-유형 신호에 대한 필요가 없기 때문에 증가된 효율성이 얻어질 수도 있다. 비동기식, 핫-플러그 능력이 제공될 수도 있다.
일부 경우들에서, 증가된 시스템 설계 유연성은 로컬 시스템 설계 레벨에서의 구성에 의해 실현된다. 동적 어드레싱은 글로벌 어드레싱 엔티티를 감소 또는 제거한다. 동적 어드레싱은 랜덤 액세스 생성기들을 채용하고, 이에 의해 제조 오버헤드를 감소시킨다.
SGbus 의 특정 구현들은 모든 레거시 I2C 디바이스들과 완전히 공존할 수 있다. 그러나, 특정 저속 및 초저비용 레거시 I2C 디바이스들의 존재는 레거시 I2C 마스터들의 사용을 금지할 수도 있다. 레거시 I2C 디바이스들은 매 CCIe 코딩된 프레임에 대한 라인 상에서 자신들의 어드레스 매칭을 평가할 필요가 없다.
일부 경우들에서, 강화된 능력 및 속도 증가는, 하나 이상의 부가적 라인들의 추가에 의해 얻어질 수도 있고, 이는 보다 높은 수들로의 코딩 베이스에서의 변경을 가능하게 한다. 예를 들어, 단일의 추가적인 링크 라인, 0-7 심볼들이 전달될 수도 있고, 상대 점프들이 0 에서부터 6 으로 생기고 이에 따라 베이스 7 을 허용한다.
프로세싱 회로들 및 이들의 구성의 특정 양태들의 예들
도 14 는 본원에 개시된 하나 이상의 기능들을 수행하도록 구성될 수도 있는 프로세싱 회로 (1402) 를 채택하는 장치에 대한 하드웨어 구현의 간략화된 예를 예시하는 개념도 (1400) 이다. 본 개시물의 여러 양태들에 따르면, 본원에 개시된 소자, 또는 소자의 임의의 부분 또는 소자들의 임의의 조합은 프로세싱 회로 (1402) 를 이용하여 구현될 수도 있다. 프로세싱 회로 (1402) 는 하드웨어 및 소프트웨어 모듈들의 일부 조합에 의해 제어되는 하나 이상의 프로세서들을 (1404) 을 포함할 수도 있다. 프로세서들 (1404) 의 예들은 마이크로프로세서들, 마이크로제어기들, 디지털 신호 프로세서들 (DSP들), 필드 프로그래밍가능 게이트 어레이들 (FPGA들), 프로그래밍가능 로직 디바이스들 (PLD들), 상태 머신들, 시퀀서들, 게이트된 로직, 이산 하드웨어 회로들, 및 본 개시물에 걸쳐 설명된 여러 기능들을 수행하도록 구성되는 다른 적절한 하드웨어를 포함한다. 하나 이상의 프로세서들 (1404) 은 특정 기능들을 수행하고 소프트웨어 모듈들 (1416) 중 하나에 의해 구성, 증강 또는 제어될 수도 있는 특수화된 프로세서들을 포함할 수도 있다. 하나 이상의 프로세서들 (1404) 은 초기화 동안에 로딩된 하나 이상의 소프트웨어 모듈들 (1416) 의 조합을 통하여 구성될 수도 있고, 동작 동안에 소프트웨어 모듈들 (1416) 중 하나 이상을 로딩 또는 언로딩함으로써 추가로 구성될 수도 있다.
예시된 예에서, 프로세싱 회로 (1402) 는 버스 (1410) 에 의해 일반적으로 표현되는 버스 아키텍쳐로 구현될 수도 있다. 버스 (1410) 는 프로세싱 회로 (1402) 의 특정 애플리케이션 및 전체 설계 제약들에 의존하는 임의의 수의 상호접속 버스들 및 브리지들을 포함할 수도 있다. 버스 (1410) 는 하나 이상의 프로세서들 (1404) 및 저장부 (1406) 를 포함하는 여러 회로들을 함께 링크한다. 저장부 (1406) 는 메모리 디바이스들 및 대용량 디바이스들을 포함할 수도 있고, 본원에서 컴퓨터 판독가능 매체 및/또는 프로세서 판독가능 매체로서 지칭될 수도 있다. 버스 (1410) 는 또한 타이밍 소스들, 타이머들, 주변기기들, 전압 레귤레이터들, 및 전력 관리 회로들과 같은 여러 다른 회로들을 링크할 수도 있다. 버스 인터페이스 (1408) 는 버스 (1410) 와, 하나 이상의 트랜시버들 (1412) 사이에 인터페이스를 제공할 수도 있다. 트랜시버 (1412) 는 프로세싱 회로에 의해 지원되는 각각의 네트워킹 기술에 대하여 제공될 수도 있다. 일부 경우들에서, 다수의 네트워킹 기술들이 트랜시버 (1412) 에서 찾아지는 프로세싱 모듈들 또는 회로의 일부 또는 전부를 공유할 수도 있다. 각각의 트랜시버 (1412) 는 송신 매체를 통하여 여러 다른 장치와 통신하는 수단을 제공한다. 장치의 특성에 의존하여, 사용자 인터페이스 (1418)(예를 들어, 키패드, 디스플레이, 스피커, 마이크로폰, 조이스틱) 가 또한 제공될 수도 있고, 버스 인터페이스 (1408) 를 통하여 또는 버스 (1410) 에 직접적으로 통신가능하게 커플링될 수도 있다.
프로세서 (1404) 는 저장부 (1406) 를 포함할 수도 있는 컴퓨터 판독가능 매체에 저장된 소프트웨어의 실행을 포함할 수도 있는 범용 프로세싱을 그리고 버스 (1410) 의 관리를 담당할 수도 있다. 이러한 점에서, 프로세서 (1404) 를 포함한, 프로세싱 회로 (1402) 는 본원에 개시된 방법들, 기능들, 및 기술들 중 어느 것을 구현하는데 이용될 수도 있다. 저장부 (1406) 는 소프트웨어를 실행할 때 프로세서 (1404) 에 의해 조작되는 데이터를 저장하기 위해 이용될 수도 있고, 소프트웨어는 본원에 개시된 방법들 중 어느 하나를 구현하도록 구성될 수도 있다.
프로세싱 회로 (1402) 에서의 하나 이상의 프로세서들 (1404) 은 소프트웨어를 실행할 수도 있다. 본원에서 이용되는 바와 같이, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 기술 언어, 또는 달리 지칭되더라도, 소프트웨어는 명령들, 명령 세트들, 코드, 코드 세그먼트들, 프로그램 코드, 프로그램들, 하위프로그램들, 소프트웨어 모듈들, 애플리케이션들, 소프트웨어 애플리케이션들, 소프트웨어 패키지들, 루틴들, 서브루틴들, 오브젝트들, 실행가능물들, 실행의 스레드들, 절차들, 기능들, 알고리즘들 등을 의미하는 것으로 광범위하게 간주되어야 한다. 소프트웨어는 외부 컴퓨터 판독가능 매체에서 또는 저장부 (1406) 에서 컴퓨터 판독가능 형태로 상주할 수도 있다. 컴퓨터 판독가능 매체 및/또는 저장부 (1406) 는 비일시적 컴퓨터 판독가능 매체일 수도 있다. 비일시적 컴퓨터 판독가능 매체는 예를 들어, 자기 저장 디바이스 (예를 들어, 하드 디스크, 플로피 디스크, 마그네틱 스트립), 광학 디스크 (예를 들어, 컴팩트 디스크 (CD) 또는 디지털 다기능 디스크 (DVD)), 스마트 카드, 플래시 메모리 디바이스 (예를 들어, "플래시 드라이브", 카드, 스틱, 키 드라이브), 랜덤 액세스 메모리 (RAM), 판독 전용 메모리 (ROM), 프로그래밍가능 ROM (PROM), 소거가능 PROM (EPROM), 전기적 소거가능 PROM (EEPROM), 레지스터, 탈착가능 디스크, 및/또는 컴퓨터에 의해 액세스 및 판독될 수도 있는 소프트웨어 및/또는 명령들을 저장하기 위한 임의의 다른 적절한 매체를 포함한다. 컴퓨터 판독가능 매체 및/또는 저장부 (1406) 는 또한 예를 들어, 반송파, 송신 라인, 및 컴퓨터에 의해 액세스 및 판독될 수도 있는 소프트웨어 및/또는 명령들을 송신하기 위한 임의의 다른 적절한 매체를 포함할 수도 있다. 컴퓨터 판독가능 매체 및/또는 저장부 (1406) 는 프로세싱 회로 (1402) 에, 프로세싱 회로 (1402) 의 외부에 있는 프로세서 (1404) 에 상주할 수도 있거나 또는 프로세싱 회로 (1402) 를 포함한 다수의 엔티티들에 걸쳐 분산될 수도 있다. 컴퓨터 판독가능 매체 및/또는 저장부 (1406) 는 컴퓨터 프로그램 제품에서 구현될 수도 있다. 예를 들어, 컴퓨터 프로그램 제품은 패키징 재료들에서 컴퓨터 판독가능 매체를 포함할 수도 있다. 당해 기술 분야의 당업자는 전체 시스템 상에 부여되는 전체 설계 제약들 및 특정 애플리케이션에 따라 본 개시물 전반에 걸쳐 제시된 설명의 기능성을 최상으로 구현하는 방법을 알고 있을 것이다.
저장부 (1406) 는 소프트웨어 모듈들 (1416) 로서 본원에서는 지칭될 수도 있는 로딩가능 코드 세그먼트들, 모듈들, 애플리케이션들, 프로그램들 등에서 유지 및/또는 조직화되는 소프트웨어를 유지할 수도 있다. 소프트웨어 모듈들 (1416) 각각은 프로세싱 회로 (1402) 상에 설치 또는 로딩되고 하나 이상의 프로세서들 (1404) 에 의해 실행될 때 하나 이상의 프로세서들 (1404) 의 동작을 제어하는 런타임 이미지 (1414) 에 기여하는 명령들 및 데이터를 포함할 수도 있다. 실행될 때, 특정 명령들은 프로세싱 회로 (1402) 로 하여금 본원에 설명된 특정 방법들, 알고리즘들, 및 프로세스들에 따라 기능을 수행하게 할 수도 있다.
소프트웨어 모듈들 (1416) 의 일부는 프로세싱 회로 (1402) 의 초기화 동안에 로딩될 수도 있고, 이들 소프트웨어 모듈들 (1416) 은 본원에 설명된 여러 기능들의 수행을 실행하도록 프로세싱 회로 (1402) 를 구성할 수도 있다. 예를 들어, 일부 소프트웨어 모듈들 (1416) 은 프로세서 (1404) 의 내부 디바이스들 및/또는 로직 회로들 (1422) 을 구성할 수도 있고, 트랜시버 (1412), 버스 인터페이스 (1408), 사용자 인터페이스 (1418), 타이머들, 수학적 코프로세서들 등과 같은 외부 디바이스들에 대한 액세스를 관리할 수도 있다. 소프트웨어 모듈들 (1416) 은 인터럽트 핸들러들 및 디바이스 드라이버들과 상호작용하고 프로세싱 회로 (1402) 에 의해 제공된 여러 리소스들에 대한 액세스를 제어하는 제어 프로그램 및/또는 오퍼레이팅 시스템을 포함할 수도 있다. 리소스들은 메모리, 프로세싱 시간, 트랜시버 (1412), 사용자 인터페이스 (1418) 에 대한 액세스 등을 포함할 수도 있다.
프로세싱 회로 (1402) 의 하나 이상의 프로세서들 (1404) 은 다기능성일 수도 있어, 소프트웨어 모듈들 (1416) 중 일부가 상이한 인스턴스들, 또는 동일한 기능의 상이한 인스턴스들을 수행하도록 로딩 및 구성된다. 하나 이상의 프로세서들 (1404) 은 예를 들어, 사용자 인터페이스 (1418), 트랜시버 (1412) 및 디바이스 드라이버들로부터의 입력들에 응답하여 개시된 백그라운드 작업들을 관리하도록 추가적으로 적응될 수도 있다. 다수의 기능들의 수행을 지원하기 위하여, 하나 이상의 프로세서들 (1404) 은 멀티테스킹 환경을 제공하도록 구성될 수도 있어, 이에 의해 복수의 기능들 각각이 필요에 따라, 또는 원하는 바에 따라 하나 이상의 프로세서들 (1404) 에 의해 서비스되는 작업들의 세트로서 구현된다. 일 예에서, 멀티태스킹 환경은 상이한 작업들 간에 프로세서 (1404) 의 제어를 통과시키는 타임쉐어링 프로그램 (1420) 을 이용하여 구현될 수도 있고, 이에 의해 임의의 현저한 동작들의 완료시에, 및/또는 이러한 인터럽트와 같은 입력에 응답하여, 각각의 작업이 하나 이상의 프로세서들 (1404) 의 제어를 타임쉐어링 프로그램 (1420) 으로 되돌린다. 작업이 하나 이상의 프로세서들 (1404) 의 제어를 행할 때, 프로세싱 회로는 제어 중인 작업과 연관된 기능에 의해 어드레싱되는 목적들에 대하여 효과적으로 특수화된다. 타임쉐어링 프로그램 (1420) 은 오퍼레이팅 시스템, 라운드 로빈 기반으로 제어들을 트랜스퍼하는 메인 루프, 기능들의 우선순위화에 따라 하나 이상의 프로세서들 (1404) 의 제어를 할당하는 기능 및/또는 하나 이상의 프로세서들 (1404) 의 제어를 핸들링 기능에 제공함으로써 외부 이벤트들에 응답하는 인터럽트 구동된 메인 루프를 포함할 수도 있다.
도 15 는 SGbus 시리얼 인터페이스 상의 데이터 통신들을 위한 방법의 특정 양태들을 예시하는 플로우차트들 (1500, 1520) 을 포함한다. 방법의 여러 단계들은 도 2 에 예시된 버스 마스터 디바이스 (220), 도 3 에 예시된 디바이스들 (300 또는 320), 및/또는 본원에 설명된 다른 디바이스들의 일정 조합을 포함하는 디바이스에 의해 수행될 수도 있다.
블록 1502 에서, 마스터 디바이스는 시리얼 버스가 제 1 동작 모드에서 동작되는 동안 시리얼 버스에 커플링된 복수의 디바이스들에 제 1 커맨드를 송신할 수도 있다. 제 1 커맨드는 시리얼 모드가 제 2 동작 모드에서 동작되게 하도록 제 1 프로토콜에 따라 송신될 수도 있다.
블록 1504 에서, 마스터 디바이스는 시리얼 버스가 제 2 동작 모드에서 동작되는 동안 제 2 프로토콜에 따라 복수의 디바이스들 중 제 1 디바이스와 통신할 수도 있다 (플로우차트 1520 을 참조함).
블록 1506 에서, 마스터 디바이스는 제 2 동작 모드를 만료하도록 제 1 프로토콜에 따라 복수의 디바이스들에 제 2 커맨드를 송신할 수도 있다.
일부 경우들에서, 제 1 디바이스와 통신하는 것은, 2 개의 심볼들이 시리얼 버스를 통하여 송신되면, 2 개의 심볼들을 송신하는 것이, 50 나노초 초과의 지속기간을 갖는 펄스들로 하여금 시리얼 버스의 제 1 와이어 상에서 발생하게 한다고 결정하는 것, 및 심볼들의 시퀀스 내에 엑스트라 심볼을 삽입하는 것을 포함하며, 엑스트라 심볼은 제 1 와이어 상의 펄스를 만료하도록 선택된다.
제 2 디바이스는 엑스트라 심볼이 2 개의 심볼들 사이에 삽입될 때 시리얼 버스가 제 2 동작 모드에서 동작되는 동안 시리얼 버스를 통한 통신들을 무시할 수도 있다.
일 예에서, 심볼들의 시퀀스의 각각의 심볼은 복수의 비트들을 가지며, 각각의 비트는 하나의 심볼 간격 동안에 시리얼 버스의 하나의 와이어의 시그널링 상태를 정의한다. 심볼들의 시퀀스에서 연속하는 심볼들의 각각의 페어는 2 개의 상이한 심볼들을 가질 수도 있다. 시리얼 버스의 적어도 하나의 와이어의 시그널링 상태는 연속하는 심볼들의 각각의 페어에서의 제 2 심볼이 송신될 때 변할 수도 있다.
다른 예에서, 제 3 커맨드는 시리얼 버스가 제 1 동작 모드에서 동작되는 동안 복수의 디바이스들에 송신될 수도 있다. 제 3 커맨드는 시리얼 모드가 제 3 동작 모드에서 동작되게 하도록 제 1 프로토콜에 따라 송신될 수도 있다. 마스터 디바이스는 시리얼 버스가 제 3 동작 모드에서 동작되는 동안에 제 3 프로토콜에 따라 복수의 디바이스들의 제 3 디바이스와 통신할 수도 있다. 마스터 디바이스는 제 2 동작 모드를 만료하도록 제 1 프로토콜에 따라 복수의 디바이스들에 제 4 커맨드를 송신할 수도 있다.
제 2 플로우차트 (1520) 는 제 1 디바이스와 통신하는 것에 관련된다. 블록 1522 에서, 마스터 디바이스는 심볼들의 시퀀스에서의 데이터를 인코딩할 수도 있고, 클록 정보는 심볼들의 시퀀스에서 심볼들의 연속하는 페어들 사이의 트랜지션들에서 인코딩된다.
블록 1524 에서, 마스터 디바이스는 엑스트라 심볼이 없는 2 개의 심볼들의 송신이 시리얼 버스에 대한 원하지 않는 시그널링 조건을 야기하고 그리고 엑스트라 심볼이 있는 2 개의 심볼들의 송신이 시리얼 버스에 대한 원하지 않는 시그널링 조건을 방지할 때, 심볼들의 시퀀스들에서 2 개의 심볼들 사이에 엑스트라 심볼을 삽입할 수도 있다.
블록 1526 에서, 마스터 디바이스는 시리얼 버스 상에서 심볼들의 시퀀스를 송신할 수도 있다.
일 예에서, 원하지 않는 시그널링 조건은 시리얼 버스의 2 개의 와이어들 상의 트랜지션들의 상대적 타이밍에 관련한다.
다른 예에서, 원하지 않는 시그널링 조건은 시리얼 버스의 하나의 와이어 상에서 송신되는 펄스의 지속기간에 관련한다.
다른 예에서, 원하지 않는 시그널링 조건은 제 2 프로토콜 이외의 프로토콜에 의해 정의된 동기화 또는 START 조건에 관련한다.
제 1 프로토콜은 I2C 프로토콜에 순응하거나 또는 I2C 프로토콜과 호환가능할 수도 있고, 원하지 않는 시그널링 조건은 I2C 프로토콜에 의해 정의된 START 조건에 관련한다.
도 16 은 프로세싱 회로 (1602) 를 채용하는 장치 (1600) 에 대한 하드웨어 구현의 단순화된 예를 예시하는 다이어그램이다. 프로세싱 회로는 통상적으로 마이크로프로세서, 마이크로제어기, 디지털 신호 프로세서, 시퀀서, 및 상태 머신 중 하나 이상을 포함하는 프로세서 (1616) 를 갖는다. 프로세싱 회로 (1602) 는 버스 (1620) 에 의해 일반적으로 표현되는 버스 아키텍처로 구현될 수도 있다. 버스 (1620) 는 프로세싱 회로 (1602) 의 특정 애플리케이션 및 전체 설계 제약들에 의존하는 임의의 수의 상호접속 버스들 및 브리지들을 포함할 수도 있다. 버스 (1620) 는 프로세서 (1616), 여러 모듈들 또는 회로들 (1604, 1606, 1608 및 1610), 커넥터들 또는 와이어들 (1614) 을 통하여 통신하도록 구성가능한 라인 인터페이스 회로 (1612), 및 컴퓨터 판독가능 저장 매체 (1618) 에 의해 표현된 하나 이상의 프로세서들 및/또는 하드웨어 모듈들을 포함한 여러 회로들을 함께 링크시킨다. 버스 (1620) 는 또한 여러 다른 회로들, 예컨대, 타이밍 소스들, 주변기기들, 전압 조절기들, 및 전력 관리 회로들을 링크할 수도 있으며, 이는 공지되어 있으므로, 더 이상 설명되지 않을 것이다.
프로세서 (1616) 는 컴퓨터 판독가능 저장 매체 (1618) 상에 저장된 소프트웨어의 실행을 포함하는, 일반 프로세싱을 담당한다. 프로세서 (1616) 에 의해 실행될 때, 소프트웨어는 프로세싱 회로 (1602) 로 하여금 임의의 특정 장치에 대하여 위에 설명된 여러 기능들을 수행하게 한다. 컴퓨터 판독가능 저장 매체 (1618) 는 또한, 소프트웨어를 실행시킬 때 프로세서 (1616) 에 의해 조작되는, 커넥터들 (1614) 을 통하여 송신되는 심볼들로부터 디코딩되는 데이터를 포함한, 데이터를 저장하는데 이용될 수도 있다. 프로세싱 회로 (1602) 는 모듈들 (1604, 1606, 1608, 1610) 중 적어도 하나를 더 포함한다. 모듈들 (1604, 1606, 1608, 1610) 은 컴퓨터 판독가능 저장 매체 (1618) 상에 상주/저장되는, 프로세서 (1616) 에서 실행되는 소프트웨어 모듈, 프로세서 (1616) 에 커플링되는 하나 이상의 하드웨어 모듈들 또는 이들의 일정 조합일 수도 있다. 모듈들 (1604, 1606, 1608, 및/또는 1610) 은 마이크로제어기 명령들, 상태 머신 구성 파라미터들, 또는 이들의 일정 조합을 포함할 수도 있다.
일 구성에서, 무선 통신을 위한 장치 (1600) 는 시리얼 버스가 제 1 동작 모드에서 동작되는 동안 시리얼 버스 (예를 들어, 커넥터들 또는 와이어들 (1614)) 에 커플링되는 복수의 디바이스들에 제 1 커맨드를 송신하도록 구성되는 모듈들 및/또는 회로들 (1608) 을 포함하고, 제 1 커맨드는 시리얼 버스로 하여금 제 2 동작 모드에서 동작되게 하도록 제 1 프로토콜에 따라 송신된다. 장치 (1600) 는 또한, 제 2 프로토콜에 따라 심볼들의 시퀀스에서의 데이터를 인코딩하도록 구성되는 모듈들 및/또는 회로들 (1604) 을 포함할 수도 있고, 클록 정보는 심볼들의 시퀀스에서 심볼들의 연속하는 페어들 사이의 트랜지션들에서 인코딩된다. 장치 (1600) 는 또한, 엑스트라 심볼이 없는 2 개의 심볼들의 송신이 시리얼 버스에 대한 원하지 않는 시그널링 조건을 야기하고 그리고 엑스트라 심볼이 있는 2 개의 심볼들의 송신이 시리얼 버스에 대한 원하지 않는 시그널링 조건을 방지할 때, 심볼들의 시퀀스들에서 2 개의 심볼들 사이에 엑스트라 심볼을 삽입하도록 구성되는 모듈들 및/또는 회로들 (1606) 을 포함할 수도 있다. 장치 (1600) 는 또한, 제 2 프로토콜에 따라 시리얼 버스 상에서 심볼들의 시퀀스를 송신하도록 구성되는 모듈들 및/또는 회로들 (1608, 1610, 1612) 을 포함할 수도 있다. 장치 (1600) 는 또한, 제 2 동작 모드를 만료하도록 제 1 프로토콜에 따라 복수의 디바이스들에 제 2 커맨드를 송신하도록 구성되는 모듈들 및/또는 회로들 (1608, 1610) 을 포함할 수도 있다.
도 17 은 SGbus 시리얼 인터페이스 상에서의 데이터 통신들을 위한 방법을 예시하는 플로우차트 (1700) 이다. 방법의 여러 단계들은 도 2 에 예시된 버스 마스터 디바이스 (220), 도 3 에 예시된 디바이스들 (300 또는 320), 및/또는 본원에 설명된 다른 디바이스들의 일정 조합을 포함하는 디바이스에 의해 수행될 수도 있다.
블록 1702 에서, 마스터 디바이스는 시리얼 버스가 제 1 동작 모드에서 동작되는 동안 시리얼 버스에 커플링된 복수의 디바이스들에 제 1 커맨드를 송신할 수도 있다. 제 1 커맨드는 제 1 프로토콜에 따라 송신될 수도 있다. 제 1 커맨드는 시리얼 버스로 하여금 제 2 동작 모드에서 동작되게 할 수도 있다.
블록 1704 에서, 마스터 디바이스는 시리얼 버스가 제 2 동작 모드에서 동작되는 동안 제 2 프로토콜에 따라 복수의 디바이스들 중 제 1 디바이스와 통신할 수도 있다.
블록 1706 에서, 마스터 디바이스는 제 2 동작 모드를 만료하도록 제 1 프로토콜에 따라 복수의 디바이스들에 제 2 커맨드를 송신할 수도 있다.
제 2 동작 모드에서 시리얼 버스의 제 1 와이어 상에서 송신되는 제한된-지속기간 펄스들은 복수의 디바이스들 중 제 2 디바이스의 필터로 하여금 제한된-지속기간 펄스들을 억제하게 하는 지속기간을 가질 수도 있다. 제 2 디바이스는 제한된-지속기간 펄스들이 억제될 때 시리얼 버스가 제 2 동작 모드에서 동작되는 동안 시리얼 버스 상의 통신들을 무시할 수도 있다.
일 예에서, 제 1 동작 모드는 I2C 통신 모드이다. 제한된-지속기간 펄스들은 50 나노초 이하의 지속기간을 가질 수도 있다. 제한된-지속기간 펄스들은 시리얼 버스의 SCL 와이어 상에서 송신될 수도 있다.
다른 예에서, 제 2 프로토콜에 따라 통신하는 것은 멀티-비트 심볼들의 시퀀스에서의 데이터를 인코딩하는 것을 포함하며, 각각의 멀티-비트 심볼의 각각의 비트는 하나의 심볼 간격에 대한 시리얼 버스의 하나의 와이어의 시그널링 상태를 정의한다. 마스터 디바이스는 2 개 이상의 연속하는 심볼들이 시리얼 버스를 통하여 송신되면 2 개 이상의 연속하는 심볼들을 송신하는 것이, 50 나노초 초과의 지속기간을 갖는 펄스로 하여금 제 1 와이어 상에서 발생하게 한다고 결정할 수도 있다. 따라서, 마스터 디바이스는 심볼들의 시퀀스 내에 엑스트라 심볼을 삽입할 수도 있고, 엑스트라 심볼은 50 나노초 초과의 지속기간을 갖는 펄스의 발생을 방지하기 위해 선택된다. 각각의 멀티-비트 심볼의 하나의 비트는 제한된-지속기간 펄스가 대응 심볼 간격에서 제 1 와이어 상에서 송신되는지의 여부를 정의할 수도 있다.
다른 예에서, 제 2 동작 모드는 CCIe 통신 모드이다.
다른 예에서, 제 1 디바이스는 센서를 포함하고, 제 2 동작 모드는 복수의 상이한 센서들을 커플링하기 위하여 채택된 프로토콜을 지원한다.
다른 예에서, 마스터 디바이스는 시리얼 버스가 제 1 동작 모드에서 동작되는 동안 복수의 디바이스들에 제 3 커맨드를 송신할 수도 있다. 제 3 커맨드는 시리얼 모드가 제 3 동작 모드에서 동작되게 하도록 제 1 프로토콜에 따라 송신될 수도 있다. 그 후, 마스터 디바이스는 시리얼 버스가 제 3 동작 모드에서 동작되는 동안 복수의 디바이스들 중 제 3 디바이스와, 제 3 프로토콜에 따라 통신할 수도 있다. 마스터 디바이스는 후속하여, 제 2 동작 모드를 만료하도록 제 1 프로토콜에 따라 복수의 디바이스들에 제 4 커맨드를 송신할 수도 있다. 제 2 동작 모드에서 제 1 와이어 상에서 송신되는 제한된-지속기간 펄스들은 복수의 디바이스들 중 제 2 디바이스의 필터로 하여금 제한된-지속기간 펄스들을 억제하게 하는 지속기간을 갖는다.
다른 예에서, 제 1 마스터 디바이스는 클록 정보가 심볼들의 시퀀스에서의 심볼들의 연속하는 페어들 사이의 트랜지션들에서 인코딩되는 경우 심볼들의 시퀀스에서의 데이터를 인코딩하는 것, 엑스트라 심볼이 없는 2 개의 심볼들의 송신이 시리얼 버스에 대한 원하지 않는 시그널링 조건을 야기하고 엑스트라 심볼을 갖는 2 개의 심볼들의 송신이 시리얼 버스 상의 원하지 않는 시그널링 조건을 방지할 때, 심볼들의 시퀀스에서의 2 개의 심볼들 사이에 엑스트라 심볼을 삽입하는 것, 및 시리얼 버스 상에서 심볼들의 시퀀스를 송신하는 것에 의해, 제 1 디바이스와 통신할 수도 있다.
도 18 은 프로세싱 회로 (1802) 를 채용하는 장치 (1800) 에 대한 하드웨어 구현의 단순화된 예를 예시하는 다이어그램이다. 프로세싱 회로는 통상적으로 마이크로프로세서, 마이크로제어기, 디지털 신호 프로세서, 시퀀서, 및 상태 머신 중 하나 이상을 포함하는 프로세서 (1816) 를 갖는다. 프로세싱 회로 (1802) 는 버스 (1820) 에 의해 일반적으로 표현되는 버스 아키텍처로 구현될 수도 있다. 버스 (1820) 는 프로세싱 회로 (1802) 의 특정 애플리케이션 및 전체 설계 제약들에 의존하는 임의의 수의 상호접속 버스들 및 브리지들을 포함할 수도 있다. 버스 (1820) 는 프로세서 (1816), 여러 모듈들 또는 회로들 (1804, 1806, 1808, 1810), 커넥터들 또는 와이어들 (1814) 을 통하여 통신하도록 구성가능한 라인 인터페이스 회로들 (1812), 및 컴퓨터 판독가능 저장 매체 (1818) 에 의해 표현된 하나 이상의 프로세서들 및/또는 하드웨어 모듈들을 포함한 여러 회로들을 함께 링크시킨다. 버스 (1820) 는 또한 여러 다른 회로들, 예컨대, 타이밍 소스들, 주변기기들, 전압 조절기들, 및 전력 관리 회로들을 링크할 수도 있으며, 이는 공지되어 있으므로, 더 이상 설명되지 않을 것이다.
프로세서 (1816) 는 컴퓨터 판독가능 저장 매체 (1818) 상에 저장된 소프트웨어의 실행을 포함하는, 일반 프로세싱을 담당한다. 프로세서 (1816) 에 의해 실행될 때, 소프트웨어는 프로세싱 회로 (1802) 로 하여금 임의의 특정 장치에 대하여 위에 설명된 여러 기능들을 수행하게 한다. 컴퓨터 판독가능 저장 매체 (1818) 는 또한, 소프트웨어를 실행시킬 때 프로세서 (1816) 에 의해 조작되는, 커넥터들 (1814) 을 통하여 송신되는 심볼들로부터 디코딩되는 데이터를 포함한, 데이터를 저장하는데 이용될 수도 있다. 프로세싱 회로 (1802) 는 모듈들 (1804, 1806, 1808, 1810) 중 적어도 하나를 더 포함한다. 모듈들 (1804, 1806, 1808, 1810) 은 컴퓨터 판독가능 저장 매체 (1818) 상에 상주/저장되는, 프로세서 (1816) 에서 실행되는 소프트웨어 모듈, 프로세서 (1816) 에 커플링되는 하나 이상의 하드웨어 모듈들 또는 이들의 일정 조합일 수도 있다. 모듈들 (1804, 1806, 1808, 및/또는 1810) 은 마이크로제어기 명령들, 상태 머신 구성 파라미터들, 또는 이들의 일정 조합을 포함할 수도 있다.
일 구성에서, 무선 통신을 위한 장치 (1800) 는 시리얼 버스가 제 1 동작 모드에서 동작되는 동안 시리얼 버스 (예를 들어, 커넥터들 또는 와이어들 (1814)) 에 커플링되는 복수의 디바이스들에 제 1 커맨드를 송신하도록 구성되는 모듈들 및/또는 회로들 (1808, 1810) 을 포함하고, 제 1 커맨드는 시리얼 버스로 하여금 제 2 동작 모드에서 동작되게 하도록 제 1 프로토콜에 따라 송신된다. 장치 (1800) 는 또한, 시리얼 모드가 제 2 동작 모드에서 동작되는 동안 복수의 디바이스들 중 제 1 디바이스와, 제 2 프로토콜에 따라 통신하도록 구성되는 모듈들 및/또는 회로들 (1806, 1810), 및 제 2 동작 모드를 만료하도록 제 1 프로토콜에 따라 복수의 디바이스들에 제 2 커맨드를 송신하도록 구성도는 모듈들 및/또는 회로들 (1808, 1810) 을 포함할 수도 있고, 제 2 동작 모드에서 시리얼 버스의 제 1 와이어 상의 송신에 제한된-지속기간 펄스들을 제공하도록 구성되는 모듈들 및/또는 회로들 (1804, 1810) 은 복수의 디바이스들의 제 2 디바이스의 필터로 하여금, 제한된-지속기간 펄스들을 억제하게 하는 지속기간을 갖는다.
개시된 프로세스들에서 단계들의 특정의 순서 또는 계층은 예시적인 접근방식들의 예시인 것이 이해된다. 설계 선호사항들에 기초하여, 프로세서들에서의 단계들의 특정 순서 또는 계층은 재배열될 수도 있음이 이해된다. 추가로, 일부 단계들은 결합 또는 생략될 수도 있다. 수반된 방법 청구항들은 샘플 순서에서의 다양한 단계들의 요소들을 제시하고, 제시된 특정 순서 또는 계층으로 제한되는 것으로 의도되지 않는다.
이전 설명은 임의의 당업자가 여러 본원에서 설명하는 양태들을 실시할 수 있도록 하기 위해서 제공된다. 이들 양태들에 대한 여러 변경들은 당업자들에게 매우 자명할 것이며, 본원에서 정의하는 일반 원리들은 다른 양태들에 적용될 수도 있다. 따라서, 청구항들은 본원에서 나타낸 양태들에 한정시키려고 의도된 것이 아니며, 전문용어 청구항들 (language claims) 에 부합하는 전체 범위를 부여하려는 것이며, 여기서, 엘리먼트에 대한 단수형 참조는 "하나 및 오직 하나" 로 구체적으로 달리 말하지 않는 한, "하나 및 오직 하나" 를 의미하기 보다는, "하나 이상" 을 의미하도록 의도된다. 달리 구체적으로 언급하지 않는 한, 용어 "일부 (some)" 는 하나 이상을 지칭한다. 당업자들에게 알려져 있거나 또는 추후 알려지는, 본 개시물을 통해서 설명한 여러 양태들의 엘리먼트들에 대한 모든 구조적 및 기능적 균등물들이 본원에 참조로 명백히 포함되며, 청구항들에 의해 포괄되도록 의도된다. 또한, 본원에서 개시된 어떤 것도 이런 개시물이 청구항들에 명시적으로 인용되는지에 상관없이, 대중에 지정되도록 의도된 것이 아니다. 어떤 청구항 엘리먼트도 그 엘리먼트가 어구 "하는 수단" 을 이용하여 명백히 언급되지 않는 한, 기능식 (means plus function) 청구항으로서 해석되지 않아야 한다.
Claims (30)
- 데이터 통신 인터페이스에서 수행되는 방법으로서,
시리얼 버스가 제 1 동작 모드에서 동작되는 동안 상기 시리얼 버스에 커플링되는 복수의 디바이스들에 제 1 커맨드를 송신하는 단계로서, 상기 제 1 커맨드는 상기 시리얼 버스로 하여금 제 2 동작 모드에서 동작되게 하도록 제 1 프로토콜에 따라 송신되는, 상기 제 1 커맨드를 송신하는 단계;
상기 시리얼 버스가 상기 제 2 동작 모드에서 동작되는 동안 제 2 프로토콜에 따라 상기 복수의 디바이스들 중 제 1 디바이스와 통신하는 단계; 및
상기 제 2 동작 모드를 만료하도록 상기 제 1 프로토콜에 따라 상기 복수의 디바이스들에 제 2 커맨드를 송신하는 단계를 포함하며,
상기 제 1 디바이스와 통신하는 단계는:
심볼들의 시퀀스에서의 데이터를 인코딩하는 단계로서, 클록 정보는 심볼들의 시퀀스에서의 심볼들의 연속하는 페어들 사이의 트랜지션들에서 인코딩되는, 상기 데이터를 인코딩하는 단계;
엑스트라 심볼이 없는 2 개의 심볼들의 송신이 상기 시리얼 버스에 대한 원하지 않는 시그널링 조건을 야기하고 그리고 상기 엑스트라 심볼이 있는 상기 2 개의 심볼들의 송신이 상기 시리얼 버스에 대한 상기 원하지 않는 시그널링 조건을 방지할 때, 상기 심볼들의 시퀀스들에서의 상기 2 개의 심볼들 사이에 상기 엑스트라 심볼을 삽입하는 단계; 및
상기 시리얼 버스 상에서 상기 심볼들의 시퀀스를 송신하는 단계를 포함하는, 데이터 통신 인터페이스에서 수행되는 방법. - 제 1 항에 있어서,
상기 원하지 않는 시그널링 조건은 상기 시리얼 버스의 2 개의 와이어들 상의 트랜지션들의 상대적 타이밍에 관련하는, 데이터 통신 인터페이스에서 수행되는 방법. - 제 1 항에 있어서,
상기 원하지 않는 시그널링 조건은 상기 시리얼 버스의 하나의 와이어 상에서 송신되는 펄스의 지속기간에 관련하는, 데이터 통신 인터페이스에서 수행되는 방법. - 제 1 항에 있어서,
상기 원하지 않는 시그널링 조건은 상기 제 2 프로토콜 이외의 프로토콜에 의해 정의된 동기화 또는 시작 (start) 조건에 관련하는, 데이터 통신 인터페이스에서 수행되는 방법. - 제 1 항에 있어서,
상기 제 1 디바이스와 통신하는 단계는:
상기 2 개의 심볼들이 상기 시리얼 버스를 통하여 송신되면, 상기 2 개의 심볼들을 송신하는 것이, 50 나노초 초과의 지속기간을 갖는 펄스로 하여금 상기 시리얼 버스의 제 1 와이어 상에서 발생하게 할 것이라고 결정하는 단계; 및
상기 심볼들의 시퀀스 내에 상기 엑스트라 심볼을 삽입하는 단계로서, 상기 엑스트라 심볼은 상기 제 1 와이어 상의 펄스를 만료하도록 선택되는, 상기 엑스트라 심볼을 삽입하는 단계를 포함하는, 데이터 통신 인터페이스에서 수행되는 방법. - 제 1 항에 있어서,
제 2 디바이스는 상기 엑스트라 심볼이 2 개의 심볼들 사이에 삽입될 때 상기 시리얼 버스가 상기 제 2 동작 모드에서 동작되는 동안 상기 시리얼 버스 상의 통신들을 무시하는, 데이터 통신 인터페이스에서 수행되는 방법. - 제 1 항에 있어서,
상기 제 1 프로토콜은 I2C (Inter-Integrated Circuit) 프로토콜과 호환가능하고, 상기 원하지 않는 시그널링 조건은 상기 I2C 프로토콜에 의해 정의된 시작 조건에 관련하는, 데이터 통신 인터페이스에서 수행되는 방법. - 제 1 항에 있어서,
상기 심볼들의 시퀀스의 각각의 심볼은 복수의 비트들을 가지며, 각각의 비트는 하나의 심볼 간격 동안에 상기 시리얼 버스의 하나의 와이어의 시그널링 상태를 정의하는, 데이터 통신 인터페이스에서 수행되는 방법. - 제 8 항에 있어서,
상기 심볼들의 시퀀스에서의 연속하는 심볼들의 각각의 페어는 2 개의 상이한 심볼들을 포함하고, 상기 시리얼 버스의 적어도 하나의 와이어의 상기 시그널링 상태는 상기 연속하는 심볼들의 각각의 페어에서의 제 2 심볼이 송신될 때 변경되는, 데이터 통신 인터페이스에서 수행되는 방법. - 제 1 항에 있어서,
상기 시리얼 버스가 상기 제 1 동작 모드에서 동작되는 동안 상기 복수의 디바이스들에 제 3 커맨드를 송신하는 단계로서, 상기 제 3 커맨드는 상기 시리얼 버스로 하여금 제 3 동작 모드에서 동작되게 하도록 상기 제 1 프로토콜에 따라 송신되는, 상기 제 3 커맨드를 송신하는 단계;
상기 시리얼 버스가 상기 제 3 동작 모드에서 동작되는 동안 제 3 프로토콜에 따라 상기 복수의 디바이스들 중 제 3 디바이스와 통신하는 단계; 및
상기 제 2 동작 모드를 만료하도록 상기 제 1 프로토콜에 따라 상기 복수의 디바이스들에 제 4 커맨드를 송신하는 단계를 포함하는, 데이터 통신 인터페이스에서 수행되는 방법. - 데이터 통신을 위한 장치로서,
상기 장치를 시리얼 버스에 커플링하는 트랜시버; 및
프로세싱 회로를 포함하고,
상기 프로세싱 회로는:
상기 시리얼 버스가 제 1 동작 모드에서 동작되는 동안 상기 시리얼 버스에 커플링되는 복수의 디바이스들에 제 1 커맨드를 송신하는 단계로서, 상기 제 1 커맨드는 상기 시리얼 버스로 하여금 제 2 동작 모드에서 동작되게 하도록 제 1 프로토콜에 따라 송신되는, 상기 제 1 커맨드를 송신하고;
제 2 프로토콜에 따라 심볼들의 시퀀스에서의 데이터를 인코딩하는 것으로서, 클록 정보는 심볼들의 시퀀스에서의 심볼들의 연속하는 페어들 사이의 트랜지션들에서 인코딩되는, 상기 데이터를 인코딩하고;
엑스트라 심볼이 없는 2 개의 심볼들의 송신이 상기 시리얼 버스에 대한 원하지 않는 시그널링 조건을 야기하고 그리고 상기 엑스트라 심볼이 있는 상기 2 개의 심볼들의 송신이 상기 시리얼 버스에 대한 상기 원하지 않는 시그널링 조건을 방지할 때, 상기 심볼들의 시퀀스들에서의 상기 2 개의 심볼들 사이에 상기 엑스트라 심볼을 삽입하고;
상기 제 2 프로토콜에 따라 상기 시리얼 버스 상에서 상기 심볼들의 시퀀스를 송신하고; 그리고
상기 제 2 동작 모드를 만료하도록 상기 제 1 프로토콜에 따라 상기 복수의 디바이스들에 제 2 커맨드를 송신하도록 구성되는, 데이터 통신을 위한 장치. - 제 11 항에 있어서,
상기 원하지 않는 시그널링 조건은 상기 시리얼 버스의 2 개의 와이어들 상의 트랜지션들의 상대적 타이밍에 관련하는, 데이터 통신을 위한 장치. - 제 11 항에 있어서,
상기 원하지 않는 시그널링 조건은 상기 시리얼 버스의 하나의 와이어 상에서 송신되는 펄스의 지속기간에 관련하는, 데이터 통신을 위한 장치. - 제 11 항에 있어서,
상기 원하지 않는 시그널링 조건은 상기 제 2 프로토콜 이외의 프로토콜에 의해 정의된 동기화 또는 시작 (start) 조건에 관련하는, 데이터 통신을 위한 장치. - 제 11 항에 있어서,
상기 심볼들의 시퀀스의 각각의 심볼은 복수의 비트들을 가지며, 각각의 비트는 하나의 심볼 간격 동안에 상기 시리얼 버스의 하나의 와이어의 시그널링 상태를 정의하는, 데이터 통신을 위한 장치. - 데이터 통신 인터페이스에서 수행되는 방법으로서,
시리얼 버스가 제 1 동작 모드에서 동작되는 동안 상기 시리얼 버스에 커플링되는 복수의 디바이스들에 제 1 커맨드를 송신하는 단계로서, 상기 제 1 커맨드는 상기 시리얼 버스로 하여금 제 2 동작 모드에서 동작되게 하도록 제 1 프로토콜에 따라 송신되는, 상기 제 1 커맨드를 송신하는 단계;
상기 시리얼 버스가 상기 제 2 동작 모드에서 동작되는 동안 제 2 프로토콜에 따라 상기 복수의 디바이스들 중 제 1 디바이스와 통신하는 단계; 및
상기 제 2 동작 모드를 만료하도록 상기 제 1 프로토콜에 따라 상기 복수의 디바이스들에 제 2 커맨드를 송신하는 단계를 포함하며,
상기 제 2 동작 모드에서 상기 시리얼 버스의 제 1 와이어 상에서 송신되는 제한된-지속기간 펄스들은 상기 복수의 디바이스들 중 제 2 디바이스의 필터로 하여금 상기 제한된-지속기간 펄스들을 억제하게 하는 지속기간을 갖는, 데이터 통신 인터페이스에서 수행되는 방법. - 제 16 항에 있어서,
상기 제 2 디바이스는 상기 제한된-지속기간 펄스들이 억제될 때 상기 시리얼 버스가 상기 제 2 동작 모드에서 동작되는 동안 상기 시리얼 버스 상의 통신들을 무시하는, 데이터 통신 인터페이스에서 수행되는 방법. - 제 16 항에 있어서,
상기 제 1 동작 모드는 I2C (Inter-Integrated Circuit) 통신 모드이고, 상기 제한된-지속기간 펄스들은 50 나노초 이하의 지속기간을 갖고 상기 시리얼 버스의 SCL (serial clock) 와이어 상에서 송신되는, 데이터 통신 인터페이스에서 수행되는 방법. - 제 16 항에 있어서,
상기 제 1 디바이스와 통신하는 단계는:
심볼들의 시퀀스에서의 데이터를 인코딩하는 단계를 포함하고, 각각의 심볼의 각각의 비트는 하나의 심볼 간격 동안에 상기 시리얼 버스의 하나의 와이어의 시그널링 상태를 정의하는, 데이터 통신 인터페이스에서 수행되는 방법. - 제 19 항에 있어서,
2 개 이상의 연속하는 심볼들이 상기 시리얼 버스를 통하여 송신되면, 상기 심볼들의 시퀀스에서 상기 2 개 이상의 연속하는 심볼들을 송신하는 것이, 50 나노초 초과의 지속기간을 갖는 펄스로 하여금 상기 제 1 와이어 상에서 발생하게 한다고 결정하는 단계; 및
상기 심볼들의 시퀀스 내에 엑스트라 심볼을 삽입하는 단계로서, 상기 엑스트라 심볼은 50 나노초 초과의 지속기간을 갖는 상기 펄스의 발생을 방지하기 위해 선택되는, 상기 엑스트라 심볼을 삽입하는 단계를 더 포함하는, 데이터 통신 인터페이스에서 수행되는 방법. - 제 19 항에 있어서,
각각의 심볼의 하나의 비트는 제한된-지속기간 펄스가 대응하는 심볼 간격에서 상기 제 1 와이어 상에서 송신되는지의 여부를 결정하는, 데이터 통신 인터페이스에서 수행되는 방법. - 제 16 항에 있어서,
상기 제 1 디바이스와 통신하는 단계는:
심볼들의 시퀀스에서의 데이터를 인코딩하는 단계로서, 클록 정보는 상기 심볼들의 시퀀스에서의 심볼들의 연속하는 페어들 사이의 트랜지션들에서 인코딩되는, 상기 데이터를 인코딩하는 단계;
엑스트라 심볼이 없는 2 개의 심볼들의 송신이 상기 시리얼 버스에 대한 원하지 않는 시그널링 조건을 야기하고 그리고 상기 엑스트라 심볼이 있는 상기 2 개의 심볼들의 송신이 상기 시리얼 버스에 대한 상기 원하지 않는 시그널링 조건을 방지할 때, 상기 심볼들의 시퀀스들에서의 상기 2 개의 심볼들 사이에 상기 엑스트라 심볼을 삽입하는 단계; 및
상기 시리얼 버스 상에서 상기 심볼들의 시퀀스를 송신하는 단계를 포함하는, 데이터 통신 인터페이스에서 수행되는 방법. - 제 16 항에 있어서,
상기 제 2 동작 모드는 CCIe (camera control interface) 통신 모드인, 데이터 통신 인터페이스에서 수행되는 방법. - 제 16 항에 있어서,
상기 제 1 디바이스는 센서를 포함하고, 상기 제 2 동작 모드는 복수의 상이한 센서들을 커플링하기 위하여 채택된 프로토콜을 지원하는, 데이터 통신 인터페이스에서 수행되는 방법. - 제 16 항에 있어서,
상기 시리얼 버스가 상기 제 1 동작 모드에서 동작되는 동안 상기 복수의 디바이스들에 제 3 커맨드를 송신하는 단계로서, 상기 제 3 커맨드는 상기 시리얼 버스로 하여금 제 3 동작 모드에서 동작되게 하도록 상기 제 1 프로토콜에 따라 송신되는, 상기 제 3 커맨드를 송신하는 단계;
상기 시리얼 버스가 상기 제 3 동작 모드에서 동작되는 동안 제 3 프로토콜에 따라 상기 복수의 디바이스들 중 제 3 디바이스와 통신하는 단계; 및
상기 제 2 동작 모드를 만료하도록 상기 제 1 프로토콜에 따라 상기 복수의 디바이스들에 제 4 커맨드를 송신하는 단계를 포함하고,
상기 제 2 동작 모드에서 상기 제 1 와이어 상에서 송신되는 제한된-지속기간 펄스들은 상기 복수의 디바이스들 중 상기 제 2 디바이스의 필터로 하여금 상기 제한된-지속기간 펄스들을 억제하게 하는 지속기간을 갖는, 데이터 통신 인터페이스에서 수행되는 방법. - 장치로서,
시리얼 버스가 제 1 동작 모드에서 동작되는 동안 상기 시리얼 버스에 커플링되는 복수의 디바이스들에 제 1 커맨드를 송신하는 수단으로서, 상기 제 1 커맨드는 상기 시리얼 버스로 하여금 제 2 동작 모드에서 동작되게 하도록 제 1 프로토콜에 따라 송신되는, 상기 제 1 커맨드를 송신하는 수단;
상기 시리얼 버스가 제 2 동작 모드에서 동작되는 동안 제 2 프로토콜에 따라 상기 복수의 디바이스들 중 제 1 디바이스와 통신하는 수단; 및
상기 제 2 동작 모드를 만료하도록 상기 제 1 프로토콜에 따라 상기 복수의 디바이스들에 제 2 커맨드를 송신하는 수단을 포함하고,
상기 제 2 동작 모드에서 상기 시리얼 버스의 제 1 와이어 상에서 송신되는 제한된-지속기간 펄스들은 상기 복수의 디바이스들 중 제 2 디바이스의 필터로 하여금 상기 제한된-지속기간 펄스들을 억제하게 하는 지속기간을 갖는, 장치. - 제 26 항에 있어서,
상기 제 2 디바이스는 상기 제한된-지속기간 펄스들이 억제될 때 상기 시리얼 버스가 상기 제 2 동작 모드에서 동작되는 동안 상기 시리얼 버스 상의 통신들을 무시하는, 장치. - 제 26 항에 있어서,
상기 제 1 동작 모드는 I2C (Inter-Integrated Circuit) 통신 모드이고, 상기 제한된-지속기간 펄스들은 50 나노초 이하의 지속기간을 갖고 상기 시리얼 버스의 SCL (serial clock) 와이어 상에서 송신되는, 장치. - 제 26 항에 있어서,
상기 제 1 디바이스와 통신하는 수단은:
멀티-비트 심볼들의 시퀀스에서의 데이터를 인코딩하도록 구성되고, 각각의 멀티-비트 심볼의 각각의 비트는 하나의 심볼 간격 동안에 상기 시리얼 버스의 하나의 와이어의 시그널링 상태를 정의하는, 장치. - 제 26 항에 있어서,
심볼들의 시퀀스에서의 데이터를 인코딩하는 수단으로서, 클록 정보는 심볼들의 시퀀스에서의 심볼들의 연속하는 페어들 사이의 트랜지션들에서 인코딩되는, 상기 데이터를 인코딩하는 수단;
2 개 이상의 연속하는 심볼들이 상기 시리얼 버스를 통하여 송신되면, 상기 심볼들의 시퀀스에서 상기 2 개 이상의 연속하는 심볼들을 송신하는 것이, 50 나노초 초과의 지속기간을 갖는 펄스로 하여금 제 1 와이어 상에서 발생하게 한다고 결정하는 수단; 및
상기 심볼들의 시퀀스 내에 엑스트라 심볼을 삽입하는 수단으로서, 상기 엑스트라 심볼은 50 나노초 초과의 지속기간을 갖는 상기 펄스의 발생을 방지하기 위해 선택되는, 상기 엑스트라 심볼을 삽입하는 수단을 더 포함하는, 장치.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201461985276P | 2014-04-28 | 2014-04-28 | |
US61/985,276 | 2014-04-28 | ||
US14/694,618 | 2015-04-23 | ||
US14/694,618 US9734121B2 (en) | 2014-04-28 | 2015-04-23 | Sensors global bus |
PCT/US2015/027479 WO2015167954A1 (en) | 2014-04-28 | 2015-04-24 | Sensors global bus |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20160147842A true KR20160147842A (ko) | 2016-12-23 |
Family
ID=54334929
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167032019A KR20160147842A (ko) | 2014-04-28 | 2015-04-24 | 센서 글로벌 버스 |
Country Status (10)
Country | Link |
---|---|
US (4) | US9734121B2 (ko) |
EP (2) | EP3392779A1 (ko) |
JP (1) | JP6625557B2 (ko) |
KR (1) | KR20160147842A (ko) |
CN (1) | CN106255964B (ko) |
BR (1) | BR112016024951A2 (ko) |
ES (1) | ES2694554T3 (ko) |
HU (1) | HUE039802T2 (ko) |
TW (1) | TWI651619B (ko) |
WO (1) | WO2015167954A1 (ko) |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9519603B2 (en) * | 2013-09-09 | 2016-12-13 | Qualcomm Incorporated | Method and apparatus to enable multiple masters to operate in a single master bus architecture |
US20150234773A1 (en) * | 2014-02-18 | 2015-08-20 | Qualcomm Incorporated | Technique to avoid metastability condition and avoid unintentional state changes of legacy i2c devices on a multi-mode bus |
US10417172B2 (en) | 2014-04-28 | 2019-09-17 | Qualcomm Incorporated | Sensors global bus |
US9734121B2 (en) | 2014-04-28 | 2017-08-15 | Qualcomm Incorporated | Sensors global bus |
US9727506B2 (en) | 2015-10-01 | 2017-08-08 | Sony Corporation | Communication system, communication system control method, and program |
US10079650B2 (en) * | 2015-12-04 | 2018-09-18 | Infineon Technologies Ag | Robust high speed sensor interface for remote sensors |
US10229086B2 (en) * | 2015-12-26 | 2019-03-12 | Intel Corporation | Technologies for automatic timing calibration in an inter-integrated circuit data bus |
US10031882B2 (en) * | 2016-03-31 | 2018-07-24 | Intel Corporation | Sensor bus communication system |
JP6786871B2 (ja) * | 2016-05-18 | 2020-11-18 | ソニー株式会社 | 通信装置、通信方法、プログラム、および、通信システム |
KR101877332B1 (ko) * | 2016-11-25 | 2018-07-11 | (주)로보티즈 | 다중 프로토콜을 지원하는 통신시스템에서의 패킷 충돌 방지 방법 |
TWI834603B (zh) * | 2017-02-14 | 2024-03-11 | 日商索尼半導體解決方案公司 | 通信裝置、通信方法、通信程式及通信系統 |
US10592441B2 (en) * | 2017-05-10 | 2020-03-17 | Qualcomm Incorporated | Bus communication enhancement based on identification capture during bus arbitration |
JP6976728B2 (ja) | 2017-06-08 | 2021-12-08 | ソニーセミコンダクタソリューションズ株式会社 | 通信装置、通信方法、プログラム、および、通信システム |
WO2019040360A1 (en) * | 2017-08-24 | 2019-02-28 | Qualcomm Incorporated | GLOBAL SENSOR BUS |
DE102017216096A1 (de) * | 2017-09-12 | 2019-03-14 | Volkswagen Aktiengesellschaft | Verfahren und Vorrichtung zum Erkennen eines Angriffs auf ein serielles Kommunikationssystem |
US20190171609A1 (en) * | 2017-12-05 | 2019-06-06 | Qualcomm Incorporated | Non-destructive outside device alerts for multi-lane i3c |
US10348417B1 (en) * | 2017-12-21 | 2019-07-09 | Infineon Technologies Ag | Short pulse width modulation (PWM) code (SPC) / single edge nibble transmission (SENT) sensors with increased data rates and automatic protocol detection |
US20190213165A1 (en) * | 2018-01-09 | 2019-07-11 | Qualcomm Incorporated | Priority scheme for fast arbitration procedures |
US10693674B2 (en) * | 2018-01-29 | 2020-06-23 | Qualcomm Incorporated | In-datagram critical-signaling using pulse-count-modulation for I3C bus |
US11030133B2 (en) * | 2018-08-30 | 2021-06-08 | Qualcomm Incorporated | Aggregated in-band interrupt based on responses from slave devices on a serial data bus line |
US10678723B2 (en) * | 2018-09-18 | 2020-06-09 | Qualcomm Incorporated | Urgent in-band interrupts on an I3C bus |
EP3687815B1 (en) | 2018-12-03 | 2021-11-10 | Hewlett-Packard Development Company, L.P. | Logic circuitry |
MX2021005993A (es) * | 2018-12-03 | 2021-07-06 | Hewlett Packard Development Co | Conjunto de circuitos logicos. |
AU2018452257B2 (en) | 2018-12-03 | 2022-12-01 | Hewlett-Packard Development Company, L.P. | Logic circuitry |
US10894423B2 (en) | 2018-12-03 | 2021-01-19 | Hewlett-Packard Development Company, L.P. | Logic circuitry |
US11292261B2 (en) | 2018-12-03 | 2022-04-05 | Hewlett-Packard Development Company, L.P. | Logic circuitry package |
AU2019392184A1 (en) | 2018-12-03 | 2021-07-29 | Hewlett-Packard Development Company, L.P. | Logic circuitry package |
DK3681723T3 (da) | 2018-12-03 | 2021-08-30 | Hewlett Packard Development Co | Logisk kredsløb |
BR112021010754A2 (pt) | 2018-12-03 | 2021-08-31 | Hewlett-Packard Development Company, L.P. | Circuitos lógicos |
EP4235494A3 (en) | 2018-12-03 | 2023-09-20 | Hewlett-Packard Development Company, L.P. | Logic circuitry |
US11338586B2 (en) | 2018-12-03 | 2022-05-24 | Hewlett-Packard Development Company, L.P. | Logic circuitry |
CN109739796A (zh) * | 2018-12-29 | 2019-05-10 | 上海思立微电子科技有限公司 | 指纹识别部件、终端设备、图像数据传输方法和装置 |
EP3844000B1 (en) | 2019-10-25 | 2023-04-12 | Hewlett-Packard Development Company, L.P. | Logic circuitry package |
CN111447127B (zh) * | 2020-03-11 | 2022-05-06 | 北京金茂绿建科技有限公司 | 一种总线复用的方法和系统 |
CN114461550A (zh) * | 2021-12-16 | 2022-05-10 | 加弘科技咨询(上海)有限公司 | 基于i2c通信的多主控设备访问仲裁系统及方法 |
CN114416622B (zh) * | 2021-12-30 | 2024-06-04 | 深圳华芯集成电路设计有限公司 | 单总线通讯系统及方法 |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4785396A (en) * | 1986-01-28 | 1988-11-15 | Intel Corporation | Push-pull serial bus coupled to a plurality of devices each having collision detection circuit and arbitration circuit |
TW234228B (ko) | 1992-05-28 | 1994-11-11 | Motorola Inc | |
JPH11513150A (ja) * | 1995-06-15 | 1999-11-09 | インテル・コーポレーション | Pci間ブリッジを統合する入出力プロセッサ用アーキテクチャ |
US5931933A (en) * | 1997-06-16 | 1999-08-03 | International Business Machines Corporation | Apparatus and method for communication and translation for selected one of a variety of data bus formats |
JP2003534580A (ja) | 1998-07-01 | 2003-11-18 | クゥアルコム・インコーポレイテッド | 改善された装置間シリアルバスプロトコル |
US6629172B1 (en) | 1998-12-14 | 2003-09-30 | Micron Technology, Inc. | Multi-chip addressing for the I2C bus |
US6253268B1 (en) | 1999-01-15 | 2001-06-26 | Telefonaktiebolaget L M Ericsson (Publ) | Method and system for multiplexing a second interface on an I2C interface |
DE19960785A1 (de) * | 1999-12-16 | 2001-06-21 | Thomson Brandt Gmbh | Eingangsfilterstufe für einen Datenstrom und Verfahren zum Filtern eines Datenstroms |
JP2002077306A (ja) * | 2000-09-05 | 2002-03-15 | Mitsubishi Electric Corp | ビット列検出回路 |
US7793005B1 (en) | 2003-04-11 | 2010-09-07 | Zilker Labs, Inc. | Power management system using a multi-master multi-slave bus and multi-function point-of-load regulators |
US7653757B1 (en) | 2004-08-06 | 2010-01-26 | Zilker Labs, Inc. | Method for using a multi-master multi-slave bus for power management |
US7418528B2 (en) | 2004-07-22 | 2008-08-26 | Texas Instruments Incorporated | Multimode, multiline data transfer system and method of operating the same |
US7348803B2 (en) * | 2005-06-24 | 2008-03-25 | Integrated Electronic Solutions Pty. Ltd. | Bi-directional bus buffer |
US7882282B2 (en) * | 2008-05-21 | 2011-02-01 | Silicon Laboratories Inc. | Controlling passthrough of communications between multiple buses |
US7999596B2 (en) * | 2009-03-26 | 2011-08-16 | Texas Instruments Incorporated | Digital suppression of spikes on an 12C bus |
US20110154023A1 (en) | 2009-12-21 | 2011-06-23 | Smith Ned M | Protected device management |
TWI497307B (zh) * | 2010-04-21 | 2015-08-21 | Via Tech Inc | 通用串列匯流排事務轉譯器及通用串列匯流排傳輸轉譯方法 |
EP2391095A1 (en) | 2010-05-31 | 2011-11-30 | Fluke Corporation | Automatic addressing scheme for 2 wire serial bus interface |
US8478917B2 (en) | 2010-09-22 | 2013-07-02 | Microsoft Corporation | Automatic addressing protocol for a shared bus |
US8504672B2 (en) | 2010-11-19 | 2013-08-06 | Silicon Image, Inc. | Discovery of electronic devices in a combined network |
WO2013089789A1 (en) * | 2011-12-16 | 2013-06-20 | Intel Corporation | Automatic downstream to upstream mode switching at a universal serial bus physical layer |
JP5926583B2 (ja) * | 2012-03-09 | 2016-05-25 | キヤノン株式会社 | 情報処理装置、シリアル通信システムおよびそれらの通信初期化の方法、並びにシリアル通信装置 |
US8898358B2 (en) | 2012-07-04 | 2014-11-25 | International Business Machines Corporation | Multi-protocol communication on an I2C bus |
EP2725499A1 (en) | 2012-10-25 | 2014-04-30 | Telefónica, S.A. | Method for assigning dynamically an identifier to a slave device in I2C data bus |
US20140122756A1 (en) | 2012-10-30 | 2014-05-01 | Anayas360.Com, Llc | Address based serial communication interface for control and monitoring of system-on-chip implementations |
US9240837B2 (en) * | 2013-03-12 | 2016-01-19 | Google Inc. | Systems and methods using optical communication for commissioning of network nodes |
US9258244B1 (en) | 2013-05-01 | 2016-02-09 | Sandia Corporation | Protocol for communications in potentially noisy environments |
US9959223B2 (en) | 2013-05-08 | 2018-05-01 | Nxp B.V. | Method and system for interrupt signaling in an inter-integrated circuit (I2C) bus system |
US9639499B2 (en) | 2013-06-12 | 2017-05-02 | Qualcomm Incorporated | Camera control interface extension bus |
US20140368667A1 (en) * | 2013-06-14 | 2014-12-18 | Intel Corporation | Apparatus, system, and method for n-phase data mapping |
KR20160066032A (ko) | 2013-10-08 | 2016-06-09 | 퀄컴 인코포레이티드 | 공유 제어 데이터 버스에서의 i2c 슬레이브 디바이스들과 카메라 제어 인터페이스 확장 디바이스들의 공존 |
US9836123B2 (en) | 2014-02-13 | 2017-12-05 | Mide Technology Corporation | Bussed haptic actuator system and method |
US9710424B2 (en) | 2014-04-22 | 2017-07-18 | Qualcomm Incorporated | Synchronization method for multi-symbol words |
US10417172B2 (en) | 2014-04-28 | 2019-09-17 | Qualcomm Incorporated | Sensors global bus |
US9734121B2 (en) | 2014-04-28 | 2017-08-15 | Qualcomm Incorporated | Sensors global bus |
US9904637B2 (en) | 2014-11-26 | 2018-02-27 | Qualcomm Incorporated | In-band interrupt time stamp |
EP3268868B1 (en) | 2015-03-11 | 2018-12-05 | Qualcomm Incorporated | Farewell reset and restart method for coexistence of legacy and next generation devices over a shared multi-mode bus |
US20180181531A1 (en) | 2016-12-22 | 2018-06-28 | Intel Corporation | Serial peripheral mode in mipi improved inter-integrated circuit (i3c) |
-
2015
- 2015-04-23 US US14/694,618 patent/US9734121B2/en active Active
- 2015-04-24 EP EP18177866.3A patent/EP3392779A1/en not_active Withdrawn
- 2015-04-24 KR KR1020167032019A patent/KR20160147842A/ko not_active Application Discontinuation
- 2015-04-24 CN CN201580022839.8A patent/CN106255964B/zh not_active Expired - Fee Related
- 2015-04-24 ES ES15724811.3T patent/ES2694554T3/es active Active
- 2015-04-24 BR BR112016024951A patent/BR112016024951A2/pt active Search and Examination
- 2015-04-24 JP JP2016564203A patent/JP6625557B2/ja not_active Expired - Fee Related
- 2015-04-24 EP EP15724811.3A patent/EP3138015B1/en not_active Not-in-force
- 2015-04-24 HU HUE15724811A patent/HUE039802T2/hu unknown
- 2015-04-24 WO PCT/US2015/027479 patent/WO2015167954A1/en active Application Filing
- 2015-04-28 TW TW104113582A patent/TWI651619B/zh not_active IP Right Cessation
-
2017
- 2017-08-14 US US15/676,741 patent/US9921998B2/en active Active
-
2018
- 2018-02-13 US US15/895,856 patent/US10452603B2/en active Active
- 2018-03-30 US US15/942,385 patent/US10482057B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
BR112016024951A2 (pt) | 2017-08-15 |
WO2015167954A1 (en) | 2015-11-05 |
US9734121B2 (en) | 2017-08-15 |
TWI651619B (zh) | 2019-02-21 |
US20150309960A1 (en) | 2015-10-29 |
JP2017514238A (ja) | 2017-06-01 |
TW201546620A (zh) | 2015-12-16 |
US20180225253A1 (en) | 2018-08-09 |
US10452603B2 (en) | 2019-10-22 |
CN106255964A (zh) | 2016-12-21 |
HUE039802T2 (hu) | 2019-02-28 |
US20180173672A1 (en) | 2018-06-21 |
CN106255964B (zh) | 2019-04-12 |
US9921998B2 (en) | 2018-03-20 |
EP3138015A1 (en) | 2017-03-08 |
EP3392779A1 (en) | 2018-10-24 |
EP3138015B1 (en) | 2018-08-22 |
JP6625557B2 (ja) | 2019-12-25 |
ES2694554T3 (es) | 2018-12-21 |
US10482057B2 (en) | 2019-11-19 |
US20170364472A1 (en) | 2017-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10482057B2 (en) | Multi-protocol dynamic address allocation | |
US10241955B2 (en) | Dynamically adjustable multi-line bus shared by multi-protocol devices | |
US10007628B2 (en) | Dynamically adjustable multi-line bus shared by multi-protocol devices | |
KR101790900B1 (ko) | 카메라 제어 인터페이스 확장 버스 | |
US10417172B2 (en) | Sensors global bus | |
JP2017500631A (ja) | 複数のスレーブデバイス識別子を有するカメラ制御スレーブデバイス | |
KR20170110610A (ko) | 시리얼 버스를 위한 수신 클록 캘리브레이션 | |
US20190266122A1 (en) | Multilane heterogenuous serial bus | |
WO2019070361A1 (en) | MULTI-LINE BUS WITH DYNAMIC ADJUSTMENT SHARED BY MULTIPROTOCOL DEVICES | |
WO2019040360A1 (en) | GLOBAL SENSOR BUS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |