新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 高速數(shù)字記錄系統(tǒng)中光纖下載卡的邏輯設(shè)計(jì)

高速數(shù)字記錄系統(tǒng)中光纖下載卡的邏輯設(shè)計(jì)

作者: 時(shí)間:2010-02-01 來(lái)源:網(wǎng)絡(luò) 收藏
ATM模塊和ping64模塊之間接口為標(biāo)準(zhǔn)FIFO接口,設(shè)置此FIFO的目的有兩個(gè):一是時(shí)鐘域轉(zhuǎn)換,外部輸入的主時(shí)鐘為125MHz,而RocketIO采用32位模式,在2.5Gb/s的速率下,邏輯的主工作時(shí)鐘為62.5MHz。而ping64模塊采用PCI總線(xiàn)提供的PCI66MHz時(shí)鐘。兩者時(shí)鐘不在同一個(gè)時(shí)鐘域,所以用異步FIFO將時(shí)鐘域隔離。二是數(shù)據(jù)的緩存。根據(jù)FIFO的almost full信號(hào)產(chǎn)生反壓信號(hào),送交RocketIO,使對(duì)端收到反壓信號(hào)后,停止發(fā)送數(shù)據(jù)。

本文引用地址:http://butianyuan.cn/article/188359.htm


所用Xilinx的RocketIO核其實(shí)為aurora 核,這是一個(gè)雙向串行數(shù)據(jù)通信鏈路控制器,能將反壓信號(hào)隨數(shù)據(jù)一起發(fā)往對(duì)端。其接口相對(duì)簡(jiǎn)單,有兩種模式,一種是幀模式,另一種是流模式,可以根據(jù)應(yīng)用靈活選擇。在本項(xiàng)目中采用的是幀模式。

主DMA處理的軟硬件流程
在DMA處理中,采用內(nèi)存乒乓操作來(lái)提高系統(tǒng)的吞吐量。軟件中的驅(qū)動(dòng)采用Windriver開(kāi)發(fā),其工作主要分三部分。


1 初始化,包括申請(qǐng)內(nèi)存,配置DMA列表,配置DMA相關(guān)寄存器,啟動(dòng)邏輯開(kāi)始工作。


2 中斷處理函數(shù)。在此函數(shù)中,屏蔽中斷,并啟動(dòng)DPC處理。


3 DPC(延遲過(guò)程調(diào)用),根據(jù)邏輯提供的狀態(tài)標(biāo)識(shí),將相應(yīng)的內(nèi)存塊的數(shù)據(jù)搬移至硬盤(pán)中,然后取消中斷屏蔽,復(fù)位狀態(tài)標(biāo)識(shí),使系統(tǒng)可以接收下一個(gè)中斷。


數(shù)據(jù)的搬移不在中斷處理函數(shù)中完成,是由于中斷處理函數(shù)具有較高的優(yōu)先級(jí),如果將耗時(shí)的數(shù)據(jù)搬移放在這里進(jìn)行,會(huì)明顯降低系統(tǒng)的響應(yīng)時(shí)間。而DPC的優(yōu)先級(jí)在所有的外部中斷之下,不會(huì)因此而降低對(duì)其他外部中斷的響應(yīng)速度。


主DMA邏輯的主要工作是讀取驅(qū)動(dòng)配置的DMA列表,根據(jù)列表中的內(nèi)存地址和長(zhǎng)度,對(duì)內(nèi)存進(jìn)行主DMA寫(xiě)操作。操作完成后,通過(guò)置位狀態(tài)標(biāo)識(shí),通知驅(qū)動(dòng)來(lái)讀取數(shù)據(jù)。狀態(tài)機(jī)轉(zhuǎn)移如圖4所示。

圖4 DMA主狀態(tài)機(jī)轉(zhuǎn)移圖


● IDLE狀態(tài):在此狀態(tài)下,等待軟件的使能信號(hào)。使能信號(hào)有效則進(jìn)入JUDGE狀態(tài),否則等待。


● JUDGE狀態(tài):在此狀態(tài)下,判斷乒乓標(biāo)志。根據(jù)乒乓標(biāo)志決定本次處理應(yīng)該選擇哪一個(gè)內(nèi)存塊。


● RD_TBL狀態(tài): 發(fā)出讀DMA列表的地址信息。然后進(jìn)行GET_TBL狀態(tài)接收列表數(shù)據(jù)。


● GET_TBL狀態(tài):在此狀態(tài)下,讀取DMA列表數(shù)據(jù),并將列表中的內(nèi)存地址和長(zhǎng)度信息寫(xiě)入相應(yīng)的寄存器中。然后進(jìn)入REQ狀態(tài)。


● REQ狀態(tài):在此狀態(tài)下,對(duì)異步FIFO的空信號(hào)進(jìn)行判斷。如果非空,則進(jìn)入PROCESS狀態(tài),否則在REQ狀態(tài)等待。


● PROCESS狀態(tài):在此狀態(tài)下,進(jìn)行數(shù)據(jù)傳輸。由于PCI主DMA對(duì)burst長(zhǎng)度有限制,當(dāng)傳輸完預(yù)定長(zhǎng)度的數(shù)據(jù)后,首先對(duì)本次長(zhǎng)度進(jìn)行判斷。如果未完則進(jìn)入REQ狀態(tài)等待,否則判斷本列表是否最后一個(gè)列表。如果是,則進(jìn)行IDLE狀態(tài)。否則進(jìn)入RD_TBL狀態(tài)讀取下一條DMA列表表項(xiàng)的數(shù)據(jù),繼續(xù)處理。


上一頁(yè) 1 2 3 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