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