KR101436976B1 - 가전기기 제어 프로토콜의 지능형 에뮬레이션을 통한 hdmi 디바이스들의 제어 - Google Patents

가전기기 제어 프로토콜의 지능형 에뮬레이션을 통한 hdmi 디바이스들의 제어 Download PDF

Info

Publication number
KR101436976B1
KR101436976B1 KR1020120105701A KR20120105701A KR101436976B1 KR 101436976 B1 KR101436976 B1 KR 101436976B1 KR 1020120105701 A KR1020120105701 A KR 1020120105701A KR 20120105701 A KR20120105701 A KR 20120105701A KR 101436976 B1 KR101436976 B1 KR 101436976B1
Authority
KR
South Korea
Prior art keywords
hdmi
cec
bridge
sink
devices
Prior art date
Application number
KR1020120105701A
Other languages
English (en)
Other versions
KR20130077762A (ko
Inventor
패트릭 루
지안 장
Original Assignee
브로드콤 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 브로드콤 코포레이션 filed Critical 브로드콤 코포레이션
Publication of KR20130077762A publication Critical patent/KR20130077762A/ko
Application granted granted Critical
Publication of KR101436976B1 publication Critical patent/KR101436976B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/4363Adapting the video stream to a specific local network, e.g. a Bluetooth® network
    • H04N21/43632Adapting the video stream to a specific local network, e.g. a Bluetooth® network involving a wired protocol, e.g. IEEE 1394
    • H04N21/43635HDMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2816Controlling appliance services of a home automation network by calling their functionalities
    • H04L12/282Controlling appliance services of a home automation network by calling their functionalities based on user interaction within the home
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Automation & Control Theory (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Small-Scale Networks (AREA)

Abstract

가전기기 제어(CEC) 브리지의 다양한 실시예들이 개시된다. 일 실시예에 있어, CEC 브리지는 HDMI 인터페이스, 네트워크 인터페이스, 프로세서, 및 프로세서에 의해 실행가능한 코드를 포함한다. 코드는 원격 HDMI 디바이스들의 클러스터 중 어떤 것으로 향해진 CEC 명령을 에뮬레이트하는 로직을 포함하며, 여기서 원격 HDMI 디바이스들 중 어떤 것도 HDMI 인터페이스를 통해 디바이스에 연결되지 않는다.

Description

가전기기 제어 프로토콜의 지능형 에뮬레이션을 통한 HDMI 디바이스들의 제어{CONTROLLING HDMI DEVICES VIA INTELLIGENT EMULATION OF CONSUMER ELECTRONICS CONTROL(CEC) PROTOCOL}
본 발명은 가전기기 제어 프로토콜의 지능형 에뮬레이션을 통한 HDMI 디바이스들의 제어에 관한 것이다.
다양한 기술들이 디지털 비디오가 다양한 미디어 디바이스들 사이에서 통신될 수 있도록 하기 위하여 생겨나고 있다. 일부 기술들은 또한 디바이스 제어 명령들이 디바이스들 사이에서 통신되도록 한다. 이러한 기술들 중 하나에 있어, 제어 매커니즘인 고해상도 멀티미디어 인터페이스(High Definition Multimedia Interface, HDMI)는 가전기기 제어(Consumer Electronics Control, CEC)로서 알려져 있다. 소비자들이 다양한 제조사들로부터의 디지털 미디어 디바이스들을 믹스-앤-매치(mix and match)하는 경우, 제조사들이 흔히 CEC 명령들의 상이한 세트(set)들을 이용하기 때문에, 상호운용성(interoperability)이 보통 문제된다. 문제점들은 또한 이러한 디바이스들이 물리적으로 서로 연결되기에 너무 멀리 떨어져 있는 경우 발생할 수 있다.
본 발명의 일 측면에 따르면, 디바이스는,
HDMI 인터페이스;
네트워크 인터페이스;
적어도 하나의 프로세서; 및
상기 적어도 하나의 프로세서에 의해 실행가능한 코드를 포함하며,
상기 코드는,
원격 HDMI 디바이스들의 클러스터 중 어떤 것으로 향하는 CEC 명령을 에뮬레이트하는 로직으로서, 상기 원격 HDMI 디바이스들 중 어떤 것도 상기 HDMI 인터페이스를 통해 상기 디바이스에 연결되지 않은, 로직을 포함하는 것을 특징으로 한다.
유리하게, 상기 코드는,
상기 네트워크 인터페이스를 통해 원격 CEC 에뮬레이션 디바이스와 통신하는 로직으로서, 상기 원격 HDMI 디바이스들은 다른 HDMI 인터페이스를 통해 상기 원격 CEC 에뮬레이션 디바이스와 연결된, 로직을 더 포함한다.
유리하게, 상기 코드는,
상기 원격 HDMI 디바이스들 중 하나로 향하는 CEC 명령을 수신하는 로직; 및
상기 네트워크 인터페이스를 통해 상기 CEC 명령을 전달하는 로직을 더 포함한다.
유리하게, 상기 코드는,
상기 CEC 명령의 번역(translation)이 적절한지 여부를 판단하는 로직; 및
번역이 적절한 것으로 판단되는 경우, 상기 CEC 명령을 상기 네트워크 인터페이스를 통해 전달하기 이전에, 상기 CEC 명령을 번역하는 로직을 더 포함한다.
유리하게, 상기 코드는,
비(non)-HDMI 인터페이스를 통해 CEC 에뮬레이션 메시지를 수신하는 로직으로서, 상기 에뮬레이션 메시지는 상기 HDMI 인터페이스를 통해 연결된 원격 HDMI 디바이스들 중 하나에 대한 CEC 로지컬 어드레스 배정(assignment)을 포함하고 있는, 로직을 더 포함하며,
에뮬레이트하는 상기 로직은, 상기 CEC 로지컬 어드레스 배정의 수신 후, 상기 원격 HDMI 디바이스들 중 상기 하나의 에뮬레이션을 개시한다.
유리하게, 상기 코드는,
상기 비-HDMI 인터페이스를 통해 CEC 에뮬레이션 메시지를 수신하는 로직으로서, 상기 에뮬레이션 메시지는 상기 원격 HDMI 디바이스들 중 하나에 대한 CEC 로지컬 어드레스 배정에 대한 요청을 포함하고 있는, 로직;
상기 CEC 로지컬 어드레스와 상기 HDMI 인터페이스를 통해 연결된 로컬 HDMI 디바이스들의 클러스터의 어떤 로컬 HDMI 디바이스 사이에 충돌(conflict)이 존재하는지 여부를 판단하는 로직을 더 포함하며,
에뮬레이트하는 상기 로직은, 충돌이 존재하지 않는 것으로 판단된 후, 상기 원격 HDMI 디바이스들 중 상기 하나의 에뮬레이션을 개시한다.
일 측면에 따르면, 시스템은,
제 1 HDMI 인터페이스 및 제 1 네트워크 인터페이스를 포함하는 싱크-측 브리지(sink-side bridge),
제 2 HDMI 인터페이스 및 제 2 네트워크 인터페이스를 포함하는 소스-측 브리지(source-side bridge)를 포함하며; 및
상기 싱크-측 브리지는,
상기 제 1 HDMI 인터페이스를 통해 연결된 제 1 HDMI 디바이스들의 클러스터 중 임의의 제 1 HDMI 디바이스를 탐색(discover)하고, 상기 복수의 제 1 HDMI 디바이스들은 HDMI 싱크 디바이스를 포함하며; 및
상기 제 1 네트워크 인터페이스를 통해, 상기 탐색된 제 1 HDMI 디바이스들 각각에 대한 대응하는 CEC 로지컬 어드레스 배정을 상기 소스-측 브리지로 통지하도록 구성되고;
상기 소스-측 브리지는,
상기 제 2 HDMI 인터페이스를 통해 연결된 제 2 HDMI 디바이스들의 클러스터 중 임의의 제 2 HDMI 디바이스를 탐색하고; 및
상기 제 2 네트워크 인터페이스를 통해 그리고 상기 싱크-측 브리지로부터 수신된 통지에 응답하여, 상기 싱크-측 브리지로부터의 상기 탐색된 제 2 HDMI 디바이스들 각각에 대한 CEC 로지컬 어드레스 배정을 요청하도록 구성된다.
유리하게, 상기 싱크-측 브리지는,
상기 소스-측 브리지로부터의 상기 요청에 응답하여, 상기 탐색된 제 2 HDMI 디바이스들 각각에 대한 CEC 로지컬 어드레스를 할당(allocate)하고; 및
상기 소스-측 브리지로부터의 상기 요청에 대하여, 상기 탐색된 제 2 HDMI 디바이스들 각각에 대하여 할당된 CEC 로지컬 어드레스의 지시(indication)를 이용해 답신하도록 더 구성된다.
유리하게, 상기 싱크-측 브리지는, 상기 CEC 로지컬 어드레스들 각각의 할당이 실패하였는지 여부를 판단하도록 더 구성되며, 상기 답신 내의 상기 지시는 상기 할당이 실패된 임의의 CEC 로지컬 어드레스들에 대한 실패 지시를 포함한다.
유리하게, 상기 싱크-측 브리지는 상기 제 1 HDMI 인터페이스에 포함된 CEC 버스가 파워-온(power on)되어 있는지 여부를 판단하도록 더 구성되며, 상기 답신은 상기 CEC 버스가 파워-온되었다는 판단을 조건으로 한다.
유리하게, 상기 요청은 상기 탐색된 제 2 HDMI 디바이스들 각각에 대한 요청된 CEC 로지컬 어드레스를 포함하며, 상기 싱크-측 브리지는 요청된 CEC 로지컬 어드레스들 각각에 대해 충돌이 존재하는지 여부를 판단하도록 더 구성되고, 상기 답신 내의 상기 지시는 충돌이 존재하는 임의의 CEC 로지컬 어드레스에 대한 미등록(unregistered) 어드레스 지시를 포함한다.
유리하게, 상기 소스-측 브리지는,
상기 싱크-측 브리지로부터 상기 답신을 수신하고; 및
상기 미등록 어드레스 지시를 포함하는 상기 답신에 응답하여, 상기 제 2 HDMI 인터페이스 상에서 핫플러그디텍트(HotPlugDetect) 신호를 디어서트(deassert)하고 그 뒤 리어서트(reassert)하도록 더 구성된다.
유리하게, 상기 소스-측 브리지는,
상기 탐색된 제 1 HDMI 디바이스들 각각에 대한 배정된 CEC 로지컬 어드레스를 포함하는 통지를 상기 싱크-측 브리지로부터 수신하고; 및
상기 탐색된 제 1 HDMI 디바이스들에 대한 임의의 배정된 CEC 로지컬 주소들과 상기 탐색된 제 2 HDMI 디바이스들 각각에 대해 요청된 CEC 로지컬 어드레스 사이에 충돌이 존재하는지 여부를 판단하며; 및
충돌이 존재한다는 상기 판단에 응답하여, 상기 제 2 HDMI 인터페이스 상에서 핫플러그디텍트 신호를 디어서트하고 그 뒤 리어서트하도록 더 구성된다.
유리하게, 상기 소스-측 브리지는 상기 소스 측 상의 충돌하는 어드레스들을 해결하도록 더 구성되며, 상기 요청은 상기 해법에 응답하여 상기 소스-측 브리지에 의해 수행된다.
일 측면에 따르면, 방법은,
싱크-측 브리지가 제 1 HDMI 인터페이스를 통해 상기 싱크-측 브리지에 연결된 제 1 HDMI 디바이스들의 클러스터 중 임의의 제 1 HDMI 디바이스를 탐색하는 단계로서, 상기 복수의 제 1 HDMI 디바이스들은 HDMI 싱크 디바이스를 포함하고 있는, 단계;
소스-측 브리지가 제 2 HDMI 인터페이스를 통해 상기 소스-측 브리지에 연결된 제 2 HDMI 디바이스들의 클러스터 중 임의의 제 2 HDMI 디바이스를 탐색하는 단계;
상기 싱크-측 브리지가, 비-HDMI 네트워크를 통해, 상기 탐색된 제 1 HDMI 디바이스들 각각에 대한 대응하는 CEC 로지컬 주소 배정을 상기 소스-측 브리지로 통지하는 단계; 및
상기 소스-측 브리지가, 상기 비-HDMI 네트워크를 통해 그리고 상기 싱크-측 브리지로부터의 수신된 통지에 응답하여, 상기 싱크-측 브리지로부터의 상기 탐색된 제 2 HDMI 디바이스들 각각에 대한 CEC 로지컬 어드레스 배정을 요청하는 단계를 포함한다.
유리하게, 상기 방법은,
상기 싱크-측 브리지가 상기 탐색된 제 2 HDMI 디바이스들 각각의 CEC 거동(behavior)을 에뮬레이트하는 단계를 더 포함한다.
유리하게, 상기 방법은,
상기 소스-측 브리지가 상기 탐색된 제 1 HDMI 디바이스들 각각의 CEC 거동을 에뮬레이트하는 단계를 더 포함한다.
유리하게, 상기 방법은,
상기 싱크-측 브리지가, 상기 소스-측 브리지로부터의 상기 요청에 응답하여, 상기 탐색된 제 2 HDMI 디바이스들 각각에 대한 CEC 로지컬 어드레스를 할당하는 단계; 및
상기 싱크-측 브리지가 상기 탐색된 제 2 HDMI 디바이스들 각각에 대하여 할당된 CEC 로지컬 어드레스의 지시를 이용하여 상기 소스-측 브리지로부터의 상기 요청에 답신하는 단계를 더 포함한다.
유리하게, 상기 방법은,
상기 싱크-측 브리지가 주기적으로 상기 제 1 HDMI 디바이스들에 배정된 상기 CEC 로지컬 어드레스들을 폴(poll)하는 단계; 및
상기 폴된 CEC 로지컬 어드레스들 중 하나로부터 인정(acknowledgment)이 수신되지 않음에 응답하여, 상기 싱크-측 브리지가 로지컬 어드레스 제거 메시지를 상기 소스-측 브리지로 전송하는 단계를 더 포함한다.
유리하게, 상기 방법은,
상기 소스-측 브리지가 주기적으로 상기 제 2 HDMI 디바이스들에 배정된 상기 CEC 로지컬 어드레스들을 폴하는 단계; 및
상기 폴된 CEC 로지컬 어드레스들 중 하나로부터 접수가 수신되지 않음에 응답하여, 상기 소스-측 브리지가 로지컬 어드레스 제거 메시지를 상기 싱크-측 브리지로 전송하는 단계를 더 포함한다.
본 발명의 많은 측면들이 첨부된 도면들을 참조하여 더 잘 이해될 수 있을 것이다. 도면 내의 컴포넌트들은 본 발명의 원리들을 명확하게 나타내기 위해 배치되는 대신 확장되고, 강조될 필요는 없다. 또한, 도면들 내에서, 동일한 참조 번호들은 몇몇 도면들 전체에서 대응하는 부분들을 나타낸다.
도 1은 본 발명의 일 실시예에 따른 네트워크된 환경의 블록도이다.
도 2는 본 발명의 일부 실시예에 따른 에뮬레이트된 HDMI 환경의 블록도이다.
도 3은 본 발명의 일부 실시예에 따른, 도 1의 CEC 브리지의 선택된 컴포넌트들을 나타내는 블록도이다.
도 4는 본 명세서 내에 개시된 일부 실시예들에 따른, 도 1의 소스 브리지와 도 1의 싱크 브리지 사이의 상호동작들을 나타내는 도면이다.
도 5는 본 명세서 내에 개시된 일부 실시예들에 따른, 도 1의 싱크 브리지에 의해 처리되는 비동기 이벤트를 나타내는 도면이다.
도 6은 본 명세서 내에 개시된 일부 실시예들에 따른, 도 1의 소스 브리지에 의해 처리되는 비동기 이벤트를 나타내는 도면이다.
도 7은 본 발명의 다양한 실시예들에 따른, 도 1의 CEC 브리지의 블록도이다.
도 1은 본 발명의 다양한 실시예들에 따른 HDMI 환경(100)을 도시한다. HDMI 환경(100)은 2개의 HDMI 클러스터들(110)을 포함한다. HDMI 클러스터(110)는 대응하는 HDMI 링크(130)를 통해 서로 연결된 하나 이상의 HDMI 디바이스들(120)을 포함한다. HDMI 클러스터들(110) 중 하나는 HDMI 싱크(sink) 디바이스(120-SNK)(예를 들어, 텔레비전)를 포함한다. HDMI 클러스터들(110) 중 하나 또는 둘 다는 HDMI 소스(source) 디바이스들(120-SRC)(예를 들어, 디지털 비디오 디스크(DVD) 플레이어, 셋-탑 박스, 등)을 포함한다.
명칭들이 제시하고 있는 바와 같이, HDMI 소스들은 디지털 비디오를 HDMI 싱크에 제공하며, 사용자는 HDMI 싱크로부터 컨텐트를 관람한다. 소스 디바이스는 또한 도 1에서 120-SW로 도시된 바와 같은 스위치로서 기능할 수도 있다. 그 명칭이 제안하는 바와 같이, HDMI 스위치는 복수의 디지털 비디오 입력들을 수신하고 그 것들 중 하나를 출력으로서 선택한다. HDMI 싱크 디바이스를 포함하는 임의의 클러스터는 본 명세서 내에서 싱크 클러스터(110-SNK)로서 지칭된다. HDMI 싱크 디바이스를 포함하지 않는 임의의 클러스터는 본 명세서 내에서 소스 클러스터(110-SRC)로서 지칭된다.
HDMI 환경(100)은 또한 네트워크 링크(150)를 통해 서로 통신하는 한 쌍의 가전기기 제어(Consumer Electronics Control, CEC) 브리지를 포함한다. 네트워크 링크(150)는 HDMI와 다른 임의의 통신 기술을 이용해 구현될 수 있으며, 이더넷, 광섬유, 광동축 혼합망(hybrid fiber coax)과 같은 유선 기술들뿐만 아니라 WiFi, WiMax 등과 같은 무선 기술들도 포함한다. 각각의 CEC 브리지(140)는 대응하는 HDMI 링크(130)를 통해 HDMI 클러스터들(110) 중 하나에 연결된다. 소스 클러스터(110-SRC)에 연결된 CEC 브리지(140)는 본 명세서 내에서 소스 브리지(140-SRC)로서 지칭된다. 싱크 클러스터(110-SNK)에 연결된 CEC 브리지(140)는 본 명세서 내에서 싱크 브리지(140-SNK)로서 지칭된다.
각각의 HDMI 디바이스(120)는 HDMI 표준에 명세된 CEC 프로토콜을 구현한다. CEC 프로토콜은 각각의 HDMI 디바이스(120)에 로지컬(logical) 어드레스를 배정한다.
HDMI 디바이스들(120)은 다른 HDMI 디바이스들(120)의 동작을 제어하는 명령들을 전송하기 위하여 이러한 로지컬 어드레스들을 이용한다. 예를 들어, DVD 플레이어는 TV 전원을 켤 수 있으며, DVD 입력에 대한 오디오/비디오 수신기를 스위치할 수 있다. CEC는 또한 임의의 원격 제어(remote control)를 이용해 사용자가 모든 디바이스들을 동작하도록 하는 기능을 통한 원격 제어를 포함한다. 예를 들어, CEC는 사용자가 TV 원격 리모컨을 이용해 TV 및 DVD를 제어하거나 또는 DVD 원격 리모컨을 이용해 TV 및 DVD를 제어하는 것을 허용한다.
각각의 HDMI 디바이스(120)는 어드레스 보고 메커니즘을 통해 다른 디바이스들에 배정된 CEC 로지컬 어드레스들을 인지하게 된다. 다시 말해서, HDMI 디바이스들(120)은 CEC 로지컬 어드레스 공간 내에서 서로를 인식할(visible) 수 있게 된다. CEC 프로토콜 그 자체가, 데이지-체인방식으로 연결된(daisy-chained) HDMI 링크들(130)을 통해 상호 연결된 결과로서, 동일한 HDMI 클러스터(110) 내의 디바이스들이 자연적으로 서로에게 인식될 수 있다는 것을 보장한다. 예를 들어, HDMI 디바이스(120-SRC-A)와 HDMI 디바이스(120-SRC-B)는 자연스럽게 서로에게 인식될 수 있다. 그러나, CEC 프로토콜은 HDMI 링크(130)를 통해 연결되지 않은 디바이스들로 확장되지 않는다. 이러한 결점을 다루기 위하여, 이러한 디바이스들 사이의 HDMI 링크(130)의 결여에 불구하고, CEC 브리지(140)는 HDMI 클러스터(110-SRC) 내의 디바이스들이 HDMI 클러스터(110-SNK) 내의 디바이스들에 인식될 수 있게 하며, 반대의 경우도 마찬가지이다. 즉, CEC 브리지(140)는 적어도 CEC 명령들에 관하여, HDMI 네트워크들을 브리지하기 위하여 비-HDMI 네트워크 링크(150)를 이용한다. CEC 브리지(140)는 또한 HDMI 네트워크들 사이에서 디지털 미디어 트래픽을 전달한다. 그러나, 디지털 미디어 트래픽의 브리징 기능이 미디어 브리지에 의해 대신 수행될 수 있으므로, 이러한 것이 필요조건은 아니다. 존재하는 경우, 디지털 미디어 브리지는 CEC 브리지(140)와 통합될 수도 있으며, 또는 독립한 디바이스일 수 있다. 본 명세서 내에서 CEC 브리지(140)의 동작이 싱크 브리지(140-SNK)와 소스 브리지(140-SRC) 간의 협업과 관련되어 논의되지만, 특정 디바이스가 두 가지 기능 모두의 세트들을 포함할 수 있다는 것이 이해되어야 할 것이다. 즉, 디바이스는 싱크 브리지(140-SNK)를 구현하기 위한 로직 및 소스 브리지(140-SRC)를 구현하기 위한 로직을 포함할 수 있으며, 임의의 시점에서 특정 디바이스는 싱크 브리지로서 또는 소스 브리지로서 동작한다. 일부 실시예들에 있어, 디바이스는, 예를 들어, HDMI 싱크 디바이스가 HDMI 링크(130)를 통해 디바이스에 연결되어 있는지 여부에 기초하여, 소스 브리지(140-SRC)와 싱크 브리지(140-SNK) 사이에서 자동으로 그 동작 모드를 스위치한다. 또한, 일부 실시예들은 소스 또는 싱크 역할을 수행하는 하나 이상의 CEC 브리지(140)를 포함할 수 있다. 즉, 브리지(140-SNK)의 싱크측이 다른 브리지(140-SRC)의 소스측에 직렬로 연결될 수 있는 등이다.
도 2는 에뮬레이트된 HDMI 환경(200)의 블록도이다. 상이한 클러스터들에 걸친 CEC 어드레스 공간 내에서 HDMI 디바이스들(120)이 인식될 수 있도록 하기 위하여, CEC 브리지(140)는 CEC 명령 전달(forwarding) 및 CEC 명령 에뮬레이션을 수행한다. CEC 브리지(140)는 비-HDMI 네트워크를 이용하여 2개의 HDMI 네트워크들 사이에서 CEC 패킷들을 전달한다. 또한, CEC 브리지(140)의 각각의 절반은 다른 HDMI 클러스터(110) 내의 HDMI 디바이스들(120)의 CEC 동작을 에뮬레이트한다: HDMI 싱크측에 위치된 싱크 브리지(140-SNK)는 소스 클러스터(110-SRC) 내의 디바이스들의 CEC 동작을 에뮬레이트하며, HDMI 싱크의 반대측 상에 위치된 소스 브리지(140-SRC)는 HDMI 클러스터(110-SNK) 내의 디바이스들의 CEC 동작을 에뮬레이트한다.
이러한 CEC 명령 에뮬레이션 거동(behavior)은 도 2의 도해 내에서 확인될 수 있다. 소스 브리지(140-SRC)는 싱크 클러스터(110-SNK) 내의 HDMI 디바이스(120-SW) 및 HDMI 디바이스(120-SNK)를 에뮬레이트하며, 따라서 HDMI 디바이스들(120-SW 및 120-SNK)이 HDMI 디바이스들(120-SRC-A 및 120-SRC-B)에 인식될 수 있도록 한다. 유사하게, 싱크 브리지(140-SNK)는 소스 클러스터(110-SRC) 내의 HDMI 디바이스(120-SRC-A) 및 HDMI 디바이스(120-SRC-B)를 에뮬레이트하며, 따라서, HDMI 디바이스들(120-SRC-A 및 120-SRC-B)이 HDMI 디바이스들(120-SW 및 120-SNK)에 인식될 수 있도록 한다.
이해될 수 있는 바와 같이, CEC 프로토콜은, 폴링(polling) 명령을 통해 하나의 디바이스(120)가 특정 CEC 로지컬 어드레스가 다른 HDMI 디바이스(120)에 의해 이용되고 있는지 여부를 판단하는, 폴링 명령을 포함한다. 이미 로지컬 어드레스를 이용하고 있는 HDMI 디바이스(120)는 폴링 명령에 인정(acknowledgment)으로 응답한다. 인정하는 다른 HDMI 디바이스(120)가 존재하지 않는 경우, 폴링 HDMI 디바이스(120)는 그 로지컬 어드레스가 그 자체적으로 이용할 수 있음을 인지한다. CEC 명령 에뮬레이션의 부분으로서, CEC 브리지(140)의 각 측(side)은 그것이 에뮬레이팅하는 HDMI 디바이스들(120)에 대하여 어드레스된 폴(poll)들에 응답한다. 도 1의 구성에 있어서, 소스 브리지(140-SRC)는 HDMI 디바이스(120-SW) 및 HDMI 디바이스(120-SNK)로 향해진(directed) 폴들에 응답하고, 반면, 싱크 브리지(140-SNK)는 HDMI 디바이스(120-SRC-A) 및 HDMI 디바이스(120-SRC-B)로 향해진 폴들에 응답한다.
CEC 동작을 에뮬레이트하기 위하여, 브리지들(140)의 쌍은 그들의 개별적인 HDMI 디바이스들(120)의 CEC 로지컬 어드레스들을 교환하기 위하여 협력한다. 특히, 둘 사이의 어드레스 정보의 교환은 비대칭적이다. 싱크 브리지(140-SNK)는 싱크측 상에서 HDMI 디바이스들(120)에 의해 이용되는 로지컬 어드레스들을 소스 브리지(140-SRC)로 통지한다. 그러나, 소스 브리지(140-SRC)는 소스 브리지측 상의 HDMI 디바이스들(120)에 대한 로지컬 어드레스들의 용례(usage)를 요청한다. 따라서, 싱크 브리지(140-SNK)는 마스터(master)로서 보여질 수 있으며, 소스 브리지(140-SRC)는 슬레이브(slave)로서 보여질 수 있다. 싱크 브리지(140-SNK)가 클러스터들에 걸친 로지컬 어드레스들의 배정을 총괄(direct)하게 하는 것은 클러스터 내의 로지컬 어드레스들의 재할당을 위한 현존하는 HDMI 메커니즘이 레버리지(leverage)될 수 있도록 한다. 리어서션(reassertion)이 후속되는 HDMI 핫 플러그 신호의 디어서션(deassertion)(이하에서 펄싱(pulsing)으로 지칭됨)은 클러스터 내의 모든 HDMI 디바이스들(120)이 CEC 로지컬 어드레스 배정 절차를 받도록 하지만, 오직 HDMI 싱크 디바이스만이 핫 플러그를 펄스(pulse)할 수 있다. 따라서, 본 명세서 내에 개시된 실시예들에 있어, 싱크 브리지(140-SNK)는 파워-업시 및 핫플러그 어서션(assertion)시 로지컬 어드레스 배정을 시작한다. 이는 결과적으로 소스 클러스터가 로지컬 어드레스 배정을 시작하도록 트리거한다.
일단 CEC 브리지(140)의 일측 상에서 모든 HDMI 디바이스들(120)의 로지컬 어드레스들이 에뮬레이트되면, CEC 브리지(140)는 2개의 HDMI 클러스터들(110) 사이에서 CEC 패킷들을 전달한다. 예를 들어, 도 1의 구성에 있어, CEC 브리지(140)는 HDMI 디바이스(120-SRC-A)로부터 전달된 CEC 명령을 HDMI 디바이스(120-SNK)로 전달한다. 전달은 다음과 같이 동작한다. HDIM 클러스터들(110) 중 하나에 소속된(attached) CEC 브리지(140)가 네트워크 링크(150)를 통해 다른 HDMI 클러스터(110) 상에 위치된 CEC-에뮬레이트된 HDMI 디바이스(120)로부터 발원하는 CEC 패킷을 수신하는 경우, 수신된 CEC 패킷은 HDMI 링크(130) 상에서 전송된다. 유사하게, CEC 브리지(140)가 다른 HDMI 클러스터(110) 상에 위치된 CEC-에뮬레이트된 HDMI 디바이스(120)로 향하는 CEC 패킷을 HDMI 링크(130) 상에서 수신하는 경우, 수신된 CEC 패킷은 네트워크 링크(150) 상에서 전송된다.
CEC 명령 전달을 수행하기 위하여, 각각의 CEC 브리지(140)는 어떤 CEC 어드레스들이 로컬 디바이스들에 배정되는지, 어떤 CEC 어드레스들이 원격 디바이스들의 자기편(behalf) 상에서 에뮬레이트되는지, 어떤 CEC 어드레스들이 배정되지 않는지를 추적한다. 이러한 추적을 위한 메커니즘의 일례가 도 3과 관련되어 이하에서 설명될 것이다.
도 3은 본 명에서 내에 개시된 일부 실시예들에 따른, CEC 브리지(140)에 대한 내부의 선택된 컴포넌트들을 나타내는 블록도이다. CEC 브리지(140)는 CEC 에뮬레이션 모듈(310), CEC 전달 모듈(320) 및 선택적인 CEC 명령 번역 모듈(315)을 포함한다. 번역 모듈(315)은, 소스 클러스터(110-SRC)와 싱크 클러스터(110-SMK)가 CEC 명령들의 상이한 세트들을 이용하는 경우, 이용될 수 있다. 이러한 시나리오에 있어, CEC 브리지(140)는 디바이스의 제조사를 탐색하고, 그럼으로써 특정 제조사에 의해 구현된 디바이스들로부터 전송된 CEC 명령을 다른 제조사에 의해 구현된 디바이스들에 의해 이해될수 있는 다른 명령으로 (적절하게) 번역할 수 있다. 이러한 기능은 본 명세서 내에서 지능형 에뮬레이션(intelligent emulation)으로서 지칭된다. 상이한 제조사들로부터의 HDMI 디바이스들(120)이 HDMI 링크(130)를 통해 직접 연결된 경우, 번역이 가능하지 않다는 것이 주목되어야 할 것이다.
CEC 브리지(140)는 또한 HDMI 링크(130)에 연결된 HDMI 인터페이스(330) 및 네트워크 링크(150)에 연결된 비-HDMI 인터페이스(340)를 포함한다. CEC 전달 모듈(320)은 전술한 바와 같은 CEC 패킷들을 전달 테이블(forwarding table)(350)을 이용하여 수신하고, 처리하며, 전달한다. 전달 테이블(350)은 특정 CEC 어드레스에 대하여 HDMI 링크 상에서 수신된 패킷들이 네트워크 링크(150) 상에서 전달되어야 할지 여부를 지시하는 엔트리(entry)들을 포함한다. 일부 실시예들에 있어, 전달 테이블 엔트리는 불 값(Boolean value)이며, 여기서 참(Ture) 값은 전달이 발생할 것을 지시한다. 다른 실시예들에 있어, 전달 테이블 엔트리는 수신된 패킷이 전달될 디바이스 상의 포트를 지시하는 포트 인덱스이다. CEC 패킷들이 전달될 것인 경우, 번역 모듈(315)은 번역이 필요한지 여부를 판단한다. 특정 실시예에 있어 번역 모듈(315)이 존재하지 않는 경우, CEC 패킷들은 있는 그대로 전달될 것이다.
CEC 에뮬레이션 모듈(310)은 각각의 가능한 CEC 어드레스 값의 상태를 지시하는 CEC 어드레스 리스트(370)를 유지한다. 일 실시예에 있어, 상태들은 다음을 포함한다 : 지역적으로(locally) 소속된 HDMI 링크(130) 상의 HDMI 디바이스(120)에 배정된 어드레스를 지시하는 인유즈로컬(InUseLocal); 어드레스가 지역적으로 소속된 HDMI 링크(130) 상에 있지 않은 HDMI 디바이스(120)의 자기편 상에서 에뮬레이트되고, 그 결과 이러한 목적지 어드레스를 갖는 패킷들이 네트워크 링크(150)를 통해 전달될 것임을 지시하는 브리지드(Bridged); 어드레스가 지역적으로 또는 원격적으로 이용되지 않음을 지시하는 프리(Free).
CEC 전달 모듈(320)은 CEC 에뮬레이션 모듈(310)과 협력하여 전달 테이블(350)을 유지한다. 보다 구체적으로, CEC 어드레스 리스트(370) 내의 어드레스 엔트리가 브리지드 상태로 설정되어 있는 경우, 전달 테이블(350) 내의 대응하는 엔트리는 전달이 발생할 수 있도록(예를 들어, b전달(bForward) = 참(True)) 설정된다. CEC 어드레스 리스트(370) 내의 어드레스 엔트리가 브리지드 상태 이외의 상태로 설정된 경우, 전달 테이블(350) 내의 대응하는 엔트리는 전달이 발생하지 않도록(예를 들어, b전달(bForward) = 거짓(False)) 설정된다.
CEC 에뮬레이션 모듈(310)은 네트워크 링크(150)의 다른 측 상의 피어(peer)와 정보를 교환함으로써 어드레스 상태 정보를 유지한다. 보다 구체적으로, 소스 브리지(140-SRC)와 싱크 브리지(140-SNK)는 HDMI 디바이스들(120)의 에뮬레이션을 제공하기 위하여 CEC 어드레스 배정들에 대한 정보를 협업적인 방식으로 교환한다. 도 4는, 본 명세서 내에 개시된 일부 실시예들에 따른, 소스 브리지(140-SRC)와 싱크 브리지(140-SNK) 간의 상호작용들을 나타내는 도면이다. 소스 브리지(140-SRC)에 수행되는 동작들은 도면의 좌측 상에 상자들로서 도시되며, 반면 싱크 브리지(140-SNK)에 수행되는 동작들은 도면의 우측 상에 상자들로서 도시된다. CEC 브리지(140)의 2개의 측면들 사이의 상호작용은 2개의 측면들 사이에 화살표들로서 도시될 것이다.
상자(410)에서 싱크 브리지(140-SNK)가 네트워크 링크(150)를 통해 어드레스 통지를 소스 브리지(140-SRC)로 전송함으로써 절차를 개시한다. 이러한 예시적인 실시예에 있어, 통지는 어드레스 배정 통지 메시지(Notify Address Assignments message) 형식을 취한다. 어드레스 배정 통지 메시지는 싱크 브리지의 HDMI 링크(130)를 통해 싱크 브리지(140-SNK)에 소속되는 각각의 HDMI 디바이스(120)의 리스트, 즉, HDMI 싱크 클러스터(110-SNK) 내의 디바이스들의 리스트를 포함한다. 각각의 리스트 엔트리는 CEC 로지컬 어드레스, 디바이스 유형, 및 HDMI 피지컬 어드레스를 포함한다. HDMI 싱크 클러스터(110-SNK) 내에서 이용되는 어드레스들이 소스 브리지(140-SRC)로 통지되면, 그 후 싱크 브리지(140-SNK)는 상자(415)에서 소스 브리지(140-SRC)로부터의 어드레스 배정 요청을 기다린다.
싱크 브리지(140-SNK)는 싱크 브리지(140-SNK)의 HDMI 링크(130) 상에서 수신된 어드레스 리포트들로부터 리스트를 생성한다. 이해될 수 있는 바와 같이, 초기화 동안 각각의 HDMI 디바이스(120)는 HDMI 디바이스 자체의 CEC 로지컬 어드레스, CEC 피지컬 어드레스, 및 디바이스 유형을 판단한다. 보다 구체적으로, 각각의 HDMI 디바이스(120)는 자체적으로 CEC 로지컬 어드레스를 배정하고, HDMI 디바이스의 직접적으로-연결된 HDMI 싱크 디바이스(120-SNK)로부터 HDMI 디바이스의 CEC 피지컬 어드레스 및 디바이스 유형을 학습한다. 이러한 직접적으로-연결된 디바이스는 부모(parent)로서 보여질 수 있으며, 그럼으로써 HDMI 싱크 디바이스(120-SNK)는 하나 이상의 자식(child)을 가질 수 있지만, 각각의 자식은 단지 하나의 부모만을 가진다. 각각의 HDMI 디바이스(120)는 그 후 모든 HDMI 디바이스들(120)로 피지컬 어드레스 보고(ReportPhysicalAddress)를 브로드캐스팅함으로써 이러한 정보를 보고한다. HDMI 디바이스들(120)은 동일한 CEC 버스 상의 다른 디바이스들을 학습하기 위하여, 이러한 탐색 메커니즘을 이용한다. 싱크 브리지(140-SNK)는 지역적으로 소속된 HDMI 디바이스들(120)을 학습하기 위하여 이러한 메커니즘을 레버리지(leverage)하고, 이러한 정보를 로컬 CEC 어드레스 리스트에 저장한다. 이러한 리스트는 상자(410)에서 소스 브리지(140-SRC)로 전송된 리스트를 구성하기 위하여 이용된다. 일부 실시예들에 있어, 싱크 브리지(140-SNK)는 소스 브리지(140-SRC)로의 전송 전에 리스트 내의 엔트리들의 순서를 재배열한다.
로컬 리스트는 또한 싱크 브리지(140-SNK)가 자체적인 사용을 위하여 할당한 임시 CEC 로지컬 어드레스를 포함한다. 일부 실시예들에 있어, 싱크 브리지(140-SNK)는 싱크 브리지의 임시 CEC 로지컬 어드레스에 대하여 유형 플레이어(Player) 또는 리코더(Recorder)를 갖는 로지컬 어드레스를 이용한다. 싱크 브리지(140-SNK) 및 소스 브리지(140-SRC)가 통신을 개시하는 경우, 싱크 브리지(140-SNK)는, 임시 어드레스가 소스 클러스터 상의 HDMI 디바이스(120)에 의해 이용되고 있는 경우, 다른 로지컬 어드레스를 이용할 수 있다. 로컬 CEC 어드레스 리스트는 CEC 전달 모듈(32)로 정보를 제공하는 CEC 어드레스 리스트(370)의 일부로서 저장될 수 있으며, 또는, 로컬 CEC 어드레스 리스트는 CEC 어드레스 리스트(370)로부터 분리되어 유지될 수도 있다.
소스 브리지(140-SRC)는 상자(420)에서 싱크 브리지(140-SNK)로부터의 어드레스 통지를 기다림으로써 시작한다. 어드레스 배정 통지 메시지를 수신하면, 상자(425)에서 소스 브리지(140-SRC)는 싱크 클러스터(110-SNK) 내의 디바이스들에 배정된 어드레스들의 수신된 리스트를 조사한다. 소스 브리지(140-SRC)는 리스트된 어드레스들로의 메시지들이 싱크 브리지(140-SNK)로 전달되도록 하기 위하여, 로컬 전달 테이블(350)을 갱신한다. 다음으로, 상자(430)에서 소스 브리지(140-SRC)는 싱크 클러스터(110-SNK) 내의 디바이스들에 배정된 어드레스들의 수신된 리스트와 (로컬) 소스 클러스터(110-SRC) 내의 디바이스들에 이미 할당된 어드레스들의 충돌들을 체크한다. 충돌이 검출되는 경우, 소스 브리지(140-SRC)는, 소스 클러스터(110-SRC) 내의 모든 HDMI 디바이스들(120)이 CEC 어드레스 배정 프로세스를 받도록 명령함으로써, 충돌을 처리한다. 일부 실시예들에 있어, 이러한 명령은 HDMI 표준에 명세된 바와 같은 최소 펄스 지속기간(minimum pulse duration)을 갖는 HDMI 핫플러그 신호를 디어서트하고 그 후 리어서트함으로써 수행된다.
다음으로, 상자(432)에서 소스 브리지(140-SRC)는 HDMI 자식 디바이스로부터의 어드레스 보고가 상자(420) 이전에 수신되었는지를 판단한다. 자식 디바이스는 로컬 HDMI 링크(130)에 직접적으로 연결된 HDMI 디바이스(120)이다. 이러한 보고들은 싱크 브리지(140-SNK)에 대한 로컬 어드레스 리스트 생성과 관련되어 전술되었다. 자식 디바이스로부터의 어드레스 보고가 이미 수신된 경우, 소스 브리지(140-SRC)는 바로 상자(435)로 진행한다. 그렇지 않다면, 소스 브리지(140-SRC)는 상자(432)에서 이러한 이벤트를 기다린다.
상자(435)에서, 소스 브리지(140-SRC)는 네트워크 링크(150)를 통해 어드레스 배정 요청 메시지(Request Address Assignments message)를 싱크 브리지(140-SNK)로 전송한다. 어드레스 배정 요청 메시지는 그것의 로컬 HDMI 링크(130)를 통해 소스 브리지(140-SRC)에 소속된 각각의 HDMI 디바이스(120)의 리스트, 즉, HDMI 소스 클러스터(110-SRC) 내의 디바이스들의 리스트를 포함한다. 각각의 리스트 엔트리는 CEC 로지컬 어드레스, 디바이스 유형, 및 HDMI 피지컬 어드레스를 포함한다. 소스 브리지(140-SRC)는 그 후 상자(440)에서 어드레스 배정 요청에 대한 답신을 기다린다.
소스 브리지(140-SRC)는 소스 브리지(140-SRC)의 HDMI 링크(130) 상에서 수신된 그리고 상자(410)에서 소스 브리지(140-SRC)로 전송된 어드레스 보고들로부터 리스트를 생성한다. 리스트의 컨텐츠들은 다양한 HDMI 디바이스들(120)에 의해 전송된 어드레스 보고들의 타이밍에 기초하여 변화할 수 있다. 그러나, 전술한 바와 같이, 이러한 리스트는 적어도 소스 브리지(140-SRC)의 자식의 CEC 어드레스를 포함한다. 로컬 리스트는 또한 소스 브리지(140-SRC)가 자체적으로 이용하기 위해 할당한 임시 CEC 로지컬 어드레스를 포함한다. 일부 실시예들에 있어, 소스 브리지(140-SRC)는 소스 브리지의 임시 CEC 로지컬 어드레스를 위하여 CEC 로지컬 어드레스 제로(zero)를 이용한다.
전술한 바와 같이, 싱크 브리지(140-SNK)는 상자(415)에서 소스 브리지(140-SRC)로부터의 어드레스 배정 요청을 기다린다. 상자(445)에서 싱크 브리지(140-SNK)는 요청된 어드레스들 각각을 할당함으로써 요청에 대한 프로세싱을 개시한다. 다음으로, 상자(450)에서, 싱크 브리지(140-SNK)는 어드레스 배정 답신 메시지(ReplyAddressAssignment message)를 네트워크 링크(150)를 통해 소스 브리지(140-SRC)로 전송함으로써 어드레스 배정 요청에 응답한다. 답신 내의 어드레스 리스트는 요청과 동일한 어드레스들을 포함하지만, 순서가 재배열될 수 있다. 답신은 또한 각각의 어드레스가 성공적으로 할당되었는지 또는 어드레스가 HDMI 싱크 클러스터(100-SNK) 내에 위치된 디바이스에 의해 이미 이용되고 있기 때문에 요청된 할당이 실패하였는지 여부를 지시하는 코드를 포함한다. 일부 실시예들에 있어, 실패 코드는 CEC 미등록 어드레스(UnregisteredAddress) 값(0x0F)과 동일한 값이다.
답신을 전송한 후, 싱크 브리지(140-SNK)는 상자(455)에서 프로세싱을 계속하며, 여기서 싱크 브리지(140-SNK)는 로컬 전달 테이블(350)을 성공적으로 할당된 어드레스들을 이용하여 갱신한다. 이러한 어드레스들을 테이블(350)에 부가함으로써, 싱크 브리지(140-SNK)가 도 4의 프로세스를 종료할 때 이러한 어드레스들로의 CEC 메시지들이 소스 브리지(140-SRC)로 전달될 것이다. 다음으로, 상자(460)에서, 싱크 브리지(140-SNK)는 이전의 상자(445)에서 요청된 어드레스들 중 어떤 어드레스의 할당이 실패하였는지 여부를 판단한다. 요청된 모든 어드레스들이 성공적으로 할당된 경우, 싱크 브리지(140-SNK)는 상자(470)에서 소스 브리지(140-SRC)로부터의 브리지가 구축되었다는 통지를 기다린다.
그러나, 만일 상자(460)에서, 상자(445)에서 적어도 하나의 요청된 어드레스의 할당이 실패한 것으로 판단되는 경우, 싱크 브리지(140-SNK)는 상자(415)에서 계속하며, 여기서 싱크 브리지(140-SNK)는 다른 어드레스 배정 요청 메시지를 기다린다. 이러한 메시지의 수령은 소스 측에서의 핫플러그 신호의 펄싱(pulsing)에 기인하여 결국 발생할 것으로 예상된다.
상자(475)에서, 어드레스 배정 답신 메시지를 수신하기 위한 상자(440)에서의 기다림이 종료되고, 소스 브리지(140-SRC)가 수신된 어드레스 배정 답신 메시지에 대한 프로세싱을 개시한다. 메시지는 각각의 어드레스가 다른 측에 의해 성공적으로 할당되었는지, 즉, 소스 클러스터(110-SRC) 내의 디바이스에 의해 이용될 수 있는지에 대한 지시와 함께 소스 브리지(140-SRC)에 의해 요청된 로지컬 어드레스들의 리스트를 포함한다. 소스 브리지(140-SRC)는 실패된 할당들이 있는지 리스트를 체크하고, 할당이 실패된 어드레스가 있는 경우, 소스 브리지(140-SRC)는 상자(478)에서 계속하고, 소스 클러스터(110-SRC) 내의 모든 HDMI 디바이스들(120)이 CEC 어드레스 재배정 프로세스를 받도록 명령한다. 일부 실시예들에 있어, 이러한 명령은 HDMI 핫플러그 신호를 디어서팅하고 그후 리어서팅함으로써 수행된다. 소스 브리지(140-SRC)는 그 후 상자(432)에서 프로세싱을 계속한다. 전술한 바와 같이, 상자(432)에서 소스 브리지(140-SRC)는 소스 브리지의 HDMI 자식 디바이스로부터의 CEC 어드레스 보고를 기다린다. 상자(432) 이후의 흐름은 이상에서 설명되었다.
일단 소스 브리지(140-SRC)가 HDMI 소스 클러스터(110-SRC) 내의 모든 디바이스들이 HDMI 싱크 클러스터(110-SNK) 내의 디바이스들과 충돌하지 않는 CEC 어드레스들을 가지는 것으로 보장하면, 소스 브리지(140-SRC)는 HDMI 싱크 클러스터(110-SNK) 내의 디바이스들로 어드레스된 CEC 메시지들이 싱크 브리지(140-SNK)로 전달될 수 있도록, 로컬 전달 테이블(350)을 설정한다. 따라서, 소스 브리지(140-SRC)는 에뮬레이션 및 전달을 시작할 준비가 되며, 따라서 상자(480)에서 소스 브리지(140-SRC)는 브리지가 구축되었음을 싱크 브리지(140-SNK)로 통지한다. 마지막으로, 상자(485)에서 소스 브리지(140-SRC)는 본 명세서 내에서 설명된 CEC 전달 및 CEC 에뮬레이션 동작들을 시작한다. 소스 브리지(140-SRC)가 상자(485)에 도달할 때까지, 에뮬레이션은 일어나지 않으며, 대신 소스 브리지(140-SRC)는 그것의 자체적인 임시 로지컬 어드레스(예를 들어, TV)에 응답한다는 것이 주목되어야 한다.
전술한 바와 같이, 싱크 브리지(140-SNK)는 상자(470)에서 브리지가 구축되었다는 소스 브리지(140-SRC)로부터의 통지를 기다린다. 이 지점에서, 싱크 브리지(140-SNK)는 HDMI 싱크 클러스터(110-SNK) 내의 모든 디바이스들이 HDMI 소스 클러스터(110-SRC) 내의 디바이스들과 충돌하지 않는 CEC 어드레스들을 가지고 있다는 것을 보장한다. 또한 싱크 브리지(140-SNK)는 HDMI 소스 클러스터(110-SRC) 내의 디바이스들로 어드레스된 CEC 메시지들이 소스 브리지(140-SRC)로 전달될 수 있도록, 로컬 전달 테이블(350)을 설정한다. 그러나, 싱크 브리지(140-SNK)는 소스 브리지(140-SRC)가 준비될 때까지, CEC 전달 및 CEC 에뮬레이션을 시작하지 않는다. 소스 브리지(140-SRC)로부터의 이러한 통지를 수신함에 따라, 상자(490)에서 싱크 브리지(140-SNK)는 본 명세서 내에서 설명된 CEC 전달 및 CEC 에뮬레이션 동작들을 시작한다. 각각의 CEC 브리지(140)는 비동기적(asynchronous) 이벤트가 수신될 때까지 전달 및 에뮬레이션을 계속한다. 싱크 브리지(140-SNK)가 상자(490)에 도달할 때까지, 에뮬레이션은 일어나지 않으며, 대신 싱크 브리지(140-SNK)는 그것의 자체적인 임시 로지컬 어드레스(예를 들어, 플레이어 디바이스)에 응답한다는 것이 주목되어야 한다.
다양한 비동기적 이벤트들의 처리가 도 5 및 도 6과 함께 이하에서 설명된다. 도 5는, 본 명세서에 개시된 일부 실시예들에 따른, 싱크 브리지(140-SNK)에 대한 비동기적 이벤트 처리를 도시하는 도면이다. 이벤트 처리의 일부가 도 4와 함께 이미 설명된 액션들을 포함하기 때문에, 도 4의 싱크 부분(우측)이 도 5에 함께 도시된다. HDMI 핫 플러그 어서션 이벤트(510)는 CEC 어드레스들이 로컬 HDMI 클러스터(110) 내에서 재배정되었음을 지시한다. 핫 플러그 어서션 이벤트(510)에 응답하여, 싱크 브리지(140-SNK)는 상자(410)에서 프로세싱을 시작하며, 여기서 싱크 브리지(140-SNK)는 싱크 클러스터(110-SNK) 내의 모든 디바이스들을 탐색하고, 그 후 소스 브리지(140-SRC)로 통지한다. 그 후 싱크 브리지(140-SNK)는 도 4와 함께 이상에서 설명된 바와 같이 상자(410)로부터 프로세싱을 계속한다.
어드레스요청 이벤트(AddressRequest event)(520)는 싱크 브리지(140-SNK)가 소스 브리지(140-SRC)로부터의 어드레스 배정 요청 메시지를 수신하였음을 지시한다. 전술한 바와 같이, 이러한 메시지는 HDMI 소스 클러스터(110-SRC) 내의 모든 디바이스들의 리스트를 포함한다. 어드레스요청 이벤트(520)에 응답하여, 싱크 브리지(140-SNK)는 상자(445)에서 프로세싱을 시작하며, 여기서 싱크 브리지(140-SNK)는 HDMI 소스 클러스터(110-SRC) 내의 디바이스들에 대하여 요청된 어드레스들의 리스트를 처리한다. 그 후 싱크 브리지(140-SNK)는 도 4와 함께 전술된 바와 같이 상자(445)로부터 프로세싱을 계속한다.
신규싱크디바이스 이벤트(NewSinkDevice event)(530)는 CEC 로지컬 어드레스를 사용하는 싱크 클러스터(110-SNK) 내의 신규 HDMI 디바이스가 보고된 것을 지시한다. 신규싱크디바이스 이벤트(530)에 응답하여, 상자(540)에서 싱크 브리지(140-SNK)는 HDMI 싱크 클러스터(110-SNK) 내의 모든 디바이스들을 소스 브리지(140-SRC)로 통지한다. 이러한 통지는 새롭게 보고하는 HDMI 디바이스를 포함한다. 그 후 싱크 브리지(140-SNK)는 상자(490)에서 CEC 전달 및 CEC 에뮬레이션 동작들을 계속한다.
수신어드레스제거 이벤트(RxAddressRemoval event)(550)는 싱크 브리지(140-SNK)가 소스 클러스터(110-SRC) 내의 HDMI 디바이스가 제거되었고 더 이상 특정 CEC 어드레스가 사용되지 않음을 지시하는 메시지를 수신했다는 것을 지시한다. 수신어드레스제거 이벤트(550)에 응답하여, 상자(560)에서 싱크 브리지(140-SNK)는 이러한 어드레스에 대한 CEC 메시지들이 더 이상 소스 브리지(140-SRC)로 전달되지 않도록, 로컬 전달 테이블(350)을 갱신한다. 그 후 싱크 브리지(140-SNK)는 상자(490)에서 CEC 전달 및 CEC 에뮬레이션 동작들을 계속한다.
체크리무벌 이벤트(CheckRemoval event)(570)는 타이머에 의해 주기적으로 생성된다. 이에 응답하여, 상자(580)에서 싱크 브리지(140-SNK)는 CEC 폴링(polling) 명령을 소스 클러스터(110-SRC) 내의 모든 알려진 로컬 CEC 로지컬 어드레스들로 전송한다. 상자(590)에서, 미리설정된 시간 기간 내에 어떤 디바이스들이 폴의 응답에 실패하는 경우, 싱크 브리지(140-SNK)는 비-응답(non-responding) 디바이스들을 로컬 HDMI 버스로부터 제거된 것으로 취급한다. 그러므로 싱크 브리지(140-SNK)는 비-HDMI 인터페이스(340)를 통해 어드레스제거 메시지지(AddressRemoval message)를 소스 브리지(140-SRC)로 전송함으로써 디바이스 제거를 소스 브리지(140-SRC)에 통지한다. 싱크 브리지(140-SNK)는 또한 제거된 디바이스의 어드레스를 로컬 전달 테이블(370)로부터 삭제한다. 싱크 브리지(140-SNK)는 그 후 상자(490)에서 CEC 전달 및 CEC 에뮬레이션 동작들을 계속한다.
도 6은, 본 명세서에 개시된 일부 실시예들에 따른, 소스 브리지(140-SRC)에 대한 비동기적 이벤트 처리를 도시하는 도면이다. 이벤트 처리의 일부가 도 4와 함께 이미 설명된 액션들을 포함하기 때문에, 도 4의 소스 부분(좌측)이 도 6에 함께 도시된다.
어드레스통지 이벤트(AddressNotify envent)(610)는 소스 브리지(140-SRC)가 싱크 브리지(140-SNK)로부터 어드레스 배정 통지 메시지(Notify Address Assignments message)를 수신하였음을 지시한다. 전술한 바와 같이, 이러한 메시지는 HDMI 싱크 클러스터(110-SNK) 내의 모든 디바이스들의 리스트를 포함한다. 어드레스통지 이벤트(610)에 응답하여, 소스 브리지(140-SRC)는 상자(475)에서 프로세싱을 시작하며, 여기서 소스 브리지(140-SRC)는 전술된 바와 같이 HDMI 싱크 클러스터(110-SNK) 내의 디바이스들에 대한 어드레스들의 리스트를 처리하고, 충돌들을 처리한다. 충돌이 존재하는 경우, 소스 브리지(140-SRC)는 도 4에서 설명된 바와 같이 상자(478)에서 계속하며, 그렇지 않은 경우 소스 브리지는 도 4의 상자(475)로부터 프로세싱을 계속한다. 몇몇 시나리오들에 있어, 충돌들의 처리는, 본 명세서에 설명된 바와 같이, 싱크 브리지(140-SNK)로의 어드레스배정요청 메시지(RequestAddressAssignments message)의 전송을 초래할 수 있다.
신규소스디바이스 이벤트(NewSourceDevice event)(620)는 CEC 로지컬 어드레스를 사용하는 소스 클러스터(110-SRC) 내의 신규 HDMI 디바이스가 보고된 것을 지시한다. 신규소스디바이스 이벤트(620)에 응답하여, 상자(435)에서 소스 브리지(140-SRC)는 프로세싱을 시작하며, 여기서 소스 브리지(140-SRC)는 새로운 어드레스를 배정해 줄 것을 싱크 브리지(140-SNK)로 문의한다. 그 후 소스 브리지(140-SRC)는 도 4와 함께 전술된 바와 같이, 상자(435)로부터 프로세싱을 계속한다.
수신어드레스제거 이벤트(RxAddressRemoval event)(630)는 소스 브리지(140-SRC)가 싱크 클러스터(110-SNK) 내의 HDMI 디바이스가 제거되었고 더 이상 특정 CEC 어드레스가 사용되지 않음을 지시하는 메시지를 수신했다는 것을 지시한다. 수신어드레스제거 이벤트(630)에 응답하여, 상자(640)에서 소스 브리지(140-SRC)는 이러한 어드레스에 대한 CEC 메시지들이 더 이상 싱크 브리지(140-SNK)로 전달되지 않도록, 로컬 전달 테이블(350)을 갱신한다. 그 후 소스 브리지(140-SRC)는 상자(485)에서 CEC 전달 및 CEC 에뮬레이션 동작들을 계속한다.
체크리무벌 이벤트(CheckRemoval event)(650)는 타이머에 의해 주기적으로 생성된다. 이에 응답하여, 상자(660)에서 소스 브리지(140-SRC)는 CEC 폴링(polling) 명령을 소스 클러스터(110-SRC) 내의 모든 알려진 로컬 CEC 로지컬 어드레스들로 전송한다. 상자(670)에서, 미리설정된 시간 기간 내에 어떤 디바이스들이 폴의 응답에 실패하는 경우, 소스 브리지(140-SRC)는 비-응답(non-responding) 디바이스들을 로컬 HDMI 버스로부터 제거된 것으로 취급한다. 그러므로 소스 브리지(140-SRC)는 비-HDMI 인터페이스(340)를 통해 어드레스제거 메시지지(AddressRemoval message)를 싱크 브리지(140-SNK)로 전송함으로써 디바이스 제거를 싱크 브리지(140-SNK)에 통지한다. 소스 브리지(140-SRC)는 또한 제거된 디바이스의 어드레스를 로컬 전달 테이블(370)로부터 삭제한다. 소스 브리지(140-SRC)는 그 후 상자(485)에서 CEC 전달 및 CEC 에뮬레이션 동작들을 계속한다.
CEC 로지컬 어드레스들의 배정이 이상에서 어느 정도 자세히 논의되었다. 전술한 바와 같이, 로지컬 어드레스들의 배정은 CEC 에뮬레이션의 일부이다. 배정되지 않은 어드레스들은 따라서 에뮬레이트되지 않는다. 다른 방향에서 보면, 에뮬레이트되지 않는 로지컬 어드레스들은, 하나의 CEC 브리지(140) 상에 존재하지만 CEC 브리지(140)의 전달 테이블(350) 내에 설정될 수 없는, 이러한 CEC 로지컬 어드레스들이다. 이는, 예를 들어, 전달 테이블(350) 내의 엔트리들의 한정된 수에 기인할 수 있다. 브리지들(140) 양자에 의한 에뮬레이트되지 않는 어드레스들의 처리가 이하에서 논의될 것이며, 소스 브리지(140-SRC)부터 시작한다.
소스 브리지(140-SRC) 상에서, 싱크 브리지(140-SNK)가 소스 브리지(140-SRC)가 전달 테이블(350) 내에 가지고 있는 공간(room)보다 많은 로지컬 어드레스들을 갖는 어드레스 배정 통지 메시지를 전송하는 경우, 임의의 배정되지 않는 로지컬 어드레스들은 에뮬레이트되지 않는 상태(Unemulated state)로 설정된다. 소스 클러스터(110-SRC) 내의 디바이스가 에뮬레이트되지 않는 상태에 있는 로지컬 어드레스를 그 자체에 할당하는 경우, 소스 브리지(140-SRC)는 싱크 브리지(140-SNK)로 전송되는 어드레스 배정 요청 메시지 내에 에뮬레이트되지 않는 어드레스를 포함하지 않는다.
소스 클러스터(110-SRC) 내의 에뮬레이트되지 않는 어드레스를 갖는 HDMI 디바이스(120)에 의해 CEC 메시지가 전송되는 경우, 그러나 이 메시지가 에뮬레이트된 어드레스를 목적으로 하고 있는 경우, 이 메시지는 특정 CEC 메시지 유형에 적절한 방식으로 소스 브리지(140-SRC)에 의해 지역적으로 답신된다. 예를 들어, 소스 브리지(140-SRC)는 소스 브리지(140-SRC)의 제조사 식별자(vendor indentifier)를 공급함으로써 CEC GiveDeviceVendorId 메시지에 답신할 수 있다. 만일 CEC 메시지가 싱크 브리지(140-SNK)에 의해 에뮬레이트되지 않는 어드레스를 갖는 HDMI 디바이스(120)로 전송되는 경우, 그 메세지 또한 소스 브리지(140-SRC)에 의해 지역적으로 답신된다.
전술한 바와 같이, 하나의 브리지는 다른 하나의 브리지로 지시하는 HDMI 클러스터(110) 내의 HDMI 디바이스(120)의 제거를 지시하는 어드레스제거 메시지를 전송할 수 있다. 이러한 어드레스제거 메시지들은 에뮬레이트되지 않는 어드레스들을 포함할 수 있다. 어떤 시나리오에 있어, 소스 브리지(140-SRC)는 에뮬레이트되는 어드레스에 대한 어드레스제거 메시지를 수신한다. 이러한 시나리오에 있어, 소스 브리지(140-SRC)는 어드레스 충돌, 즉, 에뮬레이트되지 않는 어드레스가 에뮬레이트되고 현재 에뮬레이트된 어드레스를 갖는 로컬 디바이스가 존재하는 상황을 체크한다. 발견되는 경우, 소스 브리지(140-SRC)는 HDMI 핫플러그 신호를 펄싱함으로써 CEC 로지컬 어드레스들의 재할당(reallocation)을 시작한다.
싱크 브리지(140-SNK)로부터의 어드레스제거 메시지는 현재 소스 브리지(140-SRC)에 의해 에뮬레이트되지 않는 싱크 클러스터(110-SNK) 내의 HDMI 디바이스(120)를 대신 제거할 수도 있다. 이러한 시나리오에 있어, 소스 클러스터(110-SRC) 내의 HDMI 디바이스(120)가 이미 그 어드레스를 사용하고 있는 경우, 소스 브리지(140-SRC)는, 이러한 에뮬레이트되지 않는 어드레스의 사용을 요청하는, 새로운 어드레스 배정 요청 메시지를 전송한다. 싱크 브리지(140-SNK)가 성공적인 할당으로 답신하는 경우, 전달(forwarding)이 구축된다; 그렇지 않은 경우, 이는 통상적인 어드레스 할당 실패로서 취급된다. 이와 같이, 소스 브리지(140-SRC)는, 싱크 브리지(140-SNK)에서의 모들 디바이스들이 새로운 로지컬 어드레스들을 할당하도록 트리거하기 위하여, HDMI 핫플러그 신호를 펄스한다.
또 다른 시나리오에 있어, 싱크 브리지(140-SNK)로부터의 어드레스제거 메시지는 에뮬레이트된 어드레스 및 에뮬레이트되지 않은 어드레스 둘 다를 제거할 수도 있다. 이러한 시나리오에 있어, 소스 브리지(140-SRC)는 로지컬 어드레스들의 재배정 후에 어드레스 충돌들을 체크한다. 충돌들이 존재하는 경우, 소스 브리지(140-SRC)는 HDMI 핫플러그 신호를 펄스하며; 그렇지 않은 경우, 소스 브리지(140-SRC)는 제거된 에뮬레이트되지 않는 로지컬 어드레스들과 동일한 로지컬 어드레스들을 갖는 임의의 디바이스들에 대한 어드레스 배정 요청 메시지를 전송한다. 어드레스 배정 통지 메시지 또는 어드레스 배정 답신 메시지의 수령은 다음의 시나리오들 중 하나 또는 둘 다에서 발생할 수 있다. 하나, 더 높은 우선권 디바이스의 존재 때문에, 에뮬레이트된 어드레스가 싱크 측 상에서 에뮬레이트되지 않게 된다. 둘, 더 높은 우선권 디바이스의 소멸 때문에, 에뮬레이트되지 않은 어드레스가 싱크 측 상에서 에뮬레이트된다. 소스 브리지(140-SRC)의 일부 실시예들은 이러한 2개의 시나리오들을 구별하지 않지만, 다음과 같이 양자를 처리한다. 어드레스 배정 통지 메시지 또는 어드레스 배정 답신 메시지의 수령시, 소스 브리지(140-SRC)는 로컬 로지컬 어드레스들을 재배정한다. 재배정된(에뮬레이트된) 어드레스들이 이전에 존재했던 것과 상이한 경우, 소스 브리지(140-SRC)는 소스 클러스터(110-SRC) 내의 디바이스들을 리프레시(refresh)하기 위하여 HDMI 핫플러그 신호를 펄스한다. 소스 브리지(140-SRC)가 리프레시의 결과로서 새로운 CEC 어드레스 보고들을 수신하는 경우, 에뮬레이트되지 않는 로지컬 어드레스들 내의 임의의 부가들 또는 소멸들이 마치 어드레스제거 메시지가 수신된 것처럼 처리된다. 이에 더하여, 에뮬레이트되지 않는 어드레스 메시지가 싱크 브리지(140-SNK)로 전송된다. 이러한 방식으로, 에뮬레이트되지 않는 어드레스가 소스 측 상에서 에뮬레이트되는 경우, 소스 브리지(140-SRC)는 또 다른 어드레스 배정 요청 메시지를 전송하고, 도 4와 함께 전술된 바와 같은, 통상적인 방식으로 처리된 답신을 처리한다. 에뮬레이트된 어드레스가 소스 측 상에서 에뮬레이트되지 않게 되면, 그러한 어드레스들로 전송되는 CEC 메시지들은 더 이상 소스 브리지(140-SRC)에 의해 전달되지 않을 것이다. CEC 브리지(140)가 어드레스를 어뮬레이트하지 않는 경우 HDMI 소스 디바이스들(140-SRC)는 어드레스가 점유되었는지 알 수 없으므로, 어드레스 충돌이 에뮬레이트되지 않는 어드레스를 가지고 발생할 수 없다는 것이 주목되어야 한다.
소스 브리지(140-SRC)에 의한 에뮬레이트되지 않는 어드레스들의 처리가 논의되었으며, 이하에서 싱크 브리지(140-SNK)에 의한 처리가 논의될 것이다. 전술한 바와 같이, 싱크 브리지(140-SNK)는 소스 브리지(140-SRC)로부터의 어드레스 배정 요청 메시지를 처리한다. 즉, 소스 브리지(140-SRC)는, 싱크 브리지(140-SNK)가 특정 로지컬 어드레스들을 에뮬레이트 할 수 있는지, 또는 이러한 로지컬 어드레스들이 이미 싱크 클러스터(110-SNK) 내의 디바이스들에 의해 사용되고 있는지를 문의한다. 어드레스 배정 요청 메시지가 싱크 브리지(140-SNK)가 지원할 수 있는 이상의 어드레스들, 예를 들어, 로컬 전달 테이블(350)의 엔트리들의 수 이상의 어드레스들을 포함하는 것도 가능하다. 이러한 경우에 있어, 성공적으로 할당되었지만 에뮬레이트될 수 없는 어떤 어드레스들은 어드레스 배정 답신 메시지 리스트 내에 포함되지 않는다. 싱크 브리지(140-SNK)는 그 후 소스 브리지(140-SRC)에 의해 요청되었으나 싱크 브리지(140-SNK)에 의해 에뮬레이트될 수 없는 어드레스를 포함하는 에뮬레이트되지 않는 어드레스 메시지(UnemulatedAddress message)를 전송한다.
싱크 브리지(140-SNK)는 싱크 클러스터(110-SNK) 내의 신규 HDMI 디바이스를 지시하는 어드레스 보고를 수신할 수 있다. 싱크 브리지(140-SNK)의 일부 실시예들에 있어, 이러한 신규로 탐색된 디바이스가 보고하는 어드레스가 싱크 브리지(140-SNK)에 의해 에뮬레이트되지 않는 경우, 싱크 브리지(140-SNK)는 어드레스 배정 통지 메시지를 통하여 이러한 에뮬레이트되지 않는 어드레스를 소스 브리지(140-SRC)로 통지하지 않는다.
전술한 바와 같이, 어드레스 배정 요청 메시지 또는 어드레스 제거 메시지 중 하나의 수령은 싱크 브리지(140-SNK)가 로지컬 어드레스들을 재배정하도록 할 수 있다. 새롭게 재배정된 어드레스는 어드레스 배정 답신 메시지를 통해 소스 브리지(140-SRC)로 전송되며, 배정되지 않은 어드레스는 에뮬레이트되지 않는 어드레스 메시지를 통해 전송된다. 따라서, 에뮬레이트되지 않는 어드레스 메시지는 대칭적이다: 소스 브리지(140-SRC) 및 싱크 브리지(140-SNK) 모두, 에뮬레이트되지 않는 어드레스들을 다른 측에 알리기 위하여, 이러한 메시지를 사용한다.
이해되어야 하는 바와 같이, CEC 브리지(140)에 의해 사용되고(예를 들어, 어드레스 배정 통지 메시지, 에뮬레이트되지 않는 어드레스 메시지, 등), 네트워크 링크(150)를 통해 전송되는 메시지 세트(set)는 임의의 적절한 포맷을 사용할 수 있다. 이러한 메시지 포맷 중 하나가 이하에서 보여진다.
어드레스 배정 요청 메시지(Requset Address Assignments message):
MessageType(uint16) - RequsetAddressAssignments=0x01.
DeviceMap(uint16) - 비트맵을 제공하는 로지컬 어드레스(Logical address present bitmap). 로지컬 어드레스 n이 소스 클러스터(110-SRC) 상에 존재하는 경우, 비트 n 세트를 갖는 16-비트 리틀 인디언(little endian) 값. 적어도 하나의 디바이스가 존재해야 한다.
DeviceDescriptor(unit8; unit8; unit16) - 설명자(descriptor)들의 어레이로서, 각각의 설명자는 로지컬 어드레스, 디바이스 유형, 및 피지컬 어드레스를 포함한다. 어레이 내의 제 1 디바이스는 소스 브리지(140-SRC)에 직접적으로(immediately) 부착된 HDMI 디바이스이다. 디바이스맵 필드는 얼마나 많은 어레이 엔트리들이 존재하는지를 나타낸다. 디바이스 유형은 알려지지 않음(unknown)일 수 있다. 피지컬 어드레스는 알려지지 않은 경우 0xF.F.F.F가 될 수 있으나, 제 1 디바이스의 피지컬 어드레스는 0xF.F.F.F가 될 수 없다.
어드레스 배정 답신 메시지(Reply Address Assignments message):
MessageType(uint16) - ReplyAddressAssignments=0x02.
CECPhysicalAddress(pakced uint16 in big endian): 싱크 브리지(140-SNK)에 의해 판독되는 CEC 피지컬 어드레스.
DeviceMap(uint16) - 비트맵을 제공하는 로지컬 어드레스(Logical address present bitmap). 로지컬 어드레스 n이 소스 클러스터(110-SRC) 상에 존재하는 경우, 비트 n 세트를 갖는 16-비트 리틀 인디언(little endian) 값.
AddressDescriptor(unit8; unit8) - 설명자(descriptor)들의 어레이로서, 각각의 설명자는 요청된 로지컬 어드레스 및 실질적으로 할당된 로지컬 어드레스를 포함한다. 0x0F 값은 할당이 실패되었음을 나타낸다.
어드레스 배정 통지 메시지(Notify Address Assignments message):
MessageType(uint16) - NotifyAddressAssignments=0x03.
CECPhysicalAddress(pakced uint16 in big endian): HDMI 싱크 디바이스로부터 판독되는 CEC 피지컬 어드레스.
DeviceMap(uint16) - 비트맵을 제공하는 로지컬 어드레스(Logical address present bitmap). 로지컬 어드레스 n이 싱크 클러스터(110-SNK) 상에 존재하는 경우, 비트 n 세트를 갖는 16-비트 리틀 인디언(little endian) 값. 0(zero)이 될 수 있다.
DeviceDescriptor(unit8; unit8; unit16) - 설명자(descriptor)들의 어레이로서, 각각의 설명자는 로지컬 어드레스, 디바이스 유형, 및 피지컬 어드레스를 포함한다. 어레이 내의 제 1 디바이스는 소스 브리지(140-SRC)에 직접적으로(immediately) 부착된 HDMI 디바이스이다. 디바이스맵 필드는 얼마나 많은 어레이 엔트리들이 존재하는지를 나타낸다. 디바이스 유형은 알려지지 않음(unknown)일 수 있다. 피지컬 어드레스는 알려지지 않은 경우 0xF.F.F.F가 될 수 있으나, 제 1 디바이스의 피지컬 어드레스는 0xF.F.F.F가 될 수 없다.
싱크 배정 요청 메시지(Request Sink Assignments message):
MessageType(uint16) - RequestSinkAssignments=0x04. 이 메시지는 어드레스 배정 통지 메시지의 역(inverse)이며, 소스 브리지(140-SRC)에 의해 어드레스들이 싱크 브리지(140-SNK)에 의해 사용되고 있는지를 문의하기 위하여 사용된다.
Reserved(uint16).
어드레스 제거 메시지(Address Removal message):
MessageType(uint16) - AddressRemoval=0x05.
DeviceMap(uint16) - 비트맵을 제공하는 로지컬 어드레스(Logical address present bitmap). 로지컬 어드레스 n이 로컬 클러스터 상에 더 이상 존재하지 않는 경우, 비트 n 세트를 갖는 16-비트 리틀 인디언(little endian) 값.
브리지 구축 메시지(Bridge Established message):
MessageType(uint16) - BridgeEstablished=0x06. 이 메시지는, 소스 브리지(140-SRC)가 성공적으로 로지컬 어드레스들을 할당하였고, 그 결과 싱크 브리지(140-SNK)가 소스 클러스터(110-SRC) 상의 디바이스들을 목적지로하는 CEC 메시지들을 전달할 수 있음을, 싱크 브리지(140-SNK)에 통지한다.
CEC 메시지(CEC message):
MessageType(uint16) - CECmessage=0x07. 이 메시지는 브리지를 통해 전달되는 실제 CEC 메시지이다.
Length(uint16) - CEC 메시지의 길이는 바이트(byte) 단위이며, 헤더를 포함함.
Data(uint8) - CEC 메시지 그 자체가 CEC 헤더 바이트를 포함함.
에뮬레이트되지 않는 어드레스 메시지(Unemulated Address message):
MessageType(uint16) - UnemulatedAddress=0x08.
DeviceMap(uint16) - 비트맵을 제공하는 로지컬 어드레스(Logical address present bitmap). 로지컬 어드레스 n이 에뮬레이트되지 않는 경우, 비트 n 세트를 갖는 16-비트 리틀 인디언(little endian) 값.
도 7은 본 발명의 일 실시예에 따른 CEC 브리지(140)의 블록도이다. CEC 브리지(140)는, 예를 들어, 프로세서(710) 및 메모리(720)를 갖는, 적어도 하나의 프로세서 회로를 포함하며, 프로세서(710) 및 메모리(720)는 로컬 인터페이스(730)에 연결된다. 로컬 인터페이스(730)는, 예를 들어, 수반하는 어드레스/제어 버스를 갖는 데이터 버스 또는 이해될 수 있는 바와 같은 다른 버스로 구성될 수 있다. CEC 브리지(140)는 또한 HDMI 인터페이스(330) 및 비-HDMI 인터페이스(340)를 포함한다.
메모리(720)에 저장된 데이터 및 몇몇 컴포넌트들은 프로세서(710)에 의해 실행가능하다. 특히, 메모리(720)에 저장되고 프로세서(710)에 의해 실행가능한 것들은 CEC 에뮬레이션 모듈(310), CEC 번역 모듈(315), 및 CEC 전달 모듈(320)이다. 이해될 수 있는 바와 같이, 메모리(720)에 저장되고 프로세서(710)에 의해 실행될 수 있는 다른 어플리케이션들, 컴포넌트들, 서비스들 또는 모듈들이 존재할 수 있음이 이해될 것이다. 본 명세서에서 논의된 임의의 컴포넌트는 소프트웨어, 예를 들어, C, C++, C#, Objective C, Java, JavaScript, Perl, PHP, Visual Basic, Python, Ruby, Delphi, Flash, 또는 다른 프로그래밍 언어들과 같은 이용될 수 있는 복수의 프로그래밍 언어들 중 임의의 하나로 구현된다.
복수의 소프트웨어 컴포넌트들은 메모리(720)에 저장되며, 프로세서(710)에 의해 실행가능하다. 이러한 측면에 있어, 용어 "실행가능(executable)"은 궁극적으로 프로세서(710)에 의해 실행될 수 있는 형식의 프로그램 파일을 의미한다. 실행가능한 프로그램들의 예들은, 예를 들어, 메모리(720)의 램덤 액세스 부분으로 로딩되고 프로세서(710)에 의해 실행될 수 있는 형식의 기계 코드로 번역될 수 있는 컴파일된 프로그램, 메모리(720)의 램덤 액세스 부분으로 로딩되고 프로세서(710)에 의해 실행될 수 있는 오브젝트 코드와 같은 적절한 포맷으로 표현될 수 있는 소스 코드, 또는 메모리(720)의 램덤 액세스 부분에서 명령들을 생성하고 프로세서(710)에 의해 실행될 수 있도록 하는 다른 실행가능 프로그램에 의해 인터프리팅될 수 있는 소스 코드 등이다. 실행가능 프로그램은, 예를 들어, 랜덤 액세스 메모리(RAM), 리드-온리 메모리(ROM), 하드 드라이브, 반도체 드리아브, USB 플래시 드라이브, 메모리 카드, 컴팩트 디스크(CD) 또는 디지털 다기능 디스크(DVD)와 같은 광학 디스크, 플로피 디스크, 자기 테이프, 또는 다른 메모리 컴포넌트들을 포함하는 메모리(720)의 임의의 부분 또는 컴포넌트에 저장될 수 있다.
프로세서(710)는, 예를 들어, 마이크로프로세서, 네트워크 프로세서, 마이크로컨트롤러, 재구성형 프로세서(reconfigurable processor), 확장가능 프로세서(extensible processor), 그래픽 프로세서, 디지털 신호 프로세스, 등의 형식을 취할 수 있다. 프로세서(710)는 전지적으로 또는 몇몇 다른 것으로 이용가능한 구조물(construction)일 수 있다. 프로세서(710)는 다중 프로세스들을 나타낼 수 있으며, 메모리(720)는 다중 메모리들을 나타낼 수 있다. 이러한 다중 프로세스들과 메모리들은 각각 병렬 프로세싱 회로들에서 동작할 수 있다. 이러한 경우에 있어, 로컬 인터페이스(730)는 다중 프로세스들(710) 중 임의의 2개의 프로세서 사이에서, 프로세서들(710) 중 어떤 하나와 메모리들(720) 중 어떤 하나 사이에서, 또는 메모리들(720) 중 임의의 2개의 메모리 사이에서의 통신을 가능하게 하는 적절한 네트워크 또는 스위칭 어렌지먼트(arrangement)일 수 있다. 로컬 인터페이스(730)는, 예를 들어, 로드 밸런싱(load balancing)의 수행을 포함하는, 이러한 통신을 조정하기 위하여 설계된 부가적인 시스템들을 포함할 수 있다.
메모리(720)는 본 명세서에서 휘발성 및 비휘발성 메모리와 데이터 저장 컴포넌트들을 모두 포함하는 것으로 정의된다. 휘발성 컴포넌트들은 전원이 꺼지는 경우 데이터 값들을 보유하지 않는다. 비휘발성 컴포넌트들은 전원이 꺼지는 경우에도 데이터를 보유한다. 따라서, 메모리(720)는, 예를 들어, 랜덤 액세스 메모리(RAM), 리드-온리 메모리(ROM), 하드 드라이브, 반도체 드리아브, USB 플래시 드라이브, 메모리 카드 리더를 통해 액세스되는 메모리 카드, 광학 디스크 드라이버를 통해 액세스되는 광학 디스크, 플로피 디스크 드라이버를 통해 액세스되는 플로피 디스크, 적절한 테이프 드라이버를 통해 액세스되는 자기 테이프, 및/또는 다른 메모리 컴포넌트들, 또는 이러한 메모리 컴포넌트들의 임의의 2개 이상의 조합을 포함할 수 있다. 이에 더하여, RAM은, 예를 들어, 정적 랜덤 액세스 메모리(SRAM), 동적 랜덤 액세스 메모리(DRAM), 또는 자기 랜덤 액세스 메모리(MRAM) 및 다른 이러한 디바이스들을 포함할 수 있다. ROM은, 예를 들어, 프로그램가능 리드-온리 메모리(PROM), 소거가능 프로그램가능 리드-온리 메모리(EPROM), 전기적 소거가능 프로그램 가능 리드-온리 메모리(EEPROM), 또는 다른 유사한 메모리 디바이스를 포함할 수 있다.
본 명세서에서 설명된 임의의 로직 또는 어플리케이션(CEC 에뮬레이션 모듈(310), CEC 번역 모듈(315), 및 CEC 전달 모듈(320)을 포함하는)은, 예를 들어, 컴퓨터 시스템 또는 다른 시스템 내의 프로세서(710)와 같은 명령 실행 시스템에 의해 또는 명령 실행 시스템과 연관되어 사용하기 위한 임의의 비-일시적 컴퓨터-판독가능 매체로 구현될 수 있는 소프트웨어 또는 코드를 포함한다. 이러한 점에 있어, 로직은, 예를 들어, 컴퓨터-판독가능 매체로부터 페치(fetch)되고 명령 실행 시스템에 의해 수행될 수 있는 명령들 및 선언들(declarations)을 포함하는 구문들(statements)를 포함할 수 있다. 본 발명의 맥락 내에서, "컴퓨터-판독가능 매체"는 명령 실행 시스템에 의해 또는 이와 연관되어 사용하기 위한 본 명세서에서 설명된 로직 또는 어플리케이션을 포함, 저장, 또는 유지할 수 있는 임의의 매체일 수 있다. 컴퓨터-판독가능 매체는, 예를 들어, 자기, 광학, 또는 반도체 미디어와 같은 다수의 물리적 미디어 중 임의의 하나를 포함할 수 있다. 적절한 컴퓨터-판독가능 매치의 보다 구체적인 예들은, 자기 테이프들, 자기 플로피 디스켓들, 자기 하드 드라이브들, 메모리 카드들, 반도체 드라이브들, USB 플래시 드라이브들, 또는 광학 디스크들을 포함할 수 있으나, 이에 한정되는 것은 아니다. 또한, 컴퓨터-판독가능 매체는, 예를 들어, 정적 랜덤 액세스 메모리(SRAM), 동적 랜덤 액세스 메모리(DRAM), 또는 자기 랜덤 액세스 메모리(MRAM)를 포함하는 램덤 액세스 메모리(RAM)일 수 있다. 이에 더하여, 컴퓨터-판독가능 매체는 리드-온리 메모리(ROM), 프로그램가능 리드-온리 메모리(PROM), 소거가능 프로그램가능 리드-온리 메모리(EPROM), 전기적 소거가능 프로그램 가능 리드-온리 메모리(EEPROM), 또는 다른 유형의 메모리 디바이스일 수 있다.
비록 본 명세서에서 설명된 CEC 에뮬레이션 모듈(310)과 CEC 전달 모듈(320) 및 다른 다양한 시스템들이 전술한 바와 같이 범용 프로세서에 의해 실행되는 소프트웨어 또는 코드로 구현될 수 있으나, 대안적으로 동일한 것들이 또한 전용 하드웨어 또는 소프트웨어/범용 하드웨어 및 전용 하드웨어의 조합으로 구현될 수도 있다. 전용 하드웨어로 구현되는 경우, 각각은 복수의 기술들의 조합 또는 어느 하나를 이용하는 회로 또는 상태 머신(state machine)으로서 구현될 수도 있다. 이러한 기술들은, 디스크리트 로직(discrete logic), 프로그램가능 로직 디바이스, 주문형 반도체(ASIC), 필드 프로그램가능 게이트 어레이(FPGA), 시스템 온 칩(Soc), 시스템 인 패키지(SiP), 또는 하나 이상의 데이터 신호들의 응용에 기초하여 다양한 로직 기능들을 구현하기 위한 로직 게이트들을 갖는 임의의 다른 하드웨어 디바이스를 포함할 수 있으나, 이에 한정되는 것은 아니다. 이러한 기술들은 일반적으로 당업자들에게 공지되어 있으며, 따라서 본 명세서에서 자세하게 설명하지는 않는다.
도 4, 5, 6의 도면들은 CEC 브리지(140)의 부분들의 구현의 기능성 및 동작을 도시한다. 소프트웨어로 구현되는 경우, 각각의 블록은 특정한 논리적 기능(들)을 구현하기 위한 프로그램 명령들을 포함하는 모듈, 세그먼트, 또는 코드의 부분을 나타낼 수 있다. 프로그램 명령들은 인간-판독가능 구문들로 작성된 프로그래밍 언어를 포함하는 소스 코드 또는 컴퓨터 시스템 또는 다른 시스템 내의 프로세서들(710) 중 하나와 같은 적합한 실행 시스템에 의해 인식가능한 수치적인 명령들을 포함하는 기계 코드의 형태로 구현될 수 있다. 기계 코드는 소스 코드 등으로부터 변환될 수 있다. 하드웨어로 구현되는 경우, 각각의 블록은 특정된 논리적 기능(들)을 수행하기 위한 회로 또는 복수의 상호연결된 회로들을 나타낼 수 있다.
비록 도 4, 5, 및 6의 도면들이 실행의 특정 순서를 도시하고 있으나, 실행의 순서가 묘사된 것과 상이할 수 있다는 것이 이해될 것이다. 예를 들어, 2개 이상의 블록들의 실행 순서는 도시된 순서에 대하여 스크램블될 수 있다. 또한, 도 4, 5, 및 6의 도면들 내에서 연속적으로 도시된 2개 이상의 블록들은 동시에 또는 부분적으로 동시에 실행될 수도 있다. 추가적으로, 일부 실시예들에 있어, 도 4, 5, 및 6의 도면들에 도시된 하나 이상의 블록들은 스킵되거나 또는 생략될 수도 있다. 이에 더하여, 임의의 수의 카운터들, 상태 변수들, 경고 세마포들(warning semaphores), 또는 메시지들이, 향상된 유용성, 어카운팅, 성능 측정, 또는 트러블 슈팅 보조의 제공, 등의 목적들을 위하여, 본 명세서에서 설명된 논리적 플로우에 부가될 수도 있다. 모든 이러한 변형들이 본 발명의 범위 내에 있음이 이해될 것이다. 도 4, 5, 및 6의 도면들은 단지 본 명세서에서 설명된 CEC 브리지(140)의 부분(들)의 동작을 구현하기 위하여 이용될 수 있는 다양한 유형의 기능적인 어렌지먼트들의 일례를 제공한다는 것이 이해될 것이다. 대안적으로, 도 4, 5, 및 6의 도면들은, 하나 이상의 실시예들에 따르는 CEC 브리지(140)(도 1) 내에 구현된 방법의 단계들의 일례를 도시하는 것으로서 보여질 수도 있다.
이상에서 설명된 본 발명의 실시예들은 단지 본 발명의 원리들의 명료한 이해를 위하여 진술된 실시예들의 가능한 예들이라는 것이 강조되어야만 한다. 많은 변형들 및 수정들이 본 발명의 사상과 원리들로부터 벗어나지 않고 이루어질 수 있다. 이러한 모든 수정들 및 변형들이 본 발명의 범위 내에 포함되도록 의도되며, 다음의 청구항들에 의해 보호되도록 의도된다.

Claims (15)

  1. 디바이스로서,
    HDMI 인터페이스;
    네트워크 인터페이스;
    적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서에 의해 실행가능한 코드를 포함하며,
    상기 코드는 원격 HDMI 디바이스들의 클러스터 중 임의의 원격 HDMI 디바이스로 향하는 CEC 명령을 에뮬레이트(emulate)하는 로직을 포함하고,
    상기 원격 HDMI 디바이스들 중 어떤 것도 상기 HDMI 인터페이스를 통해 상기 디바이스에 연결되지 않고,
    에뮬레이트하는 상기 로직은, 상기 HDMI 인터페이스를 통해 연결된 임의의 로컬 HDMI 디바이스가, 에뮬레이트하는 상기 로직에 의해 에뮬레이트되고 있는 상기 임의의 원격 HDMI 디바이스를 인식할 수 있게 하는 것을 특징으로 하는, 디바이스.
  2. 청구항 1에 있어서,
    상기 코드는 상기 네트워크 인터페이스를 통해 원격 CEC 에뮬레이션 디바이스와 통신하는 로직을 더 포함하며,
    상기 원격 HDMI 디바이스들은 다른 HDMI 인터페이스를 통해 상기 원격 CEC 에뮬레이션 디바이스와 연결되는 것을 특징으로 하는, 디바이스.
  3. 청구항 1에 있어서,
    상기 코드는,
    상기 원격 HDMI 디바이스들 중 하나로 향하는 CEC 명령을 수신하는 로직; 및
    상기 네트워크 인터페이스를 통해 상기 CEC 명령을 전달하는 로직을 더 포함하는 것을 특징으로 하는, 디바이스.
  4. 청구항 3에 있어서,
    상기 코드는,
    상기 CEC 명령이 향해진 상기 원격 HDMI 디바이스가 CEC 명령들의 상이한 세트를 사용하는지 여부에 기초하여, 상기 CEC 명령의 번역(translation)이 적절한지 여부를 판단하는 로직; 및
    번역이 적절한 것으로 판단되는 경우, 상기 CEC 명령을 상기 네트워크 인터페이스를 통해 전달하기 이전에, 상기 CEC 명령을 번역하는 로직을 더 포함하는 것을 특징으로 하는, 디바이스.
  5. 청구항 1에 있어서,
    상기 코드는 비-HDMI(non-HDMI) 인터페이스를 통해 CEC 에뮬레이션 메시지를 수신하는 로직으로서, 상기 에뮬레이션 메시지는 상기 원격 HDMI 디바이스들 중 하나에 대한 CEC 로지컬(logical) 어드레스 배정(assignment) 요청을 포함하는, 로직을 더 포함하며,
    에뮬레이트하는 상기 로직은, 상기 CEC 로지컬 어드레스 배정을 수신한 후, 상기 원격 HDMI 디바이스들 중 상기 하나의 에뮬레이션을 시작하는 것을 특징으로 하는, 디바이스.
  6. 청구항 1에 있어서,
    상기 코드는,
    비-HDMI(non-HDMI) 인터페이스를 통해 CEC 에뮬레이션 메시지를 수신하는 로직으로서, 상기 에뮬레이션 메시지는 상기 원격 HDMI 디바이스들 중 하나에 대한 CEC 로지컬(logical) 어드레스 배정(assignment) 요청을 포함하는, 로직;
    상기 CEC 로지컬 어드레스와 상기 HDMI 인터페이스를 통해 연결된 임의의 로컬 HDMI 디바이스의 CEC 로지컬 어드레스 사이에 충돌(conflict)이 존재하는지 여부를 판단하는 로직을 더 포함하며,
    에뮬레이트하는 상기 로직은, 충돌이 존재하지 않는 것으로 판단된 후, 상기 원격 HDMI 디바이스들 중 상기 하나의 에뮬레이션을 시작하는 것을 특징으로 하는, 디바이스.
  7. 시스템으로서,
    제 1 HDMI 인터페이스 및 제 1 네트워크 인터페이스를 포함하는 싱크-측 브리지(sink-side bridge),
    제 2 HDMI 인터페이스 및 제 2 네트워크 인터페이스를 포함하는 소스-측 브리지(source-side bridge)를 포함하며; 및
    상기 싱크-측 브리지는,
    상기 제 1 HDMI 인터페이스를 통해 연결된 제 1 HDMI 디바이스들의 클러스터의 임의의 제 1 HDMI 디바이스를 탐색(discover)하고, 상기 복수의 제 1 HDMI 디바이스들은 HDMI 싱크 디바이스를 포함하며; 및
    상기 제 1 네트워크 인터페이스를 통해, 상기 탐색된 제 1 HDMI 디바이스들 각각에 대한 대응하는 CEC 로지컬 어드레스 배정을 상기 소스-측 브리지로 통지하도록 구성되고;
    상기 소스-측 브리지는,
    상기 제 2 HDMI 인터페이스를 통해 연결된 제 2 HDMI 디바이스들의 클러스터의 임의의 제 2 HDMI 디바이스를 탐색하고; 및
    상기 제 2 네트워크 인터페이스를 통해 그리고 상기 싱크-측 브리지로부터 수신된 통지에 응답하여, 상기 싱크-측 브리지로부터의 상기 탐색된 제 2 HDMI 디바이스들 각각에 대한 CEC 로지컬 어드레스 배정을 요청하도록 구성되며,
    상기 싱크-측 브리지 및 상기 소스-측 브리지 중 적어도 하나는 청구항 1 내지 청구항 6 중 어느 한 항에 따른 디바이스인 것을 특징으로 하는, 가전기기 제어 프로토콜의 지능형 에뮬레이션을 통한 HDMI 디바이스들의 제어 시스템.
  8. 청구항 7에 있어서,
    상기 싱크-측 브리지는,
    상기 소스-측 브리지로부터의 상기 요청에 응답하여, 상기 탐색된 제 2 HDMI 디바이스들 각각에 대한 CEC 로지컬 어드레스를 할당(allocate)하고; 및
    상기 소스-측 브리지로부터의 상기 요청에 대하여, 상기 탐색된 제 2 HDMI 디바이스들 각각에 대하여 할당된 CEC 로지컬 어드레스의 지시(indication)를 이용해 답신하도록 더 구성되는 것을 특징으로 하는, 가전기기 제어 프로토콜의 지능형 에뮬레이션을 통한 HDMI 디바이스들의 제어 시스템.
  9. 청구항 8에 있어서,
    상기 싱크-측 브리지는, 상기 CEC 로지컬 어드레스들 각각의 할당이 실패하였는지 여부를 판단하도록 더 구성되며,
    상기 답신 내의 상기 지시는 상기 할당이 실패된 임의의 CEC 로지컬 어드레스들에 대한 실패 지시를 포함하는 것을 특징으로 하는, 가전기기 제어 프로토콜의 지능형 에뮬레이션을 통한 HDMI 디바이스들의 제어 시스템.
  10. 청구항 8에 있어서,
    상기 싱크-측 브리지는 상기 제 1 HDMI 인터페이스에 포함된 CEC 버스가 파워-온(power on)되어 있는지 여부를 판단하도록 더 구성되며,
    상기 답신은 상기 CEC 버스가 파워-온되었다는 판단을 조건으로 하는 것을 특징으로 하는, 가전기기 제어 프로토콜의 지능형 에뮬레이션을 통한 HDMI 디바이스들의 제어 시스템.
  11. 청구항 8에 있어서,
    상기 요청은 상기 탐색된 제 2 HDMI 디바이스들 각각에 대한 요청된 CEC 로지컬 어드레스를 포함하며,
    상기 싱크-측 브리지는 상기 요청된 CEC 로지컬 어드레스들 각각에 대해 충돌이 존재하는지 여부를 판단하도록 더 구성되고,
    상기 답신 내의 상기 지시는 충돌이 존재하는 임의의 CEC 로지컬 어드레스에 대한 미등록(unregistered) 어드레스 지시를 포함하는 것을 특징으로 하는, 가전기기 제어 프로토콜의 지능형 에뮬레이션을 통한 HDMI 디바이스들의 제어 시스템.
  12. 청구항 11에 있어서,
    상기 소스-측 브리지는,
    상기 싱크-측 브리지로부터 상기 답신을 수신하고; 및
    상기 미등록 어드레스 지시를 포함하는 상기 답신에 응답하여, 상기 제 2 HDMI 인터페이스 상에서 핫플러그디텍트(HotPlugDetect) 신호를 디어서트(deassert)하고 그 뒤 리어서트(reassert)하도록 더 구성되는 것을 특징으로 하는, 가전기기 제어 프로토콜의 지능형 에뮬레이션을 통한 HDMI 디바이스들의 제어 시스템.
  13. 청구항 11에 있어서,
    상기 소스-측 브리지는,
    상기 탐색된 제 1 HDMI 디바이스들 각각에 대한 배정된 CEC 로지컬 어드레스를 포함하는 통지를 상기 싱크-측 브리지로부터 수신하고; 및
    상기 탐색된 제 1 HDMI 디바이스들에 대한 배정된 CEC 로지컬 주소들 중 임의의 CEC 로지컬 주소와 상기 탐색된 제 2 HDMI 디바이스들 각각에 대해 요청된 CEC 로지컬 어드레스 사이에 충돌이 존재하는지 여부를 판단하며; 및
    충돌이 존재한다는 상기 판단에 응답하여, 상기 제 2 HDMI 인터페이스 상에서 핫플러그디텍트 신호를 디어서트하고 그 뒤 리어서트하도록 더 구성되는 것을 특징으로 하는, 가전기기 제어 프로토콜의 지능형 에뮬레이션을 통한 HDMI 디바이스들의 제어 시스템.
  14. 싱크-측 브리지가 제 1 HDMI 인터페이스를 통해 상기 싱크-측 브리지에 연결된 제 1 HDMI 디바이스들의 클러스터의 임의의 제 1 HDMI 디바이스를 탐색하는 단계로서, 상기 복수의 제 1 HDMI 디바이스들은 HDMI 싱크 디바이스를 포함하고 있는, 단계;
    소스-측 브리지가 제 2 HDMI 인터페이스를 통해 상기 소스-측 브리지에 연결된 제 2 HDMI 디바이스들의 클러스터의 임의의 제 2 HDMI 디바이스를 탐색하는 단계;
    상기 싱크-측 브리지가, 비-HDMI 네트워크를 통해, 상기 탐색된 제 1 HDMI 디바이스들 각각에 대한 대응하는 CEC 로지컬 주소 배정을 상기 소스-측 브리지로 통지하는 단계; 및
    상기 소스-측 브리지가, 상기 비-HDMI 네트워크를 통해 그리고 상기 싱크-측 브리지로부터의 수신된 통지에 응답하여, 상기 싱크-측 브리지로부터의 상기 탐색된 제 2 HDMI 디바이스들 각각에 대한 CEC 로지컬 어드레스 배정을 요청하는 단계를 포함하며,
    상기 싱크-측 브리지 및 상기 소스-측 브리지 중 적어도 하나는 청구항 1 내지 청구항 6 중 어느 한 항에 따른 디바이스인 것을 특징으로 하는, 가전기기 제어 프로토콜의 지능형 에뮬레이션을 통한 HDMI 디바이스들의 제어 방법.
  15. 청구항 14에 있어서,
    상기 싱크-측 브리지가 상기 탐색된 제 2 HDMI 디바이스들 각각의 CEC 거동(behavior)을 에뮬레이트하는 단계를 더 포함하는 것을 특징으로 하는, 가전기기 제어 프로토콜의 지능형 에뮬레이션을 통한 HDMI 디바이스들의 제어 방법.
KR1020120105701A 2011-12-29 2012-09-24 가전기기 제어 프로토콜의 지능형 에뮬레이션을 통한 hdmi 디바이스들의 제어 KR101436976B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/339,820 2011-12-29
US13/339,820 US20130173835A1 (en) 2011-12-29 2011-12-29 Controlling HDMI Devices Via Intelligent Emulation of Consumer Electronics Control (CEC) Protocol

Publications (2)

Publication Number Publication Date
KR20130077762A KR20130077762A (ko) 2013-07-09
KR101436976B1 true KR101436976B1 (ko) 2014-09-02

Family

ID=46799955

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120105701A KR101436976B1 (ko) 2011-12-29 2012-09-24 가전기기 제어 프로토콜의 지능형 에뮬레이션을 통한 hdmi 디바이스들의 제어

Country Status (5)

Country Link
US (1) US20130173835A1 (ko)
EP (1) EP2611077A1 (ko)
KR (1) KR101436976B1 (ko)
CN (1) CN103188472A (ko)
TW (1) TW201330599A (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016089161A1 (ko) * 2014-12-04 2016-06-09 엘지전자(주) Ip 기반의 hdmi 기기 제어 방법
JP2016177701A (ja) * 2015-03-20 2016-10-06 ソニー株式会社 ネットワーク装置、情報処理方法およびhdmiデバイス
CN105163113B (zh) * 2015-09-29 2017-06-23 深圳市九洲电器有限公司 Hdmi接口测试夹具及测试方法
US10680846B2 (en) 2016-04-01 2020-06-09 Caavo Inc Method and apparatus for implementing HDMI CEC
CN109992235A (zh) * 2017-12-28 2019-07-09 深圳光峰科技股份有限公司 影音设备控制方法、控制装置及影音设备、存储介质
CN108322798B (zh) * 2018-02-05 2020-05-22 深圳市兆驰股份有限公司 一种cec总线监控设备
CN112000599A (zh) * 2020-07-29 2020-11-27 深圳市智微智能软件开发有限公司 Io模拟实现cec协议的方法、系统、设备和存储介质
CN114125347B (zh) * 2022-01-27 2022-05-06 长芯盛(武汉)科技有限公司 用于有源线缆的信息传输方法、cec代理模块及有源线缆

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050032526A (ko) * 2002-05-31 2005-04-07 코닌클리케 필립스 일렉트로닉스 엔.브이. 네트워크에서의 통신 경로 결정 및 구성
KR20090049552A (ko) * 2007-11-13 2009-05-18 엔비디아 코포레이션 미디어 센터 컴퓨팅 디바이스의 hdmi 네트워크 제어
US20100309962A1 (en) * 2008-04-10 2010-12-09 Shay Freundlich Method circuit device and system for conveying control signaling between media devices
US20110019623A1 (en) * 2008-03-27 2011-01-27 Makoto Funabiki Wireless communication device for processing packet including at least one of video output format of video data and audio output format of audio data

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060095596A1 (en) * 2004-11-03 2006-05-04 Yung Lin C Solution for consumer electronics control
EP2055048B1 (en) * 2006-08-18 2010-05-05 Koninklijke Philips Electronics N.V. Decoupled connections
US7554614B2 (en) * 2006-12-08 2009-06-30 Panasonic Corporation Remote control system
US9065673B2 (en) * 2007-12-17 2015-06-23 Broadcom Corporation Method and system for a centralized vehicular electronics system utilizing ethernet with audio video bridging
US8255202B2 (en) * 2008-05-27 2012-08-28 Valens Semiconductor Ltd. Methods and devices for spoofing CEC messages
JP5716299B2 (ja) * 2010-06-28 2015-05-13 富士通株式会社 情報処理装置、情報処理装置制御方法及び情報処理装置制御プログラムを格納した記録媒体
US8260975B1 (en) * 2011-06-14 2012-09-04 Hydra Connect LLC Consumer electronics control (CEC) processor
US20130154812A1 (en) * 2011-12-14 2013-06-20 Echostar Technologies L.L.C. Apparatus, systems and methods for communicating remote control instructions

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050032526A (ko) * 2002-05-31 2005-04-07 코닌클리케 필립스 일렉트로닉스 엔.브이. 네트워크에서의 통신 경로 결정 및 구성
KR20090049552A (ko) * 2007-11-13 2009-05-18 엔비디아 코포레이션 미디어 센터 컴퓨팅 디바이스의 hdmi 네트워크 제어
US20110019623A1 (en) * 2008-03-27 2011-01-27 Makoto Funabiki Wireless communication device for processing packet including at least one of video output format of video data and audio output format of audio data
US20100309962A1 (en) * 2008-04-10 2010-12-09 Shay Freundlich Method circuit device and system for conveying control signaling between media devices

Also Published As

Publication number Publication date
EP2611077A1 (en) 2013-07-03
CN103188472A (zh) 2013-07-03
US20130173835A1 (en) 2013-07-04
TW201330599A (zh) 2013-07-16
KR20130077762A (ko) 2013-07-09

Similar Documents

Publication Publication Date Title
KR101436976B1 (ko) 가전기기 제어 프로토콜의 지능형 에뮬레이션을 통한 hdmi 디바이스들의 제어
CN108833237B (zh) 智能家居网关及其管控方法
US11645104B2 (en) Intelligent data plane acceleration by offloading to distributed smart network interfaces
CN112416840B (zh) 一种计算资源的远程映射方法、装置、设备及存储介质
US9973351B2 (en) Data processing method and apparatus, storage controller, and cabinet
EP2641379B1 (en) Discovery of electronic devices in a combined network
US9548923B2 (en) System and method for utilizing a unique identifier while registering a device in a network
US20160328355A1 (en) Method and apparatus for plug and play, networkable iso 18000-7 connectivity
WO2017032112A1 (zh) 一种与无中央处理器单板通讯的方法及通讯设备
KR101400329B1 (ko) 통신 네트워크 시스템
CN110326262B (zh) 将无线设备抽象为虚拟以太网接口
US20180176132A1 (en) Data transmission method, communication network and master participant
US10216664B2 (en) Remote resource access method and switching device
Farsi et al. An introduction to CANopen
US8996737B1 (en) Method for emulating communication standards of transceiver modules for native host devices
CN113961496A (zh) 通信电路系统、方法、芯片以及存储介质
CN113268358A (zh) 数据通信方法、装置和系统及多设备级联系统
KR20080110216A (ko) 동시 분산제어 및 독립제어 시스템
KR20200054838A (ko) 모드버스 프로토콜 변환과 연동 방법, 및 이를 수행하는 장치들
US20240231884A9 (en) On-board device, information processing method, and computer program
CN117056275B (zh) 基于硬件分区系统的通信控制方法、装置及服务器
CN114422353B (zh) 一种多客户端数据处理系统、方法及存储介质
CN117319943A (zh) 设备数据传输的方法、组网系统及设备集群
WO2018099365A1 (zh) 报文处理
CN117319108A (zh) 设备数据传输的方法及组网系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee