北大焦博士对无线通信系统的开放性(Glasnost)、自由化(Free as in Freedom)做出了许多贡献。最近,他在一篇文章中讲到了802.11系统中的TSF时间戳。AP(路由器)在周期性广播的Beacon包中附带TSF,同时接入终端的网卡也会记录本地接收时刻的TSF。该时间戳精度高达微秒,可以实现极高精度时间同步。感谢802.11工作组将其规定为硬件强制标准,从而比应用层的毫秒级别的NTP精度能高一千倍,反观以太网的PTP在消费电子设备上普及是遥不可及的吧。
通过观测Beacon TSF和本地TSF,我们可以看出AP和本地网卡时钟/晶振的固有差异。
上面样本采集于2022年4月26日,AP为Aruba/HPE,终端为M1 MacBook Air。对接收到的每个beacon,取本地接收TSF作为横坐标,取包中附带的TSF和本地TSF作差,作为纵坐标。可见两TSF之差基本随时间线性变化,即两时钟存在固定频率差,线性回归得PPM(百万分误差)=-8.29。折算到一天,Aruba/HPE会比MBA的时钟慢0.7秒左右。
如果两端时钟高度同步,会出现微秒的粒度都「不够」的情况。
该样本采集于2021年10月7日,AP为某型360路由器,终端为ThinkPad X230s。时钟漂移作为物理现象自然不会是跳变,而是连续变化的。而TSF只精确到微秒,导致时间上临近的beacon的TSF漂移量小于1微秒,在图中就表现为诡异的阶梯了。具体而言,该小型路由器和PCIe网卡时钟频率之差PPM只有0.19,也就是5秒的时间(wall time),TSF的整数值才会产生1的误差。在图中一个xtick为25秒,从而大约有五段阶梯。
下面是一些标准规范和实际系统的PPM,可以和上面的8.29、0.19等数值相对照,感受一下普通民用级通信设备的精度已经达到怎样可怕的程度。当然了,据说GPS/北斗的授时用原子钟,是纳秒级别,不是什么石英晶振可以相提并论的,我们可以以后看一看手机GPS接收器能达到怎样的误差。
-
上面用到的TSF,在802.11标准中精度只要求达到±100 ppm;60GHz的WiGig/DMG则是要求±20 ppm
-
Bluetooth Low Energy,符号速率1Msym/s,即标称的1Mbps,要求符号速率精度±50 ppm
-
经典蓝牙,同样1Msym/s,要求±20 ppm
-
2022年6月29日,淘宝售RTL-SDR,以移动946.6MHz GSM基站做校准,测得本振频率误差16.672 ppm(-15.782kHz)
-
RTL-SDR.com V3加强版,数据手册,1 ppm TCXO
-
LTE规范,下行中心频率,要求±0.05 ppm
-
2021年秋,驻马店-黄淮创客版SDRplay RSP1,“日本进口0.5ppm高精度温度补偿晶振”,以电信B5 874.2MHz LTE基站做校准,测得本振频率误差0.83 ppm