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