主题:CC2420中讨论的其他部件
尊敬的各位:
我正在使用与CC2420一起安装的TelosB进行无线电通信。
这里我尝试实现TelosB与网络时钟之间的时钟同步。
到目前为止,我已经设法检索到了网络的时钟。
系统的工作方式如下:
- 标记开始其自身的计数器,增量为7.25ms
- (counter * 7.25 的值)/(10^-6)将值转换为微秒。
- 仅当数据包类型正确时,标记才会接收。
- 网络的时钟值也乘以7.25ms,以与标签的计数器进行比较。
- 将对这些值进行比较,如果两个值之间的差异大于15us,则必须同步。 但是,仍有一些出错的情况会随着时间的推移而增加(TelosB的时钟漂移)。
- 要纠正此错误,需要跟踪过去网络的时钟和接收时的内部计数器值,并计算相对于TelosB和网络的已用时间的比率。 此数值是漂移系数,用于校正增量。
- app_vars.compensatedtime =((app_vars.current_time - app_vars.capture_previous_time)/app_vars.alpha)+app_vars.capture_time; whre alpha is
- app_vars.localdelta = app_vars.current_time - app_vars.previous_time;
- app_vars.networkdelta = app_vars.capture_time - app_vars.capture_previous_time;
- app_vars.alpha = app_vars.localdelta/app_vars.networkdelta;
这样,我就能得到一个小于15 us的相对误差,而我不能。 我认为我在守则中可能犯了一个错误。
此代码随附在本文件中,非常感谢您提供任何帮助。
谢谢你