新聞中心

EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于SDR SDRAM的視頻數(shù)據(jù)邏輯分析存儲(chǔ)器的設(shè)計(jì)與實(shí)現(xiàn)

基于SDR SDRAM的視頻數(shù)據(jù)邏輯分析存儲(chǔ)器的設(shè)計(jì)與實(shí)現(xiàn)

作者: 時(shí)間:2016-10-18 來源:網(wǎng)絡(luò) 收藏

摘要:針對(duì)傳統(tǒng)硬件測(cè)試軟件的弊端,文章提出一種便攜式視頻數(shù)據(jù)邏輯分析存儲(chǔ)器的設(shè)計(jì)方法,這種分析存儲(chǔ)器能夠針對(duì)網(wǎng)絡(luò)多媒體數(shù)據(jù)進(jìn)行采集、分析和存儲(chǔ)等操作。在不影響網(wǎng)絡(luò)正常傳輸?shù)那疤嵯?,針?duì)進(jìn)行采集、存儲(chǔ)和分析。由于多媒體數(shù)據(jù)網(wǎng)絡(luò)傳輸具有數(shù)據(jù)量大、網(wǎng)絡(luò)帶寬占用量大等特點(diǎn),因此設(shè)計(jì)中根據(jù)系統(tǒng)結(jié)構(gòu)需要,設(shè)計(jì)SDR SDRAM存儲(chǔ)器控制器,采用分層狀態(tài)機(jī)的設(shè)計(jì)模式,可以對(duì)結(jié)構(gòu)較大的網(wǎng)絡(luò)數(shù)據(jù)包或是大量高速傳輸中的數(shù)據(jù)進(jìn)行突發(fā)存儲(chǔ)操作。測(cè)試結(jié)果表明系統(tǒng)工作穩(wěn)定,數(shù)據(jù)處理速度快,精度可達(dá)納秒級(jí),滿足系統(tǒng)設(shè)計(jì)要求。

本文引用地址:http://m.butianyuan.cn/article/201610/308492.htm

0 引言

在傳統(tǒng)硬件調(diào)試系統(tǒng)中,通常采用SIGNALTAPII軟件進(jìn)行數(shù)據(jù)抓取和采集,但是這種調(diào)試工具具有一定的弊端,對(duì)高速傳輸?shù)臄?shù)據(jù)中具有某種特征的整段數(shù)據(jù)需要反復(fù)觸發(fā)抓取,同時(shí)很難對(duì)采集的數(shù)據(jù)進(jìn)行實(shí)時(shí)觀測(cè)。音視頻數(shù)據(jù)是一種高速傳輸?shù)臄?shù)據(jù),具有數(shù)據(jù)量大、網(wǎng)絡(luò)帶寬占用量大等特點(diǎn)。要對(duì)這種數(shù)據(jù)進(jìn)行系統(tǒng)調(diào)試,需要系統(tǒng)能夠?qū)?shù)據(jù)進(jìn)行實(shí)時(shí)處理、采集和觀測(cè),采用SIGNALTAPII很難實(shí)現(xiàn)這一功能。同時(shí),在網(wǎng)絡(luò)音視頻數(shù)據(jù)傳輸系統(tǒng)中,接收端除了接收音視頻數(shù)據(jù)外,還會(huì)接收到網(wǎng)絡(luò)中傳輸?shù)囊恍┛刂菩畔⒌葦?shù)據(jù),這些數(shù)據(jù)對(duì)音視頻數(shù)據(jù)的分析無用,應(yīng)首先進(jìn)行識(shí)別和過濾。

針對(duì)音視頻數(shù)據(jù)傳輸采集分析的要求,本文設(shè)計(jì)了一種具有新型結(jié)構(gòu)的音視頻數(shù)據(jù)邏輯分析存儲(chǔ)器,這種系統(tǒng)能夠針對(duì)具有TS數(shù)據(jù)流結(jié)構(gòu)的網(wǎng)絡(luò)多媒體數(shù)據(jù)進(jìn)行實(shí)嫉氖據(jù)結(jié)構(gòu)、數(shù)據(jù)速率的監(jiān)控,能夠通過程序?qū)W(wǎng)絡(luò)數(shù)據(jù)包的幀頭、協(xié)議號(hào)等信息進(jìn)行分析,監(jiān)控網(wǎng)絡(luò)中音視頻數(shù)據(jù)流量,并針對(duì)這種結(jié)構(gòu)的數(shù)據(jù)包進(jìn)行存儲(chǔ)采集,導(dǎo)入SD卡,或在PC平臺(tái)上進(jìn)行實(shí)時(shí)監(jiān)控、播放或是仿真處理。

