趙璠,徐偉恒
(西南林業大學云南昆明650224)
隨著通信技術、嵌入式系統技術、分布式信息處理技術、現場總線技術和傳感器技術的飛速發展與日益成熟,具有計算能力和通信能力的微型傳感器開始在世界范圍內廣泛應用,由這些微型傳感器構成的傳感網引起了人們的極大關注。傳感網能夠實時監測、感知和采集網絡分布區域內的各種環境或監測對象的信息,并對這些信息進行融合處理,獲得詳盡而準確的信息,傳送到需要這些信息的用戶。這種更小、更廉價的低功耗計算設備代表的“后PC時代”沖破了傳統臺式計算機和高性能服務器的設計模式,網絡化帶來的計算處理能力是難以估量的。因此,這種網絡系統可以被廣泛地應用于國防軍事、國家安全、環境監測、交通管理、醫療衛生、制造業、反恐抗災等領域。
傳感網的研究起步于20世紀90年代末期。從2000年起,國際上開始出現一些有關傳感網研究結果的報道[1]。但是,這些研究成果處于起步階段,距離實際需求還相差甚遠。我國在傳感網方面的研究工作還很少。目前,哈爾濱工業大學和黑龍江大學已經開始了該領域的研究工作。一言以蔽之,傳感網的研究任重而道遠。
根據不同的設計,傳感網節點的結構會有所不同,但一般來說都包括數據采集模塊、數據處理模塊、數據傳輸模塊和電源4個部分,如圖1所示。

圖1 節點系統結構圖Fig.1 Structure diagram of the WNS node system
選用較為常見的AT89S52。它是ATMEL公司的8位Flash單片機系列,它完全和8051系列單片機兼容。具備ISP下載功能,能提供方便下載調試功能。89系列單片機采用靜態時鐘方式[2],可以節約電能,非常適合無線傳感網節點這類對功耗敏感的系統,后面還會提到。
外擴ROM。考慮到無線傳感網數據的存儲量比較大,外擴了ATMEL公司的I2C總線的EEPROM,AT24C02。
時鐘芯片選用DS1302[3-4]。它是美國Dallas公司生產的一種串行實時時鐘/日歷芯片,內部包括8位命令字節和40個字節(31個字節RAM和9個字節時鐘寄存器)的RAM,利用它們就能夠向單片機提供秒、分、時、日、月、年、及星期等實時時間信息,并能夠對閏年天數自動調整,日歷有效至2100年。DS1302具備雙電源供電功能,由雙電源中較大者供電,使系統在沒有主電源的情況下,通過備份電池或者超級電容也能保持時鐘的連續運行。其次,DS1302具有引腳少、體積小、價格低、串行工作方式節約單片機資源等優點。
LCD顯示模塊主要用于手工查看節點信息和在系統調試時使用,在真正工作時可以不用LCD,以節約電能。我們所采用的字符型液晶模塊是一種用5x7點陣圖形[5]、顯示的容量為2行16個字的1602液晶模塊。該模塊采用標準的14腳接口。如圖2所示。

圖2 1602 LCD顯示模塊Fig.2 1602 LCD display module
本節點對溫度、濕度和光照度進行監測。經過大量傳感器的從性能、價格方面的選擇,最終選擇了SENSIRION公司生產的集合型全數字溫度濕度傳感器SHT75[6]和Microsemi公司的光照度傳感器Lx1970[7]。
SENSIRION的SHT75是一款集成了溫度傳感器和濕度傳感器、直接輸出數字量、且體積小巧的傳感器。如圖3所示。該傳感器對于無線傳感網節點來說具有幾個特點:
①采用CMOS工藝制造,大幅降低了功耗;
②SHT75內部采用感知與案件和14 bit的AD集成,這樣能保證信號的高速傳輸和外界干擾的隔離;
③數字輸出,節約單片機資源,簡化系統設。

圖3 SHT75溫濕度傳感器Fig.3 SHT75 temperature and humidity sensor module
光照度傳感器選用的是Microsemi公司的仿視覺光傳感器LX1970。它具有的獨立光二極管列陣使得其反應時間很短,峰值能達到520 nm。同時內置濾光片,能有效的過濾紫外線和紅外線。LX1970是一款模擬傳感器,用于本設計中還需要配合ADC。如圖4所示。

圖4 LX1970光照度傳感器Fig.4 LX1970 light sensor module
本設計是對前端進行設計,故留有RS232串口作為傳輸出口,在后期可再加上ZigBee等主流傳輸方式。
軟件流程圖如圖5所示。

