新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于SAA6752HS 的嵌入式視頻監(jiān)控和傳輸系統(tǒng)的設(shè)計(jì)

基于SAA6752HS 的嵌入式視頻監(jiān)控和傳輸系統(tǒng)的設(shè)計(jì)

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


系統(tǒng)軟件設(shè)計(jì)

本系統(tǒng)的軟件包括兩大部分,一是硬件驅(qū)動(dòng)程序,二是控制邏輯設(shè)計(jì)。下面分而述之。

系統(tǒng)驅(qū)動(dòng)程序設(shè)計(jì)

環(huán)境下進(jìn)行的。CCS 界面簡(jiǎn)單明了,操作方便,功能強(qiáng)大,大大降低了開發(fā)的難度。系統(tǒng)的驅(qū)動(dòng)程序由TMS320VC5502 初始化程序,SAA7114A ,S 和LAN91C111 的配置程序、數(shù)字視頻 碼流接收存儲(chǔ)封包程序、 碼流以太網(wǎng)發(fā)送程序和系統(tǒng)主控程序等多個(gè)模塊組成。圖6 為軟件系統(tǒng)框圖。



圖6  軟件系統(tǒng)框圖


TMS32VC5502 的初始化程序完成對(duì)‘C5502 的堆棧和運(yùn)行狀態(tài)位,中斷使能位的設(shè)置,以及DSP內(nèi)核頻率的設(shè)置。SAA7114 和S 的配置程序通過(guò)‘C5502 的I2C 接口完成對(duì)其的設(shè)置,使其能正常地進(jìn)行模擬解碼和數(shù)字編碼。LAN91C111 的初始化程序完成對(duì)該芯片的一些寄存器設(shè)置,使其能正常運(yùn)轉(zhuǎn)起來(lái)。數(shù)字視頻 碼流接收存儲(chǔ)封包程序是通過(guò)‘C5502 將S 傳過(guò)來(lái)的數(shù)據(jù)按照RTP 協(xié)議標(biāo)準(zhǔn)打成網(wǎng)絡(luò)上的數(shù)據(jù)包,然后再通過(guò)MPEG2碼流以太網(wǎng)發(fā)送程序?qū)?shù)據(jù)包發(fā)送出去。數(shù)據(jù)傳輸時(shí)都是使用的DMA 傳輸方式,這樣可以節(jié)省大量的時(shí)間,提高系統(tǒng)運(yùn)行的效率。

在整個(gè)驅(qū)動(dòng)程序設(shè)計(jì)當(dāng)中,時(shí)序的把握是十分關(guān)鍵的。比如SAA7114 的配置程序,當(dāng)中需要用到I2C 總線,而I2C 總線對(duì)時(shí)序要求是相當(dāng)嚴(yán)格的,如果在發(fā)出START 命令之后,不加上一定的時(shí)延,而立即傳送數(shù)據(jù),由于DSP 的速度太快,可能會(huì)造成前后數(shù)據(jù)的覆蓋,導(dǎo)致程序出錯(cuò)。另外,由于系統(tǒng)是進(jìn)行實(shí)時(shí)處理的,中斷程序設(shè)計(jì)是必不可少的。在程序設(shè)計(jì)時(shí)有幾個(gè)問題需要注意:

第一, 當(dāng)外部中斷信號(hào)不穩(wěn)定時(shí),比如波形前后跳動(dòng)、毛刺過(guò)多等,都有可能造成能檢測(cè)到中斷,但無(wú)法進(jìn)入中斷服務(wù)程序的情況。

第二, 若將程序單步執(zhí)行,這樣會(huì)造成仿真器出錯(cuò),無(wú)法檢測(cè)到中斷。

第三, 在修改兩個(gè)中斷矢量指針I(yè)VPD 和IVPH 之前,應(yīng)確信:

a、禁止所有的可屏蔽中斷( INTM= 1) 。這可以在修改中斷矢量指針,使之指向新中斷矢量之前,防止產(chǎn)生一個(gè)可屏蔽中斷。
b、每個(gè)硬件非屏蔽中斷對(duì)新舊IVPD 值分別有一個(gè)中斷矢量和一個(gè)中斷服務(wù)程序。這樣在修改IVPD 過(guò)程中,產(chǎn)生一個(gè)硬件非屏蔽中斷時(shí),可以防止非法指令代碼。

