微软制订了一套名为媒体传输协议(MTP)的新USB类别,希望协助Windows CE设备与Apple iPod产品系列匹敌。MTP协议与MSC的主要差异在于通信的层次、低阶传输协议及设备控制的层级。本文将讨论MTP协议的细节、MSC与MTP之间的异同之处,并介绍一些MTP传输范例
安全地传送数字内容不是一件容易的事,为使用者开发一套简化操作的底层技术就更加困难。众多从事创作与传送数字音频及视频内容的厂商现在正面临这项重大挑战。微软为新一代掌上设备开发了一套具备丰富功能的用户界面,现已推广一个新的传输协议——媒体传输协议(Media Transfer Protocol),简称MTP。
数字版权管理(DRM)机制是用来保护有版权或付费的影音内容,这对于消费性掌上产品市场而言相当重要。由于欠缺数字内容传送的控制技术,内容供货商多半不愿意发行如电影这类数字内容。若能开发出适合的保护协议,内容供货商会乐于将其知识产权加以数字化,微软表示其MTP正是目前所需的保护协议。
MTP采用分层化设计
MTP与现今大多数的通信协议层次相似,都采用分层化设计。我们将MTP协议分成三层:物理层(Physical Layer)、传输层(Transport Layer)以及指令层(Command Layer)。这些功能层有别于OSI模式的前三个层面,但其概念是相同的。MTP所用的数据传输层是Picture Transfer Protocol(PTP)规格。其中许多指令也是PTP指令,并可通过不同厂商的PTP延伸自行扩充。
物理层
需要注意的是,就物理层的层面而言,PTP与MTP是相同的,PTP与MTP在此层中可互通运用。本文将全文使用MTP。
USB设备通过端点与主控端进行通信。一个USB端点对应一个主控端独立信道。每个设备需要一个特别的双向端点,即控制端点,其代号为端点0。主控端会利用这个端点来控制设备并判断其各项特性。其他端点皆为单向信道,具备独立排序与流量控制功能。MTP设备包含提供以下通信信道的四个端点:
◆ 主控端的Data OUT(海量数据输出端点) ◆ 主控端的Data IN(海量数据输入端点)
◆ 主控端的Commands(requests) OUT(共享控制端点:EP0) ◆ 传送至主控端的Events IN(中断输入端点)
IN与OUT代表USB设备中的数据传送方向。USB是一种以主控端为中心的通信协议;所有IN的数据流量都会流向主控端,而OUT的数据流量皆流向设备端。
图2:Endpoint Use In PTP/MTP
传输层
MTP的数据传输层源自于PTP(USB Still Image Class)。USB Still Image Class规格了指令如何通过PTP进行传输、如何响应指令、如何中止传输,以及指令如何进行格式化。它并没有规格指令本身,我们将在下面探讨指令。
USB传输状态结构有三个主要状态:指令状态(Command Phase)、数据状态(Data Phase)以及响应状态(Response Phase)。主控端始终通过数据线激活指令状态。指令状态可能会持续多个数据包(尤其是较旧的USB 1.1设备),但所有被定义的指令皆小于64位。
Fig.3 Data Transport State Machine数据传输状态机
在指令状态中,主控端会传送一个单一指令到设备端。这些送出的指令会装在有固定格式的存储器(Containers)中,如表1所示。
如果指令有一个数据状态,IN或OUT数据状态就会紧随在指令状态之后。传送至存储器中的数据属于Container Type 2,而非指令区块的Container Type 1。最后,设备发出一个
响应信号,显示指令的执行结果。响应编码与指令有关连,它们通常含有指令所有预期的结果。例如,允许响应GetObjectHandles出现超过10种可能的响应编码,其中包括OK以及Store_Not_Available。
指令
PTP与MTP将设备中大部分元素视为对象。日常生活中用户使用设备的大多数指令都会涉及对象。
通信协议运作流程
观察样本数据流量的内容,很容易看出通信协议的运作流程。图4的CATC流程图显示在主控端与设备之间激活通信的过程。
主控端激活所有标示为OUT的传输,设备端则传送所有标示为IN的数据。传输时全部采用解码数据。例如,Transfer35的数据包含在Transaction230776中。
Transfer35:这里可以看到存储器实际运作的状况。长度字段(0x10/16小数)从LSB传送至MSB,之后有类型(Command=1)及指令码(OpenSession)。MTP执行ID为0,显示这是联机中的第一项传输。
Transfer36:结束一项传输,显示主控端成功完成传输(Code=OK)。
Transfer37:主控端要求设备中存储元素清单(GetStorageIDs)。例如,附有扩充卡的Palm Pilot可能有两个元素,一个支持主存储器,另一个支持扩充卡。
Transfer38:这是数据存储器的第一个范例。设备响应它有一个单一存储元素,标示为0x1(逻辑)与0x1(物理)。这个指令完全编码如表3所示。 Transfer39:以一个OK指令码关闭Transaction1。
Transfer40:开始下一项MTP传输。
MTP添加延伸技术 扩充PTP规格
我们用了大量篇幅介绍MTP与PTP的共同点,因为MTP需要70%至80%的执行工作,但MTP会在大大小小的层面上提升PTP。在通信协议上进行的小规模改良,会对功能产生极大的影响。
MTP增加了许多以各种新方式定义的新对象。这种设计可为各个播放清单提供支持,这些播放清单是任何MP3或媒体播放装置的重要关键。MTP也增加了对Palm这类PDA设备的支持,可加入日历、联系人及群组对象等功能。当然,MTP也加入了对影像对象的支持。
通过加入特定的数字版权管理(DRM)属性,包括DRM状态、URL(在授权权限过期时,让DRM可以要求付费)、使用次数和其他相关属性,让产品更容易加入数字版权管理的支持,MTP可让DRM的支持功能更容易执行。
MTP还添加了许多延伸技术,使数据处理更加容易。它扩充了PTP规格,因此可传输大型(超过4GB)的文件。它也让存储器与数据被分割成不同的USB数据包。这样可以使USB芯片(包括Cypress EZ-USB FX2LP与EZ-USB SX2系列产品)能更有效率地处理数据包。
增强版MTP让主控端与MTP外围设备紧密结合
微软在基本MTP结构中加入一系列优化设计,借此提升在Windows操作系统中使用MTP设备的效果。如果您是一台设备(Resopnder),这些功能已包含在微软的免版税授权范围内。若您是主控端(Initiator),这些“Enhanced Initiator”功能的授权属于基本功能之外,您必须与微软公司洽谈授权合约。
增强版MTP的目的是让主控端能与MTP外围设备紧密结合,获得更好的终端用户体验。许多增强版MTP功能的目的是一次处理多个对象,从而提高同步性能。
法律问题
如果用户从微软网站下载MTP规格,就会发现说明书的前三页是终端用户授权协议(End User License Agreement,EULA)。建议用户在开始任何MTP研发工作前,最好请律师详读这份授权书。EULA的重点包括:
◆ 基本MTP规格可免费使用:“微软授予您以下有限的、非独家、全球性、免版税、不可让渡、不可转让、不可再授权的使用权限。” ◆ “Enhanced Initiator”功能不在此授权范围之内。“本协议并未授予您在解决方案中运行“Enhanced Initiator”功能或此规格中所述功能的权限。”
◆ 必须履行整套规格:“您在解决方案中的工具设计,必须遵从整套规格。”
为保护数字内容版权提出对策
追根究底,制定另一种传输规范的根本标准还是终端用户的需求。面对消费性市场要求简单、多功能的掌上产品的压力,以及内容创作业界要求妥善保护数字内容版权的呼声,微软正致力解决这种两头烧的问题。
为了让双方都能满意,微软提出媒体传输协议。技术人员须了解底层技术,方能发现满足顾客的产品特性和优势。因此,虽然学习新的通信协议可能不会是件简单的事,但之后消费者必然会感谢您的努力。
因篇幅问题不能全部显示,请点此查看更多更全内容