1 視頻數(shù)據(jù)邏輯分析存儲(chǔ)器的結(jié)構(gòu)和工作原理

音視頻數(shù)據(jù)邏輯分析存儲(chǔ)器的結(jié)構(gòu)如圖1所示。硬件開發(fā)平臺(tái)接收到的網(wǎng)口測(cè)試數(shù)據(jù)由路由器發(fā)出,同時(shí)由某一臺(tái)PC機(jī)通過流媒體服務(wù)器向硬件開發(fā)平臺(tái)所連接的PC機(jī)發(fā)送音頻和視頻數(shù)據(jù)。流媒體服務(wù)器發(fā)送的音、視頻數(shù)據(jù)是封裝成UDP數(shù)據(jù)包的TS傳輸流。此時(shí)由MII接口與進(jìn)行通信的網(wǎng)絡(luò)數(shù)據(jù)協(xié)議類型非常豐富,例如TCP、UDP、DNS、NRP、HTTP等。不同網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包,都具有其特定的數(shù)據(jù)幀結(jié)構(gòu)。對(duì)封裝成UDP數(shù)據(jù)包的TS傳輸流的數(shù)據(jù)幀格式進(jìn)行分析,從而將其過濾出來,實(shí)現(xiàn)對(duì)音視頻數(shù)據(jù)的提取、監(jiān)控以及存儲(chǔ)功能。UDP/非UDP過濾模塊實(shí)現(xiàn)的分流和提取,網(wǎng)口數(shù)據(jù)速率監(jiān)控模塊可以對(duì)單位時(shí)間的數(shù)據(jù)量進(jìn)行實(shí)時(shí)監(jiān)控。

基于SDR SDRAM的視頻數(shù)據(jù)邏輯分析存儲(chǔ)器的設(shè)計(jì)與實(shí)現(xiàn)

音視頻數(shù)據(jù)經(jīng)FIFO緩存模塊、鎖存模塊后由SDRAM驅(qū)動(dòng)模塊將數(shù)據(jù)高速地寫入SDRAM存儲(chǔ)器中,SDRAM驅(qū)動(dòng)模塊、SDRAM接口模塊、SDRAM控制器完成數(shù)據(jù)的讀寫、緩存和封裝。經(jīng)過一段時(shí)間后,根據(jù)UDP幀長(zhǎng)度緩存模塊的輸出值將輸出數(shù)據(jù)打包成幀,轉(zhuǎn)存至SD card中,可保存、攜帶或?qū)D card中的數(shù)據(jù)導(dǎo)入PC平臺(tái),對(duì)采集到的數(shù)據(jù)進(jìn)行各種分析、仿真操作。

2 視頻數(shù)據(jù)邏輯分析存儲(chǔ)器可編程模塊的設(shè)計(jì)

2.1 可編程模塊的結(jié)構(gòu)和工作原理

可編程模塊包括:UDP/非UDP過濾模塊、雙網(wǎng)口異步傳輸模塊、網(wǎng)口速率監(jiān)控模塊、輸入/輸出FIFO緩存模塊、SDRAM驅(qū)動(dòng)模塊、SDRAM接口模塊、SDRAM控制器、數(shù)據(jù)幀封裝模塊等。在可編程模塊的設(shè)計(jì)中,SDRAM控制器、輸入/輸出FIFO模塊、SDRAM驅(qū)動(dòng)模塊、SDRAM接口模塊是整個(gè)系統(tǒng)的核心處理模塊,該部分采用分層狀態(tài)機(jī)的設(shè)計(jì)模式,實(shí)現(xiàn)主狀態(tài)機(jī)與具體操作控制狀態(tài)機(jī)的分離,能有效提高讀寫操作效率,模塊設(shè)計(jì)結(jié)構(gòu)清晰,提高了系統(tǒng)設(shè)計(jì)的可讀性,也使程序具有更高的通用性。

SDRAM控制器、輸入/輸出FIFO緩存模塊、SDRAM驅(qū)動(dòng)模塊、SDRAM接口模塊等核心模塊的設(shè)計(jì)原理如圖2所示。

基于SDR SDRAM的視頻數(shù)據(jù)邏輯分析存儲(chǔ)器的設(shè)計(jì)與實(shí)現(xiàn)

