CN104620564B - 用于经由利用数据隧道的接口的多协议数据元素的传输的装置和方法 - Google Patents
用于经由利用数据隧道的接口的多协议数据元素的传输的装置和方法 Download PDFInfo
- Publication number
- CN104620564B CN104620564B CN201380047258.0A CN201380047258A CN104620564B CN 104620564 B CN104620564 B CN 104620564B CN 201380047258 A CN201380047258 A CN 201380047258A CN 104620564 B CN104620564 B CN 104620564B
- Authority
- CN
- China
- Prior art keywords
- data
- agreement
- mhl
- protocol
- burst
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/387—Information 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/038—Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/003—Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
- G09G5/006—Details of the interface to the display terminal
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/10—Use of a protocol of communication by packets in interfaces along the display data pipeline
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/12—Use of DVI or HDMI protocol in interfaces along the display data pipeline
Abstract
本发明的实施例一般涉及经由利用控制通道上的数据隧道的接口进行多协议数据元素的传输。装置的实施例包括用于数据的传输或接收的发射器或接收器;用于处理装置的数据的处理元件;以及用于传递数据的连接器,该连接器连接至数据通道并连接至控制通道。处理元件提供在控制通道中的第一协议的数据的传递,经由控制通道的数据的传递包括使用第一协议的一个或多个通用命令传递第二协议的数据。在第一协议上发送第二协议的数据之前优化该第二协议的数据,并且数据通道中的数据传递和控制通道中的数据传递至少部分是同时的。
Description
技术领域
本发明的实施例一般涉及数据通信领域,并且更具体地,涉及经由利用数据隧道的接口的多协议数据元素的传输。
背景
在某些设备中,连接器或其他物理接口可用于输送超过一种数据。例如,MHLTM(移动高清链路)规范允许连接器被用于MHL数据和USBTM(通用串行总线)数据两者的传输,其中当连接器不被用于MHL数据的传输时可传输USB数据。
然而,在任何时候,这种使用可被限于仅此类协议中的一个。例如,如果协议都利用连接器或其他物理接口的全部或大部分带宽,则不存在足够的带宽来同时容纳两种协议的数据。
附图简述
本发明的实施例在附图的图中是以示例方式而非限定方式示出的,在附图中相同的附图标记指代相同的要素。
图1是用于经由利用数据隧道的连接器提供多个协议数据的数据隧道传输的装置和系统的实施例的图示;
图2示出了在不使用媒体数据隧道的情况下用于使用命令传输数据的方法的实施例;
图3示出了用于使用媒体数据隧道传输数据的方法的实施例;
图4A和4B示出了用于利用媒体数据隧道通信的消息结构的实施例;
图5A、5B、5C、5D、5E、5F和5G示出了与包括媒体数据隧道的装置或系统的实施例结合使用的数据分组;
图6示出了在媒体数据隧道实现中的扩展头部的分组结构的实施例;
图7A、7B和7C示出了与标准HID结构相比,媒体数据隧道编码器的实施例的有效载荷结构;
图8示出了媒体数据隧道的实施例的层;
图9示出启用HDMI的视频显示器和启用HDMI的源设备之间的连接;
图10示出了在HDMI/MHL加密狗(dongle)和启用HDMI的视频源设备之间的连接;
图11示出了在启用MHL的视频阱(sink)设备和启用MHL的视频源设备之间的连接;
图12示出了在HDMI/MHL加密狗和启用MHL的视频源设备之间的连接的实施例;
图13示出了在启用MHL的视频阱设备和启用MHL的视频源设备之间的连接;
图14示出了移动设备与数据外围设备的USB链路;
图15示出了移动设备与人机接口设备的链路的实施例;
图16示出了移动设备与人机接口设备的链路的实施例;
图17示出了包括用于传输某些数据的数据隧道的实施例或系统;以及
图18是示出了用于利用媒体数据隧道的通信的过程的实施例的时序图。
概述
本发明的实施例一般涉及经由利用数据隧道的接口的多协议数据元素的传输。
在本发明的第一方面中,装置的实施例包括用于数据的传输或接收的发射器或接收器;用于处理装置的数据的处理元件;以及用于传递数据的连接器,该连接器连接至数据通道并连接至控制通道。处理元件用于提供在控制通道中的第一协议的数据的传递,经由控制通道的数据的传递包括将第一协议的一个或多个通用命令用于传递第二协议的数据。在第一协议上发送第二协议的数据之前优化该第二协议的数据,并且数据通道中的数据传递和控制通道中的数据传递至少部分是同时的。
在本发明的第二方面中,方法的实施例包括:在第一装置处传递去往或来自第二装置的第一组数据,该第一组数据是第一协议的,其中传输第一组数据包括经由连接器在第一协议的数据通道上传输或接收数据;在第一协议上发送第二协议的数据之前对该第二协议的数据应用优化;并且在第一装置处,传递去往或来自第二装置的第二组数据,该第二组数据是第二协议的,其中传递第二组数据包括经由连接器在第一协议的控制通道上传输或接收数据,其中第一组数据和第二组数据至少部分地同时被传递,并且第二组数据使用第一协议的一个或多个通用命令传递。
详细描述
本发明的实施例一般涉及经由利用数据隧道的接口的多协议数据元素的传输。
如此处所使用的:
“移动设备”意指电话(诸如,智能电话)、膝上型计算机、手持式计算机、平板计算机、移动互联网设备(MID)或其它移动电子设备。
“处理元件”意指提供数据的处理的任何电子组件、模块或其他单元,包括,但不限于,通用或专用处理器、中央处理单元(CPU)、嵌入式处理器、或视频处理器。处理元件可以是还提供除数据的处理之外的功能的电子组件、模块或其他单元。
某些接口可允许不同协议的数据经由连接器或其他物理接口传递。在示例中,MHL规范允许使用五引脚连接器来中继音频/视频(A/V)数据(MHL)并且当连接器不用于MHL时,该连接可用于支持USB(通用串行总线)数据。然而,MHL规范不提供对五引脚连接器同时携载A/V和USB数据两者的支持。MHL规范进一步定义用于使用某些命令在MHLCBUS(控制总线)上传递通用数据的过程,这些命令是WRITE_BURST(写入_突发)和SET_INT(设置_INT)命令。用于在MHL中传递数据的该定义是通用的,而没有任何标识的用例。虽然此处的描述一般涉及MHL和USB来作为示例,但实施例不限于这些特定的协议。如本文中所使用的,通用命令是不限定被传输的数据的特定形式的命令,并因此可用于多种不同类型的数据传递。
在一些实施例中,装置、系统或方法提供了使用接口来通过数据隧道的使用至少部分地同时使用不同协议携载数据。在特定的实现中,装置、系统或方法应用MHL通用WRITE_BURST和SET_INT命令来同时支持第一协议(诸如,A/V MHL数据)和某些第二协议数据(诸如,USB),其中第二协议数据可被限制于某些数据元素。例如,第二协议数据可以是在MHL连接上的低速USB人机接口设备(HID)数据,诸如,游戏控制数据、光标数据(诸如,鼠标数据和触摸板或触摸屏数据)、和键盘数据。然而,实施例不限于其中协议数据被限制于某些数据元素的操作。在一些实施例中,通过在移动设备和远程数据连接器之间创建数据隧道或桥使多个协议能力可用,其中数据隧道被称为媒体数据隧道(MDT)。在一些实施例中,远程数据连接至物理地位于启用MHL的显示器中、或在HDMITM(高清多媒体接口)到MHL加密狗中,而本地数据连接器可位于移动设备中。
在一些实施例中,除在协议(诸如,MHL规范)下的媒体数据隧道扩展操作之外,装置可将移动设备隧穿至启用MHL的显示器或任何HDMI到MHL加密狗(HDMI to MHL dongle)中的任何低速数据连接器。在示例中,可在媒体数据隧道上携载用于终端接入的串行通信。
在一些实施例中,装置、系统或方法提供确保通用写入命令(诸如,MHL WRITE_BURST)为HID和等同低速应用提供足够的带宽和适当的低的等待时间的实现指导。命令(诸如,WRITE_BURST)可被用于以比数据传输速度慢的速度中继数据。然而,该性能可能不满足HID和等同应用的需要。在一些实施例中,媒体数据隧道被用于为现实世界用例提供足够的性能,从而减少WRITE_BURST限制以为HID和其他应用提供足够的性能。
在一些实施例中,装置、系统或方法使协议(诸如,MHL)能够是多功能总线。通过设计,MHL旨在在移动环境下支持音频/视频(A/V)。在一些实施例中,装置、系统或方法扩展能力以也支持人机输入和外围设备启用(peripheral-enabling)数据传递。在一些实施例中,通过允许MHL同时携载MHL和低速USB数据来扩展能力。然而,实施例不限于任何特定协议。例如,因为通用机制用于支持附加的数据传递,第一协议数据可与来自任何低速总线的数据配对。
MHL规范通过实现要求和超时(timeout)来限制其他协议的数据隧穿。规范施加用于接收GRT_WRT消息的10ms超时。MHL设备本应当消耗大多数的允许超时周期,但MHL设备将使用MHL的WRITE_BURST命令将隧穿减速为100事件/秒以下。MHL规范还定义类似地减少带宽的WRITE_BURST命令的三阶段协调过程。媒体数据隧道通过用于发现和协调的附加指导来提供对MHL规范中的限制的互操作解决方案,该附加指导满足MHL规范同时改善WRITE_BURST支持的带宽。
在相同连接器上提供第一协议和第二协议两者(诸如USB和MHL)的全功能集可能是不可能或不现实的。MHL规范不显式提供用于支持USB数据的任何方法。在一些实施例中,装置、系统或方法允许多种协议数据类型的传输,当协议各正常地使用端口的全带宽或大量带宽。例如,虽然MHL允许使用A/V或USB外围设备的单个五引脚连接器,但端口功能被限制成在任何时刻互斥地提供A/V和USB服务。虽然MHL将A/V和USB端口结合到单个五引脚连接器中,但端口不能照常规同时用于MHL和USB服务,因为为了彼此独立的目的,USB和MHL规范各分配相同的差分对的全带宽,并由此如果并行地使用,MHL和USB将冲突。
在一些实施例中,尽管连接器缺乏带宽来支持例如到PC的启用USB的链路,连接器仍可同时用于A/V和低速USB外围设备。在一些实施例中,可使用第一协议顺应命令在包括第一协议控制总线的控制通道上传输第二协议外围数据(诸如,USB外围数据)。在示例中,MHL顺应命令的使用确保USB数据不干扰CBUS上的MHL数据。而且,CBUS上的USB数据的编码留下符合MHL规范的用于传输A/V数据的差分对。因为单线控制总线一般提供差分对可用的带宽的一小部分,因此装置或系统可被限于低速数据,诸如低速USB数据,其中媒体数据隧道可能不够快至足以支持移动设备和电脑之间的启用的USB连接。
在常规设备中,移动设备上的五引脚USB端口主要用于以其中将不需要端口提供A/V服务的模式将设备链接至PC。例如,MHL规范不被定义成同时提供USB数据和A/V服务。作为替代,MHL包括WRITE_BURST和SET_INT命令,WRITE_BURST和SET_INT命令在MHL规范中被定义以用于通用数据使用,这种命令可例如用于提供固件升级或不那么频繁地中继小块的专有数据。
然而,随着新移动业务的到来,智能手机被认为是移动计算机,该移动计算机可驱动桌面显示器,并同时接收游戏控制器、光标(鼠标、触摸板或触摸屏)、或键盘输入。在一些实施例中,移动设备用于通过独立的连接器和缆线为这些操作并行地提供A/V和USB服务。
在一些实施例中,媒体数据隧道包括诸如MHL WRITE_BURST和SET_INT命令之类的命令的应用,该命令允许使用MHL作为MHL发射器和接收器之间的多功能总线。在一些实施例中,媒体数据隧道提供两层隧道,该两层隧道利用MHL的链路控制总线链路和转换层(translation layer)。通过使用这些层,媒体数据隧道受益于在链路和转换层处的MHL的流量控制。类似地,媒体数据隧道可受益于在链路和转换层处的MHL的错误检测。在一些实施例中,媒体数据隧道的实现可任选地扩展MHL特征。在一些实施例中,实现流量控制、错误检测和附加重试取决于由隧穿的总线创建的性能或特征期望。在一些实施例中,在在MHL协议中传递优化的数据之前对USB应用优化。作为本文中所使用的,优化的数据指是的已经受优化或适应过程的数据并且不暗示这种数据表示最佳数据形式或解决方案。
图1是用于经由利用数据隧道的连接器提供多个协议数据的数据隧道传输的装置和系统的实施例的图示。在该图示中,源设备110(诸如,移动设备或其他装置)与接收阱160(诸如,电视机或其他视频系统、计算机、游戏控制台、MHL加密狗、或其他装置)耦合。源设备110和阱设备160可经由缆线150耦合。缆线150可包括MHL兼容缆线,该MHL兼容缆线具有包括用于数据传输的单向差分对的数据通道和包括双向(单线)控制总线(CBUS)的控制通道。一个或多个人机接口设备与阱设备160耦合。
源设备110可包括用于连接缆线150的连接器140,诸如与MHL兼容的USB插座。阱设备可包括用于缆线的连接的连接器190,其中连接器可替代地是USB连接器或可以是与通常称为加密狗(诸如,MHL到HDMI加密狗)的显示器的SOC或转换元件耦合的另一插座(诸如,HDMI插座)。
在一些实施例中,源设备110和阱设备160都包括包含第二协议的电路的元件,其中第二协议可以是USB。在该图示中,源设备110包括第二协议元件120,第二协议元件120可操作为USB主机,并且阱设备160包括第二协议元件170,第二协议元件170可操作为USB设备。
在一些实施例中,源设备110和阱设备160利用媒体数据隧道来至少部分地与以第一协议传递的数据同时地(在同一时间或在重叠的时间周期)传递第二协议的数据,其中在以第一协议传递之前对第二协议的数据应用优化或适应。在一些实施例中,媒体数据隧道包括使用缆线150的控制总线来传递双向数据,诸如USB数据。在一些实施例中,第一协议的标识字段利用最佳或最小量的数据来经由控制总线标识接收方。例如,第一协议的标识字段具有等于两字节数据的尺寸。
在一些实施例中,阱设备160源设备110使用第一协议的控制总线命令来传递第二协议的数据,其中第二协议的数据可以是第二协议的全数据集的子集。例如,第二协议的数据的子集可包括人机接口设备数据。在该图示中,一个或多个人机接口设备155可与阱设备160耦合。一个或多个人机接口设备155可包括键盘、鼠标、触摸垫或触摸屏、游戏控制器、或用户的意图可通过其被输入的其他设备。对人机接口设备的支持被示为源设备110的人机接口支持130和阱设备160的人机接口支持180。
在一些实施例中,可在第一协议的数据传输的单个突发(burst)中发送第二协议的一个或多个消息。在一些实施例中,通过中断消息来协调每个数据突发。在一些实施例中,中断消息的一些部分被聚合并在单个消息中传递。
在一些实施例中,媒体数据隧道包括经由第一协议的某些通用命令传输第二协议中的数据,该第一协议的某些通用命令可包括MHL的通用命令。在该图示中,源设备110和阱设备160被示为包括通用命令支持,该通用命令支持被示为源设备的通用命令支持125和接收设备的通用命令支持175,其中这种支持可包括MHL的支持,该MHL的支持包括命令WRITE_BURST和SET_INT的支持。
在一些实施例中,例如,阱设备160可从人机接口设备接收HID命令数据,诸如,描述键盘敲键、游戏控制器的输入或运动、或光标(鼠标、触摸板或触摸屏)运动的数据。在一些实施例中,阱设备160和源设备110可利用一个或多个通用命令来传输这种HID数据,其中可利用由源设备110和接收设备160之间的缆线150提供的双向控制总线来完成这种数据的传输。USB是双向的并且当设备使用插座(诸如,USB微型AB插座)时,USB端口可像USB主机或USB设备起作用。在该图示中,为了媒体数据隧道的目的,源设备110可首先充当WRITE_BURST接收器,并且具有耦合的人机接口设备的A/V源设备可首先充当WRITE_BURST发送器以用于传输HID数据,但实施例不限于此,并且可颠倒设备的角色。
图2示出了在不使用媒体数据隧道的情况下用于使用命令(诸如,MHLWRITE_BURST命令)传输数据的方法的实施例。在该图示中,请求设备200(诸如,用于与移动设备连接的支架(cradle))与响应设备205(诸如,移动电话)耦合。在一些实施例中,当新的HID事件发生时,请求设备200提供中继REQ_WRT位被设置的SET_INT命令212以请求允许写入响应设备205(诸如,移动设备)的暂存器寄存器。响应设备205检测REQ_WRT位214,并且通过包含GRT_WRT位216的SET_INT命令向请求设备授权写入请求的许可。请求设备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(诸如,用于与移动设备连接的支架(cradle))与响应设备305(诸如,移动电话)耦合。在一些实施例中,当系统准备好时,请求设备305写入DSCR_CHG和REQ_WRT 310位被设置的SET_INT命令。响应设备305检测REQT_WRT315位,并且采用具有GRT_WRT位的SET_INT命令来响应320。请求设备300检测GRT_WRT位325。如果授权位被设置330,则发送器取得对接收器暂存器寄存器的访问并且可等待新的HID事情335。根据新的HID事件335,存在由请求设备300进行WRITE_BURST命令340的发起和写入操作345,请求设备300返回写入DSCR_WRT REQ_WRT 310。在一些实施例中,响应设备检测WRITE_BURST 350和读取暂存器。在一些实施例中,在响应设备从其本地暂存器取回数据之前,响应设备等待后面的DSCR_CHG和REQ_WRT位被设置的SET_INT命令。
在一些实施例中,在CBUS数据隧道的每个端处,以其他方式负责监视并控制MHL发射器或接收器的处理元件实现媒体数据隧道编码器和解码器逻辑。在操作中,MHL发射器或接收器通过处理元件(诸如,微控制器或片上系统(SoC))服务。由处理元件执行的驱动器管理(administer)服务逻辑。按照MHL规范,MHL发射器可位于源装置或系统(诸如,电话、平板电脑或其它移动设备)中。MHL接收器可位于阱装置或系统(诸如,对接站、监视器,或TV显示器)中。MHL接收器还可位于MHL到HDMI加密狗中。在一些实施例中,直接或通过附加软件层扩展MHL发射器或接收器驱动器以提供媒体数据隧道编码和解码支持,诸如,以下所描述的桥接过程的一部分。
阶段1:隧道的发现和建立。在操作中,在第一阶段中,MHL发射器和接收器通过MHL指定的发现建立隧道链路。MHL发射器和接收器通过遵照MHL指定的发现序列的MHL的数据交换阶段建立CBUS数据隧道。作为数据交换的一部分,发射器和接收器交换设备能力寄存器。通过WRITE_STAT的传输经由每侧中继所断言的DCAP_RDY位来发起该交换。该交换跟随有每侧任选地并且独立地使用SET_INT命令传输DCAP_CHG位。作为响应,WRITE_STAT和SET_INT接收方使用READ_DEVCAP命令的序列检索SET_INT发送者的能力。从所接收的数据,每侧标识其MHL对等层的SP_SUPPORT(SP_支持)、SCRATCHPAD_SIZE(暂存器_大小)、和ADOPTER_ID(接受器_ID)。在一些实施例中,SP_SUPPORT通知媒体数据隧道参与者其对等体的支持WRITE_BURST的能力。SCRATCHPAD_SIZE允许媒体数据隧道参与者评估其对等体中的缓冲支持。ADOPTER_ID被缓存并且由MDT参与者重新使用作为所有随后的WRITE_BURST命令的MDT分组头部。
在一些实施例中,媒体数据隧道将发现扩展成包括关于与分组结构和服务性能有关的媒体数据隧道能力的信息的交换。在通过媒体数据隧道开始有效载荷交换之前,媒体数据隧道发射器标识用于未来WRITE_BURST分组的头部数据或完整分组结构。在一些实施例中,媒体数据隧道接收器的责任是接受发射器的条款并且还使用标准WRITE_BURST机制中继任何约束。作为替代,接收方可通过允许发射器超时来拒绝所提出的分组结构。而且,响应于媒体数据隧道接收方的约束,媒体数据隧道发射器可继续进行媒体数据隧道传输或基于其限制取消媒体数据隧道接收方的资格并向用户返回错误。
在一些实施例中,在没有以下描述为媒体数据隧道编码的一部分的元素的情况下,在扩展的发现期间使用的WRITE_BURST命令遵守MHL规范。
在一些实施例中,对于需要确定性性能的任何媒体数据隧道实现,媒体数据隧道接收方在扩展的发现期间中继其性能约束。MHL的WRITE_BURST机构的性能是确定性的,但在某些要求中可能是不现实的。MHL规范要求WRITE_BURST接收方在接收REQ_WRT的10ms内中继GRT_WRT。规范还批准(mandate)在在前分组的100ms内发送分组。一致地,两个超时允许两秒来完成16字节WRITE_BURST。虽然这些约束提供最坏情况性能的指导并且使MHL的WRITE_BURST具有确定性,允许的延迟将数据速率减少到低于大多数应用,并在媒体数据隧道的发现期间批准进一步赋予资格。
在用于使用下面定义的mdt_burst_t分组结构中继HID光标、游戏控制器、和键盘事件数据的实现中,发射器通知接收方所选择的数据格式。在一些实施例中,由于MHL规范不批准DCAP_RDY或DCAP_CHG的及时中继,因此为了及时地发现所有媒体数据隧道,参与者在发送PATH_EN(路径_EN)的10秒内使用WRITE_STATE(WRITE_状态)命令来中继DCAP_RDY。此外,媒体数据隧道参与者在发送PATH_EN的至少20秒或由MHL规范批准的无论怎样更短的间隔内从其对等体检索设备能力寄存器信息。在该交换之后并在HID数据的传输之前,媒体数据隧道发射器发送具有13字节有效载荷的'MDTREQxy_FULL(MDTREQxy_全部)'的WRITE_BURST。当该字符串的x和y元素等于‘01’的2字节ASCII阵列时,字符串表示令牌。该令牌通知媒体数据隧道接收器WRITE_BURST数据将遵守下面定义的mdt_burst_01_t结构。
如果媒体数据隧道接收方准备好接收由'MDTREQxy_FULL'标识的分组,则接收方采用包含'MDTACK_abcd'的WRITE_BURST来响应。'MDTACK_'字符用作令牌。该令牌发信号通知准备好接收HID数据。'abcd'字符用作占位符。占位符包含表示表示16进制的四个半字节的ASCII字符。这四个字符反映接收方需要接收事件的最大时间(以微秒为单位):响应于REQ_WRT,处理DSCR_CHG中断、和读出其暂存器。然而,如果接收方不能服务由'MDTREQxy_FULL'标识的分组,则接收方通过避免向媒体数据隧道发射器的WRITE_BURST传输达40毫秒——超过媒体数据隧道发射器尝试3次重试的最小时间几毫秒——来允许发送器超时。
在一些实施例中,对于HID应用,可能需要媒体数据隧道接收器在时间周期(诸如,10ms)内处理所接收的WRITE_BURST。至少,启用USB的HID设备遵守USB规范的低速标准。根据该标准,两个事件报告之间的最小间隔等于或超过10毫秒。为了使媒体数据隧道跟得上HID设备的最快的USB低速,媒体数据隧道接收方采用'MDTACK_2710'或'MDTACK_abcd'来响应'MDTREQxy_FULL',在'MDTACK_abcd'中abcd是反映0和0x2710之间(10,000微秒)的十六进制(HEX)值的ASCII字符的组合。在媒体数据隧道发射器不接收具有预期有效载荷的WRITE_BURST的情况下,发射器可通知用户并且拒绝未来的对等同媒体数据隧道服务的请求。
图4A和4B示出了用于利用媒体数据隧道通信的消息结构的实施例。在该图示中,在C语法中提供的软件示出了用于HID事件的分组结构,HID事件包括光标事件、游戏控制器事件和键盘事件。
图5A、5B、5C、5D、5E、5F和5G示出了与包括媒体数据隧道的装置或系统的实施例结合使用的数据分组。在该图示中,表格提供了媒体数据隧道数据分组的寄存器格式的视图。在一些实施例中,数据分组可包括键盘、鼠标、游戏控制器、和其他光标驱动设备的MDT事件。
在图5A至5G示出了用于以下的格式。
图5A示出了MDT BURST分组505的格式。
图5B示出了具有截短的、连续拖尾(trailing)0的键盘的MDT_EVENT(MDT_事件)的格式(510)。
图5C示出了具有超过三个键码(key code)或与第二事件一起被封装到WRITE_BURST中的键盘的MDT_EVENT的格式515。
图5D示出了遵守启动协议或支持4位HID事件并使用相对坐标的鼠标的MDT_EVENT的格式520。
图5E示出了需要供应商特定功能或与第二事件一起封装到WRITE_BURST中的鼠标的MDT_EVENT的格式555。
图5F示出了游戏控制器的MDT_EVENT的格式560。
图5G示出了支持相对坐标和多点触摸的其他光标驱动设备的MDT_EVENT的格式565。
在一些实施例中,媒体数据隧道发射器也可发送‘MDTREQxy_CURSOR(MDTREQxy_光标)’或‘MDTREQxy_KEYS(MDTREQxy_键)’来代替‘MDTREQxy_FULL’发信号通知其未来WRITE_BURST限于仅来自单个光标驱动设备的事件或仅键盘事件。如果媒体数据隧道发射器在WRITE_BURST中发送“MDTREQxy_CURSOR”,则媒体数据隧道接收方可预期WRITE_BURST有效载荷具有限于mdt_cursor_event_t(mdt_光标_事件_t)结构的mdt_event(mdt_事件)内容。如果媒体数据隧道发射器在WRITE_BURST中发送“MDTREQxy_KEYS”,则媒体数据隧道接收方可预期WRITE_BURST有效载荷具有限于mdt_keyboard_event_t(mdt_键盘_事件_t)结构的mdt_event内容。
在一些实施例中,为了支持游戏控制器,MDT发射器应当发送“MDTREQxy_FULL”。常用的游戏控制器包括各种物理接口:方向垫、两个模拟棒、和4个或更多的按钮。虽然这种物理输入和MDT事件之间的映射可能是控制器特定的,但控制器通常通过将游戏控制器映射成鼠标和键盘事件来中继用户输入。方向垫用于产生上、下、左、和右按钮,MDT键盘事件,就好像事件来自键盘。
在游戏控制器实现中,isMouseNot(是否是鼠标)设置为0的光标事件携载来自模拟摇杆的数据,同时使用mdt_event_header_t(mdt_事件_头部_t)内的isPortB(是端口B)字段来用于区分左摇杆和右摇杆。最后,按钮被编码成光标事件内的按钮字段和键,但仅使用每个按钮切换的一个机制来发送。而且,所有按钮切换可被映射至每个USB HUT1.12和Linux input.h(输入.h)的键切换。
具体而言,Linux的input.h为10个按钮提供在0x100和0x109之间的范围内的键码,使得0x100中继BTN_0事件并且0x109中继BTN_9事件。并行地,前三个按钮映射到在isPortB字段被设置为0下发送的光标事件中的三个位,并且次三个按钮映射到在isPortB字段被设置为1下发送的光标事件的三个位。在一些实施例中,在发射器和接收器处的并行映射可允许发射器将按钮事件与来自方向键或模拟摇杆的事件配对的灵活性、确保接收器适当地解码事件、并允许系统的减少的平均事件等待时间。
由于UI系统通常不区分物理HID设备之间的区别并且将特定类型的所有事件聚集到相同队列中,因此媒体数据隧道不保证HID设备标识,除非使用游戏控制器分组结构中继设备数据。在单个外围设备包含被分配相同isPortB field字段值的多个逻辑鼠标接口的情况下,媒体数据隧道接收器将所有事件归因于由isPortB字段标识的源。应用应当需要区分源,在所提出的物理外围设备中的每个逻辑鼠标设备将需要使用游戏控制器分组结构(其中isKeyboard(是键盘)=0、isNotMouse(不是鼠标)=1、isGAME(是游戏)=1)和标识设备ID字段中的ID的唯一接口来发送HID事件。对于可能需要中继ID信息的键盘类型设备和其他不可预见的外围设备,媒体数据隧道提供保留(RSVD)字段来用于定义扩展。此处所描述的用于在媒体数据隧道上传输HID数据的发现机制不限于HID数据。该机制可用于建立媒体数据隧道上的RS232、RS485和其他低带宽数据的交换的预期。作为示例,当媒体数据隧道携载RS232数据时,初始发现阶段可用于标识链路连接性质:波特率、起始位的使用、数据位的数量、校验位的使用、和停止位的数量。
阶段2:编码和解码数据。在一些实施例中,媒体数据隧道对等体编码和解码数据以用于通过媒体数据隧道传输。在媒体数据隧道发射器将数据写入至暂存器之前,媒体数据隧道发射器编码数据。编码器添加任选校验和后缀、添加头部前缀、并将该数据分解到14个字节分组中。在接收端,在从暂存器读出数据之后,媒体数据隧道接收方解码该数据。
MHL规范采用在链路和转换层处的基本错误检测将使用WRITE_BURST命令的传输限制成16数据字节每WRITE_BURST命令。除16个数据字节的最大限度之外,MHL规范要求每个WRITE_BURST命令包含采用接收方的ADOPTER_ID初始化的两个数据字节的最小值。然而,WRITE_BURST的实际长度不被编码到命令中或没有在数据字节中被携载。按照MHL规范,接收方在WRITE_BURST接收期间使字节计数器递增,直到接收方收到在最后数据字节之后的EOF(文件结束)控制分组。在接收方接收到WRITE_BURST命令和偏移数据分组之后,该接收方启动其计数器。一旦被启动,计数器跟踪携载WRITE_BURST数据字节的每个MHL数据分组。不管分组类型如何,在CBUS上发送的每个分组通过两个头部位、一个控制位、和一个奇偶校验位提供基本链路层错误检测。在接收到具有意外的奇偶校验、控制或头部数据的分组的情况下,分组接收方采用NACK来响应,NACK是作为其MHL链路层逻辑的一部分。MHL规范还为WRITE_BURST命令提供在转换层处的错误检测。接收方可采用ACK或ABORT控制分组来响应WRITE_BURST以中继其转换层验证的结果:偏移数据分组中的偏移值的评估、所接收的数据字节的计数、和2字节ADOPTER_ID的验证。
在一些实施例中,由于MHL规范提供基本错误检测,因此通过使用单个字节校验和后缀,媒体数据隧道特定错误检测可以是任选的。对于需要增强的错误检测或错误校正的应用,编码器可计算WRITE_BURST数据字节上的合适的字节校验和。在一些实施例中,校验和算法可以是奇偶校验、模块化和、CRC(循环冗余校验)、或者在隧道的两侧上使用的作为媒体数据隧道编码器和媒体数据隧道解码器的一部分的任何其他的算法。在一些实施例中,通过可任选的校验和捕获的错误的错误处理可以是应用特定的。例如,错误处理可包括由校验和允许的校正、由预定义的确认逻辑或者通过在没有进一步消耗(consumption)的情况下简单地丢弃错误数据启用的重试机制。不管实施如何,媒体数据隧道发射器在媒体数据隧道发现期间传送分组校验和后缀方法的包含物(inclusion)。
在一些实施例中,对于用于在媒体数据隧道上发送HID数据的特定实现,不使用校验和。用户输入的HID报告可被视为流。在罕见错误的情况下,用户可容易地更改输入。在鼠标报告没有到达媒体数据隧道接收器的事件中,用户可能做出附加的鼠标移动以中继预期的信息。类似地,用户可能重复没有被系统识别的按钮或通过首先删除之前的输入以及然后发送修正来校正被误解的键按压(key press)。
在一些实现中,需要媒体数据链路编码器添加头部,诸如包括由两个强制性字节组成的头部。MHL规范要求在WRITE_BURST中的偏移数据分组之后的前两个字节传送接收方的ADOPTER_ID。由于ADOPTER_ID由MHL、LLC(负责管理MHL联盟以及MHL规范的采纳、授权和推广的实体)分配,因此不可能使用WRITE_BURST的前两个字节中的变量值。为了满足MHL要求,发送器在MHL发现期间检索之前描述的ADOPTER_ID,并随后使用该值来初始化暂存器的前两个字节。
在一些实施例中,为了减少等待时间,媒体数据隧道发送器对于一连串的WRITE_BURST仅设置暂存器的ADOPTER_ID字节。在随后的传输中,如果暂存器没有被传入WRITE_BURST覆盖,则媒体数据隧道发送器要写入暂存器的字节将减少两个。
在前两个字节之后,头部可以对媒体数据隧道实现而言独特的方式可任选地扩展,只要解码器包含相同的头部定义。如果MHL采纳者打算使用WRITE_BURST命令以用于媒体数据隧道以及其他目的(诸如,固件升级),则头部可包含附加的位来将WRITE_BURST与媒体数据隧道相关联。
在用于使用之前定义的mdt_burst_t来中继HID鼠标和键盘事件数据的实现中,头部是四位结构的mdt_event_header_t。在一些实施例中,为了允许对WRITE_BURST的复用以用于HID及其他未定义媒体数据隧道应用,在头部中最高有效位(MSb)指示HID使用。在MSb之后的三个位限定(qualify)有效载荷中的数据。isPortB位标识事件的物理起源,mdt_event_header_t支持多达由唯一端口标识的2个HID设备。isKeyboard位标识mdt_event并集(union)的内容;如果isKeyboard是‘1’,则mdt_event并集指向mdt_keyboard_event_t。然而,如果isKeyboard是‘0’,则mdt_event并集指向mdt_mouse_event_t。isNotLast bit允许在单个WRITE_BURST内对多个HID事件的复用以用于多点触摸和批准对更高事件速率的支持的其他应用。当isNotLast被设置为0时,该位还标识通过转换或优化适应的等待时间优化的键盘和鼠标分组结构。当isNotLast被设置为1时,接收器将检查暂存器偏移9字节来确定在WRITE_BURST内是否存在第二事件。在发射器不打算在单个WRITE_BURST聚集两个事件,但需要全部7字节有效载荷来代替使用适应的分组以用于其主要事件的情形中,发射器将在暂存器偏移9处的MSb设置为0以确保MDT接收器忽略暂存器字节9至16。
虽然MHL规范将使用WRITE_BURST命令的传输限制为十六数据字节,但强制的ADOPTER_ID减少了所允许的有效载荷。在发射器处的用于任何WRITE_BURST的编码器分解数据,该数据被发送到14个或更少的数据字节有效载荷中。
在一些实施例中,除了ADOPTER_ID开销之外,需要在媒体数据隧道发射器中的编码器考虑媒体数据隧道头部。附加的头部位或字节进一步减少了可能的WRITE_BURST有效载荷的大小。虽然可能支持使用多个WRITE_BURST传送的分组,但缓慢的数据速率边缘化媒体数据隧道实现中的该特征。
对于HID在媒体数据隧道上的传输,4位头部开销每个分组的第一半字节。如以上结构中所示的,鼠标和键盘事件被修改以允许四位头部。
在一些实施例中,除了HID在媒体数据隧道上的传输之外,可使用以下分组结构。作为示例,_implementation_specific(_实现_特定)并集使用WRITE_BURST中的所有十四个剩余的数据字节以用于由扩展的头部和数据组成的数据、用于具有校验和字节的数据、或用于具有扩展的头部和校验和的数据。扩展的头部允许媒体数据隧道实现附加的灵活性。图6示出了在媒体数据隧道实现中的扩展头部的分组结构的实施例。该图示显示了扩展头部的三个示例:
_exheader_with_cdb(_ex头部_具有_cdb)显示了具有将WRITE_BURST目的标识为媒体数据隧道准备好的字段的扩展头部,该扩展头部很像isHID mdt_event_header_t。
_exheader_with_cdb_chksm(_ex头部_具有_cdb_chksm)允许任选地使用校验和。
_exheader_with_cdb_chksm_len(_ex头部_具有_cdb_chksm_len)显示了头部扩展,该头部扩展将之前的exheader_with_cdb_chksm扩展成还使用四位len长度字段来传送封装在WRITE_BURST中的字节的数量。
在一些实施例中,媒体数据隧道依赖于MHL指定的暂存寄存器在传输之前缓冲数据并且在消耗之前保持所接收的数据。MHL规范在阱、源或加密狗内定义任选暂存器。暂存器是一组十六或更多个1字节寄存器。这些寄存器是在偏移0x40处可访问的。在该组中的前两个字节需要包含设备的ADOPTER_ID。在传输之前,使用MHL发射器或接收器将数据写入暂存器。在接收数据的情况下,MHL发射器或接收器将数据引导至该区域以用于用户稍后检索。
在一些实施例中,关于暂存器访问,媒体数据隧道依赖于MHL规范,同时提供附加的指导来加快数据传递。在一些实施例中,如果MHL发射器或接收器要求用户指定将被发送的暂存器字节的数量,则仅当该数量变化时,媒体数据隧道发送器可指示将被发送的暂存器字节的数量。在媒体数据隧道会话包括具有7字节结构的多个WRITE_BURST的情况下,媒体数据隧道发送器应当仅设置突发长度一次以进一步减少等待时间。如以下所描述的,在初始化期间和在已知分组的长度之前,媒体数据隧道发射器应当将该长度设置为最小版本的有效载荷结构的字节的全部数量;对于mdt_burst_01_t,该值将是6以允许2字节ADOPTER_ID和4字节mdt_mouse_event_t或具有截短的0的4字节mdt_keyboard_event_t。
在一些实施例中,在另一侧上,媒体数据隧道接收方不读取暂存器的前两个字节来向发射器赋予资格。由于在扩展发现期间媒体数据隧道需要握手(handshake),并且每个分组具有在其头部中的isHID标识位,后续使用ADOPTER_ID赋予资格是多余的并且可避免。为了进一步减少等待时间,媒体数据隧道接收方取回最小版本的有效载荷结构的全部数量的字节以访问所接收的WRITE_BURST数据的头部。在头部指示WRITE_BURST内容超过第一次访问的长度的情况下,媒体数据隧道接收方可在单独的第二次尝试中从暂存器读取剩余的字节。
在一些实施例中,对于用于中继HID数据的媒体数据隧道实现,媒体数据隧道发射器将mdt_burst_01_t中继至媒体数据隧道接收方。在扩展发现之后并且在第一HID事件之前,媒体数据隧道发射器将被发送的暂存器字节的数量设置成六,当中继鼠标事件时该结构是处于其最小大小。在其第一次传输之前,媒体数据隧道发射器将暂存器的前两个字节设置为其媒体数据隧道接收方的ADOPTER_ID。一旦媒体数据隧道发射器具有HID事件数据发送,发射器查看该需要以更新发送的暂存器字节的数量并采用事件数据填充暂存器的字节[2:15]。
在接收端,媒体数据隧道接收器将忽略其暂存器的字节0和1。替代地,在假设至少媒体数据隧道接收方将接收mdt_burst_01_t内的4字节鼠标事件的情况下,媒体数据隧道接收方将通过读取暂存器字节[2:5]来消耗事件。在读取isKeyboard位字段被断言为1的情况下,媒体数据隧道发射器将执行第二次读取以访问暂存器字节[6:8]进而检索7字节键盘分组的剩余3字节。如果isCoordinateWordLength(是坐标字长)被设置在mdt_mouse_event_t内,则媒体数据隧道发射器还将执行第二次读取。对于被设置的isCoordinateWordLength的第二种情况,由于WRITE_BURST发射器正发送可能用于绝对坐标映射的字长坐标,因此当检索暂存器数据时,接收方切换至7字节读取。
在一些实施例中,除控制数据的量和位置之外,编码器通过创建mdt_mouse_event_t和mdt_keyboard_event_t的实例来优化用于媒体数据隧道传输的HID内容。这些结构可遵守人机接口设备版本1.11的设备类定义(DCDHID)规范来匹配由HID设备产生的数据有效载荷。作为媒体数据隧道的优化或适应,mdt_mouse_event_t将来自HID特定位的字节0中的位4至7重分配给媒体数据隧道HID头部。而且,字节3被假设成基于现有实际上标准的鼠标驱动实现来推动滚轮。而且,当isCoordinateWordLength被设置成支持在高分辨率显示器上的绝对坐标跟踪作为对较低等待时间传输的折衷时,mdt_mouse_event_t提供字长坐标。
在一些实施例中,还优化键盘事件。作为媒体数据隧道的优化或适应,mdt_keyboard_event_t将在来自RIGHT CTRL(右CTRL)、RIGHT SHIFT(右SHIFT)、RIGHT ALT(右ALT)、和RIGHT GUI(右GUI)的DCDHID中定义的键盘HID事件的字节0中的位4至7重分配给媒体数据隧道HID头部位。在丢弃这些位之前,媒体数据隧道发射器的媒体数据隧道编码器执行在字节0的位4至7和位0至3之间的OR(或)操作。该OR操作将使用LEFT CTRL(左CTRL)、LEFT SHIFT(左SHIFT)、LEFT ALT(左ALT)和LEFT GUI(左GUI)位来携载以其他方式存储在字节0中的LEFT(左)和RIGHT(右)键两者的声明。此外,mdt_keyboard_event丢弃用于由DCDHID规范定义的启动协议1分组的OEM使用的字节1。代替将该字节留在适当的位置来迫使mdt_keyboard_event的8字节长度,在媒体数据隧道发射器内的编码器使字节[2:7]移位1字节以在初始化7字节mdt_keyboard_event时丢弃所保留的占位符。作为进一步优化并且基于启动协议1的常见用法,媒体数据隧道发射器中的编码器可丢弃全部除了由mdt_keyboard_event的最高有效字节保持的一连串0中的一个零。
对于大多数键盘输入报告,键盘更新反映了单个键的变化。在启动协议1报告的字节2和mdt_keyboard_event的字节1中捕获该变化。在这种情况下,键盘采用0填充其事件的剩余字节。为了减少等待时间,编码器可丢弃最后三个拖尾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指定的中断寄存器、WRITE_BURST命令和SET_INT命令来在MHL发射器和接收器之间中继数据。按照MHL规范,MHL发射器和接收器提供两个单字节中断寄存器。中断寄存器在偏移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中断来作为响应,则接收是挂起的(pending)。而且,MHL规范暗示了,如果用户正准备发送WRITE_BURST命令或仍在处理之前的WRITE_BURST命令的接收,则用户将不允许通过使用SET_INT命令传输GRT_WRT来接收WRITE_BURST。
在一些实施例中,将完全遵守MHL规范来实现媒体数据隧道,同时允许所需的性能来支持HID和一些稍微更高要求的应用。在完全遵守MHL的情况下,媒体数据隧道发射器和接收方访问由MHL规范定义的暂存器和中断寄存器。类似地,媒体数据隧道发射器和接收器使用SET_INT和WRITE_BURST命令以遵守MHL规范中继数据。
在一些实施例中,媒体数据隧道依赖于用于WRITE_BURST命令的MHL指定的协调序列和附加的媒体数据隧道特定指导。发射器在其需要中继WRITE_BURST数据之前发送具有REQ_WRT和DSCR_CHG的单个SET_INT。这种先进的请求将以两种方式释放发射器。首先,当WRITE_BURST发射器需要发送数据时,WRITE_BURST发射器将不经受发送REQ_WRT所需的时间;REQ_WRT将被事先发送。其次,将不需要等待对其REQ_WRT请求的GRT_WRT响应,按照MHL规范,事务可花费长达10ms。实际上,SET_INT的提前传输将消耗用于WRITE_BURST协调的时间与中继WRITE_BURST命令中的媒体数据隧道信息所需的时间分离开。而且,代替独立地并且在WRITE_BURST事务的不同阶段处发送这些中断,媒体数据隧道发送器可使用单个SET_INT中继DSCR_CHG和REQ_WRT中断。DSCR_CHG和REQ_WRT和单个SET_INT消息的这种配对进一步减少了使用WRITE_BURST中继数据所需的时间。
在一些实施例中,为了条件REQ_WRT和DSCR_CHG中断的提前且组合的传输,媒体数据隧道接收方中止没有被接收的挂起的WRITE_BURST。虽然MHL规范不为WRITE_BURST接收方提供用于防止WRITE_BURST的方法,规范隐含地确保SET_INT命令一直通过批准接收方发送回ACK或ABORT来处理。利用这种隐性担保,当媒体数据隧道接收方需要中止挂起的WRITE_BURST时,媒体数据隧道接收方使用SET_INT命令发送REQ_WRT中断。为了保持顺应MHL,如果其被接受,并且媒体数据隧道发射器使用SET_INT命令单独发送DSCR_CHG中断,则媒体数据隧道发射器采用ACK响应于该SET_INT命令。媒体数据隧道发射器应当不能发送DSCR_CHG,媒体数据隧道接收方可每10ms重复REQ_WRT,由MHL指定的用于WRITE_BURST接收方的超时等待GRT_WRT响应于REQ_WRT。在WRITE_BURST接收方需要在接收WRITE_BURST的期间中继中止的情况下,接收方采用ACK响应于WRITE_BURST并且随后发送SET_INT以传送REQ_WRT。
在一些实施例中,对于媒体数据隧道的HID实现,使用WRITE_BURST和SET_INT的数据的传递遵守媒体数据隧道定义。可能的序列反映扩展发现。在该发现中,媒体数据隧道发射器发送MDTREQ01_FULL令牌并且接收MDTACK_2000作为响应。该交换建立媒体数据隧道发射器和接收器之间的协定。而且,该交换允许媒体数据隧道发射器赋予媒体数据隧道接收器的在媒体数据隧道上的HID服务的资格。在一些实施例中,扩展发现的命令如表1中所示:
表1
在一些实施例中,在扩展发现之后,媒体数据隧道发射器在暂存器中设置ADOPTER_ID字节。为了该示例的目的,媒体数据隧道接收方的ADOPTER_ID被假设为0x0000。接着,媒体数据隧道发射器将突发长度设置为六以支持最小版本的mdt_burst_t分组结构,鼠标事件的实例。然后,HID事件可被作为具有SET_INT命令的相关联的中断和传输的单独的WRITE_BURST命令来发送。由于每个事件包含相同的分组结构,因此不再次设置突发长度。在一些实施例中,MDT发送器传输HID事件可如表2中所示:
表2
阶段4和5:数据解码和数据消耗.在一些实施例中,媒体数据隧道传输被归结为媒体数据隧道接收器解码它接收的数据并且消耗该数据。在阶段2中提供了解码的定义。由于消耗是依赖于应用,因此以下定义是最佳的并旨在作为示例。
图8示出了媒体数据隧道的实施例的层。所示的分层堆栈将旨在用于接收HID事件的MHL发送器的可能的实现与Linux或Android系统内的USB驱动器层相比较。在一些实施例中,图8的元素标识移动设备内的MHL发射器的软件实现。媒体数据隧道实现的MDT HID、HID/MDT驱动器、Sil9234驱动器和SMBUS或I2C驱动器层直接映射至USB驱动器、USB HID、USB核和OHCI/EHCI层。负责WRITE_BURST的MHL发射器组件显著比负责HUB支持和设备发现的USB CORE薄。类似地,HID/MDT解码器是极薄的层。然而,媒体数据隧道HID驱动器可与具有进入点的USB驱动器相比较作为主要区别。虽然USB驱动器采用USB堆栈驱动寄存器以从USB分组接收有效载荷,但媒体数据隧道HID驱动器可由HID/MDT直接调用并且可依赖于全局缓冲来接收有效载荷。尽管这种差异,USB驱动器和媒体数据隧道HID驱动器使用input_report(输入_报告)类型函数调用HIDEVENT GENERATOR(HID事件生成器)以将事件中继到用户空间。在该实现中由解码器提供的转换允许标准HID事件消费者从媒体数据隧道接收事件,如同它们是来自任何USB设备那样。
媒体数据隧道提供用于扩展由MHL提供的值和特征集的方法。图9示出启用HDMI的视频显示器和启用HDMI的源设备之间的连接。在该图示中,HDMI阱910(诸如,电视机或其他视频显示器)经由HDMI接口连接950与视频源960耦合。如图9中所提供的,HDMI阱910包括HDMI接收器912,HDMI接收器912可与处理元件920(诸如,CPU、微处理器、或SoC)耦合。视频源960包括与处理器元件965耦合的HDMI发射器962。
在该场景中,数据总线在操作中是分立的。为了中继外围数据而不是A/V,视频源910可经由数据总线955与USB元件915耦合,其中USB元件可以是个人计算机(充当USB主机)或数据外围设备(充当USB设备)。因此,源设备960包括第一协议(HDMI)数据传输和第二协议(USB)数据传输两者,其中此类传输利用单独的数据通道950和955来处理两个协议的带宽。
与HDMI不同,MHL规范将共享多个协议直接的物理连接器的应用作为目标,但这些协议被彼此互斥地支持而非同时得到支持。图10示出了在HDMI/MHL加密狗和启用HDMI的视频源设备之间的连接。图10和11示出了在仅互相传输的HID和MHL数据之间共享移动设备的五引脚连接器的实现。在图10中,在HDMI格式1005和MHL格式之间转换数据的MHL加密狗1010经由MHL/USB接口连接1050与视频源1060耦合。视频源1060可包括移动设备。如图10所提供的,MHL加密狗1010可包括处理元件1020,诸如CPU、微处理器、或SoC。视频源1060包括与处理器元件1065耦合的MHL发射器1062。
视频源包括五引脚连接器1070和用于MHL和USB接口1050的开关1072。开关提供从用于到MHL接收器1062的MHL数据和经由USB链路1055的USB数据的连接器到视频源的处理元件1065的路径。MHL USB可与分立的数据外围设备1015连接以用于传递USB数据。因此,在这种情况下,源设备1060包括利用单个五引脚连接器的第一协议(MHL)数据传输和第二协议(USB)数据传输两者,但这种连接器可一次仅传递这些协议中的一个的数据,并且MHL和USB都利用接口的全带宽。如果MHL接收器是MHL加密狗或MHL阱,则两个协议之间的互斥性适用于MHL规范。图11示出了在启用MHL的视频阱设备和启用MHL的视频源设备之间的连接。在该图示中,启用MHL的视频阱1110经由MHL/USB接口连接1150与视频源1160耦合。视频源1160可包括移动设备。如图11所提供的,MHL阱1110可包括MHL发射器1112和处理元件120。视频源1160可包括与处理器元件1165耦合的MHL发射器1162。
在图11中,视频源1160包括五引脚连接器1170和用于MHL和USB接口1150的开关1172。开关提供从用于到MHL接收器1162的MHL数据和经由USB链路1155的USB数据到视频源的处理元件1165的路径。MHLUSB可与数据外围设备1115连接以用于传递USB数据。类似于图10,在这种情况下,源设备1160包括利用单个五引脚连接器的第一协议(MHL)数据传输和第二协议(USB)数据传输两者,但这种连接器可一次仅传递这些协议中的一个的数据,并且MHL和USB都利用接口的全带宽。
媒体数据隧道增强MHL以允许数据隧道同时进行A/V和外围数据传输。图12示出了在HDMI/MHL加密狗和启用MHL的视频源设备之间的连接的实施例。与图10和11相反,图12和13示出了在其两个对等体之间同时交换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可用于经由第一协议(MHL)的通用命令传输第二协议(USB)数据。如图所示,MHL加密狗1210的处理元件1220可与数据外围设备1207耦合以经由数据总线1255传递USB数据。因此,在该实现中,视频源1260可操作为USB主机元件,其中在一些实施例中,USB数据经由数据隧道1252在这种USB主机和USB设备元件(诸如,数据外围设备1207)之间传递,因此允许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可用于经由第一协议(MHL)的通用命令传输第二协议(USB)数据。如图所示,MHL阱设备1310的处理元件1320可与数据外围设备1307耦合以经由数据总线1355传递USB数据。因此,在一些实施例中,视频源1360可操作为USB主机元件,其中USB数据经由数据隧道1352在这种USB主机和USB设备元件(诸如,数据外围设备1307)之间传递,因此允许MHL数据和USB数据的同时传递。
媒体数据隧道允许启用MHL的移动设备更好地服务计算用例。在没有启用媒体数据隧道的MHL的情况下,移动设备可主存(host)数据外围设备,但一般会需要单独的端口来传输A/V数据。图14示出了移动设备与数据外围设备(诸如,鼠标)的USB链路。在该图示中,包括处理元件1415的视频源1410示为CPU(中央处理器)、微处理器、或SoC(片上系统),其中处理元件经由数据总线1455与数据外围设备(诸如,鼠标1420)耦合。在一些实施中,数据外围设备1420的操作可包括使用通用命令来同时允许对数据外围设备和音频/视频数据传递的支持。
具有媒体数据隧道的启用MHL的移动设备可通过单个连接器连接至显示器和数据外围设备。图15示出了移动设备与人机接口设备的链路的实施例。图15提供数据外围设备(USB鼠标和USB键盘)的特定示例和数据总线(USB)的特定示例。在该图示中,在HDMI格式1505和MHL格式之间转换数据的MHL加密狗1510经由MHL接口连接1550与视频源1560耦合,其中视频源1560可包括移动设备。如图15所提供的,MHL加密狗1520可包括处理元件1520。视频源1560包括与处理器元件1565耦合的MHL发射器1562。
在一些实施例中,在MHL加密狗1510和视频源1560之间的接口1550包括数据隧道1552,其中数据隧道可以是以上描述的媒体数据隧道,其中数据隧道1552经由第一协议(MHL)的通用命令提供第二协议(USB)的传输。如图所示,加密狗1510的处理元件1520可与一个或多个人机接口设备耦合以经由一个或多个USB连接1557传递USB HID数据。在该图示中,人机接口设备是鼠标1522和键盘1524。因此,在该实现中,视频源1560可操作为USB主机元件而MHL加密狗作为USB设备,其中在一些实施例中,由人机接口设备生成的USB数据经由数据隧道1552在这种USB主机和USB设备元件之间传递,因此允许MHL数据和USB HID数据的同时传递。
虽然媒体数据隧道向移动设备用户提供显著的优点,但该技术仅可服务低带宽数据外围设备。图16示出了移动设备与人机接口设备的链路的实施例。在某些实现中,由于现有的带宽约束,因此可能需要高速外围直接连接至移动设备。然而,实施例不限于该配置。在该图示中,在HDMI格式1605和MHL格式之间转换数据的MHL加密狗1610经由MHL接口连接1650与视频源1610耦合,其中视频源1560可包括移动设备。如图16所提供的,MHL加密狗1610可包括处理元件1620。视频源1660包括与处理器元件1665耦合的MHL发射器1662。在一些实施例中,视频源1660可进一步包括到高速外围设备的USB连接1655或到个人计算机1680的链路。
在一些实施例中,在MHL加密狗1610和视频源1660之间的接口1650包括数据隧道1652,其中数据隧道可以是以上描述的媒体数据隧道,其中数据隧道1652经由第一协议(MHL)的通用命令提供第二协议(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数据可经由第一接口与经由第二接口传送的高速USB数据同时传递。
图17示出了包括用于传输某些数据的数据隧道的实施例或系统。装置或系统(这里一般称为装置)可包括允许使用第一协议的通用命令传递第二协议的数据。在示例中,第一协议是MHL并且第二协议是USB。然而,实施例不限于任何特定协议。在此说明中,与本描述并非密切相关的特定标准和公知组件将不被示出。在一些实施例中,装置1700可包括视频源设备、视频阱设备、或用于转换数据协议的加密狗、或传递在多个协议中的数据的其他设备。
在一些实施例中,计算机1700包括互连或交叉开关1705或用于传输数据的其他通信装置。装置1700可包括处理装置,诸如与互连1705耦合以处理信息的一个或多个处理器或其他处理元件1710。处理器1710可包括一个或多个物理处理器和一个或多个逻辑处理器。为了简单起见,互连1705被示为单个互连,但可表示多个不同互连或总线,并且连接至此类互连的组件可改变。图17所示的互连1705是表示由合适的桥、适配器和/或控制器连接的任何一个或多个单独的物理总线、点对点连接和以上两者的抽象。
在一些实施例中,装置1700进一步包括随机存取存储器(RAM)或其他动态存储设备或元件作为用于存储信息和将被处理器1710执行的指令的主存储器1715。RAM存储器包括需要刷新存储器内容的动态随机存取存储器(DRAM),以及不需要刷新内容,但增加了成本的静态随机存取存储器(SRAM)。在一些实施方案中,主存储器可包括应用的活动存储,应用包括用于由装置1700的用户在网络浏览活动中使用的浏览器应用。DRAM存储器可包括同步动态随机存取存储器(SDRAM)(该同步动态随机存取存储器包括用于控制信号的时钟信号),和扩展数据输出动态随机存取存储器(EDO DRAM)。在一些实施例中,装置的存储器可包括某些寄存器或其他专用存储器。
装置1700可包括数据存储1720,数据存储1720包括硬盘驱动器或固态驱动器。存储器1700还可包括只读存储器(ROM)1725或用于存储用于处理器1710的静态信息和指令的其他静态存储设备。计算机1700可包括一个或多个非易失性存储器元件1730以用于包括例如闪存的某些元件的存储。
装置1700还可经由互连1705耦合至输出显示器1740。在一些实施例中,显示1740可包括液晶显示器(LCD)或任何其他显示器技术,以用于向用户显示信息或内容。在一些情况下,显示器1740可包括触摸屏,该触摸屏也被用作输入设备的至少一部分。在一些情况下,显示器1740可以是或可包括音频设备,诸如,用于提供音频信息的扬声器。
一个或多个发射器或接收器1745还可耦合至互连1705。在一些实施例中,接收器或发射器1745可耦合至连接器1750以经由具有数据隧道1770的数据链路将在多个协议中的数据传输至另一装置或系统1775,其中数据链路可以是例如图1中所示的缆线150。装置1700可进一步包括用于经由无线电信号接收数据的一个或多个全向或定向天线1755。
装置1700还可包括电源设备或装置1760,电源设备或装置1760可包括电源、电池、太阳能电池、燃料电池、或用于提供或生成电能的其他系统或设备。由电源设备或系统1760提供的电能可按需分配给装置1700的元件。
图18是示出了用于利用媒体数据隧道的通信的过程的实施例的时序图。在该图示中,提供经由USB连接的在HID 1810和USB主机1830之间和经由MHL连接1850的在示为与支架元件连接的MHL接收器1840和MHL发射器1860之间的通信。如所示的,示出了利用WRITE_BURST命令1800和通过媒体数据隧道1805利用WRITE_BURST COMMAND(写入_突发命令)的通信。如图所示,媒体数据隧道可允许操作中减少的开销和数据接收的减少的等待时间。
在上面的描述中,出于解释目的,阐述了众多具体细节以便提供对本发明的全面理解。然而对于本领域技术人员显然的是,没有这些具体细节中的一些细节也可实践本发明。在其他情况下,以框图形式示出了各个已知的结构和设备。在所示出的组件之间可以有中间结构。此处所描述的或所示出的组件可以具有未示出或描述的附加的输入或输出。所示元件或组件还能以不同的排列或次序来安排,包括对任何字段重新排序或修改字段大小。
本发明可包括各种过程。本发明的过程可由硬件组件来执行,或者可以具体化为计算机可读指令,该指令可用于使通过该指令编程的通用或专用处理器或逻辑电路执行这些过程。
或者,过程也可由硬件和软件的组合来执行。
本发明的各部分可作为计算机程序产品来提供,计算机程序产品可包括具有存储在其上的计算机程序指令的计算机可读非瞬态存储介质,计算机程序指令可被用来对计算机(或其他电子设备)进行编程来执行根据本发明的过程。计算机可读存储介质可包括,但不限于,软盘、光盘、CD-ROM(紧致盘-只读存储器)、以及磁光盘、只读存储器(ROM)、RAM(随机存取存储器)、EPROM(可擦除可编程只读存储器)、EEPROM(电可擦除可编程只读存储器)、磁卡或光卡、闪存、或适于存储电子指令的其它类型的介质/计算机可读介质。此外,本发明还可以作为计算机程序产品下载,其中该程序可以从远程计算机传递到请求计算机。
许多方法是以它们的最基本形式描述的,但是,可以将过程添加到任何一个方法中或从其中删除过程,并且可以向所描述的消息中的任何一个添加或从其中减去信息,而不会偏离本发明的基本范围。对所属领域的技术人员显而易见的是,可以作出许多进一步的修改和适应。具体实施例不是为了限制本发明而是为了说明。
如果说元件“A”耦合到元件“B”,则元件A可以直接耦合到元件B,或通过,例如,元件C间接地耦合。当说明书声明组件、功能、结构、过程或特征A“导致“组件、功能、结构、过程或特征B时,意味着“A”至少是“B”的部分原因,但是还可以有辅助导致“B”的至少一个其他组件、功能、结构、过程或特征。如果说明书指出组件、功能、结构、过程或特征“可能”、“可以”或“会”被包括,则该特定组件、功能、结构、过程或特征不是必须被包括。如果说明书引用“一个”元素,则这并不意味着只有一个所描述的元素。
实施例是本发明的实现或示例。说明书中对“实施例”、“一个实施例”、“一些实施例”、或“其他实施例”等等的引用意味着结合实施例所描述的特定特征、结构或特征被包括在至少一些实施例中,但不一定包括在所有实施例中。“实施例”、“一个实施例”,或“一些实施例”的各种出现不一定都是指相同实施例。应该理解,在对本发明的示例性实施例的以上描述中,出于使本公开变得流畅并且帮助理解各创新方面中的一个或多个目的,本发明的各个特征有时被一起编组在一个实施例、附图、或其描述中。
在一些实施例中,装置包括用于数据的传输或接收的发射器或接收器;用于处理装置的数据的处理元件;以及用于传递数据的连接器,该连接器连接至数据通道并连接至控制通道。处理元件提供在控制通道中的第一协议的数据的传递,经由控制通道的数据的传递包括使用第一协议的一个或多个通用命令传输第二协议的数据。在第一协议上发送第二协议的数据之前优化该第二协议的数据,并且数据通道中的数据传输和控制通道中的数据传递至少部分是同时的。
在一些实施例中,装置的数据通道包括一个或多个数据传输线。在一些实施例中,控制通道包括控制总线。
在一些实施例中,经由控制通道的数据的传输还包括第一协议的其他命令,并且其中一个或多个通用命令可与第一协议的其他命令混合。在一些实施例中,通过包括有关分组结构和服务性能的能力的发现的扩展发现来赋予使用第二协议的资格。
在一些实施例中,可在第一协议的单个数据突发中发送第二协议的一个或多个消息。在一些实施例中,每个数据突发通过中断消息来协调,其中多个中断消息被聚集并且在单个消息中发送出。
在一些实施例中,通过控制通道的第一协议的标识字段具有小于或等于两字节的大小。
在一些实施例中,第二协议的数据至少部分地由来自HID的输入组成。
在一些实施例中,通过包括中断命令的传输的扩展中止过程来终止第二协议的使用。在一些实施例中,该中断是在MHL协议下的SET-INT命令。
在一些实施例中,装置是视频数据源或视频数据阱。在一些实施例中,第一协议是MHL。在一些实施例中,第二协议是USB。
在一些实施例中,装置包括用于在第一协议的数据和第三协议的数据之间的数据之间转换的模块。在一些实施例中,第一协议是MHL并且第三协议是HDMI。在一些实施例中,第二协议是USB。
在一些实施例中,方法包括在第一装置处传递去往或来自第二装置的第一组数据,该第一组数据是第一协议的,其中传递第一组数据包括经由连接器在第一协议的数据通道上传输或接收数据;以及在第一装置处,传递去往或来自第二装置的第二组数据,该第二组数据是第二协议的,在控制通道上发送第二协议的数据之前对该数据施加优化。传递第二组数据包括经由连接器在第一协议的控制通道上传输或接收数据。第一组数据和第二组数据至少部分地同时传递,并且第二组数据使用第一协议的一个或多个通用命令来传递。
在一些实施例中,方法的一个或多个通用命令包括通用写入命令。在一些实施例中,数据通道包括一个或多个数据传输线,并且第一协议的数据经由再一个数据传输线传递。在一些实施例中,控制通道包括控制总线。
在一些实施例中,方法进一步包括通过扩展发现赋予使用第二协议的资格,该扩展发现包括有关分组结构和服务性能的能力的信息的交换。
在一些实施例中,该方法进一步包括在第一协议的数据传输的单个数据突发中发送第二协议的一个或多个消息。
在一些实施例中,该方法包括通过中断消息协调每个数据突发,并且聚集多个中断消息并且在单个消息中发送出聚集的中断消息。
在一些实施例中,通过控制通道的第一协议的标识字段具有小于或等于两字节的大小。
在一些实施例中,该方法进一步包括在控制通道上传递第一协议的其他命令,并且其中一个或多个通用命令可与第一协议的其他命令混合。在一些实施例中,第二组数据至少部分地由来自HID的输入构成。
在一些实施例中,该方法进一步包括通过包括中断命令的传输的扩展中止过程来终止第二协议的使用。
在一些实施例中,在该方法中,第一协议是MHL。在一些实施例中,第二协议是USB。在一些实施例中,一个或多个通用命令包括MHLWRITE_BURST。在一些实施例中,一个或多个通用命令由单个SET_INT消息启用以传送多个单独的通用事件。
在一些实施例中,非瞬态计算机可读存储介质具有存储在其上的表示指令序列的数据,当指令序列被处理器执行时,使处理器执行包括如下的操作:在第一装置处,传递去往或来自第二装置的第一组数据,该第一组数据是第一协议的,其中传递第一组数据包括经由连接器在第一协议的数据通道上传输或接收数据;以及在第一装置处,传递去往或来自第二装置的第二组数据,该第二组数据是第二协议的。传递第二组数据包括经由连接器在第一协议的控制通道上传输或接收数据,在第一协议的控制通道上发送第二协议的数据之前,对该第二协议的数据施加优化。第一组数据和第二组数据至少部分地同时传递,并且第二组数据使用第一协议的一个或多个通用命令来传递。
在一些实施例中,一个或多个通用命令包括通用写入命令。在一些实施例中,数据通道包括一个或多个数据传输线,并且第一协议的数据经由再一个数据传输线传递。在一些实施例中,控制通道包括控制总线,并且第二协议的数据经由控制总线传递。
在一些实施例中,介质包括通过扩展发现赋予使用第二协议的资格的指令,该扩展发现包括有关分组结构和服务性能的能力的信息的交换。
在一些实施例中,该介质包括用于在第一协议的数据传输的单个数据突发中发送第二协议的一个或多个消息的指令。在一些实施例中,介质包括通过中断消息协调每个数据突发,并且聚集多个中断消息并且在单个消息中发送出聚集的中断消息的指令。
在一些实施例中,通过控制通道的第一协议的标识字段具有小于或等于两字节的大小。
在一些实施例中,介质包括用于在控制通道上传递第一协议的其他命令的指令,并且其中一个或多个通用命令可与第一协议的其他命令混合。在一些实施例中,第二组数据至少部分地由来自HID的输入构成。
在一些实施例中,该介质包括用于通过包括中断命令的传输的扩展中止过程终止第二协议的使用的命令。在一些实施例中,第一协议是MHL。在一些实施例中,第二协议是USB。在一些实施例中,一个或多个通用命令包括MHL WRITE_BURST。
Claims (33)
1.一种经由利用数据隧道的接口的多协议数据元素的传输的装置,包括:
用于数据的传输或接收的发射器或接收器;
用于处理所述装置的所述数据的处理元件;以及
用于传递所述数据的连接器,所述连接器连接至数据通道并且连接至控制通道;
其中所述处理元件提供在所述控制通道中的第一协议的数据的传递,经由所述控制通道的数据的传递包括使用所述第一协议的一个或多个通用命令来传递第二协议的数据;
其中在通过所述第一协议发送所述第二协议的数据之前对所述第二协议的数据进行优化;以及
其中所述数据通道中的数据传递和所述控制通道中的数据传递至少部分是同时的。
2.如权利要求1所述的装置,其特征在于,所述数据通道包括一个或多个数据传输线。
3.如权利要求1所述的装置,其特征在于,所述控制通道包括控制总线。
4.如权利要求1所述的装置,其特征在于,经由所述控制通道的数据的传输还包括所述第一协议的其他命令,并且其中一个或多个通用命令能与所述第一协议的其他命令混合。
5.如权利要求1所述的装置,其特征在于,通过包括有关分组结构和服务性能的能力的发现的扩展发现来赋予使用第二协议的资格。
6.如权利要求1所述的装置,其特征在于,能在所述第一协议的单个数据突发中发送第二协议的一个或多个消息。
7.如权利要求6所述的装置,其特征在于,每个数据突发通过中断消息来协调,其中多个中断消息被聚集并且在单个消息中发送出。
8.如权利要求1所述的装置,其特征在于,通过所述控制通道的第一协议的标识字段具有小于或等于两字节的大小。
9.如权利要求1所述的装置,其特征在于,所述第二协议的数据至少部分地由来自人机接口设备HID的输入组成。
10.如权利要求1所述的装置,其特征在于,通过包括中断命令的传输的扩展中止过程来终止所述第二协议的使用。
11.如权利要求10所述的装置,其特征在于,所述中断是在MHLTM移动高清链路协议下的SET-INT命令。
12.如权利要求1所述的装置,其特征在于,其中所述装置是视频数据源或视频数据阱。
13.如权利要求12所述的装置,其特征在于,所述第一协议是MHL移动高清链路。
14.如权利要求13所述的装置,其特征在于,所述第二协议是USBTM通用串行总线。
15.如权利要求1所述的装置,其特征在于,所述装置包括用于在所述第一协议的数据和第三协议的数据之间转换的模块。
16.如权利要求15所述的装置,其特征在于,所述第一协议是MHL移动高清链路并且第三协议是HDMITM高清多媒体接口。
17.如权利要求16所述的装置,其特征在于,所述第二协议是USBTM通用串行总线。
18.一种经由利用数据隧道的接口的多协议数据元素的传输的方法,包括:
在第一装置处传递第一组数据,所述第一组数据是第一协议的,其中传递第一组数据包括经由连接器在所述第一协议的数据通道上传输或接收数据;以及在第一装置处,传递第二组数据,所述第二组数据是第二协议的,其中传递第二组数据包括经由连接器在第一协议的控制通道上传输或接收数据,在控制通道上发送第二协议的数据之前对第二协议的数据施加优化;
其中所述第一组数据和所述第二组数据至少部分地同时传递;
其中使用所述第一协议的一个或多个通用命令传递所述第二组数据。
19.如权利要求18所述的方法,其特征在于,所述一个或多个通用命令包括通用写入命令。
20.如权利要求18所述的方法,其特征在于,其中所述数据通道包括一个或多个数据传输线。
21.如权利要求18所述的方法,其特征在于,所述控制通道包括控制总线。
22.如权利要求18所述的方法,其特征在于,进一步包括通过扩展发现赋予使用第二协议的资格,所述扩展发现包括有关分组结构和服务性能的能力的信息的交换。
23.如权利要求18所述的方法,其特征在于,进一步包括在第一协议的数据传输的单个数据突发中发送第二协议的一个或多个消息。
24.如权利要求23所述的方法,其特征在于,进一步包括通过中断消息协调每个数据突发,并且聚集多个中断消息并且在单个消息中发送出聚集的中断消息。
25.如权利要求18所述的方法,其特征在于,通过所述控制通道的第一协议的标识字段具有小于或等于两字节的大小。
26.如权利要求18所述的方法,其特征在于,进一步包括在所述控制通道上传递第一协议的其他命令,并且其中一个或多个通用命令能与第一协议的其他命令混合。
27.如权利要求18所述的方法,其特征在于,所述第二组数据至少部分地由来自人机接口设备HID的输入组成。
28.如权利要求18所述的方法,其特征在于,进一步包括通过包括中断命令的传输的扩展中止过程来终止第二协议的使用。
29.如权利要求18所述的方法,其特征在于,所述第一协议是MHL移动高清链路。
30.如权利要求29所述的方法,其特征在于,所述第二协议是USBTM通用串行总线。
31.如权利要求29所述的方法,其特征在于,所述一个或多个通用命令包括MHL WRITE_BURST。
32.如权利要求29所述的方法,其特征在于,所述一个或多个通用命令由单个SET_INT消息启用以传送多个单独的通用事件。
33.一种非瞬态计算机可读存储介质,其具有存储在其上的表示指令序列的数据,当所述指令系列被处理器执行时,使处理器执行包括如下的操作:
在第一装置处,传递去往或来自第二装置的第一组数据,所述第一组数据是第一协议的,其中传递第一组数据包括经由连接器在第一协议的数据通道上传输或接收数据;以及
在第一装置处,传递去往或来自第二装置的第二组数据,所述第二组数据是第二协议的,其中传递第二组数据包括经由连接器在第一协议的控制通道上传输或接收数据,在第一协议的控制通道上发送第二协议的数据之前,对所述第二协议的数据施加优化;
其中所述第一组数据和所述第二组数据至少部分地同时传递;
其中所述第二组数据使用所述第一协议的一个或多个通用命令传递。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/546,904 | 2012-07-11 | ||
US13/546,904 US9087163B2 (en) | 2012-07-11 | 2012-07-11 | Transmission of multiple protocol data elements via an interface utilizing a data tunnel |
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 |
---|---|
CN104620564A CN104620564A (zh) | 2015-05-13 |
CN104620564B true CN104620564B (zh) | 2018-05-15 |
Family
ID=49914986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380047258.0A Expired - Fee Related CN104620564B (zh) | 2012-07-11 | 2013-05-09 | 用于经由利用数据隧道的接口的多协议数据元素的传输的装置和方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9087163B2 (zh) |
EP (1) | EP2873220B1 (zh) |
JP (1) | JP6266615B2 (zh) |
KR (1) | KR102109431B1 (zh) |
CN (1) | CN104620564B (zh) |
TW (1) | TWI579705B (zh) |
WO (1) | WO2014011317A1 (zh) |
Families Citing this family (31)
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 |
US10135900B2 (en) | 2011-01-21 | 2018-11-20 | Qualcomm Incorporated | User input back channel for wireless displays |
US9582239B2 (en) | 2011-01-21 | 2017-02-28 | 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 |
US9787725B2 (en) | 2011-01-21 | 2017-10-10 | Qualcomm Incorporated | User input back channel for wireless displays |
US8964783B2 (en) | 2011-01-21 | 2015-02-24 | 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 |
US9503771B2 (en) | 2011-02-04 | 2016-11-22 | Qualcomm Incorporated | Low latency wireless display for graphics |
US10108386B2 (en) | 2011-02-04 | 2018-10-23 | Qualcomm Incorporated | Content provisioning for wireless back channel |
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 | 삼성전자주식회사 | 데이터 송수신 방법 및 장치 |
US10034407B2 (en) | 2016-07-22 | 2018-07-24 | Intel Corporation | Storage sled for a data center |
JP7022540B2 (ja) * | 2017-09-08 | 2022-02-18 | キヤノン株式会社 | 情報処理装置およびその制御方法 |
JP7213431B2 (ja) * | 2018-01-25 | 2023-01-27 | パナソニック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 (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1559039A (zh) * | 2001-09-27 | 2004-12-29 | �ʼҷ����ֵ��ӹɷ�����˾ | 总线系统和用于连接到总线的总线接口 |
CN101176085A (zh) * | 2005-03-11 | 2008-05-07 | 伊克隆技术公司 | 在存在长传输延迟的情况下改善usb海量存储设备的性能的方法和装置 |
CN101641683A (zh) * | 2006-12-22 | 2010-02-03 | 高通股份有限公司 | 增强的无线usb协议和集线器 |
Family Cites Families (24)
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 | コンピュータ間の通信制御装置 |
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 |
WO2002015018A1 (en) | 2000-08-11 | 2002-02-21 | 3Ware, Inc. | Architecture for providing block-level storage access over a computer network |
JP4349349B2 (ja) * | 2005-08-30 | 2009-10-21 | ソニー株式会社 | データ送受信システム、送信装置、受信装置及びデータ送受信方法 |
US8090030B2 (en) | 2008-01-04 | 2012-01-03 | Silicon Image, Inc. | Method, apparatus and system for generating and facilitating mobile high-definition multimedia interface |
US7856520B2 (en) * | 2008-01-04 | 2010-12-21 | Silicon Image, Inc. | Control bus for connection of electronic devices |
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 |
JP2010278969A (ja) * | 2009-06-01 | 2010-12-09 | Canon Inc | 通信デバイス及び制御方法 |
JP5344542B2 (ja) * | 2008-06-03 | 2013-11-20 | キヤノン株式会社 | 通信デバイス |
WO2009147839A1 (ja) * | 2008-06-03 | 2009-12-10 | キヤノン株式会社 | 通信デバイス及び変換アダプタ |
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 |
-
2012
- 2012-07-11 US US13/546,904 patent/US9087163B2/en active Active
-
2013
- 2013-05-09 KR KR1020157003631A patent/KR102109431B1/ko active IP Right Grant
- 2013-05-09 CN CN201380047258.0A patent/CN104620564B/zh not_active Expired - Fee Related
- 2013-05-09 EP EP13817581.5A patent/EP2873220B1/en active Active
- 2013-05-09 WO PCT/US2013/040331 patent/WO2014011317A1/en active Application Filing
- 2013-05-09 JP JP2015521614A patent/JP6266615B2/ja active Active
- 2013-05-15 TW TW102117288A patent/TWI579705B/zh active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1559039A (zh) * | 2001-09-27 | 2004-12-29 | �ʼҷ����ֵ��ӹɷ�����˾ | 总线系统和用于连接到总线的总线接口 |
CN101176085A (zh) * | 2005-03-11 | 2008-05-07 | 伊克隆技术公司 | 在存在长传输延迟的情况下改善usb海量存储设备的性能的方法和装置 |
CN101641683A (zh) * | 2006-12-22 | 2010-02-03 | 高通股份有限公司 | 增强的无线usb协议和集线器 |
Also Published As
Publication number | Publication date |
---|---|
US20140019653A1 (en) | 2014-01-16 |
JP2015528243A (ja) | 2015-09-24 |
US9087163B2 (en) | 2015-07-21 |
CN104620564A (zh) | 2015-05-13 |
EP2873220A1 (en) | 2015-05-20 |
WO2014011317A1 (en) | 2014-01-16 |
TW201403341A (zh) | 2014-01-16 |
EP2873220B1 (en) | 2018-07-11 |
TWI579705B (zh) | 2017-04-21 |
EP2873220A4 (en) | 2016-02-24 |
JP6266615B2 (ja) | 2018-01-24 |
KR102109431B1 (ko) | 2020-05-13 |
KR20150036539A (ko) | 2015-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104620564B (zh) | 用于经由利用数据隧道的接口的多协议数据元素的传输的装置和方法 | |
CN104322033B (zh) | 使用第二协议的扩展功能结构来控制第一协议的物理链路 | |
JP5374268B2 (ja) | 情報処理装置 | |
CN104063290B (zh) | 处理超时的系统、方法和装置 | |
CN100416528C (zh) | 增强型通用输入/输出体系结构及在其中建立虚拟信道的有关方法 | |
CN101681325B (zh) | 修改PCI Express封包摘要的设备、系统和方法 | |
CA2600419C (en) | Method and apparatus for improving the performance of usb mass storage devices in the presence of long transmission delays | |
CN104704491A (zh) | 用于集群内通信的硬件消息队列 | |
TW200405172A (en) | Bus connection system | |
CN103019788A (zh) | 一种基于can总线的远程在线升级方法 | |
CN102811112B (zh) | 光纤信道输入/输出数据路由系统和方法 | |
CN103003808B (zh) | 用于访问PCI Express 兼容设备的资源的系统和方法 | |
JP2004280818A (ja) | Usbホストへ接続されているユニバーサルシリアルバススマートカード装置をシミュレートするシステム及び方法 | |
CN105378694A (zh) | 用于执行与通用串行总线(usb)装置的管理组件传输协议(mctp)通信的方法、设备和系统 | |
KR20110088454A (ko) | 디바이스들의 토폴로지에서 오디오/비디오 스트리밍을 위한 메시지 전달 프레임워크 | |
US7460531B2 (en) | Method, system, and program for constructing a packet | |
CN101276316A (zh) | 用于控制主机设备与usb设备之间的通信的装置、方法及系统 | |
CN107368219A (zh) | 触摸响应方法、芯片及智能设备 | |
CN104380274B (zh) | 用于优化的链路训练及管理的装置和方法 | |
CN109992556A (zh) | 一种i2c驱动方法和装置 | |
CN109725621A (zh) | 一种基于1553b总线和can总线的二级总线程序在线烧写方法 | |
CN102033834A (zh) | 远程控制装置及应用其的服务器与客户端 | |
CN207216602U (zh) | 一种基于网络的多单片机一次刷机系统 | |
CN116644016A (zh) | 一种数据传输方法、装置及设备 | |
TW466413B (en) | Data connecting method and device between computers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20151109 Address after: oregon Applicant after: LATTICE SEMICONDUCTOR CORPORATION Address before: American California Applicant before: Silicon Image Inc. A. Delaware C. |
|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180515 Termination date: 20200509 |
|
CF01 | Termination of patent right due to non-payment of annual fee |