摘 要: 基于國產(chǎn)STC12C5A62S2的溫室多參數(shù)控制系統(tǒng)的應用技術(包括軟硬件設計),,該系統(tǒng)通過RS-485總線與PC上位機通信,,實現(xiàn)了低成本、多參數(shù),、遠距離,、多節(jié)點數(shù)據(jù)采集與控制的全部國產(chǎn)化。
關鍵詞: 低成本,;多參數(shù),;STC12C5A62S2;遠程控制
現(xiàn)代溫室系統(tǒng)通常需要大量的控制設備,。但以往的溫室控制系統(tǒng)大都采用進口PLC單獨控制系統(tǒng)及大量的開關控制和電閘控制,,還需要工作人員在現(xiàn)場操作,或向控制室拉接較長的220 V電線,,實時性,、安全性都較差。如果采用具有采集功能的PLC,,成本昂貴,,不適應我國的國情[1]。為了測試國產(chǎn)單片機器件在現(xiàn)代農(nóng)業(yè)裝備中的應用穩(wěn)定性,,實現(xiàn)工作人員在控制室即對分散在各個溫室的遠端設備進行實時有效地狀態(tài)控制及狀態(tài)查詢,,本文研發(fā)了基于單片機的遠程溫室多參數(shù)采集及控制系統(tǒng),并全部采用國產(chǎn)器件。經(jīng)過一年的運行證明,,該系統(tǒng)價低,、可靠,完全可以應用于國產(chǎn)現(xiàn)代農(nóng)業(yè)裝備,。
該系統(tǒng)由一臺PC上位機接收并控制多臺遠端設備控箱,,通過RS-485總線串行接收數(shù)據(jù)并傳送指令,傳輸距離最遠可達1.2 km,,并進行了增強串行通信協(xié)議的制定,,降低了噪聲干擾。一臺控箱可對8路傳感器采集數(shù)據(jù)并對16路控制設備進行控制,。控箱中選用STC12C5A64S2型單片機,,其IAP功能可在線下載Hex文件并進行調(diào)試,,無需多次使用編程器。
1 系統(tǒng)結(jié)構及功能
遠程溫室多參數(shù)控制系統(tǒng)的結(jié)構如圖1所示,。其中,,PC上位機放在控制室里,各控制箱就近放置在控制設備附近,。由PC上位機接收下位機的測試參數(shù)并發(fā)送控制指令,,通過RS-485總線將指令串行傳送給各遠端設備控箱,這樣就可在控制室里實現(xiàn)數(shù)據(jù)收集和設備控制,,查詢各個設備的狀態(tài),。從傳輸距離和性價比方面考慮選用RS-485總線。RS-485為平衡線路,,可實現(xiàn)遠距離,、多節(jié)點控制。本設計的重點是設備控箱,,將以一臺設備控箱為例介紹系統(tǒng)的軟件和硬件設計,。
2 硬件設計
2.1 STC12C5A60S2系列單片機
設計系統(tǒng)選用宏晶科技公司的具有IAP(In-Application Programming)功能的STC12C5A型單片機[2]。該單片機采用8051內(nèi)核,,單時鐘/機器周期,,指令代碼完全兼容傳統(tǒng)8051。工作頻率范圍為0~35 MHz,,相當于普通8051的0~420 MHz,;可根據(jù)需要選擇用戶應用程序空間,有8 KB,、16 KB,、20 KB、32 KB、40 KB,、48 KB,、52 KB、60 KB,、62 KB供選擇,,本次設計選用STC12C5A62S,片上集成1280 B RAM ,,通用I/O口根據(jù)封裝不同有36,、40、44三種,,本次設計采用36口封裝,,I/O口復位后可設置為四種模式:(1)準雙向口/弱上拉,強推挽/推挽/強上拉,;(2)僅為輸入/高阻,;(3)開漏上拉;(4)僅為輸入/高阻,,開漏,。每個I/O口驅(qū)動能力均可達到20 mA;ISP(在系統(tǒng)可編程)/IAP(在應用可編程),,無需專用編程器,,無需專用仿真器;可通過串口(P3.0/P3.1)直接下載用戶程序,,數(shù)秒即可完成一片燒寫,。時鐘源可采用外部高精度晶體時鐘或內(nèi)部RC振蕩器。有4個16位定時器,。外部中斷I/O口7路,,傳統(tǒng)的下降沿中斷或低電平觸發(fā)中斷,并新增支持上升沿中斷的PCA模塊,,Power Down模式可由外部中斷喚醒,;A/D轉(zhuǎn)換具有10 bit精度ADC,共8路,,轉(zhuǎn)換速度可達250 kS/s,;通用2路全雙工異步串行口(UART)。它在指令系統(tǒng),、硬件結(jié)構和片內(nèi)資源上與標準8052型單片機完全兼容,,同時增大了內(nèi)部程序存儲Flash的容量,可達62 KB,。并增加了與Flash編程相關的6個特殊功能寄存器和2個與看門狗復位有關的特殊功能寄存器[3],。對STC12C5A62S2的IAP功能采用一個通用程序編寫,選用Keil公司的μVision仿真軟件進行編程仿真。將生成的Hex文件直接通過RS-232串口從PC下載到單片機上運行調(diào)試,。使用非常方便,,縮短了開發(fā)周期,單片機系統(tǒng)內(nèi)部結(jié)構框圖如圖2所示,。
2.2 硬件系統(tǒng)
遠程溫室多參數(shù)控制系統(tǒng)的核心硬件圖如圖3所示,,以STC12C5A62S2型國產(chǎn)單片機為核心,用P1口采集外部傳感器信號,,用P0口,、P2口進行信號控制(P0口要加上拉電阻器)。通過兩個國產(chǎn)ULN2803進行電流放大,,可驅(qū)動16路繼電器,。由于片內(nèi)帶有共陰極箝位二極管,可適應感性負載,,故輸出端可省去大量二極管,。串口部分選用國產(chǎn)MAX485。ULN2803A型器件選用國內(nèi)生產(chǎn)的單片集成高壓,、大電流達林頓晶體管陣列(中國航天771生產(chǎn))。該陣列由8個NPN達林頓管組成,,其特點是電流增益高,、負載能力強(輸出電流可達500 mA)、工作電壓高(耐壓達50 V),。美信公司的MAX485型器件是通用半雙工收發(fā)器,,傳輸速度為9.6 Kb/s時,傳輸距離可達1.5 km,??蓪崿F(xiàn)上位機與單片機之間的串口異步通信。其中RE與DE接在一起,,并由單片機的RD(P3.7)控制,。拉低為接收有效,拉高為發(fā)送有效,。該系統(tǒng)還具有上電自動復位和通電指示功能,。設計PCB時應注意合理布線,對單片機電源進行濾波整流,,并遠離干擾源[4],。
該芯片的內(nèi)部A/D采用控制寄存器完成,內(nèi)部控制如圖4所示,。
3 系統(tǒng)軟件設計
用C語言編譯器開發(fā)單片機具有使用方便,、編程效率高及仿真調(diào)試容易等突出特點。C51的版本很多,本系統(tǒng)軟件選用德國Keil Software公司的Keil C51編譯器開發(fā),。該編譯器基于Windows平臺集成開發(fā)環(huán)境,,可編輯、編譯和調(diào)試匯編語言程序及C51程序,,還可模擬仿真I/O口,、定時器/計數(shù)器、串行口及中斷等單片機特有的功能部件,,功能強大(須注意的是在Keil C51庫中沒有STC12C5A62S2,,需要在宏晶STC官方網(wǎng)站www.STCMCU.com下載)。該系統(tǒng)的軟件設計由主程序,、A/D轉(zhuǎn)換程序,、中斷程序、串行接收子程序,、串行發(fā)送子程序,、控制設備程序等若干功能子程序組成。其中實時時鐘進行精確操作,,用匯編語言編寫,,其他均用C語言編寫。
3.1 主程序設計
在主程序中,,先將STC12C5A62S2初始化,,然后等待新命令。當NewData=1時,,表示已接收到一個有效的命令幀,,否則繼續(xù)等待。接著判斷是否是本機地址,,若是則判斷控制命令,,否則繼續(xù)等待。上位機發(fā)送指定的字符串,,分別表示開設備,、關設備、查詢,、設置等命令,。通過字符串比較,判斷出命令指令,,跳到相應的入口子程序中,,操作成功后,通過串口發(fā)送子程序返回相應的提示符,,其具體流程略,。
3.2 串口中斷程序設計
為了增強抗干擾性,,有效地區(qū)分噪聲和數(shù)據(jù)便于操作,串口中斷程序加強了通信協(xié)議的制定,,具體實現(xiàn)方法是加開始標志和結(jié)束標志,。噪聲是以隨機字節(jié)出現(xiàn)的,通過測試和實驗,,發(fā)現(xiàn)在本系統(tǒng)中0x00后跟0xFF時噪聲不容易發(fā)生,。因此,設置開始標志為0x000xFF,,結(jié)束標志為回車換行符0x0D0x0A,。如果接收命令幀成功,則置NewData=1,,表示新命令有效[5],。考慮到糾檢錯,,數(shù)據(jù)采用短包方式,。中間采用延時,以保證起始位可靠,。串口中斷程序流程略,。
部分程序清單如下:
//串行接收子函數(shù)
INT8U ReUART(INT8U*ch)
{INTl6U delay=6000;
while(--delay) //延時
{if(RI),,//串行接收中斷標志
{RI=0,;//接收中斷標志軟件復位
、 *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個字節(jié)
ReUART(&templ); //開始標志
if((temp==0x00)&&(templ==0xFF))
//連續(xù)接收一個命令幀
{for(ii=0,;ii<12,;ii++)
{if(ReUART(&buff[ii])==0)
goto Inter._end;}//跳出中斷
if((buf[10]==0x0D)&&(buf[ll]==0x0A)),,//結(jié)束標志
NewData=l,; //新命令標志有效
}
Inter_end:;//中斷出口
}
基于STC12C5A16S2-35C的遠程溫室多參數(shù)采集及控制系統(tǒng)可實現(xiàn)一臺PC上位機最多采集及控制256個設備控箱,,傳輸距離最遠可達1.5 km,,每臺設備控箱可對16路設備進行控制,。實現(xiàn)了集中管理、分散控制的功能,。該系統(tǒng)通過軟硬件提高抗干擾性,,并具有較好的擴展性,結(jié)構簡單,、投資少,,故障率低。實際應用表明具有較強的實用性,,經(jīng)過一年的正常運行實踐證明國產(chǎn)器件完全可以應用于現(xiàn)代農(nóng)業(yè)裝備,。
參考文獻
[1] 薄新維.STC系列單片機在溫室大棚中的應用[J].儀表技術與傳感器,2009(1):27-30.
[2] 彭敏.基于DS18B20的溫度顯示和報警裝置的研制[J].可編程控制器與工廠自動化(PLC FA),,2007(11):116-118.
[3] 張鵬翼,,羅衛(wèi)兵,等.基于STC12C5412AD單片機的無線電話遙控電路設計[J].浙江理工大學學報,,2009(2):23-25.
[4] 梅鳳霞,,王耀青.STC單片機在多路溫度巡回檢測儀中的應用[J].武漢工程職業(yè)技術學院學報,2010(2):47-50.
[5] 邵琰,,錢東平.STC89C52RC單片機在幼苗移栽機控制系統(tǒng)中的應用[J].農(nóng)機化研究,,2010(5),36-38.