陳國俊+唐學(xué)麒+吳余萬
摘要:該文設(shè)計一種基于Linux平臺和ARM的移動視頻監(jiān)控小車。介紹了移動視頻監(jiān)控小車的系統(tǒng)總體結(jié)構(gòu)、軟件設(shè)計與硬件設(shè)計。主控器選用ARM9系列S3C2440作為處理器,電機驅(qū)動芯片選擇L298N,電機驅(qū)動器選擇AVR單片機ATmega16L作為處理器,實現(xiàn)控制小車的轉(zhuǎn)向與速度;ARM9采用Linux操作系統(tǒng)。在整機運行和調(diào)試表明,移動視頻監(jiān)控小車達(dá)成了圖像采集、溫度探測、無線通信等功能。
關(guān)鍵詞:視頻監(jiān)控;移動小車;嵌入式系統(tǒng);ARM;Linux
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)34-0081-03
隨著科技在不斷地發(fā)展,特別是在網(wǎng)絡(luò)與系統(tǒng)方面,取得了長足進步,嵌入式系統(tǒng)與因特網(wǎng)的結(jié)合成為物聯(lián)網(wǎng)、大數(shù)據(jù)時代中的發(fā)展骨干。嵌入式技術(shù)日益成熟的同時,基于嵌入式技術(shù)的研究逐漸與日常生活緊密聯(lián)系起來,基于網(wǎng)絡(luò)遠(yuǎn)程控制視頻監(jiān)控可移動小車成為目前人們關(guān)注的焦點,其在各行各業(yè)中都具有廣泛的應(yīng)用前景。
1 系統(tǒng)總體結(jié)構(gòu)及硬件平臺設(shè)計
1.1 系統(tǒng)總體結(jié)構(gòu)的框架
移動視頻監(jiān)控小車與PC機之間可以利用無線網(wǎng)絡(luò)相互連接,通過采用無線網(wǎng)卡及無線路由器將移動視頻監(jiān)控小車獲取的信息傳遞給PC機,然后通過PC機的分析處理,將小車獲取的畫面轉(zhuǎn)換成視頻影像,展示在PC上。系統(tǒng)的結(jié)構(gòu)框架如圖1所示。
1.2 設(shè)計硬件控制系統(tǒng)
以移動視頻監(jiān)控小車為系統(tǒng)核心部分,主要響應(yīng)來自PC機的視頻采集數(shù)據(jù)相關(guān)指令,比如采集動作指令、信息傳輸指令、小車控制指令等。本次研究以四輪小車作為移動小車的本體,并在小車上搭載S3C2440開發(fā)板,構(gòu)成小車整體框架,再結(jié)合移動電源、USB攝像頭、USB無線網(wǎng)卡、直流電機、電機控制模塊等有機結(jié)合,共同形成小車的功能系統(tǒng)。其中,電機控制模塊組成如圖2所示。
1.2.1 主控制板
選擇適合的RAM、FLASH以及CPU等,這對應(yīng)用程序和操作系統(tǒng)的運行都很重要。本文中選擇ARM 9 S3C2440處理器作為主控制板。
1.2.2 存儲器系統(tǒng)
在主控制板上所用到的存儲器主要有FLASH與SDRAM這兩種。在嵌入式系統(tǒng)中內(nèi)存主要是用SDRAM,它的特點是價格便宜、運行速度快以及存儲量大。對系統(tǒng)初始化后,將應(yīng)用程序復(fù)制到SDRAM當(dāng)中運行,從而提升程序的運行速度。在本系統(tǒng)中以并接方式將2片SDRAM組成64M的SDRAM,數(shù)據(jù)的寬度是32位。在本系統(tǒng)中用到的FLASH主要是NAND與NOR這2種,去其中NAND FLASH具有改寫速度快和容量較大的特點,,適合用于存儲大量的數(shù)據(jù)。而其中采用的NOR FLASH,特點突出,即可將編譯好二進制程序文件置入芯片中,執(zhí)行過程會避免程序向RAM中復(fù)制的過程。
1.2.3 以太網(wǎng)接口模塊
網(wǎng)卡芯片型號選擇DM9000。它是臺灣生產(chǎn)的,內(nèi)部集成有媒體訪問控制協(xié)議MAC,并且也有10/100M物理接口收發(fā)器PHY,這一芯片存在16k大容量的FIFO,同時具有4路多功能GPIO。最大支持3.3V電壓和5V的輸入電壓,同時能通過其他方式對內(nèi)部存儲數(shù)據(jù)進行操作。它擁有16K大容量FIFO與4路多功能的GPIO。它可以同時支持3.3V的輸出電壓和5V的輸入電壓,并可以使用多種方式對其內(nèi)部存儲器進行數(shù)據(jù)操作, DM9000網(wǎng)卡芯片之所以應(yīng)用廣泛,主要與其優(yōu)秀的通信能力存在直接關(guān)系,且其更便于開發(fā),較少開發(fā)的周期。
1.2.4 電機驅(qū)動模塊
電機驅(qū)動器選擇AVR單片機ATmega16L作為處理器,其控制芯片采用L298N,它可以驅(qū)動步進電機或直流電機,其工作電流大,工作電壓高,最大瞬間輸出電流為3A,最高工作電壓可達(dá)46V,L298N的內(nèi)部集成了2個H橋式驅(qū)動器,驅(qū)動步進電機會置留電機很方便。它提供了2個使能控制端和4個信號引腳,通過邏輯電平來對5個信號控制引腳進行控制。利用兩兩并接方式將4個直流電機連接到L298N模塊上。(圖2為L298N模塊電路原理)
在圖2中的M2與M1分別連接到小車上的4個電機,控制電平接到IN1,IN2, IN3, IN4上,這樣就能通過調(diào)整GPIO口的電平高低來控制M1,M2端所連接的直流電機。
2 搭建嵌入式軟件開發(fā)平臺
2.1 建立交叉編譯環(huán)境
交叉編譯是常用的一種程序編譯方式,利用宿主機進行程序的交叉編譯,然后將目標(biāo)代碼發(fā)送至目標(biāo)機,形成二進制程序文件,并在嵌入式平臺系統(tǒng)中運行,實現(xiàn)程序的功能。這一過程可看作一個交叉編譯的環(huán)境,如圖3所示。
交叉編譯工具鏈需要在編譯之前安裝到宿主機上,這種工具鏈通過應(yīng)用程序與交叉編譯的系統(tǒng)內(nèi)核實現(xiàn)程序的運行。把所需程序代碼在PC機上編寫好,然后經(jīng)arai-linux-gcc編譯器將程序翻譯成艾瑪,并在設(shè)計好的目標(biāo)機小車上運行。
2.2 建立TFTP和NFS輔助開發(fā)環(huán)境
在嵌入式系統(tǒng)的開發(fā)中簡單文件傳輸協(xié)議(TFTP)和網(wǎng)絡(luò)文件系統(tǒng)(NFS)是很實用的輔助開發(fā)工具,它們可以在很大程度上的提高開發(fā)效率。NFS技術(shù)通過網(wǎng)絡(luò)可以在不同機器之間來實現(xiàn)文件共享。嵌入式產(chǎn)品的開發(fā)與調(diào)試往往會用到NFS技術(shù),該技術(shù)的應(yīng)用能夠?qū)崿F(xiàn)目標(biāo)平臺的文件系統(tǒng)構(gòu)建,并利用網(wǎng)絡(luò)與宿主機端連接,形成文件共享,并快速修改文件系統(tǒng)的內(nèi)容,使產(chǎn)品開發(fā)效率得到提升。TFTP使屬于PC機上的工作軟件,要提供對于開發(fā)板的主要映像文件的下載工作,例如:內(nèi)核映像等。其方便高效并且下載的速度快。
2.3 引導(dǎo)加載程序的移植
引導(dǎo)加載程序(Bootloader)在操作系統(tǒng)的內(nèi)核中啟動前加載,這段小程序主要是將硬件設(shè)備初始化,為系統(tǒng)啟動創(chuàng)造核實的軟件環(huán)境,使系統(tǒng)進入啟動狀態(tài)。
在嵌入式系統(tǒng)開發(fā)階段,引導(dǎo)加載程序具有較多的功能,通常在引導(dǎo)加載程序引導(dǎo)之后,操作系統(tǒng)不會直接運行,而是會進入到人機交互界面,系統(tǒng)的行為由開發(fā)者來決定,這時可執(zhí)行燒寫FLASH,運行操作系統(tǒng)、載入內(nèi)核等功能。
2.4 Linux內(nèi)核的配置與裁剪
操作系統(tǒng)的移植,主要是針對硬件平臺系統(tǒng),對系統(tǒng)中的配置加以修改,確保配置能夠滿足運行平臺的基本需求,確保系統(tǒng)順利運行。在Linux系統(tǒng)的內(nèi)核模塊化結(jié)構(gòu)上,利用增添和減少內(nèi)核模塊方式來實現(xiàn)對內(nèi)核的裁剪。其本質(zhì)就是一句軟硬件平臺需求來實現(xiàn)內(nèi)核中功能的需求,這種裁剪方式能夠使內(nèi)核容量做出適當(dāng)調(diào)整,從而提升系統(tǒng)內(nèi)核的運行效率。結(jié)合本次研究中軟硬件平臺需求,編譯并配置內(nèi)核文件。因內(nèi)核配置項相對繁雜,需要對多方面加強注意。
首先,做好內(nèi)核云代碼植入的準(zhǔn)備工作,進入源代碼的目錄,在終端中執(zhí)行makedistclean命令,然后在執(zhí)行make menuconfig ARCH=arm指令,將會彈出圖文化的配置界面。因本系統(tǒng)中需要用到攝像頭和無線網(wǎng)卡,因此在linux內(nèi)核配置時,應(yīng)選上對無線網(wǎng)卡與攝像頭的驅(qū)動支持,若攝像頭與無線網(wǎng)卡在內(nèi)核中存在支持項,因此可直接執(zhí)行以下程序代碼:
Dewice Drivers-->Network device support -->Wireless LAN -- > WirelessLAN(IEEE 802.1 l)-->Ralink driver support
攝像頭的使用需要調(diào)用攝像頭驅(qū)動程序,其內(nèi)核支持配置如下:
Dewice Drivers-->Multiinedia support -->Video capture adapters -->V4L USB devices(如圖5所示)
2.5 制作根文件系統(tǒng)
在本文中嵌入式根文件系統(tǒng)采用的是YAFFS2,主要是因其具有占用內(nèi)存小,運行速度快的優(yōu)勢,對于NAND FLASH運行的支持效果突出。制作流程如下:
1) 構(gòu)建根文件系統(tǒng)目錄,指令內(nèi)容如下:
mkdir rootfs,cdrootfs,mkdir bin dev etc lib proc sbin sys usr mnt tmp var,mkdir usr/bin usr/bin usr/lib usr/sbin lib/modules.
2)完成根目錄文系統(tǒng)目錄后,建立設(shè)備文件,執(zhí)行指令如下:
cd /dev
mknod -m 666 console c 5 1
mknod -m 666 console c 1 3
3)對內(nèi)核模塊進行安轉(zhuǎn)與編譯,通過輸入下方指令,進入Linux-2.6.38內(nèi)核目錄當(dāng)中:
make modules ARCH=ARM CROSS_COMPILE=ann-linux-
make modules ARCH=ARM IN STALL_MOD_P ATH=/home/rootfs
4)對Busybox進行配置編譯安裝。其一,下載busybox源碼,本次研究的系統(tǒng)源碼版本為1.1.2版;其二,在系統(tǒng)執(zhí)行makememiconfig指令時,按照整實際的需求實現(xiàn)圖文化配置;其三,在執(zhí)行程序代碼make modules ARCH=ARM CROSS_COMPILE=arm-Umix-時,需要編譯并安裝make install文件。
5)制作YAFFS2的根文件系統(tǒng)。首先下載安裝制作YAFFS2文件系統(tǒng)工具mkyaffsimgae,輸入mkyaffsimage rootfs rootfs.img指令,這樣完成可YAFFS2根文件系統(tǒng)的制作。
利用引導(dǎo)加載程序把根文件系統(tǒng)鏡像與Linux內(nèi)核燒寫進開發(fā)板,這樣就完成了搭建軟件開發(fā)平臺的全部工作。
3 總結(jié)
本文研發(fā)了一款具有實時視頻監(jiān)控和人工遙控功能的小車,它利用無線網(wǎng)絡(luò)發(fā)送圖像或者數(shù)據(jù)給PC 機,然后PC 機上會顯示出準(zhǔn)確的溫度、距離數(shù)據(jù),清晰的標(biāo)志物圖片。移動視頻監(jiān)控小車不僅能用于倉庫監(jiān)控,也可作為樓宇場合的視頻監(jiān)控工具。同時,這種小車因性能與體積的優(yōu)勢,能夠在惡劣環(huán)境下使用,可代替人來完成信息采集工作,比如應(yīng)用于毒氣泄漏信息采集、礦井井下信息采集等惡劣的環(huán)境中。這種小車的應(yīng)用與研究,將便于實現(xiàn)遠(yuǎn)程監(jiān)控目標(biāo)環(huán)境,對于探險、安防及智能樓宇建設(shè)等領(lǐng)域都存在較好的發(fā)展前景。
參考文獻(xiàn):
[1] 張光南. 基于ARM9的嵌入式無線視頻監(jiān)控小車設(shè)計[J]. 寶雞文理學(xué)院學(xué)報:自然科學(xué)版, 2014, 34(1):59-61.
[2] 黃倩, 閔華松. 基于ARM的移動視頻監(jiān)控系統(tǒng)[J]. 現(xiàn)代電子技術(shù), 2010, 33(1):148-152.
[3] 李昶, 翟開元. 基于ARM-Linux的多端口移動監(jiān)測系統(tǒng)設(shè)計[J]. 信息技術(shù), 2011(5):139-141.
[4] 王宏志, 宇皓林. 基于ARM-Linux遠(yuǎn)程視頻監(jiān)控系統(tǒng)的設(shè)計[J]. 吉林大學(xué)學(xué)報理學(xué)版, 2014(1):103-107.
[5] 任克強, 劉蘇, 謝斌. 基于ARM11和Linux的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)[J]. 電視技術(shù), 2014, 38(5):156-159.
[6] 杜偉龍, 曹江濤. 基于ARM-Linux無線視頻監(jiān)控系統(tǒng)的設(shè)計[J]. 測控技術(shù), 2015, 34(3):109-112.
[7] 董雷剛, 崔曉微, 張丹,等. 基于ARM+LINUX的視頻監(jiān)控系統(tǒng)的設(shè)計[J]. 計算機光盤軟件與應(yīng)用, 2014(3):268-268.