既然是傳感器網絡,在整個網絡中應該是使用了很多傳感器。
傳感器的用量大,在考慮整個係統成本時,單個傳感器的成本對整個係統的成本影響比較大。
設備實現RTC功能,主要考慮RTC的兩個性能,
1)是否斷電記憶,如果需要斷電記錄,在傳感器上應該有給RTC模塊供電的電池。
否則,斷電重啟之後,RTC時間被清零,需要重新設置。
2)RTC時間的精度,MCU內置的振蕩器為RC振蕩器,RC振蕩器精度在5%左右,而且受溫度等環境影響大,如果用RC振蕩器作為RTC的時鍾源,一天的時間誤差在4320s,即1個多小時,這顯然是不能接受的。
RTC一般會采用32.768kHz的外接晶振,該晶振的振蕩頻率精度也易受溫度,濕度,匹配電容,寄生電容等的影響,綜合考慮各種影響因素,一般可以達到50ppm的精度.
一天的時間誤差為:
3600*24*50/1000000=4.32s.
一年的時間誤差達到1576s,差不多半個小時.
因為32.768KHz晶振本身的電容一般為12.5PF,都沒有極性之分,兩邊的電容具體參數要根據電路設計來匹配的.
采用普通32.768kHz的晶振實現RTC功能,所需的關鍵器件為具有RTC功能的MCU,(MCU斷電時,RTC功能模塊需要在外接電池的供電下繼續計時),外接可充電電池,32.768kHz的晶振,總體成本大概在2元左右.
而且會占用大概幾個平方厘米的PCB板麵積.
如果選用具有溫度補償功能的高精度的晶振,其精度一般可以做到小於5ppm,一天的時間誤差小於0.5s,一年的時間誤差小於150s.
而這樣高精度的晶振,價格比較高,可能會高達10元/pcs.
所以綜合成本,體積等方麵的考慮,傳感器可能都不會實現RTC時間的功能.
通常的做法可能是用純軟件編寫日曆算法,采用MCU工作頻率進行計時.
這種方法,在控製器斷電之後 ,時間會歸零,而且誤差比較大,所以需要有一個中控設備進傳感器進行定時同步時鍾,同步的時間間隔可以根據實際應用場景的時間精度要求,以及傳感 器的計時誤差來確認.
比如傳感器計時精度為1%,而應用場景的時間精度要求需要控製在10s以內,則需要在1000s內同步一次時間.
在分布式的無線傳感器網絡應用中,每個傳感器節點都有自己的本地時鍾。
不同節點的晶體振蕩器頻率存在偏差,以及濕度和電磁波的幹擾等都會造成網絡節點之間的運行時間偏差,RBS同步協議的基本思想是多個節點接收同一個同步信號,然後多個收到同步信號的節點之間進行同步。
這種同步算法消除了同步信號發送一方的時間不確定性。
這種同步協議的缺點是協議開銷大TPSN協議采用層次型網絡結構,首先將所有節點按照層次結構進行分級,然後每個節點與上一級的一個節點進行時間同步,最終所有節點都與根節點時間同步。