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