基于S3C2410的MPEG-4數字錄像機的設計與實(shí)現

發(fā)布時(shí)間:2010-7-26 14:39    發(fā)布者:lavida
關(guān)鍵詞: MPEG-4 , S3C2410 , 數字錄像機
視頻信息在現代信息化戰爭發(fā)揮日益重要的作用,在視頻監控、偵察、機載或車(chē)載視頻記錄等方面都得到了越來(lái)越廣泛應用,這種形勢對數字視頻監控記錄設備的研制提出了新的要求:大批量的應用要求降低監控記錄設備成本,多樣的應用環(huán)境、分散、孤立的監控點(diǎn)要求監控記錄設備盡可能一體化、小型化、獨立、便攜、低功耗、供電方便、性能可靠。針對這些新問(wèn)題和新要求,筆者設計實(shí)現了一種基于嵌入式系統和MPEG-4編碼標準的數字錄像機,系統集成度高、體積小、功耗低、獨立、便攜,適合大量的各類(lèi)視頻監控和記錄應用。  

1 系統總體設計及原理  

  

本系統選擇嵌入式微處理器加專(zhuān)用壓縮編碼芯片的方案,系統電路主體框圖如圖1所示,主要由視音頻解碼芯片、視音頻壓縮編碼芯片、核心微處理器控制模塊、電源模塊以及各種外部接口等組成。系統采用單一5V電源供電,正常啟動(dòng)后,視頻、音頻解碼芯片SAA7114和PCM1800分別對對輸入的模擬視頻、音頻信號進(jìn)行解碼,并分別送入壓縮編碼芯片IME6400進(jìn)行壓縮生成MPEG-4復合流,控制芯片S3C2410從ime6400的HOST接口接收數據并以文件的形式存儲至硬盤(pán),并完成系統的總體控制。  

2 硬件設計  

2.1 視頻音頻解碼及壓縮編碼部分設計  

視頻A/D芯片選用Philips公司的SAA7114,該芯片支持多種輸入模式,具有抗混疊濾波、自動(dòng)增益變換、亮度、對比度調整等功能。通過(guò)設定SAA7114的內部的配置寄存器93H[6]為1使能其HOST端口,實(shí)現與IME6400的無(wú)縫連接。音頻A/D芯片采用BURR-BROWN公司的PCM1800,它對模擬音頻進(jìn)行高信噪比20bit數字采樣,生成PCM數字音頻流。  

壓縮編碼采用INTIME公司的MPEG-4編碼芯片IME6400。該芯片是一款高性能的單片多通道MPEG-4數字壓縮編碼芯片,它支持多種編碼模式和比特率控制,并提供了豐富的外圍硬件接口。其外部HOST接口有四種模式,由MODE引腳來(lái)決定,本系統選用異步模式:MODE[1:0] pin = 11。在此模式下,IME6400對輸入的視頻音頻流進(jìn)行壓縮和復合,產(chǎn)生MPEG-4的系統流,然后經(jīng)過(guò)輸出端口大小為1K的FIFO緩沖進(jìn)行數據的輸出,當FIFO滿(mǎn),其GPIO0腳就產(chǎn)生一個(gè)下降沿的中斷通知主機讀取FIFO中的數據,主機通過(guò)512次(16bit主機)讀IME6400 HOST端口的EncodedStream寄存器完成數據的讀取,外部主機通過(guò)寫(xiě)一個(gè)不同的值到USER4寄存器來(lái)通知IME6400數據傳輸已完成。  

2.2 控制、接口及存儲部分設計  

系統控制模塊選用三星的S3C2410微處理器,這是一個(gè)采用ARM920T內核,高性能、低功耗、低成本的32位微處理器。為了提高設計和應用的靈活性,硬件設計上采用核心板加底板的模塊化設計方法,在核心板上集成了基于S3C2410的最小系統,通過(guò)底板來(lái)擴展外部功能。在核心板上主要配置了64MB的NANDFlash 和64MB的SDRAM及提供RTC時(shí)鐘和工作時(shí)鐘的晶體,并將其豐富的外設接口資源引出。在底板上擴展出USB主機接口、以太網(wǎng)口、UART接口、IDE接口等,以實(shí)現與外部設備間的數據傳輸和通信。  

S3C2410并不帶有IDE控制模塊,接口電路需另行設計,圖2是IDE接口電路示意圖。電路利用S3C2410的第5個(gè)BANK的片選信號nGCS4和地址信號ADD4和ADD5相或后形成IDE接口的兩個(gè)片選信號nIDE_CS0、nIDE_CS1,S3C2410的讀寫(xiě)信號nOE、nWE 則直接用于IDE接口讀寫(xiě)信號nIOR、nIOW。該方法將IDE接口映射到了S3C2410的第5個(gè)Memory Bank中, S3C2410將IDE設備視為普通的存儲器,以相同的方式訪(fǎng)問(wèn),這大大降低了系統軟件開(kāi)發(fā)的復雜度。   



采用類(lèi)似IDE接口的方式將IME6400的HOST接口映射到處理器的第6個(gè)Memory Bank中。系統存儲部分采用體積小、抗震性好、溫度范圍寬的電子硬盤(pán)作為存儲器。  

