設(shè)計(jì)中直接調(diào)用Altera公司提供的DDR2 SDRAM控制器,并選用一塊它可以驅(qū)動(dòng)的芯片來(lái)提高工作效率。芯片可使用的緩存空間是要重點(diǎn)關(guān)注的。每個(gè)通道都要分配固定的緩存區(qū)域,所以要將有限的內(nèi)存空間作合理的劃分。如果是圖像數(shù)據(jù),單個(gè)通道至少要有緩存兩幀以上的空間。DDR2讀寫(xiě)控制模塊直接調(diào)用DDR2 SDRAM控制器IP核,但由于該IP核提供給用戶端的接口使用不方便,需要按照其文檔上介紹的時(shí)序來(lái)進(jìn)行突發(fā)式讀寫(xiě)。
本模塊的功能主要是協(xié)調(diào)各通道采集數(shù)據(jù)的寫(xiě)入和讀出。如圖3所示,寫(xiě)操作時(shí),各通道的數(shù)據(jù)首先用FPGA資源進(jìn)行緩存,然后寫(xiě)入控制狀態(tài)機(jī)通過(guò)輪詢(xún)的方式依次檢查各個(gè)通道已經(jīng)緩存的數(shù)據(jù)量,如果足夠一次突發(fā)寫(xiě),則將其寫(xiě)入SDRAM芯片的相應(yīng)通道塊中,然后再檢查下一通道;讀操作時(shí),讀出控制狀態(tài)機(jī)也依次檢查各個(gè)通道寫(xiě)入SDRAM芯片的數(shù)據(jù)量,如果足夠一次突發(fā)讀,則將其讀出,通過(guò)網(wǎng)絡(luò)發(fā)送出去。
基于以上控制方式,設(shè)計(jì)對(duì)各通道的數(shù)據(jù)格式是不作限制,如圖1中所示,可以是PAL、Camera link、VGA等各種格式的圖像或組合,只是在采集之前向上位機(jī)報(bào)告各個(gè)通道的數(shù)據(jù)信息。但需要說(shuō)明的是,這些數(shù)據(jù)的帶寬總和理論上不應(yīng)超過(guò)千兆以太網(wǎng)的最大傳輸速率,這是采用輪詢(xún)方式得以成功的前提。其實(shí),如今普通PC機(jī)的處理能力遠(yuǎn)遠(yuǎn)不能達(dá)到這個(gè)最大限制,當(dāng)速度到達(dá)100 Mbit·s-1時(shí),上位機(jī)丟包就已經(jīng)很?chē)?yán)重。如果是將采集的數(shù)據(jù)在上位機(jī)上顯示,最多可能只有70~80 Mbit·s-1;如果還要將數(shù)據(jù)寫(xiě)入硬盤(pán),那數(shù)據(jù)率則會(huì)更低,除了配備一塊上好的硬盤(pán)之外,還需要在上位機(jī)軟件的優(yōu)化上多作努力。