《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 溫室遠(yuǎn)程多參數(shù)控制系統(tǒng)的國(guó)產(chǎn)化研究
溫室遠(yuǎn)程多參數(shù)控制系統(tǒng)的國(guó)產(chǎn)化研究
來(lái)源:微型機(jī)與應(yīng)用2011年第11期
施智雄
(西昌學(xué)院 汽車(chē)與電子信息工程學(xué)院,四川 西昌 615000)
摘要: 基于國(guó)產(chǎn)STC12C5A62S2的溫室多參數(shù)控制系統(tǒng)的應(yīng)用技術(shù)(包括軟硬件設(shè)計(jì)),該系統(tǒng)通過(guò)RS-485總線(xiàn)與PC上位機(jī)通信,實(shí)現(xiàn)了低成本、多參數(shù)、遠(yuǎn)距離、多節(jié)點(diǎn)數(shù)據(jù)采集與控制的全部國(guó)產(chǎn)化。
Abstract:
Key words :

摘  要: 基于國(guó)產(chǎn)STC12C5A62S2的溫室多參數(shù)控制系統(tǒng)的應(yīng)用技術(shù)(包括軟硬件設(shè)計(jì)),該系統(tǒng)通過(guò)RS-485總線(xiàn)與PC上位機(jī)通信,實(shí)現(xiàn)了低成本、多參數(shù)、遠(yuǎn)距離、多節(jié)點(diǎn)數(shù)據(jù)采集與控制的全部國(guó)產(chǎn)化。
關(guān)鍵詞: 低成本;多參數(shù);STC12C5A62S2;遠(yuǎn)程控制

 現(xiàn)代溫室系統(tǒng)通常需要大量的控制設(shè)備。但以往的溫室控制系統(tǒng)大都采用進(jìn)口PLC單獨(dú)控制系統(tǒng)及大量的開(kāi)關(guān)控制和電閘控制,還需要工作人員在現(xiàn)場(chǎng)操作,或向控制室拉接較長(zhǎng)的220 V電線(xiàn),實(shí)時(shí)性、安全性都較差。如果采用具有采集功能的PLC,成本昂貴,不適應(yīng)我國(guó)的國(guó)情[1]。為了測(cè)試國(guó)產(chǎn)單片機(jī)器件在現(xiàn)代農(nóng)業(yè)裝備中的應(yīng)用穩(wěn)定性,實(shí)現(xiàn)工作人員在控制室即對(duì)分散在各個(gè)溫室的遠(yuǎn)端設(shè)備進(jìn)行實(shí)時(shí)有效地狀態(tài)控制及狀態(tài)查詢(xún),本文研發(fā)了基于單片機(jī)的遠(yuǎn)程溫室多參數(shù)采集及控制系統(tǒng),并全部采用國(guó)產(chǎn)器件。經(jīng)過(guò)一年的運(yùn)行證明,該系統(tǒng)價(jià)低、可靠,完全可以應(yīng)用于國(guó)產(chǎn)現(xiàn)代農(nóng)業(yè)裝備。
 該系統(tǒng)由一臺(tái)PC上位機(jī)接收并控制多臺(tái)遠(yuǎn)端設(shè)備控箱,通過(guò)RS-485總線(xiàn)串行接收數(shù)據(jù)并傳送指令,傳輸距離最遠(yuǎn)可達(dá)1.2 km,并進(jìn)行了增強(qiáng)串行通信協(xié)議的制定,降低了噪聲干擾。一臺(tái)控箱可對(duì)8路傳感器采集數(shù)據(jù)并對(duì)16路控制設(shè)備進(jìn)行控制??叵渲羞x用STC12C5A64S2型單片機(jī),其IAP功能可在線(xiàn)下載Hex文件并進(jìn)行調(diào)試,無(wú)需多次使用編程器。