3 軟件設計  

由于Linux系統具有穩定、高效、易定制、易裁減、開(kāi)放源碼等優(yōu)點(diǎn),本系統選用嵌入式Linux作為操作系統,在此系統下實(shí)現IME6400驅動(dòng)程序設計和相關(guān)應用程序設計。  

Linux 將設備當作文件處理,編寫(xiě)linux驅動(dòng)程序的最主要工作就是file_operations結構中各入口點(diǎn)的實(shí)現,即對應于open()、release()、read()、write()、ioctrl()等系統調用子函數的編寫(xiě)。同時(shí)本系統的設備驅動(dòng)程序采用靈活性較好的動(dòng)態(tài)加載方式,驅動(dòng)程序還應包括模塊初始化函數和模塊注銷(xiāo)函數。下面介紹幾個(gè)主要函數及其功能:
  
模塊初始化函數在驅動(dòng)程序被加載的時(shí)候被調用,主要完成以下功能:   

申請掛載總線(xiàn)上的視頻編碼芯片的實(shí)際物理地址空間并且將它映射到虛擬地址空間:  

request_region(BASE_ADDR,0x100,"IME6400")  
vbase = ioremap_nocache(BASE_ADDR,0x100)   
注冊設備并獲取主設備號:  
ret=register_chrdev(IME6400_MAJOR,"ime6400",&ime6400_fops)  
設置并且申請中斷及注冊中斷處理函數:  
set_external_irq(IRQ_EINT19, EXT_FALLING_EDGE, GPIO_PULLUP_DIS) request_irq(IRQ_EINT19, &ime
6400_irq, SA_INTERRUPT,"ime6400", NULL)  
注冊設備文件系統:  
ime6400_devfs_dir= devfs_register(NULL,"ime6400",DEVFS_FL_DEFAULT,IME6400_MAJOR,0, S_IFCHR |S_IRUSR |S_IWUSR |S_IRGRP |S_IWGRP,&ime6400_fops, NULL)  
l OPEN函數遞增模塊使用計數,防止沒(méi)有釋放設備就把模塊卸載了。  
l READ函數阻塞等待數據緩沖區滿(mǎn),然后把數據從內核空間復制到用戶(hù)空間。  
l IOCTRL函數實(shí)現從用戶(hù)空間向內核空間傳遞參數,用于設置IME6400工作模式。  
l 中斷處理函數讀取IME6400輸出的MPEG-4碼流數據存入內核緩沖區,并通知IME6400數據讀取完畢。Linux將中斷處理函數分為兩部分:頂半部(top half)是實(shí)際響應中斷的例程,底半部(bottom half)是一個(gè)被頂半部調用在稍后安全的時(shí)間內運行的例程。Linux采用Tasklet機制實(shí)現底半部處理,通過(guò)宏DECLARE_TASKLET可以聲明Tasklet:  

static DECLARE_TASKLET(ime_tasklet,do_tasklet,NULL),其中do_tasklet函數實(shí)際處理中斷,從IME6400讀取數據至內核緩沖區。通過(guò)函數tasklet_schedule()可以調度一個(gè)Tasklet運行:tasklet_schedule(&ime_tasklet) 。  

本系統應用程序主要實(shí)現從驅動(dòng)層接收MPEG-4碼流數據并存儲至硬盤(pán),主要采用多線(xiàn)程編程的方式,主程序創(chuàng )建了讀和寫(xiě)線(xiàn)程兩個(gè)線(xiàn)程:首先,用戶(hù)程序讀線(xiàn)程調用read(),此時(shí)編碼尚未開(kāi)始,驅動(dòng)進(jìn)行ime6400_read()無(wú)數據可讀,進(jìn)入睡眠態(tài),用戶(hù)進(jìn)程被阻塞。此后中斷到來(lái),中斷處理程序從IME6400讀取數據存入內核緩沖區,若緩沖區滿(mǎn)則喚醒睡眠的ime6400_read(),并往IME6400的USER4寄存器寫(xiě)入一個(gè)新值,通知IME6400數據已讀取完畢,啟動(dòng)新一輪的編碼。ime6400_read()被喚醒后,將內核緩沖區數據拷貝到用戶(hù)緩沖區,然后返回并等待用戶(hù)進(jìn)程的下一次調用。ime6400_read()返回后,用戶(hù)空間讀到編碼數據退出阻塞狀態(tài),然后讀線(xiàn)程以信號量通知寫(xiě)線(xiàn)程,由寫(xiě)線(xiàn)程完成將緩沖區數據存儲至硬盤(pán)。
  
4 結束語(yǔ)  

系統目前已完成了初步調試,可實(shí)時(shí)壓縮存儲最大分辨率為720x576全幀率的4:2:2的彩色視頻,采用2G的電子硬盤(pán),在720x576分辨率下可記錄2小時(shí)以上,且圖像質(zhì)量較好。同時(shí)系統還具有較好的靈活性,可以通過(guò)設置視頻圖像分辨率大小、量化系數、幀率等參數,來(lái)達到對圖像大小、圖像質(zhì)量及碼率等方面的不同要求,以滿(mǎn)足不同場(chǎng)合應用的需要。
本文地址:http://selenalain.com/thread-16956-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页