KR20160146786A - 멀티 심볼 워드들을 위한 동기화 방법 - Google Patents

멀티 심볼 워드들을 위한 동기화 방법 Download PDF

Info

Publication number
KR20160146786A
KR20160146786A KR1020167031026A KR20167031026A KR20160146786A KR 20160146786 A KR20160146786 A KR 20160146786A KR 1020167031026 A KR1020167031026 A KR 1020167031026A KR 20167031026 A KR20167031026 A KR 20167031026A KR 20160146786 A KR20160146786 A KR 20160146786A
Authority
KR
South Korea
Prior art keywords
serial bus
symbols
protocol
ccie
sequence
Prior art date
Application number
KR1020167031026A
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 KR20160146786A publication Critical patent/KR20160146786A/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
    • 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/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

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)
  • Studio Devices (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Communication Control (AREA)

Abstract

카메라 제어 인터페이스 (CCIe) 버스의 개선된 성능을 제공하는 시스템, 방법 및 장치가 설명된다. 데이터 통신 방법은, 직렬 버스 상에서 제 1 동기화 코드를 송신하는 단계, 제 1 동기화 코드에 응답하여 직렬 버스에 연결된 제 1 디바이스와 동기화를 확립하는 단계, 제 1 디바이스와 동기화를 확립한 후에, 제 1 프로토콜에 따라 직렬 버스를 통해 제 1 디바이스와 통신하는 단계, 직렬 버스 상에서 제 1 비동기화 코드를 송신하는 단계로서, 상기 비동기화 코드는 제 1 디바이스와 동기화의 손실을 일으키도록 구성되는, 상기 제 1 비동기화 코드를 송신하는 단계, 직렬 버스 상에서 제 2 동기화 코드를 송신하는 단계, 제 2 동기화 코드에 응답하여 직렬 버스에 연결된 제 2 디바이스와 동기화를 확립하는 단계, 및 제 2 디바이스와 동기화를 확립한 후에, 제 2 프로토콜에 따라 직렬 버스를 통해 제 2 디바이스와 통신하는 단계를 포함한다.

Description

멀티 심볼 워드들을 위한 동기화 방법{SYNCHRONIZATION METHOD FOR MULTI-SYMBOL WORDS}
관련 출원에 대한 상호 참조
본원은 2014년 4월 22일자로 미국 특허청에 제출된 특허 가출원 제61/982,466호 및 2015년 4월 9일자로 미국 특허청에 제출된 미국 정규출원 제14/682,846호에 대한 우선권 및 혜택을 주장하고, 이들의 전체 내용은 참조에 의해 본원에 원용된다.
기술분야
본 개시는 일반적으로 호스트 프로세서와 카메라와 같은 주변 디바이스 사이의 인터페이스에 관한 것이고, 보다 구체적으로 카메라 제어 통신 인터페이스 버스 상에 데이터 레이트를 향상시키는 것에 관한 것이다.
셀룰러 폰들과 같은 모바일 디바이스들의 제조자들은, 상이한 제조자들을 포함한, 다양한 소스들로부터 모바일 디바이스들의 컴포넌트들을 획득할 수도 있다. 예를 들어, 셀룰러 폰에서의 애플리케이션 프로세서는 제 1 제조자로부터 획득될 수도 있는 한편, 셀룰러 폰용 디스플레이는 제 2 제조자로부터 획득될 수도 있다. 애플리케이션 프로세서 및 디스플레이 또는 다른 디바이스는 표준-기반의 또는 사유 (proprietary) 의 물리적 인터페이스를 이용하여 상호접속될 수도 있다. 예를 들어, 디스플레이는 모바일 산업 프로세서 인터페이스 (Mobile Industry Processor Interface; MIPI) 연합에 의해 명시된 카메라 직렬 인터페이스 표준을 따르는 인터페이스를 제공할 수도 있다.
하나의 예에서, MIPI 표준은, 마스터 및 하나 이상의 슬레이브들을 접속시키는 버스로서 구성되는 2-와이어, 양방향, 하프 듀플렉스, 직렬 인터페이스를 사용하는 카메라 제어 인터페이스 (CCI) 를 정의한다. 종래 CCI 는 집적 회로간 (I2C) 버스의 변형에서 사용되는 프로토콜과 호환되고, 버스 상에서 다수의 슬레이브들을 단일 마스터와 함께 다룰 수 있다. CCI 버스는 직렬 클럭 (SCL) 및 직렬 데이터 (SDA) 신호들을 포함할 수도 있다. CCI 디바이스들 및 I2C 디바이스들이 동일한 버스 상에서 전개되어, 2개 이상의 CCI 디바이스들은 CCI 프로토콜들을 이용하여 통신할 수도 있는 한편, I2C 버스를 수반하는 임의의 통신은 I2C 프로토콜들을 이용한다. CCI 의 후기 버전들은 더 빠른 시그널링 레이트를 지원하기 위하여 수정된 프로토콜들을 이용하여 더 높은 스루풋을 제공할 수 있다.
일 예에서, CCI 확장 (CCIe) 버스는, CCIe 버스 동작들과 호환되는 디바이스들을 위한 더 높은 데이터 레이트를 제공하는데 사용될 수도 있다. 그러한 디바이스들은 CCIe 디바이스들로 지칭될 수도 있고, CCIe 디바이스들은 종래 CCI 버스의 SCL 라인 및 SDA 라인 양자 모두 상에서 송신되는 심볼들로서 데이터를 인코딩함으로써 서로 통신할 때 더 높은 데이터 레이트를 달성할 수 있다. CCIe 디바이스들 및 I2C 디바이스들은 동일한 CCIe 버스 상에서 공존하여, 첫번째 시간 인터벌에서, 데이터가 CCIe 인코딩을 이용하여 송신될 수도 있고 다른 데이터는 I2C 시그널링 규정 (signaling convention) 에 따라 상이한 시간 인터벌에서 송신될 수도 있다.
모바일 디바이스 내에서 마스터 및 슬레이브 컴포넌트들을 접속시키는 버스로서 구성되는 직렬 인터페이스들에 대해 최적화된 통신을 제공하기 위한 필요성이 지속적으로 존재한다.
개요
본원에 개시된 실시형태들은, CCIe 버스를 이용하여 카메라 제어 인터페이스의 성능을 향상시킬 수 있는 시스템, 방법 및 장치를 제공한다.
본 개시의 양태에서, 데이터 통신 방법은, 직렬 버스 상에서 제 1 동기화 (SYNC) 코드를 송신하는 단계, 제 1 SYNC 코드에 응답하여 직렬 버스에 연결된 제 1 디바이스와 동기화를 확립하는 단계, 제 1 디바이스와 동기화를 확립한 후에, 제 1 프로토콜과 연관된 제 1 동작 모드에 따라 직렬 버스를 통해 제 1 디바이스와 통신하는 단계, 직렬 버스 상에서 제 1 비동기화 (UNSYNC) 코드를 송신하는 단계로서, 상기 UNSYNC 코드는 제 1 디바이스와 동기화의 손실을 일으키도록 구성되는, 상기 제 1 비동기화 (UNSYNC) 코드를 송신하는 단계, 직렬 버스 상에서 제 2 SYNC 코드를 송신하는 단계, 제 2 SYNC 코드에 응답하여 직렬 버스에 연결된 제 2 디바이스와 동기화를 확립하는 단계, 및 제 2 디바이스와 동기화를 확립한 후에, 제 1 프로토콜과 연관된 제 2 동작 모드에 따라 직렬 버스를 통해 제 2 디바이스와 통신하는 단계를 포함한다.
본 개시의 양태에서, 데이터 통신을 위해 구성된 장치는, 직렬 버스 상에서 제 1 SYNC 코드를 송신하는 수단, 제 1 SYNC 코드에 응답하여 직렬 버스에 연결된 제 1 디바이스와 동기화를 확립하는 수단, 제 1 디바이스와의 동기화가 확립된 후에, 제 1 프로토콜과 연관된 제 1 동작 모드에 따라 직렬 버스를 통해 제 1 디바이스와 통신하는 수단, 직렬 버스 상에서 UNSYNC 코드를 송신하는 수단로서, UNSYNC 코드는 제 1 디바이스와 동기화의 손실을 일으키도록 구성되는, 상기 UNSYNC 코드를 송신하는 수단, 직렬 버스 상에서 제 2 SYNC 코드를 송신하는 수단, 제 2 SYNC 코드에 응답하여 직렬 버스에 연결된 제 2 디바이스와 동기화를 확립하는 수단, 및 제 2 디바이스와 동기화를 확립한 후에, 제 1 프로토콜과 연관된 제 2 동작 모드에 따라 직렬 버스를 통해 제 2 디바이스와 통신하는 수단을 포함한다.
본 개시의 양태에서, 장치는 직렬 버스를 통해 통신하기 위해 구성된 트랜시버 및 적어도 하나의 프로세서를 포함한다. 적어도 하나의 프로세서는 직렬 버스 상에서의 송신을 위해 트랜시버에 제 1 SYNC 코드를 제공하고, 제 1 SYNC 코드에 응답하여 제 1 디바이스와의 동기화가 확립된 후에, 제 1 프로토콜과 연관된 제 1 동작 모드에 따라 직렬 버스를 통하여 제 1 디바이스와 통신하고, 직렬 버스 상에서의 송신을 위해 트랜시버에 UNSYNC 코드를 제공하는 것으로서, UNSYNC 코드는 제 1 디바이스와의 동기화의 손실을 일으키도록 구성되는, 상기 UNSYNC 코드를 제공하고, 직렬 버스 상의 송신을 위해 트랜시버에 제 2 SYNC 코드를 제공하고, 제 2 SYNC 코드에 응답하여 제 2 디바이스와의 동기화가 확립된 후에, 제 1 프로토콜과 연관된 제 2 동작 모드에 따라 직렬 버스 상에서 제 2 디바이스와 통신하도록 구성된다.
본 개시의 양태에서, 컴퓨터 판독가능 저장 매체는 명령들 및/또는 데이터를 저장 또는 유지한다. 저장 매체는 일시적 또는 비일시적일 수도 있다. 명령들은 프로세서에 의해 실행될 수도 있거나 및/또는 처리 회로의 동작을 제어할 수도 있다. 일부 예들에서, 명령들은, 프로세서에 의해 실행될 때, 프로세서 또는 처리 회로로 하여금, 직렬 버스 상에서의 송신을 위해 트랜시버에 제 1 SYNC 코드를 제공하게 하고, 제 1 SYNC 코드에 응답하여 제 1 디바이스와의 동기화가 확립된 후에, 제 1 프로토콜과 연관된 제 1 동작 모드에 따라 직렬 버스를 통하여 제 1 디바이스와 통신하게 하고, 직렬 버스 상에서의 송신을 위해 트랜시버에 UNSYNC 코드를 제공하게 하는 것으로서, UNSYNC 코드는 제 1 디바이스와의 동기화의 손실을 일으키도록 구성되는, 상기 UNSYNC 코드를 제공하게 하고, 직렬 버스 상의 송신을 위해 트랜시버에 제 2 SYNC 코드를 제공하게 하고, 제 2 SYNC 코드에 응답하여 제 2 디바이스와의 동기화가 확립된 후에, 제 1 프로토콜과 연관된 제 2 동작 모드에 따라 직렬 버스 상에서 제 2 디바이스와 통신하게 한다.
도 1은 복수의 이용가능한 표준들 중의 하나에 따라 선택적으로 동작하는 집적 회로 (IC) 디바이스들 사이의 데이터 링크를 채용하는 장치를 도시한다.
도 2는 IC 디바이스들 사이의 데이터 링크를 채용하는 장치를 위한 시스템 아키텍쳐를 예시한다.
도 3은 여기에 개시된 소정 양태들에 따른 송신기 및 수신기의 소정 양태들을 예시한다.
도 4는 여기에 개시된 소정 양태들에 따라 데이터를 트랜스코딩하기 위한 인코딩 스킴을 예시한다.
도 5는 I2C 1 바이트 쓰기 데이터 동작의 타이밍 도를 예시한다.
도 6은 시작 (START) 조건이 레거시 I2C 슬레이브 노드에 대해 갖는 영향을 예시한다.
도 7은 I2C 디바이스를 위한 상태 머신을 예시한다.
도 8은 공유 버스 상의 CCIe 송신 동안 I2C 디바이스가 오작동하는 것을 방지하는 송신 방법을 예시한다.
도 9는 SDA 라인 및 SCL 라인 상의 입력 필터들에 의한 펄스들의 필터링을 예시한다.
도 10은 I2C 수신기의 입력 필터들에 의한 심볼들의 필터링을 예시한다.
도 11은 CCIe 디바이스 상에서 송신되는 심볼들의 스트레칭을 예시한다.
도 12는 심볼 기간들이 스트레치될 때 최선 및 최악 경우 스루풋을 예시한다.
도 13은 심볼을 스트레치 (stretch) 할 때를 결정하기 위한 기법을 예시한다.
도 14는 심볼 슬롯들이 CCIe 디바이스에 의한 송신 동안 선택적으로 스트레치되는 다른 예를 예시한다.
도 15는 심볼 슬롯들이 CCIe 디바이스에 의한 송신 동안 선택적으로 스트레치되는 또 다른 예를 예시한다.
도 16은 준안정 상태가 일어날 수도 있는 조건들을 예시한다.
도 17은 SDA 라인 및 SCL 라인 양자 모두가 동시에 상태들을 변화시킬 때 준안정 조건 (metastable condition) 의 발생을 예시한다.
도 18은 의도되지 않은 시작 (START) 또는 정지 (STOP) 조건을 방지하기 위하여 피해야 하는 조건들을 예시한다.
도 19는 준안정 조건들을 일으킬 수 있는 심볼들 사이의 천이들의 제거를 예시한다.
도 20은 심볼당 3개 상태의 12개 심볼들과 심볼당 2개 상태의 20개 심볼들을 이용한 송신 스킴들을 비교한다.
도 21은 심볼당 2개 상태들을 갖는 20 개 심볼들을 이용한 CCIe 송신을 위한 소정 시나리오들을 예시한다.
도 22는 CCIe 인터페이스 상에서 송신되는 워드의 19번째 비트에 관련된 소정 양태들을 예시한다.
도 23 및 24는 CCIe 송신 시스템에서 사용되는 맵핑의 일 예를 예시하는 표를 제공한다.
도 25는 어떻게 하트비트 클럭 (heartbeat clock) 이 SDA 라인 및 SCL 라인을 통해 송신될 수도 있는지와 하트비트 클럭의 송신 동안 일어날 수도 있는 동기화 기회 (synchronization opportunity) 들의 일 예를 예시한다.
도 26 은 12 심볼 및 20 심볼 CCIe 송신 모드들에서 이용가능한 소정 데이터 범위들을 예시한다.
도 27은 CCIe 인터페이스 상에서 12 심볼 및 20 심볼 동작 모드를 위한 천이 도의 예들을 예시한다.
도 28은 12 심볼 및 20 심볼 송신 스킴들 양자 모두를 위한 SDA 라인 및 SCL 라인의 시그널링 상태들을 예시한다.
도 29는 SYNC 검출동안 사용될 수도 있는 회로들을 예시한다.
도 30은 SCL 및/또는 SDA 신호들의 마스킹을 허용하도록 적응된 클럭 및 데이터 복원 회로 (recovery circuit) 를 예시한다.
도 31은 CCIe 송신 모드를 결정하는데 사용될 수도 있고 SCL 마스킹 신호를 생성하기 위한 로직 회로들을 예시한다.
도 32는 SDA 마스킹 신호를 생성하기 위해 사용되는 로직 회로들을 예시한다.
도 33은 20 심볼 CCIe 송신 모드를 결정하는데 사용될 수도 있는 로직 회로들에서의 신호들의 타이밍을 예시한다.
도 34는 12 심볼 CCIe 송신 모드를 결정하는데 사용될 수도 있는 로직 회로들에서의 신호들의 타이밍을 예시한다.
도 35는 CCIe 인터페이스를 통해 송신되는 통신이 I2C 프로토콜을 준수할 때 CCIe SYNC 검출 로직의 동작을 예시한다.
도 36은 혼합된 CCIe 및 I2C 환경에서 동작하는 CCIe 디바이스들을 위한 프레임 동기화 프로세스를 예시한다.
도 37은 비동기화 상태로의 CCIe 디바이스의 천이를 획득하기 위하여 송신될 수 있는 CCIe 워드를 예시한다.
도 38은 본원에 개시된 소정 양태들에 따라 직렬 버스 상에서 사용될 수도 있는 다수의 프로토콜들 사이 및/또는 직렬 버스의 동작 모드들 사이의 천이를 위한 일반화된 스킴을 예시한다.
도 39는 본원에 개시된 소정 양태들에 따라 CCIe 송신 모드들 사이에 그리고 I2C 및 CCIe 프로토콜들 사이의 모드 스위칭을 예시한다.
도 40은 본원에 개시된 소정 양태들에 따라 상이한 CCIe 송신 모드들 사이의 스위칭에 관련된 모드 스위칭 시퀀스를 예시한다.
도 41은 본원에 개시된 소정 양태들에 따라 적응될 수도 있는 처리 시스템을 채용하는 장치의 일 예를 예시하는 블록도이다.
도 42는 본원에 개시된 하나 이상의 양태들에 따라 CCIe 버스 상에서 통신하기 위한 방법의 플로우 차트이다.
도 43은 본원에 개시된 하나 이상의 양태들에 따라 CCIe 버스를 통하여 통신하기 위한 장치를 위한 하드웨어 구현의 예를 예시하는 도면이다.
상세한 설명
다양한 양태들이 이제 도면들을 참조하여 설명된다. 다음의 상세한 설명에서, 설명의 목적을 위해, 많은 특정 상세들이 하나 이상의 양태들의 철저한 이해를 제공하기 위하여 제시되어 있다. 하지만, 그러한 양태(들)은 이들 구체적인 상세 없이도 실시될 수도 있음이 분명할 수도 있다.
본원에 사용된 바처럼, 용어 "컴포넌트", "모듈", "시스템" 등은, 비제한적으로, 하드웨어, 펌웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 또는 실행 소프트웨어 등과 같은 컴퓨터 관련 엔티티를 포함하도록 의도된다. 예를 들면, 컴포넌트는 프로세서 상에서 실행되는 프로세스, 프로세서, 오브젝트, 실행 파일 (executable), 실행의 스레드, 프로그램 및/또는 컴퓨터일 수도 있지만 이들에 한정되지는 않는다. 예시로써, 컴퓨팅 디바이스 상에서 실행되는 애플리케이션 및 컴퓨팅 디바이스 양자 모두는 컴포넌트일 수 있다. 하나 이상의 컴포넌트들은 프로세스 및/또는 실행의 스레드 내에 상주할 수도 있고 컴포넌트는 하나의 컴퓨터 상에 로컬화될 수 있거나 및/또는 2개 이상의 컴퓨터들 사이에 분산될 수 있다. 또한, 이들 컴포넌트들은, 저장된 다양한 데이터 구조들을 갖는 다양한 컴퓨터 판독가능 매체로부터 실행될 수 있다. 컴포넌트들은, 하나의 컴포넌트가 로컬 시스템, 분산 시스템에 있는 또 다른 컴포넌트 및/또는 인터넷과 같은 네트워크에 걸쳐 다른 시스템들과 신호에 의해 상호작용하는 것으로부터 데이터와 같은, 하나 이상의 데이터 패킷들을 갖는 신호에 따라서와 같이 로컬 및/또는 원격 프로세스들에 의해 통신할 수도 있다.
또한, 용어 "또는" 은 배타적 "또는" 이 아닌 포괄적 "또는" 을 의미하도록 의도되었다. 즉, 달리 명시되지 않거나, 문맥으로부터 명확하지 않으면, "X는 A 또는 B를 채용한다" 라는 구절은 자연의 포괄적 순열들 중 임의의 것을 의미하도록 의도된다. 즉, "X는 A 또는 B를 채용한다" 라는 구절은 다음의 실례들 중 임의의 것에 의해 만족된다: X는 A를 채용한다; X는 B를 채용한다; 또는 X는 A 및 B 양쪽 모두를 이용한다. 또한, 본원 및 첨부 청구항들에 사용된 관사 "a" 및 "an" 는 일반적으로, 달리 명시되지 않거나, 문맥으로부터 단수 형태를 가리키는 것이 명확하지 않으면, "하나 이상" 을 의미하는 것으로 해석되야 한다.
본 발명의 소정 양태들은 전화기, 모바일 컴퓨팅 디바이스, 기기, 자동차 전자 장치, 항공 전자 기기 시스템 등과 같은 장치의 서브컴포넌트들을 포함할 수도 있는 전자 디바이스들 사이에 전개되는 통신 링크들에 적용가능할 수도 있다. 도 1은 IC 디바이스들 사이의 통신 링크를 채용할 수도 있는 장치를 도시한다. 일 예에서, 장치 (100) 는 무선 액세스 네트워크 (RAN), 코어 액세스 네트워크, 인터넷 및/또는 또 다른 네트워크와, RF 트랜시버를 통해 통신하는 무선 통신 디바이스를 포함할 수도 있다. 장치 (100) 는 처리 회로 (102) 에 동작가능하게 연결된 통신 트랜시버 (106) 를 포함할 수도 있다. 처리 회로 (102) 는 하나 이상의 IC 디바이스들, 이를 테면 ASIC(application-specific IC) (108) 을 포함할 수도 있다. ASIC (108) 은 하나 이상의 처리 디바이스들, 로직 회로들 등을 포함할 수도 있다. 처리 회로 (102) 는 처리 회로 (102) 에 의해 실행될 수도 있는 명령들 및 데이터를 유지할 수도 있는 메모리 디바이스 (112) 와 같은 프로세서 판독가능 스토리지를 포함하거나 및/또는 그 프로세서 판독가능 스토리지에 연결될 수도 있다. 처리 회로 (102) 는 무선 디바이스의 메모리 디바이스 (112) 와 같은 저장 매체들에 상주하는 소프트웨어 모듈들의 실행을 지원 및 가능하게 하는 애플리케이션 프로그래밍 인터페이스 (API) (110) 계층 및 오퍼레이팅 시스템 중 하나 이상에 의해 제어될 수도 있다. 메모리 디바이스 (112) 는 판독 전용 메모리 (ROM) 또는 랜덤 액세스 메모리 (RAM), 전기적으로 소거가능한 프로그램가능 ROM (EEPROM), 플래시 카드들, 또는 처리 시스템들 및 컴퓨팅 플랫폼들에서 이용될 수 있는 임의의 메모리 디바이스를 포함할 수도 있다. 처리 회로 (102) 는 장치 (100) 를 구성 및 동작하는데 이용되는 동작 파라미터들 및 다른 정보를 유지할 수 있는 로컬 데이터베이스 (114) 를 포함하거나 또는 그 로컬 데이터베이스 (114) 에 액세스할 수도 있다. 로컬 데이터베이스 (114) 는 데이터베이스 모듈, 플래시 메모리, 자기 매체들, EEPROM, 광학 매체들, 테이프, 소프트 또는 하드 디스크 등 중 하나 이상을 이용하여 구현될 수도 있다. 처리 회로는 또한 다른 컴포넌트들 중에서도 외부 디바이스들, 이를 테면 안테나 (122), 디스플레이 (124), 오퍼레이터 컨트롤들, 이를테면 버튼 (128) 및 키패드 (126) 에 동작가능하게 연결될 수도 있다.
도 2는 통신 버스에 접속된 장치 (200) 의 소정 양태들을 예시하는 블록 구성도이고, 여기서 장치는 무선 모바일 디바이스, 모바일 전화기, 모바일 컴퓨팅 시스템, 무선 전화기, 노트북 컴퓨터, 태블릿 컴퓨팅 디바이스, 미디어 플레이어, 게이밍 디바이스 등 중의 하나 이상에서 구체화될 수도 있다. 장치 (200) 는 CCIe 버스 (230) 를 이용하여 통신하는, 다수의 디바이스들 (202, 220 및 222a-222n) 를 포함할 수도 있다. CCIe 버스 (230) 는 CCIe 버스 (230) 에 의해 지원되는 향상된 특징들을 위해 구성되는 디바이스들을 위한 종래 CCI 버스의 능력들을 확장시킬 수 있다. 예를 들어, CCIe 버스 (230) 는 CCI 버스보다 더 높은 비트 레이트를 지원할 수도 있다. 본원에 개시된 소정 양태들에 따르면, CCIe 버스의 일부 버전들은 16.7 Mbps 이상의 비트 레이트를 지원하도록 구성 또는 적응될 수도 있고, CCIe 버스의 일부 버전들은 적어도 초당 23 메가비트의 데이터 레이트를 지원하도록 구성 또는 적응될 수도 있다.
도 2에 예시된 예에서, 이미징 디바이스 (202) 는 CCIe 버스 (230) 상에서 슬레이브 디바이스로서 동작하도록 구성된다. 이미징 디바이스 (202) 는, 예를 들어, 이미지 센서를 관리하는 센서 제어 기능 (204) 를 제공하도록 적응될 수도 있다. 또한, 이미징 디바이스 (202) 는 구성 레지스터들 (206) 또는 다른 저장 디바이스들, 제어 로직 (212), 트랜시버 (210) 및 라인 드라이버/수신기 (214a 및 214b) 를 포함할 수도 있다. 제어 로직 (212) 은 상태 머신, 시퀀서, 신호 프로세서 또는 범용 프로세서와 같은 처리 회로를 포함할 수도 있다. 트랜시버 (210) 는, 수신기 (210a), 송신기 (210c), 및 타이밍, 로직 및 저장 회로 및/또는 디바이스들을 포함한, 공통 회로들 (210b) 을 포함할 수도 있다. 일 예에서, 송신기 (210c) 는 클럭 생성 회로 (208) 에 의해 제공되는 타이밍에 기초하여 데이터를 인코딩 및 송신한다.
도 3은 본원에 개시된 소정 양태들에 따라 구성되는 송신기 (300) 및 수신기 (320) 의 일 예를 예시하는 블록도이다. CCIe 동작들을 위해, 송신기 (300) 는, SCL 신호 (216) 및 SDA 신호 (218) 신호 와이어들 상에서 송신되는 심볼들로서 인코딩된 3진 (베이스-3) 수들로 입력 데이터 (310) 를 트랜스코딩할 수도 있다. 도시된 예에서, 입력 데이터 (310) 의 각각의 데이터 엘리먼트 (데이터 워드로도 지칭됨) 는 19 또는 20 비트 (bit) 를 가질 수도 있다. 트랜스코더 (302) 는 입력 데이터 (310) 를 수신하고 각각의 데이터 엘리먼트에 대해 3진수들 (312) 의 시퀀스를 생성한다. 3진수 (312) 는 2개의 비트들에서 인코딩될 수도 있고 3진수 (312) 의 각각의 시퀀스에서 12개 3진수들이 존재할 수도 있다. 인코더 (304) 는 라인 드라이버 (306) 들을 통해 송신되는 2 비트 심볼 (314) 들의 스트림을 생성한다. 묘사된 예에서, 라인 드라이버 (306) 는 오픈 드레인 출력 트랜지스터 (open-drain output transistor; 308) 를 포함한다. 하지만, 다른 예들에서, 라인 드라이버 (306) 는 푸시 풀 드라이버 (push-pull driver) 를 이용하여 SCL 신호 (216) 및 SDA 신호 (218) 신호 와이어들을 구동할 수도 있다. 인코더에 의해 생성된 2 비트 심볼들 (314) 의 출력 스트림은, 연속되는 심볼들의 쌍이 2개의 동일한 심볼들을 포함하지 않도록 보장함으로써 연속되는 심볼들 (314) 사이에서 SCL 신호 (216) 및 SDA 신호 (218) 신호 와이어들 중 적어도 하나의 상태의 천이를 갖는다. 적어도 하나의 신호 (216 및/또는 218) 에서 상태의 천이의 가용성 (availability) 은 수신 회로 (320) 가 데이터 심볼들 (314) 의 스트림으로부터 수신 클럭 (338) 을 추출하는 것을 허락한다.
CCIe 시스템에서, 수신기 (320) 는 클럭 및 데이터 복원 (CDR) 회로 (328) 를 포함하거나 또는 이것과 협력할 수도 있다. 수신기 (320) 는 로우 2 비트 심볼 (raw 2-bit symbol) (336) 들의 스트림을 CDR (328) 에 제공하는 라인 인터페이스 회로들 (326) 을 포함할 수도 있다. CDR (328) 은 로우 심볼들 (336) 로부터 수신 클럭 (338) 을 추출하고 수신기 (320) 의 다른 회로들 (324 및 322) 에 수신 클럭 (338) 및 2 비트 심볼들 (334) 의 스트림을 제공한다. 일부 예들에서, CDR (328) 은 다수의 클럭들 (338) 을 생성할 수도 있다. 디코더 (324) 는 심볼들의 스트림 (334) 을 12개 3진수 (332) 들의 시퀀스로 디코딩하는데 수신 클럭 (338) 을 사용할 수도 있다. 3진수 (332) 들은 2개 비트들을 이용하여 인코딩될 수도 있다. 다음으로, 트랜스코더 (322) 는 12개 3진수들 (332) 의 각각의 시퀀스를 19 비트 또는 20 비트 출력 데이터 엘리먼트들 (330) 로 변환할 수도 있다.
도 4는 CCIe 버스 (230) 상에서의 송신을 위한 임베딩된 클럭과 함께 심볼들 (314) 의 시퀀스를 생성하기 위하여 인코더 (304) 에 의해 사용될 수도 있는 인코딩 스킴 (400) 을 예시하는 도면이다. 인코딩 스킴 (400) 은 또한, CCIe 버스 (230) 로부터 수신되는 심볼들로부터 3진 천이 숫자들을 추출하기 위하여 디코더 (324) 에 의해 사용될 수도 있다. CCIe 인코딩 스킴 (400) 에서, CCIe 버스 (230) 의 2개 와이어들은 다음 4개 기본 심볼들 S 의 정의를 허락한다: {0, 1, 2, 3}. 심볼들 (314, 334) 의 시퀀스에서의 임의의 2개의 연속되는 심볼들은 상이한 상태들을 갖고, 심볼 시퀀스들 0,0, 1,1, 2,2 및 3,3 는 연속되는 심볼들의 무효 조합들이다. 따라서, 3개의 유효 심볼 천이들만이 각각의 심볼 경계에서 이용가능하고, 여기서 심볼 경계는, 송신 클럭에 의해 결정되고, 제 1 심볼 (이전 심볼 P들) (422) 이 종결되고 제 2 심볼 (현재 심볼 C들) (424) 이 시작되는 포인트를 나타낸다.
본원에 개시된 소정 양태들에 따르면, 3개의 이용가능한 천이들에는 각각의 P 들 심볼 (422) 에 대해 값 “T” 를 갖는 천이 숫자 (426) 가 배정된다. T 는 3진수에 의해 표현될 수 있다. 일 예에서, 천이 숫자 (transition number; 426) 의 값은 인코딩 스킴을 위한 심볼 오더링 서클 (symbol ordering circle; 402) 을 배정하는 것에 의해 결정된다. 심볼 오더링 서클 (402) 은 4개의 가능한 심볼들에 대해 심볼 오더링 서클 (402) 상의 위치들 (404a-404d), 그리고 위치들 (404a-404d) 사이의 회전의 방향 (406) 을 할당한다. 묘사된 예에서, 회전의 방향 (406) 은 시계방향이다. 천이 숫자 (426) 는 유효 현재 심볼들 (424) 과 바로 이전의 심볼 (422) 사이의 분리 (separation) 를 나타낼 수도 있다. 분리는, 이전 심볼 (422) 로부터 현재 심볼 C들 (424) 에 도달하는데 요구되는 심볼 오더링 서클 (402) 상의 회전의 방향 (406) 을 따른 단계들의 수로서 정의될 수도 있다. 단계들의 수는 한 자리 베이스-3 수로서 표현될 수 있다. 심볼들간의 3 단계 차이는 0base-3 로서 표현될 수 있다는 것이 인식될 것이다. 도 4에 있는 표 420 은 이 접근법을 채용하는 인코딩 스킴을 요약한다.
송신기 (300) 에서, 이전에 생성된 심볼 (422) 및 천이 숫자 (426) 로서 사용되는 입력된 3진수를 안다고 하면, 표 420 은 송신될 현재 심볼 (424) 을 룩업하는데 사용될 수도 있다. 수신기 (320) 에서, 표 420 는 이전에 수신된 심볼 (422) 과 현재 수신된 심볼 (424) 사이의 천이를 나타내는 천이 숫자 (426) 를 결정하기 위하여 룩업으로서 사용될 수도 있다. 천이 숫자 (426) 는 3진수로서 출력될 수도 있다.
도 5는 I2C 1 바이트 쓰기 데이터 동작을 예시하는 타이밍 도 (500) 이다. I2C 마스터 노드는 I2C 버스 상의 어느 슬레이브 노드를 마스터 노드가 액세스하기를 원하는지를 나타내기 위해 SDA 신호 (218) 상의 7 비트 슬레이브 식별자 (슬레이브 ID) (502), 다음으로 동작이 읽기 또는 쓰기 동작인지를 나타내는 읽기/쓰기 비트 (512) 를 전송함으로써, 읽기/쓰기 비트 (512) 는 로직 0 에서 쓰기 동작을 나타내고 로직 1 에서 읽기 동작을 나타낸다. 7 비트 슬레이브 ID (502) 와 매칭되는 ID 를 갖는 슬레이브 노드만이 쓰기 (또는 다른) 동작에 응답할 수 있다. I2C 슬레이브 노드가 그 자신의 슬레이브 ID (502) 를 검출하기 위하여, 마스터 노드는, SCL 신호 (216) 상에서 8 클럭 펄스들과 함께, SDA 신호 (218) 상에서 적어도 8 비트를 송신한다. 이 거동은 레거시 I2C 슬레이브 노드들이 CCIe 동작들에 반응하는 것을 막기 위하여 CCIe 동작 모드들에서 데이터를 송신하는데 할용될 수도 있다.
도 6은 레거시 I2C 슬레이브 노드 상의 START 조건 (606, 608 또는 610) 의 효과의 일 예 (600) 를 예시하고, 여기서 START 조건 (606, 608 또는 610) 는 SCL 신호 (216) 가 하이 (high) 시그널링 상태에 있는 동안, SDA 신호 (218) 상의 하이에서 로우 (low) 로의 시그널링 상태 천이에 의해 표시된다. 이 예 (600) 에서, 소정 START 조건 (608 또는 610) 들은 완전한 7 비트 슬레이브 ID 가 송신되기 전에 검출될 수도 있다. 결과적인 불완전 슬레이브 ID (602, 604) 는 슬레이브 디바이스에 의해 인식되지 않는다. 동작시, SCL 신호 (216) 상에서 6개 펄스들 (612) 만을 송신한 후에 마스터 노드가 START 조건 (608, 610) 을 이슈하는 효과는, 모든 레거시 I2C 슬레이브 노드들로 하여금 그들의 버스 로직을, SDA 신호 (218) 상에서 그들의 각각의 I2C 슬레이브 ID 를 인식하는 가능성이 일어나기 전에, 리셋하게 하는 것을 포함한다. 즉, 2개의 START 조건들 (606, 608 및/또는 610) 들 사이에 전송되는 SDA 신호 (218) 상의 6 비트 시퀀스들 (602, 604) 에서의 정보는 슬레이브 노드들 중 어느 것에 의해서도 유효한 슬레이브 ID 로서 디코딩되지 않는다. 결과적으로, 레거시 I2C 슬레이브 노드들은 불완전한 슬레이브 ID들 (602, 604) 에 응답할 것으로 예상되지 않는다.
도 6은 또한, CCIe 모드에서의 데이터 송신을 위한 I2C 버스의 SCL 신호 (216) 및 SDA 신호 (218) 의 조합의 이용을 예시하는 예 (620) 를 포함한다. CCIe 심볼은 I2C 송신을 위한 SCL 신호 (216) 상에서 송신되는 클럭 신호 (614) 의 각각의 토글 (toggle) 에 대응하는 시간에 송신될 수도 있다. 그러므로, 2개의 START 조건들 (608, 610) 사이에서 송신되는 클럭 토글들의 수는 각각의 CCIe 송신을 위해 송신될 수도 있는 심볼들의 수를 정의할 수도 있다. 따라서, 임의의 슬레이브 노드들로 하여금 I2C 슬레이브 ID 로서 시퀀스를 검출하게 함이 없이, 불완전한 슬레이브 ID (602, 604) 송신에 등가인 6-SCL 펄스 시퀀스 동안에 이용가능한 12 개 시그널링 상태들에서 12개 심볼 송신들 (622, 624) 이 제공될 수도 있다.
SCL 신호 (216) 상의 천이와 일치하는 SDA 신호 (216) 상에서 일어나는 천이들은, START 조건으로서 그러한 천이들을 해석할 수도 있는 레거시 I2C 디바이스들에 중요하지 않다. 하지만, 레거시 I2C 디바이스는, 나중에 일어나는 유효 START 조건 (628, 630) 을 검출하고 이것은 I2C 슬레이브 노드의 버스 로직 검출을 리셋한다. 따라서, I2C 슬레이브 노드들은 STOP 조건으로서 CCIe 송신들 (622, 624) 동안 일어나는 일부 SDA 천이들을 검출할 수도 있지만, CCIe 송신들 (622, 624) 내의 그러한 STOP 조건의 검출은 불완전한 SID (602, 604) 의 보다 이른 종결을 일으킬뿐이다. 유사하게, CCIe 송신들 (622, 624) 동안 START 조건의 검출은 슬레이브 노드들의 I2C 기능의 버스 로직 리셋을 수행할뿐이다.
그러므로, 레거시 I2C 슬레이브 노드들은, 불완전한 I2C 슬레이브 ID (602, 604) 로서 6 SCL 펄스 시퀀스 동안 12개 심볼 CCIe 송신들 (622, 624) 을 무시할 것으로 예상될 수 있다는 것이 분명하다. 추가적으로, START 조건들 (606, 608, 및 610) 사이의 14 SCL 토글들 동안, 열두개 (12) 심볼들이 SCL 신호 (216) 및/또는 SDA 신호 (218) 상에서 송신될 수도 있다.
I2C 버스의 SCL 신호 (216) 및/또는 SDA 신호 (218) 는 클럭 신호가 심볼 천이들 내에 임베딩되었을 때 CCIe 모드에서 데이터 송신을 위해 이용될 수도 있다. 결과적으로, 레거시 I2C 슬레이브 노드 기능성에 영향을 미치지 않고서 그리고 CCIe 가능 노드들로부터 레거시 I2C 슬레이브 노드들을 구분하기 위해 브릿지 디바이스를 사용하지 않고서 2개의 연속되는 START 조건들 (626, 628 및/또는 630) 사이의 어느 임의적 12개 심볼들을 송신하는데 SDA 신호 (218) 및 SCL 신호 (216) 가 사용될 수 있다. I2C 모드에서, START 조건은 I2C 마스터에 의해서만 전송되는 한편, START 조건은 CCIe 모드에서 12 심볼 워드를 송신할 어느 노드에 의해서도 전송된다.
소정 조건들하에서, I2C 디바이스들은 유효한 I2C 펄스로서 송신들 (622, 624) 에서 소정 CCIe 심볼 시퀀스들을 혼동 또는 오해함으로써, I2C 디바이스 상태 머신에 대한 원치않고 예측가능하지 않은 변화들을 일으킬 수도 있다. 가령, I2C 규격에 의해 허용되는 최대 기간 (tBIT) 의 절반보다 더 짧은 심볼 기간 (symbol period) 에서 전송되는 12개 CCIe 심볼들은 I2C 디바이스 상태 머신으로 하여금 셋업 타이밍 에러에 기인하여 알지 못하는 상태로 들어가게 할 수도 있다. min tBIT 요건보다 더 큰 최소 SCL 기간을 만족시키기 위해 CCIe 심볼 레이트를 느리게 하는 것은 CCIe 비트 레이트를 14Mbps 에서 2.4Mbps 로 느리게 할 수 있다. 결과적으로, CCIe 디바이스들은, I2C 디바이스들에 대한 원하지 않는 상태 변화 또는 충돌을 일으키지 않고서 I2C 버스를 통해 동작하도록 구성될 수도 있다.
도 7은 I2C 디바이스를 위한 상태 머신 (700) 을 예시하는 블록도를 포함한다. I2C 프로토콜에서, 상태 머신 (700) 은 I2C 프레임 및/또는 워드 송신 및/또는 수신을 추적 (track) 하기 위해 유지된다. 상태 머신 (700) 은 다양한 상태들 (702) 을 통한 천이들 및 버스의 SCL 신호 (216) 에 기초하여 트리거된다. 상태 머신 천이 도 (714) 는 상태 머신 (700) 의 일 예를 위한 상태 (702) 에서의 가능한 천이들을 예시한다.
타이밍 도 (710, 712) 의 2개 예들은, SCL 신호 (216) 상의 신호에서 에지들의 발생의 주파수 (frequency) 가 증가함에 따라 상태 머신 (700) 의 거동의 차이를 예시한다. 따라서, 제 1 타이밍 도 (710) 는 보다 느린 CCIe 심볼 송신 기간에 관한 것일 수도 있는 한편, 제 2 타이밍 도 (712) 는 보다 높은 주파수에서 예측가능하지 않은 변화들을 겪는 상태 머신 (700) 의 상태 (702) 의 천이들을 예시한다. 이들 예측가능하지 않은 변화들의 결과로서, I2C 디바이스는 그렇게 하면 안될 때 버스를 통한 수신 또는 송신을 개시할 수도 있거나, 또는 I2C 디바이스가 무응답이 되거나, 제어된 동작을 중단하거나, 및/또는 추가 기능을 중단하는 불확정 상태에 진입할 수도 있다.
일 예에서, 상태 머신 (700) 의 상태 (702) 를 유지하는 플립 플롭들이 조합 로직 (732) 의 출력을, 그 로직 (732) 이 최종, 안정한 결과를 만들어 내기 전에 샘플링할 때 문제들이 일어날 수 있다. 특히, 순차적 로직은 하나 이상의 의도되지 않은 상태들간에 천이할 수도 있는데, 왜냐하면 조합 로직 (combinational logic; 732) 은, 통신의 CCIe 모드들의 2개의 심볼 기간들일 수도 있는, SCL 신호 (216) 상의 신호의 에지들간의 최단 기간을 따라갈 수 없기 때문이다. 즉, SCL 라인 상의 심볼 송신들의 기간은 상태 머신 조합 로직 (732) 의 최대 허용가능 셋업 시간, 및 상태 (702) 를 유지하는 플립 플롭보다 더 짧다. I2C 디바이스들은, 지속시간이 50 ns 미만인 심볼 송신 기간들을 필터링해내는 입력 필터를 포함할 수도 있다. 필터링된 신호들은, 50 ns 이하의 심볼 송신들이 상태 변화를 트리거하지 못하도록, I2C 디바이스에서 조합 로직 (732) 에 제공될 수도 있다. 하지만, 50 ns 보다 큰 심볼 송신 기간들은 입력 필터를 통해 조합 로직 (732) 으로 보내지고, 그러한 더 긴 심볼 송신들은 순서가 맞지 않을 수도 있는 상태 변화를 트리거함으로써, I2C 디바이스들에서 문제들을 야기한다. 예에서, 더 짧은 클럭 신호 (706b) 는 부정확하게 캡처된 상태 (716) 에서 불확정 분기를 야기하는 무효 상태 값 (716) 을 캡처할 수도 있다.
도 8은 공유 버스 상의 CCIe 송신 동안 I2C 디바이스 상태 머신 (700) 이 변화하는 것을 방지할 수 있는 송신 방법의 예를 예시한다. 이 접근법에서, 모든 CCIe 심볼 송신들 (802) (또한 도 6 참조) 은 50 ns 에서 500 ns 로 스트레치된다. 500ns 심볼 서클로, 최단 가능한 SCL 기간은 1000ns (1MHz) 이고, 이것은, 고속 모드 플러스 (Fm+) 을 지원하도록 설계된 I2C 디바이스가 셋업 타이밍 이슈들을 피하는 것을 허용하는 Fm+ 셋업 (fSCL) 최대 요건들을 충족한다. 하지만, 50 ns 에서 500 ns 로 심볼 기간을 스트레치하는 것은 14.04 Mbps 에서 2.45 Mbps 로 스루풋을 감소시키는 바람직하지 않은 효과를 갖는다.
도 9는 SDA 라인 및 SCL 라인 상의 입력 필터들에 의해 50 ns 미만의 심볼 기간들을 갖는 펄스들의 필터링을 예시하는 도면 (900) 이다. 50 ns 이하의 심볼들은 I2C 고속 모드 (Fm) 또는 Fm+ 디바이스들과 호환되거나 또는 순응하는 (compliant) 디바이스들에 의해 필터링되야 한다는 것이 I2C 규격의 요건이다. 따라서, 특정 사례들에서, 50 ns 이상의 유효 기간을 야기하는 심볼 송신들만이 스트레치되도록 선택적 스트레칭이 적용될 수도 있다.
도 10은 일부 심볼들이 I2C 디바이스 수신기의 입력 필터들에 의해 필터링될 수도 있는 일 예를 예시하는 도면 (1000) 이다. 첫번째 그래프 (1002) 에서, SDA 신호 (218) 및 SCL 신호 (216) 는 50 ns 이하의 심볼 지속시간들을 갖는다. 즉, 이 예에서, SCL 신호 (216) 상의 심볼들은 기간마다 상태 (예를 들어, 로우-하이 또는 하이-로우) 를 스위칭한다. SCL 신호 (216) 상의 심볼들은 I2C 디바이스 수신기의 입력 필터에 의해 필터링되어, SCLI 라인 (708) 은 천이를 갖지 않게 된다 (즉, 클럭 신호는 조합 로직 (704) 에 도달한다).
두번째 그래프 (1004) 에서, SCL 신호 (216) 상의 심볼들의 일부는 기간 마다 상태를 변화시키는 것은 아니어서, 일부가 50 ns 보다 큰 기간을 갖는 펄스들 (1008) 처럼 보인다. 결과적으로, SCLI 라인 (708) 상의 이들 펄스들 (1008) 은 I2C 디바이스 수신기의 입력 필터에 의해 필터링되지 않는다. 다음으로 이들 펄스들 (1008) 은 조합 로직에 도달하고 원하지 않는 상태 변화를 일으킬 수도 있다.
세번째 그래프 (1006) 에서, 더욱 많은 펄스들이 SCLI 라인 (708) 에 도달하여, I2C 디바이스들에 대한 원하지 않는 상태 변화들을 일으킨다.
도 11은, 원하지 않는 상태 변화들이 I2C 디바이스 상에서 일어나지 않도록 SCL 신호 (216) 상의 CCIe 모드에서 송신되는 일부 심볼들이 선택적으로 스트레치될 수도 있는 예를 예시한다. 첫번째 그래프 (1102) 는, 일부 펄스들이 I2C 디바이스 수신기의 입력 필터에 의해 필터링될 수도 있는 한편, 일부 심볼 슬롯들은 스트레칭을 필요로 할 수도 있다는 것을 예시한다. 예를 들어, 각각 단일 심볼 슬롯 내에 있는, 제 1 펄스 (1110) 및 제 2 펄스 (1111) 가 필터링될 수도 있다 (SLCI 라인 (706) 참조). (제 1 심볼 펄스 (1114) 를 갖는) 제 1 심볼 슬롯 (1120), (제 2 심볼 펄스 (1106) 를 갖는) 제 2 심볼 슬롯 (1122), 및 (제 3 심볼 펄스 (1112) 를 갖는) 제 3 심볼 슬롯 (1124) 이 스트레치될 수도 있다. 가령, 로우에서 하이로의 천이는 제 1 심볼 펄스 (1114) 와 다음 심볼 슬롯 사이에서 일어나므로, I2C 디바이스들에서 원하지 않는 상태 변화들이 야기될 수도 있는 조건이 발생된다. 결과적으로, 대응하는 심볼 슬롯 (1120) 은 스트레칭을 필요로 할 수도 있다. 유사한 조건들이 제 2 심볼 펄스 (1106) 및 제 3 심볼 펄스 (1112) 후에 존재한다.
두번째 그래프 (1104) 에서, 상태 변화들 사이의 기간이 적어도 500 ns 이고, 이로써 I2C 디바이스 상태들에 대한 변화들을 방지하는, 스트레치된 심볼 슬롯들 (1120', 1122' 및 1124') 이 예시되어 있다. 그러한 스트레칭을 수행하기 위하여, 송신 CCIe 디바이스는 상태의 변화가 일어나고 있는지 여부를 확인하기 위하여 적어도 다음 심볼 펄스를 예견 (look ahead) 할 수도 있다.
도 12는 소정 심볼 기간들이 선택적으로 스트레치되는 접근법을 위한 최선 및 최악 경우 데이터 스루풋 (best and worst case data throughput) 의 계산을 예시하는 타이밍 차트들 (1202, 1204) 의 예들을 포함한다. 평균 스루풋의 예들은 통신 인터페이스의 상이한 구성들을 위해 달성가능한 데이터 레이트들의 비교를 제공하기 위해 계산될 수도 있다. 상이한 구성들이 최대 fSCL 및/또는 의도되지 않은 S/P 준안정성과 연관된 이슈들을 다루기 위해 적용될 수도 있다.
하나의 예는 첫번째 타이밍 차트 (1202) 에 의해 예시된다. 이 예에서, 12 심볼 CCIe 구성은 레거시 I2C 디바이스들이 동일한 버스 상에서 동작되지 않을 때, 또는 버스에 접속된 모든 디바이스들이 tSYM에서 각각의 CCIe 워드 전에 START 조건을 검출 할 수 있을 때, 대략 23 Mbps 의 데이터 레이트를 달성할 수 있다. 이 예에서, tSTART = 2 x tSYM, 그리고 tSYM 는 스트레치되지 않는다. 12 심볼 CCIe 구성은, 동일한 버스 상에서 동작되는 모든 레거시 I2C 디바이스들이 상당히 빠른 클럭에 의한 사용을 위해 동기식으로 설계되고 최대 fSCL 및 의도되지 않은 S/P 준안정성 이슈들이 존재하지 않을 때 대략 14 Mbps 의 데이터 비트레이트를 달성할 수 있다. 이 예에서, tSTART 는 I2C AC 로서 정의되고, tSYM 는 스트레치되지 않는다.
다른 예는 두번째 타이밍 차트 (1204) 에 의해 예시된다. 이 예에서, 12 심볼 CCIe 구성은, 동일한 버스 상에서 동작되는 모든 레거시 I2C 디바이스들이 동기식으로 설계되고, 하나 이상의 레거시 I2C 디바이스들은 최대 fSCL 이슈에 의해 영향받을 수도 있지만, 의도되지 않은 S/P 준안정성 이슈가 없을 때 9.8 Mbps 의 평균 데이터 레이트를 달성할 수 있다. 이 예에서, tSTART 는 I2C AC 로서 정의되고, tSYM 는 스트레치된다. 20 심볼 CCIe 구성은 동일한 버스 상에서 동작되는 하나 이상의 레거시 I2C 디바이스들이 최대 fSCL 이슈 및/또는 의도되지 않은 S/P 준안정성 이슈에 취약할 수도 있을 때 6.2 Mbps 의 평균 데이터 레이트를 달성할 수 있다. 이 예에서, tSTART 는 I2C AC 로서 정의되고, tSYM 는 스트레치된다.
도 13은 심볼이 스트레치되야 할 때를 결정하기 위하여 CCIe 송신기에 의해 사용될 수도 있는 기법의 일 예를 예시한다. 여기서, SCL 신호 (216) 는 로우 시그널링 상태에서 스트레치될 수도 있다. 2개 이상의 심볼들이 일정한 하이 또는 로우 로직 상태와 같은 동일한 시그널링 패턴을 생성할 때, 카운트다운 값 (STCNT) 은 특정 심볼이 스트레치되야 하는 시간의 양을 확인하기 위하여 개시된다. 카운트다운 값은 제로에 도달할 때까지 매 프리 스트레치 심볼 서클에서 감소될 수도 있다. 예에서, 카운트다운 값이 제로까지 감소될 때, I2C 수신기에서 인지되는 펄스는 적어도 500 ns 길이이다. 이 예에서, 심볼들 11 내지 5는 SCL 신호 (216) (즉, 로직 로우) 상에서 동일한 시그널링 상태를 만드는 한편, 심볼 4 는 상이한 시그널링 상태 (즉, 로직 하이) 를 만든다. 따라서, 심볼 5는 I2C 디바이스에서 인지된 펄스가 500 ns 이상이 되도록 스트레치될 수도 있다.
도 14는, 제 5 심볼 슬롯 (1402) 에서 제 1 심볼 펄스 그리고 제 2 심볼 슬롯 (1404) 에서 제 2, 연속되는 펄스가 스트레치되도록, 송신 CCIe 디바이스에 의한 송신 동안 심볼 슬롯들이 선택적으로 스트레치되는 다른 예를 예시한다. 이 예에서, 제 2 심볼 슬롯 (1404) 은, 적어도 2개의 연속되는 심볼 펄스들이, 후속 펄스 (1406) 의 길이에 대한 고려 없이, SCL 신호 (216) 로 하여금 동일한 상태에 있게 할 때, 맹목적으로 (blindly) 스트레치될 수도 있다.
도 15는 2개의 심볼 슬롯들 (1502 및 1504) 이 송신 CCIe 디바이스에 의한 송신 동안 스트레치되는 다른 예를 예시한다. 여기서, HIGH 스트레치는 LOW 스트레치 후에만 일어난다. 따라서, HIGH 스트레치는 심볼 10-9 에 대해 일어나지 않는데 왜냐하면, 그러한 심볼들에 선행하는 LOW 스트레치는, 심볼 11의 SCL=0 이 I2C 디바이스들에 의해 필터링되므로, 없기 때문이다.
이 예에서, 제 6 심볼 슬롯 (1502) 은 로우 상태에 있으며 스트레치되고, 제 3 심볼 슬롯 (1504) 은 또한 하이 상태에 있으며 스트레치된다. 이 예는 또한, 심볼 펄스 11 로부터 심볼 펄스 10 으로 심볼 천이가 있더라도, 펄스가 I2C 디바이스들의 입력 필터들에 의해 필터링 (1506) 되므로 심볼 슬롯 (11) 을 스트레치할 필요가 없다는 것을 예시한다. 하지만, 제 9 심볼 슬롯에서 제 8 심볼 슬롯으로의 하이에서 로우로의 천이는 I2C 수신기에 의해 펄스로서 인지된다. 결과적으로, 제 6 심볼 펄스에서 제 5 심볼 펄스로의 로우에서 하이로의 천이가 있으므로, 제 6 심볼 슬롯은 카운트다운 값 (STCNT) 이 제로에 도달할 때까지 (예를 들어, 인지된 펄스 기간이 적어도 500 ns 가 될때까지) 스트레치된다.
다른 예에서, 예견 접근법은 송신 CCIe 디바이스에 의한 송신 동안 2개의 심볼 슬롯들이 스트레치되게 한다. 예견은 송신 패턴에 대해 수행되고, 송신기는 후속 심볼 슬롯들에서의 향후 심볼 송신들에 기초하여 HIGH 기간에 대한 스트레치의 지속시간을 판정한다. 향후에 필터링되지 않은 LOW 기간이 없으면, 하나의 HIGH 기간 스트레치는 워드 시간을 최소화하는데 필요한 만큼의 심볼들에 대해 계속될 수 있다.
소정 준안정 조건들이 CCIe 송신들 동안 발생할 수도 있다. 본원에 설명된 12개 CCIe 심볼 송신들 동안, 신호 준안정성은 CCIe 디바이스들과 공유되는 버스에 연결된 레거시 I2C 디바이스들의 로직 디바이스들에서 일어날 수도 있다. 그러한 준안정성은, 예를 들어, SDA 신호 (218) 및 SCL 신호 (216) 의 상태들이 동시에 변할 때 일어날 수도 있다. 레거시 I2C 디바이스는 일부 사례들에서 천이가 START 또는 STOP 조건이라고 결정할 수도 있고, 다른 사례들에서 그와 달리 결정할 수도 있다. 그러한 검출들은 준안정이 될 수도 있고, 이것은 공유 버스에 연결된 레거시 I2C 디바이스들에 있는 로직 디바이스로 하여금 잘못된/알려지지 않은 상태로 들어가게 할 수도 있다.
도 16은 준안정 상태가 하나 이상의 I2C 디바이스들에서 일어날 수도 있는 조건들을 예시한다. 준안정 상태는, 데이터 신호 (SDA 신호 (218)) 및 클럭 신호 (SCL 신호 (216)) 양자 모두가 동시에 변화할 때 시그널링 상태 (1602, 1604) 를 포함할 수도 있다.
도 17은 I2C 디바이스를 위한 상태 머신 (1702) 에 대한 준안정 상태의 잠재적 효과들을 예시한다. I2C 프로토콜에서, 상태 머신 (1702) 은 I2C 프레임 및/또는 워드 송신 및/또는 수신을 추적 (track) 하기 위해 유지된다. 상태 머신 (1702) 은 버스의 SCL 신호 (216) 및 SDA 신호 (218) 에서의 천이들에 기초하여 트리거되고 천이한다. 상태 머신은, 시작 조건이 검출될 때 초기화되는 플립 플롭 (1716) 을 포함할 수도 있다. 시작 조건은 시작 검출 로직 (1706) 에 의해 검출될 수도 있는 한편, 정지 조건은 제 2 로직 (1708) 에 의해 검출될 수도 있다. 상태 머신 천이는 시작 조건이 검출된 후에 상태 도 (1710) 에 따라 구성될 수도 있고, 상태 머신 (1702) 은 정지 조건이 검출될 때 리셋 또는 멈추어질 수도 있다 (상태 도 (1712) 참조). 준안정 조건 (1714) 은, 시작 검출 로직 (1706) 으로 하여금 시작 조건의 분명한 발생에 응답하게 하는 방식으로 SDA 신호 (218) 및 SCL 신호 (216) 양자 모두가 상태를 변화시킬 때, 일어날 수도 있다.
도 18은 의도되지 않은 시작 (START) 또는 정지 (STOP) 조건을 방지하기 위하여 피할 수도 있는 조건들을 예시한다. "심볼들" (1802) 은 SDA 신호 (218) 와 SCL 신호 (216) 사이의 상태들의 조합에 의해 정의될 수도 있다. 예를 들어, 심볼 "0" 은 SDA 신호 (218) 및 SCL 신호 (216) 양자 모두가 로우 (0) 일때 이다. 심볼 "1" 은 SDA 신호 (218) 가 로우 (0) 이고 SCL 신호 (216) 가 하이 (1) 일 때이다. 심볼 "2" 은 SDA 신호 (218) 가 하이 (1) 이고 SCL 신호 (216) 가 로우 (0) 일 때이다. 심볼 "3" 은 SDA 신호 (218) 가 하이 (1) 이고 SCL 라인이 하이 (1) 일 때이다. 여기서, 심볼 "2" 로부터 심볼 "1" 로 그리고 심볼 "3" 으로부터 심볼 "0" 으로의 심볼 천이들은 START 표시자를 위한 준안정 조건을 일으킨다고 이해될 수 있다. 유사하게, 심볼 "0" 로부터 심볼 "3" 로 그리고 심볼 "2" 으로부터 심볼 "1" 으로의 심볼 천이들은 STOP 표시자를 위한 준안정 조건을 일으킨다.
도 19는 준안정 조건들을 일으킬 수 있는 심볼들간의 소정 천이들이 제거될 수 있는 기법을 예시한다. 이 스킴하에서, 데이터 스루풋은 감소될 수도 있고 워드 당 20 비트가, 유효 데이터 스루풋을 증가시키고 가능한한 원래의 12 심볼 CCIe 시스템들과 많은 호환성을 유지하기 위하여 전송될 수도 있다.
도 20은 심볼당 3개 상태들의 12개 심볼들을 이용한 제 1 송신 스킴 및 심볼당 2개 상태들의 20개 심볼들을 이용한 제 2 송신 스킴간의 비교를 예시한다. 제 1 송신 스킴은 12개 심볼들 내에서 19.02 비트를 송신할 수 있는 한편, 제 2 송신 스팀은 20개 심볼들 내에서 20 비트를 송신할 수 있다.
일 양태에 따르면, 버스에 연결된 마스터 디바이스는 버스에 연결된 임의의 레거시 I2C 디바이스들이 있는지 여부를 확인할 수도 있다. 레거시 I2C 디바이스들이 버스에 연결되어 있지 않으면, CCIe 디바이스들은 준안정 조건들을 일으키는 것에 대해 걱정할 필요가 없고 심볼당 3개 상태들의 12개 심볼들을 송신할 수도 있다.
I2C 디바이스들이 버스에 연결되어 있더라도, 버스 상의 모든 레거시 I2C 디바이스들이 동기식으로 설계된 로직 회로들을 사용하면, 준안정 조건을 피하려 시도하거나 심볼 슬롯 스트레칭 없이, 및/또는 상당히 빠른 클럭으로 (이것은 준안정 조건의 가능성뿐만 아니라 심볼 슬롯들의 선택적 스트레칭의 필요성을 피할 수 있다), CCIe 디바이스들은 여전히 심볼당 3개 상태들의 12개 심볼들을 송신할 수도 있다.
버스에 연결된 레거시 I2C 디바이스들이 있고, 버스 상의 모든 레거시 I2C 디바이스들이 동기식으로 설계되고 준안정성의 가능성이 없으나, 일부 I2C 디바이스들이 상태 머신 변화에 대한 영향을 받으면, 심볼 슬롯 스트레칭이 사용될 수도 있다. CCIe 디바이스들은 여전히 심볼당 3개 상태들의 12개 심볼들을 송신할 수도 있지만, 스트레치된 심볼 슬롯들에 기인하여, 도 12에 예시된 바처럼, 평균 9.6 Mbps 를 초래할 수도 있다.
버스에 연결된 레거시 I2C 디바이스들이 있고, 레거시 I2C 디바이스들 중의 적어도 하나가 비동기식으로 설계되고 준안정성에 취약하면, 준안정 상태 천이들을 일으키는 심볼들의 방지 및 심볼 슬롯 스트레칭 양자 모두가 구현된다. CCIe 디바이스들은 심볼당 2개 상태들의 20개 심볼들을 송신할 수도 있으며, (도 21에 예시된 바처럼) 평균 6.5 Mbps 를 초래할 수도 있다.
도 21은, 오버헤드 비트들을 포함하지 않고서, 20개 심볼들 (심볼당 2개 상태들을 가짐) 이 2개 START 표시자들 사이에서 사용되는, CCIe 송신을 위한 가장 빠른 그리고 가장 느린 레이트 시나리오들을 예시한다.
다양한 데이터 스루풋 경우들이 버스에 대해 가능할 수도 있다. 첫번째 경우에서, 12 심볼 CCIe 송신 시스템은, 레거시 I2C 슬레이브들이 버스에 존재하지 않는 경우 또는 동일한 버스 상의 모든 디바이스들이 tSYM 에서의 각각의 CCIe 워드 전에 START 를 적절히 검출할 수 있는 경우 23Mbps 를 달성할 수 있다. 두번째 경우에서, 14Mbps 에 대해 tSYM 스트레치를 채용하지 않는 12 심볼 CCIe 송신 시스템은, 동일한 버스 상의 모든 레거시 I2C 디바이스들이 준안정 조건의 가능성 뿐만 아니라 심볼 슬롯들의 선택적 스트레칭의 필요성을 피하는 상당히 빠른 클럭킹으로 동기식으로 설계되는 경우에, 사용될 수 있다. 세번째 경우에서, 12 심볼 CCIe 송신 시스템은, 동일한 버스 상의 모든 레거시 I2C 디바이스들이 동기식으로 설계되고 준안정성이 없으면, 일부가 위에서 논의된 상태 머신 변화들에 대한 영향을 받더라도, tSYM 스트레치로 9.6Mbps 의 평균치를 달성할 수 있다. 네번째 경우에서, 20 심볼 CCIe 송신 시스템은, 준안정성 및 상태 머신 이슈 양자 모두가 존재하는 경우에 tSYM 스트레치와 함께 사용될 수도 있다.
CCIe 인터페이스들을 채용하는 소정 시스템들은, 슬레이브 디바이스들의 동기화를 허용하기 위하여 버스를 통해 CCIe 마스터 디바이스에 의해 주기적으로 송신되는 CCIe "하트비트" (heartbeat) 워드를 정의할 수도 있다. 마스터 디바이스는, 전력 절약을 위해 충분히 느리지만, 슬레이브가 클럭 사이클이 부족하지 않을 만큼 충분히 빠른, 레이트에서 이 "하트비트" CCIe 워드를 전송할 수도 있다. 일 예에 따르면, "하트비트" 는, 일반적으로 도 3에 예시된 CCIe 통신 인터페이스에 따라, 2개 라인 제어 데이터 버스를 통한 송신을 위해 데이터 비트들을 인코딩하는데 사용된 20 비트 3진수 공간 내에서 인코딩 또는 임베딩될 수도 있다.
도 22는 비트 카운트가 제 1 비트 (비트 0) 에서 시작할 때 송신되는 제 20 비트인, 비트 19에 관련된 소정 양태들을 예시하는, 도면 (2200) 이다. 즉, 컴퓨터 과학에서 통상적인 바처럼, 비트 단위 카운팅은 0 에서 시작되고, 비트 19 는 제 20 비트이다. 여기서, 비트 0-18 는 0000_0000_00003 내지 2221_2201_20013 의 3진수 범위 내에서 표현된다. 2221_2201_20023 내지 2222_2222_22223 범위의 3진수는 데이터 송신에 사용되지 않는다. 결과적으로, 3진수 범위 2221_2201_20023 내지 2222_222_22223 는 비트 19 (즉, 제 20 비트) 를 표현하는데 사용될 수도 있다. 즉, 2221_2201_20023 3진은 1000_0000_0000_0000_0000 2진 (0x80000 16진) 이고 2222_2222_22223 3진 (0x81BF0) 은 가능한 최대 12 자리 3진수이다. 일 예에서, 슬립 온니 (sleep only) 및 슬립 익셉션 (sleep except) 커맨드들은 제 20 비트 (비트 19) 를 사용한다. 그것은 하트비트가 송신될 수도 있는 제 20 비트 (비트 19) 의 수 공간내에 있다.
도 23 은 CCIe 송신 시스템에서 사용되는 맵핑의 일 예를 예시하는 표 2300 를 제공한다. 맵핑에서, 비트 19의 수 공간은 수들 2221_2201_20023 내지 2222_2222_22223 에 이를 수 있고, 여기서 이 수들의 범위는 6개의 세분들로 세분화될 수도 잇다. CCIe 은 멀티 마스터 제어 데이터 버스 아키텍쳐이고 제어 데이터 버스의 제어는 하나의 마스터 디바이스로부터 또 다른 마스터 디바이스로 옮겨질 수 있다. 결과적으로, "마스터 버스 요청" 커맨드는 (부분 범위 2222_1121_02103 내지 2222_2112_11213 내에서 이용가능하고 "마스터 핸드오버" 는 (부분 범위 2222_2220_00023 내지 2222_2221_12103 내에서) 이용가능하다.
도 24는 12 심볼 CCIe 송신 시스템에서 하트비트를 정의하는데 사용될 수도 있는 비트 19 수 공간 내의 범위를 예시하는 표 2400 이다.
도 25에서, 타이밍 도 (2500) 는 12 심볼 CCIe 송신 시스템에서 SDA 신호 (218) 및 SCL 신호 (216) 를 통한 하트비트 클럭의 송신의 일 예를 예시한다. 수신기 클럭 (RXCLK 신호) (2508) 은 제어 데이터 버스를 통해 송신된 심볼들의 상태 천이들로부터 추출될 수도 있다. 이 예는 하트비트 클럭이 송신 또는 인코딩 전에 및/또는 수신 및 디코딩 후에 어떻게 나타날 수도 있는지를 예시한다. 인지될 수 있는 바처럼, 하트비트 클럭의 제 1 부분 (2502) 이 SDA 라인 상에서 송신되는 한편, 하트비트 클럭의 제 2 부분 (2504) 은 SCL 라인 상에서 송신될 수도 있다. 이런 식으로, 하트비트 클럭의 부분을 SCL 라인으로 이동시킴으로써 공간 (2506) 이 SDA 라인 상에서 만들어진다.
프레이밍 타이밍 도 (2520) 로부터 알 수 있는 바처럼, 하트비트 클럭의 송신은 동기화 기회들 (2524a, 2524b) 을 제공할 수 있다. 본원의 다른 곳에 설명된 바처럼, SYNC 패턴의 첫번째 워드는 “SY-” 로 지칭되고, “
Figure pct00001
-” 심볼 (음표 다음에 대시) 로 표시되는 한편, SYNC 패턴의 두번째 워드는, “-NC” 로 지칭될 수도 있고 “♥” 심볼, 또는 “-
Figure pct00002
” 심볼 (음표 전에 대시) 로 표시될 수도 있는 하트비트이다. SYNC 는 소정 프레임들 (2522a, 2522c) 의 송신 후에 송신된다. 예시된 예에서, 동기화 기회 (2524a, 2524b) 들은 SYNC 를 포함한다. 일부 사례들에서, 하트비트 워드 (2526) 는 SYNC 대신에 송신된다.
도 26은 12 심볼 CCIe 송신 모드에서 이용가능한 데이터 범위 (2602) 와 20 심볼 CCIe 송신 모드에서 이용가능할 수도 있는 데이터 범위 (2604) 를 비교하는 도면 (2600) 이다. 2개의 데이터 범위들 (2602, 2604) 의 각각에 있는 부분 범위 (2606, 2608) 는 제 19 비트가 로직 1로 설정되는 워드들을 포함할 수도 있고, 이들 부분 범위들 (2606, 2608) 은 동기화, 하트비트 및 제어 정보를 송신하는 능력을 제공할 수도 있다. 일 예에서, 각각의 CCIe 송신 모드는 부분 범위들 (2606, 2608) 에서 송신되는 제어 및/또는 동기화 워드들의 대응하는 세트를 가질 수도 있다. 일 예에서, 각각의 CCIe 송신 모드는 SYNC 로서 동작하는 워드 (♥/-
Figure pct00003
로 표현됨) 를 제공할 수도 있다. CCIe 버스 상에서 슬레이브 ID 스캔 및 인터럽트 처리에 관련된 정보를 포함한, 다른 정보가 비트 19 부분 범위들 (2606, 2608) 에서 송신될 수도 있다.
본원에 개시된 소정 양태들에 따르면, SYNC 송신은 하트비트 워드에 대응하는 “-NC” 워드 및 “SY-” 워드를 포함할 수도 있다. 일 예에서, 12 심볼 모드에서 동작하는 디바이스는 SY-워드로서 0x81BF0 그리고 하트비트 워드로서 0x81BC5 를 송신할 수도 있다. 20 심볼 모드에서 동작할 때, 디바이스는 SY-워드로서 0xFFFFF 그리고 하트비트 워드로서 0xFFFF8 를 송신할 수도 있다. SYNC 는 CCIe 송신기의 동작의 모드를 식별하는데 사용될 수도 있다. SYNC 는 SDA 신호 (218) 및 SCL 신호 (216) 의 시그널링 상태들에서 고유 패턴을 생성할 수도 있다. 일 예에서, SYNC 는 12 심볼 CCIe 인터페이스를 위한 0x81BF0+0x81BC5 그리고 20 심볼 CCIe 인터페이스를 위한 0xFFFFF+0xFFFF8 를 포함할 수도 있다. 이들 워드 조합들은, 임의의 다른 CCIe 데이터 전송에서 일어나지 않고, 정상 I2C 모드 송신에서 일어나지 않는 고유 패턴을 생성하도록 선택될 수도 있다.
SYNC 는 이용가능하거나 또는 가능한 송신 모드들을 구별하는데 사용될 수도 있다. 예를 들어, CCIe 버스 마스터는 CCIe 송신들이 12개 심볼들 또는 20개 심볼들을 이용하여 20 비트 데이터를 인코딩하는지를 표시하기 위해 적절한 SYNC 를 송신할 수도 있다. CCIe 버스 마스터는 동작 모드를 주기적으로 표시하기 위해 SYNC 패턴들을 송신할 수도 있고, 송신들 사이의 기간이 CCIe 버스에 새로 합류된 디바이스들의 신뢰적이고 효율적인 동기화를 보장하도록 선택될 수도 있다. 예를 들어, 새로 합류된 디바이스들은, 파워 업 (power-up) 을 완료했거나 및/또는 파워 다운/파워 업 사이클로부터 복원 (recovering) 되고 있는 디바이스들 또는 핫 플러그된 (hot-plugged) 디바이스들을 포함할 수도 있다. 새로 합류된 디바이스들은 SYNC 의 검출 및 식별에 기초하여 CCIe 워드 경계를 동기화하도록 구성될 수도 있다.
일 예에서, 마스터 디바이스는 SYNC 패턴들의 송신의 빈도 (frequency) 를 결정하고 가변 빈도에서 SYNC 패턴을 송신할 수도 있다. 예를 들어, 마스터는, 시스템 파워 업 후에 보다 자주 SYNC 패턴들을 송신할 수도 있다. CCIe 버스 상에서 합류 (joining), 웨이크닝 (wakening ) 또는 파워 업 (powering-up) 하는 슬레이브 디바이스들은 CCIe 송신들을 적절히 모니터링, 송신 또는 수신하기 위하여 SYNC 패턴을 구하도록 적응될 수도 있다. SYNC 송신들은 또한, 예를 들어, 에러 조건 (error condition) 또는 컴포넌트 고장 (component failure) 에 기인한 동기화의 손실 후 동기화를 다시 획득하는데 사용될 수도 있다.
일부 사례들에서, CCIe 슬레이브 디바이스는 동기화와 동시에 CCIe 송신 모드를 결정하도록 구성 또는 적응될 수도 있다. 일 예에서, 모드 검출은 SCL 신호 (216) 및 SDA 신호 (218) 상의 천이들을 비교하는 것에 의해 수행될 수도 있다. 12 심볼 송신 모드에서 하트비트 워드 (♥, NC) 의 송신 동안, SCL 신호 (216) 의 시그널링 상태는 먼저, SDA 신호 (218) 의 시그널링 상태가 이전 심볼 후에 상승할 때, (로직 0으로) 떨어진다. 이러한 SDA 신호 (218) 및 SCL 신호 (216) 의 동시적 토글링은 20 심볼 CCIe 송신 모드에 대해서는 허락되지 않는데, 20 심볼 송신 모드는 하나의 신호만 토글될 수 있다고 명시하기 때문이다. CCIe 슬레이브 디바이스는 SDA 신호 (218) 및 SCL 신호 (216) 에서 에지들의 타이밍에 기초한 송신 모드를 검출할 수도 있다.
도 27은 12 심볼 및 20 심볼 모드 동작들 각각을 위한 천이 도들 (2708, 2710) 및 이용가능한 천이들 (2712, 2714) 의 대응하는 표들을 제공한다. 도 19 에 관련하여 논의된 바처럼, 20 심볼 송신은 12 심볼 송신에서보다 각각의 심볼 간격에서 더 적은 수의 이용가능한 천이들을 갖는데, 소정 천이들 (2716a 또는 2716b) 은 수신기에서 에러의 인스턴스들을 감소시키기 위해 금지되기 때문이다. 버스 상의 CCIe 디바이스들은 SYNC 워드 다음에 하트비트 워드에 의해 CCIe 워드 경계에 동기화될 수 있다.
일부 사례들에서, 대역내 인터럽트 요청 ("대역내 IRQ") 은, 송신들 사이의 SDA 신호 (218) 및 SCL 신호 (216) 에 대한 인코딩된 요청을 시그널링하는 것에 의해 하나 이상의 CCIe 디바이스들에 의해 이슈될 수도 있다. 하나의 예에서, 슬레이브 CCIe 디바이스는 하트비트 워드가 송신될 때 대역내 IRQ 를 어써트 (assert) 할 수 있다. 대역내 IRQ 는 조합 SYNC-하트비트가 송신될 때 하트비트 워드의 송신 동안 어써트될 수도 있다.
일부 사례들에서, SYNC 패턴은 전력 절약 모드 동안 저속 (slow-running) 클럭으로서 사용될 수 있다.
도 28은 SDA 신호 (218) 및 SCL 신호 (216) 의 시그널링 상태들, CCIe 인터페이스 상에서 송신되는 심볼들 (2802, 2812) 및 12 심볼 및 20 심볼 송신 스킴들을 위한 대응하는 대응하는 천이 수들 (2804, 2814) 을 예시하는 타이밍 도 (2800, 2810) 를 제공한다. 양자 모두의 모드들에서, SDA 신호 (218) 는 12 또는 20 개 심볼들의 시퀀스에서 각각의 심볼 간격에서 토글하는 한편, SCL 신호 (216) 는 하이 상태로 남아있다. 각각의 모드에 대해, 수신 클럭 신호 (RXCLK 신호) (2806, 2816) 는 심볼들 사이의 검출된 천이들에 기초하여 생성되고, SDA 신호 (218) 및 SCL 신호 (216) 의 시그널링 상태들을 샘플링하는데 사용되며, 이들은 현재 심볼 (2802, 2812) 의 값에 따라 구동된다.
CCIe 수신기는 CCIe 인터페이스 상에서 송신되는 SY-워드를 검출하도록 적응 또는 구성될 수도 있다. SY- 검출은, 파워 업 후, CCIe 디바이스가 동작 환경으로 삽입되는 핫 플러그 이벤트 후, 및/또는 CCIe 버스 상의 송신들과의 동기화의 손실의 검출 또는 통지 후, CCIe 버스에의 접속 동안 사용된다.
도 29는 SYNC 송신들을 검출하도록 구성될 수도 있는 소정 회로들을 예시하는 블록도 (2900) 이다. 첫번째 회로 (2902) 는 SCL 신호 (216) (즉, SCL=0) 를 나르는 와이어 상의 로직 로우 시그널링 상태를 검출하는데 사용될 수도 있다. SYNC 송신 동안, SCL 신호 (216) 는 유효 SYNC 의 지속기간 동안 하이 로직 상태로 남는다. 로직 로우 상태의 검출은 SYNC 검출 사이클 또는 카운터를 종결하는데 사용될 수도 있다. 첫번째 회로 (2902) 는 SCL 신호 (216) 를 수신하는 비동기식 S-R 래치 (2906) 를 포함하고, 플립 플롭 (flip-flop; 2908, 2910) 들은 S-R 래치 (2906) 의 출력 (SR 신호 (2914)) 의 2개의 순차적 샘플들을 캡처하여, SCL 신호 (216) 가 로직 하이로 남는다면 로우 상태로 남는 SCL 로우 검출 (SCL0DET) 신호 (2912) 를 생성하고, S-R 래치 (2906) 의 출력 (SR 신호 (2914)) 을 클리어하는 리셋 신호 (2916) 를 제공한다. 플립 플롭들 (2908 및 2910) 은, SCL 신호 (216) 가 CDR 회로에 마스킹되기 때문에, SDA 신호 (218) 단독으로부터 복원된 RXCLK 신호 (2904) 를 이용하여 클럭킹된다.
두번째 회로 (다운 카운터 (2920)) 는 셀렉터 신호 (SEL 신호 (2926)) 가 로우 상태에 있을 때 인에이블된다. SCLMASK 신호 (2928) 의 상태가 활성 (하이) 이고, SR 신호 (2914) 및 SCL0DET 신호 (2912) 양자 모두가 로우일 때 SEL 신호 (2926) 는 로우 상태에 있고, 여기서 SR 신호 (2914) 및 SCL0DET 신호 (2912) 는 첫번째 회로 (2902) 에 의해 발생된다. SCLMASK 신호 (2928) 의 상태는, SCL 신호 (216) 가 클럭 발생에 사용되지 않도록, CDR 로부터 SCL 신호 (216) 를 마스킹하도록 설정된다. 동작시, 예시된 다운 카운터 (2920) 는 출력 (CNT 신호 (2924)) 가 0x23 의 초기화 값 (2922) 을 반영하도록 초기화된다. 다운 카운터 (2920) 는, 제어 신호 (2912 및 2914) 를 나타내는, SCL 신호 (216) (SCL=0) 에 대한 로우 레벨의 검출시, 또는 SCLMASK 신호 (2928) 의 상태가 로직 0 으로 설정될 때, 초기화된다. SEL 신호 (2926) 가 로우일 때, 다운 카운터 (2920) 의 출력은 0 을 향해 감소된다.
CCIe 디바이스는 CCIe 버스 상의 송신들과의 동기화의 손실의 검출 또는 통지시 CDR 에 대한 SCL 입력을 차단 또는 마스킹하기 위하여 SCLMASK 신호 (2928) 의 상태를 로직 1 로 설정할 수도 있다. 다음으로 SYNC 검출 로직이 인에이블될 수도 있다. SYNC 검출 동안, SCLMASK 신호 (2928) 는, SCL 신호 (216) 상의 천이들의 사용 또는 고려 없이, CDR 로 하여금 SDA 신호 (218) 상의 심볼 천이들로부터 클럭 신호를 생성하게 하도록 동작할 수도 있다. SCLMASK 신호 (2928) 의 상태는 동기화를 달성할 시 클리어된다.
다운 카운터 (2920) 는 임의의 가용 모드를 위한 SYNC 송신에서 심볼들의 최대 수를 반영하는 값으로부터 카운트 다운될 수도 있다. 도 33 및 34 에 예시된 예들에서, 다운 카운터 (2920) 는 0x23 (10진 35) 의 초기 값 (2922) 으로 초기화된다. 다음으로, 다운 카운터 (2920) 에 의해 출력된 CNT 신호 (2924) 는 수신기 클럭 (RXCLK 2904) 의 동작을 통해 SDA 신호 (218) 상의 각각의 천이에서 감소될 수도 있다. SYNC 워드의 송신이 완료될 때, SCL 신호 (216) 가 떨어지고 카운트 값이, 유효한 수의 천이들이 카운팅되었는지를 결정하기 위해 조사된다. 완전한 워드의 지속시간에 대한 토글링 SDA 신호 (218) 및 하이 SCL 신호 (216) 의 조합은 SYNC 워드에 대해서만 일어나고, 카운트 값은, 그것이 인식된 CCIe 송신 모드를 위한 송신에서 심볼들의 수에 매칭될 경우에, 유효하다.
다운 카운터 (2920) 는 그의 초기 값 (2922) 으로, '0' 값이 SCL 신호 (216) 상에서 검출될 때, 리셋될 수도 있다. SCL 신호 (216) 는, CDR 에 의해 생성된 RXCLK 신호 (2904) 를 이용하여 클럭킹되는, 플립 플롭 (2908 및 2910), 및 S-R 래치 (290) 의 동작을 통해 샘플링된다. SCL 신호 (216) 는 SYNC 송신 동안 하이로 남고 SYNC 송신이 완료되려 한 후에 로직 '0' 값까지 로우로 떨어진다 (즉, 워드를 완료하기 위해 2개 SCL=0 펄스들이 요구될 수도 있다). 일부 사례들에서, 소정 다른 요구된 조건들이 준비될 때, 로직 0 에서의 SCL 신호 (216) (SCL=0) 의 첫번째 검출시 동기화는 완료된 것으로 고려된다. SCLMASK 신호 (2928) 의 상태는 동기화가 성공적으로 검출될 때 리셋된다.
마스킹에 의한 클럭 및 데이터 복원 회로의 예
도 30은 CCIe 통신 링크로부터 임베딩된 클럭 정보를 복원하기 위해 채용될 수도 있는 CDR 회로 (3000) 의 예를 예시하는 블록도이다. CDR 회로 (3000) 는 SCL 신호 (216) 및/또는 SDA 신호 (218) 의 마스킹을 허용하도록 적응된다. 예에서, SCLMASK 신호 (3002) 는 제 1 게이트 (3026) 에서 SCL 신호 (216) 의 차단을 가능하게 하기 위하여 제공될 수도 있고, SDAMASK 신호 (3030) 는 제 2 게이트 (3028) 에서 SDA 신호 (218) 의 차단을 가능하게 하기 위하여 제공될 수도 있다. 예시된 CDR 회로 (3000) 의 다른 변형들 및/또는 다른 CDR 회로들이 일부 사례들에서 사용될 수도 있다.
심볼들의 시퀀스는 SCL 신호 (216) 및 SDA 신호 (218) 에서 수신된다. 대응하는 신호의 상태가 정의되지 않거나, 불확정적이거나, 일시적이거나 또는 그렇지 않으면 불안정한 심볼들간의 천이 시간이 있을 수도 있다. 비교기 (3004), 셋-리셋 래치 (3006), "지연 S" 지연 엘리먼트 (3012), 및 (버스된) 레벨 래치 (3010) 들은, 입력 (SI) 신호 (3020) 의 지연된 인스턴스를 나타내는 레벨 래치 신호 (S 신호) (3022) 를 생성하도록 구성될 수도 있다. SI 신호 (3020) 의 변화의 검출과 변화된 S 신호 (3022) 의 출력 사이의 지연은 지연 S 지연 엘리먼트 (3012) 를 구성함으로써 선택될 수도 있다.
비교기 (3004) 는 SI 신호 (3020) 와 S 신호 (3022) 를 비교하교 2진 비교 신호 (NE 신호) (3014) 를 출력한다. 셋-리셋 래치 (3006) 는, 비교기 (3004) 로부터 NE 신호 (3014) 를 수신하고, NE 신호 (3014) 의 필터링된 버전인 신호 (NEFLT 신호) (3016) 를 출력한다. 셋-리셋 래치 (3006) 의 동작은 NE 신호 (3014) 에서 임의의 일시적 불안정성 (스파이크) 를 제거하도록 구성될 수 있다. NEFLT 신호 (3016) 는, NEFLT 신호 (3016) 상의 상승 에지에 응답하여 미리구성된 고정 길이를 갖는 펄스를 생성하는 원 숏 회로 (one-shot circuit; 3008) 에 제공된다. 원 숏 회로 (3008) 의 출력은, 현재 심볼을 캡처하거나 및/또는 셋 리셋 래치 (3006) 를 리셋하는데 사용되는 내부 수신 클럭 (IRXCLK) 신호 (3018) 를 제공하기 위하여 지연 엘리먼트 (3012) 를 이용하여 지연될 수도 있다. 셋 리셋 래치 (3006) 의 "리셋" 입력은, NE 신호 (3014) 의 상태에 상관 없이, IRXCLK 신호 (3018) 가 하이일 때 NEFLT 신호 (3016) 가 리셋되도록 우선순위화될 수도 있다.
하나의 예에서, IRXCLK 신호 (3018) 는 RXCLK 신호 (2904) 를 제공하기 위하여 또 다른 지연 엘리먼트 (3024) 를 이용하여 지연될 수도 있다 (도 29 참조). 일부 사례들에서, IRXCLK 신호 (3018) 는 CDR 회로 (3000) 의 데이터 출력을 샘플링하기 위하여 외부 회로에 의해 사용될 수도 있다. IRXCLK 신호 (3018), 또는 IRXCLK 신호 (3018) 의 파생 신호 (derivative signal) (예를 들어, RXCLK 신호 (2904)) 는 디코더 또는 디시리얼라이저 회로에 제공될 수도 있다. 일부 사례들에서, NEFLT 신호 (3016) 와 같은 다른 신호들이 외부 회로를 위한 클럭 신호를 생성하는데 사용될 수도 있다. 레벨 래치 (3010) 는 SI 신호 (3020) 를 수신하며 S 신호 (3022) 를 출력하고, 여기서 레벨 래치 (3010) 는 IRXCLK 신호 (3018) 에 의해 트리거되거나 또는 그렇지 않으면 제어된다. 일 예에서, S 신호 (3022) 는 CDR 회로 (3000) 의 심볼 출력의 역할을 할 수도 있다. 다른 예들에서, 추가적인 회로가 CDR 회로 (3000) 에 포함되어, CDR 회로 (3000) 의 심볼 출력으로서 사용을 위해 S 신호 (3022) 를 지연, 래치 (latch) 및/또는 그렇지 않으면 컨디셔닝할 수도 있다.
동작시, 비교기 (3004) 는 SI 신호 (3020) 와, 레벨 레치 (3010) 로부터 출력된 S 신호 (3022) 를 비교한다. 비교기 (3004) 는 SI 신호 (3020) 및 S 신호 (3022) 가 동일할 때 NE 신호 (3014) 를 제 1 상태 (예를 들어, 로직 로우) 로 그리고, SI 신호 (3020) 및 S 신호 (3022) 가 동일하지 않을 때 제 2 상태 (예를 들어, 로직 하이) 로 구동한다. NE 신호 (3014) 는 SI 신호 (3020) 및 S 신호 (3022) 가 상이한 심볼들을 나타낼 때 제 2 상태에 있다. 따라서, 제 2 상태는 천이가 일어나고 있는 것을 나타낸다.
도 31은 SCLMASK 신호 (3142) 를 생성하는데 그리고 CCIe 송신 모드를 결정하는데 사용될 수도 있는 로직 회로 (3100) 의 일 예를 예시하는 블록도이다. 도 29 를 계속 참조하면, 로직 회로 (3100) 는, SCL 신호 (216), SCL0DET 신호 (2912), SCLMASK 신호 (2928), 및 다운 카운터 (2920) 에 의해 출력된 CNT 신호 (2924) (도 29 참조) 의 2개 최상위 비트들과 “00” 사이의 비교의 결과 (3124) 를 생성하도록 구성된 비교 로직의 출력의 값들에 기초하여 SYNC12PRE 신호 (3130) 를 생성하도록 구성된 제 1 게이트 (3102) 를 포함한다. 로직 회로 (3100) 는 또한, CNT 신호 (2924) 의 모든 비트들과 0x00 사이의 비교의 결과 (3128) 를 생성하도록 구성된 비교 로직의 출력에 기초하여 SYNC20PRE 신호 (3132) 를 생성한다. 로직 회로 (3100) 는 12 심볼 CCIe 천이 모드에 대해 동기화가 달성되었음을 나타내는 신호 (SYNC12) (3140), 및 20 심볼 CCIe 송신 모드에 대해 동기화가 달성되었음을 나타내는 또 다른 신호 (SYNC20) (3142) 를 생성할 수도 있다. CCIe 송신 모드는 CNT 신호 (2924) 의 값의 결정에 적어도 부분적으로 기초하여 결정될 수도 있다. 로직 회로 (3100) 는 또한, SDAMASK 신호 (3030) 와 함께 CDR 회로 (3000) 에 제공될 수도 있는 SCLMASK 신호 (3142) 를 생성할 수도 있다.
도 32는 SDAMASK 신호 (3206) 를 생성하는데 사용된 로직 회로 (3200) 의 예의 동작을 예시하는 타이밍 도 (3220) 를 포함한다. SDAMASK 신호는, 예를 들어, 대역내 IRQ 생성에 사용될 수도 있다.
일부 사례들에서, CCIe 동작을 위해 구성 또는 적응된 디바이스는 복수의 모드들에서 동작 가능할 수도 있다. 더욱이, CCIe 버스 상에서 이용가능한 동작 모드들은 시스템 리셋 또는 스타트업에서보다는 동작 중에 결정될 수도 있다. 일 예에서, 핫 플러그 CCIe 디바이스는 12 심볼 또는 20 심볼 CCIe 송신 모드에 대응하는 SYNC 패턴을 기다릴 수도 있다. CCIe 디바이스는 또한, I2C 프로토콜들을 이용하여 통신 가능할 수도 있지만, CCIe 디바이스는 통상적으로, I2C 통신 타이밍에 동기화할 것이 요구되지 않는다.
도 35는 SCL 신호 (216) 및 SDA 신호 (218) 를 통해서 송신되는 통신들이 I2C 프로토콜들을 준수할 때 SYNC 검출 로직의 동작을 예시하는 타이밍 도이다. SYNC 로직은 유효 CCIe 송신을 검출하지 않고, 카운터는 그의 최대 값으로, SCL 신호 (216) 가 로직 로우 레벨에 있을 때, 리셋될 수도 있다.
프레임 동기화
도 36은 혼합된 CCIe 및 I2C 환경에서 동작하는 CCIe 디바이스들을 위한 프레임 동기화 프로세스를 예시하는 상태 도 (3600) 이다. 초기에, CCIe 디바이스들은 동일한 동작 모드에 있고 프레임에 동기화된다. 유휴 상태 (3604) 에서, CCIe 디바이스들은 I2C 동작 모드를 지원하는 상태 (3602) 로 천이될 수도 있다. I2C 모드로부터 CCIe 모드로의 천이들은 CCIe 디바이스들이 유휴 상태 (3604) 에 놓여지게 하고, 그로부터 CCIe 디바이스들은 활성 통신 상태들 (3602, 3606) 로 천이할 수도 있다. 초기 CCIe 활성 통신 상태 (3606) 에서, CCIe 통신들은, CCIe 디바이스가 디바이스들에 의해 사용되는 슬레이브 ID 에 대응하는 슬레이브 ID 를 검출할 때 시작될 수도 있다. 다음으로, 슬레이브는 어드레스 정보를 기다리는 상태 (3608) 에 진입한다. 다음으로, 읽기 또는 쓰기는 쓰기 상태 (3610) 또는 하나 이상의 읽기 상태들 (3612, 3614, 3616) 에서 완료된다. 소정 활성 상태들 (3610, 3612, 또는 3616) 로부터의 종료는 유휴 상태 (3604) 로 디바이스를 리턴시킬 수도 있다.
일부 사례들에서, CCIe 디바이스를 비동기화 상태에 두는 것이 바람직할 수도 있다. 일 예에서, 디바이스는 비동기화 상태에 놓여져 직렬 버스의 동작 모드의 변화를 가능하게 하거나 또는 강제할 수도 있다. 일 예에서, CCIe 마스터는 동기화를 깨기 위하여 의도적인 심볼 에러를 송신할 수도 있다. 도 37은 비동기화 상태로의 천이를 가져오기 위하여 CCIe 마스터에 의해 송신될 수 있는, UNSYNC 코드 (3700) 로 지칭될 수도 있는, CCIe 워드를 예시한다. 프레임은, 에러 조건을 나타내기 위하여 '1' 로 설정되는 에러 검출 비트와 함께, 0x0000 로 설정된 SID 를 가질 수도 있다. 이 송신은 UNSYNC 코드 (3700) 로 지칭될 수도 있다. UNSYNC 코드 (3700) 의 수신시, 슬레이브 디바이스는 비동기화 상태로 드롭되고 CCIe 버스의 시그널링 상태에서 SYNC 패턴을 찾는 것을 시작할 수도 있다.
직렬 버스의 동작 모드들간의 천이들
본원에 개시된 소정 양태들에 따라 적응된 마스터 및 슬레이브 디바이스들은 다수의 동작 모드 및/또는 다수의 프로토콜들을 지원하는 직렬 버스에 연결되고 그 직렬 버스를 통해 통신할 수도 있다.
도 38은 직렬 버스 상에서 사용될 수도 있는 다수의 프로토콜들간의 및/또는 직렬 버스의 동작 모드들간의 천이를 위한 일반화된 스킴을 예시하는 흐름 도 (3800) 이다. 각각의 동작 모드 및/또는 프로토콜은 대응하는 활성 상태 (3802, 3804, 3812, 3814) 와 연관될 수도 있다. 버스의 동작 모드는 시그널링 스킴들, 데이터 스루풋, 송신 포맷 등을 구별할 수도 있다. 상이한 동작 모드가 프로토콜에 대해 정의될 수도 있다. 예를 들어, 12 심볼 및 20 심볼 모드들이 CCIe 프로토콜에 대해 정의될 수도 있다.
상이한 타입의 천이들이 활성 상태들 (3802, 3804, 3812, 3814) 간에 이용가능할 수도 있다. 첫번째 예에서, 직렬 버스는 다음의 활성 상태 (3802, 3804, 3814) 가 초기화될 수도 있는 유휴 상태 (3810) 에 진입할 수도 있다. 유휴 상태 (3810) 는, 제 1 프로토콜에 따라 통신하는 2개 이상의 디바이스들이 통신 트랜잭션을 완료하였고 버스를 해제할 때 진입될 수도 있다. 버스를 통해 통신하기를 희망하는 디바이스, 이를테면 마스터 디바이스는, 중재 (arbitration) 및/또는 협상을 통해 유휴 상태 (3810) 동안 버스의 제어를 획득할 수도 있고, 중재 프로세스에서 위닝 (winning) 시에, 통신을 시작할 수도 있다. 버스의 제어를 획득하는 디바이스는 제 1 프로토콜을 이용하여 통신을 개시할 수도 있다. 제 2, 상이한 프로토콜을 이용하여 통신하는 디바이스들은 제 1 프로토콜을 수반하는 통신을 무시하도록 구성될 수도 있다. 예를 들어, I2C 디바이스들은 공유된 버스 상의 CCIe 통신을 무시할 수도 있다.
두번째 예에서, 활성 상태들 (3802, 3804, 3812) 간의 천이들은 버스를 "익셉션" (Exception) 상태 (3808) 에 들어가게 강제함으로서 달성될 수도 있다. 익셉션 상태 (3808) 는, 슬레이브 디바이스들이 마스터 디바이스와 동기되어 있지 않을 때 존재할 수도 있다. 익셉션 상태 (3808) 는, 버스에 연결된 디바이스들의 그룹에 대해 리셋이 수행된 후 존재할 수도 있다.
세번째 예에서, 활성 상태들 (3802, 3804) 간의 천이들은 커맨드들의 세트 (3806) 를 이용하여 수행될 수도 있다. 예를 들어, CCIe 마스터 디바이스가 12 심볼과 20 심볼 동작 모드들 사이에서 선택하는 것을 허락하는 커맨드 구조가 제공될 수도 있다. CCIe 마스터는 천이가 일어난 후에 직렬 버스의 제어를 보유할 수도 있다.
활성 상태들 (3802, 3804, 3812, 및/또는 3814) 간의 천이를 위한 다른 수단이 고려된다. 일부 구성들에서, 유휴 상태 (3810) 및 커맨드 (3806) 의 조합이 채용될 수도 있다. 예를 들어, 직렬 버스에 연결된 소정 디바이스들은 공통 프로토콜에서 데이터를 송신 및/또는 수신하도록 구성될 수도 있다. 후자의 예에서, 구성 (configuration), 재구성 (reconfiguration), 중재 (arbitration) 및/또는 협상 (negotiation) 은 I2C 프로토콜들을 이용하여 유휴 상태 (3810) 로부터 개시될 수도 있다.
일부 구성들에서, 활성 상태들 (3802, 3804, 3812, 및/또는 3814) 간의 천이를 위한 다수의 수단이 채용될 수도 있다. I2C, CCI, 및/또는 CCIe 프로토콜들의 일부 조합을 지원하는 직렬 버스에 대해, 시그널링 스킴들, 프로토콜들의 변형들 및 프로토콜간의 스위칭이 UNSYNC 코드 (3700) (도 37 참조) 및/또는 본원에서 일반 호 (general call) 로 지칭되는 특수 제어 워드들을 이용하여 달성될 수도 있다. 일 예에서, UNSYNC 코드 (3700) 는 20 심볼과 12 심볼 CCIe 송신 모드들간의 변화를 개시하기 위하여 송신될 수도 있다.
프로토콜들 사이 (예를 들어, I2C 와 CCIe 사이), 및/또는 20 심볼과 12 심볼 CCIe 송신 모드 사이의 변화들은 하나 이상의 일반 호들의 송신에 의해 개시될 수도 있다. 일반 호들은 미리정의된 코드 워드들을 이용하여 구현될 수도 있거나 및/또는 예약 SID 및/또는 어드레스로 어드레싱될 수도 있다. 일 예에서, CCIe 프레임은 SID[15:0]==0x0000 일 때 일반 호로서 식별될 수도 있다. 마스터 디바이스는 어드레스 워드들을 이용하여 일반 호의 유형을 지정할 수도 있다. 일반 호들은 슬레이브 디바이스에 쓰여질 수 있거나, 또는 이로부터 읽혀질 수 있는, 데이터 워드들로서 송신되는 페이로드들을 포함할 수도 있다.
UNSYNC 코드 (3700) 의 사용은 리소스 공유를 통해 CCIe 슬레이브들에서 하드웨어를 최소화할 수 있고, CCIe 송신 모드들 사이의 보다 빠른 스위치가 달성될 수도 있다. 대조적으로, 일반 호는 통상적으로 추가의 디코딩 로직 및/또는 모드 스위치 로직을 필요로 하고, 일반 호는 통상적으로 완료할 추가 워드 사이클들을 필요로 한다.
도 39는 I2C 와 CCIe 모드들 사이 그리고 CCIe 송신 모드들 사이의 모드 스위칭을 예시하는 상태 도 (3900) 이다. 일 예에서, UNSYNC 코드 (3910) 는 12 심볼 CCIe 송신 모드 (3904) 동안 송신되어, 슬레이브 디바이스들로 하여금 비동기화 모드 (3902) 로 폴백 (fall back) 하게 할 수도 있다. UNSYNC 코드 (3912) 는 20 심볼 CCIe 송신 모드 (3906) 동안 송신되어, 슬레이브 디바이스들로 하여금 비동기화 모드 (3902) 로 폴백하게 할 수도 있다. UNSYNC 코드 (3910) 는 효과적으로, 슬레이브 디바이스들로 하여금, 에러가 검출될 때 수행될 수도 있는 복원 프로세스들과 유사한 복원 프로세스를 수행하게 한다. 비동기화 모드 (3902) 는 파워-온, 리셋 또는 핫 플러깅 후에 취해지거나 또는 개시되는 디바이스 상태와 동등할 수도 있다.
I2C 모드 (3908) 로의 천이들은 묘사된 CCIe 송신 모드들 (3904, 3906) 중 어느 하나로부터 개시될 수도 있다. 따라서, 비동기화 모드 (3902) 로부터 I2C 모드 (3908) 로의 천이는 CCIe 모드들 (3904 또는 3906) 중 하나로의 천이를 포함할 수도 있고, 이로부터 “12sym 종료” 일반 호 (3922), 또는 “20sym 종료” 일반 호 (3924) 가 이슈될 수도 있다. I2C 모드 (3908) 로부터 CCIe 모드로의 천이들은 12sym 진입” I2C 일반 호 (3918), 또는 “20sym 진입” I2C 일반 호 (3920) 을 사용하여 20sym CCIe 에 진입하는 것을 통하여 직접적으로, 이루어질 수도 있다.
CCIe 모드들 (3904 및 3906) 간의 천이들은 비동기화 모드 (3902) 를 통하여 천이하는 것에 의해 달성될 수 있다. 도 40 에 예시된 바처럼, 20 심볼 CCIe 송신 모드 (3906) 로부터 12 심볼 CCIe 송신 모드 (3904) 로의 천이는 UNSYNC 다음으로 12 심볼 SYNC 패턴을 송신하는 프로세스 (4002) 를 수반할 수도 있다. 12 심볼 CCIe 송신 모드 (3904) 로부터 20 심볼 CCIe 송신 모드 (3906) 로의 천이는 UNSYNC 다음으로 20 심볼 SYNC 패턴을 송신하는 프로세스 (4004) 를 수반할 수도 있다.
소정 회로 시스템 및 방법들의 추가적인 설명
도 41은 본원에 개시된 하나 이상의 기능들을 수행하도록 구성될 수도 있는 처리 회로 (4102) 를 채용하는 장치를 위한 하드웨어 구현의 간단한 예를 예시하는 개념도 (4100) 이다. 본 개시의 다양한 양태들에 따라, 본원에 개시된 엘리먼트, 또는 엘리먼트의 임의의 부분, 또는 엘리먼트들의 임의의 조합은 처리 회로 (4102) 를 이용하여 구현될 수도 있다. 처리 회로 (4102) 는 하드웨어 및 소프트웨어 모듈들의 일부 조합에 의해 제어되는 하나 이상의 프로세서들 (4104) 을 포함할 수도 있다. 프로세서들 (4104) 의 예들은 마이크로프로세서, 마이크로제어기, 디지털 신호 프로세서 (DSP), 필드 프로그래머블 게이트 어레이 (FPGA), 프로그래머블 로직 디바이스 (PLD), 상태 머신, 시퀀서, 게이트 로직 (gated logic), 이산 하드웨어 회로, 및 본 개시 전체에 걸쳐 설명된 다양한 기능성을 수행하도록 구성된 다른 적합한 하드웨어를 포함한다. 하나 이상의 프로세서들 (4104) 은, 특정 기능들을 수행하고, 소프트웨어 모듈들 (4116) 중 하나에 의해 구성, 증강 또는 제어될 수도 있는 특수 프로세서들을 포함할 수도 있다. 하나 이상의 프로세서들 (4104) 은, 초기화 동안 로딩되는 소프트웨어 모듈들 (4116) 의 조합을 통해 구성되고, 동작 동안 하나 이상의 소프트웨어 모듈들 (4116) 을 로딩 또는 언로딩하는 것에 의해 더 구성될 수도 있다.
예시된 예에서, 처리 회로 (4102) 는, 일반적으로 버스 (4110) 에 의해 나타낸, 버스 아키텍처로 구현될 수도 있다. 버스 (4110) 는 처리 회로 (4102) 의 특정 응용 및 전체 설계 제약들에 따라 임의의 수의 상호접속 버스 및 브리지들을 포함할 수도 있다. 버스 (4110) 는 하나 이상의 프로세서들 (4104), 및 스토리지 (4106) 를 포함하는 다양한 회로들을 함께 링크한다. 스토리지 (4106) 는 메모리 디바이스들 및 대량 저장 디바이스들을 포함할 수도 있고, 컴퓨터 판독가능 매체 및/또는 프로세서 판독가능 매체로 본원에서 지칭될 수도 있다. 버스 (4110) 는 또한, 타이밍 소스, 타이머, 주변기기, 전압 레귤레이터, 및 전력 관리 회로들과 같은 다양한 다른 회로들을 링크할 수도 있다. 버스 인터페이스 (4108) 는 버스 (4110) 와 하나 이상의 트랜시버 (4112) 사이의 인터페이스를 제공할 수도 있다. 트랜시버 (4112) 는 처리 회로에 의해 지원되는 각각의 네트워킹 기술을 위해 제공될 수도 있다. 일부 사례들에서, 다수의 네트워킹 기술들은 트랜시버 (4112) 에서 발견되는 회로 또는 처리 모듈들 중 일부 또는 전부를 공유할 수도 있다. 각각의 트랜시버 (4112) 는 송신 매체를 통해 다양한 다른 장치와 통신하는 수단을 제공한다. 장치의 성질에 따라, 사용자 인터페이스 (4118) (예를 들어, 키패드, 디스플레이, 스피커, 마이크로폰, 조이스틱) 이 또한 제공될 수도 있고, 버스 (4110) 에 직접 또는 버스 인터페이스 (4108) 를 통하여 통신적으로 연결될 수도 있다.
프로세서 (4104) 는 버스 (4110) 를 관리하는 것을 담당할 수도 있고 스토리지 (4106) 를 포함할 수도 있는 컴퓨터 판독가능 매체에 저장된 소프트웨어의 실행을 포함할 수도 있는 일반 처리를 담당할 수도 있다. 이 점에 있어서, 프로세서 (4104) 를 포함한, 처리 회로 (4102) 는 본원에 개시된 방법, 기능 및 기법들 중 임의의 것을 구현하는데 사용될 수도 있다. 스토리지 (4106) 는 소프트웨어를 실행할 때 프로세서 (4104) 에 의해 다루어지는 데이터를 저장하는데 사용될 수도 있고, 소프트웨어는 본원에 개시된 방법들 중 어느 하나를 구현하도록 구성될 수도 있다.
처리 회로 (4102) 에서 하나 이상의 프로세서들 (4104) 은 소프트웨어를 실행할 수도 있다. 소프트웨어는 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 기술 언어, 또는 다른 것으로 지칭되든지 간에, 명령들, 명령 세트들, 코드, 코드 세그먼트들, 프로그램 코드, 프로그램, 서브프로그램, 소프트웨어 모듈, 애플리케이션, 소프트웨어 애플리케이션, 소프트웨어 패키지, 루틴, 서브루틴, 오브젝트, 실행물 (executable), 실행의 스레드, 프로시저, 함수 (function), 알고리즘 등을 의미하는 것으로 폭넓게 해석되야 한다. 소프트웨어는 외부 컴퓨터 판독가능 매체에 또는 스토리지 (4106) 에 컴퓨터 판독가능 형태로 상주할 수도 있다. 외부 컴퓨터 판독가능 매체 및/또는 스토리지 (4106) 는 비일시적 컴퓨터 판독가능 매체를 포함할 수도 있다. 비일시적 컴퓨터 판독가능 매체는, 예로써, 자기 저장 디바이스 (예를 들어, 하드 디스크, 플로피 디스크, 자기 스트립), 광학 디스크 (예를 들어, 컴팩트 디스크 (CD) 또는 디지털 다목적 디스크 (DVD)), 스마트 카드, 플래시 메모리 디바이스 (예를 들어, "플래시 드라이브", 카드, 스틱, 또는 키 드라이브), RAM (random access memory), ROM (read only memory), PROM (programmable ROM), EPROM (erasable PROM), EEPROM (electrically erasable PROM), 레지스터, 리무버블 디스크, 및 컴퓨터에 의해 액세스 및 판독될 수도 있는 소프트웨어 및/또는 명령들을 저장하기 위한 임의의 다른 적합한 매체를 포함한다. 컴퓨터 판독가능 매체 및/또는 스토리지 (4106) 는 또한, 예로써, 캐리어 파, 송신 라인, 및 컴퓨터에 의해 액세스 및 판독될 수도 있는 소프트웨어 및/또는 명령들을 송신하기 위한 임의의 다른 적합한 매체를 포함할 수도 있다. 컴퓨터 판독가능 매체 및/또는 스토리지 (4106) 는 처리 회로 (4102) 에, 프로세서 (4104) 에, 처리 회로 (4102) 의 외부에 상주하거나 또는 처리 회로 (4102) 를 포함하는 다수의 엔티티들에 걸쳐 분포될 수도 있다. 컴퓨터 판독가능 매체 및/또는 스토리지 (4106) 는 컴퓨터 프로그램 제품에 포함될 수도 있다. 예로써, 컴퓨터 프로그램 제품은 패키징 재료들에서 컴퓨터 판독가능 매체를 포함할 수도 있다. 당업자는, 전체 시스템에 부과되는 전체적인 설계 제약 및 특정 응용들에 따라, 본 개시 전체에 걸쳐 제시된 설명된 기능성을 구현하기 위한 최선의 방법을 인식할 것이다.
스토리지 (4106) 는, 본원에서 소프트웨어 모듈들 (4116) 로서 지칭될 수도 있는, 로딩가능한 코드 세그먼트들, 모듈들, 애플리케이션들, 프로그램들 등에서 유지 및/또는 조직되는 소프트웨어를 유지할 수도 있다. 소프트웨어 모듈들 (4116) 의 각각은, 처리 회로 (4102) 에 설치 또는 로딩되고 하나 이상의 프로세서들 (4104) 에 의해 실행될 때, 하나 이상의 프로세서들 (4104) 의 동작을 제어하는 런타임 이미지 (4114) 에 기여하는 명령들 및 데이터를 포함할 수도 있다. 실행될 때, 소정 명령들은 처리 회로 (4102) 로 하여금 본원에 개시된 소정 방법, 알고리즘, 및 프로세스들에 따라 기능들을 수행하게 할 수도 있다.
소프트웨어 모듈들 (4116) 의 일부는 처리 회로 (4102) 의 초기화 동안 로딩될 수도 있고, 이들 소프트웨어 모듈들 (4116) 은 본원에 개시된 다양한 기능들의 수행을 가능하게 하도록 처리 회로 (4102) 를 구성 (configure) 할 수도 있다. 예를 들어, 일부 소프트웨어 모듈들 (4116 ) 은 프로세서 (4104) 의 내부 디바이스들 및/또는 로직 회로들 (4122) 을 구성할 수도 있고, 트랜시버 (4112), 버스 인터페이스 (4108), 사용자 인터페이스 (4118), 타이머들, 수학적 코프로세서들 등과 같은 외부 디바이스들에의 액세스를 관리할 수도 있다. 소프트웨어 모듈들 (4116) 은, 인터럽트 핸들러들 및 디바이스 드라이버들과 상호작용하고 그리고 처리 회로 (4102) 에 의해 제공된 다양한 리소스들에의 액세스를 제어하는 제어 프로그램 및/또는 오퍼레이팅 시스템을 포함할 수도 있다. 리소스들은 메모리, 처리 시간, 트랜시버 (4112) 에의 액세스, 사용자 인터페이스 (4118) 등을 포함할 수도 있다.
처리 회로 (4102) 의 하나 이상의 프로세서들 (4104) 은 다기능적일 수도 있고, 이에 의해, 소프트웨어 모듈들 (4116) 의 일부는 상이한 기능들 또는 동일한 기능의 상이한 인스턴스 (instance) 들을 수행하도록 로딩 및 구성된다. 하나 이상의 프로세서들 (4104) 은 추가로, 예를 들어, 사용자 인터페이스 (4118), 트랜시버 (4112) 및 디바이스 드라이버들로부터의 입력들에 응답하여 개시된 백그라운드 작업 (background task) 들을 관리하도록 적응될 수도 있다. 다수의 기능들의 수행을 지원하기 위해, 하나 이상의 프로세서들 (4104) 은 멀티태스킹 환경을 제공하도록 구성될 수도 있고, 이에 의해, 복수의 기능들의 각각은, 필요하거나 요구되는 바에 따라, 하나 이상의 프로세서들 (4104) 에 의해 서비스되는 작업들의 세트로서 구현된다. 일 예에 있어서, 멀티태스킹 환경은 상이한 작업들 사이에서 프로세서 (4104) 의 제어를 전달하는 타임쉐어링 (timesharing) 프로그램 (4120) 을 사용하여 구현될 수도 있고, 이에 의해, 각각의 작업은, 임의의 미해결 (outstanding) 동작들의 완료시 및/또는 인터럽트와 같은 입력에 응답하여, 하나 이상의 프로세서들 (4104) 의 제어를 타임쉐어링 프로그램 (4120) 으로 리턴한다. 작업이 하나 이상의 프로세서들 (4104) 의 제어를 가질경우, 처리 회로는 제어 작업과 연관된 기능에 의해 다루어지는 목적들을 위해 효과적으로 특수화된다. 타임쉐어링 프로그램 (4120) 은 오퍼레이팅 시스템, 라운드-로빈 기반의 제어를 전송하는 메인 루프, 기능들의 우선순위화에 따라 하나 이상의 프로세서들 (4104) 의 제어를 할당하는 기능, 및/또는 하나 이상의 프로세서들 (4104) 의 제어를 핸들링 기능에 제공함으로써 외부 이벤트들에 응답하는 인터럽트 구동된 메인 루프를 포함할 수도 있다.
도 42는 직렬 버스 상의 데이터 통신을 위한 방법을 예시하는 플로우차트 (4200) 이다. 직렬 버스는 CCIe 버스일 수도 있고, 방법에 기재된 다양한 절차 및 기능들은, 도 2에 예시된 CCIe 마스터 디바이스 (220), 도 3에 예시된 디바이스들 (송신기 (300) 또는 수신기 (320)), 및/또는 본원에 기재된 다른 디바이스들의 일부 조합을 포함하는 디바이스에 의해 수행될 수도 있다.
블록 (4202) 에서, 마스터 디바이스 (220) 는 직렬 버스 상에서 제 1 SYNC 코드를 송신할 수도 있다. 제 1 SYNC 코드는 동기화 워드 및 하트비트 워드를 포함할 수도 있고, 여기서 하트비트 워드는 하나 이상의 슬레이브 CCIe 디바이스들이 클럭 신호를 생성하는 것을 가능하게 할 수 있다.
블록 (4204) 에서, 마스터 디바이스 (220) 는 제 1 SYNC 코드에 응답하여 직렬 버스에 연결된 제 1 디바이스와 동기화를 확립할 수도 있다. 마스터 디바이스 (220) 는 제 1 디바이스와 동기화를 확립한 후에, 제 1 프로토콜과 연관된 제 1 동작 모드에 따라 직렬 버스를 통해 제 1 디바이스와 통신할 수도 있다.
블록 (4206) 에서, 마스터 디바이스 (220) 는 직렬 버스 상에서 UNSYNC 코드를 송신할 수도 있고, 여기서 UNSYNC 코드는 제 1 디바이스와 동기화의 손실을 일으키도록 구성된다. UNSYNC 코드는 에러 조건의 표시자를 포함할 수도 있다. 에러 조건의 표시자의 존재는 제 1 디바이스로 하여금 비동기화 상태에 진입하게 할 수도 있다.
블록 (4208) 에서, 마스터 디바이스 (220) 는 직렬 버스 상에서 제 2 SYNC 코드를 송신할 수도 있다.
블록 (4210) 에서, 마스터 디바이스 (220) 는 제 2 SYNC 코드에 응답하여 직렬 버스에 연결된 제 2 디바이스와 동기화를 확립할 수도 있다. 마스터 디바이스 (220) 는 제 2 디바이스와 동기화를 확립한 후에, 제 1 프로토콜과 연관된 제 2 동작 모드에 따라 직렬 버스를 통해 제 2 디바이스와 통신할 수도 있다.
일 예에서, 제 1 프로토콜은 CCIe 프로토콜이다. 제 1 동작 모드는, 데이터 워드가 직렬 버스 상에서 송신될 12개 심볼들에서 인코딩되는 동작 모드에 대응할 수도 있다. 제 1 SYNC 코드는 직렬 버스 상에서 12개 심볼들의 시퀀스를 송신하는 것에 의해 송신될 수도 있다. 12개 심볼들의 시퀀스는 CCIe 버스의 SCL 와이어로 하여금, 12 개 심볼들의 시퀀스의 송신 동안 로직 하이 시그널링 상태에 남아있게 하도록 구성 또는 선택될 수도 있다. SDA 와이어는 12개의 심볼들의 시퀀스의 연속되는 심볼들간의 각각의 천이에서 시그널링 상태를 변화시킬 수도 있다.
다른 예에서, 제 1 프로토콜은 CCIe 프로토콜이다. 제 1 동작 모드는, 데이터 워드가 직렬 버스 상에서 송신될 20개 심볼들에서 인코딩되는 동작 모드에 대응할 수도 있다. 제 1 SYNC 코드는 직렬 버스 상에서 20개 심볼들의 시퀀스를 송신하는데 트랜시버를 이용하여 송신될 수도 있다. 20개 심볼들의 시퀀스는 CCIe 버스의 SCL 와이어로 하여금, 20 개 심볼들의 시퀀스의 송신 동안 로직 하이 시그널링 상태에 남아있게 하도록 구성 또는 선택될 수도 있다. SDA 와이어는 20개의 심볼들의 시퀀스의 연속되는 심볼들간의 각각의 천이에서 시그널링 상태를 변화시킬 수도 있다.
제 1 프로토콜이 CCIe 프로토콜인 경우에, 제 1 디바이스와 통신하는 것은 심볼들의 시퀀스에서 슬레이브 CCIe 디바이스로 하나 이상의 데이터 워드들을 송신하는 것을 포함할 수도 있다.
일부 사례들에서, 디바이스는 직렬 버스 상에서 일반 호를 송신할 수도 있다. 일반 호는 직렬 버스로 하여금 유휴 상태에 진입하게 할 수도 있다. 디바이스는, 직렬 버스가 유휴 상태에 진입한 후에 제 2 프로토콜을 이용하여 직렬 버스에 연결된 제 3 디바이스와 통신할 수도 있다. 제 1 프로토콜은 CCIe 프로토콜일 수도 있고, 제 2 프로토콜은 I2C 프로토콜일 수도 있다. 직렬 버스에 접속된 적어도 하나의 디바이스는 I2C 프로토콜들을 이용하여 통신하는 것으로 제한될 수도 있다.
도 43 는 처리 회로 (4302) 를 채용하는 장치 (4300) 를 위한 하드웨어 구현의 간단한 예를 예시하는 도면이다. 처리 회로는 통상적으로, 마이크로프로세서, 마이크로제어기, 디지털 신호 프로세서, 시퀀서 및 상태 머신 중 하나 이상을 포함할 수도 있는 프로세서 (4316) 를 갖는다. 처리 회로 (4302) 는, 일반적으로 버스 (4320) 로 표현되는, 버스 아키텍처로 구현될 수도 있다. 버스 (4320) 는 처리 회로 (4302) 의 특정 응용 및 전체 설계 제약들에 따라 임의의 수의 상호접속 버스 및 브리지들을 포함할 수도 있다. 버스 (4320) 는, 프로세서 (4316), 모듈 또는 회로들 (4304, 4306, 4308, 및 4310), 커넥터 또는 와이어들 (4314) 을 통해 통신하도록 구성가능한 라인 인터페이스 회로들 (4312), 및 컴퓨터 판독가능 저장 매체 (4318) 에 의해 나타내어지는, 하나 이상의 프로세서들 및/또는 하드웨어 모듈들을 포함한 다양한 회로들을 함께 링크한다. 버스 (4320) 는 또한, 타이밍 소스, 주변기기, 전압 레귤레이터, 및 전력 관리 회로 등의 다양한 다른 회로들을 링크할 수도 있는데, 이들은 업계에 잘 알려져 있으므로, 더 이상 설명되지 않을 것이다.
프로세서 (4316) 는, 컴퓨터 판독가능 저장 매체 (4218) 에 저장된 소프트웨어의 실행을 포함한, 일반적인 처리를 담당한다. 소프트웨어는, 프로세서 (4316) 에 의해 실행될 때, 처리 회로 (4302) 으로 하여금 임의의 특정 장치에 대해 위에 설명된 다양한 기능들을 수행하게 한다. 컴퓨터 판독가능 저장 매체 (4318) 는 또한, 커넥터 (4314) 를 통해 송신되는 심볼들로부터 디코딩된 데이터를 포함한, 소프트웨어를 실행할 때, 프로세서 (4316) 에 의해 다루어지는 데이터를 저장하는데 사용될 수도 있다. 처리 회로 (4302) 는 모듈들 (4304, 4306, 4308, 및 4310) 중의 적어도 하나를 더 포함한다. 모듈들 (4304, 4306, 4308, 및 4310) 은, 프로세서 (4316) 에서 실행되며, 컴퓨터 판독가능 저장 매체 (4318) 에 상주 및/또는 저장되는 소프트웨어 모듈들, 프로세서 (4316) 에 연결되는 하나 이상의 하드웨어 모듈들, 또는 이들의 일부 조합일 수도 있다. 모듈들 (4304, 4306, 4308, 및/또는 4310) 은 마이크로제어기 명령들, 상태 머신 구성 파라미터들 또는 이들의 일부의 조합을 포함할 수도 있다.
일 구성에서, 무선 통신을 위한 장치 (4300) 는, 동기화 코드들을 생성하기 위한 모듈들 및/또는 회로들 (4304), 일반 호들을 포함하는 커맨드들을 생성하기 위한 모듈들 및/또는 회로들 (4306), 프로토콜 및 동작 모드를 선택하기 위한 모듈들 및/또는 회로들 (4308), 프로토콜들 및/또는 동작 모드들 간의 천이를 위해 직렬 버스 상에서 SYNC, UNSYNC 및/또는 일반 호들을 송신하기 위한 모듈들 및/또는 회로들 (4310) 을 포함한다.
일 예에서, 처리 회로 (4302) 는 컴퓨터 판독가능 저장 매체 (4318) 에 유지된 명령들을 실행할 수도 있고, 이에 의해, 그러한 실행은 장치 (4300) 로 하여금, 제 1 SYNC 코드에 응답하여 커넥터 (4314) 에 연결된 제 1 디바이스와 동기화를 확립하게 하고, 제 1 디바이스와 동기화를 확립한 후에, 제 1 프로토콜과 연관된 제 1 동작 모드에 따라 커넥터 (4314) 들을 통해 제 1 디바이스와 통신하게 하고, 커넥터 (4314) 상에서 UNSYNC 코드를 송신하게 하는 것으로서, 상기 UNSYNC 코드는 제 1 디바이스와 동기화의 손실을 일으키도록 구성되는, 상기 UNSYNC 코드를 송신하게 하고, 커넥터 (4314) 상에서 제 2 SYNC 코드를 송신하게 하고, 제 2 SYNC 코드에 응답하여 커넥터 (4314) 에 연결된 제 2 디바이스와 동기화를 확립하게 하고, 그리고 제 2 디바이스와 동기화를 확립한 후에, 제 1 프로토콜과 연관된 제 2 동작 모드에 따라 커넥터 (4314) 를 통해 제 2 디바이스와 통신하게 한다.
전술된 수단은, 예를 들어, 프로세서 또는 제어 로직 (212), 트랜시버 (210) 및 라인 드라이버/수신기 (214a, 214b) 를 포함하는 물리 계층 디바이스들 및 저장 매체 또는 레지스터들 (206 및/또는 210b) 의 일부 조합을 이용하여, 구현될 수도 있다.
개시된 프로세스들에서 단계들의 특정 순서 또는 계층 (hierarchy) 은 예시적인 접근법들의 예시라는 것이 이해된다. 설계 선호들에 기초하여, 프로세스들에서 단계들의 특정 순서 또는 계층은 재배열될 수도 있다는 것이 이해된다. 수반하는 방법 청구항들은, 샘플 순서에서 다양한 단계들의 엘리먼트들을 제시하고, 제시된 특정 순서 또는 계층에 한정하는 것을 의미하지는 않는다.
이전의 설명은 당업자가 본원에 기재된 다양한 양태들을 실시하는 것을 가능하게 하기 위해서 제공된다. 이들 양태들에 대한 다양한 변경들이 당업자에게 손쉽게 분명해질 것이고, 본원에 정의된 일반 원리들은 다른 양태들에 적용될 수도 있다. 따라서, 청구항들은 여기에 보여진 다양한 양태들에 한정되는 것으로 의도된 것이 아니라, 청구항 문언에 부합하는 전체 범위가 부여되야 하고, 단수형 엘리먼트에 대한 언급은, 특별히 그렇게 언급되지 않았으면 "하나 및 오직 하나만" 을 의미하도록 의도된 것이 아니라 오히려 "하나 이상" 을 의미하도록 의도된다. 명확하게 달리 언급되지 않으면, 용어 "일부"는 하나 이상을 나타낸다. 당업자에게 알려져 있거나 나중에 알려지게 될 본 개시 전체에 걸쳐 설명된 다양한 양태들의 엘리먼트들에 대한 모든 구조적 및 기능적 등가물들은 참조에 의해 본원에 명시적으로 포함되고 청구항들에 의해 포함되도록 의도된다. 또한, 여기에 개시된 어느 것도 그러한 개시가 명시적으로 청구항들에 인용되는지에 상관 없이 공중에 바쳐지는 것으로 의도되지 않았다. 청구항 엘리먼트는, 엘리먼트가 어구 "하는 수단" 을 이용하여 명시적으로 인용되지 않는다면, 기능식 (means plus function) 으로서 해석되지 않아야 한다.

Claims (30)

  1. 데이터 통신 방법으로서,
    직렬 버스 상에서 제 1 동기화 (SYNC) 코드를 송신하는 단계;
    상기 제 1 SYNC 코드에 응답하여 제 1 디바이스와 동기화를 확립한 후에, 제 1 프로토콜과 연관된 제 1 동작 모드에 따라 상기 직렬 버스를 통해 상기 제 1 디바이스와 통신하는 단계;
    상기 직렬 버스 상에서 비동기화 (UNSYNC) 코드를 송신하는 단계로서, 상기 UNSYNC 코드는 상기 제 1 디바이스와 동기화의 손실을 일으키도록 구성되는, 상기 비동기화 (UNSYNC) 코드를 송신하는 단계;
    상기 직렬 버스 상에서 제 2 SYNC 코드를 송신하는 단계; 및
    상기 제 2 SYNC 코드에 응답하여 제 2 디바이스와 동기화를 확립한 후에, 상기 제 1 프로토콜과 연관된 제 2 동작 모드에 따라 상기 직렬 버스를 통해 상기 제 2 디바이스와 통신하는 단계
    를 포함하는, 데이터 통신 방법.
  2. 제 1 항에 있어서,
    상기 제 1 프로토콜은 카메라 제어 인터페이스 (CCIe) 프로토콜을 포함하고, 상기 제 1 동작 모드는 상기 직렬 버스 상에서 송신될 12개 심볼들에서 데이터 워드가 인코딩되는 동작 모드에 대응하는, 데이터 통신 방법.
  3. 제 2 항에 있어서,
    상기 제 1 SYNC 코드를 송신하는 단계는
    상기 직렬 버스 상에서 12개 심볼들의 시퀀스를 송신하는 단계를 포함하고,
    상기 12개 심볼들의 시퀀스는 상기 직렬 버스의 직렬 클럭 (SCL) 와이어로 하여금 상기 12개 심볼들의 시퀀스의 송신 동안 로직 하이 시그널링 상태에 남아 있게 하도록 선택되고, 또한 상기 직렬 버스의 직렬 데이터 (SDA) 와이어로 하여금 상기 12개 심볼들의 시퀀스의 연속되는 심볼들 사이의 각각의 천이에서 시그널링 상태를 변화시키게 하는, 데이터 통신 방법.
  4. 제 1 항에 있어서,
    상기 제 1 프로토콜은 CCIe 프로토콜을 포함하고, 상기 제 2 동작 모드는 상기 직렬 버스 상에서 송신될 20개 심볼들에서 데이터 워드가 인코딩되는 동작 모드에 대응하는, 데이터 통신 방법.
  5. 제 4 항에 있어서,
    상기 제 2 SYNC 코드를 송신하는 단계는
    상기 직렬 버스 상에서 20개 심볼들의 시퀀스를 송신하는 단계를 포함하고,
    상기 20개 심볼들의 시퀀스는 상기 직렬 버스의 직렬 클럭 (SCL) 와이어로 하여금 상기 20개 심볼들의 시퀀스의 송신 동안 로직 하이 시그널링 상태에 남아 있게 하도록 선택되고, 또한 상기 직렬 버스의 직렬 데이터 (SDA) 와이어로 하여금 상기 20개 심볼들의 시퀀스의 연속되는 심볼들 사이의 각각의 천이에서 시그널링 상태를 변화시키게 하는, 데이터 통신 방법.
  6. 제 1 항에 있어서,
    상기 제 1 프로토콜은 CCIe 프로토콜을 포함하고,
    상기 제 1 디바이스와 통신하는 단계는
    심볼들의 시퀀스에서 슬레이브 CCIe 디바이스에 하나 이상의 데이터 워드들을 송신하는 단계를 포함하는, 데이터 통신 방법.
  7. 제 1 항에 있어서,
    상기 제 1 SYNC 코드는 동기화 워드 및 하트비트 워드를 포함하고, 상기 하트비트 워드는 하나 이상의 슬레이브 CCIe 디바이스들이 클럭 신호를 생성하는 것을 가능하게 하는, 데이터 통신 방법.
  8. 제 1 항에 있어서,
    상기 UNSYNC 코드는 에러 조건의 표시자를 포함하고, 상기 에러 조건의 표시자의 존재는 상기 제 1 디바이스로 하여금 비동기화 상태에 진입하게 하는, 데이터 통신 방법.
  9. 제 1 항에 있어서,
    상기 직렬 버스 상에서 일반 호를 송신하는 단계로서, 상기 일반 호는 상기 직렬 버스로 하여금 유휴 상태에 진입하게 하도록 선택되는, 상기 일반 호를 송신하는 단계; 및
    상기 직렬 버스가 상기 유휴 상태에 진입한 후에 제 2 프로토콜을 이용하여 상기 직렬 버스에 연결된 제 3 디바이스와 통신하는 단계를 더 포함하는, 데이터 통신 방법.
  10. 제 9 항에 있어서,
    상기 제 1 프로토콜은 CCIe 프로토콜을 포함하고, 상기 제 2 프로토콜은 집적 회로간 (I2C) 프로토콜을 포함하는, 데이터 통신 방법.
  11. 제 1 항에 있어서,
    상기 직렬 버스에 접속된 적어도 하나의 디바이스는 집적 회로간 (I2C) 프로토콜들을 이용하여 통신하는 것으로 제한되는, 데이터 통신 방법.
  12. 직렬 버스를 통해 통신하도록 구성되는 트랜시버; 및
    적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 프로세서는
    상기 직렬 버스 상에서 송신을 위해 상기 트랜시버에 제 1 동기화 (SYNC) 코드를 제공하고;
    상기 제 1 SYNC 코드에 응답하여 제 1 디바이스와 동기화가 확립된 후에, 제 1 프로토콜과 연관된 제 1 동작 모드에 따라 상기 직렬 버스를 통해 상기 제 1 디바이스와 통신하고;
    상기 직렬 버스 상에서 송신을 위해 상기 트랜시버에 비동기화 (UNSYNC) 코드를 제공하는 것으로서, 상기 UNSYNC 코드는 상기 제 1 디바이스와 동기화의 손실을 일으키도록 구성되는, 상기 비동기화 (UNSYNC) 코드를 제공하고;
    상기 직렬 버스 상에서 송신을 위해 상기 트랜시버에 제 2 SYNC 코드를 제공하고; 그리고
    상기 제 2 SYNC 코드에 응답하여 제 2 디바이스와 동기화가 확립된 후에, 상기 제 1 프로토콜과 연관된 제 2 동작 모드에 따라 상기 직렬 버스를 통해 상기 제 2 디바이스와 통신하도록 구성되는, 장치.
  13. 제 12 항에 있어서,
    상기 제 1 프로토콜은 카메라 제어 인터페이스 (CCIe) 프로토콜을 포함하고, 상기 제 1 동작 모드는 상기 직렬 버스 상에서 송신될 12개 심볼들에서 데이터 워드가 인코딩되는 동작 모드에 대응하는, 장치.
  14. 제 13 항에 있어서,
    상기 제 1 SYNC 코드는 12개의 심볼들의 시퀀스를 포함하고, 상기 12개의 심볼들의 시퀀스는 상기 직렬 버스의 직렬 클럭 (SCL) 와이어로 하여금 상기 12개 심볼들의 시퀀스의 송신 동안 로직 하이 시그널링 상태에 남아 있게 하도록 선택되고, 또한 직렬 데이터 (SDA) 와이어로 하여금 상기 12개 심볼들의 시퀀스의 연속되는 심볼들 사이의 각각의 천이에서 시그널링 상태를 변화시키게 하도록 선택되는, 장치.
  15. 제 12 항에 있어서,
    상기 제 1 프로토콜은 CCIe 프로토콜을 포함하고, 상기 제 2 동작 모드는 상기 직렬 버스 상에서 송신될 20개 심볼들에서 데이터 워드가 인코딩되는 동작 모드에 대응하는, 장치.
  16. 제 15 항에 있어서,
    상기 제 2 SYNC 코드는 20개의 심볼들의 시퀀스를 포함하고, 상기 20개의 심볼들의 시퀀스는 상기 직렬 버스의 직렬 클럭 (SCL) 와이어로 하여금 상기 20개 심볼들의 시퀀스의 송신 동안 로직 하이 시그널링 상태에 남아 있게 하도록 선택되고, 또한 직렬 데이터 (SDA) 와이어로 하여금 상기 20개 심볼들의 시퀀스의 연속되는 심볼들 사이의 각각의 천이에서 시그널링 상태를 변화시키게 하도록 선택되는, 장치.
  17. 제 12 항에 있어서,
    상기 제 1 프로토콜은 CCIe 프로토콜을 포함하고,
    상기 장치는 심볼들의 시퀀스에서 하나 이상의 데이터 워드들을 인코딩하도록 적응된 인코더를 더 포함하고,
    상기 심볼들의 시퀀스는 상기 직렬 버스를 통해 슬레이브 CCIe 디바이스로 상기 트랜시버에 의해 송신되는, 장치.
  18. 제 12 항에 있어서,
    상기 제 1 SYNC 코드는 동기화 워드 및 하트비트 워드를 포함하고, 상기 하트비트 워드는 하나 이상의 슬레이브 CCIe 디바이스들이 클럭 신호를 생성하는 것을 가능하게 하는, 장치.
  19. 제 12 항에 있어서,
    상기 UNSYNC 코드는 에러 조건의 표시자를 포함하고, 상기 에러 조건의 표시자의 존재는 상기 제 1 디바이스로 하여금 비동기화 상태에 진입하게 하는, 장치.
  20. 제 12 항에 있어서,
    상기 적어도 하나의 프로세서는
    상기 직렬 버스 상에서 일반 호가 송신되게 하는 것으로서, 상기 일반 호는 상기 직렬 버스로 하여금 유휴 상태에 진입하게 하도록 선택되는, 상기 일반 호가 송신되게 하고; 그리고
    상기 직렬 버스가 상기 유휴 상태에 진입한 후에 제 2 프로토콜을 이용하여 상기 직렬 버스에 연결된 제 3 디바이스와 통신하도록 구성되고,
    상기 제 1 프로토콜은 CCIe 프로토콜을 포함하고, 상기 제 2 프로토콜은 집적 회로간 (I2C) 프로토콜을 포함하는, 장치.
  21. 명령들이 저장된 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은 프로세서에 의해 실행될 때, 상기 프로세서로 하여금
    직렬 버스 상에서 송신을 위해 트랜시버에 제 1 동기화 (SYNC) 코드를 제공하게 하고;
    상기 제 1 SYNC 코드에 응답하여 제 1 디바이스와 동기화가 확립된 후에, 제 1 프로토콜과 연관된 제 1 동작 모드에 따라 상기 직렬 버스를 통해 상기 제 1 디바이스와 통신하게 하고;
    상기 직렬 버스 상에서 송신을 위해 상기 트랜시버에 비동기화 (UNSYNC) 코드를 제공하게 하는 것으로서, 상기 UNSYNC 코드는 상기 제 1 디바이스와 동기화의 손실을 일으키도록 구성되는, 상기 비동기화 (UNSYNC) 코드를 제공하게 하고;
    상기 직렬 버스 상에서 송신을 위해 상기 트랜시버에 제 2 SYNC 코드를 제공하게 하고; 그리고
    상기 제 2 SYNC 코드에 응답하여 제 2 디바이스와 동기화가 확립된 후에, 상기 제 1 프로토콜과 연관된 제 2 동작 모드에 따라 상기 직렬 버스를 통해 상기 제 2 디바이스와 통신하게 하는, 명령들이 저장된 컴퓨터 판독가능 저장 매체.
  22. 제 21 항에 있어서,
    상기 제 1 프로토콜은 카메라 제어 인터페이스 (CCIe) 프로토콜을 포함하고, 상기 제 1 동작 모드는 상기 직렬 버스 상에서 송신될 12개 심볼들에서 제 1 데이터 워드가 인코딩되는 동작 모드에 대응하고, 상기 제 2 동작 모드는 상기 직렬 버스 상에서 송신될 20개 심볼들에서 제 2 데이터 워드가 인코딩되는 동작 모드에 대응하는, 명령들이 저장된 컴퓨터 판독가능 저장 매체.
  23. 제 21 항에 있어서,
    상기 제 1 SYNC 코드는 12개 샘볼들의 시퀀스를 포함하고, 상기 12개 샘볼들의 시퀀스는 상기 직렬 버스의 직렬 클럭 (SCL) 와이어로 하여금 12개 심볼들의 시퀀스의 송신 동안 로직 하이 시그널링 상태에서 남아있게 하도록 선택되고, 또한 상기 직렬 버스의 직렬 데이터 (SDA) 와이어로 하여금 12개 심볼들의 시퀀스의 연속되는 심볼들 사이의 각각의 천이에서 시그널링 상태를 변화시키게 하도록 선택되고, 상기 제 2 SYNC 코드는 20개 샘볼들의 시퀀스를 포함하고, 상기 20개 샘볼들의 시퀀스는 상기 직렬 버스의 상기 SCL 와이어로 하여금 상기 20개 심볼들의 시퀀스의 송신 동안 로직 하이 시그널링 상태에서 남아있게 하도록 선택되고, 또한 상기 SDA 와이어로 하여금 상기 20개 심볼들의 시퀀스의 연속되는 심볼들 사이의 각각의 천이에서 시그널링 상태를 변화시키게 하도록 선택되는, 명령들이 저장된 컴퓨터 판독가능 저장 매체.
  24. 제 21 항에 있어서,
    상기 UNSYNC 코드는 에러 조건의 표시자를 포함하고, 상기 에러 조건의 표시자의 존재는 상기 제 1 디바이스로 하여금 비동기화 상태에 진입하게 하는, 명령들이 저장된 컴퓨터 판독가능 저장 매체.
  25. 제 21 항에 있어서,
    상기 명령들은 상기 프로세서로 하여금
    상기 직렬 버스 상에서 송신될 일반 호를 제공하게 하는 것으로서, 상기 일반 호는 상기 직렬 버스로 하여금 유휴 상태에 진입하게 하도록 선택되는, 상기 일반 호를 제공하게 하고; 그리고
    상기 직렬 버스가 상기 유휴 상태에 진입한 후에 제 2 프로토콜을 이용하여 상기 직렬 버스에 연결된 제 3 디바이스와 통신하게 하고,
    상기 제 1 프로토콜은 CCIe 프로토콜을 포함하고, 상기 제 2 프로토콜은 집적 회로간 (I2C) 프로토콜을 포함하는, 명령들이 저장된 컴퓨터 판독가능 저장 매체.
  26. 직렬 버스를 통해 통신하도록 구성되는 트랜시버;
    상기 직렬 버스 상에서 송신을 위해 상기 트랜시버에 제 1 동기화 (SYNC) 코드를 제공하는 수단;
    상기 제 1 SYNC 코드에 응답하여 제 1 디바이스와 동기화가 확립된 후에, 제 1 프로토콜과 연관된 제 1 동작 모드에 따라 상기 직렬 버스를 통해 상기 제 1 디바이스와 통신하는 수단;
    상기 직렬 버스 상에서 송신을 위해 상기 트랜시버에 비동기화 (UNSYNC) 코드를 제공하는 수단으로서, 상기 UNSYNC 코드는 상기 제 1 디바이스와 동기화의 손실을 일으키도록 구성되는, 상기 비동기화 (UNSYNC) 코드를 제공하는 수단;
    상기 직렬 버스 상에서 송신을 위해 상기 트랜시버에 제 2 SYNC 코드를 제공하는 수단; 및
    상기 제 2 SYNC 코드에 응답하여 제 2 디바이스와 동기화가 확립된 후에, 상기 제 1 프로토콜과 연관된 제 2 동작 모드에 따라 상기 직렬 버스를 통해 상기 제 2 디바이스와 통신하는 수단을 포함하는, 장치.
  27. 제 26 항에 있어서,
    상기 제 1 프로토콜은 카메라 제어 인터페이스 (CCIe) 프로토콜을 포함하고, 상기 제 1 동작 모드는 상기 직렬 버스 상에서 송신될 12개 심볼들에서 제 1 데이터 워드가 인코딩되는 동작 모드에 대응하고, 상기 제 2 동작 모드는 상기 직렬 버스 상에서 송신될 20개 심볼들에서 제 2 데이터 워드가 인코딩되는 동작 모드에 대응하는, 장치.
  28. 제 26 항에 있어서,
    상기 제 1 SYNC 코드는 12개 샘볼들의 시퀀스를 포함하고, 상기 12개 샘볼들의 시퀀스는 상기 직렬 버스의 직렬 클럭 (SCL) 와이어로 하여금 상기 12개 심볼들의 시퀀스의 송신 동안 로직 하이 시그널링 상태에서 남아있게 하도록 선택되고, 또한 상기 직렬 버스의 직렬 데이터 (SDA) 와이어로 하여금 상기 12개 심볼들의 시퀀스의 연속되는 심볼들 사이의 각각의 천이에서 시그널링 상태를 변화시키게 하도록 선택되고, 상기 제 2 SYNC 코드는 20개 샘볼들의 시퀀스를 포함하고, 상기 20개 샘볼들의 시퀀스는 상기 직렬 버스의 상기 SCL 와이어로 하여금 상기 20개 심볼들의 시퀀스의 송신 동안 로직 하이 시그널링 상태에서 남아있게 하도록 선택되고, 또한 상기 SDA 와이어로 하여금 상기 20개 심볼들의 시퀀스의 연속되는 심볼들 사이의 각각의 천이에서 시그널링 상태를 변화시키게 하도록 선택되는, 장치.
  29. 제 26 항에 있어서,
    상기 UNSYNC 코드는 에러 조건의 표시자를 포함하고, 상기 에러 조건의 표시자의 존재는 상기 제 1 디바이스로 하여금 비동기화 상태에 진입하게 하는, 장치.
  30. 제 26 항에 있어서,
    상기 직렬 버스 상에서 일반 호가 송신되게 하는 수단으로서, 상기 일반 호는 상기 직렬 버스로 하여금 유휴 상태에 진입하게 하도록 선택되는, 상기 일반 호가 송신되게 하는 수단; 및
    상기 직렬 버스가 상기 유휴 상태에 진입한 후에 제 2 프로토콜을 이용하여 상기 직렬 버스에 연결된 제 3 디바이스와 통신하는 수단을 더 포함하고,
    상기 제 1 프로토콜은 CCIe 프로토콜을 포함하고, 상기 제 2 프로토콜은 집적 회로간 (I2C) 프로토콜을 포함하는, 장치.
KR1020167031026A 2014-04-22 2015-04-10 멀티 심볼 워드들을 위한 동기화 방법 KR20160146786A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461982466P 2014-04-22 2014-04-22
US61/982,466 2014-04-22
US14/682,846 US9710424B2 (en) 2014-04-22 2015-04-09 Synchronization method for multi-symbol words
US14/682,846 2015-04-09
PCT/US2015/025464 WO2015164102A1 (en) 2014-04-22 2015-04-10 Synchronization method for multi-symbol words

Publications (1)

Publication Number Publication Date
KR20160146786A true KR20160146786A (ko) 2016-12-21

Family

ID=54322156

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167031026A KR20160146786A (ko) 2014-04-22 2015-04-10 멀티 심볼 워드들을 위한 동기화 방법

Country Status (7)

Country Link
US (1) US9710424B2 (ko)
EP (1) EP3134820B1 (ko)
JP (1) JP2017514394A (ko)
KR (1) KR20160146786A (ko)
CN (1) CN106462533A (ko)
BR (1) BR112016024704A2 (ko)
WO (1) WO2015164102A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
WO2019040360A1 (en) * 2017-08-24 2019-02-28 Qualcomm Incorporated GLOBAL SENSOR BUS
CN108334469A (zh) * 2017-12-20 2018-07-27 广州晶序达电子科技有限公司 一种高速差分串行数据传输的方法、系统和装置
US10901928B2 (en) * 2018-02-15 2021-01-26 United States Of America As Represented By The Secretary Of The Air Force Data access control in an open system architecture
WO2023072373A1 (en) * 2021-10-26 2023-05-04 Kone Corporation Elevator communication system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000030314A1 (fr) * 1998-11-16 2000-05-25 Sega Enterprises, Ltd. Procede de transmission de donnees et systeme de jeu fonctionnant selon ledit procede
US6880026B2 (en) 2002-05-16 2005-04-12 International Business Machines Corporation Method and apparatus for implementing chip-to-chip interconnect bus initialization
US7020729B2 (en) * 2002-05-16 2006-03-28 Intel Corporation Protocol independent data transmission interface
US7689856B2 (en) * 2006-11-08 2010-03-30 Sicortex, Inc. Mesochronous clock system and method to minimize latency and buffer requirements for data transfer in a large multi-processor computing system
US7673084B2 (en) * 2007-02-20 2010-03-02 Infineon Technologies Ag Bus system and methods of operation using a combined data and synchronization line to communicate between bus master and slaves
US8291207B2 (en) * 2009-05-18 2012-10-16 Stmicroelectronics, Inc. Frequency and symbol locking using signal generated clock frequency and symbol identification
JP5655562B2 (ja) * 2010-12-28 2015-01-21 ソニー株式会社 電子機器、電子機器の制御方法、送信装置および受信装置
US9288032B2 (en) 2012-04-13 2016-03-15 Futurewei Technologies, Inc. Dynamic frame structure for synchronous time-division duplexing digital subscriber lines
US8898358B2 (en) * 2012-07-04 2014-11-25 International Business Machines Corporation Multi-protocol communication on an I2C bus

Also Published As

Publication number Publication date
CN106462533A (zh) 2017-02-22
BR112016024704A2 (pt) 2017-08-15
US9710424B2 (en) 2017-07-18
JP2017514394A (ja) 2017-06-01
US20150301980A1 (en) 2015-10-22
EP3134820A1 (en) 2017-03-01
WO2015164102A1 (en) 2015-10-29
EP3134820B1 (en) 2018-03-14

Similar Documents

Publication Publication Date Title
US9811499B2 (en) Transcoding and transmission over a serial bus
EP3134820B1 (en) Synchronization method for multi-symbol words
KR102445344B1 (ko) 시리얼 버스를 위한 수신 클록 캘리브레이션
JP6625557B2 (ja) センサーグローバルバス
US9684624B2 (en) Receive clock calibration for a serial bus
EP3469487B1 (en) Triple-data-rate technique for a synchronous link
KR20160066029A (ko) 저전력 카메라 제어 인터페이스 버스 및 디바이스들
JP2017520053A (ja) マルチプロトコルデバイスによって共有される動的調整可能なマルチラインバス
US20150234773A1 (en) Technique to avoid metastability condition and avoid unintentional state changes of legacy i2c devices on a multi-mode bus
US9490964B2 (en) Symbol transition clocking clock and data recovery to suppress excess clock caused by symbol glitch during stable symbol period