1 系統(tǒng)結(jié)構(gòu)及功能
 遠(yuǎn)程溫室多參數(shù)控制系統(tǒng)的結(jié)構(gòu)如圖1所示。其中,PC上位機(jī)放在控制室里,各控制箱就近放置在控制設(shè)備附近。由PC上位機(jī)接收下位機(jī)的測(cè)試參數(shù)并發(fā)送控制指令,通過(guò)RS-485總線(xiàn)將指令串行傳送給各遠(yuǎn)端設(shè)備控箱,這樣就可在控制室里實(shí)現(xiàn)數(shù)據(jù)收集和設(shè)備控制,查詢(xún)各個(gè)設(shè)備的狀態(tài)。從傳輸距離和性?xún)r(jià)比方面考慮選用RS-485總線(xiàn)。RS-485為平衡線(xiàn)路,可實(shí)現(xiàn)遠(yuǎn)距離、多節(jié)點(diǎn)控制。本設(shè)計(jì)的重點(diǎn)是設(shè)備控箱,將以一臺(tái)設(shè)備控箱為例介紹系統(tǒng)的軟件和硬件設(shè)計(jì)。

2 硬件設(shè)計(jì)
2.1 STC12C5A60S2系列單片機(jī)

 設(shè)計(jì)系統(tǒng)選用宏晶科技公司的具有IAP(In-Application Programming)功能的STC12C5A型單片機(jī)[2]。該單片機(jī)采用8051內(nèi)核,單時(shí)鐘/機(jī)器周期,指令代碼完全兼容傳統(tǒng)8051。工作頻率范圍為0~35 MHz,相當(dāng)于普通8051的0~420 MHz;可根據(jù)需要選擇用戶(hù)應(yīng)用程序空間,有8 KB、16 KB、20 KB、32 KB、40 KB、48 KB、52 KB、60 KB、62 KB供選擇,本次設(shè)計(jì)選用STC12C5A62S,片上集成1280 B RAM ,通用I/O口根據(jù)封裝不同有36、40、44三種,本次設(shè)計(jì)采用36口封裝,I/O口復(fù)位后可設(shè)置為四種模式:(1)準(zhǔn)雙向口/弱上拉,強(qiáng)推挽/推挽/強(qiáng)上拉;(2)僅為輸入/高阻;(3)開(kāi)漏上拉;(4)僅為輸入/高阻,開(kāi)漏。每個(gè)I/O口驅(qū)動(dòng)能力均可達(dá)到20 mA;ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無(wú)需專(zhuān)用編程器,無(wú)需專(zhuān)用仿真器;可通過(guò)串口(P3.0/P3.1)直接下載用戶(hù)程序,數(shù)秒即可完成一片燒寫(xiě)。時(shí)鐘源可采用外部高精度晶體時(shí)鐘或內(nèi)部RC振蕩器。有4個(gè)16位定時(shí)器。外部中斷I/O口7路,傳統(tǒng)的下降沿中斷或低電平觸發(fā)中斷,并新增支持上升沿中斷的PCA模塊,Power Down模式可由外部中斷喚醒;A/D轉(zhuǎn)換具有10 bit精度ADC,共8路,轉(zhuǎn)換速度可達(dá)250 kS/s;通用2路全雙工異步串行口(UART)。它在指令系統(tǒng)、硬件結(jié)構(gòu)和片內(nèi)資源上與標(biāo)準(zhǔn)8052型單片機(jī)完全兼容,同時(shí)增大了內(nèi)部程序存儲(chǔ)Flash的容量,可達(dá)62 KB。并增加了與Flash編程相關(guān)的6個(gè)特殊功能寄存器和2個(gè)與看門(mén)狗復(fù)位有關(guān)的特殊功能寄存器[3]。對(duì)STC12C5A62S2的IAP功能采用一個(gè)通用程序編寫(xiě),選用Keil公司的μVision仿真軟件進(jìn)行編程仿真。將生成的Hex文件直接通過(guò)RS-232串口從PC下載到單片機(jī)上運(yùn)行調(diào)試。使用非常方便,縮短了開(kāi)發(fā)周期,單片機(jī)系統(tǒng)內(nèi)部結(jié)構(gòu)框圖如圖2所示。

