KR20150036539A - 데이터 터널을 사용하는 인터페이스를 통한 복수의 프로토콜 데이터 엘러먼트들의 송신 - Google Patents

데이터 터널을 사용하는 인터페이스를 통한 복수의 프로토콜 데이터 엘러먼트들의 송신 Download PDF

Info

Publication number
KR20150036539A
KR20150036539A KR20157003631A KR20157003631A KR20150036539A KR 20150036539 A KR20150036539 A KR 20150036539A KR 20157003631 A KR20157003631 A KR 20157003631A KR 20157003631 A KR20157003631 A KR 20157003631A KR 20150036539 A KR20150036539 A KR 20150036539A
Authority
KR
South Korea
Prior art keywords
data
protocol
mhl
burst
transmission
Prior art date
Application number
KR20157003631A
Other languages
English (en)
Other versions
KR102109431B1 (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 KR20150036539A publication Critical patent/KR20150036539A/ko
Application granted granted Critical
Publication of KR102109431B1 publication Critical patent/KR102109431B1/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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/006Details of the interface to the display terminal
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/10Use of a protocol of communication by packets in interfaces along the display data pipeline
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/12Use of DVI or HDMI protocol in interfaces along the display data pipeline

Abstract

본 발명의 실시예들은 전반적으로 제어 채널 상의 데이터 터널을 사용하는 인터페이스를 통한 복수의 프로토콜 데이터 엘러먼트들의 송신에 관한 것이다. 장치의 일 실시예는, 데이터의 수신 또는 송신을 위한 수신기 또는 송신기; 장치의 데이터를 처리하기 위한 프로세싱 엘러먼트; 및 데이터의 전송을 위한 커넥터로서, 상기 커넥터는 데이터 채널을 연결하고 제어 채널을 연결하는, 커넥터를 포함한다. 프로세싱 엘러먼트는 제어 채널에서 제 1 프로토콜의 데이터를 전송하기 위해 제공되며, 제어 채널을 통한 데이터의 전송은 제 2 프로토콜의 데이터의 전송을 위한 제 1 프로토콜의 하나 이상의 범용 명령(generic command)들의 사용을 포함한다. 제 2 프로토콜의 데이터는 제 2 프로토콜의 데이터가 제 1 프로토콜을 통해 전송되기 전에 최적화되며, 데이터 채널에서의 데이터 전송 및 제어 채널에서의 데이터 전송이 적어도 부분적으로 동시적이다.

Description

데이터 터널을 사용하는 인터페이스를 통한 복수의 프로토콜 데이터 엘러먼트들의 송신{TRANSMISSION OF MULTIPLE PROTOCOL DATA ELEMENTS VIA AN INTERFACE UTILIZING A DATA TUNNEL}
본 발명의 실시예들은 전반적으로 데이터 통신 분야에 관한 것이며, 더 구체적으로, 데이터 터널을 사용하는 인터페이스를 통한 복수의 프로토콜 데이터 엘러먼트들의 송신에 관한 것이다.
특정 디바이스들에 있어, 커넥터 또는 다른 물리적 인터페이스가 하나 이상의 종류의 데이터를 전달하는데 사용될 수 있다. 예를 들어, MHL™(Mobile High-definition Link) 명세(specification)는 커넥터가 MHL 데이터 및 USB™(Universal Serial Bus) 데이터 둘 모두의 송신을 위해 사용되도록 허용하며, 여기에서 USB 데이터는 커넥터가 MHL 데이터의 송신을 위해 사용되고 있지 않을 때 송신될 수 있다.
그러나, 이러한 사용이 언제든지 이러한 프로토콜들 중 하나만으로 제한될 수 있다. 예를 들어, 프로토콜들 둘 모두가 커넥터 또는 다른 물리적 인터페이스의 대역폭의 전부 또는 거의 전부를 사용하는 경우, 프로토콜들 둘 모두에 대한 데이터를 동시에 수용하기에 충분한 대역폭이 존재하지 않는다.
본 발명의 실시예들은 전반적으로 데이터 터널을 사용하는 인터페이스를 통한 복수의 프로토콜 데이터 엘러먼트들의 송신에 관한 것이다.
본 발명의 제 1 측면에 있어, 장치의 일 실시예는, 데이터의 수신 또는 송신을 위한 수신기 또는 송신기; 장치의 데이터를 처리(handle)하기 위한 프로세싱 엘러먼트; 및 데이터의 전송을 위한 커넥터로서, 커넥터는 데이터 채널을 연결하고 제어 채널을 연결하는, 커넥터를 포함한다. 프로세싱 엘러먼트는 제어 채널에서 제 1 프로토콜의 데이터를 전송하기 위해 제공되며, 제어 채널을 통한 데이터의 전송은 제 2 프로토콜의 데이터의 전송을 위한 제 1 프로토콜의 하나 이상의 범용 명령(generic command)들의 사용을 포함한다. 제 2 프로토콜의 데이터는 제 2 프로토콜의 데이터가 제 1 프로토콜을 통해 전송되기 전에 최적화되며, 데이터 채널에서의 데이터 전송 및 제어 채널에서의 데이터 전송이 적어도 부분적으로 동시적이다.
본 발명의 제 2 측면에 있어, 방법의 일 실시예는, 제 1 장치에서, 제 2 장치로 또는 제 2 장치로부터 데이터의 제 1 세트를 전송하는 단계로서, 데이터의 제 1 세트는 제 1 프로토콜이며, 상기 데이터의 제 1 세트를 전송하는 단계는 커넥터를 통해 제 1 프로토콜에 대한 데이터 채널을 통해 데이터를 송신하거나 또는 수신하는 단계를 포함하는, 단계; 제 2 프로토콜의 데이터가 제 1 프로토콜을 통해 전달되기 전에 제 2 프로토콜의 데이터에 최적화를 적용하는 단계; 및 제 1 장치에서, 제 2 장치로 또는 제 2 장치로부터 데이터의 제 2 세트를 전송하는 단계로서, 데이터의 제 2 세트는 제 2 프로토콜이며, 데이터의 제 2 세트를 전송하는 단계는 커넥터를 통해 제 1 프로토콜에 대한 제어 채널을 통해 데이터를 송신하거나 또는 수신하는 단계를 포함하는, 단계를 포함하고, 데이터의 제 1 세트 및 데이터의 제 2 세트는 적어도 부분적으로 동시에 전송되며, 데이터의 제 2 세트는 제 1 프로토콜의 하나 이상의 범용 명령들을 사용하여 전송된다.
본 발명의 실시예들이 제한적인 방식이 아니라 예시적인 방식으로 예시되며, 첨부된 도면들 내에서 동일한 참조 부호들은 동일한 구성요소들을 나타낸다.
도 1은 데이터 터널을 사용하여 커넥터를 통해 복수의 프로토콜 데이터 엘러먼트들의 데이터 터널링 송신을 제공하는 장치 및 시스템의 일 실시예를 예시한다.
도 2는 매체 데이터 터널(Media Data Tunnel)의 사용없이 명령들을 사용하는 데이터의 송신을 위한 방법의 일 실시예를 예시한다.
도 3은 매체 데이터 터널을 사용하는 데이터의 송신을 위한 방법의 일 실시예를 예시한다.
도 4a 및 도 4b는 매체 데이터 터널을 사용하는 통신들을 위한 메시지 구조들의 실시예들을 예시한다.
도 5a, 도 5b, 도 5c, 도 5d, 도 5e, 도 5f, 및 도 5g는 매체 데이터 터널을 포함하는 장치 또는 시스템의 실시예들과 함께 사용되는 데이터 패킷들을 예시한다.
도 6은 매체 데이터 터널 구현예에서의 확장된 헤더에 대한 패킷 구조의 일 실시예를 예시한다.
도 7a, 도 7b, 및 도 7c는 표준 HID 구조들과 비교되는 매체 데이터 터널 인코더의 일 실시예에 대한 페이로드(payload) 구조들을 예시한다.
도 8은 매체 데이터 터널의 일 실시예에 대한 계층들을 예시한다.
도 9는 HDIM 가능형(enabled) 비디오 디스플레이와 HDMI 가능형 소스 디바이스 사이의 연결을 예시한다.
도 10은 HDMI/MHL 동글(dongle)과 MHL 가능형 비디오 소스 디바이스 사이의 연결을 예시한다.
도 11은 MHL 가능형 비디오 싱크 디바이스와 MHL 가능형 비디오 소스 디바이스 사이의 연결을 예시한다.
도 12는 HDMI/MHL 동글과 MHL 가능형 비디오 소스 디바이스 사이의 연결의 일 실시예를 예시한다.
도 13은 MHL 가능형 비디오 싱크 디바이스와 MHL 가능형 비디오 소스 디바이스 사이의 연결을 예시한다.
도 14는 모바일 디바이스와 데이터 주변기기의 USB 링크들을 예시한다.
도 15는 모바일 디바이스와 휴먼 인터페이스 디바이스들의 링크의 일 실시예를 예시한다.
도 16은 모바일 디바이스와 휴먼 인터페이스 디바이스들의 링크의 일 실시예를 예시한다.
도 17은 특정 데이터의 송신을 위한 데이터 터널을 포함하는 일 시스템 또는 실시예를 예시한다.
도 18은 매체 데이터 터널을 사용하는 통신을 위한 프로세스의 일 실시예를 예시하는 타이밍도이다.
본 발명의 실시예들은 전반적으로 데이터 터널을 사용하는 인터페이스를 통한 복수의 프로토콜 데이터 엘러먼트들의 송신에 관한 것이다.
본 명세서에서 사용되는 바와 같은:
"모바일 디바이스"는 전화기(스마트폰과 같은), 랩탑 컴퓨터, 핸드핼드 컴퓨터, 태블릿 컴퓨터, 모바일 인터넷 디바이스(mobile Internet device: MID), 또는 다른 모바일 전자 디바이스를 의미한다.
"프로세싱 엘러먼트"는, 비 제한적으로, 범용 또는 전용 프로세서, 중앙 처리 유닛(central processing unit: CPU), 및 내장형 프로세서, 또는 비디오 프로세서를 포함하는, 데이터의 프로세싱을 가능하게 하는 전자 컴포넌트, 모듈, 또는 다른 유닛을 의미한다. 프로세싱 엘러먼트는 데이터의 프로세싱에 더해 기능들을 제공하는 전자 컴포넌트, 모듈, 또는 다른 유닛일 수 있다.
특정 인터페이스들은 커넥터 또는 다른 물리적 인터페이스를 통해 상이한 프로토콜들의 데이터가 전송되도록 할 수 있다. 일 예에 있어, MHL 명세는, 오디오/비디오(A/V) 데이터(MHL 데이터)를 릴레이(relay)하기 위한 5-핀 커넥터의 사용을 허용하며, 커넥터가 MHL에 대해 사용되지 않을 때, 연결이 USB(Universal Serial Bus) 데이터를 지원하기 위해 사용될 수 있다. 그러나, MHL 명세는 A/V 및 USB 데이터 둘 모두의 동시적 전달을 위한 5-핀 커넥터에 대한 지원을 제공하지 않는다. MHL 명세는 특정 명령들을 사용하는 MHL CBUS(Control bus)를 통한 범용 데이터의 전송을 위한 프로세스를 추가로 정의(define)하며, 명령들은 WRITE_BURST 및 SET_INT 명령들이다. MHL의 데이터의 전송을 위한 이러한 정의는, 어떤 식별형 사용 케이스들이 없는, 범용이다. 본 명세서에서의 설명이 일 예로서 MHL 및 USB를 언급하지만, 실시예들이 이러한 특정 프로토콜들에 한정되지 않는다. 본 명세서에서 사용되는 바와 같은, 범용 명령은 송신되는 데이터의 특정 형태(form)에 제한되지 않으며, 따라서 복수의 상이한 종류들의 데이터 전송을 위해 사용될 수 있다.
일부 실시예들에 있어, 장치, 시스템, 또는 방법은 데이터 터널의 사용을 통해 적어도 부분적으로 동시에 복수의 상이한 프로토콜들을 사용하여 데이터를 전달하는 인터페이스의 사용을 제공한다. 특정 구현예에 있어, 장치, 시스템, 또는 방법은, 제 1 프로토콜(A/V MHL 데이터와 같은) 및 특정 제 2 프로토콜(USB와 같은)을 동시에 지원하기 위하여 MHL 범용 WRITE_BURST 및 SET_INT 명령들을 적용하며, 여기에서 제 2 프로토콜 데이터는 특정 데이터 엘러먼트들로 제한될 수 있다. 예를 들어, 제 2 프로토콜 데이터는, MHL 연결을 통한, 게임 제어 데이터, 커서 데이터(마우스 데이터 및 터치패드 또는 터치스크린 데이터와 같은), 및 키보드 데이터와 같은, 저속 USB 휴먼 인터페이스 디바이스(Human Interface Device: HID) 데이터일 수 있다. 그러나, 실시예들이, 프로토콜 데이터가 특정 데이터 엘러먼트들로 제한되는 동작들에 한정되지 않는다. 일부 실시예들에 있어, 다중 프로토콜 성능이 모바일 디바이스와 원격 데이터 커넥터 사이에 데이터 터널 또는 브리지(bridge)를 생성함으로써 이용가능하게 되며, 데이터 터널은 매체 데이터 터널(Media Data Tunnel: MDT)로서 지칭된다. 일부 실시예들에 있어, 원격 데이터 커넥터는 HDMI™(High-Definition Multimedia Interface) 대(to) MHL 동글 내에 또는 MHL 가능형 디스플레이 내에 물리적으로 위치되며, 반면 로컬 데이터 커넥터는 모바일 디바이스 내에 위치될 수 있다.
일부 실시예들에 있어, MHL 명세와 같은 어떤 프로토콜 하의 매체 데이터 터널 확장 동작에 더하여, 장치는 HDMI 대 MHL 동글 또는 MHL 가능형 디스플레이 내의 임의의 저속 데이터 커넥터로 모바일 디바이스를 터널링(tunnel)할 수 있다. 일 예에 있어, 단말 액세스에 대한 직렬 통신이 매체 데이터 터널을 통해 전달될 수 있다.
일부 실시예들에 있어, 장치, 시스템, 또는 방법은, MHL WRITE_BURST와 같은 범용 기입 명령이 HID 및 균등 저속 애플리케이션들에 대해 충분한 대역폭 및 적절한 낮은 레이턴시(latency)를 제공하도록 보장하는 구현 가이드를 제공한다. MHL WRITE_BURST와 같은 명령이 데이터 송신 속도보다 더 느린 속도로 데이터를 릴레이하는데 사용될 수 있다. 그러나, 성능이 HID 및 균등 애플리케이션들에 대해 충분하지 않을 수 있다. 일부 실시예들에 있어, 매체 데이터 터널이, HID 및 다른 애플리케이션들에 대해 충분한 성능을 제공하기 위하여 WRITE_BURST 제한들을 감소시키면서 실제 사용 케이스들에 대해 충분한 성능을 제공하기 위해 사용된다.
일부 실시예들에 있어, 장치, 시스템, 또는 방법은, MHL과 같은 프로토콜이 다-목적 버스가 되게 한다. 설계적으로, MHL은 모바일 환경에서 오디오/비디오(A/V)를 지원하도록 의도된다. 일부 실시예들에 있어, 장치, 시스템, 또는 방법은, 휴먼 입력 및 주변기기-인에블링(enabling) 데이터 전송을 또한 지원하도록 성능을 확장한다. 일부 실시예들에 있어, MHL이 동시에 MHL 및 저속 USB 데이터를 전달하게 함으로써 성능이 확장된다. 그러나, 실시예들이 임의의 특정 프로토콜에 한정되지 않는다. 예를 들어, 범용 메커니즘이 추가적인 데이터 전송을 지원하는데 사용되기 때문에, 제 1 프로토콜 데이터가 임의의 저속 버스로부터의 데이터와 페어링(pair)될 수 있다.
MHL 명세는 구현 요건들 및 타임아웃(timeout)들을 통해 다른 프로토콜의 데이터 터널링을 제한한다. 명세는 GRT_WRT 메시지의 수신에 대해 10 ms의 타임아웃을 부과한다. MHL 디바이스가 허용된 타임아웃 기간의 대부분을 소모해야 하면, MHL 디바이스는 MHL의 WRITE_BURST 명령들을 사용하는 터널링을 100 이벤트/초 아래로 조절(throttle)할 것이다. MHL 명세는 또한 유사하게 대역폭을 감소시키는 WRITE_BURST 명령들에 대한 3-단계 조정(coordination) 프로세스를 정의한다. 미디어 데이터 터널은, WRITE_BURST 지원형 대역폭을 개선하면서 MHL 명세를 충족시키는 탐색 및 조정을 위한 추가적인 가이드라인들을 통해 MHL 명세 내의 제한들에 대한 상호운용가능 해법을 제공한다.
동일한 커넥터를 통해, USB 및 MHL과 같은 제 1 프로토콜 및 제 2 프로토콜 둘 모두의 모든 특징 세트를 제공하는 것이 가능하지 않거나 또는 실현가능 하지 않을 수 있다. MHL 명세는 USB 데이터를 지원하기 위한 임의 수단을 명시적으로 제공하지 않는다. 일부 실시예들에 있어, 장치, 시스템, 또는 방법은, 프로토콜들 각각이 통상적으로 포트의 대역폭의 많은 양 또는 전체 대역폭을 사용할 때, 복수의 프로토콜 데이터 유형들의 송신을 가능하게 한다. 예를 들어, MHL이 A/V 또는 USB 주변기기에 대한 단일 5-핀 커넥터의 사용을 허용하는 동안, 언제라도 A/V 및 USB 서비스들을 상호 배타적으로 제공하도록 포트 기능이 제한된다. MHL이 A/V 및 USB 포트들을 단일 5-핀 커넥터로 결합하는 동안, USB 및 MHL 명세들 각각이 서로의 독립적인 목적들을 위해 동일한 차동 쌍의 전체 대역폭을 할당하고 그에 따라 동시에 사용되는 경우 MHL 및 USB가 충돌할 것이기 때문에, 포트가 종래기술에 따라서는 MHL 및 USB 서비스들을 동시에 서비스할 수 없다.
일부 실시예들에 있어, 커넥터가, 예를 들어, PC에 대한 USB 가능형 링크를 지원하기 위한 대역폭이 부족한 경우에도, 커넥터가 A/V 및 저속 USB 주변기기들을 동시에 서비스할 수 있다. 일부 실시예들에 있어, USB 주변기기 데이터와 같은 제 2 프로토콜 주변기기 데이터가 제 1 프로토콜 호환 명령들을 사용하여 제 1 프로토콜 제어 버스를 포함하는 제어 채널을 통해 송신될 수 있다. 일 예에 있어, MHL 호환 명령들의 사용이 USB 데이터가 CBUS 상의 MHL 데이터와 간섭하지 않는다는 것을 보장한다. 또한, CBUS 상의 USB 데이터의 인코딩이 MHL 명세에 따라 A/V 데이터의 전달을 위한 차동 쌍을 남긴다. 1-와이어(wire) 제어 버스가 일반적으로 차동 쌍에 의해 이용가능한 대역폭의 일 부분을 제공하기 때문에, 장치 또는 시스템이 저속 USB 데이터와 같은 저속 데이터로 한정될 수 있으며, 여기에서 매체 데이터 터널이 모바일 디바이스와 컴퓨터 사이의 USB 가능형 링크를 지원하기에는 충분히 빠르지 않을 수 있다.
종래의 디바이스에 있어, 모바일 디바이스 상의 5-핀 USB 포트는 우선적으로 디바이스를 PC로 링크하는 것을 서비스하며, 이러한 모드에서 포트가 A/V 서비스들을 제공하도록 요구되지 않을 것이다. 예를 들어, MHL 명세는 USB 데이터 및 A/V 서비스들을 동시에 제공하도록 정의되지 않았다. 오히려, MHL은 일반적인 데이터 사용을 위해 MHL 명세에 정의된 WRITE_BURST 및 SET_INT 명령들을 포함하며, 이러한 명령들은, 예를 들어, 펌웨어 업그레이드를 제공하기 위해 또는 사유(proprietary) 데이터의 작은 청크(chunk)들을 가끔 릴레이하기 위해 사용될 수 있다.
그러나, 새로운 모바일 동작들의 출현과 함께 스마트 폰들이 데스크 탑 디스플레이를 구동하고 게임 컨트롤러, 커서(마우스, 터치패드, 또는 터치스크린), 또는 키보드 입력을 동시에 수신할 수 있는 모바일 컴퓨터들로서 고려되고 있다. 일부 실시예들에 있어, 모바일 디바이스가 독립적인 커넥터들 및 케이블들을 통해 이러한 동작들을 위한 A/V 및 USB 서비스들을 동시에 제공하기 위해 사용된다.
일부 실시예들에 있어, 매체 데이터 터널은, MHL 송신기와 수신기 사이의 다목적 버스로서 MHL의 사용을 허용하는 WRITE_BURST 및 SET_INT 명령들과 같은 명령들의 애플리케이션을 포함한다. 일부 실시예들에 있어, 매체 데이터 터널은 MHL의 링크 제어 버스(Link Control Bus) 링크 및 변환 계층(translation layer)들을 이용하는 2-계층 터널을 제공한다. 이러한 계층들의 사용을 통해, 매체 데이터 터널은 링크 및 변환 계층들에서 MHL의 흐름 제어로부터 이익을 얻는다. 유사하게, 매체 데이터 터널은 링크 및 변환 계층들에서 MHL의 오류 검출로부터 이익을 얻는다. 일부 실시예들에 있어, 매체 데이터 터널의 구현이 선택적으로 MHL 특징들을 확장할 수 있다. 일부 실시예들에 있어, 구현 흐름 제어, 오류 검출, 및 추가적인 재시도들이 터널링된 버스에 의해 생성되는 성능 또는 특징 예측들에 의존한다. 일부 실시예들에 있어, 최적화된 데이터가 MHL 프로토콜로 송신되기 전에 최적화가 USB 데이터에 적용된다. 본 명세서에서 사용되는 바와 같은, 최적화된 데이터는 최적화 또는 적응 프로세스를 겪은 데이터를 지칭하지만, 이러한 데이터가 최적 데이터 형태 또는 해법을 나타낸다는 것을 암시하지 않는다.
도 1은 데이터 터널을 사용하여 커넥터를 통해 복수의 프로토콜 데이터 엘러먼트들의 데이터 터널링 송신을 제공하는 장치 및 시스템의 일 실시예를 예시한다. 이러한 예시에 있어, 소스 디바이스(110)(모바일 디바이스 또는 다른 장치와 같은)가 싱크 디바이스(160)(텔레비전, 또는 다른 비디오 시스템, 컴퓨터, 게임 콘솔, MHL 동글, 또는 다른 장치)와 연결된다. 소스 디바이스(110) 및 싱크 디바이스(160)는 케이블(150)을 통해 연결될 수 있다. 케이블(150)은 데이터 송신을 위한 단방향 차동 쌍을 포함하는 데이터 채널 및 양방향(단일 라인) 제어 버스(CBUS)를 포함하는 제어 채널을 갖는 MHL 호환 케이블을 포함할 수 있다. 하나 이상의 휴먼 인터페이스 디바이스들이 싱크 디바이스(160)와 연결된다.
소스 디바이스(110)는 MHL과 호환되는 USB 소켓(receptacle)과 같은, 케이블(150)의 연결을 위한 커넥터(140)를 포함한다. 싱크 디바이스는 케이블의 연결을 위한 커넥터(190)를 포함할 수 있으며, 여기에서 커넥터는 대안적으로 USB 커넥터이거나 또는 디스플레이의 SOC 또는 일반적으로 동글(MHL 대 HDMI 동글과 같은)로서 지칭되는 변환 엘러먼트가 연결되는 다른 소켓(HDMI 소켓과 같은)일 수 있다.
일부 실시예들에 있어, 소스 디바이스(110) 및 싱크 디바이스(160) 둘 모두가 제 2 프로토콜에 대한 회로부(circuitry)를 포함하는 엘러먼트들을 포함하며, 여기에서 제 2 프로토콜이 USB일 수 있다. 이러한 예시에 있어, 소스 디바이스(110)가 USB 호스트로서 동작할 수 있는 제 2 프로토콜 엘러먼트(120)를 포함하며, 싱크 디바이스(160)는 USB 디바이스로서 동작할 수 있는 제 2 프로토콜 엘러먼트(170)를 포함한다.
일부 실시예들에 있어, 소스 디바이스(110) 및 싱크 디바이스(160)는 제 1 프로토콜로 전송되는 데이터와 적어도 부분적으로 동시에(동시에 또는 겹치는 시간 기간에) 제 2 프로토콜로 데이터를 전송하기 위해 매체 데이터 터널을 사용하며, 여기에서 제 2 프로토콜의 데이터가 제 1 프로토콜로 전송되기 전에 최적화 또는 적응이 제 2 프로토콜의 데이터에 적용된다. 일부 실시예들에 있어, 매체 데이터 터널은 USB 데이터와 같은 양방향 데이터의 전송을 위한 케이블(150)의 제어 버스의 사용을 포함한다. 일부 실시예들에 있어, 제 1 프로토콜의 식별 필드가 제어 버스를 통한 수신자(recipient)들을 식별하기 위하여 최적의 또는 최소의 데이터 양을 사용한다. 예를 들어, 제 1 프로토콜의 식별 필드는 2 바이트의 데이터와 동일한 크기를 갖는다.
일부 실시예들에 있어, 싱크 디바이스(160) 및 소스 디바이스(110)는 제 2 프로토콜의 데이터를 전송하기 위하여 제 1 프로토콜의 제어 버스 명령들을 사용하며, 이러한 제 2 프로토콜의 데이터는 제 2 프로토콜의 완전한 데이터 세트의 서브세트(subset)일 수 있다. 예를 들어, 제 2 프로토콜의 데이터의 서브세트는 휴먼 인터페이스 데이터를 포함할 수 있다. 이러한 예시에 있어, 하나 이상의 휴먼 인터페이스 디바이스들(155)이 싱크 디바이스(160)와 연결될 수 있다. 하나 이상의 휴먼 인터페이스 디바이스들(155)은 키보드, 마우스, 터치 패드 또는 터치 스크린, 게임 컨트롤러, 또는 이에 의해 사용자의 의도가 입력될 수 있는 다른 디바이스를 포함할 수 있다. 휴먼 인터페이스 디바이스에 대한 지원부가 소스 디바이스(110)에 대한 휴먼 인터페이스 지원부(130) 및 싱크 디바이스(160)에 대한 휴먼 인터페이스 지원부(180)로서 예시된다.
일부 실시예들에 있어, 제 2 프로토콜의 하나 이상의 메시지들이 제 1 프로토콜의 데이터 송신의 단일 버스트(burst)로 전달될 수 있다. 일부 실시예들에 있어, 각각의 데이터 버스트가 인터럽트(interrupt) 메시지들을 통해 조정된다. 일부 실시예들에 있어, 인터럽트 메시지들의 일부 부분이 단일 메시지로 집성(aggregate)되고 전송된다.
일부 실시예들에 있어, 미디어 데이터 터널은 MHL 범용 명령들을 포함할 수 있는 제 1 프로토콜의 특정 범용 명령들을 통한 제 2 프로토콜의 데이터의 송신을 포함한다. 이러한 예시에 있어, 소스 디바이스(110) 및 싱크 디바이스(160)는, 소스 디바이스의 범용 명령 지원부(125) 및 싱크 디바이스의 범용 명령 지원부(175)로서 도시된, 범용 명령 지원부를 포함하는 것으로 예시되며, 여기에서 이러한 지원부는 명령들 WRITE_BURST 및 SET_INT의 지원부를 포함하는 MHL에 대한 지원부를 포함할 수 있다.
일부 실시예들에 있어, 싱크 디바이스(160)는, 예를 들어, 키보드 키스트로크(keystroke)를 나타내는 데이터, 게임 컨트롤러 입력 또는 움직임, 또는 커서(마우스, 터치패드, 또는 터치 스크린) 움직임과 같은, 휴먼 인터페이스 디바이스로부터의 HID 명령 데이터를 수신할 수 있다. 일부 실시예들에 있어, 싱크 디바이스(160) 및 소스 디바이스(110)는 이러한 HID 데이터의 송신을 위해 하나 이상의 범용 명령들을 사용할 수 있으며, 여기에서 이러한 데이터의 송신은 소스 디바이스(110)와 싱크 디바이스(160) 사이에 케이블(150)에 의해 제공되는 양방향 제어 버스를 사용하여 달성될 수 있다. USB는 양방향이며, 디바이스가 USB 마이크로 AB 소켓과 같은 소켓을 사용할 때, USB 포트가 USB 호스트 또는 USB 디바이스와 유사하게 역할 할 수 있다. 이러한 예시에 있어, 매체 데이터 터널의 목적들을 위하여 소스 디바이스(110)가 주로 A/V 소스 디바이스 및 WRITE_BURST 수신기로서 주로 역할 할 수 있으며, 연결된 휴먼 인터페이스 디바이스들은 주로 HID 데이터의 송신을 위한 WRITE_BURST 발송자(sender)로서 역할 할 수 있지만, 실시예들이 이에 한정되지 않으며, 디바이스의 역할들이 역전될 수 있다.
도 2는 매체 데이터 터널의 사용없이, MHL WRITE_BURST 명령들과 같은 명령들을 사용하는 데이터의 송신을 위한 방법의 일 실시예를 예시한다. 이러한 예시에 있어, 모바일 디바이스와의 연결을 위한 크래들(cradle)과 같은 요청 디바이스(200)가 모바일 폰과 같은 응답 디바이스(205)와 연결된다. 일부 실시예들에 있어, 신규 HID 이벤트가 발생할 때, 요청 디바이스(200)는 모바일 폰과 같은 응답 디바이스(205)의 스크래치패드(scratchpad) 레지스터들(210)을 기입하기 위한 허가(permission)를 요청하기 위해 설정된 REQ_WRT 비트를 갖는 SET_INT 명령을 릴레이한다(212). 응답 디바이스(205)는 REQ_WRT 비트를 검출하고(214), GRT_WRT 비트를 포함하는 SET_INT 명령으로 기입 요청에 대한 허가를 요청 디바이스로 승인한다(216). 요청 디바이스(200)가 GRT_WRT 비트를 검출한다(218). 승인 비트가 설정된 경우(220), 요청 디바이스(200)에 의한 WRITE_BURST 명령의 개시(222) 및 DSCR_CHG 비트를 이용한 SET_INT 명령의 기입(224)이 존재한다. 응답 디바이스(205)는 DSCR_CHG = 1이라는 것을 검출하며(226), 응답 디바이스의 로컬 스크래치패드 레지스터를 판독하도록 동작한다(228).
도 3은 MHL WRITE_BURST 명령들을 사용하는 것과 같은 매체 데이터 터널을 사용하는 데이터의 송신을 위한 방법의 일 실시예를 예시한다. 이러한 예시에 있어, 모바일 디바이스와의 연결을 위한 크래들과 같은 요청 디바이스(300)가 다시 모바일 폰과 같은 응답 디바이스(305)와 연결된다. 일부 실시예들에 있어, 시스템이 준비되었을 때, 요청 디바이스(305)는 설정된 DSCTR_CHG 및 REQ_WRT 비트를 갖는 SET_INT 명령을 기입한다(310). 응답 디바이스(305)가 REQT_WRT 비트를 검출하며(315), GRT_WRT 비트를 갖는 SET_INT 명령으로 응답한다(320). 요청 디바이스(300)가 GRT_WRT 비트를 검출한다(325). 승인 비트가 설정된 경우, 발송자가 수신기 스크래치패드 레지스터에 대한 액세스를 획득하며, 신규 HID 이벤트를 기다릴 수 있다(335). 신규 HID 이벤트시, 요청 디바이스(300)에 의한 WRITE_BURST 명령의 개시(340) 및 기입 동작(345)이 존재하며, 이는 DSCR_WRT REQ_WRT를 기입하는 단계(310)로 복귀한다. 일부 실시예들에 있어, 응답 디바이스가 WRITE_BURST를 검출하며(350), 스크래치패드를 판독한다(355). 일부 실시예들에 있어, 응답 디바이스는, 응답 디바이스가 그 로컬 스크래치패드로부터 데이터를 검색하기 전에 설정된 DSCR_CHG 및 REQ_WRT 비트를 갖는 후속 SET_INT 명령을 기다린다.
일부 실시예들에 있어, CBUS 데이터 터널의 각각의 말단(end)에서, 달리 MHL 송신기 또는 수신기의 제어 및 모니터링을 담당하는 프로세싱 엘러먼트가 매체 데이터 터널 인코더 및 디코더 로직을 구현한다. 동작시, MHL 송신기 또는 수신기는 마이크로-컨트롤러 또는 시스템 온 칩(system on chip: SoC)과 같은 프로세싱 엘러먼트에 의해 서비스된다. 프로세싱 엘러먼트에 의해 실행되는 드라이버는 서비스 로직을 관리한다. MHL 명세에 따르면, MHL 송신기는 전화기, 태블릿, 또는 다른 모바일 디바이스와 같은 소스 장치 또는 시스템 내에 존재할 수 있다. MHL 수신기는 도킹 스테이션, 모니터, 또는 TV 디스플레이와 같은 싱크 장치 또는 시스템 내에 존재할 수 있다. MHL 수신기는 또한 MHL 대 HDMI 동글 내에 존재할 수도 있다. 일부 실시예들에 있어, MHL 송신기 또는 수신기는 이하에서 설명되는 브리징 프로세스의 일 부분과 같은, 매체 데이터 터널 인코딩 및 디코딩 지원을 제공하기 위하여 직접적으로 또는 추가적인 소프트웨어 계층을 통해 확장된다.
단계 1: 터널의 탐색 및 수립. 동작시, 제 1 단계에서, MHL 송신기 및 수신기가 MHL 명시(specified) 탐색을 통해 터널 링크 수립한다. MHL 송신기 및 수신기가 MHL 명시 탐색 시퀀스의 MHL의 데이터 교환 단계를 따름으로써 CBUS 데이터 터널을 수립한다. 데이터 교환의 부분으로서, 송신기 및 수신기는 디바이스 성능 레지스터들을 교환한다. 이러한 교환은, WRITE_STAT 명령의 송신을 통해 어써트된(asserted) DCAP_RDY 비트를 릴레이하는 각각의 측(side)에 의해 개시된다. 교환은 각각의 측이 SET_INT를 사용하여 선택적이고 독립적으로 DCAP_CHG 비트를 송신하는 것을 뒤따른다. 이에 응답하여, WRITE_STAT 및 SET_INT 수신자가 READ_DEVCAP 명령들의 시퀀스를 사용하여 SET_INT 발송자의 성능들을 검색한다. 수신된 데이터로부터, 각각의 측이 각 측의 MHL 피어(peer)의 SP_SUPPORT, SCRATCHPAD_SIZE 및 ADOPTER_ID를 식별한다. 일부 실시예들에 있어, SP_SUPPORT가 WRITE_BURST를 지원하기 위한 그것의 피어의 능력을 매체 데이터 터널 참가자에게 알려준다. SCRATCHPAD_SIZE는 매체 데이터 터널 참가자가 그것의 피어 내의 버퍼링 지원을 평가하게 한다. ADOPTER_ID는 모든 후속 WRITE_BURST 명령들에 대해 MDT 패킷 헤더로서 MDT 참가자에 의해 캐싱되고(cached) 재사용된다.
일부 실시예들에 있어, 매체 데이터 터널은 패킷 구조 및 서비스 성능과 관계된 매체 데이터 터널 성능들과 관련된 정보의 교환을 포함하도록 탐색을 확장한다. 매체 데이터 터널을 통한 페이로드(payload) 교환을 개시하기 전에, 매체 데이터 터널 송신기가 장래에 WRITE_BURST에서 사용되는 완전한 패킷 구조 또는 헤더 데이터를 식별한다. 일부 실시예들에 있어, 또한 표준 WRITE_BURST 메커니즘을 사용하여 송신기들의 조건들을 수락하고 임의의 제한들을 릴레이하는 것을 매체 데이터 터널 수신기가 담당한다. 대안적으로, 수신자가 송신기를 타임아웃시킴으로써 제안된 패킷 구조를 거절할 수 있다. 또한, 매체 데이터 터널 수신자들의 제한들에 응답하여, 매체 데이터 터널 송신기가 매체 데이터 터널 송신을 진행하거나 또는 그 제한들에 기초하여 매체 데이터 터널 수신자를 실격(disqualify)시키고 오류를 사용자에게 반환할 수도 있다.
일부 실시예들에 있어, 확장된 탐색 동안 사용되는 WRITE_BURST 명령이 매체 데이터 터널 인코딩의 부분으로서 이하에서 설명되는 엘러먼트들 없이 MHL 명세를 고수한다.
일부 실시예들에 있어, 결정론적(deterministic) 성능에 대한 필요성을 갖는 임의의 매체 데이터 터널 구현예에 대하여, 매체 데이터 터널 수신자는 확장된 탐색 동안 그것의 성능 제한을 릴레이한다. MHL의 WRITE_BURST 메커니즘의 성능이 결정론적이지만, 특정 요건들에 있어 비현실적일 수 있다. MHL 명세는 WRITE_BURST 수신자가 REQ_WRT의 수신으로부터 10 ms 이내에 GRT_WRT를 릴레이할 것을 요구한다. 명세는 또한 패킷이 이전 패킷으로부터 100 ms 이내에 전송될 것을 지시한다. 공동으로, 2개의 타임아웃들이 16-바이트 WRITE_BURST의 완료를 위해 2초의 허용량을 만든다. 이러한 제한들이 최악의 성능에 대한 가이던스(guidance)를 제공하며 MHL의 WRITE_BURST를 결정론적으로 만들지만, 허용된 지연들이 매체 데이터 터널의 탐색 동안 추가적인 자격을 지시하며, 데이터 레이트를 대부분의 애플리케이션들 아래로 감소시킨다.
이하에서 정의되는 바와 같은, mdt_burst_t 패킷 구조를 사용하여 HID 커서, 게임 컨트롤러, 및 키보드 이벤트를 릴레이하는데 사용되는 일 구현예에 있어, 송신기는 선택된 데이터 포맷을 수신자에게 알린다. 일부 실시예들에 있어, MHL 명세가 DCAP_RDY 또는 DCAP_CHG의 적시의(timely) 릴레이를 지시하지 않기 때문에, 적시의 탐색을 위하여 모든 매체 데이터 터널 참가자들이 PATH_EN 전송으로부터 10초 이내에 WRITE_STATE 명령을 사용하여 DCAP_RDY를 릴레이한다. 이에 더하여, 매체 데이터 터널 참가자들이 PATH_EN 전송으로부터 늦어도 20초 이내에 또는 MHL 명세에 의해 지시된 어떤 더 짧은 구간 내에 그것의 피어로부터 디바이스 성능 레지스터 정보를 검색한다. 이러한 교환 이후에 그리고 HID 데이터의 송신 이전에, 매체 데이터 터널 송신기는 'MDTREQxy_FULL'의 13-바이트 페이로드를 갖는 WRITE_BURST를 전송한다. 이러한 스트링(string)의 x 및 y 엘러먼트들이 '01'의 2-바이트 아스키(ASCII) 어레이와 동일할 때, 스트링은 토큰(token)을 나타낸다. 이러한 토큰은, 이하에서 정의되는 바와 같이, WRITE_BURST 데이터가 mdt-burst_01_t 구조를 고수할 것임을 매체 데이터 터널 수신기에 알린다.
매체 데이터 터널 수신자가 'MDTREQxy_FULL'에 의해 식별되는 패킷들을 수신할 준비가 되는 경우, 수신자는 'MDTACK_abcd'를 포함하는 WRITE_BURST로 응답한다. 'MDTACK_' 캐릭터들은 토큰으로서 역할한다. 이러한 토큰은 HID 데이터의 수신을 위한 준비상태(readiness)를 시그널링(signal)한다. 'abcd' 캐릭터들은 플레이스홀더(placeholder)들로서 역할한다. 플레이스홀더들은 16 진수로 4개의 니블(nibble)들을 나타내는 아스키 캐릭터들을 포함한다. 이러한 4개의 캐릭터들은 수신자가 이벤트를 수신하고: REQ_WRT에 응답하며, DSCR_CHG 인터럽트를 처리하고, 및 그것의 스크래치패드를 판독하는데 필요한 마이크로 초 단위의 최대 시간을 반영한다. 그러나, 수신자가 'MDTREQxy_FULL'에 의해 식별되는 패킷들을 서비스할 수 없는 경우, 수신자는, 3회의 재시도를 시도하기 위한 매체 데이터 터널 송신기에 대한 최대 시간보다 더 많은 밀리초인, 40 밀리초 동안 매체 데이터 터널로의 WRITE_BURST 송신을 막음으로써 발송자가 타임아웃되게 한다.
일부 실시예들에 있어, HID 애플리케이션들에 대하여, 매체 데이터 터널 수신기가 10 ms와 같은 시간 기간 내에 수신된 WRITE_BURST를 처리하도록 요구될 수 있다. 최소한, USB 가능형 HID 디바이스들은 USB 명세의 저속 기준을 고수한다. 이러한 기준에 따르면, 2개의 이벤트 보고들 사이의 최소 간격은 10 밀리초 이상이다. 매체 데이터 터널에 대하여 가장 빠른 USB 저속 HID 디바이스들을 따라가기 위해, 매체 데이터 터널 수신자는 'MDTACK_2710' 또는 'MDTACK_abcd'로 'MDTREQxy_FULL'에 응답하며, 여기에서 abcd는 0과 0x2710(10,000 밀리초) 사이의 16진수 값을 반영하는 아스키 캐릭터들의 조합이다. 매체 데이터 터널 송신기가 예측된 페이로드를 갖는 WRITE_BURST를 수신하지 않는 경우에 있어, 매체 데이터 터널 송신기는 사용자에게 이를 통지하고 균등한 매체 데이터 터널 서비스에 대한 장래의 요청들을 거절할 수 있다.
도 4a 및 도 4b는 매체 데이터 터널을 사용하는 통신들을 위한 메시지 구조들의 실시예들을 예시한다. 이러한 예시에 있어, C 언어로 제공된 소프트웨어가, 커서 이벤트들, 게임 컨트롤러 이벤트들 및 키보드 이벤트들을 포함하는 HID 이벤트들에 대한 패킷 구조들을 예시한다.
도 5a, 도 5b, 도 5c, 도 5d, 도 5e, 도 5f, 및 도 5g는 매체 데이터 터널을 포함하는 장치 또는 시스템의 실시예들과 함께 사용되는 데이터 패킷들을 예시한다. 이러한 예시에 있어, 테이블들이 매체 데이터 터널 데이터 패킷의 레지스터-포맷형 도면을 제공한다. 일부 실시예들에 있어, 데이터 패킷은 키보드들, 마우스들, 게임 컨트롤러들, 및 다른 커서 구동 디바이스들에 대한 MDT 이벤트들을 포함할 수 있다.
다음에 대한 포맷이 도 5a 내지 도 5g에서 예시된다.
도 5a는 MDT BURST 패킷에 대한 포맷(505)을 예시한다.
도 5b는 일련의 이어지는 생략된(truncated) 0들을 가진 키보드에 대한 MDT_EVENT에 대한 포맷(510)을 예시한다.
도 5c는 제 2 이벤트를 갖는 WRITE_BURST로 패키징되거나 또는 3개를 초과하는 키 코드들을 갖는 키보드들에 대한 MDT_EVENT에 대한 포맷(515)을 예시한다.
도 5d는 부트 프로토콜을 고수하거나 또는 4-비트 HID 이벤트를 지원하고 상대 좌표들을 사용하는 마우스들에 대한 MDT_EVENT에 대한 포맷(520)을 예시한다.
도 5e는 제 2 이벤트를 갖는 WRITE_BURST로 패키징(package)되거나 또는 제조사 명시 기능을 요구하는 마우스들에 대한 MDT_EVENT에 대한 포맷(555)을 예시한다.
도 5f는 게임 컨트롤러들에 대한 MDT_EVENT에 대한 포맷(560)을 예시한다.
도 5g는 상대 좌표들 및 멀티-터치를 지원하는 다른 커서 구동 디바이스들에 대한 MDT_EVENT에 대한 포맷(565)을 예시한다.
일부 실시예들에 있어, 매체 데이터 터널 송신기는 또한 송신기의 장래의 WRITE_BURST들이 오로지 단일 커서 구동 디바이스로부터의 이벤트들로 또는 오로지 키보드 이벤트들로 한정된다는 것을 시그널링하기 위해 'MDTREQxy_FULL' 대신 'MDTREQxy_CURSOR' 또는 'MDTREQxy_KEYS'를 전송할 수 있다. 매체 데이터 터널 송신기가 WRITE_BURST로 'MDTREQxy_CURSOR'를 전송하는 경우, 매체 데이터 터널 수신자는 mdt_event 컨텐츠를 갖는 WRITE_BURST 페이로드들이 mdt_cursor_event_t 구조로 한정된다는 것을 예측할 수 있다. 매체 데이터 터널 송신기가 WRITE_BURST로 'MDTREQxy_KEYS'를 전송하는 경우, 매체 데이터 터널 수신자는 mdt_event 컨텐츠를 갖는 WRITE_BURST 페이로드들이 mdt_keyboard_event_t 구조로 한정된다는 것을 예측할 수 있다.
일부 실시예들에 있어, 게임 컨트롤러들을 지원하기 위하여, MDT 송신기가 'MDTREQxy_FULL'을 전송해야만 할 것이다. 일반적인 게임 컨트롤러는 다양한 물리적 인터페이스들을 포함한다: 방향 패드, 2개의 아날로그 스틱들, 및 4 이상의 버튼들. 이러한 물리적 입력들과 MDT 이벤트들 사이의 매핑이 컨트롤러 특정이 되기 쉬우며, 컨트롤러들은 일반적으로 게임 컨트롤러를 마우스들 및 키보드 이벤트들에 매핑함으로써 사용자 입력을 릴레이한다. 방향 패드는 키보드로부터 비롯된 이벤트들인 것처럼 상향, 하향, 좌측, 및 우측 키, MDT 키보드 이벤트들을 생성한다.
게임 컨트롤러 구현예에 있어, 0으로 설정된 isMouseNot을 갖는 커서 이벤트들이 아날로그 스틱들로부터의 데이터를 전달하며, mdt_event_header_t 내부의 isPortB 필드를 사용하는 것이 우측과 좌측 스틱을 구별하는데 사용된다. 마지막으로, 버튼들이 커서 이벤트들 및 키들 내의 버튼 필드 내로 인코딩되지만, 버튼 토글(toggle) 마다 하나의 메커니즘을 사용해 전송될 뿐이다. 또한, 모든 버튼 토글들이 USB HUT 1.12 및 Linux input.h와 관련하여 키 토글러들로 매핑될 수 있다. 구체적으로, Linux의 input.h는, 0x100이 BTN_0 이벤트를 릴레이하고 0x109가 BTN_9 이벤트를 릴레이하도록, 0x100과 0x109 사이의 범위의 키 코드들을 갖는 10개의 버튼들을 제공한다. 병렬로, 첫번째 3개의 버튼들이 0으로 설정된 isPortB와 함께 전송되는 커서 이벤트들 내의 3개의 비트들에 매핑되며, 두번째 3개의 버튼들이 1로 설정된 isPortB와 함께 전송되는 커서 이벤트들 내의 3개의 비트들에 매핑된다. 일부 실시예들에 있어, 송신기 및 수신기에서의 병렬 매핑이 버튼 이벤트들과 방향 패드 또는 아날로그 스틱으로부터의 이벤트를 페어링함에 있어 송신기의 유연성을 허용하며, 수신기가 이벤트를 적절히 디코딩하는 것을 보장하고, 시스템에 대한 감소된 평균 이벤트 레이턴시를 가능하게 할 수 있다.
US 시스템들이 전형적으로 물리적 HID 디바이스들을 구별하지 않으며 특정 유형의 모든 이벤트들을 동일한 큐(queue)로 집성하기 때문에, 매체 데이터 터널은, 디바이스 데이터가 게임 컨트롤러 패킷 구조를 사용하여 릴레이되지 않는 한, HID 디바이스 식별을 보장하지 않는다. 단일 주변기기가 동일한 isPortB 필드 값에 할당된 복수의 논리적 마우스 인터페이스들을 포함하는 경우에 있어, 매체 데이터 터널 수신기는 모든 이벤트들을 isPortB 필드 값에 의해 식별되는 소스에 의한 것으로 볼 것이다. 애플리케이션이 소스를 구별해야만 할 필요가 있는 경우, 제안된 물리적 주변기기 내의 각각의 논리적 마우스 디바이스가 isKeyboard = 0, isNotMouse = 1, isGAME = 1, 및 디바이스 ID 필드 내의 고유 인터페이스 식별 ID를 갖는 게임 컨트롤러 패킷 구조를 사용하여 HID 이벤트들을 전송해야 할 것이다. 키보드 유형의 디바이스들 및 ID 정보를 릴레이해야 할 필요가 있는 다른 예기치 못한 주변기기들에 대하여, 매체 데이터 터널은 정의 확장을 위한 예비(reserved: RSVD) 필드들을 제공한다. 매체 데이터 터널을 통한 HID 데이터의 송신을 위해 본 명세서에서 설명되는 탐색 메커니즘이 HID 데이터에 한정되지 않는다. 이러한 메커니즘은 매체 데이터 터널을 통한 RS232, RS485, 및 다른 저 대역폭 데이터의 교환을 위한 예측들을 수립하는데 사용될 수 있다. 일 예로서, 매체 데이터 터널이 RS232 데이터를 전달할 때, 초기 탐색 페이즈가 링크 연결 속성들을 식별하기 위해 사용될 수 있다: 보 레이트(baud rate), 시작 비트의 사용, 데이터 비트들의 수, 패러티(parity) 비트의 사용, 및 중지 비트들의 수.
단계 2: 데이터의 인코딩 및 디코딩. 일부 실시예들에 있어, 매체 데이터 터널 피어들이 매체 데이터 터널을 통한 송신을 위해 데이터를 인코딩하고 디코딩한다. 매체 데이터 터널 송신기는 데이터를 스크래치패드에 기입하기 전에 데이터를 인코딩한다. 인코더는 선택적인 체크섬 서픽스(checksum suffix)를 부가하고, 헤더 프리픽스(header prefix)를 부가하며, 데이터를 14-바이트 패킷들로 분해한다. 수신 말단에서, 매체 데이터 터널 수신자가 데이터가 스크래치패드로부터 판독된 후 데이터를 디코딩한다.
MHL 명세는 링크 및 변환 계층들에서 WRITE_BURST 명령을 사용하는 송신을 기본 오류 검출(basic error detection)을 갖는 WRITE_BURST 명령 당 16 데이터 바이트로 제한한다. 16 데이터 바이트의 최대 제한 외에, 각각의 WRITE_BURST 명령이 MHL 명세에 의해 수신자의 ADOPTER_ID로 개시되는 최대 2 데이터 바이트를 포함하도록 요구된다. 그러나, WRITE_BURST의 실제 길이가 명령으로 인코딩되지 않거나 또는 데이터 바이트로 전달되지 않는다. MHL 명세와 관련하여, 수신자가 마지막 데이터 바이트 다음의 EOF(End Of File) 제어 패킷을 수신할 때까지, 수신자는 WRITE_BURST 수신 동안 바이트 카운터를 증분한다. 수신자가 WRITE_BURST 명령 패킷 및 오프셋 데이터 패킷을 수신한 후, 수신자가 수신자의 카운터를 시작한다. 일단 시작되면, 카운터는 WRITE_BURST 데이터 바이트를 전달하는 각각의 MHL 데이터 패킷을 추적한다. 패킷 유형과 무관하게, CBUS를 가로질러 전송되는 매 패킷이 2개의 헤더 비트들, 하나의 제어 비트, 및 하나의 패러티 비트를 통해 기본 링크 계층 오류 검출을 제공한다. 패킷이 예기치 못한 패러티, 제어, 또는 헤더 데이터를 갖고 수신되는 경우, 패킷 수신자는 그것의 MHL 링크 계층 로직의 부분으로서 NACK로 응답한다. MHL 명세는 또한 WRITE_BURST 명령에 대해 변환 계층에서의 오류 검출을 제공한다. 수신자는, 다음의 수신자의 변환 계층 타당성 검사(validation)들의 결과를 릴레이하기 위해 ACK 또는 ABORT 제어 패킷으로 WRITE_BURST에 응답할 수 있다: 오프셋 데이터 패킷 내의 오프셋 값의 평가, 수신된 데이터 바이트들의 카운트, 및 2-바이트 ADOPTER_ID의 검증.
일부 실시예들에 있어, MHL 명세가 기본 오류 검출을 제공하기 때문에, 매체 데이터 터널 특정 오류 검출은 선택적으로 단일 바이트의 체크섬 서픽스의 사용을 통할 수 있다. 개선된 오류 검출 또는 오류 정정을 요구하는 애플리케이션들에 대하여, 인코더는 WRITE_BURST 데이터 바이트들에 대한 적절한 바이트 체크섬을 계산할 수 있다. 일부 실시예들에 있어, 체크섬 알고리즘은 패러티, 모듈식 합계(modular sum), CRC(cyclic redundancy check), 또는 매체 데이터 터널 인코더 및 매체 데이터 터널 디코더의 부분으로서 터널의 양 측들 둘 다에서 사용되는 임의의 알고리즘일 수 있다. 일부 실시예들에 있어, 선택적인 체크섬을 통해 캐치된 오류들의 오류 처리(handling)가 애플리케이션 특정일 수 있다. 예를 들어, 오류 처리는, 미리 정의된 수신확인(acknowledgement) 로직에 의해 인에이블(enable)되는 재시도 메커니즘인, 체크섬에 의해 허용된 정정 또는 추가적인 소비없이 잘못된 데이터를 단순히 드롭(drop)함으로써 허용된 정정으로 구성될 수 있다. 구현예와 무관하게, 매체 데이터 터널 송신기는 매체 데이터 터널 탐색 동안 패킷 체크섬 서픽스 및 체크섬 방법의 포함물(inclusion)을 전달한다.
일부 실시예들에 있어, 매체 데이터 터널을 통해 HID 데이터를 전송하기 위한 특정 구현에 대해, 체크섬이 사용되지 않는다. 사용자 입력의 HID 보고(report)들이 스트림으로서 보여질 수 있다. 드문 오류들의 경우에 있어, 사용자는 용이하게 입력을 변경할 수 있다. 마우스 보고가 매체 데이터 터널 수신기에 도달하지 않는 이벤트에 있어, 사용자는 의도된 정보를 릴레이하기 위해 추가적인 마우스 움직임들을 만들 개연성이 있다. 유사하게, 사용자는 시스템에 의해 인식되지 않은 키 누름을 반복하거나 또는 이전 엔트리를 먼저 삭제함으로써 오해석된 키 누름을 정정하고 정정을 전송할 개연성이 있다.
일부 구현예들에 있어, 매체 데이터 링크 인코더가 2 필수 바이트로 구성된 헤더와 같은 헤더를 부가하도록 요구된다. MHL 명세는 WRITE_BURST에서 오프셋 데이터 패킷 다음의 첫번째 2 바이트가 수신자의 ADOPTER_ID를 전달할 것을 요구한다. ADOPTER_ID가 MHL, LLC.(MHL 명세의 이용, 라이센싱, 및 프로모션, 및 MHL 컨소시움의 관리를 담당하는 엔터티)에 의해 할당되기 때문에, WRITE_BURST의 첫번째 2 바이트에서 다양한 값들을 사용하는 것이 불가능할 수 있다. MHL 요건들을 충족시키기 위하여, 이상에서 설명된 바와 같이, 발송자는 MHL 탐색 동안 ADOPTER_ID를 검색하고, 그 다음 스크래치패드의 처음 2 바이트들 초기화하기 위해 이러한 값을 사용한다.
일부 실시예들에 있어, 레이턴시를 감소시키기 위하여, 매체 데이터 터널 발송자가 일련의 WRITE_BURST들에 대해 스크래치패드의 ADOPTER_ID 바이트들을 오직 한번만 설정한다. 후속 송신들에 있어, 스크래치패드가 유입(incoming) WRITE_BURST에 의해 겹쳐 기입되지 않았다면, 매체 데이터 터널 발송자는 스크래치패드를 기입하기 위해 2개 적은 바이트들을 가질 것이다.
처음 2 바이트 다음에, 디코더가 동일한 헤더 정의를 포함하는 한, 헤더가 선택적으로 매체 데이터 터널 구현예의 고유한 방식으로 확장될 수 있다. MHL 사용자가, 펌웨어 업그레이드와 같은 다른 목적들뿐만 아니라 매체 데이터 터널을 위해 WRITE_BURST 명령들을 사용하고자 하는 경우, 헤더는 WRITE_BURST를 매체 데이터 터널과 연관시키기 위한 부가적인 비트를 포함할 수 있다.
이상에서 정의된 바와 같이, mdt_burst_t를 사용하여 HID 마우스 및 키보드 이벤트를 릴레이하기 위해 사용되는 구현예에 있어, 헤더는 4-비트 구조인 mdt_event_header_t이다. 일부 실시예들에 있어, HID 및 다른 정의되지 않은 매체 데이터 터널 애플리케이션들에 대해 WRITE_BURST의 멀티플렉싱을 허용하기 위하여, 헤더 내의 최상위 비트(most significant bit: MSb)가 HID 사용을 나타낸다. MSb 다음의 세개의 비트들이 페이로드의 데이터의 자격을 검증한다(qualify). isPortB 비트가 이벤트의 물리적 발원지(origin)를 식별하며, mdt_event_header_t는 고유 포트에 의해 식별된 최대 2 개의 HID 디바이스들을 지원한다. isKeyboard 비트는 mdt_event union의 컨텐츠를 식별한다; isKeyboard가 '1'이면 mdt_event union은 mdt_keyboard_event_t를 지칭한다. 그러나, isKeyboard가 '0'이면 mdt_event union은 mdt_mouse_event_t를 지칭한다. isNotLast 비트는 멀티-터치 및 더 큰 이벤트 레이트에 대한 지원을 지시하는 다른 애플리케이션들에 대해 단일 WRITE_BURST 내의 복수의 HID 이벤트들의 멀티플렉싱을 가능하게 하는 비트이다. isNotLast가 0으로 설정될 때, 비트는 또한 변환 또는 최적화를 통해 적응된 레이턴시 최적화 키보드 및 마우스 패킷 구조들을 식별한다. isNotLast가 1로 설정될 때, 수신기는 WRITE_BURST 내의 제 2 이벤트의 존재에 대해 스크래치패드 오프셋 9 바이트를 조사할 것이다. 송신기가 단일 WRITE_BURST 내에 2개의 이벤트들을 집성할 것을 의도하지 않지만 그것의 1차(primary) 이벤트에 대해 적응된 패킷을 사용하는 대신 완전한 7 바이트 페이로드를 필요로 하는 경우에 있어, 송신기는 MDT 수신기가 스크래치패드 바이트들 9 내지 16을 무시하는 것을 보장하기 위해 스크래치패드 오프셋 9 내지 0에서 MSb를 설정한다.
MHL 명세가 WRITE_BURST를 사용하는 송신을 16 데이터 바이트로 제한하지만, 필수 ADOPTER_ID가 허용된 페이로드를 감소시킨다. 송신기에서의 임의의 WRITE_BURST를 위한 인코더는 데이터를 전송되는 14 또는 그보다 적은 데이터 바이트 페이로드들로 분해한다.
일부 실시예들에 있어, ADOPTER_ID 오버헤드(overhead)에 더하여, 매체 데이터 터널 송신기 내의 인코더가 매체 데이터 터널 헤더를 고려하도록 요구된다. 추가적인 헤더 비트들 또는 바이트들이 가능한 WRITE_BURST 페이로드의 크기를 추가적으로 감소시킨다. 복수의 WRITE_BURST들을 사용하여 전달되는 패킷들을 지원하는 것이 가능하지만, 느린 데이터 레이트가 매체 데이터 터널 구현예에서 이러한 특징을 하찮게 만든다.
매체 데이터 터널을 통한 HID의 송신을 위하여, 4-비트 헤더가 매 패킷의 제 1 니블을 오버로드(overload)한다. 이상의 구조에서 보여진 바와 같이, 마우스 및 키보드 이벤트들이 4-비트 헤더를 허용하도록 수정된다.
일부 구현예들에 있어, 매체 데이터 터널을 통한 HID의 송신에 더하여, 다음의 패킷 구조들이 사용될 수 있다. 일 예로서, _구현_특정 유니온(_implementation_specific union)은, 확장된 헤더 및 데이터로 구성된 데이터에 대해, 체크섬 바이트를 갖는 데이터에 대해, 또는 확장된 헤더 및 체크섬을 갖는 데이터에 대해, WRITE_BURST 내에 남아있는 모든 14 데이터 바이트를 사용한다. 확장된 헤더는 매체 데이터 터널 구현예의 추가적인 유연성을 허용한다. 도 6은 매체 데이터 터널 구현예에서의 확장된 헤더에 대한 패킷 구조의 일 실시예를 예시한다. 도면은 확장된 헤더의 3가지 예들을 도시한다:
_ exheader _ with _ cdb는 isHID mdt_event_header_t와 같이, 매체 데이터 터널 준비와 같은 WRITE_BURST 목적을 식별하는 필드를 갖는 확장된 헤더를 도시한다.
_ exheader _ with _ cdb _ chksm은 체크섬의 선택적 사용을 허용한다.
_ exheader _ with _ cdb _ chksm _ len은 이상의 _exheader_with_cdb_chksm을 4-비트 len 길이 필드를 사용하여 WRITE_BURST 내에 패키징된 바이트들의 수를 또한 전달하도록 확장한 확장 헤더를 도시한다.
일부 실시예들에 있어, 매체 데이터 터널은 송신 전에 데이터를 버퍼링하기 위해 그리고 소비 전에 수신된 데이터를 유지하기 위해 MHL 명시 스크래치패드 레지스터들에 의존한다. MHL 명세는 싱크, 소스, 또는 동글 내의 선택적인 스크래치패드를 정의한다. 스크래치패드는 16개 이상의 1-바이트 레지스터들의 세트이다. 이러한 레지스터들은 오프셋 0x40에서 액세스가 가능하다. 이러한 세트의 처음 2 바이트들은 디바이스에 대한 ADOPTER_ID를 포함하도록 요구된다. 송신 전에, MHL 송신기 또는 수신기의 사용자가 스크래치패드에 데이터를 기입한다. 데이터를 수신하는 경우에 있어, MHL 송신기 또는 수신기는 이후의 검색을 위해 사용자에 대한 이러한 영역으로 데이터를 보낸다.
일부 실시예들에 있어, 스크래치패드 액세스와 관련하여, 매체 데이터 터널은 데이터 전송을 촉진하기 위해 추가적인 가이던스를 제공하면서 MHL 명세에 의존한다. 일부 실시예들에 있어, MHL 송신기 또는 수신기가 사용자가 전송될 스크래치패드 바이트들의 수를 명시할 것을 요구하는 경우, 매체 데이터 터널 발송자는 그 수가 변경될 때에만 전송될 스크래치패드 바이트들의 수를 나타낼 수 있다. 매체 데이터 터널 세션이 7-바이트 구조들을 갖는 복수의 WRITE_BURST들로 구성되는 경우에 있어, 매체 데이터 터널 송신기는 추가적으로 레이턴시를 감소시키기 위해 버스트 길이를 오직 한번만 설정해야 한다. 초기화 동안 및 패킷의 길이가 알려지기 전에, 매체 데이터 터널 송신기는 길이를 페이로드 구조의 최소 버전에 대한 바이트의 총 수로 설정해야만 한다; mdt_burst_01_t에 대하여, 이하에서 설명되는 바와 같이, 값은 2-바이트 ADOPTER_ID 및 생략된(truncated) 0들을 가진 4-바이트 mdt_mouse_event_t 또는 4-바이트 mdt_keyboard_event_t를 허용하기 위해 6일 것이다.
일부 실시예들에 있어, 다른 측 상에서, 매체 데이터 터널 수신자가 송신기의 자격을 검증하기 위해 스크래치패드의 처음 2 바이트들을 판독하지 않는다. 매체 데이터 채널이 확장된 탐색 동안 핸드쉐이크(handshake)를 요구하고 각각의 패킷이 그 헤더 내에 isHID 식별 비트를 갖기 때문에, ADOPTER_ID를 사용하는 후속 자격 검증이 중복이며 회피될 수 있다. 레이턴시를 추가로 감소시키기 위하여, 매체 데이터 터널 수신자는 수신된 WRITE_BURST 데이터의 헤더에 액세스하기 위해 페이로드 구조의 최소 버전에 대한 바이트들의 총 수를 검색한다. 헤더가 WRITE_BURST 컨텐츠가 제 1 액세스의 길이를 초과한다고 나타내는 경우, 매체 데이터 터널 수신자는 독립적인 제 2 시도에서 스크래치패드로부터 나머지 바이트들을 판독할 수 있다.
일부 실시예들에 있어, HID 데이터를 릴레이하는데 사용되는 매체 데이터 터널 구현예에 대하여, 매체 데이터 터널 송신기는 mdt_burst_01_t의 인스턴스(instance)들을 매체 데이터 터널 수신자로 릴레이한다. 확장된 탐색 다음에 그리고 제 1 HID 이벤트 전에, 전송된 스크래치패드 바이트들의 수를 6으로 설정하며, 그 구조는 마우스 이벤트들을 릴레이할 때의 그것의 최소 크기이다. 송신기의 제 1 송신 전에, 매체 데이터 터널 송신기가 스크래치패드의 첫번째 2 바이트들을 매체 데이터 터널 수신자에 대한 그것의 ADOPTER_ID로 설정한다. 매체 데이터 터널 송신기가 전송될 HID 이벤트 데이터를 가지면, 송신기는 전송될 스크래치패드 바이트들의 수를 갱신하고 이벤트 데이터로 스크래치패드의 바이트들 [2:15]를 채워야(populate)할 필요가 있는지를 검토한다.
수신 말단에서, 매체 데이터 터널 수신기가 수신기의 스크래치패드의 바이트들 0 및 1을 무시할 것이다. 오히려, 매체 데이터 터널 수신자는, 적어도 수신자가 mdt_burst_01_t 내의 4-바이트 마우스 이벤트를 수신할 것이라는 가정 하에서 스크래치패드 바이트들 [2:5]를 판독함으로써 이벤트들을 소비할 것이다. 판독 isKeyboard 비트 필드가 1로 어써트된 경우, 매체 데이터 터널 송신기는 7-바이트 키보드 패킷의 나머지 3 바이트들을 검색하기 위하여 스크래치패드 바이트들 [6:8]을 액세스하기 위해 제 2 판독을 수행할 것이다. 매체 데이터 터널 송신기는 또한 isCoordinateWordLength가 mdt_mouse_event_t 내에 설정된 경우 제 2 판독을 수행할 것이다. isCoordinateWordLength가 설정된 2번째 경우에 대하여, 수신자는 스크래치패드 데이터를 검색할 때 7-바이트 판독들로 스위치하며, 이는 WRITE_BURST 송신기가 절대 좌표 매핑이 가능한 워드 길이 좌표들을 전송하기 때문이다.
일부 실시예들에 있어, 데이터의 양 및 위치를 제어하는 것에 더하여, 인코더는 mdt_mouse_event_t 및 mdt_keyboard_event_t의 인스턴스들을 생성함으로써 매체 데이터 터널 송신에 대한 HID 컨텐츠를 최적화한다. 이러한 구조들은 HID 디바이스들에 의해 생성되는 데이터 페이로드들을 매칭하기 위해 DCDHID(Device Class Definition for Human Interface Devices) 명세 버전 1.11을 고수할 수 있다. 매체 데이터 터널에 대한 최적화 또는 적응으로서, mdt_mouse_event_t는 바이트 0 내의 비트들 4 내지 7을 HID 특정 비트들로부터 매체 데이터 터널 HID 헤더까지 재할당한다. 또한, 바이트 3이 기존의 실질적인 표준 마우스 드라이버 구현예들에 기초하여 스크롤 휠을 전달하는 것으로 가정된다. 또한, isCoordinateWordLength가 더 낮은 레이턴시 통신에 대한 트레이드 오프(trade off)로서 고-해상도 디스플레이들 상의 절대 좌표 추적을 지원하도록 설정된 때, mdt_mouse_event_t는 워드 길이 좌표들을 제공한다.
일부 실시예들에 있어, 키보드 이벤트들이 또한 최적화된다. 매체 데이터 터널에 대한 최적화 또는 적응으로서, mdt_keyboard_event_t는 DCDHID에 정의된 키보드 HID의 바이트 0 내의 비트들 4 내지 7을 RIGHT CTRL, RIGHT SHIFT, RIGHT ALT, & RIGHT GUI로부터 매체 데이터 터널 HID 헤더 비트들까지 재할당한다. 이러한 비트들을 드롭하기 전에, 매체 데이터 터널 송신기의 매체 데이터 터널 인코더는 바이트 0의 비트들 4 내지 7과 0 내지 3 간의 OR 연산을 수행한다. 이러한 OR 연산은 바이트 0에 달리 저장된 LEFT 및 RIGHT 키들 둘 모두의 어써션을 전달하기 위해 LEFT CTRL, LEFT SHIFT, LEFT ALT, & LEFT GUI 비트들을 사용할 것이다. 이에 더하여, mdt_keyboard_event는 DCDHID 명세에 의해 정의된 부트 프로토콜(Boot Protocol) 1 패킷의 OEM 사용을 위해 의도된 바이트 1을 드롭한다. mdt_keyboard_event에 대해 8-바이트 길이를 강제하기 위해 이러한 바이트를 제 위치에 남겨두는 대신, 매체 데이터 터널 송신기 내의 인코더가 7-바이트 mdt_keyboard_event를 초기화할 때 예비 플레이스홀더를 드롭하기 위해 바이트들 [2:7]을 1 바이트만큼 쉬프트한다. 추가적인 최적화로서 그리고 부트 프로토콜 1의 공통 사용에 기초하여, 매체 데이터 터널 송신기 내의 인코더가 mdt_keyboard_event의 최상위 바이트들에 의해 유지되는 일련의 0들 중 하나의 0을 제외한 모두를 드롭할 수 있다.
대부분의 키보드 입력 보고들에 대하여, 키보드 갱신은 단일 키의 변화를 반영한다. 이러한 변화가 부트 프로토콜 1의 바이트 2 및 mdt_keyboard_event의 바이트 1에 캡쳐된다. 이러한 경우들에 있어, 키보드가 키보드 이벤트의 나머지 바이트들을 0들로 채운다. 레이턴시를 감소시키기 위하여, 인코더는 마지막의 3개의 이어지는 0들을 드롭할 수 있다. 추가로, 매체 데이터 터널 송신기는 매체 데이터 터널 수신기로부터의 이러한 액션을 예측하는 것이 아니라 키보드 LED 상태들을 관리한다. 휴먼 인터페이스 디바이스들(HID)에 대한 디바이스 클래스 정의 명세 1.11은 키보드의 LED 상태가 키보드가 아니라 호스트에 의해 유지되어야 한다는 것을 설명하며, 키보드 호스트가 LED 상태를 제어하는 것을 허용한다. HID에 대한 매체 데이터 터널 구현예에 있어 이러한 기능을 호스트 지원 매체 데이터 터널 수신기 내부에 구현하는 것이 가능하지만, LED 제어를 매체 데이터 터널 송신기 내에 남겨두는 것이 양방향 WRITE_BURST들에 대한 필요를 감소시킨다. 매체 데이터 터널 송신기 내에 LED 제어를 가짐으로써, MHL 송신기 내의 매체 데이터 터널 수신기가 임의의 시점에 매체 데이터 터널 송신기여야 할 필요가 없으며, 확장된 탐색 동안 WRITE_BURST 송신을 지원해야 할 필요가 있을 뿐이다. 이러한 HID 데이터에 대하여, 도 7은 표준 HID 구조들과 비교하여 매체 데이터 터널 인코더의 일 실시예에 대한 페이로드 구조들을 예시한다.
단계 3: 데이터 릴레이. 일부 실시예들에 있어, MHL 송신기 및 송신기가 매체 데이터 터널 송신기로부터 매체 데이터 터널 수신기로 데이터를 릴레이하기 위해 MHL 명시 WRITE_BURST 및 SET_INT 명령들을 구현하도록 지시받는다. 이상에서 언급된 스크래치패드에 더하여, 매체 데이터 터널은 MHL 송신기와 수신기 사이에서 데이터를 릴레이하기 위해 MHL 명시 인터럽트 레지스터들, WRITE_BURST 명령, 및 SET_INT 명령에 의존한다. MHL 명세에 따라, MHL 송신기 및 수신기가 2개의 단일-바이트 인터럽트 레지스터들을 제공한다. 인터럽트 레지스터들은 오프셋 0x20에 존재한다. 이러한 레지스터들은 사용자가 SET_INT 명령을 사용하는 송신에 대한 인터럽트 또는 인터럽트들을 명시하는 것을 허용한다.
일부 실시예들에 있어, 사용자와 MHL 송신기 또는 수신기 상태 머신 사이의 스크래치패드 액세스 충돌들을 회피하기 위하여, MHL 명세는 인터럽트 레지스터들 및 조정 프로세스를 제공한다. 조정 프로세스는 SET_INT 명령을 사용하여 스크래치패드 액세스를 관리하기 위한 방법을 제공한다. 명세는, 사용자가 로컬 스크래치패드에 데이터를 기입하기 전에, 사용자가 WRITE_BURST 송신이 지속되고 있지 않다는 것을 보장하기 위해 체크할 것임을 암시한다. WRITE_BURST 송신기가 WRITE_BURST 명령을 전송했지만, 아직 SET_INT를 사용하여 DSCR_CHG 인터럽트를 전송해야만 하는 경우, WRITE_BURST 송신이 지속 중이다. 명세는 또한, 스크래치패드 액세스가 WRITE_BURST의 수신자에 대해 승인된 경우, 사용자가 스크래치패드에 기입하지 않을 것임을 암시한다. WRITE_BURST 수신자가 SET_INT 명령을 사용하여 GRT_WRT 인터럽트를 전송했지만, 응답으로서 SET_INT 명령을 통해 DSCR_CHG 인터럽트를 아직 수신하지 못한 경우, 수신이 계류 중이다. 또한, MHL 명세는, 사용자가 WRITE_BURST 명령을 전송할 준비를 하고 있거나 또는 계속해서 이전의 WRITE_BURST 명령의 수신을 처리하고 있는 경우, 사용자가 SET_INT 명령을 사용한 GRT_WRT의 송신을 통한 WRITE_BURST의 수신을 허용하지 않을 것임을 암시한다.
일부 실시예들에 있어, 매체 데이터 터널은, HID 및 약간 더 요구하는 일부 애플리케이션들을 지원하기 위해 요구되는 성능을 허용하면서, MHL 명세를 완전히 고수하여 구현될 것이다. MHL을 완전히 고수하여, 매체 데이터 터널 송신기 및 수신자는 MHL 명세에 의해 정의된 바와 같은 스크래치패드 및 인터럽트 레지스터들을 액세스한다. 유사하게, 매체 데이터 터널 발송자 및 수신기는 MHL 명세에 따라 데이터를 릴레이하기 위해 SET_INT 및 WRITE_BURST 명령들을 사용한다.
일부 실시예들에 있어, 매체 데이터 터널은 추가적인 매체 데이터 터널 명시 가이던스를 갖는 WRITE_BURST 명령들에 대해 MHL 명시 조정 시퀀스에 의존한다. 송신기가 WRITE_BURST 데이터를 릴레이해야 하는 필요에 앞서 REQ_WRT 및 DSCR_CHG를 갖는 단일 SET_INT를 전송한다. 이러한 선행 요청이 송신기를 2가지 방식으로 자유롭게 할 것이다. 첫째, WRITE_BURST 송신기가 데이터를 전송해야만 할 때, WRITE_BURST 송신기가 REQ_WRT를 전송하는데 소요되는 시간을 겪지 않을 것이다; REQ_WRT가 먼저 전송되었다. 둘째, 송신기가, MHL 명세에 따라 최장 10 ms를 소요할 수 있는 트랜잭션인, 그 REQ_WRT 요청에 대한 GRT_WRT 응답을 기다릴 필요가 없을 것이다. 사실상, SET_INT들의 선행 송신이 WRITE_BURST 명령 내의 매체 데이터 터널 정보를 릴레이하기 위해 필요한 시간으로부터 WRITE_BURST 조정을 위해 소비되는 시간을 분리한다. 또한, 매체 데이터 터널 발송자가 이러한 인터럽트들을 독립적으로 그리고 WRITE_BURST 트랜잭션의 상이한 단계들에서 전송하지 않고, 단일 SET_INT를 사용하여 DSCR_CHG 및 REQ_WRT 인터럽트들을 릴레이할 수 있다. 단일 SET_INT로의 DSCR_CHG 및 REQ_WRT의 이러한 페어링이 WRITE_BURST 사용하여 데이터를 릴레이하는데 필요한 시간을 추가로 감소시킨다.
일부 실시예들에 있어, DSCR_CHG 및 REQ_WRT 인터럽트들의 선행 및 결합된 송신을 수용하기 위하여, 매체 데이터 터널 수신자가 이미 수신되고 있지 않은 계류중인 WRITE_BURST를 중단(abort)할 기회를 갖는다. MHL 명세가 WRITE_BURST 수신자에게 WRITE_BURST를 방지할 방법을 제공하지 않지만, 명세는, 수신자가 ACK 또는 ABORT를 다시 전송할 것을 지시함으로써, SET_INT 명령들이 항상 처리된다는 것을 암시적으로 보장한다. 이러한 암묵적 보장을 사용하여, 매체 데이터 터널 수신자는 계류중인 WRITE_BURST를 중단할 필요가 있을 때 SET_INT 명령을 사용하여 REQ_WRT 인터럽트를 전송한다. 계속해서 MHL에 따르기 위해, 매체 데이터 터널 송신기는 이러한 SET_INT에 대해 수락되는 경우 ACK로 응답하며, 독립적으로 매체 데이터 터널 송신기가 SET_INT 명령을 사용하여 DSCR_CHG 인터럽트를 전송한다. 매체 데이터 터널 송신기가 DSCR_CHG을 전송하는데 실패하면, 매체 데이터 터널 수신자는 REQ_WRT에 대한 GRT_WRT 응답을 기다리는 WRITE_BURST 수신자에 대해 MHL에 명시된 타임아웃인 10 ms마다 REQ_WRT를 반복할 수 있다. WRITE_BURST 수신자가 WRITE_BURST의 수신 동안 중단을 릴레이해야하는 경우, 수신자는 WRITE_BURST에 대해 ACK로 응답하고, 그 다음 REQ_WRT를 전달하기 위해 SET_INT를 전송한다.
일부 실시예들에 있어, 매체 데이터 터널의 HID 구현예에 대해, WRITE_BURST 및 SET_INT를 사용하는 데이터의 송신은 매체 데이터 터널 정의를 고수한다. 개연성 있는 시퀀스가 확장된 탐색을 반영한다. 이러한 탐색 내에서, 매체 데이터 터널 송신기는 MDTREQ01_FULL 토큰을 전송하며, 이의 응답으로 MDTACK_2000을 수신한다. 이러한 교환이 매체 데이터 터널 송신기와 수신기 사이의 합의를 수립한다. 또한, 교환이 매체 데이터 터널 송신기로 하여금 매체 데이터 터널을 통한 HID 서비스를 위한 매체 데이터 터널 수신기의 자격을 검증하게 한다. 일부 실시예들에 있어, 확장된 탐색에 대한 명령들이 표 1에 예시된다:
로부터 명령 컨텐츠
MDT 수신자 버스트 길이를 16으로 설정


확장된
탐색


MDT 발송자 MDT 수신자 SET_INT REQ_WRT
MDT 수신자 MDT 발송자 SET_INT GRT_WRT
MDT 발송자 MDT 수신자 WRITE_BURST "MDTREQ01_FULL"
MDT 발송자 MDT 수신자 SET_INT DSCR_CHG
MDT 수신자 MDT 발송자 SET_INT REQ_WRT
MDT 발송자 MDT 수신자 SET_INT GRT_WRT
MDT 수신자 MDT 발송자 WRITE_BURST "MDTACK_2000"
MDT 수신자 MDT 발송자 SET_INT DSCR_CHG
일부 실시예들에 있어, 확장된 탐색 다음에, 매체 데이터 터널 송신기가 스크래치패드 내의 ADOPTER_ID 바이트들을 설정한다. 이러한 예의 목적들을 위하여, 매체 데이터 터널 수신자의 ADOPTER_ID가 0x0000인 것으로 가정된다. 다음으로, 매체 데이터 터널 송신기는, 마우스 이벤트들에 대한 인스턴스인, mdt_burst_t 패킷 구조의 최소 버전을 지원하기 위해 버스트 길이를 6으로 설정한다. 그 뒤, HID 이벤트들이 독립적인 연관된 인터럽트들을 갖는 WRITE_BURST 명령들 및 SET_INT의 송신들로서 전송될 수 있다. 이벤트들의 각각이 동일한 패킷 구조를 수반하기 때문에, 버스트 길이가 다시 설정되지 않는다. 일부 실시예들에 있어, MDT 발송자는 다음의 표 2와 같을 수 있는 HID 이벤트들을 송신한다:
로부터 명령 컨텐츠






MDT
발송자 송신 HID
이벤트들





MDT 발송자 MDT 수신자 SET_INT DSCR_CHG, REQ_WRT
MDT 수신자 스크래치패드 내의 ADOPTER_ID를 설정 "00 00"
MDT 수신자 버스트 길이를 6으로 설정
MDT 수신자 MDT 발송자 SET_INT GRT-WRT
MDT 발송자 MDT 수신자 WRITE_BURST "81 00 01 00"
MDT 수신자 스크래치패드 바이트들 [2:5]를 판독
MDT 발송자 MDT 수신자 SET_INT DSCR_CHG, REQ_WRT
MDT 수신자 MDT 발송자 SET_INT GRT-WRT
MDT 발송자 MDT 수신자 WRITE_BURST "81 00 01 00"
MDT 수신자 스크래치패드 바이트들 [2:5]를 판독
MDT 발송자 MDT 수신자 SET_INT DSCR_CHG, REQ_WRT
MDT 수신자 MDT 발송자 SET_INT GRT-WRT
MDT 발송자 MDT 수신자 WRITE_BURST "81 00 01 00"
MDT 수신자 스크래치패드 바이트들 [2:5]를 판독
MDT 발송자 MDT 수신자 SET_INT DSCR_CHG, REQ_WRT
단계 4 & 5: 데이터 디코딩 및 데이터 소비. 일부 실시예들에 있어, 매체 데이터 터널 송신은 수신하는 데이터를 디코딩하고 이를 소비하는 매체 데이터 터널 수신기로서 종료된다. 디코딩의 정의는 단계 2에서 제공되었다. 소비가 애플리케이션 의존적이기 때문에, 다음의 정의는 최적이며 일 예로서 의도된다.
도 8은 매체 데이터 터널의 일 실시예에 대한 계층들을 예시한다. 예시된 계층화 스택은 리눅스 또는 안드로이드 시스템 내부의 USB 드라이버 계층들과 HID 이벤트들을 수신하도록 의도된 MHL 송신기의 가능한 구현예를 비교한다. 일부 실시예들에 있어, 도 8의 엘러먼트들은 모바일 디바이스 내의 MHL 송신기에 대한 소프트웨어 구현예를 나타낸다. 매체 데이터 터널 구현예의 MDT HID, HID/MDT 드라이버, Sil9234 드라이버, 및 SMBUS 또는 I2C 드라이버 계층들이 USB 드라이버, USB HID, USB 코어, 및 OHCI/EHCI 계층들에 직접적으로 매핑된다. WRITE_BURST를 담당하는 MHL 송신기 컴포넌트는 HUB 지원 및 디바이스 탐색을 담당하는 USB 코어 계층보다 훨씬 더 얇다(thin). 유사하게, HID/MDT 디코더는 극단적으로 얇은 계층이다. 그러나, 매체 데이터 터널 HID 드라이버는 주요한 차이로서 진입점(entry point)을 갖는 USB 드라이버에 비할 만하다. USB 드라이버는 USB 패킷들로부터 페이로드들을 수신하기 위해 USB 스택에 등록하는 반면, 매체 데이터 터널 HID 드라이버는 HID/MDT 디코더에 의해 직접적으로 호출될 수 있고 페이로드를 수신하기 위해 전역 버퍼에 의존할 수 있다. 이러한 차이에도 불구하고, USB 드라이버 및 매체 데이터 터널 HID 드라이버 둘 모두가 이벤트들을 사용자 공간으로 릴레이하기 위해 input_report 유형의 함수들을 사용하여 HID 이벤트 생성기를 호출한다. 이러한 구현예에서 디코더에 의해 제공되는 변환이 표준 HID 이벤트 소비자로 하여금 마치 임의의 USB 디바이스로부터 유입되는 것처럼 매체 데이터 터널로부터 이벤트들을 수신하게 한다.
매체 데이터 터널은 MHL에 의해 제공되는 값 및 특징 세트를 확장하기 위한 수단을 제공한다. 도 9는 HDIM 가능형 비디오 디스플레이와 HDMI 가능형 소스 디바이스 사이의 연결을 예시한다. 이러한 예시에 있어, HDMI 싱크(910)(텔레비전 또는 다른 비디오 디스플레이와 같은)가 HDMI 인터페이스 연결(950)을 통해 비디오 소스(960)에 연결된다. 도 9에 제공된 바와 같이, HMI 싱크(910)는 HDMI 수신기(912)를 포함하며, 이는 프로세싱 엘러먼트(920)(CPU, 마이크로프로세서, 또는 SoC와 같은)에 연결될 수 있다. 비디오 소스(960)는 프로세싱 엘러먼트(965)에 연결된 HDMI 송신기(962)를 포함한다.
이러한 시나리오에 있어, 데이터 버스가 동작시 별개이다. A/V가 아니라 주변기기 데이터를 릴레이하기 위하여, 비디오 소스(910)가 데이터 버스(955)를 통해 USB 엘러먼트(915)에 연결될 수 있으며, 여기에서 USB 엘러먼트는 개인용 컴퓨터(USB 호스트로서 역할하는) 또는 데이터 주변기기(USB 디바이스로서 역할하는)일 수 있다. 따라서, 소스 디바이스(960)는 제 1 프로토콜(HDMI) 데이터 송신 및 제 2 프로토콜(USB) 데이터 송신 둘 모두를 포함하며, 여기에서 이러한 송신들이 2개의 프로토콜들의 대역폭을 처리하기 위해 별개의 데이터 채널들(950 및 955)을 사용한다.
HDMI와 달리, MHL 명세는 복수의 프로토콜들 사이에 물리적 커넥터를 공유하지만 프로토콜들이 동시가 아니라 서로 배타적으로 지원되는 애플리케이션들을 목적으로 한다. 도 10은 HDMI/MHL 동글과 MHL 가능형 비디오 소스 디바이스 사이의 연결을 예시한다. 도 10 및 도 11은 상호 배타적으로 송신되는 HID 및 MHL 데이터 사이에 모바일 디바이스의 5-핀 커넥터를 공유하는 구현예들을 예시한다. 도 10에서, HDMI 포맷과 MHL 포맷 사이에서 데이터를 변환하는 MHL 동글(1010)이 MHL/USB 인터페이스 연결(1050)을 통해 비디오 소스(1060)와 연결된다. 비디오 소스(1060)는 모바일 디바이스를 포함할 수 있다. 도 10에 제공된 바와 같이, MHL 동글(1010)은 CPU, 마이크로프로세서, 또는 SoC와 같은 프로세싱 엘러먼트(1020)를 포함할 수 있다. 비디오 소스(1060)는 프로세싱 엘러먼트(1065)에 연결된 MHL 송신기(1062)를 포함한다.
비디오 소스는 MHL 및 USB 인터페이스(1050)에 대한 스위치(1072) 및 5-핀 커넥터(1070)를 포함한다. 스위치는 커넥터로부터 MHL 데이터에 대해 MHL 수신기(1062)로의 그리고 USB 데이터에 대해 USB 링크(1055)를 통해 비디오 소스의 프로세싱 엘러먼트(1065)로의 경로를 제공한다. MHL USB는 USB 데이터의 전송을 위해 별개의 데이터 주변기기(1015)와 연결될 수 있다. 따라서, 이러한 경우에, 소스 디바이스(1060)가 단일 5-핀 커넥터를 사용하는 제 1 프로토콜(MHL) 데이터 송신 및 제 2 프로토콜(USB) 데이터 송신 둘 모두를 포함하지만, 이러한 커넥터는, MHL 및 USB 둘 모두가 인터페이스의 전체 대역폭을 사용하면서, 오로지 한번에 이러한 프로토콜들 중 하나에 대한 데이터만을 전송할 수 있다. 2개의 프로토콜들 사이의 배타성이 MHL 수신기가 MHL 동글이거나 또는 MHL 싱크인 경우에도 적용된다. 도 11은 MHL 가능형 비디오 싱크 디바이스와 MHL 가능형 비디오 소스 디바이스 사이의 연결을 예시한다. 이러한 예시에서, MHL 가능형 비디오 싱크(1110)는 MHL/USB 인터페이스 연결(1150)을 통해 비디오 소스(1160)와 연결된다. 비디오 소스(1160)는 모바일 디바이스를 포함할 수 있다. 도 11에 제공된 바와 같이, MHL 싱크(1110)는 MHL 송신기(1112) 및 프로세싱 엘러먼트(1120)를 포함할 수 있다. 비디오 소스(1160)는 프로세싱 엘러먼트(1165)와 연결된 MHL 송신기(1162)를 포함할 수 있다.
도 11에서, 비디오 소스(1160)는 MHL 및 USB 인터페이스(1150)에 대한 5-핀 커넥터(1170) 및 스위치(1172)를 포함한다. 스위치는 MHL 데이터에 대한 MHL 수신기(1162)로의 경로 및 USB 데이터에 대한 USB 링크(1155)를 통한 비디오 소스의 프로세싱 엘러먼트(1165)로의 경로를 제공한다. MHL USB는 USB 데이터의 전송을 위해 데이터 주변기기(1115)에 연결될 수 있다. 도 10과 유사하게, 이러한 경우에 있어, 소스 디바이스(1160)가 단일 5-핀 커넥터를 사용하는 제 1 프로토콜(MHL) 데이터 송신 및 제 2 프로토콜(USB) 데이터 송신 둘 모두를 포함하지만, 이러한 커넥터는, MHL 및 USB 둘 모두가 인터페이스의 전체 대역폭을 사용하면서, 오로지 한번에 이러한 프로토콜들 중 하나에 대한 데이터만을 전송할 수 있다.
매체 데이터 터널은 동시적인 A/V 및 주변기기 데이터 송신을 위한 데이터 터널링이 가능해지도록 MHL를 향상시킨다. 도 12는 HDMI/MHL 동글과 MHL 가능형 비디오 소스 디바이스 사이의 연결의 일 실시예를 예시한다. 도 10 및 도 11과 대조적으로, 도 12 및 도 13은 2개의 피어들 사이에서 HID 및 MHL 데이터를 동시에 교환하는 매체 데이터 터널 가능형 시스템을 예시한다. 도 12에서, HDMI 포맷(1205)과 MHL 포맷 사이에서 데이터를 변환하는 MHL 동글(1210)이 MHL 인터페이스 연결(1250)을 통해 비디오 소스(1260)에 연결되며, 여기에서 비디오 소스(1260)는 모바일 디바이스를 포함할 수 있다. 도 12에 제공된 바와 같이, MHL 동글(1210)이 프로세싱 엘러먼트(1220)를 포함할 수 있다. 비디오 소스(1260)는 프로세싱 엘러먼트(1265)와 연결된 MHL 송신기(1262)를 포함한다.
일부 실시예들에 있어, MHL 동글(1210)과 비디오 소스(1260) 사이의 인터페이스(1250)가 데이터 터널(1252)을 포함하며, 여기에서 데이터 터널은 이상에서 설명된 바와 같은 매체 데이터 터널일 수 있다. 일부 실시예들에 있어, 데이터 터널(1252)이 제 1 프로토콜(MHL)의 범용 명령들을 통한 제 2 프로토콜(USB) 데이터의 송신을 위해 사용될 수 있다. 예시된 바와 같이, MHL 동글(1210)의 프로세싱 엘러먼트가 데이터 버스(1255)를 통한 USB 데이터의 전송을 위해 데이터 주변기기(1207)와 연결될 수 있다. 따라서, 이러한 구현예에 있어, 비디오 소스(1260)가 USB 호스트 엘러먼트로서 동작할 수 있으며, 여기에서 일부 실시예들에 있어 USB 데이터가 USB 호스트와 데이터 주변기기(1207)와 같은 USB 디바이스 엘러먼트 사이에서 데이터 터널(1252)을 통해 전송되며, 그에 따라 MHL 데이터 및 USB 데이터의 동시 전송이 허용된다.
매체 데이터 터널의 이점들이 MHL 수신기가 MHL 동글이거나 또는 MHL 싱크인 경우에도 동일하게 적용된다. 도 13은 MHL 가능형 비디오 싱크 디바이스와 MHL 가능형 비디오 소스 디바이스 사이의 연결을 예시한다. 이러한 예시에 있어, MHL 가능형 비디오 싱크 디바이스(1310)가 MHL 인터페이스 연결(1350)을 통해 비디오 소스(1360)와 연결되며, 여기에서 비디오 소스(1360)가 모바일 디바이스를 포함할 수 있다. 도 13에 제공된 바와 같이, MHL 싱크(1310)가 프로세싱 엘러먼트(1320)를 포함할 수 있다. 비디오 소스(1360)는 프로세싱 엘러먼트(1365)와 연결된 MHL 송신기(1362)를 포함한다.
일부 실시예들에 있어, MHL 싱크 디바이스(1310)와 비디오 소스(1360) 사이의 인터페이스(1350)가 데이터 터널(1352)을 포함하며, 여기에서 데이터 터널은 이상에서 설명된 바와 같은 매체 데이터 터널일 수 있다. 일부 실시예들에 있어, 데이터 터널(1352)이 제 1 프로토콜(MHL)의 범용 명령들을 통한 제 2 프로토콜(USB) 데이터의 송신을 위해 사용될 수 있다. 예시된 바와 같이, MHL 싱크 디바이스(1310)의 프로세싱 엘러먼트가 데이터 버스(1355)를 통한 USB 데이터의 전송을 위해 데이터 주변기기(1307)와 연결될 수 있다. 따라서, 이러한 구현예에 있어, 비디오 소스(1360)가 USB 호스트 엘러먼트로서 동작할 수 있으며, 여기에서 USB 데이터가 USB 호스트와 데이터 주변기기(1307)와 같은 USB 디바이스 엘러먼트 사이에서 데이터 터널(1352)을 통해 전송되며, 그에 따라 MHL 데이터 및 USB 데이터의 동시 전송이 허용된다.
매체 데이터 터널은 MHL 가능형 모바일 디바이스들로 하여금 컴퓨팅 사용 경우들을 더 양호하게 서비스하게 한다. 매체 데이터 터널 가능형 MHL이 없으면, 모바일 디바이스가 데이터 주변기기들을 호스팅할 수 있지만 일반적으로 A/V 데이터를 송신하기 위한 별도의 포트를 필요로 할 것이다. 도 14는 모바일 디바이스와 마우스와 같은 데이터 주변기기의 USB 링크들을 예시한다. 이러한 예시에 있어, 비디오 소스(1410)는 CPU(Central Processing Unit), 마이크로프로세서, 또는 SoC(System on Chip)로서 예시된 프로세싱 엘러먼트(1415)를 포함하며, 여기에서 프로세싱 엘러먼트가 데이터 버스(1455)를 통해 마우스와 같은 데이터 주변기기(1420)와 연결된다. 일부 실시예들에 있어, 데이터 주변기기(1420)의 동작은 오디오/비디오 데이터 전송과 데이터 주변기기에 대한 지원을 동시에 허용하기 위한 범용 명령들의 사용을 포함할 수 있다.
매체 데이터 터널을 갖는 MHL 가능형 모바일 디바이스가 단일 커넥터를 통해 디스플레이 및 데이터 주변기기들에 동시에 연결될 수 있다. 도 15는 모바일 디바이스와 휴먼 인터페이스 디바이스들의 링크의 일 실시예를 예시한다. 도 15는 데이터 버스(USB)의 특정 예와 데이터 주변기기들(USB 마우스 및 USB 키보드)의 특정 예를 제공한다. 이러한 예시에서, HDMI 포맷(1505)과 MHL 포맷 사이에서 데이터를 변환하는 MHL 동글(1510)이 MHL 인터페이스 연결(1550)을 통해 비디오 소스(1560)와 연결되며, 여기에서 비디오 소스(1560)는 모바일 디바이스를 포함할 수 있다. 도 15에 제공된 바와 같이, MHL 동글이 프로세싱 엘러먼트(1520)를 포함할 수 있다. 비디오 소스(1560)는 프로세싱 엘러먼트(1565)와 연결된 MHL 송신기(1562)를 포함한다.
일부 실시예들에 있어, MHL 동글(1510)과 비디오 소스(1560) 사이의 인터페이스(1550)가 데이터 터널(1552)을 포함하며, 여기에서 데이터 터널은 이상에서 설명된 바와 같은 매체 데이터 터널일 수 있으며, 데이터 터널(1552)은 제 1 프로토콜(MHL)의 범용 명령들을 통한 제 2 프로토콜(USB) 데이터의 송신을 제공한다. 예시된 바와 같이, 동글(1510)의 프로세싱 엘러먼트(1520)가 하나 이상의 USB 연결들(1557)을 통한 USB HID 데이터의 전송을 위해 하나 이상의 휴먼 인터페이스 디바이스들과 연결될 수 있다. 이러한 구현예에 있어, 비디오 소스(1560)가 USB 호스트 엘러먼트로서 동작할 수 있고, MHL 동글이 USB 디바이스로서 동작할 수 있으며, 여기에서 일부 실시예에 있어 휴먼 인터페이스 디바이스들에 의해 생성되는 USB 데이터가 데이터 터널(1552)을 통해 이러한 USB 호스트와 USB 디바이스 사이에서 전송되고, 그에 따라 MHL 데이터 및 USB HID 데이터의 동시 전송이 허용된다.
매체 데이터 터널이 모바일 디바이스 사용자에게 큰 이점을 제공하지만, 이러한 기술이 오로지 저 대역폭 데이터 주변기기들만을 서비스할 수 있다. 도 16은 모바일 디바이스와 휴먼 인터페이스 디바이스들의 링크의 일 실시예를 예시한다. 특정 구현예들에 있어, 고속 주변기기들은 기존의 대역폭 제한들에 기인하여 모바일 디바이스에 직접적으로 연결될 것이 요구된다. 그러나, 실시예들은 이러한 구성에 한정되지 않는다. 이러한 예시에 있어, HDMI 포맷(1605)과 MHL 포맷 사이에서 데이터를 변환하는 MHL 동글(1610)이 MHL 인터페이스 연결(1650)을 통해 비디오 소스(1660)와 연결되며, 여기에서 비디오 소스(1660)는 모바일 디바이스를 포함할 수 있다. 도 16에 제공된 바와 같이, MHL 동글(1610)이 프로세싱 엘러먼트(1620)를 포함할 수 있다. 비디오 소스(1660)는 프로세싱 엘러먼트(1565)와 연결된 MHL 송신기(1662)를 포함한다. 일부 실시예들에 있어, 비디오 소스(1660)는 고속 주변기기에 대한 USB 연결(1655) 또는 개인용 컴퓨터(1680)에 대한 링크를 더 포함할 수 있다.
일부 실시예들에 있어, MHL 동글(1610)과 비디오 소스(1660) 사이의 인터페이스(1650)가 데이터 터널(1652)을 포함하며, 여기에서 데이터 터널은 이상에서 설명된 바와 같은 매체 데이터 터널일 수 있으며, 데이터 터널(1652)은 제 1 프로토콜(MHL)의 범용 명령들을 통한 제 2 프로토콜(USB) 데이터의 송신을 제공한다. 예시된 바와 같이, 동글(1610)의 프로세싱 엘러먼트(1620)가 하나 이상의 USB 연결들(1657)을 통한 USB HID 데이터의 전송을 위해 하나 이상의 휴먼 인터페이스 디바이스들과 연결될 수 있다. 이러한 구현예에 있어, 휴먼 인터페이스 디바이스들은 마우스(1622) 및 키보드(1624)이다. 따라서, 이러한 구현예에 있어, 비디오 소스(1660)가 USB 호스트 엘러먼트로서 동작할 수 있고, MHL 동글이 USB 디바이스로서 동작할 수 있으며, 여기에서 일부 실시예에 있어 휴먼 인터페이스 디바이스들에 의해 생성되는 USB 데이터가 데이터 터널(1652)을 통해 이러한 USB 호스트와 USB 디바이스 사이에서 전송되고, 그에 따라 MHL 데이터 및 USB HID 데이터의 동시 전송이 허용된다. 일부 실시예들에 있어, 비디오 소스(1660)가 또한 USB 연결을 통해 고속 주변기기 또는 개인용 컴퓨터(1680)에 연결된다. 따라서, 일부 실시예들에 있어, MHL 데이터 및 저속 USB 데이터가 제 2 인터페이스를 통해 전송되는 고속 USB 데이터와 동시에 제 1 인터페이스를 통해 전송될 수 있다.
도 17은 특정 데이터의 송신을 위한 데이터 터널을 포함하는 일 시스템 또는 실시예를 예시한다. 장치 또는 시스템(본 명세서에서 전반적으로 장치로서 지칭되는)은 제 1 프로토콜의 범용 명령들을 사용하여 제 2 프로토콜의 데이터가 전송되도록 하는 데이터 터널을 포함할 수 있다. 일 예에 있어, 제 1 프로토콜은 MHL이며, 제 2 프로토콜은 USB이다. 그러나, 실시예들이 임의의 특정 프로토콜들에 한정되지 않는다. 이러한 예시에 있어, 본 발명과 밀접한 관련이 없는 표준의 그리고 잘-알려진 컴포넌트들은 도시되지 않는다. 일부 실시예들에 있어, 장치(1700)는 비디오 소스 디바이스, 비디오 싱크 디바이스, 또는 데이터 프로토콜을 변환하기 위한 동글, 또는 복수의 프로토콜들로 데이터를 전송하는 다른 디바이스를 포함할 수 있다.
일부 실시예들에 있어, 장치(1700)는 상호연결 또는 크로스바(crossbar)(1705) 또는 데이터의 전송을 위한 다른 통신 수단을 포함한다. 장치(1700)는 정보를 프로세싱하기 위해 상호연결(1705)과 연결된 하나 이상의 프로세서들 또는 다른 프로세싱 엘러먼트들(1710)과 같은 프로세싱 수단을 포함할 수 있다. 프로세서(1710)는 하나 이상의 물리적 프로세스들 및 하나 이상의 논리적 프로세스들을 포함할 수 있다. 상호연결(1705)이 간명함을 위해 단일 상호연결로 예시되지만, 복수의 상이한 상호연결들 또는 버스들을 나타낼 수 있고, 이러한 상호연결들에 대한 컴포넌트 연결들에 변화될 수 있다. 도 17에 도시된 상호연결(1705)은 임의의 하나 이상의 독립적인 물리적 버스들, 점-대-점 연결들, 또는 적절한 브리지들, 어댑터들, 또는 컨트롤러들에 의해 연결되는 이들 둘 모두를 나타내는 추상적인 개념이다.
일부 실시예들에 있어, 장치(1700)는 프로세서들(1710)에 의해 실행될 명령들 및 정보를 저장하기 위한 주 메모리(1715)로서 RAM(random access memory) 또는 다른 동적 저장 디바이스 또는 엘러먼트를 더 포함한다. RAM 메모리는 메모리 컨텐츠의 리프레싱을 요구하는 DRAM(dynamic random access memory), 및 컨텐츠 리프레싱을 요구하지 않지만 비싼 SRAM(static random access memory)을 포함한다. 일부 실시예들에 있어, 메인 메모리는 장치(1700)의 사용자에 의해 네트워크 브라우징 활동들에서의 사용을 위한 브라우저 애플리케이션을 포함하는 애플리케이션들의 능동 저장부를 포함할 수 있다. DRAM은 제어 신호들에 대한 클럭 신호를 포함하는 SDRAM(synchronous dynamic random access memory), 및 EDO DRAM(extended data-out dynamic random access memory)을 포함할 수 있다. 일부 실시예들에 있어, 장치의 메모리는 특정 레지스터들 또는 다른 전용 메모리를 포함할 수 있다.
장치(1700)는, 하드 디스크 드라이브 또는 반도체 드라이브를 포함하는 데이터 저장부(1720)를 포함할 수 있다. 장치(1700)는 또한 프로세서들(1710)에 대한 명령들 및 정적 정보를 저장하기 위한 ROM(read only memory)(1725) 또는 다른 정정 저장 디바이스를 포함할 수 있다. 장치(1700)는, 예를 들어, 플래시 메모리를 포함하는, 특정 엘러먼트들의 저장을 위한 하나 이상의 비-휘발성 메모리 엘러먼트들(1730)을 포함할 수 있다.
장치(1700)는 또한 상호연결(1705)을 통해 출력 디스플레이(1740)로 연결될 수 있다. 일부 실시예들에 있어, 디스플레이(1740)는 사용자에게 정보 또는 컨텐츠를 디스플레이하기 위한 액정 크리스탈 디스플레이(LCD) 또는 임의의 다른 디스플레이 기술을 포함할 수 있다. 일부 환경들에 있어, 디스플레이(1740)는 입력 디바이스의 적어도 일 부분으로서 또한 사용되는 터치-스크린을 포함할 수 있다. 일부 환경들에 있어, 디스플레이(1740)는 오디오 정보를 제공하기 위한 스피커와 같은 오디오 디바이스이거나 또는 이를 포함할 수 있다.
하나 이상의 송신기들 또는 수신기들(1745)이 상호연결(1705)에 또한 연결될 수 있다. 일부 실시예들에 있어, 수신기들 또는 송신기들(1745)이 데이터 터널(1770)을 갖는 데이터 링크를 통해 다른 장치 또는 시스템(1775)으로 복수의 프로토콜들로 데이터를 송신하기 위해 커넥터(1705)에 연결될 수 있으며, 여기에서 데이터 링크는, 예를 들어, 도 1에 예시된 케이블(150)일 수 있다. 장치(1700)는 무선 신호들을 통해 데이터를 수신하기 위해 하나 이상의 전방향 또는 지향성 안테나들(1755)을 더 포함할 수 있다.
장치(1700)는 또한 파워를 제공하거나 또는 생성하기 위한 전원 공급장치, 배터리, 태양전지, 연료전지, 또는 다른 시스템 또는 디바이스를 포함할 수 있는 파워 디바이스 또는 장치(1760)를 포함할 수 있다. 파워 디바이스 또는 시스템(1760)에 의해 제공되는 파워는 필요에 따라 장치(1700)의 엘러먼트들로 분배될 수 있다.
도 18은 매체 데이터 터널을 사용하는 통신을 위한 프로세스의 일 실시예를 예시하는 타이밍도이다. 이러한 예시에 있어, USB 연결을 통한 HID(1810)와 USB 호스트(1830) 사이의 통신 및 MHL 연결(1850)을 통한 크래들 엘러먼트와 관련되어 예시된 바와 같은 MHL 수신기(1840)와 MHL 송신기(1860) 사이의 통신이 제공된다. 예시된 바와 같이, WRITE_BURST 명령(1800)을 사용하는 통신 및 매체 데이터 터널을 갖는 WRITE_BURST 명령(1805)을 사용하는 통신이 예시된다. 도시된 바와 같이, 매체 데이터 터널이 동작시 감소된 오버헤드 및 데이터 수신에 대한 감소된 레이턴시를 가능하게 한다.
이상의 설명에 있어, 설명의 목적들을 위하여, 본 발명의 철저한 이해를 제공하기 위하여 다수의 특정 상세내용들이 기술되었다. 그러나, 본 발명이 이러한 특정 상세 내용들 중 일부가 없이 구현될 수 있다는 것이 당업자에게 자명할 것이다. 다른 경우들에 있어, 공지된 구조들 및 디바이스들이 블록도 형태로 도시되었다. 예시된 컴포넌트들 사이에 중간 구조가 존재할 수 있다. 본 명세서에서 설명되거나 또는 예시된 컴포넌트들이 예시되지 않거나 또는 설명되지 않은 추가적인 입력들 또는 출력들을 가질 수 있다. 예시된 엘러먼트들 또는 컴포넌트들은 또한, 필드 크기들의 수정 또는 임의의 필드들의 재순서화를 포함하여, 상이한 배열들/또는 순서들로 배열될 수 있다.
본 발명은 다양한 프로세스들을 포함할 수 있다. 본 발명의 프로세스들은 하드웨어 컴포넌트들에 의해 수행될 수 있거나, 또는 명령들로 프로그래밍된 범용 또는 전용 프로세서 또는 로직 회로들이 프로세스들을 수행하게 하는데 사용될 수 있는 컴퓨터-판독가능 명령들로 구현될 수 있다. 대안적으로, 프로세스들은 하드웨어 및 소프트웨어의 조합에 의해 수행될 수 있다.
본 발명의 부분들은, 컴퓨터(또는 다른 전자 디바이스들)가 본 발명에 따른 프로세스를 수행하도록 프로그래밍하는데 사용될 수 있는 저장된 컴퓨터 프로그램 명령들을 갖는 컴퓨터-판독가능 저장 매체를 포함할 수 있는, 컴퓨터 프로그램 제품으로서 제공될 수 있다. 컴퓨터-판독가능 저장 매체는, 비제한적으로, 플로피 디스켓들, 광 디스크들, CD-ROM(compact disk read-only memory)들, 및 자기-광 디스크들, ROM(read-only memory)들, RAM(random access memory)들, EPROM(erasable programmable read-only memory)들, EEPROM(electrically-erasable programmable read-only memory)들, 자기 또는 광 카드들, 플래시 메모리, 또는 전자 명령들을 저장하기에 적합한 다른 유형의 매체/컴퓨터-판독가능 매체를 포함할 수 있다. 또한, 본 발명이 컴퓨터 프로그램 제품으로서도 다운로드될 수 있으며, 여기에서 프로그램이 원격 컴퓨터로부터 요청 컴퓨터로 전송될 수 있다.
다수의 방법들이 그들의 가장 기본적인 형태로 설명되었지만, 본 발명의 기본적인 범위로부터 벗어나지 않고, 프로세스들이 방법들 중 임의의 방법에 부가되거나 또는 이로부터 제거될 수 있으며, 정보가 설명된 메시지들 중 임의의 메시지에 부가되거나 이로부터 제해질 수 있다. 다수의 추가적인 수정들 및 개조들이 이루어질 수 있다는 것이 당업자들에게 자명할 것이다. 특정 실시예들은 본 발명을 제한하려는 것이 아니라 본 발명을 예시하기 위해 제공된다.
엘러먼트 "A"가 엘러먼트 "B"와 연결된다고 언급되는 경우, 엘러먼트 A가 엘러먼트 B에 직접적으로 연결되거나, 또는 예를 들어 엘러먼트 C를 통해 간접적으로 연결될 수 있다. 상세한 설명이 컴포넌트, 특징, 구조, 프로세스, 또는 특성 A가 컴포넌트, 특징, 구조, 프로세스, 또는 특성 B를 야기한다고 언급할 때, 이는 "A"가 적어도 "B"의 부분적인 원인이지만, "B"를 야기하는데 도움을 주는 적어도 하나의 다른 컴포넌트, 특징, 구조, 프로세스, 또는 특성이 또한 존재할 수 있다는 것을 의미한다. 상세한 설명이 컴포넌트, 특징, 구조, 프로세스, 또는 특성이 포함될 수 있다고 표현하는 경우, 그러한 특정 컴포넌트, 특징, 구조, 프로세스, 또는 특성이 반드시 포함되어야만 하는 것은 아니다. 상세한 설명이 "일" 엘러먼트를 언급하는 경우, 설명된 엘러먼트들 중 오직 하나만이 존재한다는 것을 의미하지는 않는다.
실시예는 본 발명의 일 구현예 또는 예이다. 상세한 설명에서의 "일 실시예", "하나의 실시예", "일부 실시예들", 또는 "다른 실시예들"에 대한 언급은 실시예들과 함께 설명된 특정 특징, 구조, 특성이 적어도 일부 실시예들에 포함되지만, 필수적으로 모든 실시예들에 포함되어야만 하지는 않다는 것을 의미한다. "일 실시예", "하나의 실시예", "일부 실시예들"의 다양한 모습들이 반드시 모두 동일한 실시예들에 대하여 언급하는 것은 아니다. 본 발명의 예시적인 실시예들의 이상의 설명들에 있어, 본 발명의 다양한 특징들이, 다양한 진보적인 측면들 중 하나 이상의 이해를 돕고 본 발명을 간소화하기 위한 목적들을 위해, 때때로 단일 실시예, 특징, 또는 설명에서 함께 그룹화된다는 것이 이해되어야 한다.
일부 실시예들에 있어, 장치는, 데이터의 송신 또는 수신을 위한 송신기 또는 수신기; 상기 장치의 상기 데이터를 처리하기 위한 프로세싱 엘러먼트; 및 상기 데이터의 전송을 위한 커넥터로서, 상기 커넥터는 데이터 채널을 연결하고 제어 채널을 연결하는, 상기 커넥터를 포함한다. 상기 프로세싱 엘러먼트는 상기 제어 채널에서 제 1 프로토콜의 데이터의 전송을 위해 제공되며, 상기 제어 채널을 통한 데이터의 상기 전송은 제 2 프로토콜의 데이터의 전송을 위한 상기 제 1 프로토콜의 하나 이상의 범용 명령들의 사용을 포함한다. 상기 제 2 프로토콜의 데이터는 상기 제 2 프로토콜의 상기 데이터가 상기 제 1 프로토콜을 통해 전송되기 전에 최적화되며, 상기 데이터 채널에서의 상기 데이터 전송 및 상기 제어 채널에서의 데이터 전송이 적어도 부분적으로 동시적이다.
일부 실시예들에 있어, 상기 장치의 상기 데이터 채널은 하나 이상의 데이터 송신 라인들을 포함한다. 일부 실시예들에 있어, 상기 제어 채널은 제어 버스를 포함한다.
일부 실시예들에 있어, 상기 제어 채널을 통한 데이터의 상기 전송은 또한 상기 제 1 프로토콜의 다른 명령들을 포함하며, 상기 하나 이상의 범용 명령들은 상기 제 1 프로토콜의 상기 다른 명령들과 혼합(intermix)될 수 있다. 일부 실시예들에 있어, 상기 제 2 프로토콜의 사용은, 패킷 구조 및 서비스 성능에 관한 성능들의 탐색을 포함하는 확장된 탐색을 통해 자격이 검증된다.
일부 실시예들에 있어, 상기 제 2 프로토콜의 하나 이상의 메시지들이 상기 제 1 프로토콜의 단일 데이터 버스트로 전송될 수 있다. 일부 실시예들에 있어, 각각의 데이터 버스트는 인터럽트 메시지들을 통해 조정되며, 복수의 상기 인터럽트 메시지들이 집성되고 단일 메시지로 전송된다.
일부 실시예들에 있어, 상기 제어 채널을 관통하는 상기 제 1 프로토콜의 식별 필드는 2 바이트 이하의 크기를 갖는다.
일부 실시예들에 있어, 상기 제 2 프로토콜에 대한 상기 데이터는 적어도 부분적으로 HID로부터의 입력으로 구성된다.
일부 실시예들에 있어, 상기 제 2 프로토콜의 사용은 인터럽트 명령의 송신을 포함하는 확장된 중단 프로세스를 통해 종료된다. 일부 실시예들에 있어, 상기 인터럽트는 MHL 프로토콜 하의 SET-INT 명령이다.
일부 실시예들에 있어, 상기 장치는 비디오 데이터 소스 또는 비디오 데이터 싱크이다. 일부 실시예들에 있어, 상기 제 1 프로토콜은 MHL이다. 일부 실시예들에 있어, 상기 제 2 프로토콜은 USB이다.
일부 실시예들에 있어, 상기 장치는 상기 제 1 프로토콜의 데이터와 제 3 프로토콜의 데이터 사이에서 변환하기 위한 모듈을 포함한다. 일부 실시예들에 있어, 상기 제 1 프로토콜은 MHL이며, 상기 제 3 프로토콜은 HDMI이다. 일부 실시예들에 있어, 상기 제 2 프로토콜은 USB이다.
일부 실시예들에 있어, 방법은, 제 1 장치에서, 데이터의 제 1 세트를 전송하는 단계로서, 데이터의 상기 제 1 세트는 제 1 프로토콜이고, 데이터의 상기 제 1 세트를 전송하는 단계는 커넥터를 통해 상기 제 1 프로토콜에 대한 데이터 채널을 통해 데이터를 송신하거나 또는 수신하는 단계를 포함하는, 단계; 및 상기 제 1 장치에서, 데이터의 제 2 세트를 전송하는 단계로서, 데이터의 상기 제 2 세트는 제 2 프로토콜이고, 상기 제 2 프로토콜의 상기 데이터가 상기 제 1 프로토콜의 상기 제어 채널을 통해 전송되기 전에 최적화가 상기 제 2 프로토콜의 데이터에 적용되는, 단계;를 포함한다. 데이터의 상기 제 2 세트를 전송하는 단계는 상기 커넥터를 통해 상기 제 1 프로토콜에 대한 제어 채널을 통해 데이터를 송신하거나 또는 수신하는 단계를 포함한다. 데이터의 상기 제 1 세트 및 데이터의 상기 제 2 세트가 적어도 부분적으로 동시에 전송되며, 데이터의 상기 제 2 세트는 상기 제 1 프로토콜의 하나 이상의 범용 명령들을 사용하여 전송된다.
일부 실시예들에 있어, 상기 방법의 상기 하나 이상의 범용 명령들은 범용 기입 명령을 포함한다. 일부 실시예들에 있어, 상기 데이터 채널은 하나 이상의 데이터 송신 라인들을 포함하며, 상기 제 1 프로토콜의 상기 데이터는 상기 하나 이상의 데이터 송신 라인들을 통해 전송된다. 일부 실시예들에 있어, 상기 제어 채널은 제어 버스를 포함한다.
일부 실시예들에 있어, 상기 방법은 확장된 탐색을 통해 상기 제 2 프로토콜의 사용의 자격을 검증하는 단계를 더 포함하며, 상기 확장된 탐색은 패킷 구조 및 서비스 성능에 대한 성능들에 관한 정보의 교환을 포함한다.
일부 실시예들에 있어, 상기 방법은 상기 제 2 프로토콜의 하나 이상의 메시지들을 상기 제 1 프로토콜의 데이터 송신의 단일 데이터 버스트로 전송하는 단계를 더 포함한다.
일부 실시예들에 있어, 상기 방법은 인터럽트 메시지들을 통해 각각의 데이터 버스트를 조정하는 단계, 및 복수의 상기 인터럽트 메시지를 집성하고 및 상기 집성된 인터럽트 메시지들을 단일 메시지로 전송하는 단계를 더 포함한다.
일부 실시예들에 있어, 상기 제어 채널을 관통하는 상기 제 1 프로토콜의 식별 필드는 2 바이트 이하의 크기를 갖는다.
일부 실시예들에 있어, 상기 방법은 상기 제어 채널을 통해 상기 제 1 프로토콜의 다른 명령들을 전송하는 단계를 더 포함하며, 상기 하나 이상의 범용 명령들이 상기 제 1 프로토콜의 상기 다른 명령들과 혼합될 수 있다. 일부 실시예들에 있어, 데이터의 상기 제 2 세트는 적어도 부분적으로 HID로부터의 입력으로 구성된다.
일부 실시예들에 있어, 방법은 인터럽트 명령의 전송을 포함하는 확장된 중단 프로세스를 통해 상기 제 2 프로토콜의 사용을 종료하는 단계를 더 포함한다.
일부 실시예들에 있어, 상기 방법에서 상기 제 1 프로토콜은 MHL이다. 일부 실시예들에 있어, 상기 제 2 프로토콜은 USB이다. 일부 실시예들에 있어, 상기 하나 이상의 범용 명령들은 MHL WRITE_BURST를 포함한다. 일부 실시예들에 있어, 상기 하나 이상의 범용 명령들은 복수의 별개의 범용 이벤트들을 전달하기 위한 단일 SET_INT 메시지에 의해 인에이블(enable)된다.
일부 실시예들에 있어, 프로세서에 의해 실행될 때 상기 프로세서로 하여금 동작들을 수행하도록 하는 명령들의 시퀀스들을 나타내는 저장된 데이터를 갖는 비-일시적 컴퓨터-판독가능 저장 매체로서, 상기 동작들은, 제 1 장치에서, 데이터의 제 1 세트를 제 2 장치로 또는 제 2 장치로부터 전송하는 동작으로서, 데이터의 상기 제 1 세트는 제 1 프로토콜이고, 데이터의 상기 제 1 세트를 전송하는 동작은 커넥터를 통해 상기 제 1 프로토콜에 대한 데이터 채널을 통해 데이터를 송신하거나 또는 수신하는 동작을 포함하는, 동작; 및 상기 제 1 장치에서, 데이터의 제 2 세트를 상기 제 2 장치로 또는 상기 제 2 장치로부터 전송하는 동작으로서, 데이터의 상기 제 2 세트는 제 2 프로토콜인, 동작을 포함한다. 데이터의 상기 제 2 세트를 전송하는 동작은 상기 커넥터를 통해 상기 제 1 프로토콜에 대한 제어 채널을 통해 데이터를 송신하거나 또는 수신하는 동작을 포함하며, 상기 제 2 프로토콜의 상기 데이터가 상기 제 1 프로토콜의 상기 제어 채널을 통해 전송되기 전에 최적화가 상기 제 2 프로토콜의 데이터에 적용된다. 데이터의 상기 제 1 세트 및 데이터의 상기 제 2 세트가 적어도 부분적으로 동시에 전송되며, 데이터의 상기 제 2 세트는 상기 제 1 프로토콜의 하나 이상의 범용 명령들을 사용하여 전송된다.
일부 실시예들에 있어, 상기 하나 이상의 범용 명령들은 범용 기입 명령을 포함한다. 일부 실시예들에 있어, 상기 데이터 채널은 하나 이상의 데이터 송신 라인들을 포함하며, 상기 제 1 프로토콜의 상기 데이터는 상기 하나 이상의 데이터 송신 라인들을 통해 전송된다. 일부 실시예들에 있어, 상기 제어 채널은 제어 버스를 포함하며, 상기 제 2 프로토콜의 상기 데이터는 상기 제어 버스를 통해 전송된다.
일부 실시예들에 있어, 상기 매체는 확장된 탐색을 통해 상기 제 2 프로토콜의 사용의 자격을 검증하기 위한 명령들을 포함하며, 상기 확장된 탐색은 패킷 구조 및 서비스 성능에 대한 성능들에 관한 정보의 교환을 포함한다.
일부 실시예들에 있어, 상기 매체는 상기 제 1 프로토콜의 데이터 송신의 단일 데이터 버스트로 상기 제 2 프로토콜의 하나 이상의 메시지들을 전송하기 위한 명령들을 포함한다. 일부 실시예들에 있어, 상기 매체는 인터럽트 메시지들을 통해 각각의 데이터 버스트를 조정하고, 복수의 상기 인터럽트 메시지들을 집성하며, 상기 집성된 인터럽트 메시지들을 단일 메시지로 전송하기 위한 명령들을 포함한다.
일부 실시예들에 있어, 상기 제어 채널을 관통하는 상기 제 1 프로토콜의 식별 필드는 2 바이트 이하의 크기를 갖는다.
일부 실시예들에 있어, 상기 매체는 상기 제어 채널을 통해 상기 제 1 프로토콜의 다른 명령들을 전송하기 위한 명령들을 포함하며, 상기 하나 이상의 범용 명령들은 상기 제 1 프로토콜의 상기 다른 명령들과 혼합될 수 있다. 일부 실시예들에 있어, 데이터의 상기 제 2 세트는 적어도 부분적으로 HID로부터의 입력으로 구성된다.
일부 실시예들에 있어, 상기 매체는 인터럽트 명령의 송신을 포함하는 확장된 중단 프로세스를 통해 상기 제 2 프로토콜의 사용을 종료하기 위한 명령들을 포함한다. 일부 실시예들에 있어, 상기 프로토콜은 MHL이다. 일부 실시예들에 있어, 상기 제 2 프로토콜은 USB이다. 일부 실시예들에 있어, 상기 하나 이상의 범용 명령들은 MHL WRITE_BURST를 포함한다.

Claims (33)

  1. 장치로서,
    데이터의 송신 또는 수신을 위한 송신기 또는 수신기;
    상기 장치의 상기 데이터를 처리하기 위한 프로세싱 엘러먼트; 및
    상기 데이터의 전송을 위한 커넥터로서, 상기 커넥터는 데이터 채널을 연결하고 제어 채널을 연결하는, 상기 커넥터;를 포함하고,
    상기 프로세싱 엘러먼트는 상기 제어 채널에서 제 1 프로토콜의 데이터의 전송을 위해 제공되며, 상기 제어 채널을 통한 데이터의 상기 전송은 제 2 프로토콜의 데이터의 전송을 위한 상기 제 1 프로토콜의 하나 이상의 범용(generic) 명령들의 사용을 포함하고;
    상기 제 2 프로토콜의 데이터는 상기 제 2 프로토콜의 상기 데이터가 상기 제 1 프로토콜을 통해 전송되기 전에 최적화되며; 및
    상기 데이터 채널에서의 상기 데이터 전송 및 상기 제어 채널에서의 데이터 전송이 적어도 부분적으로 동시적인(simultaneous), 장치.
  2. 청구항 1에 있어서,
    상기 데이터 채널은 하나 이상의 데이터 송신 라인들을 포함하는, 장치.
  3. 청구항 1에 있어서,
    상기 제어 채널은 제어 버스를 포함하는, 장치.
  4. 청구항 1에 있어서,
    상기 제어 채널을 통한 데이터의 상기 전송은 또한 상기 제 1 프로토콜의 다른 명령들을 포함하며,
    상기 하나 이상의 범용 명령들은 상기 제 1 프로토콜의 상기 다른 명령들과 혼합(intermix)될 수 있는, 장치.
  5. 청구항 1에 있어서,
    상기 제 2 프로토콜의 사용은, 패킷 구조 및 서비스 성능에 관한 성능들의 탐색을 포함하는 확장된 탐색을 통해 자격이 검증되는(qualified), 장치.
  6. 청구항 1에 있어서,
    상기 제 2 프로토콜의 하나 이상의 메시지들이 상기 제 1 프로토콜의 단일 데이터 버스트(burst)로 전송될 수 있는, 장치.
  7. 청구항 6에 있어서,
    각각의 데이터 버스트는 인터럽트 메시지들을 통해 조정되며, 복수의 상기 인터럽트 메시지들이 집성(aggregate)되고 단일 메시지로 전송되는, 장치.
  8. 청구항 1에 있어서,
    상기 제어 채널을 관통하는 상기 제 1 프로토콜의 식별 필드는 2 바이트 이하의 크기를 갖는, 장치.
  9. 청구항 1에 있어서,
    상기 제 2 프로토콜에 대한 상기 데이터는 적어도 부분적으로 휴먼 인터페이스 디바이스(human interface device: HID)로부터의 입력으로 구성되는, 장치.
  10. 청구항 1에 있어서,
    상기 제 2 프로토콜의 사용은 인터럽트 명령의 송신을 포함하는 확장된 중단(abort) 프로세스를 통해 종료되는, 장치.
  11. 청구항 10에 있어서,
    상기 인터럽트는 MHL™(Mobile High-Definition Link) 프로토콜 하의 SET-INT 명령인, 장치.
  12. 청구항 1에 있어서,
    상기 장치는 비디오 데이터 소스 또는 비디오 데이터 싱크인, 장치.
  13. 청구항 12에 있어서,
    상기 제 1 프로토콜은 MHL(Mobile High-Definition Link)인, 장치.
  14. 청구항 13에 있어서,
    상기 제 2 프로토콜은 USB™(Universal Serial Bus)인, 장치.
  15. 청구항 1에 있어서,
    상기 장치는 상기 제 1 프로토콜의 데이터와 제 3 프로토콜의 데이터 사이에서 변환하기 위한 모듈을 포함하는, 장치.
  16. 청구항 15에 있어서,
    상기 제 1 프로토콜은 MHL(Mobile High-Definition Link)이며, 상기 제 3 프로토콜은 HDMI™(High-Definition Multimedia Interface)인, 장치.
  17. 청구항 16에 있어서,
    상기 제 2 프로토콜은 USB(Universal Serial Bus)인, 장치.
  18. 방법으로서,
    제 1 장치에서, 데이터의 제 1 세트를 전송하는 단계로서, 데이터의 상기 제 1 세트는 제 1 프로토콜이고, 데이터의 상기 제 1 세트를 전송하는 단계는 커넥터를 통해 상기 제 1 프로토콜에 대한 데이터 채널을 통해 데이터를 송신하거나 또는 수신하는 단계를 포함하는, 단계; 및
    상기 제 1 장치에서, 데이터의 제 2 세트를 전송하는 단계로서, 데이터의 상기 제 2 세트는 제 2 프로토콜이고, 데이터의 상기 제 2 세트를 전송하는 단계는 상기 커넥터를 통해 상기 제 1 프로토콜에 대한 제어 채널을 통해 데이터를 송신하거나 또는 수신하는 단계를 포함하며, 상기 제 2 프로토콜의 상기 데이터가 상기 제 1 프로토콜의 상기 제어 채널을 통해 전송되기 전에 최적화가 상기 제 2 프로토콜의 데이터에 적용되는, 단계;를 포함하고,
    데이터의 상기 제 1 세트 및 데이터의 상기 제 2 세트가 적어도 부분적으로 동시에 전송되며;
    데이터의 상기 제 2 세트는 상기 제 1 프로토콜의 하나 이상의 범용 명령들을 사용하여 전송되는, 방법.
  19. 청구항 18에 있어서,
    상기 하나 이상의 범용 명령들은 범용 기입(write) 명령을 포함하는, 방법.
  20. 청구항 18에 있어서,
    상기 데이터 채널은 하나 이상의 데이터 송신 라인들을 포함하는, 방법.
  21. 청구항 18에 있어서,
    상기 제어 채널은 제어 버스를 포함하는, 방법.
  22. 청구항 18에 있어서,
    확장된 탐색을 통해 상기 제 2 프로토콜의 사용의 자격을 검증하는 단계를 더 포함하며,
    상기 확장된 탐색은 패킷 구조 및 서비스 성능에 대한 성능들에 관한 정보의 교환을 포함하는, 방법.
  23. 청구항 18에 있어서,
    상기 제 2 프로토콜의 하나 이상의 메시지들을 상기 제 1 프로토콜의 데이터 송신의 단일 데이터 버스트로 전송하는 단계를 더 포함하는, 방법.
  24. 청구항 23에 있어서,
    인터럽트 메시지들을 통해 각각의 데이터 버스트를 조정하는 단계, 및 복수의 상기 인터럽트 메시지를 집성하고 및 상기 집성된 인터럽트 메시지들을 단일 메시지로 전송하는 단계를 더 포함하는, 방법.
  25. 청구항 18에 있어서,
    상기 제어 채널을 관통하는 상기 제 1 프로토콜의 식별 필드는 2 바이트 이하의 크기를 갖는, 방법.
  26. 청구항 18에 있어서,
    상기 제어 채널을 통해 상기 제 1 프로토콜의 다른 명령들을 전송하는 단계를 더 포함하며,
    상기 하나 이상의 범용 명령들이 상기 제 1 프로토콜의 상기 다른 명령들과 혼합될 수 있는, 방법.
  27. 청구항 18에 있어서,
    데이터의 상기 제 2 세트는 적어도 부분적으로 휴먼 인터페이스 디바이스(human interface device: HID)로부터의 입력으로 구성되는, 방법.
  28. 청구항 18에 있어서,
    인터럽트 명령의 전송을 포함하는 확장된 중단 프로세스를 통해 상기 제 2 프로토콜의 사용을 종료하는 단계를 더 포함하는, 방법.
  29. 청구항 18에 있어서,
    상기 제 1 프로토콜은 MHL(Mobile High-Definition Link)인, 방법.
  30. 청구항 29에 있어서,
    상기 제 2 프로토콜은 USB(Universal Serial Bus)인, 방법.
  31. 청구항 29에 있어서,
    상기 하나 이상의 범용 명령들은 MHL WRITE_BURST를 포함하는, 방법.
  32. 청구항 31에 있어서,
    상기 하나 이상의 범용 명령들은 복수의 별개의 범용 이벤트들을 전달하기 위한 단일 SET_INT 메시지에 의해 인에이블(enable)되는, 방법.
  33. 프로세서에 의해 실행될 때 상기 프로세서로 하여금 동작들을 수행하도록 하는 명령들의 시퀀스들을 나타내는 저장된 데이터를 갖는 비-일시적 컴퓨터-판독가능 저장 매체로서, 상기 동작들은:
    제 1 장치에서, 데이터의 제 1 세트를 제 2 장치로 또는 제 2 장치로부터 전송하는 동작으로서, 데이터의 상기 제 1 세트는 제 1 프로토콜이고, 데이터의 상기 제 1 세트를 전송하는 동작은 커넥터를 통해 상기 제 1 프로토콜에 대한 데이터 채널을 통해 데이터를 송신하거나 또는 수신하는 동작을 포함하는, 동작; 및
    상기 제 1 장치에서, 데이터의 제 2 세트를 상기 제 2 장치로 또는 상기 제 2 장치로부터 전송하는 동작으로서, 데이터의 상기 제 2 세트는 제 2 프로토콜이고, 데이터의 상기 제 2 세트를 전송하는 동작은 상기 커넥터를 통해 상기 제 1 프로토콜에 대한 제어 채널을 통해 데이터를 송신하거나 또는 수신하는 동작을 포함하며, 상기 제 2 프로토콜의 상기 데이터가 상기 제 1 프로토콜의 상기 제어 채널을 통해 전송되기 전에 최적화가 상기 제 2 프로토콜의 데이터에 적용되는, 동작;을 포함하고,
    데이터의 상기 제 1 세트 및 데이터의 상기 제 2 세트가 적어도 부분적으로 동시에 전송되며;
    데이터의 상기 제 2 세트는 상기 제 1 프로토콜의 하나 이상의 범용 명령들을 사용하여 전송되는, 비-일시적 컴퓨터-판독가능 저장 매체.
KR1020157003631A 2012-07-11 2013-05-09 데이터 터널을 사용하는 인터페이스를 통한 복수의 프로토콜 데이터 엘러먼트들의 송신 KR102109431B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/546,904 US9087163B2 (en) 2012-07-11 2012-07-11 Transmission of multiple protocol data elements via an interface utilizing a data tunnel
US13/546,904 2012-07-11
PCT/US2013/040331 WO2014011317A1 (en) 2012-07-11 2013-05-09 Transmission of multiple protocol data elements via an interface utilizing a data tunnel

Publications (2)

Publication Number Publication Date
KR20150036539A true KR20150036539A (ko) 2015-04-07
KR102109431B1 KR102109431B1 (ko) 2020-05-13

Family

ID=49914986

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157003631A KR102109431B1 (ko) 2012-07-11 2013-05-09 데이터 터널을 사용하는 인터페이스를 통한 복수의 프로토콜 데이터 엘러먼트들의 송신

Country Status (7)

Country Link
US (1) US9087163B2 (ko)
EP (1) EP2873220B1 (ko)
JP (1) JP6266615B2 (ko)
KR (1) KR102109431B1 (ko)
CN (1) CN104620564B (ko)
TW (1) TWI579705B (ko)
WO (1) WO2014011317A1 (ko)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9198084B2 (en) 2006-05-26 2015-11-24 Qualcomm Incorporated Wireless architecture for a traditional wire-based protocol
US9398089B2 (en) 2008-12-11 2016-07-19 Qualcomm Incorporated Dynamic resource sharing among multiple wireless devices
US9264248B2 (en) 2009-07-02 2016-02-16 Qualcomm Incorporated System and method for avoiding and resolving conflicts in a wireless mobile display digital interface multicast environment
US9582238B2 (en) 2009-12-14 2017-02-28 Qualcomm Incorporated Decomposed multi-stream (DMS) techniques for video display systems
US9582239B2 (en) 2011-01-21 2017-02-28 Qualcomm Incorporated User input back channel for wireless displays
US9065876B2 (en) 2011-01-21 2015-06-23 Qualcomm Incorporated User input back channel from a wireless sink device to a wireless source device for multi-touch gesture wireless displays
US8964783B2 (en) 2011-01-21 2015-02-24 Qualcomm Incorporated User input back channel for wireless displays
US9787725B2 (en) 2011-01-21 2017-10-10 Qualcomm Incorporated User input back channel for wireless displays
US9413803B2 (en) * 2011-01-21 2016-08-09 Qualcomm Incorporated User input back channel for wireless displays
US10135900B2 (en) 2011-01-21 2018-11-20 Qualcomm Incorporated User input back channel for wireless displays
US10108386B2 (en) 2011-02-04 2018-10-23 Qualcomm Incorporated Content provisioning for wireless back channel
US9503771B2 (en) 2011-02-04 2016-11-22 Qualcomm Incorporated Low latency wireless display for graphics
US9525998B2 (en) 2012-01-06 2016-12-20 Qualcomm Incorporated Wireless display with multiscreen service
CN102662431B (zh) * 2012-03-14 2015-05-27 华为终端有限公司 一种扩展坞、利用该扩展坞进行的外接设备控制方法及系统
US9671874B2 (en) * 2012-11-08 2017-06-06 Cuesta Technology Holdings, Llc Systems and methods for extensions to alternative control of touch-based devices
TWI519148B (zh) * 2013-03-29 2016-01-21 正文科技股份有限公司 視訊播放裝置及視訊顯示裝置
US9237217B2 (en) * 2013-05-16 2016-01-12 I/O Interconnect, Ltd. Docking station for simultaneously establishing connections from a smartphone to an external display and USB device
US9785595B2 (en) * 2013-09-09 2017-10-10 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Multi-channel universal serial bus (USB) to subrate channel systems
CN104902209A (zh) * 2014-03-05 2015-09-09 上海华虹集成电路有限责任公司 Cbus与mcu间的数据传输系统
WO2015148724A1 (en) 2014-03-26 2015-10-01 Pqj Corp System and method for communicating with and for controlling of programmable apparatuses
US20150326884A1 (en) * 2014-05-12 2015-11-12 Silicon Image, Inc. Error Detection and Mitigation in Video Channels
US9767047B2 (en) 2014-10-03 2017-09-19 Citrix Systems, Inc. Methods and systems for filtering communication between peripheral devices and mobile computing devices
CN105611360B (zh) * 2015-12-30 2019-02-26 深圳市航盛电子股份有限公司 基于mhl实现sink设备与智能移动设备互联的方法及系统
US9854654B2 (en) 2016-02-03 2017-12-26 Pqj Corp System and method of control of a programmable lighting fixture with embedded memory
KR102461604B1 (ko) * 2016-02-16 2022-11-02 삼성전자주식회사 데이터 송수신 방법 및 장치
US10390114B2 (en) * 2016-07-22 2019-08-20 Intel Corporation Memory sharing for physical accelerator resources in a data center
JP7022540B2 (ja) * 2017-09-08 2022-02-18 キヤノン株式会社 情報処理装置およびその制御方法
WO2019146325A1 (ja) * 2018-01-25 2019-08-01 パナソニックIpマネジメント株式会社 情報処理装置およびコネクタの切り替え方法
JP2020048030A (ja) * 2018-09-18 2020-03-26 キオクシア株式会社 インタフェース装置及びプログラム並びにデータ通信方法
TWI741765B (zh) * 2020-08-28 2021-10-01 和碩聯合科技股份有限公司 連接裝置
CN117389935B (zh) * 2023-12-11 2024-03-08 井芯微电子技术(天津)有限公司 一种协议转换系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06295272A (ja) * 1993-04-08 1994-10-21 Matsushita Electric Ind Co Ltd 計算機と周辺機器との接続装置
JPH08249258A (ja) * 1995-03-10 1996-09-27 Yokogawa Electric Corp コンピュータ間の通信制御装置
JP2004506980A (ja) * 2000-08-11 2004-03-04 3ウェア、 インコーポレイテッド コンピュータネットワークを介してブロックレベルストレージアクセスを提供するためのアーキテクチャ
JP2009294797A (ja) * 2008-06-03 2009-12-17 Canon Inc 通信デバイス、変換アダプタ、通信デバイスの制御方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6336159B1 (en) * 1997-06-25 2002-01-01 Intel Corporation Method and apparatus for transferring data in source-synchronous protocol and transferring signals in common clock protocol in multiple agent processing system
CN100351824C (zh) * 2001-09-27 2007-11-28 Nxp股份有限公司 总线系统和用于连接到总线的总线接口
US7640378B2 (en) * 2005-03-11 2009-12-29 Icron Technologies Corporation Method and apparatus for improving the performance of USB mass storage devices in the presence of long transmission delays
JP4349349B2 (ja) * 2005-08-30 2009-10-21 ソニー株式会社 データ送受信システム、送信装置、受信装置及びデータ送受信方法
RU2436147C2 (ru) * 2006-12-22 2011-12-10 Квэлкомм Инкорпорейтед Усовершенствованный беспроводной usb-протокол и usb-концентратор
US7856520B2 (en) * 2008-01-04 2010-12-21 Silicon Image, Inc. Control bus for connection of electronic devices
US8090030B2 (en) 2008-01-04 2012-01-03 Silicon Image, Inc. Method, apparatus and system for generating and facilitating mobile high-definition multimedia interface
US8098690B2 (en) 2008-03-18 2012-01-17 Transwitch Corporation System and method for transferring high-definition multimedia signals over four twisted-pairs
US7788428B2 (en) * 2008-03-27 2010-08-31 Sony Ericsson Mobile Communications Ab Multiplex mobile high-definition link (MHL) and USB 3.0
WO2009147839A1 (ja) * 2008-06-03 2009-12-10 キヤノン株式会社 通信デバイス及び変換アダプタ
JP2010278969A (ja) * 2009-06-01 2010-12-09 Canon Inc 通信デバイス及び制御方法
US8275914B2 (en) 2008-10-16 2012-09-25 Silicon Image, Inc. Discovery of connections utilizing a control bus
KR101732057B1 (ko) * 2009-11-02 2017-05-02 삼성전자주식회사 Av 시스템에서 사용자 입력 백 채널을 제공하는 방법 및 기기
US8601173B2 (en) * 2010-06-30 2013-12-03 Silicon Image, Inc. Detection of cable connections for electronic devices
US8594002B2 (en) * 2010-09-15 2013-11-26 Intel Corporation Method and system of mapping displayport over a wireless interface
US20120068538A1 (en) 2010-09-20 2012-03-22 Cywee Group Limited Electronic device having data transmission interface capable of receiving external power and transmitting electronic data
KR20130006031A (ko) * 2011-07-08 2013-01-16 삼성전자주식회사 외부 디바이스와 모바일 디바이스 간의 인터페이스 방법 및 장치
KR101891147B1 (ko) * 2011-12-12 2018-08-23 삼성전자주식회사 에이치디엠아이 신호로 방송 수신기의 듀얼 디스플레이를 위한 휴대용 단말기의 장치 및 방법
US9537644B2 (en) * 2012-02-23 2017-01-03 Lattice Semiconductor Corporation Transmitting multiple differential signals over a reduced number of physical channels
US20130309911A1 (en) * 2012-05-21 2013-11-21 Ching-Jen Hsu Mobile High-Definition Link Converter
KR101277657B1 (ko) * 2012-05-30 2013-06-27 주식회사 케이티 외부 디바이스와 이에 도킹되는 휴대 단말 사이의 입력 이벤트 처리 방법
TWI508569B (zh) * 2012-09-14 2015-11-11 Realtek Semiconductor Corp 行動高畫質連結資料轉換器以及行動高畫質連結資料轉換方法
US20140122757A1 (en) * 2012-10-30 2014-05-01 Cloudcar, Inc. Vehicle data abstraction and communication

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06295272A (ja) * 1993-04-08 1994-10-21 Matsushita Electric Ind Co Ltd 計算機と周辺機器との接続装置
JPH08249258A (ja) * 1995-03-10 1996-09-27 Yokogawa Electric Corp コンピュータ間の通信制御装置
JP2004506980A (ja) * 2000-08-11 2004-03-04 3ウェア、 インコーポレイテッド コンピュータネットワークを介してブロックレベルストレージアクセスを提供するためのアーキテクチャ
JP2009294797A (ja) * 2008-06-03 2009-12-17 Canon Inc 通信デバイス、変換アダプタ、通信デバイスの制御方法

Also Published As

Publication number Publication date
CN104620564B (zh) 2018-05-15
JP2015528243A (ja) 2015-09-24
WO2014011317A1 (en) 2014-01-16
US9087163B2 (en) 2015-07-21
TWI579705B (zh) 2017-04-21
KR102109431B1 (ko) 2020-05-13
EP2873220A1 (en) 2015-05-20
CN104620564A (zh) 2015-05-13
EP2873220B1 (en) 2018-07-11
EP2873220A4 (en) 2016-02-24
JP6266615B2 (ja) 2018-01-24
TW201403341A (zh) 2014-01-16
US20140019653A1 (en) 2014-01-16

Similar Documents

Publication Publication Date Title
KR102109431B1 (ko) 데이터 터널을 사용하는 인터페이스를 통한 복수의 프로토콜 데이터 엘러먼트들의 송신
CN106209695B (zh) 给加载/存储通信协议提供低功率物理单元
CN102138297B (zh) 图形多媒体集成电路及其运作方法
EP1546897B1 (en) Bus connection system
US8127053B1 (en) System and method for peripheral device communications
EP2927814B1 (en) Tunneling messages between two or more devices using different communication protocols
US20190050366A1 (en) Device, event and message parameter association in a multi-drop bus
CN1551592B (zh) 数据传输控制装置、电子设备及数据传输控制方法
TW201624227A (zh) 用於觸控感測器資訊的通訊之設備、系統及方法
TWI226547B (en) Bus system and bus interface for connection to a bus
EP1433069B1 (en) Bus system and bus interface for connection to a bus
CN104380274B (zh) 用于优化的链路训练及管理的装置和方法
KR20180116717A (ko) 직렬 시스템 버스 인터페이스 및 직접메모리액세스 컨트롤러를 갖는 전자 시스템 및 그 동작 방법
TW200939025A (en) Providing a high-speed connection between a memory medium of a mobile device and an external device
JP2003316732A (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP2005504393A (ja) バス・システムおよびバス・インターフェース
US6651184B1 (en) Isochronous transfer mode on a universal serial bus with error correction algorithms
US20050273541A1 (en) Circuit and method for adaptively recognizing a data packet in a universal serial bus network device
JP2024015954A (ja) ホストブリッジ機能を有するusbハブ装置及びその制御方法
KR20170067715A (ko) Usb 스트림들을 통한 사이드 채널 액세스

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant