基于S3C2410的MPEG-4數(shù)字錄像機的設計與實現(xiàn)
發(fā)布時間:2008/6/5 0:00:00 訪問次數(shù):488
視頻信息在現(xiàn)代信息化戰(zhàn)爭發(fā)揮日益重要的作用,在視頻監(jiān)控、偵察、機載或車載視頻記錄等方面都得到了越來越廣泛應用,這種形勢對數(shù)字視頻監(jiān)控記錄設備的研制提出了新的要求:大批量的應用要求降低監(jiān)控記錄設備成本,多樣的應用環(huán)境、分散、孤立的監(jiān)控點要求監(jiān)控記錄設備盡可能一體化、小型化、獨立、便攜、低功耗、供電方便、性能可靠。針對這些新問題和新要求,筆者設計實現(xiàn)了一種基于嵌入式系統(tǒng)和mpeg-4編碼標準的數(shù)字錄像機,系統(tǒng)集成度高、體積小、功耗低、獨立、便攜,適合大量的各類視頻監(jiān)控和記錄應用。
1 系統(tǒng)總體設計及原理
本系統(tǒng)選擇嵌入式微處理器加專用壓縮編碼芯片的方案,系統(tǒng)電路主體框圖如圖1所示,主要由視音頻解碼芯片、視音頻壓縮編碼芯片、核心微處理器控制模塊、電源模塊以及各種外部接口等組成。系統(tǒng)采用單一5v電源供電,正常啟動后,視頻、音頻解碼芯片saa7114和pcm1800分別對對輸入的模擬視頻、音頻信號進行解碼,并分別送入壓縮編碼芯片ime6400進行壓縮生成mpeg-4復合流,控制芯片s3c2410從ime6400的host接口接收數(shù)據(jù)并以文件的形式存儲至硬盤,并完成系統(tǒng)的總體控制
。
2 硬件設計
2.1 視頻音頻解碼及壓縮編碼部分設計
視頻a/d芯片選用philips公司的saa7114,該芯片支持多種輸入模式,具有抗混疊濾波、自動增益變換、亮度、對比度調整等功能。通過設定saa7114的內部的配置寄存器93h[6]為1使能其host端口,實現(xiàn)與ime6400的無縫連接。音頻a/d芯片采用burr-brown公司的pcm1800,它對模擬音頻進行高信噪比20bit數(shù)字采樣,生成pcm數(shù)字音頻流。
壓縮編碼采用intime公司的mpeg-4編碼芯片ime6400。該芯片是一款高性能的單片多通道m(xù)peg-4數(shù)字壓縮編碼芯片,它支持多種編碼模式和比特率控制,并提供了豐富的外圍硬件接口。其外部host接口有四種模式,由mode引腳來決定,本系統(tǒng)選用異步模式:mode[1:0] pin = 11。在此模式下,ime6400對輸入的視頻音頻流進行壓縮和復合,產生mpeg-4的系統(tǒng)流,然后經過輸出端口大小為1k的fifo緩沖進行數(shù)據(jù)的輸出,當fifo滿,其gpio0腳就產生一個下降沿的中斷通知主機讀取fifo中的數(shù)據(jù),主機通過512次(16bit主機)讀ime6400 host端口的encodedstream寄存器完成數(shù)據(jù)的讀取,外部主機通過寫一個不同的值到user4寄存器來通知ime6400數(shù)據(jù)傳輸已完成[1]。
2.2 控制、接口及存儲部分設計
系統(tǒng)控制模塊選用三星的s3c2410微處理器,這是一個采用arm920t內核,高性能、低功耗、低成本的32位微處理器[2]。為了提高設計和應用的靈活性,硬件設計上采用核心板加底板的模塊化設計方法,在核心板上集成了基于s3c2410的最小系統(tǒng),通過底板來擴展外部功能。在核心板上主要配置了64mb的nandflash 和64mb的sdram及提供rtc時鐘和工作時鐘的晶體,并將其豐富的外設接口資源引出。在底板上擴展出usb主機接口、以太網口、uart接口、ide接口等,以實現(xiàn)與外部設備間的數(shù)據(jù)傳輸和通信。
s3c2410并不帶有ide控制模塊,接口電路需另行設計,圖2是ide接口電路示意圖。電路利用s3c2410的第5個bank的片選信號ngcs4和地址信號add4和add5相或后形成ide接口的兩個片選信號nide_cs0、nide_cs1,s3c2410的讀寫信號noe、nwe 則直接用于ide接口讀寫信號nior、niow。該方法將ide接口映射到了s3c2410的第5個memory bank中, s3c2410將ide設備視為普通的存儲器,以相同的方式訪問,這大大降低了系統(tǒng)軟件開發(fā)的復雜度[3]。
采用類似ide接口的方式將ime6400的host接口映射到處理器的第6個memory bank中。系統(tǒng)存儲部分采用體積小、抗震性好、溫度范圍寬的電子硬盤作為存儲器。
3 軟件設計
由于linux系統(tǒng)具有穩(wěn)定、高效、易定制、易裁減、開放源碼等優(yōu)點,本系統(tǒng)選用嵌入式linux作為操作系統(tǒng),在此系統(tǒng)下實現(xiàn)ime6400驅動程序設計和相關應用程序設計。
linux 將設備當作文件處理,編寫linux驅動程序的最主要工作就是file_operations結構中各入口點的實現(xiàn),即對應于open()、release()、read()、write()、ioctrl()等系統(tǒng)調用子函數(shù)的編寫[4]。同時本系統(tǒng)的設備驅動程序采用靈活性較好的動態(tài)加載方式,驅動程序還應包括模塊初始化函數(shù)和模塊注銷函數(shù)。下面介紹幾個主要函數(shù)及其功能:
模塊初始化函數(shù)在驅動程序被加載的時候被調用,主要完成以下功能:
申請掛載總線上的視頻編碼芯片的實際物理地址空間并且將它映射到虛擬地址空間:
request_region(base_addr,0x100,"ime6400")
vbase = ioremap_nocache(base_addr,0x100)
注冊設備并獲取主設備號[4]
視頻信息在現(xiàn)代信息化戰(zhàn)爭發(fā)揮日益重要的作用,在視頻監(jiān)控、偵察、機載或車載視頻記錄等方面都得到了越來越廣泛應用,這種形勢對數(shù)字視頻監(jiān)控記錄設備的研制提出了新的要求:大批量的應用要求降低監(jiān)控記錄設備成本,多樣的應用環(huán)境、分散、孤立的監(jiān)控點要求監(jiān)控記錄設備盡可能一體化、小型化、獨立、便攜、低功耗、供電方便、性能可靠。針對這些新問題和新要求,筆者設計實現(xiàn)了一種基于嵌入式系統(tǒng)和mpeg-4編碼標準的數(shù)字錄像機,系統(tǒng)集成度高、體積小、功耗低、獨立、便攜,適合大量的各類視頻監(jiān)控和記錄應用。
1 系統(tǒng)總體設計及原理
本系統(tǒng)選擇嵌入式微處理器加專用壓縮編碼芯片的方案,系統(tǒng)電路主體框圖如圖1所示,主要由視音頻解碼芯片、視音頻壓縮編碼芯片、核心微處理器控制模塊、電源模塊以及各種外部接口等組成。系統(tǒng)采用單一5v電源供電,正常啟動后,視頻、音頻解碼芯片saa7114和pcm1800分別對對輸入的模擬視頻、音頻信號進行解碼,并分別送入壓縮編碼芯片ime6400進行壓縮生成mpeg-4復合流,控制芯片s3c2410從ime6400的host接口接收數(shù)據(jù)并以文件的形式存儲至硬盤,并完成系統(tǒng)的總體控制
。
2 硬件設計
2.1 視頻音頻解碼及壓縮編碼部分設計
視頻a/d芯片選用philips公司的saa7114,該芯片支持多種輸入模式,具有抗混疊濾波、自動增益變換、亮度、對比度調整等功能。通過設定saa7114的內部的配置寄存器93h[6]為1使能其host端口,實現(xiàn)與ime6400的無縫連接。音頻a/d芯片采用burr-brown公司的pcm1800,它對模擬音頻進行高信噪比20bit數(shù)字采樣,生成pcm數(shù)字音頻流。
壓縮編碼采用intime公司的mpeg-4編碼芯片ime6400。該芯片是一款高性能的單片多通道m(xù)peg-4數(shù)字壓縮編碼芯片,它支持多種編碼模式和比特率控制,并提供了豐富的外圍硬件接口。其外部host接口有四種模式,由mode引腳來決定,本系統(tǒng)選用異步模式:mode[1:0] pin = 11。在此模式下,ime6400對輸入的視頻音頻流進行壓縮和復合,產生mpeg-4的系統(tǒng)流,然后經過輸出端口大小為1k的fifo緩沖進行數(shù)據(jù)的輸出,當fifo滿,其gpio0腳就產生一個下降沿的中斷通知主機讀取fifo中的數(shù)據(jù),主機通過512次(16bit主機)讀ime6400 host端口的encodedstream寄存器完成數(shù)據(jù)的讀取,外部主機通過寫一個不同的值到user4寄存器來通知ime6400數(shù)據(jù)傳輸已完成[1]。
2.2 控制、接口及存儲部分設計
系統(tǒng)控制模塊選用三星的s3c2410微處理器,這是一個采用arm920t內核,高性能、低功耗、低成本的32位微處理器[2]。為了提高設計和應用的靈活性,硬件設計上采用核心板加底板的模塊化設計方法,在核心板上集成了基于s3c2410的最小系統(tǒng),通過底板來擴展外部功能。在核心板上主要配置了64mb的nandflash 和64mb的sdram及提供rtc時鐘和工作時鐘的晶體,并將其豐富的外設接口資源引出。在底板上擴展出usb主機接口、以太網口、uart接口、ide接口等,以實現(xiàn)與外部設備間的數(shù)據(jù)傳輸和通信。
s3c2410并不帶有ide控制模塊,接口電路需另行設計,圖2是ide接口電路示意圖。電路利用s3c2410的第5個bank的片選信號ngcs4和地址信號add4和add5相或后形成ide接口的兩個片選信號nide_cs0、nide_cs1,s3c2410的讀寫信號noe、nwe 則直接用于ide接口讀寫信號nior、niow。該方法將ide接口映射到了s3c2410的第5個memory bank中, s3c2410將ide設備視為普通的存儲器,以相同的方式訪問,這大大降低了系統(tǒng)軟件開發(fā)的復雜度[3]。
采用類似ide接口的方式將ime6400的host接口映射到處理器的第6個memory bank中。系統(tǒng)存儲部分采用體積小、抗震性好、溫度范圍寬的電子硬盤作為存儲器。
3 軟件設計
由于linux系統(tǒng)具有穩(wěn)定、高效、易定制、易裁減、開放源碼等優(yōu)點,本系統(tǒng)選用嵌入式linux作為操作系統(tǒng),在此系統(tǒng)下實現(xiàn)ime6400驅動程序設計和相關應用程序設計。
linux 將設備當作文件處理,編寫linux驅動程序的最主要工作就是file_operations結構中各入口點的實現(xiàn),即對應于open()、release()、read()、write()、ioctrl()等系統(tǒng)調用子函數(shù)的編寫[4]。同時本系統(tǒng)的設備驅動程序采用靈活性較好的動態(tài)加載方式,驅動程序還應包括模塊初始化函數(shù)和模塊注銷函數(shù)。下面介紹幾個主要函數(shù)及其功能:
模塊初始化函數(shù)在驅動程序被加載的時候被調用,主要完成以下功能:
申請掛載總線上的視頻編碼芯片的實際物理地址空間并且將它映射到虛擬地址空間:
request_region(base_addr,0x100,"ime6400")
vbase = ioremap_nocache(base_addr,0x100)
注冊設備并獲取主設備號[4]
上一篇:新款Apple Nano拆解報告
上一篇:二次配線工藝規(guī)程