圖5 節點軟件流程圖Fig.5 Flow chart of the node software design
本設計中的低功耗考慮主要從硬件和軟件兩個方面來進行的。
盡量多的采用CMOS器件。CMOS器件比雙極性器件功耗低很多,同時,幾乎每一種規格、型號的器件都有相同管腳、相同功能可以直接互換的CMOS器件。因此在單片機系統中全部采用CMOS電路可使整機功耗大大降低,還能增強系統的抗干擾能力。
不懸空MCU沒用的I/O口。MCU的這些不用的I/O口如果懸空的話,受外界的一點點干擾就可能成為反復振蕩的輸入信號了,而MOS器件的功耗基本取決于門電路的翻轉次數。如果把它上拉的話,每個引腳也會有微安級的電流,所以最好的辦法是設成輸出(當然外面不能接其他有驅動的信號)。
不上下拉每個信號線的電阻。信號需要上下拉的原因很多,但也不是個個都要拉。上下拉電阻拉一個單純的輸入信號,電流也就幾十微安以下,但拉一個被驅動了的信號,其電流將達毫安級,現在的系統常常是地址數據各32位,可能還有244/245隔離后的總線及其它信號,都上拉的話,幾瓦的功耗就耗在這些電阻上了。
盡量多的使用了存儲器的CS端。大部分存儲器的功耗在片選有效時(不論OE和WE如何)將比片選無效時大100倍以上,所以應盡可能使用CS來控制芯片,并且在滿足其它要求的情況下盡可能縮短片選脈沖的寬度。
在整機的整體設計中,在軟硬件效率差不多的情況下,遵循硬件軟件化的原則,盡量壓縮硬件,用軟件來代替以往硬件實現的功能。如對數放大電路、抗干擾電路等;
選用較低的時鐘頻率;
不采用CPU查詢的工作方式,而要用中斷地工作方式,減少CPU的工作時間,充分利用單片機的等待模式,在鍵盤輸入、A/D轉換等場合均應采用信號中斷方式;
充分利用單片機定時/計時器進行定時和計數,而不采用軟件循環計時的工作方式,這樣可以利用單片機的等待模式;
在工作程序的設計中有許多人機對話和單片機工作間隙,這些CPU工作的空襲要在軟件設計中盡量使單片機進入等待模式來降低功耗。
文中以AT89S52作為核心所制作的無線傳感器節點[8]系統,結構精簡,成本歷練,可靠性強,功耗低。采用的SHT75溫濕度傳感器很好的解決了單片機資源緊張的問題,并且提供了可靠的溫濕度數據。時間芯片DS1302為本系統提供精確的時間,使系統長時間工作而不需要校對時間,系統進入掉電模式時仍能工作,在節點輸出數據時提供精確的參考時間。除此以外,硬件和軟件兩方面的低功耗考慮也使本設計功耗取得預期的結果。
[1] CAELE J,SIMPlOT-RYL D.Energy-efficient area monitoring for sensor networks[J].IEEE Computer Society,2004,37(2):40-46.
[2] Atmel Corporation.AT89S52 Data Sheet[EB/OL].[2008-06-01].http://www.atmel.com/Images/doc1919.pdf.
[3] Maxim Integrated.DS1302 Data Sheet[EB/OL].[2008-12-02].http://pdfserv.maximintegrated.com/en/ds/DS1302.pdf.
[4] 申建軍.串行實時時鐘/日歷芯片DS1302的特性及其應用[EB/OL].[2005-03-03].http://www.paper.edu.cn/releasepaper/content/200503-18.
[5] 謝剛.16X2字符型液晶顯示模塊的驅動[EB/OL].[2006-10-13].http://www.xie-gang.com/yjmk.htm.
[6] Sensirion Co.SHT7x Data Sheet[EB/OL].[2011-12-01].http://www.sensirion.com/fileadmin/user_upload/customers/sensirion/Dokumente/Humidity/Sensirion_Humidity_SHT7x_Datasheet_V5.pdf
[7] Microsemi Integrated.LX1970 Data Sheet[EB/OL].[2008-01-25].http://www.microsemi.com/datasheets/lx1970.pdf.
[8] 韋然.無線傳感器網絡節點的設計與實現[J].電子科技,2012(1):31-35.WEI Ran.Design and implementation of the wireless sensor network node[J].Electronic Science and Technology,2012(1):31-35.