基于ARM的育肥棚溫度監(jiān)控系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:溫度是育肥棚的重要參數(shù)之一,過高或過低的溫度都會(huì)影響牛羊的健康和食量,從而影響牛羊的育肥速度;針對此問題,從特有的地理環(huán)境和育肥棚的具體要求出發(fā),設(shè)計(jì)了溫度監(jiān)控的硬軟件系統(tǒng)。硬件由S3C2410處理器、DS18B20溫度傳感器、TC35模塊以及一些外圍電路組成;軟件用C實(shí)現(xiàn)了通過手機(jī)短信來完成報(bào)警功能。測試結(jié)果表明:系統(tǒng)運(yùn)行穩(wěn)定可靠,能滿足育肥棚溫度的監(jiān)控要求。
關(guān)鍵詞:溫度監(jiān)控;S3C2410;MBF200;DS18B20;TC35
青海省是青藏高原的重要組成部分,素有“中華水塔”和“動(dòng)物王國”之稱,是我國五大牧區(qū)之一,但由于近幾年的鼠類肆虐、氣溫變暖、水土流失、草地沙化、江河源頭水資源銳減和人口增加等原因使部分地區(qū)的牧民被追離鄉(xiāng)謀生,出現(xiàn)“生態(tài)難民”現(xiàn)象。為了畜牧業(yè)的可持續(xù)發(fā)展,政府部門引導(dǎo)牧民建起了育肥棚圈養(yǎng)。但調(diào)研中發(fā)現(xiàn),多數(shù)牧民居住在高寒地區(qū),這里早晚溫差很大,育肥棚中牛羊很易得病,過高過低的溫度也影響著牛羊的食量,從而影響著牛羊的育肥速度;針對此問題設(shè)計(jì)了一個(gè)溫度監(jiān)控系統(tǒng),此系統(tǒng)能夠把溫度監(jiān)控在最適宜育肥的+10~+21℃之間,如溫度低于+7℃或高于+27℃系統(tǒng)會(huì)自動(dòng)地控制GSM模塊向指定用戶發(fā)送短信,實(shí)現(xiàn)報(bào)警功能。
1 系統(tǒng)硬件電路總體結(jié)構(gòu)
該系統(tǒng)的硬件平臺(tái)結(jié)構(gòu)如圖1所示。其中S3C2410為處理器芯片,DS18B20為數(shù)字溫度傳感器,系統(tǒng)運(yùn)行時(shí),處理器芯片將溫度傳感器采集的數(shù)據(jù)進(jìn)行處理,將處理得到的數(shù)據(jù)在LCD屏上顯示,并定時(shí)將采集結(jié)果寫入Flash中,然后將采集到的溫度值和預(yù)設(shè)值進(jìn)行比較,檢驗(yàn)其是否在其預(yù)設(shè)范圍內(nèi)。若超出預(yù)設(shè)范圍,通過TC35 GSM通訊模塊發(fā)出報(bào)警信息;由于處理芯片存儲(chǔ)空間有限,不能滿足操作系統(tǒng)和其他程序的運(yùn)行,所以外接了SDRA存儲(chǔ)器K4S561632C-TC75(兩片16 Mx16 bit構(gòu)成32 bit)和Nand Flash存儲(chǔ)器K9K1G08U0A(兩片64 M×16bit構(gòu)成32 bit);復(fù)位電路選用了MAX706;LCD選用了LB064V02;為了方便Linux內(nèi)核移植、交叉編譯、驅(qū)動(dòng)和應(yīng)用程序下載以及以后的二次開發(fā)和功能擴(kuò)展還用JTAG和其他外圍器件。
1.1 S3C2410處理器芯片
嵌入式系統(tǒng)硬件的核心部件是嵌入式處理器,本系統(tǒng)選用了三星公司推出的16/32位RISC處理器S3C2410,這是一款低價(jià)格、低功耗、高性能的處理器,它為了降低整個(gè)系統(tǒng)成本,S3C2410提供了很豐富的內(nèi)部設(shè)備:分開的16 k指令Cache和16 k數(shù)據(jù)Cache、MMU虛擬存儲(chǔ)器管理、LCD控制器、支持NAND Flash系統(tǒng)引導(dǎo)、片選邏輯和SDRAM控制器、8通道10位ADC和觸摸屏接口、看門狗定時(shí)器、3通道UART、I2C控制器、USB控制器、中斷控制器以及可編程I/O口等。
1.2 S3C2410與DS18B20芯片的接口電路
溫度傳感器在整個(gè)控制裝置中占據(jù)著十分重要的地位,它所采樣的值是ARM微處理器的主要處理數(shù)據(jù),是實(shí)施控制的依據(jù)。所以保證采樣的數(shù)據(jù)準(zhǔn)確是進(jìn)行良好控制的基礎(chǔ)。本系統(tǒng)選用溫度傳感器時(shí)考慮到高原的惡劣環(huán)境和牧民的實(shí)際情況選用了價(jià)格便宜、硬件開銷小、精度較高、有極強(qiáng)的抗干擾能力和糾錯(cuò)能力的DS18B20數(shù)字溫度傳感器。此傳感器采用單總線專用技術(shù),即一條線即可與處理器實(shí)現(xiàn)雙向傳遞數(shù)字信號(hào),無須經(jīng)過其它變換電路;直接輸出被測溫度值(9~12位二進(jìn)制數(shù)),工作時(shí)每一步操作都遵循嚴(yán)格的工作時(shí)序和通信協(xié)議。被測溫范圍-55~+125℃,在-10~+85℃時(shí)精度為±0.5℃;此芯片內(nèi)含64位經(jīng)過激光修正的只讀存儲(chǔ)器ROM,用于存儲(chǔ)唯一64位序列號(hào),因此可以在一條總線上掛接多個(gè)DS18B20而不會(huì)出現(xiàn)混亂;內(nèi)含暫存RAM,用于存放工作參數(shù)和測量值;具有非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL,用戶可以分別設(shè)定各路溫度的上、下限;工作電壓范圍在3.0~5.5 V。DS18B20與控制器的接口電路圖如圖2所示。
[!--empirenews.page--]
1.3 S3C2410與外存儲(chǔ)器的接口電路
為了降低成本和充分發(fā)揮32位處理器的數(shù)據(jù)處理能力,本系統(tǒng)采用2片16位的HY29LV160和2片16位的K4S561632C芯片分別構(gòu)造了32位的Flash和SDRAM存儲(chǔ)系統(tǒng)。Flash與S3C2410連接時(shí),低16位片的WE#端接S3C2410的nWE<0>。高16位片的WE#端接S3C2410的nWE<2>,2片F(xiàn)lash的BYTE#均上拉,使工作在字模式;2片F(xiàn)lash的地址總線[A19-A0]均與S3C2410的地址總線[ADDR19-ADDR0]相連;低16位Flash與S3C2410的低16位數(shù)據(jù)總線[DATA15-DATA0]相連,高16位的數(shù)據(jù)總線與[DATA31-DATA16]相連;2片F(xiàn)lash的OFF#接S3C2410的nOE#;2片F(xiàn)lash的RESET#端接S3C2410的nRESET;將S3C2410的nGCS<0>接至2片F(xiàn)lash的CE#端。SDRAM與S3C2410連接時(shí),SDRAM的地址線為[A12-A0](行/列地址線分時(shí)復(fù)用)和片選信號(hào)為BA0和BA1與S3C2410的[ADDR14-ADDR2]、ADDR[22]和ADDR[23]相連。第一片SDRAM輸入數(shù)據(jù)線[DQ15-DQ0]連接S3C2410數(shù)據(jù)總線[DATA15-DATA0],第二片連接數(shù)據(jù)總線[DATA31-DATA16]。另外,第二片的LDQM、UDQM、SCLK分別連接S3C2410的DQM2、DQM3、SCLK1。圖3是SDRAM芯片引腳與S3C2410引腳之間的接口圖,F(xiàn)lash的連接方式和SDRAM方式相似,這里就不給出接口圖。
1.4 TC35GSM通訊模塊
TC35是Siemens公司推出的新一代無線通信GSM模塊,該模塊有AT命令集接口,支持文本和PDU模式,可以快速可靠地實(shí)現(xiàn)系統(tǒng)方案中的短消息發(fā)送。此模塊主要由GSM基帶處理器、GSM射頻模塊、供電模塊(ASIC)、Flash、無線接口和ZIF連接器6部分組成。它通過獨(dú)特的40引腳的ZIF連接器,實(shí)現(xiàn)電源連接、指令、數(shù)據(jù)、語音信號(hào)及控制信號(hào)的雙向傳輸。作為TC35的核心,基帶處理器主要控制著模塊內(nèi)各種信號(hào)的傳輸、轉(zhuǎn)化和放大,GSM射頻部分完成對射頻信號(hào)的接受和發(fā)送等處理,F(xiàn)lash用來存儲(chǔ)用戶配置信息、電話本和其他信息。ZIF的40個(gè)引腳中,其中數(shù)據(jù)的輸入/輸出引腳為16-23,即9針串口,SIM卡引腳為24-29,其中CCIN引腳用來檢測SIM卡支架中是否插有SIM卡。當(dāng)插入SIM卡,該引腳置為高電平,系統(tǒng)方可進(jìn)入正常工作狀態(tài)。但目前移動(dòng)運(yùn)營商所提供的SIM卡均無CCIN引腳,所以在設(shè)計(jì)電路時(shí)將引腳CCIN與CCVCC相連。由于TC35數(shù)據(jù)接口工作在CMOS電平(2.65 V)下,因此需要通過電平轉(zhuǎn)換芯片MAX232與處理器串行口連接。TC35與S3C2410的接口電路如圖4所示。
[!--empirenews.page--]
2 系統(tǒng)軟件設(shè)計(jì)
軟件方面我們做了移植加載引導(dǎo)BootLoader、Linnux內(nèi)核的裁剪及重新編譯、移植文件系統(tǒng)、驅(qū)動(dòng)程序和用C開發(fā)了應(yīng)用程序。具體工作流程是當(dāng)系統(tǒng)開機(jī)后,進(jìn)入BootLoader程序進(jìn)行一系列的硬件初始化,然后加載Linux系統(tǒng)進(jìn)一步初始化,如成功,系統(tǒng)調(diào)用各個(gè)模塊開始工作,同時(shí)看門狗檢測系統(tǒng)是否運(yùn)行正常,如不正常,則自動(dòng)復(fù)位。工作時(shí)時(shí),S3C2410自動(dòng)控制GSM模塊向指定用戶發(fā)送短信。在發(fā)送短消息前,首先要發(fā)送AT+CMGF命令選擇短消息的格式,然后通過AT+CSCA來獲取短消息服務(wù)中心,等待字符‘>’出現(xiàn)后,開始發(fā)送字符,并以Ctrl+C結(jié)束。短消患的發(fā)送和接收控制模式有3種:Block模式、Text模式和PDU模式。使用Block模式需要手機(jī)生產(chǎn)廠商提供驅(qū)動(dòng)支持,目前國內(nèi)手機(jī)基本上不支持,Text模式不支持中文。流程圖5是用TC35來實(shí)現(xiàn)溫度報(bào)警的過程,其中流程圖中短消息發(fā)送格式設(shè)置為PDU模式(AT+CMGF=0),短消息中心設(shè)置為西寧市(AT+CSCA=“+8613010776500”)。
3 測試結(jié)果
1)系統(tǒng)的基本功能測試。首先借助“串口調(diào)試助手V2.2”進(jìn)行了GSM模塊的測試,測試結(jié)果能夠?qū)崿F(xiàn)發(fā)送中文短信,然后系統(tǒng)集成并上電后S3C2410會(huì)不斷讀取溫度,當(dāng)溫度過高或過低超過限定值時(shí),處理器自動(dòng)控制GSM模塊向指定手機(jī)發(fā)送短信,實(shí)現(xiàn)報(bào)警功能。一次報(bào)警后,S3C2410隔半小時(shí)再次進(jìn)行溫度讀取和判斷,如果仍然不在限定值范圍,則繼續(xù)報(bào)警,如果溫度回歸正常,則進(jìn)入待機(jī)循環(huán)。
2)溫度誤差的計(jì)算。分-20℃、+7℃和+27℃3個(gè)溫度進(jìn)行測試。把溫度傳感器放入恒溫箱中,每一個(gè)溫度測試30 min,每秒鐘記錄1組數(shù)據(jù),共測試1 800條記錄。測試時(shí),基準(zhǔn)數(shù)據(jù)為箱內(nèi)溫度,計(jì)算時(shí)將測試存儲(chǔ)的數(shù)據(jù)與基準(zhǔn)數(shù)據(jù)作差,計(jì)算公式如下:
最終統(tǒng)計(jì)在-20℃、+7℃、+27℃3個(gè)溫度下,它們的溫度誤差分別是1.21、1.08和0.89。也就是說,設(shè)備所測試的結(jié)果都是在設(shè)定的溫度附近波動(dòng),且波動(dòng)的范圍在1℃左右,說明此設(shè)備的穩(wěn)定性較好。
4 結(jié)束語
文中設(shè)計(jì)了基于S3C2410處理器、DS18B20溫度傳感器和TC35GSM模塊組成的溫度監(jiān)控系統(tǒng),此系統(tǒng)在考慮到高原的特有氣候和經(jīng)濟(jì)水平,設(shè)計(jì)中考慮到了它的性價(jià)比,以短信息的形式將過高或過低的溫度發(fā)給用戶,用戶根據(jù)具體情況進(jìn)行處理。試驗(yàn)證明該系統(tǒng)的溫度采集和短信的發(fā)送性能滿足設(shè)計(jì)要求。由于,牧民嫌電費(fèi)貴,本系統(tǒng)只涉及了短信的發(fā)送功能,沒有對接收短信及接收后系統(tǒng)對溫度的自動(dòng)控制進(jìn)行研究,但系統(tǒng)留了相應(yīng)的接口,可以進(jìn)行二次開發(fā)和功能擴(kuò)展。