柳愛珍 汪小旵
(南京農(nóng)業(yè)大學(xué)工學(xué)院,江蘇省智能化農(nóng)業(yè)裝備重點(diǎn)實(shí)驗(yàn)室,江蘇南京 210031)
在溫室的測控系統(tǒng)中,涉及核心控制器、測控技術(shù)和決策支持系統(tǒng)的研究,從最初的有線連接發(fā)展到現(xiàn)在普遍使用無線傳感網(wǎng)絡(luò)進(jìn)行組網(wǎng)連接,無線傳感網(wǎng)絡(luò)又涉及GPRS(劉會忠 等,2010)、WIFI(曾歡和劉毅,2008;馬增煒 等,2011)、藍(lán)牙技術(shù)(LI & LIU,2006)以及 ZigBee(BAO,2008)技術(shù)等;核心控制器囊括了單片機(jī)(戴勇 等,2009),工控機(jī)(金鈺,2000)、PLC(唐立偉和劉理云,2009)、DSP(吳衛(wèi)明 等,2007)、ARM(王石磊 等,2008)等;決策支持系統(tǒng)涵蓋了經(jīng)典控制理論中的 PID控制(李紀(jì)文 等,2009),智能控制理論中的模糊控制(邱小花和王民,2008;倪軍 等,2009)和神經(jīng)網(wǎng)絡(luò)控制(彭捍東和張敏,2004)等。
但上面提及的核心控制器都是基于軟件的,諸如基于單片機(jī)的測控系統(tǒng),單片機(jī)時鐘頻率較低,而且軟件運(yùn)行時間在整個采樣周期中也占很大比例(趙泓揚(yáng),2009)。因此科技工作者開始將眼光從基于軟件的溫室系統(tǒng)研究轉(zhuǎn)移到基于硬件的溫室系統(tǒng)研究上來。筆者提出了一種基于FPGA(Field Programmable Gate Array)的溫室測控系統(tǒng)的研究方法,F(xiàn)PGA即現(xiàn)場可編程門陣列,是一種基于硬件電路的設(shè)計(jì)方法,此種方法開發(fā)周期短,集成度高,功耗低,工作效率高,設(shè)計(jì)費(fèi)用低,編程配置靈活;另外它可以在 FPGA內(nèi)部進(jìn)行采集控制、緩沖、處理、傳輸控制等,這些都是由 FPGA邏輯實(shí)現(xiàn),無需添加額外的硬件資源,所以在溫室中進(jìn)行使用、維修或是升級的時候只需更改其硬件資源,簡單方便,減少了成本,故可以廣泛應(yīng)用。
FPGA的一個主要設(shè)計(jì)技巧就是模塊化設(shè)計(jì),它能夠使一個大型設(shè)計(jì)分工協(xié)作,仿真測試更加容易,使代碼維護(hù)或升級更加便利(吳厚航,2010)。
根據(jù)這一設(shè)計(jì)技巧,將整個系統(tǒng)分為以下模塊:輸入輸出模塊、異步串行通信模塊、人機(jī)交互模塊以及其他模塊,具體測控系統(tǒng)框圖如圖1所示。
輸入模塊由傳感器和A/D調(diào)理電路組成,輸出模塊即為繼電器接觸控制電路和溫室內(nèi)執(zhí)行機(jī)構(gòu)。人機(jī)界面使用LCD液晶實(shí)時顯示溫室內(nèi)環(huán)境信息。FPGA與上位機(jī)使用串口的無線模塊實(shí)現(xiàn)連接,使系統(tǒng)更加簡潔。因?yàn)镕PGA是基于RAM的,掉電信息丟失,所以設(shè)計(jì)添加SDRAM模塊,如此上電以后,信息可以自行配置。另外,數(shù)據(jù)從 FPGA緩存中傳輸給上位機(jī)進(jìn)行存儲的時候,利用FIFO先入先出的特性,有序、高效地進(jìn)行數(shù)據(jù)的傳輸。
1.2.1 數(shù)據(jù)采集顯示部分 在前面介紹的測控結(jié)構(gòu)中,輸入模塊即為數(shù)據(jù)的采集模塊,其中包括傳感器模塊、調(diào)理轉(zhuǎn)換模塊、主控模塊和顯示模塊。其結(jié)構(gòu)框圖如圖2所示。
傳感器中包括溫濕度傳感器和光照度傳感器,溫濕度傳感器為 DHT21。調(diào)理電路可以對采集到的波形進(jìn)行濾波放大。A/D轉(zhuǎn)換芯片采用ADC0809芯片,將采集到的模擬信號轉(zhuǎn)換為數(shù)字信號。FPGA主控芯片采用Altera公司的CycloneⅡ系列的EP2C8Q208C8芯片。此芯片是整個系統(tǒng)的核心,它采用PQFP的封裝形式,有208個引腳。FPGA主控模塊與上位機(jī)使用串口的無線模塊實(shí)現(xiàn)通信。人機(jī)界面即為LCD圖形液晶顯示模塊和蜂鳴器超限報警模塊。FPGA開發(fā)板上有對應(yīng)于LCD的接口,只需將其接入到FPGA開發(fā)板上,LCD顯示模塊采用128×64的圖形液晶。