FPGA 邏輯設(shè)計(jì)

該系統(tǒng)中使用了一塊Altera 公司的ACEXEP1K30QC208-3Q 型號(hào)的FPGA ,主要利用該FPGA實(shí)現(xiàn)SAA6752 與TMS320VC5502 之間的接口。如上SAA6752HS 與TMS320VC5502 的連接圖4 所示,移位寄存器負(fù)責(zé)將SAA6752HS 輸出的8 位數(shù)據(jù)方式擴(kuò)展成32 位寬度,以提高數(shù)據(jù)的吞吐效率。通過(guò)時(shí)鐘信號(hào)PDIOCLK、有效位信號(hào)PDOVAL 和音視頻標(biāo)志位PDOAV 來(lái)控制移位寄存器的工作。FIFO是一個(gè)寬度為32 位的緩沖器,TMS320VC5502 通過(guò)片選信號(hào)CE3 和讀信號(hào)ARE/SRE/SDRE 控制對(duì)FIFO 數(shù)據(jù)的讀操作。

當(dāng)SAA6752HS 采用傳送流的數(shù)據(jù)結(jié)構(gòu)時(shí),每讀完4 個(gè)數(shù)據(jù)包(每個(gè)數(shù)據(jù)包為188個(gè)字節(jié)) , 計(jì)數(shù)器2 就會(huì)產(chǎn)生一次中斷,TMS320VC5502 從FIFO 中讀入這些數(shù)據(jù)包,完成信道編碼后向網(wǎng)絡(luò)上傳輸。FPGA 邏輯正是依據(jù)這一思想設(shè)計(jì)的。為了提升系統(tǒng)的穩(wěn)定性,避免累積錯(cuò)誤,該邏輯中采用了一種雙FIFO 輪流切換的方法。在系統(tǒng)開始運(yùn)行,只往FIFO1 里寫,當(dāng)寫完4 個(gè)數(shù)據(jù)包,產(chǎn)生一次中斷,通知DSP 來(lái)讀數(shù)據(jù);接下來(lái),系統(tǒng)自動(dòng)切換到往FIFO2 里寫,此時(shí)DSP 同時(shí)在讀FIFO1里的數(shù)據(jù),直到往FIFO2 里寫完4 個(gè)數(shù)據(jù)包(由于DSP 讀數(shù)據(jù)的速度遠(yuǎn)遠(yuǎn)快于SAA6752 往FIFO 里寫數(shù)據(jù)的速度,故此時(shí)FIFO1 已被讀空) ,便又產(chǎn)生中斷;接下來(lái),DSP 讀FIFO2 里的數(shù)據(jù),同時(shí)往FIFO1里寫,依次輪流切換。



圖7  DIO 主模式下輸出傳輸流分組的時(shí)序圖


SAA6752 的輸出采用DIO 主模式,其輸出端口的時(shí)序如圖7 所示,每個(gè)數(shù)據(jù)包包含188 個(gè)字節(jié),這是MPEG2 傳輸流分組的特性。在MAX+PLUSII 下設(shè)計(jì)其邏輯,運(yùn)行正常。

結(jié)束語(yǔ)

本文針對(duì)數(shù)字視頻壓縮及網(wǎng)絡(luò)傳輸作了較為深入的研究,并針對(duì)嵌入式網(wǎng)絡(luò)視頻服務(wù)器的設(shè)計(jì)和實(shí)現(xiàn)作了初步而有益的探索,其中既有經(jīng)驗(yàn)也有教訓(xùn)。由于時(shí)間及其它因素的限制,研究工作留有許多需要完善的地方。Non-PCI 結(jié)構(gòu)網(wǎng)絡(luò)接口性能的優(yōu)化和客戶端軟件的具體實(shí)現(xiàn)及形成嵌入式網(wǎng)絡(luò)視頻服務(wù)器原理樣機(jī)是我們下一步的目標(biāo)。


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

評(píng)論


相關(guān)推薦

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

關(guān)閉