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