圖1 測控系統(tǒng)結(jié)構(gòu)

圖2 數(shù)據(jù)采集顯示系統(tǒng)結(jié)構(gòu)
在此款FPGA芯片上,共預(yù)留了56個I/O口供用戶自己定義,DHT21有3個引腳,一個電源引腳(引腳1),一個為數(shù)據(jù)輸入和輸出引腳(引腳2),最后一個為接地引腳(引腳3)。引腳2為溫濕度采集信號的輸出腳,通過拉高或拉低此引腳的電平對芯片發(fā)送指令。在程序設(shè)計(jì)中,先是拉高引腳2(此為空閑狀態(tài)),通訊開始時,先將此引腳拉低500 μs,繼而拉高20~40 μs開始檢測DHT21的響應(yīng)信號,這部分操作要求引腳2為輸入引腳。在DHT21的響應(yīng)中,此引腳又變?yōu)檩敵鲆_,因而在程序設(shè)計(jì)中要將此引腳設(shè)計(jì)為inout類型。此部分的接口定義如下。
module acquire_drive
(
input clk,
input rst_n,
inout one_wire, //One-Wire總線
output [15:0] rh_data_out, //輸出濕度值,高四位為零
output [15:0] t_data_out, // 輸出溫度值,其最高四位為其符號位
output [15:0] RH_data,
output [15:0] temp_data, //此兩個輸出,是溫濕度的十倍值
output [1:0] led,
output enout //成功采集到信號的標(biāo)志位
);
Clk和rst_n為時鐘信號和異步復(fù)位信號,因?yàn)橄到y(tǒng)頻率高達(dá)50 MHz,所以需要使用PLL(Phase-Locked Loop),即鎖相環(huán)對其進(jìn)行分頻;one_wire連接到引腳2的溫室數(shù)據(jù)采集端,為雙向 I/O口,在使用 verilog編程時定義為wire類型,通過ctrl位使能信號,ctrl為高電平時為輸入,低電平時為輸出,Verilog HDL的語言描述為assign one_wire=ctrl?1'd0∶1'dz。此模塊經(jīng)過QuartusⅡ軟件編譯后,生成的RTL(Register-Transfer-Level)圖如圖3所示。

