基于NiosⅡ軟核的嵌入式多路視頻點播系統(tǒng)
引言
本文引用地址:http://m.butianyuan.cn/article/268262.htmVOD (視頻點播)技術(shù)為人們提供了一種交互式的信息獲取方式,并隨著技術(shù)的完善不斷擴展著其應(yīng)用范圍和影響力。
傳統(tǒng)的VOD系統(tǒng)主要是以服務(wù)器作為視頻的信息源,通過局域網(wǎng)進行點播,適合服務(wù)于住宅小區(qū)或公營機構(gòu)。而對于缺乏網(wǎng)絡(luò)支持、移動性較強的環(huán)境,如公共交通工具,傳統(tǒng)的VOD系統(tǒng)顯然難以實現(xiàn)。
本文針對特定的用戶環(huán)境,提出采用Altera的SOPC(片上可編程系統(tǒng))解決方案,利用NiosⅡ軟核處理器和FPGA(現(xiàn)場可編程門陣列)配置靈活、 IP資源豐富、硬件設(shè)計和軟件編程方便的特點,通過擴展IDE(集成開發(fā)環(huán)境)接口,以硬盤作為存儲媒介,實現(xiàn)多路VOD系統(tǒng)的設(shè)計方案。該系統(tǒng)體積小、成本相對低廉,體現(xiàn)了嵌入式電子產(chǎn)品的優(yōu)勢。與傳統(tǒng)的VOD系統(tǒng)相比,使用范圍更具針對性,裝配更靈活,升級擴展更方便,具有很廣闊的前景。
1 系統(tǒng)功能劃分
該系統(tǒng)從功能上可劃分為系統(tǒng)控制核心、多路視頻數(shù)據(jù)讀取單元、視頻解碼模塊和用戶點播終端4個部分。
1.1 系統(tǒng)控制核心
系統(tǒng)以NiosⅡ軟核為控制核心,主要負責(zé)硬盤初始化、提取視頻節(jié)目簇鏈、生成節(jié)目列表、人機交互控制等工作。上電后,NiosⅡ控制器先初始化硬盤的傳輸模式和讀寫狀態(tài),然后讀取主引導(dǎo)記錄,尋址到基本分區(qū)的操作系統(tǒng)引導(dǎo)記錄區(qū),計算保留扇區(qū)和FAT(文件分配表)大小,分別得到FAT和根目錄的入口。對目錄樹上的文件進行分析后,提取出視頻文件的文件名、文件首簇,根據(jù)首簇指針再次查找FAT,追溯出文件的簇鏈,最后燒寫到Flash存儲器中。完成以上工作后,初始化中斷,對用戶端進行輪詢,等待用戶請求,分析用戶指令包,作出相應(yīng)響應(yīng)。
1.2 多路視頻數(shù)據(jù)讀取
為實現(xiàn)海量視頻數(shù)據(jù)的存取,該系統(tǒng)需外擴展硬盤作為存儲介質(zhì)。通過用戶自定義的硬盤DMA(直接存儲器存取)控制模塊實現(xiàn)對硬盤數(shù)據(jù)的讀寫,功能包括為上層程序提供控制硬盤和多路數(shù)據(jù)輸出的接口,產(chǎn)生硬盤DMA操作狀態(tài)機信號。數(shù)據(jù)從硬盤讀出后,以乒乓操作的方式交替存儲在兩片SRAM中,內(nèi)存中的數(shù)據(jù)按照對應(yīng)的輸出端口并行排列。同時,根據(jù)用戶終端提出的點播需求,數(shù)據(jù)往點播端口扇出。
1.3 視頻解碼
本系統(tǒng)采用外擴展的視頻解碼板作為硬解碼模塊。解碼芯片是LSI LOGIC公司CL680視頻CDMPEG 1音頻/視頻解碼器。該芯片以CL480/484架構(gòu)為基礎(chǔ),用于MPEG-1音頻/視頻解碼,整合數(shù)字NTSC/PAL編碼功能和加強KTV功能。
1.4 用戶點播終端
為解決多用戶終端遠距離通信的問題,系統(tǒng)采用RS-485收發(fā)器作為主機與用戶點播終端的連接橋梁。RS-485收發(fā)器采用平衡發(fā)送和差分接收,具有抑制共模干擾的能力,加上接收器的高靈敏度,能檢測低達200 mV的電壓,極大地提高信號傳播的可靠性。
主機與終端間的通信方式采用類似令牌總線的通信協(xié)議。主機不斷發(fā)出查詢包,收到查詢包的客戶端被賦予發(fā)送控制命令的權(quán)限,客戶端可選擇發(fā)送命令或直接丟棄查詢包,這樣就避免了多個客戶端同時向總線發(fā)送數(shù)據(jù)、導(dǎo)致通信失敗的情況。
系統(tǒng)采用MB90092視頻字符疊加模塊,在用戶終端屏幕中疊加功能菜單,建立友好的用戶操作界面,用戶可通過控制面板進行點播操作。
2 系統(tǒng)設(shè)計
2.1 系統(tǒng)硬件結(jié)構(gòu)
系統(tǒng)硬件結(jié)構(gòu)如圖1所示。
實現(xiàn)對硬盤的控制及兩片內(nèi)存的乒乓控制,系統(tǒng)使用了定制的DMA控制模塊,通過SOPC Builder軟件,以用戶邏輯形式掛到Avalon總線上。
2.1.1 DMA控制模塊
DMA控制模塊框圖如圖2所示。
DMA 控制模塊主要功能是控制硬盤進行多路視頻數(shù)據(jù)的并發(fā)傳輸。為保證視頻質(zhì)量,需考慮到數(shù)據(jù)讀寫速度的提高。本系統(tǒng)采用按照ATA/ATAPI-6協(xié)議編寫的 DMA模塊,控制置硬盤以Ultra-DMA方式傳輸數(shù)據(jù),可實現(xiàn)最大傳輸速率為66 Mbit/s,滿足多路MPEG-1視頻碼流的并發(fā)傳輸。除了解決傳輸速率問題,該系統(tǒng)涉及到同時處理多路數(shù)據(jù)的讀寫,因此引入相應(yīng)的功能子模塊,以乒乓操作的方式控制兩片SRAM的讀寫,并對多路數(shù)據(jù)的存儲分區(qū)進行地址管理。
模塊的主要子模塊有DMA控制器、DMA狀態(tài)機、switch和SRAM控制器。
DMA控制器作為Avalon總線與硬盤的接口,主要功能是接收上層程序的控制命令,再對硬盤的控制寄存器進行讀寫,在NiosⅡ程序的控制下將硬盤的傳送模式設(shè)置為Ultra-DMA模式進行數(shù)據(jù)傳輸。
DMA 狀態(tài)機模塊是根據(jù)T13小組發(fā)布ATA(ATA/ATAPI-6)文檔為設(shè)計標(biāo)準,用Verilog HDL(硬件描述語言)實現(xiàn)的有限狀態(tài)機。在控制終端的設(shè)置下傳輸方式轉(zhuǎn)為Ultra-DMA模式后,硬盤向控制器發(fā)出DMA請求,此時DMA狀態(tài)機啟動。主機端向硬盤發(fā)送響應(yīng)信號,握于成功,解除DMA STOP狀態(tài),同時使IDE_HDMARDY有效表示主控端已準備好。接著,數(shù)據(jù)流從硬盤流出,并發(fā)出一雙沿鎖存信號,SRAM控制器在該信號控制下將數(shù)據(jù)鎖存入內(nèi)存。直到DMA請求結(jié)束,STOP信號生效,DMA傳輸結(jié)束。整個過程遵守ATAPI-6協(xié)議,使用Verilog HDL描述出硬盤DMA傳輸過程的時序。
pid控制相關(guān)文章:pid控制原理
pid控制器相關(guān)文章:pid控制器原理
評論