基于FPGA的IEEE 1394b高速數(shù)據(jù)傳輸系統(tǒng)
摘要:介紹了IEEE 1394h串行總線的特點(diǎn),并以FPGA嵌入式處理器Nios II為控制核心,設(shè)計實現(xiàn)了一種1394b高速數(shù)據(jù)傳輸系統(tǒng)。闡述了該系統(tǒng)的硬件設(shè)計和軟件工作流程。實驗表明,該系統(tǒng)可靠性高、實時性好、具有廣泛的應(yīng)用價值。
關(guān)鍵詞:IEEE 1394b;串行總線;FPGA;Nios II
隨著信息技術(shù)的迅速發(fā)展,計算機(jī)的速度不斷提高,外部設(shè)備的速度也隨之提高。常用串行總線,如USB2.0總線最高速率為480 Mb·s-1,IEEE 1394a總線最高速率為400 Mb·s-1,但在有些情況下難以滿足高帶寬和實時性的要求,成為系統(tǒng)性能進(jìn)一步提升的瓶頸。IEEE 1394 b-2002正是在這種情況下應(yīng)運(yùn)而生,它最高支持800 Mb·s-1的總線傳輸速率,最多可支持63個節(jié)點(diǎn),最大傳輸距離100 m,支持即插即用、等時和異步傳輸,并且向下完全兼容IEEE 1394a的設(shè)備。1394b串行總線可以應(yīng)用在眾多的領(lǐng)域中,無論是在視頻傳輸還是計算機(jī)外設(shè)、網(wǎng)絡(luò)互連等方面都有著巨大的市場潛力。具有相同功能的1394b產(chǎn)品,比普通計算機(jī)配套設(shè)備便宜,具有更好的可擴(kuò)展性和競爭力。
1 系統(tǒng)的硬件設(shè)計及仿真
系統(tǒng)硬件設(shè)計框圖如圖1所示。根據(jù)用戶需求,該系統(tǒng)以FPGA為單板控制核心,外部慢設(shè)備的控制或狀態(tài)信號通過RS-232總線發(fā)送到FP-GA內(nèi)部的相應(yīng)接收模塊。這些慢設(shè)備發(fā)送的數(shù)據(jù)信息量不大,但要求準(zhǔn)確無誤的傳送到主機(jī)端顯示,所以這些數(shù)據(jù)在1394b總線上采用了異步傳輸?shù)姆绞健3O(shè)備外,系統(tǒng)單板還通過RS-422差分接收器接收兩路壓縮后的DVD視頻圖像數(shù)據(jù)。這些圖像數(shù)據(jù)通過等時傳輸?shù)姆绞讲婚g斷的發(fā)送到主機(jī)上,經(jīng)過解壓縮進(jìn)行實時播放。系統(tǒng)單板上還留有一些擴(kuò)展接口,用于功能擴(kuò)展。
綜合考慮系統(tǒng)的功能需求及實現(xiàn)的復(fù)雜度,F(xiàn)PGA采用了Altera公司Cyclone II系列的EP2C70F67216。這款FPGA具有68 416個邏輯單元,422個用戶I/O管腳,I/O標(biāo)準(zhǔn)支持3.3 V PCI,可以通過IP核實現(xiàn)主從模式的PCI接口。在系統(tǒng)中FPGA主要完成:(1)異步與等時數(shù)據(jù)的接收。(2)數(shù)據(jù)拼接與數(shù)據(jù)緩存。(3)外部SRAM的控制,實現(xiàn)大量數(shù)據(jù)的片外緩存。(4)與鏈路層控制器間的PCI接口時序控制。(5)與Nios II軟核之間的接口模塊。
鏈路層控制器TSB82AA2通過PCI總線與FPGA相連,PCI接口的時序較復(fù)雜,本設(shè)計采用了FPGA內(nèi)部的IP核PCI_Compiler來實現(xiàn)PCI主從傳輸模式。鏈路層控制器與FPGA的連接關(guān)系如圖2所示。在SOPC Builder開發(fā)環(huán)境中,只需要設(shè)置相應(yīng)的參數(shù),就可以實現(xiàn)PCI總線與FPGA內(nèi)部Av-alon總線之間的數(shù)據(jù)交換。需要注意的是,在生成硬件網(wǎng)表前需要加入IP核有關(guān)文件中提供的PCI約束信息,并按照約束文件的要求鎖定管腳。
[!--empirenews.page--]
當(dāng)FPGA為PCI主設(shè)備時,它通過PCI-Avalon橋發(fā)起PCI主傳輸,如圖3所示是PCI主模式寫交易的仿真時序。當(dāng)FPGA為PCI從設(shè)備時,鏈路層控制器是PCI命令的發(fā)起者,并由PCI-Avalon橋自動進(jìn)行分析,將PCI總線上的命令轉(zhuǎn)化為相應(yīng)的Avalon總線信息,圖4所示是PCI從模式配置讀寫仿真圖。
2 嵌入式軟核Nios ll的設(shè)計
Nios II是Ahera推出的32位RSIC嵌入式處理器,根據(jù)用戶的需求有Nios II/f(快速)、Nios II/s(標(biāo)準(zhǔn))以及Nios II/e(經(jīng)濟(jì))3種可配置的方案。Nios II還支持片內(nèi)調(diào)試和指令定制,具有較大的靈活性和可擴(kuò)展性,而且許多常用的標(biāo)準(zhǔn)外設(shè)接口已經(jīng)以IP核的形式集成在了SOPC Builder開發(fā)環(huán)境中,用戶如需要則可直接調(diào)用,縮短了開發(fā)周期和成本。根據(jù)應(yīng)用需要,本系統(tǒng)將Nios II配置成快速型,時鐘頻率為100 MHz。Nios II與各種外設(shè)通過Avalon總線連接,具體的連接關(guān)系如圖5所示。
[!--empirenews.page--]
本系統(tǒng)中Nios II主要完成3個功能:(1)實現(xiàn)1394b設(shè)備的自舉,協(xié)助主機(jī)完成設(shè)備識別以及設(shè)備的身份確認(rèn)。(2)實現(xiàn)異步數(shù)據(jù)收發(fā)功能,異步讀、異步寫,根據(jù)請求包的類型進(jìn)行分別處理。(3)滿足傳輸條件時,為等時傳輸申請等時信道和帶寬,成功后開始組織等時傳輸,傳輸結(jié)束后釋放信道和帶寬。圖6為Nios II工作流程圖。
下面介紹等時傳輸過程,根據(jù)系統(tǒng)設(shè)計,將外部DVD壓縮圖像數(shù)據(jù)作為等時數(shù)據(jù)來處理。具體過程如下:
(1)NioslI CPU對1394b的OHCI和鏈路層寄存器進(jìn)行初始化,判斷線纜是否插入,強(qiáng)制根節(jié)點(diǎn),直到設(shè)備完成自舉,節(jié)點(diǎn)的身份確認(rèn),如圖7所示。
(2)自舉過程結(jié)束后,Nios II CPU檢測等時傳輸?shù)臈l件是否滿足,如果滿足則向主機(jī)發(fā)出申請,申請等時信道和帶寬。
(3)申請成功后,Nios II CPU開始組織數(shù)據(jù)進(jìn)行傳輸。首先它向DMA控制器發(fā)送寄存器配置信息,從而將數(shù)據(jù)傳送任務(wù)交由DMA控制器完成。
(4)DMA控制器從FPGA的緩存單元中取出數(shù)據(jù),并添加包頭將數(shù)據(jù)拼接成合法的等時數(shù)據(jù)包格式,并發(fā)起PCI主模式傳輸。
(5)數(shù)據(jù)經(jīng)由PCI總線傳送到鏈路層芯片中,又通過物理層芯片傳送到1394b總線上,并由主機(jī)上連接的數(shù)據(jù)采集卡接收,最終由主機(jī)端的應(yīng)用程序解壓縮和播放數(shù)據(jù)。
3 結(jié)束語
文中介紹了一種基于FPGA的IEEE 1394b高速數(shù)據(jù)傳輸系統(tǒng),它能實現(xiàn)外部多路數(shù)據(jù)的實時傳送。由于支持1394b的設(shè)備與支持1394a的設(shè)備可以相互兼容,所以在此基礎(chǔ)上可以建立1394組網(wǎng)平臺,實現(xiàn)多個系統(tǒng)的互聯(lián)與傳輸。