2.2 硬件系統(tǒng)

 


 遠(yuǎn)程溫室多參數(shù)控制系統(tǒng)的核心硬件圖如圖3所示,以STC12C5A62S2型國(guó)產(chǎn)單片機(jī)為核心,用P1口采集外部傳感器信號(hào),用P0口、P2口進(jìn)行信號(hào)控制(P0口要加上拉電阻器)。通過(guò)兩個(gè)國(guó)產(chǎn)ULN2803進(jìn)行電流放大,可驅(qū)動(dòng)16路繼電器。由于片內(nèi)帶有共陰極箝位二極管,可適應(yīng)感性負(fù)載,故輸出端可省去大量二極管。串口部分選用國(guó)產(chǎn)MAX485。ULN2803A型器件選用國(guó)內(nèi)生產(chǎn)的單片集成高壓、大電流達(dá)林頓晶體管陣列(中國(guó)航天771生產(chǎn))。該陣列由8個(gè)NPN達(dá)林頓管組成,其特點(diǎn)是電流增益高、負(fù)載能力強(qiáng)(輸出電流可達(dá)500 mA)、工作電壓高(耐壓達(dá)50 V)。美信公司的MAX485型器件是通用半雙工收發(fā)器,傳輸速度為9.6 Kb/s時(shí),傳輸距離可達(dá)1.5 km??蓪?shí)現(xiàn)上位機(jī)與單片機(jī)之間的串口異步通信。其中RE與DE接在一起,并由單片機(jī)的RD(P3.7)控制。拉低為接收有效,拉高為發(fā)送有效。該系統(tǒng)還具有上電自動(dòng)復(fù)位和通電指示功能。設(shè)計(jì)PCB時(shí)應(yīng)注意合理布線(xiàn),對(duì)單片機(jī)電源進(jìn)行濾波整流,并遠(yuǎn)離干擾源[4]。

 該芯片的內(nèi)部A/D采用控制寄存器完成,內(nèi)部控制如圖4所示。

3 系統(tǒng)軟件設(shè)計(jì)
 用C語(yǔ)言編譯器開(kāi)發(fā)單片機(jī)具有使用方便、編程效率高及仿真調(diào)試容易等突出特點(diǎn)。C51的版本很多,本系統(tǒng)軟件選用德國(guó)Keil Software公司的Keil C51編譯器開(kāi)發(fā)。該編譯器基于Windows平臺(tái)集成開(kāi)發(fā)環(huán)境,可編輯、編譯和調(diào)試匯編語(yǔ)言程序及C51程序,還可模擬仿真I/O口、定時(shí)器/計(jì)數(shù)器、串行口及中斷等單片機(jī)特有的功能部件,功能強(qiáng)大(須注意的是在Keil C51庫(kù)中沒(méi)有STC12C5A62S2,需要在宏晶STC官方網(wǎng)站www.STCMCU.com下載)。該系統(tǒng)的軟件設(shè)計(jì)由主程序、A/D轉(zhuǎn)換程序、中斷程序、串行接收子程序、串行發(fā)送子程序、控制設(shè)備程序等若干功能子程序組成。其中實(shí)時(shí)時(shí)鐘進(jìn)行精確操作,用匯編語(yǔ)言編寫(xiě),其他均用C語(yǔ)言編寫(xiě)。
3.1 主程序設(shè)計(jì)
 在主程序中,先將STC12C5A62S2初始化,然后等待新命令。當(dāng)NewData=1時(shí),表示已接收到一個(gè)有效的命令幀,否則繼續(xù)等待。接著判斷是否是本機(jī)地址,若是則判斷控制命令,否則繼續(xù)等待。上位機(jī)發(fā)送指定的字符串,分別表示開(kāi)設(shè)備、關(guān)設(shè)備、查詢(xún)、設(shè)置等命令。通過(guò)字符串比較,判斷出命令指令,跳到相應(yīng)的入口子程序中,操作成功后,通過(guò)串口發(fā)送子程序返回相應(yīng)的提示符,其具體流程略。
