(北方信息控制研究院集团有限公司 北斗事业部,江苏 南京 211153)
目前,我国广泛采用的卫星定位系统为北斗卫星导航系统和全球卫星定位系统(Global Positioning System,GPS),它们的作用在于为用户提供精确的时间、定位信息。IRIG-B码同步方式的准确度和效率较高且工作方式灵活,因此被广泛地应用在工程上。IRIG-B码包括直流B码和交流B码,本文采用的是直流B码。
直流B码是一种脉宽调制码,一般将一个脉冲称为一个码元,码元信号的周期为10 ms,一帧B码包含100个码元,即一帧B码的周期为1s。其中,标志位“P”用脉冲宽度为8 ms的码元来表示,数字信号“1”用脉冲宽度为5 ms的码元来表示,数字信号“0”用脉冲宽度为2 ms的码元来表示。B码中的信息包括年、月、日、时、分、秒等,且均用8421BCD码表示,遵循低位在前,高位在后,个位在前,十位在后的排列。图1为一帧B码的具体格式,其中两个“P”脉冲代表帧头。
图1 B码帧格式
在本文方案中,单片机首先接收到的消息中包含的信息为日期和时间,消息格式如图2所示。消息的每部分之间用逗号分隔开,如’$GPZDA,093857,18,05,2020,00,00*6C’。
图2 消息格式
单片机在接收到具有上文中图2格式的消息后,首先,在特定位置提取消息中的年、月、日、时、分、秒等信息,并统一先按照平年由年、月、日的信息计算天数。接着,由年份信息判断是否为闰年,若为闰年,则在计算出的天数上加1,否则保持不变。单片机输出的消息格式为天数+时+分+秒的形式,并以ASCII码的形式经串口输出至FPGA中,本文中串口的波特率为115200。以上文中提到的消息为例说明具体过程,消息’$GPZDA,093857,18,05,2020,00,00*6C’代表的天数为139,因此,单片机最后输出的消息为’139093857’。
单片机完成信息提取及转换后,FPGA经串口读取单片机输出的9个ASCII码,同时将每一个ASCII码写为二进制的形式,且只保留低四位。以上文中单片机经串口输出的消息’139093857’为例说明过程,得到的36个比特按照秒、十秒、分、十分、时、十时、天、十天以及百天的格式,遵循低位在前,高位在后的原则可以被排列如下形式:111010100001 110010010000100111001000。IRIG-B码要求最终的编码格式如图1所示,FPGA按照此编码格式可生成100个码元。参照直流B码的标准,若码元为0,则输出占空比为25%的方波,若码元为1,则输出占空比为50%的方波,否则输出占空比75%的方波。100个码元的总显示时间要求为1s,每个码元方波显示的持续时间为10 ms。当码元为0时,即高电平的持续时间为2 ms,低电平的持续时间为8 ms,其余码元以此类推。
本文的硬件平台采用的是单片机与FPGA相结合的模式。单片机采用的是基于高性能ARM Cortex-M4处理器的STM32F405RGT6,它拥有的ARM Cortex-M4 32位RISC处理器的编码效率较高,且支持一套DSP指令,频率高达168 MHz。STM32F405RGT6集成了高速嵌入式存储器,如1 MB的闪存、192 KB的SRAM、4 KB的备份SRAM,以及连接到两个APB总线、三个AHB总线和32位AHB总线矩阵的增强型I/O和外围设备,即使在几个高速外设同时工作的情况下,STM32F405RGT6也能高效执行指令。STM32F405RGT6需要与ST-LINK V2烧录器配合使用,将程序烧写至样机中。
FPGA硬件平台基于Xilinx公司的K7系列芯片XC7K325TFFG676-2,其工作电压为0.97~1.03 V,工作温度为-40~100 ℃,最大时钟频率为1818 MHz,总RAM位数为16404480,CLB数量为25475,逻辑单元数为326080,支持高达1866 Mb/s的DDR3接口。除了以上特性之外,XC7K325TFFG676-2还拥有具有高精度和低抖动特性的时钟管理模块。
在FPGA实现过程中,FPGA的输入时钟为外部50 M晶振,将此时钟分频得到代表10 ms和1 ms的时钟留待后续使用。首先,设置一个计数器来判断9个ASCII码是否完成接收,如果接收完毕,则将存储在移位寄存器中的ASCII码输出。同时,由于FPGA接收的来自于单片机的数据形式为ASCII码,因此,需要将此ASCII码转换为实际对应的二进制数据。接着,根据要求的编码格式生成状态机并设置不同的触发条件生成不同的波形。图3为程序烧写至样机后得到的结果波形图,从图3中可以看出接收到的消息为139093857。最后,得到的码元为22111001012000…,2代表编码格式中的“P”脉冲,可见实际结果与理论结果完全一致,由此可验证方案和硬件实现的正确性和可行性。
图3 FPGA波形图
本文提出的IRIG-B码同步方案的实现采用单片机与FPGA相结合的方式,由硬件测试结果表明,其同步精度高,同步速度较快,稳定性和可靠性较高,具有较高的工程应用价值。