- 相關(guān)推薦
1394技術(shù)及其在圖像傳輸系統(tǒng)中的應(yīng)用
摘要:為了最大限度地利用現(xiàn)有硬件資源,縮短開(kāi)發(fā)周期,研制了1394-PCI的轉(zhuǎn)接卡,實(shí)現(xiàn)了基于1394的高速圖像傳輸系統(tǒng)。介紹了1394高速串行總線的特性及原理及1394-PCI轉(zhuǎn)接卡的硬件、軟件設(shè)計(jì)。關(guān)鍵詞:1394高速串行總線 1394-PCI轉(zhuǎn)接卡 設(shè)備驅(qū)動(dòng)程序
當(dāng)今的計(jì)算機(jī)外圍設(shè)備都在追求高速性和高通用性,尤其在進(jìn)行圖像數(shù)據(jù)處理和傳輸時(shí),數(shù)據(jù)的大指、高速、實(shí)時(shí)性對(duì)計(jì)算機(jī)與外設(shè)的接口提出了更高的要求。
目前新型總線接口有兩種:USB和1394接口。它們都支持即插即用,具有易擴(kuò)展、使用方便、成本低等特點(diǎn)。但在任何USB系統(tǒng)中,只能有一個(gè)主機(jī),最多可接127個(gè)外設(shè),在全速模式下的傳輸紡為500kbps~10Mbps。而相比之下1394顯得更勝一籌。它支持點(diǎn)到點(diǎn)的傳輸,消除了主機(jī)處理器/內(nèi)存瓶頸,具有可升級(jí)性,支持400Mbps、200Mbps和100Mbps傳輸率,單一總線支持63個(gè)節(jié)點(diǎn),由于1394總線的高速性和獨(dú)立于主機(jī)的操作能力,使它成為高多媒體設(shè)備接口的首選。
1 1394技術(shù)
IEEE 1394起源于蘋果公司,又名FireWire,是為家用電器研制的一種高速串行總線標(biāo)準(zhǔn),其目的是為了解決對(duì)速度要求很高的寬帶設(shè)備的傳輸問(wèn)題。(范文先生網(wǎng)325224.com收集整理)1995年12月,IEEE 1394-1994高速總線標(biāo)準(zhǔn)正式被IEEE標(biāo)準(zhǔn)委員會(huì)批準(zhǔn)。
1.1 1394的主要特點(diǎn)
a.支持點(diǎn)對(duì)點(diǎn)傳輸。串行總線設(shè)備能自主執(zhí)行事務(wù),而不需要主機(jī)CPU的干預(yù)。
b.可擴(kuò)展總線?梢詫⑿碌拇性O(shè)備連接入總線節(jié)點(diǎn)提供的端口從而擴(kuò)展串行總線。
d.熱插拔。不需要系統(tǒng)斷電就可以動(dòng)態(tài)地加入或刪除設(shè)備。
e.即插即用。每次加入或刪除設(shè)備時(shí),總線節(jié)點(diǎn)會(huì)自動(dòng)配置,并且配置時(shí)不需要主機(jī)系統(tǒng)的干預(yù)。
f.巨大的映射至內(nèi)存的地址空間。每個(gè)節(jié)點(diǎn)擁有256T字節(jié)的地址空間,每條總線上有16P字節(jié)地址空間。
1.2 1394原理
1394原理主要定義了以下幾點(diǎn):
a.1394總線的拓?fù)浣Y(jié)構(gòu)。1394串行總線的拓?fù)浣Y(jié)構(gòu)可以分為兩種環(huán)境:底板環(huán)境和電纜環(huán)境。不同環(huán)境間總線的連接需要總線橋。電纜環(huán)境下的物理拓?fù)浣Y(jié)構(gòu)是無(wú)環(huán)網(wǎng)絡(luò)結(jié)構(gòu),由電纜連接各節(jié)點(diǎn)間的端口,呈分支擴(kuò)展,形成樹(shù)狀或菊花狀的網(wǎng)絡(luò)拓?fù)。底板環(huán)境中物理拓?fù)涫嵌帱c(diǎn)接入(multidrop)的總線,總線上分布著多個(gè)連接器,允許節(jié)點(diǎn)直接插入,通過(guò)仲裁使各節(jié)點(diǎn)享用總線。
b.1394的物理接口。1394設(shè)備通過(guò)標(biāo)準(zhǔn)的六芯線纜來(lái)傳輸信號(hào),如圖1所示。其TPA/TPA*和TPB/TPB*為一對(duì)差分模式的信號(hào)線。VP、VG提供8~40V的電源,可以通過(guò)它們給其它的節(jié)點(diǎn)供電。
c.1394總線協(xié)議。在1394傳輸中,支持等時(shí)傳輸和異步傳輸事務(wù),并將每次傳輸分解為一系列的小事和,有效地利用總線帶寬。異步事務(wù)需要數(shù)據(jù)確認(rèn),總線協(xié)議要復(fù)雜些,它包括三種基本事務(wù)類型:讀取、寫入和鎖定。每個(gè)事務(wù)由請(qǐng)求子事務(wù)和響應(yīng)子事務(wù)組成。由于等時(shí)應(yīng)用程序的性質(zhì),相關(guān)的總線事務(wù)十分簡(jiǎn)單,等時(shí)事務(wù)每隔125μs向目標(biāo)節(jié)點(diǎn)發(fā)送數(shù)據(jù)并且需要任何回?zé)帷?394總線一共定義了12種事務(wù)類型的包格式,采用循環(huán)冗余校驗(yàn)(CRC)進(jìn)行數(shù)據(jù)差錯(cuò)控制,有相應(yīng)硬件和軟件處理各類傳輸事務(wù)。
d.1394電源管理。電源管理涉及到單獨(dú)節(jié)點(diǎn)或節(jié)點(diǎn)中元件的電源狀態(tài)控制。1394定義了4種電源狀態(tài)以及相應(yīng)的CSR寄存器和ROM配置項(xiàng),支持掛起/恢復(fù)機(jī)制,使節(jié)點(diǎn)在軟件控制下處于低功耗。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 圖像傳輸系統(tǒng)總體設(shè)計(jì)
系統(tǒng)采用冗余備份的雙路1394高速總線將數(shù)據(jù)傳送給大容量存儲(chǔ)器、數(shù)據(jù)加密器和信道編碼器,如圖2所示。
由于本地系統(tǒng)中普通采用PCI接口,為了最大限度地利用現(xiàn)有硬件資源,縮短開(kāi)發(fā)周期,研制了1394-PCI的轉(zhuǎn)接卡,來(lái)實(shí)現(xiàn)基于1394高速圖像傳輸系統(tǒng)。該轉(zhuǎn)接卡主要通過(guò)物理層和鏈路層控制芯片組實(shí)現(xiàn),其中鏈路層控制芯片采用TI公司的TSB12LV23,支持開(kāi)放主機(jī)控制器接口(OHCI)的PCI接口芯片。
2.2 TSB12LV23/TSBAB03芯片組
TSB12LV23提供主機(jī)接口和物理層接口,實(shí)現(xiàn)CRC校驗(yàn)以及同步服務(wù)。在芯片中集成了中斷寄存器、傳送/接收FIFO和DMA通道。TSBAB03芯片完成1394總線協(xié)議中的物理層功能,實(shí)現(xiàn)仲載機(jī)制,對(duì)收發(fā)信號(hào)進(jìn)行編碼/解碼。
鏈路層和物理層芯片的連接電路圖如圖3所示。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件包括1394設(shè)備驅(qū)動(dòng)程序、動(dòng)態(tài)鏈路庫(kù)和應(yīng)用程序。
3.1 1394設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)
Windosw驅(qū)動(dòng)模型(WDM)定義了驅(qū)動(dòng)程序分層,以適應(yīng)即插即用系統(tǒng)。1394系統(tǒng)驅(qū)動(dòng)程序采用分層結(jié)構(gòu)模型,其設(shè)備棧如圖4所法。設(shè)備驅(qū)動(dòng)位設(shè)備棧頂,通過(guò)發(fā)IRP給IEEE 1394總線驅(qū)動(dòng)來(lái)與設(shè)備通信。IEEE 1394總線驅(qū)動(dòng)為1394總線提供了獨(dú)立于硬件的接口,并將一部分IRP傳向端口驅(qū)動(dòng)程序。
在分層模型中,1394總線驅(qū)動(dòng)負(fù)責(zé)管理1394設(shè)備驅(qū)動(dòng)程序與1394控制器之間的通信;加載及卸載設(shè)備驅(qū)動(dòng)程序。設(shè)備驅(qū)動(dòng)程序在功能層工作,它們不需要任何低層硬件資源,只需對(duì)總線驅(qū)動(dòng)程序發(fā)請(qǐng)求,由總線驅(qū)動(dòng)程序訪問(wèn)硬件來(lái)完成這些請(qǐng)求。
用DDK設(shè)計(jì)的1394設(shè)備驅(qū)動(dòng)由4個(gè)模塊組成:初始化模塊、即插即用模塊、電源管理模塊以及I/O模塊。
初始化模塊提供設(shè)備驅(qū)動(dòng)的入口點(diǎn),從而將不同的IRP請(qǐng)求發(fā)向相應(yīng)的執(zhí)行模塊。
即插即用模塊用于實(shí)現(xiàn)1394設(shè)備的熱插拔和動(dòng)態(tài)配置。當(dāng)總線驅(qū)動(dòng)程序在加電或者添加/刪除時(shí)檢測(cè)到新設(shè)備,從設(shè)備中取出一個(gè)或多個(gè)標(biāo)識(shí)符,用于檢查所有可用的安裝文件,發(fā)現(xiàn)合適的設(shè)備驅(qū)動(dòng)程序。驅(qū)動(dòng)程序被裝入,調(diào)用AddDevice入口點(diǎn),告訴它發(fā)現(xiàn)一個(gè)新設(shè)備,并創(chuàng)建功能設(shè)備對(duì)象(FDO)?偩驅(qū)動(dòng)程序或者安裝文件詳細(xì)描述設(shè)備所需的硬件資源,使用仲裁器為每個(gè)設(shè)備分配資源。
電源管理模塊負(fù)責(zé)設(shè)備的掛起和恢復(fù)。
I/O模塊完成I/O請(qǐng)求的大部分工作。該模塊定義了所需的I/O控制代碼,從而為應(yīng)用程序提供了調(diào)用系統(tǒng)驅(qū)程序的接口。
3.2 動(dòng)態(tài)鏈接庫(kù)的設(shè)計(jì)
由于Windows具有與設(shè)備無(wú)關(guān)的特性,不提倡與機(jī)器底層的東西打交道。如果直接用Windows的API函數(shù)或I/O讀寫指令進(jìn)行訪問(wèn)和操作,程序運(yùn)行時(shí)往往就會(huì)產(chǎn)生保護(hù)模式錯(cuò)誤甚至死機(jī),更嚴(yán)重的情況會(huì)導(dǎo)致系統(tǒng)崩潰。用DLL技術(shù)可以方便地解決上述問(wèn)題。而且DLL沒(méi)有自己的堆棧,與調(diào)用它的應(yīng)用程序采用有相同的堆棧式,減少了編程設(shè)計(jì)上的不便;一個(gè)DLL在內(nèi)存中只有一個(gè)實(shí)例,使之能高效經(jīng)濟(jì)地使用內(nèi)存;DLL的代碼封裝懷使得程序簡(jiǎn)潔明晰。
在1394 API動(dòng)態(tài)鏈接庫(kù)中封裝了所有的1394請(qǐng)求命令,如異步讀/寫、等時(shí)讀/寫等,從而可以很方便地在應(yīng)用級(jí)實(shí)現(xiàn)1394傳輸。通過(guò)調(diào)用DeviceIoControl向設(shè)備發(fā)請(qǐng)求,由I/O管理器構(gòu)造一個(gè)1394請(qǐng)求塊傳給總線驅(qū)動(dòng)程序;由總線驅(qū)動(dòng)程序完成該請(qǐng)求或者請(qǐng)求進(jìn)一步傳給端口驅(qū)動(dòng)程序,然后返回執(zhí)行狀態(tài)。
3.3 應(yīng)用程序設(shè)計(jì)
在高速圖像傳輸系統(tǒng)中,應(yīng)用程序是控制數(shù)據(jù)流的中心。采用VC++ 6.0和2000DDK實(shí)現(xiàn),主要功能有:獲取視頻數(shù)據(jù)源、檢測(cè)1394設(shè)備、總線管理、分配1394地址空間、設(shè)備等時(shí)資源和通道、完成1394傳輸。一次等時(shí)傳輸流程如圖5所示。
4 應(yīng)用前景
如前所述,由于1394的高速、靈活和可擴(kuò)展性,使其在很多方面都大有用武之地,其中包括大容量存儲(chǔ)器、視頻會(huì)議、家庭網(wǎng)絡(luò)、高速打印機(jī)、娛樂(lè)設(shè)備等。而且由于數(shù)字廣播、因特網(wǎng)、家庭數(shù)字網(wǎng)絡(luò)和高帶寬的視頻/音頻傳輸需求,使得IEEE 1394迅速發(fā)展。
【1394技術(shù)及其在圖像傳輸系統(tǒng)中的應(yīng)用】相關(guān)文章:
傳輸系統(tǒng)中的時(shí)鐘同步技術(shù)08-06
LVDS技術(shù)及其在多信道高速數(shù)據(jù)傳輸中的應(yīng)用08-06
VHDL在高速圖像采集系統(tǒng)中的應(yīng)用設(shè)計(jì)08-06
基于FPGA的快速并行FFT及其在空間太陽(yáng)望遠(yuǎn)鏡圖像鎖定系統(tǒng)中的應(yīng)用08-06
閃速存儲(chǔ)器在圖像采集系統(tǒng)中的應(yīng)用08-06
高溫液體流量檢測(cè)系統(tǒng)及其在鋅精餾中的應(yīng)用08-06
數(shù)控加工仿真系統(tǒng)原理及其在教學(xué)中的應(yīng)用08-13