`

MTP (Media Transfer Protocol) Introduction

 
阅读更多

    微軟制訂了一套名為媒體傳輸協議(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的數據流量皆流向設備端。

 

傳輸層

  MTP的數據傳輸層源自於PTP(USB Still Image Class)。USB Still Image Class規格了指令如何通過PTP進行傳輸、如何響應指令、如何中止傳輸,以及指令如何進行格式化。它並沒有規格指令本身,我們將在下面探討指令。

  USB傳輸狀態結構有三個主要狀態:指令狀態(Command Phase)、數據狀態(Data Phase)以及響應狀態(Response Phase)。主控端始終通過數據線激活指令狀態。指令狀態可能會持續多個數據包(尤其是較舊的USB 1.1設備),但所有被定義的指令皆小於64位。

  在指令狀態中,主控端會傳送一個單一指令到設備端。這些送出的指令會裝在有固定格式的存儲器(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”功能或此規格中所述功能的權限。”
◆ 必須履行整套規格:“您在解決方案中的工具設計,必須遵從整套規格。”

為保護數字內容版權提出對策

  追根究底,制定另一種傳輸規範的根本標準還是終端用戶的需求。面對消費性市場要求簡單、多功能的掌上產品的壓力,以及內容創作業界要求妥善保護數字內容版權的呼聲,微軟正致力解決這種兩頭燒的問題。

  為了讓雙方都能滿意,微軟提出媒體傳輸協議。技術人員須了解底層技術,方能發現滿足顧客的產品特性和優勢。因此,雖然學習新的通信協議可能不會是件簡單的事,但之後消費者必然會感謝您的努力。

分享到:
评论

相关推荐

    Introduction to MTP Media Transfer Protocol.pdf

    《Introduction to MTP: Media Transfer Protocol》由Steve Kolokowsky和Trevor Davis撰写,该文档介绍了MTP(Media Transfer Protocol)媒体传输协议的相关概念和技术细节。随着数字音频和视频内容的普及,如何在...

    微软MTP协议 Microsoft Media Transfer Protocol

    微软媒体传输协议(Microsoft Media Transfer Protocol,简称MTP)是一种由微软公司开发的协议,用于在设备(如数字相机、智能手机或音乐播放器)与计算机之间传输媒体文件。MTP最初设计是为了解决USB Mass Storage ...

    mtp usb驱动32和64位下载(win7mtp usb驱动) Media Transfer Protocol Porting Kit

    mtp usb驱动32和64位下载(win7mtp usb驱动) Media Transfer Protocol Porting Kit 媒体传输协议移植工具包 解决手机连接电脑驱动安装失败导致手机识别不了的问题

    Media transfer protocol porting kit

    MTP was first shipped as part of the Windows Media Device Manager 10 SDK. This porting kit includes the complete MTP specification, updated design documentation, updated sample source code, software ...

    MTP Porting Kit 12.0(包含32位和64位

    MTP Porting Kit 12.0 是一个专门用于处理Media Transfer Protocol (MTP) 的移植工具包,适用于32位和64位操作系统。这个工具包旨在帮助开发者和用户在不同的设备上顺利实现MTP协议的支持,从而实现更高效、更安全的...

    MTP设备驱动安装失败修复工具.zip

    标题"MTP设备驱动安装失败修复工具.zip"指出的是一个针对MTP(Media Transfer Protocol)设备驱动安装问题的解决方案。MTP是一种由微软开发的协议,主要用于在计算机与多媒体设备之间进行数据传输,如智能手机、数码...

    1.MTP USB驱动win7 32+64位可用版 2.mtppk12.exe 3.usb-driver-setup.exe对应

    标题中的“MTP USB驱动win7 32+64位可用版”指的是适用于Windows 7操作系统32位和64位版本的Media Transfer Protocol (MTP) USB驱动程序。MTP是一种数字设备(如智能手机、音乐播放器)与计算机之间传输数据的协议,...

    MTP驱动协议

    MTP(Media Transfer Protocol,媒体传输协议)是由微软开发的一种用于在设备间传输媒体文件的协议。与传统的USB Mass Storage(UMS)协议不同,MTP旨在提供更高效、安全的数据传输方式,尤其适用于多媒体设备如智能...

    mtp驱动,用于手机连接电脑驱动缺失

    MTP(Media Transfer Protocol,媒体传输协议)是一种用于在设备之间传输媒体文件的协议,尤其常见于智能手机与电脑之间的连接。MTP驱动是确保电脑能够识别并正确通信所需的软件组件,尤其是在USB连接时。当您尝试将...

    MTP协议第一版

    MTP完整协议,Media Transfer Protocol is a protocol designed for content exchange

    MTP Extension Overview

    This documentation presents an overview of extensions to the Microsoft Media Transfer Protocol (MTP) specification. MTP incorporates a mechanism to enable Microsoft and other vendors to extend the ...

    9.0 10.0 USB连接模式默认设为MTP.rar

    本文将深入探讨USB连接模式,特别是如何将默认设置更改为MTP(Media Transfer Protocol)模式。 MTP(Media Transfer Protocol)是一种用于数字设备之间传输媒体文件的协议,由微软开发并在各种操作系统中广泛支持...

    c# mtp ptp操作手机相机等库

    MTP(Media Transfer Protocol)和PTP(Picture Transfer Protocol)是两种用于设备间传输媒体文件的标准协议,通常应用于电脑与手机、相机等移动设备之间。本库的核心功能就是利用C#来实现MTP和PTP协议,以便于用户...

    MTP_Enhanced.doc

    Media Transfer Protocol(MTP)是一种由微软开发的协议,它扩展了Picture Transfer Protocol(PTP),主要用于内容交换和对瞬态存储设备的控制。MTP最初是为数字静态相机、便携式媒体播放器和手机等设备设计的,...

    MTP USB驱动程序

    MTP(Media Transfer Protocol,媒体传输协议)USB驱动程序是一种允许电脑与支持MTP协议的设备,如智能手机、数码相机等进行数据交换的驱动软件。在Windows XP操作系统中,为了能够顺利地通过USB接口与这些设备进行...

    mtp_specification__v1.0.zip

    **MTP(Media Transfer Protocol)协议详解** MTP(Media Transfer Protocol)是一种由微软开发的文件传输协议,主要用于数码相机、智能手机和其他多媒体设备与个人电脑之间的数据交换。它是在PTP(Picture ...

    mtp-71.tar.gz

    mtp(Media Transfer Protocol)是一种通信协议,专门用于在不同设备之间传输多媒体文件,包括音频、视频和图片等。在嵌入式Linux系统中,mtp 提供了一种方便快捷的方式来管理媒体文件,使用户能够轻松地将文件从...

    uMTP-Responder:用于GNULinux的轻量级USB媒体传输协议(MTP)响应程序守护程序

    MTP(Media Transfer Protocol)是一种面向数字媒体的传输协议,设计时考虑了对设备内存的直接访问,从而避免了像MSC那样需要将整个文件系统挂载到主机上的需求。MTP能够更好地处理设备上的多媒体文件,例如音乐、...

    MTP 1.0协议规范

    MTP(Media Transfer Protocol)1.0协议是针对数字媒体设备数据传输的一种通信协议,它最初是为了扩展早期的PTP(Picture Transfer Protocol)而设计的。PTP主要应用于数码相机与计算机之间的照片传输,而MTP则在PTP...

    MTP specification

    **MTP(Media Transfer Protocol)规范详解** MTP(Media Transfer Protocol)是一种由微软开发的协议,主要用于设备间的数据传输,尤其是针对多媒体设备如数码相机、智能手机和平板电脑。MTP扩展了传统的...

Global site tag (gtag.js) - Google Analytics