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