1、2023 年第 2 期仪 表 技 术 与 传 感 器InstrumentTechniqueandSensor2023No2基金项目:国家自然科学基金面上项目(51675506);科技部国家重点研发计划(2018YFF01011503)收稿日期:20220405基于国产化 FPGA 的时统系统设计邹悦,张维达,崔明,张甫恺,王岩(中国科学院长春光学精密机械与物理研究所,吉林长春130033)摘要:文中设计了基于国产化 FPGA 芯片 PG2L100H 的多输入源、多频可选输出的时统系统,实现了包括 GPS、北斗、IIGB 码的多输入源实时切换,并对在进行时间信息的解编码后授时给设备其他系统进行同
2、步,同时在软件设计中加入加三移位运算方法来优化 LUTs 的使用率。该设计在实验室环境下进行测试,具有成本低、同步精度高、稳定性强等优点,对于光电测控设备现有技术更新具有实用价值。关键词:FPGA;PG2L100H;GPS;北斗;IIGB 码;时统系统中图分类号:TP273文献标识码:A文章编号:10021841(2023)02006504Design of Time Unity System Based on Localized FPGAZOU Yue,ZHANG Wei-da,CUI Ming,ZHANG Fu-kai,WANG Yan(Changchun Institute of Opt
3、ics,Fine Mechanics and Physics,Chinese Academy of Sciences,Changchun 130033,China)Abstract:A multi-input source and multi-frequency optional output timing system based on the domestic FPGA chipPG2L100H was designed,which realized the real-time switching of multi-input sources including GPS,Beidou an
4、d IIG-B codes,and decoded the time information in progress The post-grant time was used to synchronize other systems of the equipment,and athreeshift operation method was added to the software design to optimize the utilization rate of LUTs The design was tested in la-boratory environment,and had th
5、e advantages of low cost,high synchronization accuracy,and strong stability,and has practicalvalue for updating the existing technology of photoelectric measurement and control equipmentKeyWords:FPGA;PG2L100H;GPS;Beidou;IIGB code;time unity system0引言在靶场测控实验中,当多个设备同时对飞行目标进行跟踪测量并记录数据时,为保证记录的飞行轨迹精准,时间统
6、一尤为重要。目前,时间统一系统的设计一种是基于单片机+FPGA,另一种是基于 DSP+FPGA14,其中 DSP+FPGA 的集成度更高;还有一种是基于单个进口 FPGA 进行设计56。文中 FPGA 芯片采用 PG2L100H,其性价比高,并且带有自主软件及 IP 方案。PG2L100H 包含逻辑资源约 100K 的 4 输入 LUT,芯片的 IO 资源和时钟资源都十分丰富。现有的时统系统 设 计 通 常 只 采 用 一 种 时 间源78,本文设计的系统是多输入源实时无缝切换的多源时统,设备使用过程中,在信号较好的位置采取GPS 或北斗进行授时,在接收不到 GPS、北斗信号时,可以用更加稳定
7、的 IIGB 码进行授时,此设计可以使系统不受干扰,达到稳定工作的目的。1硬件设计原理硬件电路组成主要包括 FPGA 芯片 PG2L100H、数字电位计 X9313、模数转化器 AD7888、GPS 数据接收芯片、北斗数据接收芯片、板卡上与外围数据通讯的芯片以及外围电路。硬件设计原理如图 1 所示。图 1硬件设计原理框图11DC 码接收原理DC 码输入电路如图 2 所示。图 2DC 码输入电路图66Instrument Technique and SensorFeb2023DC 码接收时,将 TTL 传输的 DC 码接入光电耦合器进行隔离降噪处理,处理后的信号送入 FPGA 内部进行解码处理。
8、12AC 码接收原理AC 码输入电路如图 3 所示,接收 AC 码时,信号会经过变压器隔离输入产生两路对称的 AC 模拟信号,其中一路信号经过零比较器 MAX9313 产生与其同频的信号,另一路经运算放大器生成幅值范围 033 V 的 AC 信号。生成的两路信号都通过 FPGA 的 IO管脚送入内部逻辑进行解码处理。图 3AC 码输入电路图13X9313 自动增益电路图 3 中,数控电位器 X9313 的INC、UD、CS都连接到 FPGA 的管脚上,利用 FPGA 控制CS为电选端,当拉到低电平时为使用 X9313 芯片910。当芯片被选中时接收其他 2 个信号,UD是控制滑动端变量的管脚,
9、INC信号出现下降沿时,根据 UD的信号值,计数器数值进行增加 1 或减少 1 的操作。除此之外,X9313 还有 3 个管脚 VH、VL、VW,其中 VW 是中间抽头。当 U D等于 1 时,VW 向 VH 端移动,使得两端之间的电阻减小;U D等于 0 时,VW 向 VL 移动,使得两端之间的电阻变大,从而起到电压调节的功能。通过X9313 可以将输入的 AC 信号幅值调整,将电压的幅值动态调整到合适的值后输入到 FPGA 的解码模块进行解码。2软件设计原理按照实现的功能划分,软件设计包括 GPS 信号和北斗信号解码模块、DC 信号解码模块、AC 信号解码模块、对外通讯模块、逻辑资源优化模
10、块。其中 AC 信号解码模块和 DC 信号解码模块实现了代码复用,将AC 信号转换成 DC 信号,由 DC 信号解码模块进行数据处理,显著节约逻辑资源并降低代码的复杂性。此外,软件设计采用 Pango Design Suite 20211 开发平台,使用 Verilog 语言结合硬件设计进行开发。时统系统软件设计框图如图 4 所示,首先选择接收的时间源,根据不同的时间源选择相对应的接收模块、解码模块进行数据处理。处理后的数据根据实际需求将时间信息同步到设备上的其他系统中,从而达到设备上所有系统时间统一的目的。图 4时统系统软件设计框图21GPS 解码模块接收 GPS 的串口信号,并根据 NME
11、A0183 协议进行解码。NMEA0183 协议是原本以 ASCII 码的形式用于海用电子设备通信上的协议,后来 GPS 和北斗也都运用了该协议进行通讯2,11。FPGA 的 GPS 解码模块主要接收$GPGGA 和$GPZDA 两组串口信号,将$GPGGA 信号和$GPZDA信号各个字段中的 UTC 时间、跟星状态、跟星数、经度纬度、高程值以及高程单位等数据进行获取。具体解码逻辑如图 5 所示。第 2 期邹悦等:基于国产化 FPGA 的时统系统设计67图 5GPS 接收数据流程图22DC 信号编解码221DC 信号解码IGIB 码是用于对需要进行时间统一的设备,进行时间同步的一种编码,被工业
12、领域广泛应用。除此之外,IIG 码还包括 IGIA、IGID 等 6 种授时精度有区别的时间码标准,其中 IGIB 码是应用最广泛的一种。IGIB 码由 100 个码元组成,其中包括秒脉冲信号和 TOD(time of day)信息,秒脉冲信号用来进行时钟同步,TOD 信息中主要包括 h、min、s 信息和每年重新开始累计的天数信息以及年份信息。如图 6 所示,该段 P 到 P1 之间的信号表示的是 s 时间信息。码元的脉冲宽度分为 8 ms、5 ms、2 ms,分别代表标志位、二进制“1”、二进制“0”。其中 2 ms 宽度的脉冲还可以代表索引标志,通常出现在每一段数据的中间位置进行标记。图
13、 6 中的索引标志就出现在 s 信息的个位数据和十位数据的中间位置,作为标记,从而在示波器等设备上观察时能清晰辨认当前时间。此外,当连续 2 个 8 ms 的标志位出现时,第 2 个脉冲的上升沿代表秒脉冲信号1213。图 6IGIB 码因此,在进行解码过程中,需要运用 FPGA 逻辑模块进行如下工作:找到连续 2 个 8 ms 标志位来确定秒脉冲信号的位置;判断起始标志位和终止标志位中间的 5 ms、2 ms 宽度的码元并记录;将判断出的二进制数据转换成具体时间。FPGA 处理逻辑如图 7 所示。图 7DC 码解码流程图222DC 信号编码时间源为 DC 信号、AC 信号、GPS 信号或北斗信
14、号,系统可针对相应协议进行解码,并进行数据格式,转换成二进制的 TOD 信息。再经过 FPGA 生成固定脉宽信号的模块以 DC 信号的格式发送。23AC 信号编解码231AC 信号解码AC 信号与 DC 信号比较如图 8 所示,AC 信号的波形每个较高幅值的正弦波对应 1 ms DC 信号的高电平,每个较低幅值的正弦波对应 1 ms DC 信号低电平。图 8AC 信号与 DC 信号比较解码时,首先将 AC 信号经过变压器输出两路信号,一路信号经过过零比较器后生成1 000 Hz 的方波68Instrument Technique and SensorFeb2023信号,另一路信号经过绝对值放大
15、电路生成峰峰值为33 V 的正弦信号,并利用 AD7888 模数转化芯片对输入的模拟信号进行转换,将与模拟信号同频的方波信号作为采样时钟进行采样,因为在实际测试中过高过低的幅值都会对 AC 解码产生影响,因此需要在软件设计中根据采样点的幅值判断是否利用 X9313 对进入的幅值过高或过低的信号进行处理。逐次迭代到合适的幅值高度。此时将采样的高幅值数值和低幅值数值都进行记录取平均值,将取得的正弦信号峰值与该平均值进行比较,大于平均值时输出高电平,小于平均值时输出低电平。从而将 AC信号转为 DC 信号后输入到 DC 解码模块进行解码。逻辑框图如图 9 所示。图 9AC 码解码流程图232AC 编
16、码与 DC 编码类似,AC 编码也需要在接到选择接收源是 DC 信号、AC 信号、GPS 信号或北斗信号以后,将收到的相应数据进行解码,并进行数据格式转换,转换成二进制的 TOD 信息。再经过 FPGA 中的 IP 核设置 2 组幅值高度相异的正弦信号,根据二进制的 TOD时间信息进行筛选,从而利用发送模块以 AC 信号的格式输出。24LUTs 优化由于时间码在转换过程中涉及进位、判断是否是闰年、月份和天数的转换等,经常会用到“%”、“/”等运算来解决。因此代码的 LUTs 占用率高达 89%以上,严重影响了代码的实现性和可读性。因此,加入了加三移位法来进行二进制数据转 BCD 码操作。采用减少运算量的 IP 核,可将 LUTs 占用率优化 50%,程序中针对处理的数据进入的状态机逻辑如图 10所示。图 10LUTs 优化逻辑图3结束语本文的时统系统通过单个国产化 FPGA 及较简单的外围电路设计,实现了稳定、高精度接收数据并实时授时的功能,改善了过去使用多个芯片进行数据处理的复杂性。经实验室测试,该系统操作更加便捷,具有成本低、对数据的处理灵活可靠的特点。参考文献:1 陈言,蒋琪,王