美国疑似恶意修改GPS时间
事情起因:今天我在测试辉光钟的程序,其中有一个功能就是获取卫星时间,校准本地时钟模块。当时授时功能已经完成了,在写音效和按钮控制,授时误差±0.5秒,授时频率1分钟。北斗GPS双模,语句GNRMC。 直到有一次授时后,没过几秒又来了一次。我感到奇怪,拿手机比对了一下,发现GPS慢了30多秒,起初以为是手机慢了,于是又拿手机跟授时中心比较,发现相差不到1秒。然后我有怀疑是程序出BUG了,但也不太可能,这个功能我2天前就写好了,一直没出问题,而且就算出问题也应该是直接死机崩溃或者穿越几百年这种离谱错误,不会突然慢这么几秒钟,思考过程中又校对了一次时间,还是快了30多秒。这下信号干扰也被排除了,此时,结论似乎浮出水面。
[天才win11没有精确到秒,但也能证明↑] 通过图片不难看出至少慢了20秒,实际上大概在35秒。 这时我就开始怀疑GPS改时间了(毕竟美国这种事也没少干),于是,我把模块设置成北斗单模,BDRMC语句,再次授时后时间准确了!我当时还不信,多次把模块设置成双模和GPS单模,结果,只有北斗是准的!混合和GPS都不准!当时已经够震撼了,我愣在那,模块再一次刷新,您猜怎么着,它又准了!
之后我无论再怎么切换模式,都非常精准,好像啥事没发生过一样!对就4分钟,从20:02-20:06!GPS的时间离奇偏移了30来秒!而且只有GPS偏移了! 虽说我可以99%确定就是美国改时间了,但这里我还是叠个甲:首先,我看的仅仅是时间不代表其他信息也不准确。其次,这只是我个人遇见的情况请勿以偏概全。最后,以上仅仅是我个人推测实,际情况可能与我推测不符。
[其实~我只是懒得和杠精抬杠罢了~] 那GPS到底准不准呢?这种情况还会不会复现呢?是偶发事件还普遍事件?于是我运用我那浅薄的Arduino和Python技能,做了一个对比装置。我称它为时间比较器。
[程序文件我放在末尾了,认为有BUG的可以自己看看,虽说我写的很烂,但影响授时的BUG应该是没有的] [还有,解析数据为啥不用TinyGPS++?因为这库太费内存存储了,我内存1KB, 存储14KB,这货要占一半,并且我也用不到那么多功能,所以就自己写了。自己写的程序总共才占用45%+32%,数据解析部分仅占用18%+2%]
[硬件是在测试辉光钟,懒得动了,反正兼容] 这个装置的原理很简单:GPS模块接收卫星数据,通过串口传给Arduino,Arduino负责解析数据并把数据通过串口传给电脑。电脑上由Python接管,它负责读取串口数据和系统时间,并对数据进行处理和转化。最后比较两个时间的差值,如果大于3秒,则触发记录,将异常数据写入到日志。这样不仅可以无人值守长时间记录,还不落下任何蛛丝马迹。异常信息一目了然。
当前装置正在运行,同时我也录制了视频,如果真发现异常了,到时候我再发视频出来。记录是从今天00:10分开始记录的,开发测试过程中有过一次5秒误差,但当时还在开发,日志功能还没做好,也就没记录下来。目前截止文章写完还没有任何异常数据。 最后,我再大胆猜测一下:我感觉这件事和阿三发射的探测器有关~但也只是猜测~ 为啥这么说?因为我当时发完这件事的QQ动态,打开B站就看到了这个↓
[不搞什么阴谋论,只是单纯觉得有点关系~] 程序下载链接:https://pan.baidu.com/s/1xmHj8gHvOTXC79BMmGFpug?pwd=9966 提取码:9966 包含Python的对比程序和Arduino的解析程序,另外我正在开发的辉光钟主程序也上传了,我刚入门俩月,写的都很烂,欢迎找BUG和提出意见~ 最后,都看到这了,给个免费的赞吧~