既然是传感器网络,在整个网络中应该是使用了很多传感器。

传感器的用量大,在考虑整个系统成本时,单个传感器的成本对整个系统的成本影响比较大。

设备实现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协议采用层次型网络结构,首先将所有节点按照层次结构进行分级,然后每个节点与上一级的一个节点进行时间同步,最终所有节点都与根节点时间同步。