圖3 數(shù)據(jù)采集模塊的RTL圖
另外,由于傳感器的工作電壓是5 V,而FPGA的引腳的正常工作電壓是3.3 V,所以需要使用升壓芯片將此電壓升至5 V。在本設(shè)計(jì)中使用的升壓芯片是SYS1.2,它可將1.2~5.0 V的電壓升至3.3 V或是5.0 V,由使能端控制其具體輸出。
蜂鳴器報警模塊是為防止溫室內(nèi)溫度過高或是過低,并且執(zhí)行機(jī)構(gòu)發(fā)生故障中斷運(yùn)行時發(fā)出警報。查閱資料后將溫度的上下限分別設(shè)為40 ℃和5 ℃(王麗艷 等,2008)。其接口定義如下。
module alert_drive
(
Input clk,
Input rst_n,
Input enout,
Input〔15:0〕 temp_data,
output fm
);
Temp_data為數(shù)據(jù)采集模塊所獲得的溫度值,在頂層模塊中,將其定義為 wire類型,就可以在任意底層模塊中被調(diào)用。Fm為蜂鳴器輸出,它在時鐘復(fù)位后一直保持高電平,當(dāng)上述限制條件滿足時,就被拉低,發(fā)出報警聲。
數(shù)據(jù)采集之后存儲在FPGA芯片的緩存模塊SDRAM中,進(jìn)行到這一步,已經(jīng)完成了數(shù)據(jù)的采集任務(wù),下一步就是將數(shù)據(jù)送至LCD和上位機(jī)顯示。LCD選用128×64的圖形液晶,同樣,它也是依靠 FPGA實(shí)現(xiàn)其全部邏輯,包括初始化、寫指令和寫數(shù)據(jù)等,使用有限狀態(tài)機(jī)進(jìn)行設(shè)計(jì)。其結(jié)構(gòu)框圖如圖4所示。

圖4 LCD控制邏輯
其步驟如下:使RW=0,始終為寫操作,因?yàn)?LCD的指令寄存器和數(shù)據(jù)寄存器是復(fù)用的,所以令RS為零,為寫指令操作,對液晶屏的片選信號、狀態(tài)信號、數(shù)據(jù)信號和使能信號進(jìn)行初始化;之后將RS置為1,進(jìn)入寫數(shù)據(jù)操作,將要顯示的字符送至 LCD顯示。轉(zhuǎn)換控制即為FPGA主控芯片。時鐘驅(qū)動為FPGA的分頻信號。其接口定義如下。
module lcd12864_drive
(
Input clk,
Input rst_n,
input〔23:0〕 t_val,
input〔23:0〕 rh_val,
output lcd_rw,
output lcd_en,
output reg lcd_rs,
output reg〔7:0〕 lcd_data
);
128×64 LCD液晶顯示器可以通過選擇設(shè)置頁地址顯示8頁的內(nèi)容,所以,系統(tǒng)上電以后首先顯示的是歡迎界面,開始采集后,就進(jìn)行溫室數(shù)據(jù)的實(shí)時顯示。設(shè)計(jì)時使用 FPGA自帶的IP核——ROM模塊。使用畫圖軟件設(shè)計(jì)出128×64 bit的黑白圖片,借助字模提取軟件提取字模,通過KEIL軟件生成.HEX文件,再將其添加到此模塊的目錄文件下,程序中調(diào)用此ROM模塊就可以顯示設(shè)計(jì)的界面了。在顯示中不需要變化的部分都是通過此方法實(shí)現(xiàn)的,需要刷新顯示的部分在頂層模塊中給出。
LCD實(shí)現(xiàn)的是數(shù)據(jù)的實(shí)時顯示,液晶屏上會顯示當(dāng)前的時刻以及采集到的環(huán)境因子信息,要實(shí)現(xiàn)數(shù)據(jù)的存儲,僅依靠 FPGA的緩存是遠(yuǎn)遠(yuǎn)不夠的,所以需要不定期地將采集到的數(shù)據(jù)傳輸至上位機(jī)進(jìn)行存儲,上位機(jī)也可以編寫監(jiān)控界面,實(shí)現(xiàn)溫室的遠(yuǎn)程監(jiān)控。圖5為LCD的溫濕度顯示。
上位機(jī)界面采用VC++編程實(shí)現(xiàn),使用串口進(jìn)行數(shù)據(jù)傳輸,其RTL級圖如圖6所示。界面上不僅實(shí)時顯示環(huán)境因子的值,還可對往期信息進(jìn)行查詢。另外,監(jiān)控界面上還有對溫室執(zhí)行機(jī)構(gòu)的控制按鈕,最后實(shí)現(xiàn)的效果就是在監(jiān)控室內(nèi)也可以對溫室進(jìn)行遠(yuǎn)程控制。
1.2.2 溫室控制部分 在溫室控制方面,本系統(tǒng)使用的是分段式控制,即當(dāng)溫室內(nèi)的溫度或是濕度達(dá)到某一設(shè)定范圍時,就控制某一個或是兩個執(zhí)行機(jī)構(gòu)進(jìn)行動作。另外借助于串口繼電器的無線模塊設(shè)計(jì),以實(shí)現(xiàn)無線控制。
在上位機(jī)監(jiān)控界面上,除了顯示有溫室內(nèi)采集的環(huán)境因子信息,還有當(dāng)前對應(yīng)各個執(zhí)行機(jī)構(gòu)的開關(guān)按鈕以及其當(dāng)下處于的狀態(tài)。對于控制部分最后要實(shí)現(xiàn)的效果就是:(1)自動控制,即系統(tǒng)將采集到的溫室內(nèi)環(huán)境因子的信息,與設(shè)定的分段式控制的溫濕度等信息進(jìn)行對比,達(dá)到其中的任一范圍時就自動控制溫室中的某一個或是幾個執(zhí)行機(jī)構(gòu)進(jìn)行動作。(2)手動控制,即在監(jiān)控室內(nèi),也可人為地通過監(jiān)控界面上的按鈕,控制溫室內(nèi)的執(zhí)行機(jī)構(gòu)進(jìn)行動作。在設(shè)計(jì)中,為溫室安裝 CCD攝像頭,可以在觀察作物長勢的同時觀察執(zhí)行機(jī)構(gòu)是否運(yùn)行良好。

