文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2015)06-0139-04
0 引言
雖然我國的信息化農(nóng)業(yè)較美國等發(fā)達(dá)國家起步晚,但現(xiàn)階段我國正在大力發(fā)展農(nóng)業(yè)的信息化,、科技數(shù)字化,。政府對數(shù)字農(nóng)業(yè)發(fā)展的大力支持和鼓勵(lì),并在黑龍江等省市進(jìn)行數(shù)字農(nóng)業(yè)實(shí)施[1],,使我國在這些省市區(qū)的信息網(wǎng)絡(luò)基本完成建設(shè)并且逐步向基層發(fā)展,,重大科技專項(xiàng)領(lǐng)域也取得了非常可喜的成果,。
隨著社會(huì)的進(jìn)步,、科學(xué)技術(shù)的飛速發(fā)展、農(nóng)村電視網(wǎng)絡(luò)的普及以及城市先進(jìn)思想的影響,,使現(xiàn)在農(nóng)民思想進(jìn)步了很多,。根據(jù)國家出臺的相應(yīng)的政策措施,農(nóng)村土地將會(huì)最終趨于集中化,、規(guī)?;又r(nóng)民創(chuàng)業(yè),、就業(yè)的增加,,將來農(nóng)村的勞動(dòng)力資源就會(huì)偏向不足。而且農(nóng)民因?yàn)榭梢岳脟业男☆~貸款政策,,所以資金比較充足,。因此溫室就急需要一些科技設(shè)備來對農(nóng)作物生長環(huán)境進(jìn)行監(jiān)測[2-3]。現(xiàn)在全球科學(xué)技術(shù)飛速發(fā)展,,數(shù)字化的發(fā)展也相當(dāng)迅速,,并且被應(yīng)用到許多的行業(yè)中。加之全球數(shù)字農(nóng)業(yè)的快速發(fā)展,,全球農(nóng)業(yè)走向規(guī)模化,、專業(yè)化是必然趨勢,,而且我國政府現(xiàn)在出臺的政策也是讓我國的農(nóng)業(yè)與國際接軌,使現(xiàn)在農(nóng)業(yè)自動(dòng)化逐漸地深入,,農(nóng)業(yè)現(xiàn)在也在逐漸數(shù)字化,,必然會(huì)使視頻圖像采集逐漸被應(yīng)用到農(nóng)業(yè)中,這樣可以準(zhǔn)確獲得農(nóng)作物的實(shí)時(shí)動(dòng)態(tài)信息,,進(jìn)而能更好,、更方便地管理農(nóng)業(yè)生產(chǎn),,用最少的投資來獲取最高的收益。
本系統(tǒng)以云計(jì)算[4-5]框架為開發(fā)平臺,,利用無線通信網(wǎng)絡(luò)的移動(dòng)終端設(shè)備進(jìn)行數(shù)據(jù)的傳輸,,實(shí)現(xiàn)了為移動(dòng)用戶終端設(shè)備提供遠(yuǎn)程監(jiān)控的設(shè)計(jì)。此設(shè)計(jì)可以對溫室的環(huán)境進(jìn)行監(jiān)測,,提高工作效率的同時(shí)也增加了用戶對終端設(shè)備使用的靈活性,。
1 設(shè)計(jì)原理及內(nèi)容
1.1 設(shè)計(jì)原理
基于云計(jì)算的溫室視頻采集模塊設(shè)計(jì)的硬件部分是由主控芯片、外擴(kuò)兩部分構(gòu)成的,,其中主控芯片是三星公司的S3C2440芯片,,外擴(kuò)部分包括:LCD顯示部分、USB控制器,、攝像頭,、網(wǎng)絡(luò)傳輸?shù)取1驹O(shè)計(jì)的相關(guān)軟件部分有:Linux系統(tǒng)的搭建,、USB攝像頭的驅(qū)動(dòng)程序,、視頻采集程序、LCD實(shí)時(shí)顯示程序,、網(wǎng)絡(luò)傳輸程序等,。總體結(jié)構(gòu)如圖1所示,。
軟件部分主要實(shí)現(xiàn)將前端采集的數(shù)據(jù)存儲在分布式文件系統(tǒng)(HDFS)中,,分布式文件系統(tǒng)是基于云計(jì)算框架開發(fā)的。由于此平臺是分布的,,多臺計(jì)算機(jī)可并行計(jì)算,,提高運(yùn)算效率。
1.2 主要研究的內(nèi)容
通過對黑龍江省齊齊哈爾市周邊的溫室大棚進(jìn)行詳細(xì)的調(diào)查和理論分析,,得到溫室視頻采集模塊的具體要求如下:
(1)采集到的農(nóng)作物的視頻圖像清晰度必須要保證能夠使操作人員從中很迅捷地獲得植物的自身生長發(fā)育以及病蟲害情況,。
(2)采集的視頻圖像信息不僅要有農(nóng)作物的近景,也必須有較遠(yuǎn)的圖像信息,,并且是可以進(jìn)行操控的,。
(3)要能夠把采集到的視頻圖像信息以非常高的質(zhì)量傳輸?shù)娇刂浦行模M(jìn)而保證對農(nóng)作物進(jìn)行實(shí)時(shí)有效的監(jiān)測,。
(4)采集模塊不需要進(jìn)行安裝與維護(hù),,并且體積要盡量小,能夠方便在溫室進(jìn)行安裝和轉(zhuǎn)移,。
(5)要求采集模塊有很好的擴(kuò)展性,,采集的性能非常穩(wěn)定,還要功耗較低,,性價(jià)比高,。
(6)由于采集到的視頻信息需要長時(shí)間保存,,有助于對農(nóng)作物的分析,就要求很大的存儲空間與計(jì)算能力,。
2 總體設(shè)計(jì)
2.1 溫室視頻采集模塊硬件設(shè)計(jì)
選用FL2440開發(fā)板,,可以提供豐富的USB硬件接口。主板采用兩層的PCB板設(shè)計(jì),,有兩個(gè)串口,、一個(gè)采用DM900AE的100M網(wǎng)口、4個(gè)USB接口,、一個(gè)SD卡接口,、有擴(kuò)展LCD或者觸摸屏的接口、一個(gè)CMOS攝像頭接口等,,可以滿足本實(shí)驗(yàn)所需的所有接口,。因此本次研究的硬件系統(tǒng)非常適合采用FL2440開發(fā)板。
主控芯片主要采用S3C2440微處理器芯片,。它的內(nèi)部嵌有先進(jìn)微控制器總線架構(gòu),。S3C2440微處理器支持的最大尋址空間是4 GB,它的數(shù)據(jù)存儲器和程序存儲器在內(nèi)存空間中的總線接口不同,,但是編址采用的是統(tǒng)一的,。在本次研究中,S3C2440微處理器地址空間是1 GB,,而且該地址空間被分成8份,,每一份的容量是128 MB。它的存儲器可以被認(rèn)為是由零地址為開始的字節(jié)的線性組合,,存儲器存儲字?jǐn)?shù)據(jù)的方式有大端和小端的兩種,,這兩者的具體數(shù)據(jù)存儲如圖2和圖3所示。S3C2440微處理器有7種處理器工作模式,,并且每種模式下的寄存數(shù)組和訪問權(quán)限都不一樣,。
2.2 溫室視頻采集模塊軟件設(shè)計(jì)
從軟件的方面劃分嵌入式操作系統(tǒng),可以分成三部分:一個(gè)是引導(dǎo)加載程序,,實(shí)質(zhì)是一段很小的程序,;第二個(gè)在本大田視頻采集模塊中所使用的是Linux內(nèi)核;在這兩者的后面是涵蓋有系統(tǒng)命令和應(yīng)用程序的文件系統(tǒng),。嵌入式中儲存結(jié)構(gòu)圖如圖4所示,,包含有引導(dǎo)加載程序、內(nèi)核啟動(dòng)參數(shù),、內(nèi)核映像以及文件系統(tǒng)。
2.3 內(nèi)核剪裁,、制作和移植
Linux內(nèi)核有五個(gè)基本元素,,它們的名稱及相互關(guān)系如圖5所示,。因?yàn)閮?nèi)核是為軟硬件提供服務(wù)的,所以對于不同的硬件平臺就需要使用不同的內(nèi)核,。因此,,當(dāng)要把內(nèi)核移植到一個(gè)嵌入式平臺時(shí),就需要對要進(jìn)行移植的內(nèi)核進(jìn)行編譯,。
2.4 系統(tǒng)文件的制作和移植
最常見的儲存器件有SDRAM,、DRAM和ROM(常用Flash存儲器)。而日常學(xué)習(xí)工作中常見的基于存儲設(shè)備的根文件系統(tǒng)有YAFFS,、YAFFS2等,。本設(shè)計(jì)的硬件系統(tǒng)采用的儲存器件是NAND閃存,因此本系統(tǒng)的文件系統(tǒng)采用的是基于NAND閃存的YAFFS文件系統(tǒng),。
設(shè)計(jì)系統(tǒng)所運(yùn)行的文件系統(tǒng)為:管理層所進(jìn)入的入口,、系統(tǒng)內(nèi)YAFFS內(nèi)部自身運(yùn)行的層面以及系統(tǒng)進(jìn)入NAND閃存的入口層。這樣用戶在做它與系統(tǒng)的入口的相關(guān)程序時(shí)就非常簡單了,,能夠更加快速便捷地把自己設(shè)計(jì)的程序模塊集成到所使用的系統(tǒng)里,。綜合上面的比較,YAFFS的運(yùn)行速率更迅速,,并且內(nèi)存空間使用小,。
2.5 攝像頭驅(qū)動(dòng)程序設(shè)計(jì)
USB攝像頭移除函數(shù)在該驅(qū)動(dòng)程序中的名字是sp_discon,它的參數(shù)有u_dev *dev和 *ptr,,該函數(shù)的作用是注銷USB攝像頭的video設(shè)備,、釋放端口、傳輸U(kuò)RB包,、釋放內(nèi)存空間等工作,。該驅(qū)動(dòng)模塊的操作函數(shù)是file_opt。這個(gè)驅(qū)動(dòng)程序完成設(shè)備的關(guān)鍵系統(tǒng)調(diào)用,,它所依據(jù)的是V4L協(xié)議,。因?yàn)檫@是攝像頭驅(qū)動(dòng)程序,它的主要功能就是完成數(shù)據(jù)的采集和傳輸功能,,不需要向攝像頭寫數(shù)據(jù),,所以不需要有寫操作,因此系統(tǒng)也不會(huì)調(diào)用write函數(shù),。USB攝像頭驅(qū)動(dòng)的具體代碼如下所示:
PDEBUG(S,"iface alt size :%d %d %d",spca50px->iface ,alt, size);
if(usb_set_interface(spca50px->dev, spca50x->iface,alt)<0){
err("Set packet size:set interface error");
return -EBUSY;
}
ep=SPCA50X_ENDPOINT_ADDRESS -1;
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,3)
intf=usb_ifnum_to_if(dev,spca50x->iface);
if(intf){
interface=usb_altnum_to_altsetting(intf,alt);
}else{
PDEBUG(0,"intf not found");
return -ENXT0;
}
整個(gè)溫室視頻采集模塊最重要的部分就是視頻圖像的采集部分,,通常視頻數(shù)據(jù)的采集方式有內(nèi)存映射式和直接讀取式兩種。本文采用的是內(nèi)存映射方式,,它是要經(jīng)過執(zhí)行mmap函數(shù)來實(shí)現(xiàn)內(nèi)存映射的,。mmap系統(tǒng)調(diào)用的實(shí)質(zhì)就是讓兩個(gè)進(jìn)程映到一個(gè)相同的普通文件從而來達(dá)到內(nèi)存共享的目的。這樣進(jìn)程對文件的操作就如同操作內(nèi)存一樣了。
3 溫室視頻采集模塊的安裝與調(diào)試
3.1 視頻圖像編碼
因?yàn)橛肬SB攝像頭所采集到的原始視頻圖像的信息特別大,,并且現(xiàn)在所用網(wǎng)絡(luò)的傳輸量很有限,;所以要對采集到的原始視頻圖像先進(jìn)行壓縮,然后再進(jìn)行傳輸,。不同的視頻采集設(shè)備所采集到的視頻圖像的格式是不同的,,在該系統(tǒng)中使用的ZC301的USB攝像頭采集的格式是RGB,還有YUV,、JPG等,。對采集到的原始視頻圖像一般要進(jìn)行JPEG編解碼,編碼如圖6所示,。
3.2 視頻圖像編JPEG解碼
本系統(tǒng)使用的USB攝像頭的芯片是ZC301,,它內(nèi)置的DSP能夠進(jìn)行快速的壓縮編碼。所以如果要進(jìn)行視頻圖像顯示,,就必須對USB攝像頭傳輸回來的數(shù)據(jù)進(jìn)行解碼,,具體的解碼流程如圖7所示。
3.3 圖像數(shù)據(jù)的網(wǎng)絡(luò)傳輸
本文使用的是socket中比較常用的流式套接字類型,。使用流式套接字的TCP服務(wù)器端通信流程是:最開始就要用socket函數(shù)來初始化和創(chuàng)建流式套接字,,接著通過bind函數(shù)來把端口號綁定,再通過listen函數(shù)來等候客戶端所發(fā)送的連接請求,,然后系統(tǒng)就會(huì)通過accept函數(shù)來完成服務(wù)器與客戶端的連接,,這樣就把一個(gè)新的通信進(jìn)程創(chuàng)建完成了。相比較下,,客戶端要進(jìn)行的編程就容易多了,,只要如服務(wù)器端先初始化和創(chuàng)建流式套接字,再通過使用connect函數(shù)來發(fā)送請求以及創(chuàng)建與TCP服務(wù)器的連接,。這一步完成后,,就能夠進(jìn)行兩者之間的通訊了。
3.4 云計(jì)算集群的搭建及數(shù)據(jù)查詢
利用云計(jì)算集群的優(yōu)勢,,首先搭建集群由一臺Master節(jié)點(diǎn)分發(fā)任務(wù)線程,,由若干個(gè)Slave負(fù)責(zé)任務(wù)的執(zhí)行。數(shù)據(jù)查詢系統(tǒng)框架如圖8所示,。
3.5 Web服務(wù)器端顯示
基于云計(jì)算的溫室大棚視頻監(jiān)控系統(tǒng)中,,前端采集到的視頻信息通過云計(jì)算架構(gòu)存儲在分布式文件系統(tǒng)中,查看數(shù)據(jù)信息時(shí),,由于是多臺服務(wù)器分布式并行計(jì)算,,因此計(jì)算效率明顯提高。圖9為視頻采集模塊創(chuàng)建連接端口命令,,通過二次模塊調(diào)試可以看出,,溫室視頻采集模塊對農(nóng)作物視頻采集穩(wěn)定,,觸屏的視頻圖像顯示非常清晰,并且以非常高的質(zhì)量把采集到的視頻圖像傳輸?shù)搅薖C上,,在其上顯示的視頻圖像很清晰,、連貫,即能夠?qū)r(nóng)作物進(jìn)行非常有效的實(shí)時(shí)監(jiān)測,,使操作人員能夠從其中迅速獲得所觀測農(nóng)作物的生長發(fā)育情況和是否有病蟲害等信息。而且對于溫室的農(nóng)作物,,視頻信息采集受陽光的影響很小,,本次實(shí)驗(yàn)非常的成功。
4 結(jié)論
本文采用先進(jìn)的云計(jì)算技術(shù)應(yīng)用在溫室大棚視頻監(jiān)控系統(tǒng)中,,不但可以長期存儲海量的視頻數(shù)據(jù),,也可以通過服務(wù)器集群并行計(jì)算的方式快速地查找相關(guān)視頻信息,有利于農(nóng)戶實(shí)時(shí)觀察農(nóng)作物的生長狀況,,增加經(jīng)濟(jì)效益,,使農(nóng)業(yè)生產(chǎn)達(dá)到信息化。
參考文獻(xiàn)
[1] 張喜海,,于嘯,,吳亞春,等.數(shù)字農(nóng)業(yè)教育與學(xué)生創(chuàng)新意識培養(yǎng)[J].計(jì)算機(jī)教育,,2010(8):11-13.
[2] 郭文川,,程寒杰,李瑞明,,等.基于無線傳感器網(wǎng)絡(luò)的溫室環(huán)境信息監(jiān)測系統(tǒng)[J].農(nóng)業(yè)機(jī)械學(xué)報(bào),,2010,41(7):181-185.
[3] 李莉,,李海霞,,劉卉,等.基于無線傳感器網(wǎng)絡(luò)的溫室環(huán)境監(jiān)測系統(tǒng)[J].農(nóng)業(yè)機(jī)械學(xué)報(bào),,2009,,40(z1):228-231.
[4] 國際電聯(lián)電信標(biāo)準(zhǔn)化顧問組,張進(jìn)京.智能網(wǎng)格與云計(jì)算發(fā)展問題討論[J].中國信息界,,2010(5):69-70.
[5] 劉洋,,張鋼,韓璐,,等.基于物聯(lián)網(wǎng)與云計(jì)算服務(wù)的農(nóng)業(yè)溫室智能化平臺研究與應(yīng)用[J].計(jì)算機(jī)應(yīng)用研究,,2013,30(11):3331-3335.