<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 基于IEEE1394b的雙向傳輸設備驅動(dòng)程序設計

基于IEEE1394b的雙向傳輸設備驅動(dòng)程序設計

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

摘要 介紹了IEEEl394b總線(xiàn)數據系統PC機端程序。結合IEEEl394b總線(xiàn)規范,以Windows環(huán)境為例詳細介紹了利用Fir-eAPI SDK開(kāi)發(fā)程序的設計原理、實(shí)現方法。
關(guān)鍵詞 ;內核模式;FireAPI

現有的大部分數據接口總線(xiàn)造價(jià)比較高,且難以滿(mǎn)足實(shí)際運用中對速率的要求,成了阻礙整個(gè)系統性能提高的一大屏障。IEEE-1394是現今最高速的串行總線(xiàn)接口之一,IEEE1394lb更是在原有IEEE1394的基礎上速度更快,支持距離更長(cháng),在實(shí)時(shí)批量數據傳輸方面有廣泛的應用前景。
1394傳輸系統文獻,大部分都是IEEE1394a的,而以其更高的速度展現出了更大的魅力,對實(shí)時(shí)大批量的數據傳輸具有重大意義,但是Microsoft并沒(méi)有提供對1394b的支持,在Windows自帶的1394不能支持其S800的速度,因此1394b在應用上受到局限,Unibrian提供了FireAPI SDK開(kāi)發(fā)包,提供了對1394b的完全支持,也是現在唯一持1394b的驅動(dòng)程序開(kāi)發(fā)包。

1 IEEEl394串行總線(xiàn)概述
IEEE1394又稱(chēng)火線(xiàn)(Fire Wire),是由美國蘋(píng)果電腦公司開(kāi)發(fā)的一種品質(zhì)高、傳輸速度快的串行總線(xiàn)技術(shù)。1995年IEEE正式認可IEEE139 4-1995規范,并于2000年又推出了IEEE1394a-2000規范。2002年推出了IEEEl394b-2002的傳輸速率可達3.2 Gb·s-1,兼容于IEEE1394a,但是接口的形狀從IEEE1394a的6 Pin變成9 Pin。IEEE1394的主要特點(diǎn)如下:
(1)高速可升級,支持100 Mb·s-1、200 Mb·s-1、和400 Mb·s-1的傳輸速率。IEEE1394b增加800 Mb·s-1,16 00 bib·s-1,3 200 Mb·s-1的傳輸速率,現在市面上所提供的芯片最高支持到800 Mb·s-1。
(2)支持點(diǎn)到點(diǎn)傳輸,各節點(diǎn)可以脫離主機自主執行事務(wù)。
(3)支持較遠距離的傳輸;IEEE1394節點(diǎn)之間的距離不能超過(guò)4.5 m。IEEE1394b最遠距離可達100 m,而且可以選用更多的傳輸媒介,比如非屏蔽的5類(lèi)雙絞線(xiàn)、塑料光纖和玻璃光纖等。
(4)支持即插即用,可以在任何時(shí)候向IEEE1394網(wǎng)絡(luò )添加或刪除設備。
(5)熱插拔,無(wú)需將系統斷電就可以加入和移除設備。
(6)支持兩類(lèi)事務(wù),包括等時(shí)(Isochronous)和異步(Asynchronous)事務(wù)。
(7)拓撲結構,設備間采用樹(shù)形或菊花鏈拓撲結構,每條總線(xiàn)最多可以連接63臺設備。
(8)公平仲裁,是等時(shí)傳輸具有較高優(yōu)先級,同時(shí)異步傳輸也能獲得對總線(xiàn)公平的訪(fǎng)問(wèn)。

2 IEEE1394b驅動(dòng)程序的基本結構
Unibrianl394驅動(dòng)程序棧采用由上而下的架構,這個(gè)棧的核心就是1394類(lèi)驅動(dòng),它完成1394所有事物并提供應用程序所需的全部服務(wù)。而這個(gè)1394類(lèi)驅動(dòng)正是WDM驅動(dòng)中的類(lèi)驅動(dòng)。圖1為Unibrainl394驅動(dòng)棧。

a.JPG

3 IEEE1394b驅動(dòng)程序的具體實(shí)現
3.1 驅動(dòng)程序入口點(diǎn)
運用FireAPI的第一件事就是調用C1394Initializa,C1394Initialize執行所有對1394初始化支持的必需動(dòng)作,這個(gè)函數會(huì )檢查FireAPI驅動(dòng)棧是否已完全安裝,相應的驅動(dòng)程序是否已經(jīng)開(kāi)始,以及初始化驅動(dòng)棧需要的內部結構。
3.2 打開(kāi)設備方法
當1394總線(xiàn)上添加或刪除一個(gè)或多個(gè)設備時(shí)會(huì )自動(dòng)重新配置物理設備地址,以此來(lái)支持即插即用特性,這時(shí)設備物理ID的重新分配,設備的節點(diǎn)號可能會(huì )改變。不過(guò)1394要求每個(gè)節點(diǎn)都要有一個(gè)全球惟一標識符GUID,它存儲在Bus_Into_Block,在設備的整個(gè)生存期它是惟一不變的,所以在程序中根據設備的GUID打開(kāi)設備句柄,其傳輸時(shí)將不用擔心總線(xiàn)復位及物理ID改變。


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>