3.2 串口中斷程序設(shè)計(jì)
 為了增強(qiáng)抗干擾性,有效地區(qū)分噪聲和數(shù)據(jù)便于操作,串口中斷程序加強(qiáng)了通信協(xié)議的制定,具體實(shí)現(xiàn)方法是加開(kāi)始標(biāo)志和結(jié)束標(biāo)志。噪聲是以隨機(jī)字節(jié)出現(xiàn)的,通過(guò)測(cè)試和實(shí)驗(yàn),發(fā)現(xiàn)在本系統(tǒng)中0x00后跟0xFF時(shí)噪聲不容易發(fā)生。因此,設(shè)置開(kāi)始標(biāo)志為0x000xFF,結(jié)束標(biāo)志為回車(chē)換行符0x0D0x0A。如果接收命令幀成功,則置NewData=1,表示新命令有效[5]??紤]到糾檢錯(cuò),數(shù)據(jù)采用短包方式。中間采用延時(shí),以保證起始位可靠。串口中斷程序流程略。
 部分程序清單如下:
//串行接收子函數(shù)
INT8U ReUART(INT8U*ch)
{INTl6U delay=6000;
while(--delay) //延時(shí)
{if(RI),//串行接收中斷標(biāo)志
{RI=0;//接收中斷標(biāo)志軟件復(fù)位
、 *ch=SBU F=//讀數(shù)據(jù)緩沖器
return 1;}//成功返回l
}
return(0);//接收失敗返回0
)
//串行中斷處理程序
void UART_Inter(void)interrupt 4
{INT8U ii;
INT8U temp,templ;
ReUART(&temp、);//先連續(xù)接收2個(gè)字節(jié)
ReUART(&templ); //開(kāi)始標(biāo)志
if((temp==0x00)&&(templ==0xFF))
//連續(xù)接收一個(gè)命令幀
{for(ii=0;ii<12;ii++)
{if(ReUART(&buff[ii])==0)
goto Inter._end;}//跳出中斷
if((buf[10]==0x0D)&&(buf[ll]==0x0A)),//結(jié)束標(biāo)志
NewData=l; //新命令標(biāo)志有效
}
Inter_end:;//中斷出口
}
 基于STC12C5A16S2-35C的遠(yuǎn)程溫室多參數(shù)采集及控制系統(tǒng)可實(shí)現(xiàn)一臺(tái)PC上位機(jī)最多采集及控制256個(gè)設(shè)備控箱,傳輸距離最遠(yuǎn)可達(dá)1.5 km,每臺(tái)設(shè)備控箱可對(duì)16路設(shè)備進(jìn)行控制。實(shí)現(xiàn)了集中管理、分散控制的功能。該系統(tǒng)通過(guò)軟硬件提高抗干擾性,并具有較好的擴(kuò)展性,結(jié)構(gòu)簡(jiǎn)單、投資少,故障率低。實(shí)際應(yīng)用表明具有較強(qiáng)的實(shí)用性,經(jīng)過(guò)一年的正常運(yùn)行實(shí)踐證明國(guó)產(chǎn)器件完全可以應(yīng)用于現(xiàn)代農(nóng)業(yè)裝備。
參考文獻(xiàn)
[1] 薄新維.STC系列單片機(jī)在溫室大棚中的應(yīng)用[J].儀表技術(shù)與傳感器,2009(1):27-30.
[2] 彭敏.基于DS18B20的溫度顯示和報(bào)警裝置的研制[J].可編程控制器與工廠(chǎng)自動(dòng)化(PLC FA),2007(11):116-118.
[3] 張鵬翼,羅衛(wèi)兵,等.基于STC12C5412AD單片機(jī)的無(wú)線(xiàn)電話(huà)遙控電路設(shè)計(jì)[J].浙江理工大學(xué)學(xué)報(bào),2009(2):23-25.
[4] 梅鳳霞,王耀青.STC單片機(jī)在多路溫度巡回檢測(cè)儀中的應(yīng)用[J].武漢工程職業(yè)技術(shù)學(xué)院學(xué)報(bào),2010(2):47-50.
[5] 邵琰,錢(qián)東平.STC89C52RC單片機(jī)在幼苗移栽機(jī)控制系統(tǒng)中的應(yīng)用[J].農(nóng)機(jī)化研究,2010(5),36-38.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。