劉浩森
摘 要:當今社會,監控是一種非常常見而且重要的裝置,但是現在很多監控都需要有人一直堅守,既浪費了大量的資源,也難取得良好的效果。隨著嵌入式系統技術的發展為我們解決這一難題提供了幫助。本文設計了一種基于S3C2440的ARM嵌入式Linux移動圖像監控系統,通過中星微ZC301攝像頭來捕捉運動圖像,實現當檢測到有物體移動時自動報警的功能。
關鍵詞:ARM9;linux;ZC301;移動圖像監控系統
1 移動圖像監控系統框架介紹
整個系統是基于TQ2440開發板來實現的,基本思路就是:通過USB攝像頭來捕捉移動圖像,然后將拍攝到的圖像保存并通過音響來報警,同時可以遠程登錄網頁來查看所拍攝到的圖像。整個系統由圖像采集模塊、報警模塊、傳輸模塊和相關服務器組成。
2 移動圖像監控系統開發
2.1 系統前期準備
因為整個系統都是基于linux,所以系統開發之前首先要搭建好正確的linux系統開發環境,比如虛擬機安裝、linux操作系統安裝,搭建好samba服務器、tftp服務器、NFS服務器等。
2.2 Uboot、內核以及文件系統的制作與移植
2.2.1 Uboot制作與移植
(1)運行命令:tar xvzf uboot_tq2440.tar.gz解壓;(2)運行命令:make TQ2440_config對uboot進行配置;(3)運行命令:make ARCH=arm CROSS_COMPILE=arm-linux-得到u-boot.bin文件。
2.2.2 Linux內核文件的制作與移植
(1)運行命令:tar xvzflinux-tq2440.tar.gz解壓;(2)運行命令:make uImage ARCH=arm CROSS_COMPILE=arm-linux-得到映像文件。
2.2.3 文件系統的制作與移植
(1)運行命令:mkdirrootfs創建文件系統目錄;(2)然后在rootf目錄下依次創建bin dev etc lib/modules proc sbin sys usr/bin usr/sbinusr/lib mnttmpvar目錄;(3)創建設備文件:在rootfs/dev目錄下分別運行命令:mknod–m 666 console c 5 1和mknod–m 666 null c 1 3;(4)加入設備文件:將etc.tar.gz解壓,然后將解壓之后的所有內容拷貝到rootfs/etc目錄下;(5)添加內核模塊;(6)編譯/安裝busybox;運行命令make menuconfig配置busybox,注意選中“Build busybox as a static binary”和“Dont use /usr”,然后運行make和make install命令;(7)根文件系統的掛載:這里選擇NFS即網絡文件系統。
2.3 聲卡驅動移植
(1)將目錄切換到linux內核目錄;(2)保證SoC Audio for the Samsung S3C24XX chips和SoC I2S Audio support UDA134X wired to a S3C24XX被選中,同時保證OSS Mixer API、OSS PCM(digital audio)API、OSS PCM(digital audio)API-Include plugin system和Support old ALSA API 4項被選中;(3)運行命令:make uImage ARCH=armCROSS_COMPILE=arm-linux-scripts/kconfig/conf–s arch/arm/Kconfig重新編譯內核;(4)加載內核并運行。
2.4 嵌入式播放器移植
(1)嵌入式播放器的移植需要用到4個文件,依次為:libid3tag-0.15.1b.tar.gz、libmad-0.15.1b.tar.gz、madplay-0.15.2b.tar.gz、zlib-1.1.4.tar.gz。將這4個文件依次解壓、配置、修改、編譯和安裝;(2)將madplay應用程序拷貝到/rootfs/sbin目錄下;(3)添加4個庫文件,依次為:libmad.so.0、libid3tag.so.0、libm.so.6、libc.so.6;(4)madplay haojiubujian.mp3即可播放音樂。
2.5 攝像頭驅動移植
(1)進入到內核目錄,選中Video For Linux,然后將選中ZC3XX USB Camera Driver;(2)編譯內核并下載,并插上USB攝像頭;(3)查看ls dev/目錄下USB攝像頭在系統里創建的設備文件,比如video0,然后將camera.c里面的內容改成“char*dev_name=″/dev/video0″”;(4)拷貝camera應用程序到rootfs根文件系統里面去;(5)運行命令:./camera即可啟動攝像頭。
2.6 移動監控系統主系統設計與開發
(1)運行命令:tar xvzf motion-3.2.12.tar.gz解壓;(2)運行命令:tar xvzfffmpeg-0.5.1.tar.gz解壓;(3)運行命令來完成ffmpeg配置;(4)拷貝_install/bin/目錄下的motion應用程序到rootfs根文件系統目錄下;(5)拷貝_install/etc/目錄下的motion-dist.conf文件到rootfs根文件系統目錄下;(6)通過Samba打開motion-dist.conf文件,完成相關內容的設置;(7)運行命令:make,make install來完成motion編譯和安裝;(8)運行命令:motion–c motion-dist.conf來啟動motion進程。
3 遠程監控開發
3.1 BOA嵌入式服務器移植
(1)運行命令:tar xvzfboa-0.94.13.tar.gz解壓;(2)修改Makefile文件,將里面的gcc全部改成arm-linux-gcc;(3)運行命令:make完成編譯工作;(4)拷貝boa應用程序到rootfs/sbin目錄下;(5)拷貝boa.conf文件到rootfs/etc/boa目錄下;(6)修改boa.conf文件;(7)運行命令:make完成編譯;(8)運行命令boa來啟動boa服務器。
3.2 HTML網頁界面設計
該系統要求通過網頁登錄系統IP地址來查看攝像頭拍攝到的圖像。本次設計的網頁界面的標題是:基于ARM的嵌入式移動圖像監控系統研究,包括兩個標簽頁,分別是查看監控圖片和監控視頻。
4 網頁登錄
在CRT中通過運行命令ifconfig命令查看到板子上linux系統的IP地址,然后打開瀏覽器,在搜索欄中直接輸入IP地址,即可打開網頁。
參考文獻
[1]孫戈.基于S3C2440的嵌入式Linux開發實例[M].西安電子科技大學出版社,2010.
[2]宋寶華.Linux設備驅動開發詳解[M].北京人民郵電出版社,2010.
(作者單位:電子科技大學成都學院)