<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 海量存儲等級vs.媒體傳輸協(xié)議

          海量存儲等級vs.媒體傳輸協(xié)議

          ——
          作者: 時間:2005-10-18 來源:新電子 收藏
           

          海量存儲等級(Mass Storage Class,MSC)是USB第一個標準化的規(guī)格,目前海量存儲裝置都能通過USB物理連接支持這項傳輸協(xié)議。另一方面,由于數(shù)字版權(quán)管理與內(nèi)容保護需要考慮特殊的通訊協(xié)議,微軟因此又推出了媒體傳輸協(xié)議(MTP)作為傳統(tǒng)大容量存儲裝置的替代方案。

          本文引用地址:http://www.ex-cimer.com/article/9146.htm

            數(shù)字版權(quán)管理(DRM)與內(nèi)容保護需要運用特別的通訊協(xié)議,在微軟的DRM引擎Janus中,底層采用的技術(shù)為MTP。MTP可被視為取代傳統(tǒng)MSC的方案,能傳送受保護的內(nèi)容。圖1是傳統(tǒng)海量存儲裝置應(yīng)用以及相關(guān)的軟件堆棧。

            主流操作系統(tǒng)與海量存儲裝置都能通過USB物理連接支持MSC,USB閃存盤、iPod及USB DVD刻錄機都使用與USB Zip-100磁盤驅(qū)動器完全相同的指令。USB閃存盤與iPod甚至包括特殊的USB控制器,如Cypress半導(dǎo)體公司的EZ-USB AT2LP能將SCSI指令轉(zhuǎn)譯成閃存或硬盤的原生指令。

            制定一套新協(xié)議的決策不能等閑視之,當(dāng)微軟決定要針對便攜式媒體裝置制定一套新標準時,等于是對抗整個USB市場的成功基礎(chǔ)。既然如此,為何要大費周章改變一套發(fā)展相當(dāng)成功的標準呢?

            事實上,對于掌上型便攜式媒體裝置這種需要更精密的系統(tǒng)存取機制而言,MSC并不是理想的方案。MSC為硬盤配備的接口僅允許一個裝置與磁盤驅(qū)動器進行傳輸,磁盤驅(qū)動器無法通過USB接口或DSP在音樂播放器中共用硬盤。由于USB接口無法探測裝置硬盤里的檔案系統(tǒng),因此所有讀寫作業(yè)都是在邏輯塊地址(Logical Block Address,LBA)中進行。這意味著USB裝置無法得知寫入作業(yè)何時完成,因此不能預(yù)測何時能與主控端切斷聯(lián)機。

            MSC也有受困于設(shè)計而無法達到的功能,例如未設(shè)立調(diào)整音量或關(guān)閉影片播放裝置屏幕的功能,也沒有專門的機制向主控端發(fā)送更多指令。此外,MSC本身也不適合支持USB聯(lián)機。在裝置寫入數(shù)據(jù)途中拔掉USB接線時,USB裝置所使用的大多數(shù)檔案系統(tǒng)都無法做出適當(dāng)?shù)姆磻?yīng)。

            通過修改現(xiàn)有的MSC協(xié)議來達成上述功能是很困難的,任何延伸方案都無法與現(xiàn)有基礎(chǔ)同時運作。Mass Storage DWG多年來一直嘗試制定USB裝置開機的標準,但至今仍未達成目標。與此同時,微軟決定在現(xiàn)有基礎(chǔ)上建置MTP。

            圖3展示了一個典型的MTP系統(tǒng)。通過系統(tǒng)中的USB串行接口引擎(SIE),CPU可控制USB總線的通訊協(xié)議。系統(tǒng)中的CPU可連接至主控端作為一個MTP裝置,也可配合設(shè)計的需要作為海量存儲裝置。

            MTP與MSC在不同層面上通過USB進行通訊,MSC針對系統(tǒng)中的存儲單元放置一個極薄的數(shù)據(jù)容器,USB Mass Storage裝置不知道存儲裝置的檔案系統(tǒng)。這種設(shè)計讓USB裝置擁有極高的彈性,主控端可通過不同的方法 來控制存儲單元。固定功能的USB-to-ATA橋接控制芯片可對硬盤進行格式化或?qū)VD-R設(shè)定成任何專利型格式,甚至是芯片在出廠時尚未問市的格式。

            這是如何實現(xiàn)的呢?橋接芯片以透明化的模式將邏輯塊尋址層級的指令傳送給磁盤驅(qū)動器,而不會嘗試了解檔案系統(tǒng)的結(jié)構(gòu)。反觀圖像傳輸協(xié)議(Picture Transport Protocol,PTP)與MTP協(xié)議,則能在更高的功能層上進行通訊。

            圖像傳輸協(xié)議是相機與掃描儀用來傳送數(shù)據(jù)的通訊協(xié)議,擁有許多MTP需要的功能,支持雙向控制機制,計算機可控制掃描儀,也可在掃描儀上設(shè)計一個按鈕向PC要求進行掃描。設(shè)計這套協(xié)議主要針對高速、無錯的數(shù)據(jù)傳輸,這也是掃描儀與便攜式媒體播放器所追求的目標。

            PTP與MTP協(xié)議允許主控端通過任何格式與存儲裝置進行通訊,其中包括專利型相機檔案系統(tǒng)以及各種新推出的閃存裝置。PTP與MTP在這方面采用類似FTP協(xié)議的方法,這些協(xié)議將檔案視為對象而不是邏輯塊尋址。

            圖4左圖顯示了轉(zhuǎn)譯至FAT格式硬盤數(shù)據(jù)的一個典型檔案讀取流程。在此之前,主控端已找到讀取目標檔案所在目錄的邏輯塊地址。當(dāng)?shù)弥夸浰诘刂泛螅骺囟司涂梢蚤_始讀取檔案數(shù)據(jù)。若檔案中有更多數(shù)據(jù),主控端就會讀取FAT(再次通過特定的邏輯塊地址)并判斷檔案數(shù)據(jù)所在的下一個叢集,將叢集編號轉(zhuǎn)譯成邏輯塊地址,然后讀取另一個特定的邏輯塊地址。這些功能都融入至主控端,USB橋接芯片僅擷取邏輯塊地址。

            圖4右圖中顯示MTP或PTP裝置上類似的傳輸流程。USB聯(lián)機的裝置端必須充分了解裝置上的檔案結(jié)構(gòu)。第一個指令(get object handles)的功能較類似“read directory”,不像“read address 1234”。其后指令(GetObjectInfo)的功能較接近“dir mysong.mp3”,不像“read address 1234”。最后的指令(GetObject)要求裝置以串行模式傳出整個檔案,主控端不必瀏覽整個FAT表在裝置中找出所要的檔案。

            MTP適合應(yīng)用在復(fù)雜的高端裝置,由于會增加設(shè)備的負擔(dān),因此會產(chǎn)生較高的整體系統(tǒng)成本以及較長的研發(fā)時間。然而MTP也有許多優(yōu)勢,它支持各種功能,例如讓音樂播放設(shè)備能同時通過PC喇叭播放音樂以及下載檔案,并提供一套標準機制,可通過PC或裝置來控制音量,還能針對編輯后的播放清單進行同步化處理。MTP讓USB傳輸成為媒體播放器的延伸功能,而不是一種“特殊模式”。

            MSC則較適合簡單的媒體播放器,并鎖定各種海量存儲裝置應(yīng)用。例如Sony的DVDirect DVD錄像機,可搭載足夠的智能功能,能刻錄DVD,并利用Roxio與Nero等商業(yè)DVD刻錄軟件的各種功能,這些軟件可以和各種高容量裝置進行通訊。

            MTP裝置的市場持續(xù)擴張,加上數(shù)字音樂與影片內(nèi)容如雨后春筍般地成長,MSC與新型媒體傳輸協(xié)議的硬件平臺發(fā)展空間值得期待。MSC將繼續(xù)堅守傳統(tǒng)角色,扮演搭載硬盤裝置的最佳選擇,并提供其他功能。MTP則將繼續(xù)擴展高端、復(fù)雜型媒體播放裝置市場,在各種多功能硬件上提供極佳的使用者體驗。



          關(guān)鍵詞: 消費電子 存儲器 消費電子

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();