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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ISO實(shí)現(xiàn)多媒體流的高速傳輸

          ISO實(shí)現(xiàn)多媒體流的高速傳輸

          作者: 時(shí)間:2013-05-21 來(lái)源:網(wǎng)絡(luò) 收藏

          通用串行總線(USB)是自1997年末開(kāi)始為PC主板所采用的一種開(kāi)放接口標(biāo)準(zhǔn)。1998年,推出了僅有兩個(gè)I/O接口,即USB及以太網(wǎng)接口的Apple iMac。最初的USB標(biāo)準(zhǔn)(1.0及1.1)支持的最大傳輸率為每秒1M字節(jié),凈傳輸速率達(dá)12 Mbps。Windows 98是最先支持USB的操作系統(tǒng),它內(nèi)置了各種設(shè)備的驅(qū)動(dòng)程序,其中包括鼠標(biāo)、鍵盤及揚(yáng)聲器。2000年4月,USB應(yīng)用者論壇(USB-IF成員包括:微軟、英特爾、飛利浦、惠普、康柏、NEC及朗訊)發(fā)布了USB標(biāo)準(zhǔn)2.0。該版本增加了新的率。高速USB傳輸最高速率可達(dá)480 Mbps,比USB 1.1的最高速度快40倍。

          傳輸?shù)奶攸c(diǎn)
            
          USB支持兩種類型的數(shù)據(jù)傳輸:大數(shù)據(jù)塊(bulk)傳輸方式,對(duì)不能容差的數(shù)據(jù)進(jìn)行移動(dòng);同步(isochronous,)傳輸方式,對(duì)不允許時(shí)延的數(shù)據(jù)進(jìn)行移動(dòng)。數(shù)據(jù)塊傳輸可確保數(shù)據(jù)能可靠傳輸,不會(huì)丟失或干擾數(shù)據(jù),但不能確保給定時(shí)間內(nèi)的數(shù)據(jù)傳輸量。在沒(méi)有其他數(shù)據(jù)流量時(shí),塊數(shù)據(jù)即指那些僅使用總線的填充數(shù)據(jù)。同步傳輸是以主機(jī)PC與設(shè)備相互協(xié)調(diào)確定的速率來(lái)進(jìn)行的,但數(shù)據(jù)可能會(huì)受到干擾,而且不能持續(xù)傳輸。
            
          選擇同步傳輸還是選擇塊數(shù)據(jù)傳輸是非常簡(jiǎn)單的。如果數(shù)據(jù)的完整性是最重要的,就采用塊數(shù)據(jù)傳輸;但如果準(zhǔn)時(shí)傳輸數(shù)據(jù)比準(zhǔn)確率更重要的話,還是選擇傳輸。雖然乍看起來(lái)選擇ISO并不合乎邏輯,因?yàn)镮SO是用準(zhǔn)時(shí)發(fā)送的受干擾數(shù)據(jù)來(lái)代替晚發(fā)的正確數(shù)據(jù),但在某些不能及時(shí)傳送數(shù)據(jù)的區(qū)域可能會(huì)存在數(shù)據(jù)根本不能到達(dá)的情況。電話里的音頻流就是一個(gè)簡(jiǎn)單例子,丟失了幾小片數(shù)據(jù)總比讓受話方一直落后乃至不能趕上要好。在視頻中也是如此,用戶還是寧愿選擇丟失一個(gè)幀以保持圖像的實(shí)時(shí)傳輸。
            
          USB帶寬被分為每秒1000幀。USB 1.1中的同步傳輸限制在每個(gè)幀的每個(gè)設(shè)備端點(diǎn)傳輸一個(gè)數(shù)據(jù)包。最大的包大小為1023字節(jié),每秒總數(shù)據(jù)傳輸率為1 Mbps。USB 2.0不僅將數(shù)據(jù)率提高到480 Mbps,還將每個(gè)幀分成8個(gè)微幀,以降低對(duì)設(shè)備緩存的需求。USB 2.0還將每個(gè)設(shè)備的每個(gè)微幀1024字節(jié)的包容量擴(kuò)大到3個(gè)數(shù)據(jù)包的容量。這樣USB 2.0中ISO數(shù)據(jù)率從1 Mbps提高到24 Mbps (每秒1000幀 × 每幀8微幀 × 每微幀3個(gè)數(shù)據(jù)包 × 每數(shù)據(jù)包1024字節(jié))。

          圖1 應(yīng)用帶寬分析圖

          ISO傳輸?shù)膽?yīng)用
            
          USB 2.0高速ISO推出后支持的最佳產(chǎn)品便是并不昂貴的攝像機(jī)。USB攝像機(jī)早已問(wèn)世,但全速USB的帶寬限制令人們對(duì)圖像的分辨率及幀速率大失所望。全速USB攝像機(jī)的帶寬僅能以每秒5幀的速度傳輸未壓縮CIF (352 × 288)視頻。該設(shè)備需占用90%以上的帶寬,而這個(gè)帶寬是系統(tǒng)內(nèi)所有USB設(shè)備共享的。而通過(guò)高速ISO,相同攝像機(jī)可以每秒30幀的速度工作,僅占用可用帶寬的10%。作為一個(gè)實(shí)例,該技術(shù)已在DV(數(shù)碼視頻)攝像機(jī)中得到了應(yīng)用,以每秒4.5Mbyte的恒定速率傳輸復(fù)合視頻和音頻。高速ISO功能在這類領(lǐng)域中完全游刃有余。圖1所示為各類流協(xié)議所需帶寬與USB1.1全速及USB2.0高速所能利用的ISO帶寬的對(duì)比情況。
            
          USB的作用并非在數(shù)據(jù)到達(dá)CPU時(shí)即告終止。USB 2.0還可以將數(shù)據(jù)由CPU傳輸?shù)酵獠坑脖P、DVD-RAM或CDRW驅(qū)動(dòng)器等存儲(chǔ)設(shè)備中。如今采用USB 2.0標(biāo)準(zhǔn)的大量數(shù)據(jù)存儲(chǔ)設(shè)備的運(yùn)行速率已高達(dá)20 Mbps,并且有望繼續(xù)提高。
            
          Windows支持的USB基于分層結(jié)構(gòu),可使所需的常規(guī)設(shè)備驅(qū)動(dòng)降至最少,甚至無(wú)需常規(guī)設(shè)備驅(qū)動(dòng)。分層結(jié)構(gòu)的最底層是USBD,即通用串行總線驅(qū)動(dòng)。位于USBD之上的是類驅(qū)動(dòng)(class drivers),這種驅(qū)動(dòng)對(duì)于具有類似特性的設(shè)備是通用的。要支持ISO,類驅(qū)動(dòng)必須采用流類驅(qū)動(dòng)程序(Stream Class Driver,stream.sys)。音頻和視頻驅(qū)動(dòng)則位于stream.sys之上。Windows 98包含了對(duì)于音頻設(shè)備的支持,而Windows 2000、ME和XP則通過(guò)減少其他操作系統(tǒng)任務(wù)延遲音頻數(shù)據(jù)的可能性增強(qiáng)了這種支持功能。Windows(r) 2000、ME和XP還增加了某些支持?jǐn)?shù)碼視頻相機(jī)的功能。USB 2.0高速設(shè)備可利用流驅(qū)動(dòng)獲得高達(dá)24 Mbps的帶寬。

          支持USB 2.0規(guī)范的PCI主機(jī)已在今年四月投放在零售市場(chǎng)上。支持USB 2.0新標(biāo)準(zhǔn)的微控制器現(xiàn)在也已開(kāi)始發(fā)售。例如Cypress的EZ-USB FX2(tm),這是一種兼容USB 2.0規(guī)范,并能以高達(dá)每秒24Mbyte的持續(xù)速率進(jìn)行ISO傳輸?shù)?位微控制器。該器件采用了靈活的外部接口,從而便于與諸如攝像機(jī)ASIC(專用集成電路)等等的多媒體數(shù)據(jù)源相連接。該器件的開(kāi)發(fā)工具包中包括了一些固件和驅(qū)動(dòng)程序范例,這有助于推動(dòng)ISO的開(kāi)發(fā),并能夠加快和保證高效的開(kāi)發(fā)速度。而另一種名為ISD-300的USB 2.0器件使生產(chǎn)商能夠設(shè)計(jì)出實(shí)際運(yùn)行速率比共享IDE控制器的驅(qū)動(dòng)器更快的外部CDRW和DVD驅(qū)動(dòng)器。



          關(guān)鍵詞: ISO 多媒體流 高速傳輸

          評(píng)論


          相關(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); })();