圖5 LCD顯示溫濕度

圖6 串口傳輸模塊RTL級圖
在系統(tǒng)設(shè)計(jì)完成之后,將此裝置安放在南京農(nóng)業(yè)大學(xué)工學(xué)院實(shí)驗(yàn)樓樓頂?shù)臏厥依镞M(jìn)行實(shí)證試驗(yàn),該溫室長16 m,寬8 m。試驗(yàn)分兩個步驟進(jìn)行,首先是采集顯示部分的試驗(yàn),將設(shè)計(jì)好的采集裝置置于溫室中,可手動設(shè)定其采集周期,查看在上位機(jī)和LCD上是否能按要求進(jìn)行顯示,當(dāng)然這些試驗(yàn)的前提都要在仿真編譯軟件上,將其進(jìn)行仿真編譯通過以后才進(jìn)行的,出現(xiàn)問題以后再逐個解決。第二部分是控制部分的試驗(yàn),開始使用有線控制,因?yàn)闊o線控制容易受外部信號的干擾,可能會出現(xiàn)工作不穩(wěn)定的狀態(tài)。在確保有線控制能取得預(yù)期控制效果的前提下,將有線控制部分,用串口的無線收發(fā)模塊代替,再進(jìn)行調(diào)試,直到取得預(yù)想的控制效果。圖7為2012年6月25日將此系統(tǒng)應(yīng)用在溫室中控制后的溫濕度曲線圖。
圖7中溫濕度均為實(shí)際值的10倍。由圖7可知,在7:00以后,太陽輻射逐漸增強(qiáng),溫室中的溫度開始緩慢上升,伴隨著濕度緩慢下降。在12:00的時候,首次達(dá)到控制的設(shè)定值,所以溫室打開噴淋進(jìn)行降溫,同時溫室濕度上升;同理,在14:00、15:00和臨近17:00的時候,分別進(jìn)行了3次噴淋降溫,從圖7上可以看出,降溫效果明顯,達(dá)到了控制的要求。

