基于S3C6410的無線視頻監(jiān)控系統(tǒng)設(shè)計(jì)
伴隨電子信息技術(shù),網(wǎng)絡(luò)技術(shù)及多媒體技術(shù)的快速發(fā)展,嵌入式無線視頻監(jiān)控技術(shù)也在不斷的飛速發(fā)展。視頻監(jiān)控系統(tǒng)正在向數(shù)字化、網(wǎng)絡(luò)化和集成化方向發(fā)展,因此研究基于嵌入式的視頻監(jiān)控系統(tǒng)是必要的?;谇度胧降臒o線視頻監(jiān)控是以高性能處理器為核心,控制外圍部件進(jìn)行視頻采集和壓縮編碼,再將視頻流以無線的方式發(fā)送到中斷進(jìn)行存儲顯示。與其他監(jiān)控系統(tǒng)相比,利用嵌入式技術(shù)的無線視頻監(jiān)控系統(tǒng)易安裝,體積小,可以實(shí)現(xiàn)無人值守,對于各種特殊場合需求的視頻監(jiān)控能夠滿足應(yīng)用要求。
本文引用地址:http://www.ex-cimer.com/article/201609/303776.htm錢華明等人提出了一種基于S3C2410硬件平臺和嵌入式Linux操作系統(tǒng),將采集的視頻數(shù)據(jù)進(jìn)行MPEG-4編碼,再通過CDMA模塊,完成無線網(wǎng)絡(luò)視頻傳輸。涂繼輝等人提出了以高性能ARM9芯片作微處理器,通過嵌入式Linux采集USB攝像頭視頻數(shù)據(jù),經(jīng)MJPEG-4壓縮,通過2.4 GHz無線發(fā)送/接受模塊實(shí)現(xiàn)無線視頻監(jiān)控。張偉男等人提出了一種基于3G無線網(wǎng)絡(luò)傳輸?shù)囊苿右曨l監(jiān)控系統(tǒng)的方案,實(shí)現(xiàn)了實(shí)時(shí)監(jiān)控的功能。
為了實(shí)現(xiàn)室內(nèi)視頻監(jiān)控系統(tǒng)的網(wǎng)絡(luò)傳輸,在保證傳輸穩(wěn)定和多用戶的需求前提下,本文選取了主頻更高的ARM11作為處理器,以802.11g的無線局域網(wǎng)和Mjpg—streamer視頻服務(wù)器為傳輸媒介的無線視頻監(jiān)控系統(tǒng)。
1 系統(tǒng)方案設(shè)計(jì)
1.1 核心控制器
微處理器是系統(tǒng)硬件的核心,考慮到ARM低功耗、低成本、高性能等特點(diǎn),本文采用ARM11 S3C6410微處理器為核心的飛凌OK6410開發(fā)板,S3C6410是一款高性能32位的RISC微處理器,主頻高達(dá)667 MHz,它采用64/32位內(nèi)部總線架構(gòu),具有視頻處理、二維圖形顯示和縮放等硬件加速器功能。該開發(fā)板有256MB DDR和2 GB NAND FLASH,CPU內(nèi)部集成SDRAM控制器、32通道DMA、4通道UART、SD接口、USB接口及以太網(wǎng)接口等,為各種應(yīng)用開發(fā)提供了強(qiáng)大的支持。系統(tǒng)硬件架構(gòu)圖如圖1所示。
1.2 數(shù)字?jǐn)z像頭
OK6410有1個CMOS攝像頭接口,但由于攝像頭只能固定在開發(fā)板上,不便于安裝和放置,故本設(shè)計(jì)采用USB攝像頭??紤]到成本問題,攝像頭選用天敏10moons,經(jīng)測試該設(shè)備可以用于OK6410開發(fā)板上,且輸出YUV格式的視頻幀數(shù)據(jù)。
1.3 WIFI模塊
本設(shè)計(jì)使用的WIFI模塊為飛凌公司自行設(shè)計(jì)生產(chǎn)的,接口為2.0間距的雙排插孔“CN4”,主芯片型號為“WM-G-MR-09”。在連無線網(wǎng)絡(luò)之前,先關(guān)閉DM9000網(wǎng)卡,再啟動SDIO WIFI,命令分別為:ifconfig ethO down和ifconfig wlanO up。
2 系統(tǒng)軟件平臺
軟件設(shè)計(jì)包括嵌入式操作平臺的搭建以及視頻服務(wù)器軟件的移植。為此,首先搭建嵌入式交叉編譯環(huán)境。Ubuntu是一個以桌面應(yīng)用為主的Linux操作系統(tǒng),且具有安裝系統(tǒng)簡單和圖形界面人性化特點(diǎn),故選用Ubuntu 12.04為宿主機(jī)電腦操作系統(tǒng)。交叉編譯器選擇arm—linux —gcc 4.3.2版本。
2.1 嵌入式操作系統(tǒng)的選擇和移植
現(xiàn)階段主流的嵌入式操作系統(tǒng)有Linux、WinCE和μC/OS—II,其中Linux以其充分的開源性和良好的可移植性被廣泛使用,此次設(shè)計(jì)選取Linux 3.0.1版本的系統(tǒng)。
2.1.1 內(nèi)核的裁剪與移植
內(nèi)核的裁剪就是對各個功能進(jìn)行裁剪,選取滿足特定平臺和需求的功能。Linux內(nèi)核采用模塊化設(shè)計(jì),并且各個模塊源碼以文件目錄的形式存放,在對內(nèi)核的裁剪和編譯時(shí)非常方便。
1)USB攝像頭驅(qū)動模塊的添加
進(jìn)入內(nèi)核文件目錄,執(zhí)行make menuconfig命令,進(jìn)入Linux內(nèi)核配置界面一次選擇Device Drivers->Muhimedia devices->Video For Linux->Video capture adapters->V4L USB devices->USB Video Class (UVC1->UVC input events device support將USB攝像頭驅(qū)動編譯進(jìn)內(nèi)核。
2)SDIO WIFI驅(qū)動模塊的加載
系統(tǒng)的通信方式采用的是無線傳輸,由于這是系統(tǒng)的基本功能,可以采用將無線網(wǎng)卡驅(qū)動直接編譯進(jìn)內(nèi)核的方式來實(shí)現(xiàn)。具體過程如下:
進(jìn)入Linux內(nèi)核配置主界面后,首先配置網(wǎng)絡(luò)支持:Networking support->Wireless,然后配置網(wǎng)卡驅(qū)動支持:Device Driver->Network device->Wireless LAN->Wireless LAN(IEEE802.11),最后配置SD HOST驅(qū)動支持:Device Driver->MMC/SD/SDIO card support。
對內(nèi)核配置完成后,使用make zImage指令編譯Linux內(nèi)核,將生成可引導(dǎo)的、壓縮的zImage映像文件,可直接燒寫到開發(fā)板。
2.1.2 引導(dǎo)加載程序Bootloader的移植
Bootloader是操作系統(tǒng)運(yùn)行前執(zhí)行的一段小程序,在對系統(tǒng)硬件進(jìn)行初始化,完成內(nèi)存空間映射表的建立等操作后,實(shí)現(xiàn)對操作系統(tǒng)的加載。常用的Bootloader種類主要有:RedBoot、ARMboot、Vivi、U—Boot和Blob等。由于U—boot的開源性,以及多功能、靈活性強(qiáng),支持多種平臺的特點(diǎn),使其在多種平臺上得到了普遍的采用,本設(shè)計(jì)也使用U—Boot來引導(dǎo)系統(tǒng)的啟動。
2.1.3 根文件系統(tǒng)的移植
文件系統(tǒng)是操作系統(tǒng)在磁盤上組織文件的方法,通過使用文件系統(tǒng),用戶可以對數(shù)據(jù)進(jìn)行透明且有效地存取和訪問。Linux根文件系統(tǒng)通常包含如圖所示的目錄結(jié)構(gòu):
Yaffs是第一個專門為Nandflash存儲介質(zhì)而設(shè)計(jì)的嵌入式文件系統(tǒng),yaffs有很好的魯棒性,對啟動時(shí)間和RAM使用都做了優(yōu)化,加快了文件系統(tǒng)的加載和訪問速度。故本文用yaffs作為根文件系統(tǒng)。
2.1.4 一鍵燒寫Linux
OK6410支持一鍵燒寫,就是借助SD卡、系統(tǒng)映像和燒寫工具,通過一系列的操作,非常迅速地?zé)龑慙inux到開發(fā)板的Nandflash中。具體步驟如下:
1)將SD卡格式化為FAT32格式,通過SD_Writer.exe將mmc.bin燒寫到SD卡中;
2)將U—Boot、zImage和yaffs2文件拷貝到SD卡中;
3)將SD卡插入開發(fā)板,撥動開發(fā)板的撥碼開關(guān),設(shè)置為SD卡啟動;
4)設(shè)置DNW串口,給開發(fā)板上電,等待5分鐘左右即可;
5)斷電,將撥碼開關(guān)設(shè)置為Nandflash啟動,重新啟動電源,便完成系統(tǒng)燒寫。
2.2 Mjpg—streamer移植
評論