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