基于DSP的網(wǎng)絡(luò)視頻監(jiān)控平臺的設(shè)計
掃描二維碼
隨時隨地手機(jī)看文章
引言
視頻監(jiān)控是物聯(lián)網(wǎng)安防系統(tǒng)的重要組成部分,目前正朝著智能化、數(shù)字化、網(wǎng)絡(luò)化的方向快速發(fā)展,廣泛應(yīng)用于高速公路、住宅小區(qū)等多種場合。目前的視頻監(jiān)控系統(tǒng)的實現(xiàn)方案主要有以下三種類型:
第一種方案是ARM+專用視頻編解碼芯片。該方案系統(tǒng)性能穩(wěn)定、處理速度較快,很容易實現(xiàn)實時處理,但靈活性不夠,不便于升級;
第二種方案是FPGA+IP軟核。該方案設(shè)計周期短,容易改進(jìn)升級,但視頻處理算法占用資源較大,復(fù)雜度、體積和功耗都會增加;
第三種方案是采用面向多媒體處理的專用DSP。該方案運行速度較快,而且可以移植多種圖像處理算法,所以能夠不斷對產(chǎn)品性能進(jìn)行改進(jìn)升級。為此,本文給出了一種基于DSP芯片DM642的視頻監(jiān)控系統(tǒng)的實現(xiàn)方法。
1 視頻處理系統(tǒng)設(shè)計方案
基于DM642的網(wǎng)絡(luò)視頻處理系統(tǒng)結(jié)構(gòu)如圖1所示。SDRAM通過EMIF總線進(jìn)行連接;PCI總線通過PCI接口連接;視頻解碼設(shè)備的數(shù)據(jù)通路通過DM642的Video接口VP[2:0]連接,控制通路通過I2C總線連接;攝像頭釆用CCD器件,模擬視頻信號輸入采用符合工業(yè)標(biāo)準(zhǔn)的BNC接口;時鐘電路和電源復(fù)位電路通過DM642內(nèi)部的專用接口進(jìn)行連接。
2 系統(tǒng)硬件設(shè)計
2.1 視頻采集模塊設(shè)計
本設(shè)計采用視頻解碼器TVP5150AM1來完成視頻圖像的A/D轉(zhuǎn)換以及對水平同步和垂直同步等信號的分離。TVP515OAM1是一款超低功耗視頻 解碼器,設(shè)計時,既可以選用48引腳PBGA封裝,也可以選用32引腳TQFP封裝,典型模式下的操作功耗只有115mW,在低電壓模式下的功耗小于1mW。通過TVP515OAM1可將NTSC/PAL/SECAM視頻信號轉(zhuǎn)化為數(shù)字分量視頻信號。
系統(tǒng)中,TVP515OAM1將PAL或NTSC制式的模擬視頻信號轉(zhuǎn)換為8位的ITU-RBT.656格式、4:2:2的視頻數(shù)據(jù)流發(fā)送到DM642的VP口。TVP515OAM1的視頻輸出口D[7:0]和DM642的VP口[9:2]相連,由于采用了ITU-RBT.656格式,圖像的行同步和場同步信號均嵌入視頻數(shù)據(jù)流內(nèi),因而不需要另外連接同步信號線。TVP515OAM1的連接示意圖如圖2所示。
2.2 網(wǎng)絡(luò)傳輸模塊設(shè)計
網(wǎng)絡(luò)傳輸模塊主要負(fù)責(zé)將視頻信號處理模塊處理后的數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)傳輸,傳輸過程符合TCP/IP協(xié)議,本系統(tǒng)釆用Intel公司的IntelLXT971ALC作為快速以太網(wǎng)物理層自適應(yīng)收發(fā)器。因為DM642芯片自帶網(wǎng)絡(luò)控制器EMAC,故在硬件上只需連接一個網(wǎng)絡(luò)收發(fā)芯片IntelLXT971ALC即可,并可大大簡化開發(fā)過程,也因此而成為高速嵌入式網(wǎng)絡(luò)連接很好的選擇。圖3所示是DM642的網(wǎng)絡(luò)接口電路。
2.3 EMIFA與FLASHROM的接口設(shè)計
本模塊使用了一片FLASH存儲器AM29LV033C,該存儲器可以映射到CE1的低地址空間。AM29LVO33C芯片的地址線共有22條,但DM642的地址線只有19條,由于兩種芯片之間的地址線數(shù)量不匹配,所以DM642不能遍歷FLASH芯片的所有地址單元。為了解決這一問題,在DM642電路系統(tǒng)中采用CPLD器件,并把FLASH芯片的地址線引腳A[21:19]與CPLD器件的輸入/輸出引腳相連接,同時通過A:21:19]把FLASH存儲區(qū)的64個扇區(qū)劃分為若干個頁,每頁包括多個扇區(qū)。在CPLD內(nèi)部擴(kuò)展有控制A:21:19]引腳信號的寄存器,DM642通過操作寄存器端口可以遍歷FLASH芯片的所有地址單元,F(xiàn)LASH存儲器芯片與DM642.CPLD器件的連接方式如圖4所示。
2.4 EMIFA與SDRAM的接口設(shè)計
本系統(tǒng)所選用的SDRAM芯片為海力士(Hy-nix)公司生產(chǎn)的HY57V283220T,該存儲器的容量為4MX32位,可映射到EMIFA的CEO空間,用于存儲實時視頻數(shù)據(jù)、DSP處理的中間計算結(jié)果或作為程序存儲器。由于DM642的EMIFA的總線寬度為64位,而所選用的SDRAM的數(shù)據(jù)總線寬度為32位,所以將兩片SDRAM并接到EMIFA數(shù)據(jù)總線。SDRAM的時鐘由DM642的TECLKOUT1引腳提供,在初始化EMIFA模塊時,可將輸入時鐘設(shè)置為CPU/6的時鐘分頻,即100MHz,所以,SDRAM的時鐘頻率為100MHz。圖5所示是DM642的SDRAM存儲器擴(kuò)展示意圖。
2.5 電源管理模塊
系統(tǒng)中的器件需要幾種不同的供電電壓,DM642內(nèi)核電壓為1.4V.DM642的外部I/O口為3.3V,外圍器件為5V。因此,電源模塊釆用了兩片電源芯片TPS54310來完成由5V?3.3V和1.4V的轉(zhuǎn)換。整個系統(tǒng)中用到很多高速器件,需要高精度的供電以保證系統(tǒng)正常工作,因此,本設(shè)計采用模塊化設(shè)計,并將電源部分獨立出來。有些部分(如CPLD芯片和視頻輸入輸出)甚至采用單獨供電,以保證給系統(tǒng)各部分提供穩(wěn)定可靠的電源。
3 視頻監(jiān)控系統(tǒng)的軟件設(shè)計
RF5是TI公司推出的DSP軟件開發(fā)的起步代碼參考框架,它以DSP/BIOS為基礎(chǔ),利用其中的數(shù)據(jù)處理元素和數(shù)據(jù)通信元素可方便快捷地完成DSP軟件的設(shè)計與開發(fā)。其顯著特點是其動態(tài)對象創(chuàng)建和線程(任務(wù))掛起功能,因此適合系統(tǒng)比較復(fù)雜的應(yīng)用場合。
另外,TI公司還開發(fā)了一套網(wǎng)絡(luò)開發(fā)程序套件(NDK),該套件可將網(wǎng)絡(luò)協(xié)議封裝起來作為API以供用戶調(diào)用,因而可大大提高網(wǎng)絡(luò)開發(fā)的效率。該API函數(shù)遵循國際上通用的socket編程標(biāo)準(zhǔn),在Windows和Unix、Linux上開發(fā)的網(wǎng)絡(luò)代碼,稍加改動就可以應(yīng)用到DSP中去。
3.1 進(jìn)程管理
RF5框架的最頂層是線程。線程總是順序的執(zhí)行所包含的通道,線程可在一個比較高級的級別上把數(shù)據(jù)組織在一起,并可以與別的線程,設(shè)備驅(qū)動以及別的類似結(jié)構(gòu)進(jìn)行通訊。本文的網(wǎng)絡(luò)視頻傳輸系統(tǒng)創(chuàng)建了三個線程,分別是tskVideoInput、tskEncode和tskNetwork。每個線程都在不斷的等待消息,處理數(shù)據(jù),并將結(jié)果發(fā)送給其他的線程,同時有可能還要發(fā)送同步消息給其他線程,以實現(xiàn)線程間的通訊,這里使用的機(jī)制是SCOM模塊。
3.2 系統(tǒng)初始化
系統(tǒng)在進(jìn)入任務(wù)調(diào)度之前,需要進(jìn)行多個模塊的初始化,其中首先是處理器初始化,即初始化DSP/BIOS環(huán)境,設(shè)置DM642cacheDMA傳輸模塊等;其次是RF5模塊初始化,包括建立RF5的通道模塊,初始化SCOM;另外還要建立視頻輸入通道等。
3.3 進(jìn)程調(diào)度
進(jìn)程調(diào)度時,其tskVideoInput首先啟動,在從視頻采集芯片中取得一幀數(shù)據(jù)后,向tskEncode發(fā)送一條信息,信息中包含視頻緩沖區(qū)的指針。然后開始無限循環(huán)以等待tskEncode的反饋信息,最后將進(jìn)程切換至tskEncode;其主要源代碼如下:
tskEncode一開始做無限循環(huán),當(dāng)其接收到tskVideoInput的信息后,即從ScomMcssage中得到要編碼的原始數(shù)據(jù)幀,并隨之調(diào)用編碼函數(shù)進(jìn)行編碼。編碼結(jié)束后,先向tskVideoInput發(fā)送反饋消息,然后向tskNetwork發(fā)送一條消息,消息中包含有編碼后數(shù)據(jù)緩沖區(qū)的地址和大小。然后等待tskNetwork的反饋信息,最后再將進(jìn)程切換至tskNetwork;
tskNetwork收到tskEncode的信息之后,即可得到編碼數(shù)據(jù)緩沖區(qū)地址和有效數(shù)據(jù)長度,再進(jìn)行網(wǎng)絡(luò)發(fā)送,發(fā)送完畢向tskEncode發(fā)送反饋信息,然后等待tskEncode的信息,再將進(jìn)程切換至tskVideo-Input;其主要源代碼為:
4 結(jié)語
本文研究了基于DM642的網(wǎng)絡(luò)視頻處理系統(tǒng)的實現(xiàn)方法。本系統(tǒng)以運行速度塊、集成度高的數(shù)字媒體處理器TMS320DM642作為核心。從試驗結(jié)果來看,本系統(tǒng)運行穩(wěn)定,網(wǎng)絡(luò)傳輸流暢,并可滿足實時性要求。