在系統(tǒng)上電后,SDRAM控制器模塊首先跳轉(zhuǎn)至初始化進(jìn)程,對(duì)SDRAM發(fā)出初始化命令,分別對(duì)SDRAM的各種參數(shù)進(jìn)行配置。初始化完畢后,SDRAM驅(qū)動(dòng)模塊開始進(jìn)行狀態(tài)跳轉(zhuǎn)判定,判定結(jié)果將使SDRAM控制器由開始的空閑狀態(tài)跳轉(zhuǎn)至其他工作狀態(tài)。在控制器第一次進(jìn)入寫狀態(tài)時(shí),SDRAM驅(qū)動(dòng)模塊對(duì)SDRAM接口模塊發(fā)送命令信號(hào),使SDRAM接口模塊的工作進(jìn)程跳轉(zhuǎn)至寫進(jìn)程。進(jìn)入寫進(jìn)程的SDRAM接口模塊向SDRAM控制器發(fā)送數(shù)據(jù)、地址和寫命令。SDRAM控制器根據(jù)接收到的命令將FIFO中緩存的數(shù)據(jù)以突發(fā)模式寫入SDRAM中。SDRAM完成寫操作后,SDRAM驅(qū)動(dòng)模塊將再一次進(jìn)行狀態(tài)跳轉(zhuǎn)判定,如此反復(fù)。在整個(gè)過程中,SDRAM驅(qū)動(dòng)模塊根據(jù)判定結(jié)果進(jìn)行狀態(tài)跳轉(zhuǎn),并發(fā)出不同的命令,SDRAM接口模塊根據(jù)接收到的命令,相應(yīng)地進(jìn)入不同的工作進(jìn)程。在不同的工作進(jìn)程中,SDRAM接口模塊對(duì)SDRAM控制器發(fā)送不同的操作命令,從而完成對(duì)SDRAM的初始化、讀、寫、刷新等各種操作。最后將需要分析、存儲(chǔ)的數(shù)據(jù)從輸出FIFO中導(dǎo)入SD卡。這一操作由開關(guān)模塊進(jìn)行控制。

其中,SDRAM控制器的程序編寫是本系統(tǒng)設(shè)計(jì)的另一個(gè)重要的部分,SDRAM控制器主要包括命令監(jiān)控、命令譯碼以及數(shù)據(jù)傳遞等幾部分,SDRAM控制器根據(jù)接收到的命令,將數(shù)據(jù)和地址分別送入相應(yīng)模塊進(jìn)行處理。

2.2 SDRAM控制器的實(shí)現(xiàn)

SDRAM控制器由4個(gè)可編程模塊組成,分別為命令監(jiān)控模塊、命令譯碼模塊、數(shù)據(jù)傳輸模塊和時(shí)鐘模塊等,支持1、2、4、8和全頁(yè)突發(fā)等突發(fā)模式。

首先需要對(duì)SDRAM進(jìn)行初始化,系統(tǒng)的時(shí)鐘和電源穩(wěn)定后,在發(fā)起讀、寫、預(yù)充電、刷新等命令前,需要100 μs的上電延時(shí)。從100 μs內(nèi)某點(diǎn)開始到100μs結(jié)束的過程中,需要發(fā)出至少一次NOP或是COMMAND INHIBIT命令。在系統(tǒng)上電結(jié)束后,發(fā)出PRECHARGE命令,對(duì)SDRAM中的所有bank進(jìn)行預(yù)充電,使其至于空閑狀態(tài)中。在完成SDRAM初始化過程中,還需要接口模塊對(duì)SDRAM控制器里面的配置存儲(chǔ)器進(jìn)行編碼,本設(shè)計(jì)中寫入配置寄存器中的值為0x33,表明SDRAM采用8bit突發(fā)讀寫模式。

SDRAM存儲(chǔ)器初始化完成后,SDRAM中的所有bank處于空閑狀態(tài)。根據(jù)系統(tǒng)需求,SDRAM驅(qū)動(dòng)模塊向SDRAM控制器發(fā)送讀、寫、刷新等命令。根據(jù)命令的優(yōu)先級(jí)進(jìn)行判斷,優(yōu)先處理哪一個(gè)命令,正在執(zhí)行的命令優(yōu)先級(jí)最高,其次為刷新命令,再次為其他命令,這種命令優(yōu)先級(jí)的機(jī)制能夠有效提高SDRAM的工作效率。

SDRAM進(jìn)行的主要操作為讀寫操作,本系統(tǒng)設(shè)計(jì)中SDRAM采用的是非全頁(yè)的8bit突發(fā)讀寫模式,數(shù)據(jù)寬度是16bit,由于接收的數(shù)據(jù)為網(wǎng)口數(shù)據(jù),僅使用其中的4bit寬度,這是由網(wǎng)口數(shù)據(jù)線寬度決定的。系統(tǒng)中,接收FIFO接收的數(shù)據(jù)深度由SDRAM接口模塊寫入,當(dāng)接收FIFO接收到規(guī)定數(shù)值的寫入數(shù)據(jù)后,SDRAM接口模塊向SDRAM控制器發(fā)出寫命令,命令監(jiān)控模塊接收命令和地址,并將接收到的命令進(jìn)行譯碼。命令譯碼模塊從命令監(jiān)控模塊獲得寫地址和譯碼后的命令,并將其變?yōu)檫m合SDRAM接收的命令。數(shù)據(jù)傳輸模塊負(fù)責(zé)數(shù)據(jù)傳輸路徑和寫入。

