基于北斗卫星的低成本授时系统包括硬件和软件两部分,硬件基于PIC单片机开发,通过9针串口连接在到Linux计算机(服务器或PC机均可)或嵌入式仪器设备上,硬件部分如图1所示。
图1 北斗授时仪硬件部分外观
软件部分主要包括一条名为bdst的Linux指令,这条指令接受三个选项,其中两个选项要求参数,关于bdst命令的详细情况说明如下:
bdst bdst -option [argument]
上位机软件实现的这条Linux命令用来实现设置北斗系统中授时服务器与北斗授时仪连接的串行端口号、查看服务器的连接参数和上一次成功对时的具体时间信息和直接启动对时进程。
选项
-p PortNo
选项p用来设置Linux服务器与北斗授时仪连接的串行端口号,串行端口号用数字表示,位于0和9之间,需要注意的是,Linux操作系统与Windows不一样,在Windows中,系统串口编号从1开始,而Linux从0开始,因此如果与北斗授时仪连接的是Linux授时服务器的第一个串口——/dev/ttyS0,那么设置命令就是:bdst-p 0。在系统连接好以后,应该首先配置串行端口号,如果没有配置,系统默认使用串口0。
-s
选项s用来显示已经配置好的系统参数,包括上位机使用串行端口号和最近一次成功对时的具体时间。
-r time
最初设计选项r的目的,是在一个确定的分钟数之后启动对时进程,考虑到对时进程一旦启动,会一直接收来自北斗授时仪的输出数据,直到得到一个有效的时间。这个有效时间除了要求成功定位以外,还要求输出数据格式完全正确,才采用下位机反馈的时间信息,并在获取有效的时间信息之后结束进程,因此参数time目前只接收now,以后系统扩展时,也许会接收数字参数。
配置好上位机软件使用的串口号,通过Linux下的定时作业控制来实现对指令bdst -r now的自动调用。也可以通过Linux任务定时启动授时进程。定时任务设置如图2所示。
图2 利用任务定时启动JobDdst