基于MPC5200的音視頻采集系統(tǒng)
摘要:本文介紹了基于MPC5200的嵌入式音視頻采集系統(tǒng)的實現(xiàn)。在硬件方面重點介紹了以MPC5200為主處理器的基本特點和系統(tǒng)的硬件結(jié)構(gòu),在軟件方面重點介紹了驅(qū)動程序和應(yīng)用程序的設(shè)計。
引言
視頻監(jiān)控系統(tǒng)是安全防范系統(tǒng)的重要組成部分。在國內(nèi)外市場上,主要應(yīng)用的是數(shù)字信號控制的模擬和數(shù)字視頻監(jiān)控系統(tǒng)。前者技術(shù)經(jīng)歷了基于微處理器的視頻切換控制加PC的多媒體管理類型和基于PC實現(xiàn)對矩陣主機(jī)的切換、控制和對系統(tǒng)的多媒體管理兩個階段;后者技術(shù)經(jīng)歷數(shù)字監(jiān)控錄像系統(tǒng)和嵌入式視頻Web服務(wù)器方式兩個階段。目前,視頻監(jiān)控系統(tǒng)正處在數(shù)控模擬系統(tǒng)與數(shù)字系統(tǒng)混合應(yīng)用,并將逐漸向數(shù)字系統(tǒng)過渡的階段。今后,視頻監(jiān)控發(fā)展的兩個特點就是數(shù)字化和網(wǎng)絡(luò)化。
基于MPC5200的音視頻采集系統(tǒng)硬件設(shè)計
MPC5200簡介
MPC5200集成了高性能的 603e G2_LE核和帶有DMA單元的輸入/輸出子系統(tǒng),因此,MPC5200可以獨立于603e G2_LE 核響應(yīng)外部中斷,并且提供底層外設(shè)管理、協(xié)議處理、外部數(shù)據(jù)移動的功能。
MPC5200支持雙外圍總線結(jié)構(gòu),包括:SDRAM 總線;多功能LocalPlus總線。
嵌入式603e G2_LE核: 該內(nèi)核是PowerPC 超標(biāo)量體系結(jié)構(gòu),MPC5200有16KB的指令緩存、16KB的數(shù)據(jù)緩存、浮點單元、數(shù)據(jù)緩沖內(nèi)存管理單元、指令緩沖內(nèi)存管理單元、Critical中斷、MMU額外帶有16個寄存器和1KB的頁面管理。
Bestcomm 輸入/輸出子系統(tǒng):包括可編程串行控制器、10/100M以太網(wǎng)控制器、通用串行總線、I2C 接口、串行外圍接口、MSCAN接口。
系統(tǒng)接口單元 (SIU) :集成了最常見的系統(tǒng)接口和信號,即片選信號、中斷控制器、計數(shù)器、常用輸入/輸出口、實時時鐘。
SDRAM 控制器和LocalPlus總線:MPC5200有一個高速的SDRAM控制器,該控制器支持單數(shù)據(jù)速率、雙數(shù)據(jù)速率的SDRAM器件, 工作頻率最大可到132MHz,32位數(shù)據(jù)線。LocalPlus總線用來連接BOOT ROM、SRAM、Flash、外圍器件、ATA和PCI設(shè)備,有兩種操作模式:非復(fù)用數(shù)據(jù)接入模式和復(fù)用數(shù)據(jù)接入模式。
總體設(shè)計
基于MPC5200的音視頻采集處理系統(tǒng)實現(xiàn)了4路音頻和視頻的采集復(fù)合、MPEG-4壓縮、硬盤的本地存儲、網(wǎng)絡(luò)傳輸?shù)裙δ堋O到y(tǒng)主要包括音視頻采集復(fù)合壓縮、MPC5200的基本系統(tǒng)、硬盤存儲和網(wǎng)絡(luò)接口。系統(tǒng)通過音視頻采集復(fù)合壓縮模塊完成4路音頻和視頻的MPEG-4壓縮,壓縮后的MPEG-4數(shù)據(jù)通過系統(tǒng)提供的ATA接口完成本地硬盤存儲,利用系統(tǒng)提供的以太網(wǎng)接口實現(xiàn)數(shù)據(jù)的網(wǎng)絡(luò)傳輸。
基于MPC5200的音視頻采集處理系統(tǒng)的硬件結(jié)構(gòu)如圖1所示。除MPC5200外,各模塊設(shè)計說明如下:
圖1 基于MPC5200的音視頻采集處理系統(tǒng)的硬件結(jié)構(gòu)
5V變換邏輯并為USB和以太網(wǎng)分配引腳: 由于本設(shè)計中ATA、CAN接口是5V,MPC5200是3.3V,所以需要在連接的時候加入5V轉(zhuǎn)換器件74LVXC3245。在USB和以太網(wǎng)的引腳分配上,考慮到系統(tǒng)功能的可擴(kuò)展性,外接SN74CBTLV3384開關(guān)芯片,使這些引腳可以作為普通的輸入/輸出口。
音視頻采集復(fù)合壓縮:4路SAA7114完成視頻采集,每路視頻為8位數(shù)據(jù),通過2片MC4558和1片IDT821024完成4路音頻采集。4路視頻、4路音頻通過1片型號為XC2S200-PQ208的FPGA轉(zhuǎn)化為IME6400所需要的1路16位視頻數(shù)據(jù)、1路音頻數(shù)據(jù)。IME6400是一款支持MPEG-4標(biāo)準(zhǔn)的芯片。FPGA和IME6400都需要和32MB的SDRAM(型號為K4S643232C)相接,完成音視頻數(shù)據(jù)的緩沖和保存。IME6400和MPC5200之間的連接采用同步突發(fā)模式一,IME6400作為MPC5200的外部設(shè)備被統(tǒng)一編址。本設(shè)計將A[1:5]連接到IME6400的地址線Ha[0:4],用74LVXC3245將A[6:21]轉(zhuǎn)化為IME6400的數(shù)據(jù)線Hd[0:15]。
硬盤存儲和網(wǎng)絡(luò)接口 :MPC5200自身帶有ATA控制器,本設(shè)計的ATA接口是5V的,LocalPlus總線的CS4、CS5分別對應(yīng)ATA的CS0、CS1,采用74LVXC3245把A[0:15]轉(zhuǎn)化為ATA的數(shù)據(jù)信號線ATA_5V_DD[0:15],把A[16:18]轉(zhuǎn)化為ATA的地址信號線ATA_5V_DA[0:2]。MPC5200自身帶有以太網(wǎng)控制器,通過連接LXT971,提供RJ45以太網(wǎng)接口。
MPC5200的基本系統(tǒng)是由24位地址/8位數(shù)據(jù)的8MB AM29LV0652D Flash(利用74LVT04、74LVT32產(chǎn)生的片選和讀寫邏輯可以將Flash擴(kuò)展成16MB、13位地址/32位數(shù)據(jù)的64MB MT48LC16M16A2、PSC1口通過MAX3233E實現(xiàn)RS-232功能。
擴(kuò)展豐富的接口:MPC5200帶有PCI控制器,提供33MHz、32位、3.3V的PCI 連接器,這樣就可以在系統(tǒng)中連接成熟的、基于PCI接口的3.3V或者3.3V/5V兼容的視頻采集卡。MPC5200帶有USB控制器,通過外接電源管理芯片MIC2025和USB收發(fā)芯片ISP1107DH擴(kuò)展USB接口,這樣可以方便用戶提取和保存監(jiān)控系統(tǒng)中的重要數(shù)據(jù)。 MPC5200帶有CAN控制器,通過外接TJA1050T可以提供CAN接口,這樣可以方便地把系統(tǒng)連入基于CAN總線的系統(tǒng)中,MPC5200系統(tǒng)的PSC3可以作為普通的輸入/輸出口,這樣可以方便地接入外部開關(guān)量,本系統(tǒng)包括兩個開關(guān)輸入量和兩個開關(guān)輸出量;MPC5200通過I2C接口連接256B的E2PROM(PCF8582C),在E2PROM中保存串口波特率、IP地址、MAC地址等信息。
圖2 軟件總體框圖
本系統(tǒng)中音頻采集時鐘是2.048MHz、視頻采集時鐘是24.576MHz、FPGA和IME6400的時鐘是27MHz、MPC5200的時鐘是33MHz ,內(nèi)核頻率264MHz ,RTC的時鐘是32.768KHz、以太網(wǎng)LXT971的時鐘是25MHz。
基于MPC5200的音視頻采集系統(tǒng)軟件設(shè)計
系統(tǒng)軟件的框圖如圖2所示。包括PPCBoot、內(nèi)核初始化、系統(tǒng)調(diào)用函數(shù)和捕捉函數(shù)、設(shè)備驅(qū)動和文件系統(tǒng)。
驅(qū)動程序設(shè)計
系統(tǒng)調(diào)用:當(dāng)一個系統(tǒng)調(diào)用發(fā)生時,將參數(shù)放在堆棧上,然后調(diào)用一個陷阱處理程序。操作系統(tǒng)也會從堆棧上取得參數(shù),并調(diào)用陷阱處理程序,然后根據(jù)所帶的參數(shù)完成相關(guān)工作。
外圍設(shè)備硬件處理函數(shù)的調(diào)用:用于外圍設(shè)備的程序被放在設(shè)備驅(qū)動模塊中。對內(nèi)核而言,對設(shè)備驅(qū)動模塊的調(diào)用只能通過一些接口函數(shù)進(jìn)行。在實際應(yīng)用中,就是要建立用戶程序和這些程序之間的通信。
Linux操作系統(tǒng)中采用文件系統(tǒng)來完成設(shè)備驅(qū)動模塊和用戶應(yīng)用程序之間的通信。設(shè)備驅(qū)動看起來更象一個普通的文件,用戶可以對它進(jìn)行打開、關(guān)閉、讀取和寫入操作。操作系統(tǒng)就會分析這類操作的對象,并將它們映射到相關(guān)的設(shè)備驅(qū)動代碼中。|
文件的操作
super_block{
super_operations;/*指針結(jié)構(gòu)*/
inode_operations;/*文件節(jié)點操作*/
file_operations;/*文件操作*/
}
自己編寫的驅(qū)動程序在VFS中注冊自己的file_operations結(jié)構(gòu)。
硬件驅(qū)動程序分為字符設(shè)備模塊、塊設(shè)備模塊和網(wǎng)絡(luò)接口模塊。
下面以IME6400為例說明驅(qū)動程序的設(shè)計:IME6400驅(qū)動程序是被作為字符設(shè)備模塊對待的。使用方法如下:
Insmod IME6400.o
Fd=open(“/dev/IME6400”, O_RDWR);
….;/*利用IME6400*/
close(fd)
rmmod IME6400
IME6400的驅(qū)動程序提供下面一些功能: IME6400_open、IME6400_read、IME6400_ioctl、IME6400_release、IME6400_init、IME6400_exit、IME6400_interrupt、IME6400_reset、IME6400_download、IME6400_boot、queue_init、queue_empty、get_queue_len、update_queue、queue_to_user、Write32、Read32。每個功能都有相關(guān)的函數(shù)對應(yīng)解析實現(xiàn)。
應(yīng)用程序設(shè)計
首先通過Dserver進(jìn)程從IME6400中讀取媒體數(shù)據(jù),并在數(shù)據(jù)滿一幀的時候,把數(shù)據(jù)放在隊列上,然后執(zhí)行Dsend進(jìn)程,通過Cserver進(jìn)程接收和處理來自PC viewer的請求,確定是否完成硬盤存儲或網(wǎng)絡(luò)傳輸。具體流程參見圖3。
圖3 應(yīng)用程序執(zhí)行流程
系統(tǒng)應(yīng)用
系統(tǒng)產(chǎn)生的圖像采用標(biāo)準(zhǔn)的TCP/IP協(xié)議進(jìn)行傳輸,這使它特別適合跨網(wǎng)段、有路由器的遠(yuǎn)程視頻監(jiān)控環(huán)境使用。通過客戶端軟件實現(xiàn)對遠(yuǎn)程現(xiàn)場的實時監(jiān)控和觀看,并對攝像頭和云臺進(jìn)行遠(yuǎn)程控制。這也可以通過Internet Explorer下載專用插件來實現(xiàn),增強(qiáng)了系統(tǒng)的通用性。系統(tǒng)采用MPEG-4編碼極大地提高了編碼效率,使在相同的硬盤容量條件下,保存更長的記錄時間。通過該軟件可靈活方便地對歷史錄像進(jìn)行檢索回放和多畫面輪巡操作。軟件還提供了其它一些靈活的管理和配置功能。
結(jié)語
本文介紹了基于MPC5200的嵌入式音視頻采集系統(tǒng)的實現(xiàn),從硬件和軟件兩方面進(jìn)行了介紹,在硬件方面重點介紹了系統(tǒng)的硬件結(jié)構(gòu)和MPC5200作為主處理器的基本特點,在軟件方面重點介紹了驅(qū)動程序和應(yīng)用程序的設(shè)計。■
評論