新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于NiosⅡ軟核的嵌入式多路視頻點(diǎn)播系統(tǒng)

基于NiosⅡ軟核的嵌入式多路視頻點(diǎn)播系統(tǒng)

作者: 時(shí)間:2015-01-16 來(lái)源:網(wǎng)絡(luò) 收藏

  Switch和SRAM控制器模塊主要負(fù)責(zé)在DMA傳輸過(guò)程中在兩片 SRAM間調(diào)度數(shù)據(jù),從而實(shí)現(xiàn)數(shù)據(jù)的乒乓存取。Switch模塊用于完成兩塊RAM之間的切換及數(shù)據(jù)的分區(qū)存儲(chǔ)。它工作于兩個(gè)狀態(tài):以Flag為標(biāo)志位, Flag為0時(shí)做寫RAMl的操作;Flag為1時(shí)做寫RAM2的操作。在DMA方式下,一次DMA讀取硬盤一個(gè)扇區(qū)剛好寫滿一片RAM,Switch模塊掛起數(shù)據(jù)寫入,等待中斷。當(dāng)另一片RAM中的數(shù)據(jù)被全部讀出后中斷發(fā)生,此時(shí)Switch模塊交換兩片內(nèi)存的讀寫端口地址。

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

  2.1.2 RAM分區(qū)讀寫

  由于系統(tǒng)要提供的播放,因此,在進(jìn)行DMA傳輸?shù)倪^(guò)程中需實(shí)現(xiàn)各路視頻數(shù)據(jù)的分區(qū)讀寫。在寫內(nèi)存時(shí),采用雙時(shí)鐘控制機(jī)制。若要實(shí)現(xiàn)32路VOD系統(tǒng),將一片512 k的RAM分為32個(gè)單元,每個(gè)單元長(zhǎng)度為16 k,定義RAM的地址為:wraddress2=wraddressl+wraddress

  wraddressl為每個(gè)內(nèi)存分區(qū)的基地址,它的取值分別是0 k,16 k,32 k,48 k,…,496 k,另外是一個(gè)偏移地址wraddress。內(nèi)存分區(qū)方式如圖3所示。

  

 

  定義時(shí)鐘C0為寫內(nèi)存分區(qū)時(shí)鐘,C1為寫內(nèi)存偏移時(shí)鐘,C0的頻率為寫C1的32倍。當(dāng)偏移地址為某一值時(shí),權(quán)值地址的取值會(huì)從0 k~496 k遍歷一次,即每一內(nèi)存單元讀寫周期,寫入每個(gè)分區(qū)的一個(gè)單元。

  同樣,對(duì)內(nèi)存中的數(shù)據(jù)也要分區(qū)讀出并送往相應(yīng)端口。該模塊使用一種內(nèi)存地址的計(jì)數(shù)方法:將地址線的長(zhǎng)度設(shè)置為10位,再將低5位的地址和高5位的地址互換,目的是從高5位開始計(jì)數(shù),計(jì)數(shù)滿了進(jìn)位到低5位。高5位表示分區(qū)地址,低5位為分區(qū)的偏移地址,地址從第6位開始累加,剛好遍歷32個(gè)分區(qū),完成高5 位的依次累加后,進(jìn)位到低5位的分區(qū)偏移地址,表示開始讀下一輪分區(qū)的第2個(gè)內(nèi)存單元。如此類推。根據(jù)計(jì)算出的地址可實(shí)現(xiàn)對(duì)各分區(qū)的數(shù)據(jù)依次讀取。地址算法示意圖如圖4所示。

  

 

  2.1.3 移位輸出模塊

  該模塊主要實(shí)現(xiàn)的功能是:在分路時(shí)鐘的控制下,將從內(nèi)存中讀出的多路數(shù)據(jù)移位輸出。該模塊定義了一組長(zhǎng)度為16位的移位寄存器。數(shù)據(jù)I/O讀寫的時(shí)間和速度由video_clock確定,video_clock的頻率是12.5 MHz,負(fù)責(zé)控制SRAM_R控制器,移位輸出模塊和視頻解碼板的同步。模塊中還設(shè)置了一個(gè)累加計(jì)數(shù)器div3,工作頻率與video_clock相同。當(dāng)SRAM_R控制器依次將各路視頻文件讀人一個(gè)寄存器后,每一個(gè)時(shí)鐘下降沿到來(lái)時(shí)移出1位,直至全部移出。若加大時(shí)鐘頻率和緩沖內(nèi)存空間,可以增加移位寄存器的數(shù)目,從而增加視頻輸出端口的數(shù)量,實(shí)現(xiàn)系統(tǒng)點(diǎn)播路數(shù)的增加。

  2.2 系統(tǒng)軟件工作流程

  系統(tǒng)程序劃分為主機(jī)程序和點(diǎn)播終端兩大部分。主機(jī)程序主要實(shí)現(xiàn)3個(gè)功能:管理硬盤,提取簇鏈;播放節(jié)目,點(diǎn)播控制;響應(yīng)請(qǐng)求,串口中斷。管理硬盤的方式主要是通過(guò)自定義的DMA控制模塊對(duì)硬盤的控制寄存器進(jìn)行操作,驅(qū)動(dòng)硬盤后訪問(wèn)FAT32文件系統(tǒng)下的相應(yīng)扇區(qū),追朔簇鏈,將簇鏈提取出來(lái)寫入到Flash ROM中,為播放做準(zhǔn)備。點(diǎn)播端程序則主要負(fù)責(zé)生成指令包。本系統(tǒng)軟件工作流程如圖5所示。

  

 

  本系統(tǒng)要處理數(shù)據(jù),并且視頻信號(hào)數(shù)據(jù)量大,在點(diǎn)播過(guò)程中系統(tǒng)必須集中大部分處理器時(shí)間來(lái)處理各路視頻信號(hào),而視頻文件的文件名和簇鏈結(jié)構(gòu)必須通過(guò)相對(duì)低速的PIO操作來(lái)獲得。為了解決簇鏈讀取速度的瓶頸,本文設(shè)計(jì)了適合本系統(tǒng)應(yīng)用的數(shù)據(jù)結(jié)構(gòu)來(lái)優(yōu)化對(duì)數(shù)據(jù)的管理,加快讀取速度。定義的數(shù)據(jù)結(jié)構(gòu)有:

  

 

  客戶端的狀態(tài)和播放進(jìn)度也由專門的結(jié)構(gòu)體來(lái)記錄和管理。定義的數(shù)據(jù)結(jié)構(gòu)有:

  

 

  3 結(jié)束語(yǔ)

   =軟核+FPGA這個(gè)創(chuàng)新的概念為嵌入式設(shè)計(jì)帶來(lái)的極大的便利和靈活性。利用強(qiáng)大的開發(fā)平臺(tái)和豐富的IP資源,可大量縮短系統(tǒng)設(shè)計(jì)周期,而且系統(tǒng)的改進(jìn)也變得十分方便。本文提出的通過(guò)把用戶自定義的硬盤讀寫模塊整合到平臺(tái)上,與無(wú)縫接合,成功實(shí)現(xiàn)了數(shù)據(jù)的并發(fā)點(diǎn)播。

pid控制相關(guān)文章:pid控制原理


pid控制器相關(guān)文章:pid控制器原理



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

關(guān)鍵詞: NiosⅡ 多路視頻 SOPC

評(píng)論


相關(guān)推薦

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

關(guān)閉