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