基于S3C2440處理器的嵌入式視頻采集系統(tǒng)
摘要 在研究嵌入式開發(fā)技術的基礎上,提出了一個基于嵌入式處理器S3C2440的實時視頻采集系統(tǒng)解決方案。該方案通過搭建嵌入式Linux開發(fā)環(huán)境,對T.264編碼器進行優(yōu)化,并修改移植視頻驅(qū)動以及C/S軟件,實現(xiàn)了系統(tǒng)的正常運行。
關鍵詞 S3C2440;Linux;C/S軟件;視頻采集
隨著通信網(wǎng)絡技術的迅速發(fā)展,基于網(wǎng)絡的高質(zhì)量視頻傳輸已逐步取代傳統(tǒng)的文字語音交互模式,成為當今數(shù)字通信的主要研究領域之一。而隨著嵌入式操作系統(tǒng)和集成電路設計水平的不斷提高,嵌入式技術與通信網(wǎng)絡以及多媒體技術的融合將成為未來數(shù)字視頻通信領域的主流發(fā)展趨勢。
一直以來,針對網(wǎng)絡傳輸實時視頻對嵌入式軟硬件都有較高要求。本文利用基于ARM920T內(nèi)核的S3C2440嵌入式微處理器,采用壓縮比更高的H.264視頻壓縮標準和開源嵌入式Linux系統(tǒng),設計了一款基于嵌入式視頻服務器的遠程實時視頻采集系統(tǒng)。
1 采集系統(tǒng)平臺搭建
1.1 系統(tǒng)硬件平臺
該采集系統(tǒng)以PC作為客戶端,以廣東友善之臂計算機科技有限公司研發(fā)的ARM9開發(fā)板Mini2440作為視頻服務器,采用SamsungS3C2440為微處理器,用專業(yè)穩(wěn)定的CPU內(nèi)核電源芯片和復位芯片保證系統(tǒng)運行時的穩(wěn)定性。三星公司推出的這款16/32位RISC微處理器S3C2440,采用ARM920T的內(nèi)核,典型主頻400 MHz,最高可達533 MHz,使用5級流水線技術,并采用豐富的控制模塊為各種應用提供擴展。該采集系統(tǒng)的結構如圖1所示。
1.2 系統(tǒng)軟件平臺搭建
PC機端使用內(nèi)核版本為2.6.18的Linux 5紅帽子企業(yè)版,由于后續(xù)需要在Windows平臺進行FTP資料傳輸?shù)裙ぷ?,所以采取了虛擬機安裝Linux的方式,這樣方便Linux和Windows的數(shù)據(jù)網(wǎng)絡交互。虛擬機軟件版本為Vmware 6.5.1,采用的傳輸軟件為基于SFTP協(xié)議的Flash Fxp。而交叉編譯工具主要為Binutils、Gcc和Glibc。
一個嵌入式系統(tǒng)軟件角度主要分為引導加載程序、Linux內(nèi)核和文件系統(tǒng)3個層次,其中引導加載程序是系統(tǒng)加電后運行的第一段軟件代碼。BootLoader就是在操作系統(tǒng)內(nèi)核運行之前運行的一段程序。在負責引導用的Hash存儲器中,通常會按照圖2的順序分布。
因為后期進行攝像頭驅(qū)動編寫移植過程需要大量的調(diào)試,基于網(wǎng)絡的NFS根文件系統(tǒng)就比較合適?;谶@種考慮,選擇了網(wǎng)絡功能強大的U-boot作為BootLoader。移植U-boot主要做了以下工作:(1)修改編譯條件,添加寄存器定義,修改時鐘。(2)修改中斷禁止部分,添加S3C24 40的中斷禁止代碼。(3)在board目錄創(chuàng)建新開發(fā)板目錄。(4)以smdk2410.c為模板修改PLL以及UPLL的設置。(5)修改Makefile相應配置行以支持該開發(fā)板。
修改完畢后進入工作目錄進行板級配置,通過交叉編譯工具鏈對改后代碼進行編譯。利用H-JTAG軟件進行燒寫,如圖3所示為燒寫成功并通過超級終端引導完成。
根文件系統(tǒng)掛載方式主要有ramdisk,NFS和initramfs這3種。制作自啟動的嵌入式設備需要用initramfs作為根文件系統(tǒng)的內(nèi)核進行燒寫。先0地址處存放的是U-boot,約為100 kB;然后在0x0000~0x40000存放了約64 kB的環(huán)境變量。這兩項均固定,所以uImage的大小必須控制在1.75 MB以下,并從0x40000開始存放。uImage包括內(nèi)核和根文件系統(tǒng)兩部分,需要針對其進行裁減,以符合項目要求。
linux相關文章:linux教程
評論