基于FPGA的IEEE-1394b雙向數據傳輸系統設計
3 軟件工作流程
在NIOSII IDE集成環境下,根據1394 OHCI協議,使NIOSII處理器實現對總線的初始化,以及管理,并通過DMA方式實現等時和異步數據傳輸。其中等時數據傳輸僅考慮將外部視頻數據打包發送到主機,而異步數據傳輸分為主機發起的異步傳輸和1394設備發起的異步傳輸。
3.1 系統的自舉
主要為系統初始化、檢測電纜以及根節點的確定。系統初始化主要是配置鏈路層芯片寄存器,使其工作在需要的狀態下。分為對PCI寄存器的初始化和對OHCI寄存器的初始化。對PCI寄存器的初始化包括對TSB82AA2設備ID和PCI廠商ID的驗證,OHCI基地址寄存器的設置以及對指令狀態寄存器的配置。而對OHCI寄存器的初始化則包括對各個中斷寄存器和DMA上下文的設置,以及控制寄存器的配置。檢測電纜是否插入是通過讀取物理層芯片某寄存器的相應位來判斷的。電纜插入后,通過檢查和配置Node ID寄存器,強制設置本節點為子節點,主機為根節點,直到成功為止。
3.2 數據的傳輸
在1394 OHCI中,不管是等時傳輸,還是異步傳輸,都是通過DMA方式實現的,而且每個DMA都有一個FIFO,用于暫時存放數據。其中各FIFO的存儲容量為:異步發送(AT)FIFO為5 kB,異步接收(AR)F7FO為2 kB,等時發送(IT)fIFO為2 kB,等時接收(IR)FIFO為2 kB。無論是物理層接收到的還是要發送出去的數據包,都被暫時存放在相應的FIFO中,由1394套片的內部邏輯控制將其傳送到1394總線上。
?。?)主機發起的異步傳輸。
主機發起的異步傳輸即由主機發出異步傳輸請求,1394設備進行響應,因此在這一部分,主要是異步請求包的接收以及異步響應包的發送。其工作流程如圖2所示。1394設備接收到主機發來的異步請求包后,就會產生異步接收請求中斷,這可由鏈路層芯片中斷寄存器的RQPkt位表征。當一個數據包傳送完畢后,數據包的最后一個指令描述符的xferStatus字段將被重置,這時數據包已被成功傳送到AT響應FIFO中。
圖2 主機發起的異步傳輸工作流程
評論