基于SDR SDRAM的視頻數據邏輯分析存儲器的設計與實現
摘要:針對傳統(tǒng)硬件測試軟件的弊端,文章提出一種便攜式視頻數據邏輯分析存儲器的設計方法,這種分析存儲器能夠針對網絡多媒體數據進行采集、分析和存儲等操作。在不影響網絡正常傳輸的前提下,針對TS流進行采集、存儲和分析。由于多媒體數據網絡傳輸具有數據量大、網絡帶寬占用量大等特點,因此設計中根據系統(tǒng)結構需要,設計SDR SDRAM存儲器控制器,采用分層狀態(tài)機的設計模式,可以對結構較大的網絡數據包或是大量高速傳輸中的數據進行突發(fā)存儲操作。測試結果表明系統(tǒng)工作穩(wěn)定,數據處理速度快,精度可達納秒級,滿足系統(tǒng)設計要求。
本文引用地址:http://butianyuan.cn/article/201610/308492.htm0 引言
在傳統(tǒng)硬件調試系統(tǒng)中,通常采用SIGNALTAPII軟件進行數據抓取和采集,但是這種調試工具具有一定的弊端,對高速傳輸的數據中具有某種特征的整段數據需要反復觸發(fā)抓取,同時很難對采集的數據進行實時觀測。音視頻數據是一種高速傳輸的數據,具有數據量大、網絡帶寬占用量大等特點。要對這種數據進行系統(tǒng)調試,需要系統(tǒng)能夠對數據進行實時處理、采集和觀測,采用SIGNALTAPII很難實現這一功能。同時,在網絡音視頻數據傳輸系統(tǒng)中,接收端除了接收音視頻數據外,還會接收到網絡中傳輸的一些控制信息等數據,這些數據對音視頻數據的分析無用,應首先進行識別和過濾。
針對音視頻數據傳輸采集分析的要求,本文設計了一種具有新型結構的音視頻數據邏輯分析存儲器,這種系統(tǒng)能夠針對具有TS數據流結構的網絡多媒體數據進行實嫉氖據結構、數據速率的監(jiān)控,能夠通過程序對網絡數據包的幀頭、協議號等信息進行分析,監(jiān)控網絡中音視頻數據流量,并針對這種結構的數據包進行存儲采集,導入SD卡,或在PC平臺上進行實時監(jiān)控、播放或是仿真處理。
1 視頻數據邏輯分析存儲器的結構和工作原理
音視頻數據邏輯分析存儲器的結構如圖1所示。硬件開發(fā)平臺接收到的網口測試數據由路由器發(fā)出,同時由某一臺PC機通過流媒體服務器向硬件開發(fā)平臺所連接的PC機發(fā)送音頻和視頻數據。流媒體服務器發(fā)送的音、視頻數據是封裝成UDP數據包的TS傳輸流。此時由MII接口與FPGA進行通信的網絡數據協議類型非常豐富,例如TCP、UDP、DNS、NRP、HTTP等。不同網絡協議數據包,都具有其特定的數據幀結構。對封裝成UDP數據包的TS傳輸流的數據幀格式進行分析,從而將其過濾出來,實現對音視頻數據的提取、監(jiān)控以及存儲功能。UDP/非UDP過濾模塊實現TS流的分流和提取,網口數據速率監(jiān)控模塊可以對單位時間的數據量進行實時監(jiān)控。
音視頻數據經FIFO緩存模塊、鎖存模塊后由SDRAM驅動模塊將數據高速地寫入SDRAM存儲器中,SDRAM驅動模塊、SDRAM接口模塊、SDRAM控制器完成數據的讀寫、緩存和封裝。經過一段時間后,根據UDP幀長度緩存模塊的輸出值將輸出數據打包成幀,轉存至SD card中,可保存、攜帶或將SD card中的數據導入PC平臺,對采集到的數據進行各種分析、仿真操作。
2 視頻數據邏輯分析存儲器可編程模塊的設計
2.1 可編程模塊的結構和工作原理
可編程模塊包括:UDP/非UDP過濾模塊、雙網口異步傳輸模塊、網口速率監(jiān)控模塊、輸入/輸出FIFO緩存模塊、SDRAM驅動模塊、SDRAM接口模塊、SDRAM控制器、數據幀封裝模塊等。在可編程模塊的設計中,SDRAM控制器、輸入/輸出FIFO模塊、SDRAM驅動模塊、SDRAM接口模塊是整個系統(tǒng)的核心處理模塊,該部分采用分層狀態(tài)機的設計模式,實現主狀態(tài)機與具體操作控制狀態(tài)機的分離,能有效提高讀寫操作效率,模塊設計結構清晰,提高了系統(tǒng)設計的可讀性,也使程序具有更高的通用性。
SDRAM控制器、輸入/輸出FIFO緩存模塊、SDRAM驅動模塊、SDRAM接口模塊等核心模塊的設計原理如圖2所示。
在系統(tǒng)上電后,SDRAM控制器模塊首先跳轉至初始化進程,對SDRAM發(fā)出初始化命令,分別對SDRAM的各種參數進行配置。初始化完畢后,SDRAM驅動模塊開始進行狀態(tài)跳轉判定,判定結果將使SDRAM控制器由開始的空閑狀態(tài)跳轉至其他工作狀態(tài)。在控制器第一次進入寫狀態(tài)時,SDRAM驅動模塊對SDRAM接口模塊發(fā)送命令信號,使SDRAM接口模塊的工作進程跳轉至寫進程。進入寫進程的SDRAM接口模塊向SDRAM控制器發(fā)送數據、地址和寫命令。SDRAM控制器根據接收到的命令將FIFO中緩存的數據以突發(fā)模式寫入SDRAM中。SDRAM完成寫操作后,SDRAM驅動模塊將再一次進行狀態(tài)跳轉判定,如此反復。在整個過程中,SDRAM驅動模塊根據判定結果進行狀態(tài)跳轉,并發(fā)出不同的命令,SDRAM接口模塊根據接收到的命令,相應地進入不同的工作進程。在不同的工作進程中,SDRAM接口模塊對SDRAM控制器發(fā)送不同的操作命令,從而完成對SDRAM的初始化、讀、寫、刷新等各種操作。最后將需要分析、存儲的數據從輸出FIFO中導入SD卡。這一操作由開關模塊進行控制。
其中,SDRAM控制器的程序編寫是本系統(tǒng)設計的另一個重要的部分,SDRAM控制器主要包括命令監(jiān)控、命令譯碼以及數據傳遞等幾部分,SDRAM控制器根據接收到的命令,將數據和地址分別送入相應模塊進行處理。
2.2 SDRAM控制器的實現
SDRAM控制器由4個可編程模塊組成,分別為命令監(jiān)控模塊、命令譯碼模塊、數據傳輸模塊和時鐘模塊等,支持1、2、4、8和全頁突發(fā)等突發(fā)模式。
首先需要對SDRAM進行初始化,系統(tǒng)的時鐘和電源穩(wěn)定后,在發(fā)起讀、寫、預充電、刷新等命令前,需要100 μs的上電延時。從100 μs內某點開始到100μs結束的過程中,需要發(fā)出至少一次NOP或是COMMAND INHIBIT命令。在系統(tǒng)上電結束后,發(fā)出PRECHARGE命令,對SDRAM中的所有bank進行預充電,使其至于空閑狀態(tài)中。在完成SDRAM初始化過程中,還需要接口模塊對SDRAM控制器里面的配置存儲器進行編碼,本設計中寫入配置寄存器中的值為0x33,表明SDRAM采用8bit突發(fā)讀寫模式。
SDRAM存儲器初始化完成后,SDRAM中的所有bank處于空閑狀態(tài)。根據系統(tǒng)需求,SDRAM驅動模塊向SDRAM控制器發(fā)送讀、寫、刷新等命令。根據命令的優(yōu)先級進行判斷,優(yōu)先處理哪一個命令,正在執(zhí)行的命令優(yōu)先級最高,其次為刷新命令,再次為其他命令,這種命令優(yōu)先級的機制能夠有效提高SDRAM的工作效率。
SDRAM進行的主要操作為讀寫操作,本系統(tǒng)設計中SDRAM采用的是非全頁的8bit突發(fā)讀寫模式,數據寬度是16bit,由于接收的數據為網口數據,僅使用其中的4bit寬度,這是由網口數據線寬度決定的。系統(tǒng)中,接收FIFO接收的數據深度由SDRAM接口模塊寫入,當接收FIFO接收到規(guī)定數值的寫入數據后,SDRAM接口模塊向SDRAM控制器發(fā)出寫命令,命令監(jiān)控模塊接收命令和地址,并將接收到的命令進行譯碼。命令譯碼模塊從命令監(jiān)控模塊獲得寫地址和譯碼后的命令,并將其變?yōu)檫m合SDRAM接收的命令。數據傳輸模塊負責數據傳輸路徑和寫入。
當SDRAM存儲器中的數據大于等于8個時,控制器跳轉至讀進程,與寫進程相似,命令監(jiān)控模塊獲得讀命令和地址,將命令進行譯碼,傳輸給命令譯碼模塊,譯碼為適合SDRAM的命令,SDRAM將數據從接收地址處開始讀出,以8bit突發(fā)讀的形式將數據打入輸出FIFO中。
SDRAM開始工作后在不同的工作狀態(tài)和過程中進行跳轉,這些工作狀態(tài)和過程主要包括空閑狀態(tài)、初始化過程、讀過程、寫過程、刷新過程等,狀態(tài)或過程的跳轉通過命令協調過程完成,SDRAM工作狀態(tài)轉移如圖3所示。需要注意的是,如果SDRAM設置為自動刷新模式,由于刷新命令的優(yōu)先級在讀寫命令之前,SDRAM在狀態(tài)跳轉時會優(yōu)先跳轉至自動刷新過程中。
3 硬件測試結果
本系統(tǒng)在altera公司的QuartusII平臺上搭建完成,硬件上采用了雙網口設計,芯片型號為DP83848,SDR SDRAM芯片為Micron半導體公司生產的MT48LC16M16A2,FPGA芯片為CycloneIII系列的EP3C120F484C8,采用Modelsim SE 10.1a完成前期軟件仿真,在QurtusII自帶的嵌入式邏輯分析儀完成硬件仿真。測試結果仿真波形圖如圖4、5所示。
N1_RXD為網口接收數據,經過系統(tǒng)對數據包的判定,該數據包是具有TS流幀結構的音視頻數據,UDP模塊輸出UDP數據與輸入數據完全一致,而非UDP模塊輸出為0,實現了音視頻數據的過濾和分流。
N1_RXD是整個系統(tǒng)最初網口輸入數據,dataout為系統(tǒng)輸出數據,dq是SDRAM雙向數據總線。由圖5可見,系統(tǒng)輸出數據與輸入數據一致,符合設計要求。其中輸出數據最后將導入SD卡,或直接在PC平臺上進行各類仿真處理。
4 結論
系統(tǒng)硬件測試結果表明,SDRAM突發(fā)存儲的操作特點能夠滿足對高速傳輸的大量音視頻數據的采集和實時處理,能夠實現系統(tǒng)對音視頻數據進行識別過濾、采集、檢測以及存儲的需求,從而代替SIGNALTAPII完成對采集下來的數據進行觀測和調試的功能,可靠性高,符合系統(tǒng)設計的要求。
評論