發布日期:2022-04-18 點擊率:67
數據內容得以安全地傳送不是一項容易的事,為使用者開發一套簡化操作的底層技術就更加困難。微軟為了新一代掌上型裝置開發一套具備豐富功能的安全使用者介面,現推廣一個新傳輸協議「媒體傳輸協議」(Media Transfer Protocol),簡稱MTP。
微軟制訂一套名為媒體傳輸協議(Media Transfer Protocol, MTP)的新USB類別。MTP的目標是發展出一個新的裝置類別,并塑造一個市場轉折點,以藉此協助所有Windows CE裝置能與空前成功的Apple iPod產品系列匹敵。MTP協議與現有的USB Mass Storage Class(MSC)之間有眾多類似之處。MSC與MTP都是為了支援資料的儲存所設計,兩者都能讓主控端對裝置有某種程度的控制。兩者之間主要的差異在於通訊的層次、低階傳輸協議,以及裝置控制的層級。本文將針對MTP協議的細節、MSC與MTP之間的類似點與差異作討論,并將介紹一些MTP傳輸范例。
媒體傳輸協議-新一代媒體播放器的通訊協議
用來保護有版權或付費影音內容的數據版權管理(DRM)機制,對於消費性掌上型產品市場而言是相當重要的環節。由於欠缺數據內容傳送的控制技術,因此內容供應商多半不愿意發行如電影這類數據內容。若能開發出適合的保護協議,內容供應商會樂於將其智慧財產加以數據化。而微軟聲稱其MTP正是目前所需的保護協議。
詳細剖析MTP的各個傳輸層面
MTP與現今大多數的通訊協議層次相似,都是采用分層化的設計。我們將MTP協議分成三層(如圖1)為實體層(Physical Layer)、傳輸層(Transport Layer)、指令層(Command Layer)。這些功能層有別於OSI模式的前三個層面,但其概念是相同的。有趣的是,規格中完全沒有提及實體傳輸;但在我們討論范圍中,實體傳輸部份就是USB。MTP所用的資料傳輸層是Picture Transfer Protocol(PTP)規格。其中許多指令也是PTP指令,并且可以透過不同廠商的PTP延伸能自行進行擴充。
實體層
就實體層的層面而言,PTP與MTP是相同的,PTP與MTP在此層中可互通運用。本文將全文以MTP為主。
USB裝置透過端點與主控端進行通訊。一個USB端點是與主控端之間的一個獨立通訊通道。每個裝置需要一個特別的雙向端點,就是控制端點,其代號為endpoint 0。主控端會利用這個端點來控制裝置以及決定裝置的各項特性。其他所有端點皆為單向通道,具備獨立排序與流量控制的機制。MTP裝置具有提供以下通訊通道的數個端點:
?主控端的Data OUT (bulk資料端點)
?主控端的Data IN (bulk IN資料端點)
?主控端的Commands(requests) OUT(共用控制端點:EP 0)
?傳送至主控端的Events IN(Interrupt 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)。主控端總會透過資料管線來啟動指令階段。指令階段可能會持續多個封包(尤其是較舊的USB1.1裝置),所有被定義的指令皆小於64位元。在指令階段中,主控端會傳送一個單一指令到裝置端。這些送出的指令會裝固定格式的容器中,如表1所示。
如果指令有一個資料階段,IN或OUT資料階段就會緊隨在指令階段之后。傳送至容器中的資料屬於Container Type 2,而不是到指令區塊的Container Type 1。
最后,裝置傳出一個回應訊息,顯示指令的執行結果?;貞幋a與指令有關連;它們通常含有指令所有預期的結果。例如,允許回應GetObjectHandles出現超過10種可能的ResponseCodes,其中包括OK以及Store_ Not_Available.
指令
PTP與MTP將裝置中大部份元素視為物件。日常生活中使用裝置的大多數指令都會處理到物件。
樣本資料
觀察樣本資料流量的內容,可以容易看出通訊協議的運作流程。以下的CATC流程圖顯示在主控端與裝置之間啟動通訊的過程。
主控端啟動所有標示為OUT的傳輸,而裝置端則傳送所有標示為IN的資料。所有的Transfer傳輸內容是所有Transaction中的資料解碼內容。例如,transfer35的資料為transaction 230776中所含的內容。
?Transfer 35:這裡我們看到容器實際運作的狀況。長度欄位(0x10/16小數據)從LSB傳送至
MSB,之后有Type(Command=1)以及指令碼(OpenSession)。MTP transaction ID為0,顯示這是連線中的第一項傳輸。
?Transfer 36:結束一項傳輸,顯示主控端成功完成傳輸(Code=OK)。
?Transfer 37:主控端要求裝置中儲存元素清單(GetStorageIDs)。例如,附有擴充卡的Palm Pilot可能有兩個元素,一個支援主記憶體,另一個支援擴充卡。
?Transfer 38:這是Data Container的第一個范例。裝置回應它有一個單一儲存元素,標示為0x1(邏輯)與0x1(實體)。這個指令完全編碼至表3所示的內容。
?Transfer 39:以一個OK指令碼關閉Transaction 1。
?Transfer 40:開始下一項MTP傳輸。
瞭解MTP與PTP的差異
我們用了許多篇幅介紹MTP與PTP的共同點,因為MTP需要70%~80%的建置工作,但MTP會在大大小小的層面上提升PTP。在通訊協議上進行的小規模改良,會對功能產生極大的影響。
MTP增加許多新物件,以各種新方式來定義許多物件。這種設計可為各個播放清單提供支援,這些播放清單是任何MP3或媒體播放裝置的重要元件。MTP亦增加對Palm這類PDA裝置的支援,可加入行事歷、連絡人,以及群組物件等功能。當然,MTP也有加入對影片物件類型的支援。
透過加入特定的數據版權管理(DRM)屬性,其中包括DRM狀態、URL(在授權權限過期時,讓DRM可以要求付費)、使用次數和其他相關屬性,讓產品更容易加入數據版權管理(DRM)的支援,MTP可讓DRM的支援功能更容易執行。
MTP亦加入許多延伸技術,讓資料處理作業更加容易。它延伸PTP的規格,因此可傳輸大型(超過4GB)的檔案。它也讓容器與資料被分割成不同的USB封包。這樣可以使USB晶片(包括Cypress EZ-USB FX2LP與EZ-USB SX2系列產品)能更有效率地處理封包。
基本版與增強版MTP之比較
微軟在基本MTP結構中加入許多最佳化設計,藉此提升在Windows作業系統中使用MTP裝置的經驗。
如果您是一個裝置(Reso-pnder),這些功能已含括在微軟的免付權利金授權范圍中。若您是主控端(Initiator),這些Enhanced Initiator功能的授權屬於基本功能以外的范圍,您必須與微軟公司洽談授權合約。
增強版MTP的目的是讓主控端能與MTP週邊裝置緊密整合,創造出更棒的最終使用者經驗。許多增強版MTP功能的目的是一次處理多個物件,藉此可提升同步化效能。
法律問題
如果從微軟網站下載MTP規格,就會發現規格書的前三頁是最終使用者授權協議(End User License Agreement, EULA)。我們建議您在開始任何MTP研發工作之前,最好請律師詳讀這份授權書。EULA的重點包括:
1.基本MTP規格可免費使用:「...微軟授予您以下有限的、非獨家、全球性、免付權利金、不可讓渡、不可移轉、不可再授權的使用權限」(免付權利金特別強調)。
2. Enhanced Initiator功能不在此授權范圍之內?!副緟f議并未授予您在解決方案中建置Enhanced Initiator功能或此規格中所述功能之權限」。
3.必須建置整套規格:「您在解決方案中的建置設計,必須採用整套規格?!?nbsp;
追根究競,制定另一種傳輸規格的根本原因還是源自最終使用者的需求。面對消費性市場要求簡單、多功能的掌上型裝置的壓力下,再加上內容創作業界要求妥善保護數據內容版權的沉重壓力,微軟正致力解決這種兩頭燒的問題。為了讓雙方都能滿意,微軟提出媒體傳輸協議。研發業者須瞭解底層技術,方能發現能滿足顧客的產品特性和好處。
下一篇: 斷路器、隔離開關、接
上一篇: 索爾維全系列Solef?PV