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