圖7 溫濕度控制曲線
不同于眾多使用軟件實(shí)現(xiàn)溫室測控的設(shè)計(jì),本系統(tǒng)使用了基于 FPGA的溫室測控系統(tǒng)的設(shè)計(jì)。使用EP2C8Q208C8芯片作為主控芯片,借助ADC0809實(shí)現(xiàn)數(shù)據(jù)的數(shù)模轉(zhuǎn)換,同時在LCD圖形液晶上顯示溫室內(nèi)實(shí)時的環(huán)境因子信息。在上位機(jī)上除顯示有環(huán)境因子信息外,還設(shè)計(jì)了主控界面,可以實(shí)現(xiàn)對溫室的手動控制。此種基于硬件電路的設(shè)計(jì)方法時鐘頻率高,響應(yīng)及時,能夠完成對溫室內(nèi)溫濕度的采集、顯示,以及對溫室的控制。此外,這套系統(tǒng)價格并不昂貴,硬件成本在2 000元左右,適用于一般的中小型溫室。
戴勇,周建平,梁楚華.2009.基于AT89S52單片機(jī)的多功能智能溫室測控系統(tǒng).農(nóng)機(jī)化研究,(5):135-139.
金鈺.2000.工業(yè)控制計(jì)算機(jī)在自動化溫室控制中的應(yīng)用.工業(yè)控制計(jì)算機(jī),13(1):16-18.
李紀(jì)文,駱德淵,劉榮.2009.?dāng)?shù)字PID在溫室環(huán)境自動控制中的應(yīng)用.農(nóng)機(jī)化研究,(1):205-207.
劉會忠,吳修文,馮曉霞,魏富奎.2010.GPRS技術(shù)在溫室大棚環(huán)境監(jiān)控中的應(yīng)用.農(nóng)業(yè)裝備與車輛工程,(4):52-54.
馬增煒,馬錦儒,李亞敏.2011.基于WIFI的智能溫室監(jiān)控系統(tǒng)設(shè)計(jì).農(nóng)機(jī)化研究,(2):154-158.
倪軍,毛罕平,程秀花.2009.基于FPGA的聯(lián)合收獲機(jī)脫離滾筒模糊控制系統(tǒng).農(nóng)業(yè)機(jī)械學(xué)報,40(7):83-87.
彭捍東,張敏.2004.溫室環(huán)境神經(jīng)網(wǎng)絡(luò)建模與自適應(yīng)模糊控制算法研究.曲阜師范大學(xué)學(xué)報,30(3):11-13.
邱小花,王民.2008.基于FPGA的糧食干燥過程模糊預(yù)測控制系統(tǒng).農(nóng)機(jī)化研究,(4):114-116.
唐立偉,劉理云.2009.基于PLC的智能溫室綜合控制系統(tǒng)的研發(fā).自動化技術(shù)與應(yīng)用,(7):106-108.
吳厚航.2010.深入淺出玩轉(zhuǎn)FPGA.北京:北京航空航天大學(xué)出版社:34.
吳衛(wèi)明,黃曉鵬,萬芳新.2007.基于DSP的模擬溫室環(huán)境監(jiān)控系統(tǒng).滁州學(xué)院學(xué)報,(3):51-54.
王麗艷,邱立春,郭樹國.2008.溫室黃瓜經(jīng)濟(jì)最優(yōu)目標(biāo)的試驗(yàn)研究.北方園藝,(11):75-76.
王石磊,郭艷玲,付志剛.2008.基于ARM的溫室環(huán)境控制系統(tǒng)研究.林業(yè)機(jī)械與木工設(shè)備,(36):19-21.
趙泓揚(yáng).2009.基于FPGA的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì).常州工學(xué)院學(xué)報,22(1/2):34-36.
曾歡,劉毅.2008.嵌入式WiFi技術(shù)在溫室環(huán)境監(jiān)測系統(tǒng)中的應(yīng)用.林業(yè)機(jī)械與木工設(shè)備,36(2):49-53.
BAO MingJun.2008.Research on the application of ZigBee technology in monitoring and control system of greenhouse.Journal of Agricultural Mechanization Research,2:184-187.
LI Li,LIU Gang.2006.Design of greenhouse environment monitoring and controlling system based on bluetooth technology.Transaction of the Chinese Society for Agricultural Machinery,37(10):97-100.