基于NlOSII處理器的IEEE-1394 b雙向數(shù)據(jù)傳輸系統(tǒng)
摘要:基于FPGA內(nèi)嵌的NIOSII處理器,設(shè)計(jì)了一個(gè)1394b雙向數(shù)據(jù)傳輸系統(tǒng)。介紹了該系統(tǒng)的硬件結(jié)構(gòu),描述了其軟件工作流程,主要包括異步傳輸和等時(shí)傳輸?shù)木唧w實(shí)現(xiàn)過(guò)程。測(cè)試結(jié)果表明,該系統(tǒng)的傳輸速率較高、可靠性和實(shí)時(shí)性較好,并具有一定的應(yīng)用價(jià)值。
關(guān)鍵詞:1394b;NIOSII;等時(shí)傳輸;異步傳輸
隨著IEEE Std 1394-1995技術(shù)的高速發(fā)展,IEEE 1394已經(jīng)成為眾多電子設(shè)備基本的外部接口。然而,要進(jìn)一步擴(kuò)展它的適用領(lǐng)域,就必須克服其接口被限制工作在較短距離以及不適用于較高數(shù)據(jù)傳輸率的缺陷。IEEE Std 1394b-2002作為其修訂版本支持800 Mb·s-1傳輸速率,且中繼距離長(zhǎng)達(dá)100m。它將原來(lái)的DS(Data-Strobe)編碼方式改進(jìn)為8B/10B編碼方式,這對(duì)于1394性能的改進(jìn)起著決定性作用。同時(shí),1394b是向下兼容的,也就是說(shuō)同一個(gè)電路既可以選擇使用DS編碼也可以選擇使用8B/10B編碼。
現(xiàn)在符合1394b標(biāo)準(zhǔn)的鏈路層和物理層控制芯片都遵循1394 OHCI(開放式主機(jī)控制接口協(xié)議),它的主要功能是實(shí)現(xiàn)總線的鏈路層協(xié)議。本系統(tǒng)通過(guò)NIOSII處理器,根據(jù)1394 OHCI,對(duì)FPGA以及1394套片進(jìn)行控制,實(shí)現(xiàn)了雙向數(shù)據(jù)傳輸。其主要功能是將外部視頻數(shù)據(jù)打包,按照1394b協(xié)議,傳輸?shù)街鳈C(jī)端進(jìn)行實(shí)時(shí)顯示,并實(shí)現(xiàn)與主機(jī)的相互通信。
1 1394 OHCI的特點(diǎn)
支持事務(wù)層和總線管理層,而且?guī)в幸粋€(gè)PCI主機(jī)總線接口,以及高速率數(shù)據(jù)傳輸所需要的DMA引擎。支持兩種數(shù)據(jù)傳輸:異步傳輸和等時(shí)傳輸。
異步傳輸:1394 OHCI可以發(fā)送和接收所有1394所定義的數(shù)據(jù)包格式。無(wú)論是從主機(jī)存儲(chǔ)器中讀出發(fā)送數(shù)據(jù)包,還是將接收到的數(shù)據(jù)包寫入主機(jī)存儲(chǔ)器,都是通過(guò)DMA來(lái)實(shí)現(xiàn)的。在向主機(jī)總線存儲(chǔ)空間讀和寫時(shí),1394 OHCI也可以通過(guò)直接執(zhí)行1394讀和寫請(qǐng)求而作為主機(jī)總線和1394之間的總線橋。
等時(shí)傳輸:1394 OHCI可以執(zhí)行循環(huán)控制器的功能。也就是說(shuō)它包含了一個(gè)循環(huán)計(jì)時(shí)器和計(jì)數(shù)器,可以在8 kHz時(shí)鐘的每個(gè)上升沿后安排一個(gè)循環(huán)開始包的傳輸。1394 OHCI可以產(chǎn)生內(nèi)部時(shí)鐘。當(dāng)它不是循環(huán)控制器時(shí),1394 OHCI根據(jù)循環(huán)開始包,通過(guò)更正其循環(huán)計(jì)時(shí)器來(lái)保持它的內(nèi)部時(shí)鐘與主節(jié)點(diǎn)的周期同步。1394 OHCI為等時(shí)發(fā)送和等時(shí)接收各提供了一個(gè)DMA控制器。每個(gè)DMA控制器支持高達(dá)32個(gè)不同的DMA上下文(context)。等時(shí)發(fā)送DMA控制器可以在每個(gè)周期,從每個(gè)上下文發(fā)送數(shù)據(jù)。而每個(gè)上下文只能從唯一的等時(shí)信道發(fā)送數(shù)據(jù)。等時(shí)接收DMA控制器可以在每個(gè)周期,從每個(gè)上下文接收數(shù)據(jù)。但是每個(gè)上下文既可以從唯一的等時(shí)信道接收數(shù)據(jù),也可以從多個(gè)等時(shí)信道接收數(shù)據(jù)。
2 硬件結(jié)構(gòu)
以FPGA內(nèi)嵌的NIOSII處理器為開發(fā)平臺(tái),控制實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸。其硬件結(jié)構(gòu)框圖如圖1所示。主要由NIOSII系統(tǒng)模塊、SPI口的數(shù)據(jù)輸入輸出模塊、1394套片模塊、SRAM模塊、串口(UART)通信模塊、電源管理模塊、EPCS模塊和Flash模塊組成。其中,F(xiàn)PGA芯片為主控芯片,選擇Ahera公司Cyclone II系列的EP2C70F672C8N;Flash芯片用于存儲(chǔ)NIOSII嵌入式處理器的代碼和數(shù)據(jù),F(xiàn)PGA上電后從中讀取;SRAM芯片一個(gè)用于對(duì)外部大量視頻數(shù)據(jù)進(jìn)行緩存,另一個(gè)作為C代碼的運(yùn)行空間。串口主要用以產(chǎn)生異步數(shù)據(jù),外部視頻數(shù)據(jù)則主要通過(guò)SPI口進(jìn)行等時(shí)傳輸。
評(píng)論