基于ZigBee的無線溫度監控系統的設計
3 AVR單片機控制模塊
AVR單片機控制模塊由2部分組成:單片機最小系統以及DS18B20溫度采集模塊,如圖3中虛線框所示。其中,單片機系統的RX、TX兩個引腳和ZigBee模塊的TX、RX引腳相連,負責UART的通訊。單片機的PCI引腳與DS18B20的數據端相連,接收來自溫度傳感器的溫度數據。此外,單片機上的PA0和PA1兩個引腳分別引出,用來指示不同的溫度控制響應。本文引用地址:http://www.104case.com/article/153600.htm
3.1 溫度采集模塊
溫度采集模塊由溫度傳感器DS18B20構成。由于DS18B20采用1-WIRE數據傳輸協議,僅使用1根數據線即可實現與單片機芯片的雙向通訊(包括傳輸溫度信息),接線方便,非常適用于農業大棚、潔凈室、機房等多種非極限測溫場合。設計采用寄生電源供電方式,電路連接如圖4所示,由ATMega16的PCI采集溫度數據。
DS18B20的內部有64位的ROM單元和9字節的RAM單元。64位的ROM包含了DS18B20唯一的序列號,因此DS18B20支持多點組網功能,多至階DS18B20可以同時存在一條總線上,實現多點測溫,由ROM讀取操作來判斷選擇某點的DS18B20溫度數據。在9字節RAM單元中,字節0-1是溫度寄存器,用來保存轉換好的溫度,共16bits。其中,bit0-bit7為LSB,分別保存權值為2-4至23的數據;bit8-bit15為MSB,bit8-bit10保存權值為24至26的數據,bit11-bit15為符號位,DS18B20的分辨率為0.0625,溫度計算公式為:temperature=(MSB+LSB)×256x0.062。DS18 B20內部還有2個E2PROM字節TH和TL,用于配置溫度最高界限和溫度最低界限,用戶通過設置這2個寄存器的值可以設定溫度報警的上下限。
3.2 單片機控制系統
單片機控制系統使用Atmel公司的ATMega16L芯片作為主控芯片,實現溫度數據的采集、串行數據的發送與接收,以及根據上位機的設定溫度和當前溫度比對結果做出加熱或降溫響應。數據傳輸和溫度信號采集部分的主要程序如下。
1 UART數據接收模塊
利用單片機內部自帶的接收中斷來完成數據接收模塊。在此之前,需要對UART寄存器進行如下配置:異步模式、8位數據位、無校驗位、1位停止位。波特率設置函數為:UBRRL=(CRYSTAL/BAUD/16-1)%256和UBRRH=(CRYSTAL/BAUD/16-1)/256。
2 UART數據發送模塊
當系統調用字符發送函數時,會先判斷發送寄存器是否為空,如果為空,則函數會向UART的I/O數據寄存器UDR寫入待發送的字符,格式為char型(8bits)。單片機接收到來自DS18B20的溫度數據,分別取出溫度的整數位和小數位,添加小數點后,將所有的整數位和小數點后兩位數據發送給UART。溫度數據以字符數組的形式保存,因此發送時以字符串的形式發送數據。
3.DS18B20溫度數據接收模塊
評論