當(dāng)SDRAM存儲(chǔ)器中的數(shù)據(jù)大于等于8個(gè)時(shí),控制器跳轉(zhuǎn)至讀進(jìn)程,與寫進(jìn)程相似,命令監(jiān)控模塊獲得讀命令和地址,將命令進(jìn)行譯碼,傳輸給命令譯碼模塊,譯碼為適合SDRAM的命令,SDRAM將數(shù)據(jù)從接收地址處開始讀出,以8bit突發(fā)讀的形式將數(shù)據(jù)打入輸出FIFO中。

基于SDR SDRAM的視頻數(shù)據(jù)邏輯分析存儲(chǔ)器的設(shè)計(jì)與實(shí)現(xiàn)

SDRAM開始工作后在不同的工作狀態(tài)和過程中進(jìn)行跳轉(zhuǎn),這些工作狀態(tài)和過程主要包括空閑狀態(tài)、初始化過程、讀過程、寫過程、刷新過程等,狀態(tài)或過程的跳轉(zhuǎn)通過命令協(xié)調(diào)過程完成,SDRAM工作狀態(tài)轉(zhuǎn)移如圖3所示。需要注意的是,如果SDRAM設(shè)置為自動(dòng)刷新模式,由于刷新命令的優(yōu)先級(jí)在讀寫命令之前,SDRAM在狀態(tài)跳轉(zhuǎn)時(shí)會(huì)優(yōu)先跳轉(zhuǎn)至自動(dòng)刷新過程中。

3 硬件測(cè)試結(jié)果

本系統(tǒng)在altera公司的QuartusII平臺(tái)上搭建完成,硬件上采用了雙網(wǎng)口設(shè)計(jì),芯片型號(hào)為DP83848,SDR SDRAM芯片為Micron半導(dǎo)體公司生產(chǎn)的MT48LC16M16A2,芯片為CycloneIII系列的EP3C120F484C8,采用Modelsim SE 10.1a完成前期軟件仿真,在QurtusII自帶的嵌入式邏輯分析儀完成硬件仿真。測(cè)試結(jié)果仿真波形圖如圖4、5所示。

基于SDR SDRAM的視頻數(shù)據(jù)邏輯分析存儲(chǔ)器的設(shè)計(jì)與實(shí)現(xiàn)
基于SDR SDRAM的視頻數(shù)據(jù)邏輯分析存儲(chǔ)器的設(shè)計(jì)與實(shí)現(xiàn)

N1_RXD為網(wǎng)口接收數(shù)據(jù),經(jīng)過系統(tǒng)對(duì)數(shù)據(jù)包的判定,該數(shù)據(jù)包是具有幀結(jié)構(gòu)的音視頻數(shù)據(jù),UDP模塊輸出UDP數(shù)據(jù)與輸入數(shù)據(jù)完全一致,而非UDP模塊輸出為0,實(shí)現(xiàn)了音視頻數(shù)據(jù)的過濾和分流。

N1_RXD是整個(gè)系統(tǒng)最初網(wǎng)口輸入數(shù)據(jù),dataout為系統(tǒng)輸出數(shù)據(jù),dq是SDRAM雙向數(shù)據(jù)總線。由圖5可見,系統(tǒng)輸出數(shù)據(jù)與輸入數(shù)據(jù)一致,符合設(shè)計(jì)要求。其中輸出數(shù)據(jù)最后將導(dǎo)入SD卡,或直接在PC平臺(tái)上進(jìn)行各類仿真處理。

4 結(jié)論

系統(tǒng)硬件測(cè)試結(jié)果表明,SDRAM突發(fā)存儲(chǔ)的操作特點(diǎn)能夠滿足對(duì)高速傳輸?shù)拇罅恳粢曨l數(shù)據(jù)的采集和實(shí)時(shí)處理,能夠?qū)崿F(xiàn)系統(tǒng)對(duì)音視頻數(shù)據(jù)進(jìn)行識(shí)別過濾、采集、檢測(cè)以及存儲(chǔ)的需求,從而代替SIGNALTAPII完成對(duì)采集下來的數(shù)據(jù)進(jìn)行觀測(cè)和調(diào)試的功能,可靠性高,符合系統(tǒng)設(shè)計(jì)的要求。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