基于PCIe总线的B码解码卡的设计与实现

来源 :计算机与网络 | 被引量 : 0次 | 上传用户:efan913
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:针对计算机时间同步需求,设计了一种基于PCI Express(PCIe)总线的IRIG-B码(B码)解码卡,该板卡接收外部B码信号并解调出B码时间信息,通过PCIe总线将B码时间信息传递给计算机进而完成计算机时间同步。测试结果表明,计算机能够同步到B码时间,且B码解码精度优于100 ns,能够满足多数应用需求。
  关键词:PCIe;B码;FPGA
  中图分类号:TN253文献标志码:A文章编号:1008-1739(2021)15-51-4
  


  0引言
  时间是靶场、电力系统、导航定位、计算机网络通信等领域的一个非常重要的参数,同步精度指标直接影响着系统工作的稳定性与可靠性。为保障系统中各个设备之间时间的准确性,通常配备时钟源作为时间基准,将B码等时频信号传输到用时设备,系统中计算机则配置B码解码卡从時钟源获取高精度的时间[1],从而与系统时间保持一致。鉴于B码解码卡仅用于传输时间信息,传输的数据量小,因此设计采用内嵌PCIe硬核的FPGA实现PCIe总线通信,通过这样的方式简化设计难度,降低制作成本,同时能够为计算机提供基于PCIe总线的时间信息[2]。
  1总体设计
  1.1 B码授时原理
  GJB 2991A-2008《B时间码接口终端通用规范》规定,B码的时帧速率为1帧/秒,1帧包含100个脉冲(码元),码元周期为10 ms。每个码元序号由索引计数所确定,索引计数由准时点起,0~99。码元脉宽分为5 ms,2 ms,8 ms,2 ms表征二进制0;5 ms表征二进制1;8 ms表征位置识别标志P[3]。在B码的帧格式中,时帧的参考标志由一个位置识别标志和相邻的参考码元组成,Pr为帧参考点,其宽度为8 ms。每10个码元有一个位置识别标志:P1,P2,P3,…,P9,P0,它们均为8 ms宽度。一个时间格式帧从帧参考标志开始,因此连续2个8 ms宽脉冲表明时帧中秒的开始,从第2个8 ms开始对码元进行编码,分别为第0,1,2,…,99个码元。B码共100个码元,使用部分码元表示年、天、时、分、秒、润秒锋信息,第2个8 ms的上升沿代表秒始信号,通过对B码进行解码进而获得时间信息及秒始信号,即完成B码授时,B码格式如图1所示[4]。
  


  2总体架构设计
  基于PCIe总线的B码解码卡由解码卡、驱动和上位机软件三部分组成。B码解码卡完成B码解码、搭建底层PCIe链路功能;驱动程序构建上位机软件与解码卡之间的PCIe链路;上位机软件通过驱动读取B码解码卡解出的时间信息,进而更新本地时间,完成计算机B码授时,总体架构设计如图2所示。
  


  3解码卡设计
  3.1硬件电路设计
  解码卡主要由电平转换芯片、FPGA、Flash及电源芯片等组成,其中FPGA选用XILINX公司内置PCIe硬核的SPARTAN 6系列,鉴于计算机上电过程中BIOS需要在500 ms内扫描到PCIe硬件,因此FPGA及Flash需要在500 ms内具备运行状态,为了保证FPGA上电程序导入时间满足上述要求,解码卡采用并行BPI Flash保证程序导入时间。硬件设计框图如图3所示。
  解码卡通过电平转换芯片将外部B(DC)码转换为LVTTL电平送入FPGA,FPGA可使用内时频或外时频解调出B码时间信息及1 PPS信号建立本地时间基准,计算机通过金手指为解码卡供电,并通过PCIe通信链路设置解码卡参数,读取B码解码时间。
  


  3.2 FPGA程序设计
  3.2.1 B码解码程序设计
  根据B码特性,2个连续8 ms码元的第2个8 ms代表秒始,因此搜索这2个码元最为关键[5-6],在获得秒始后,根据码元计数可得B码时间信息,具体流程如下。
  ①FPGA以晶振的10 MHz为参考时钟分频出1 kHz脉冲,对外部输入B码脉宽进行计数,判别出各个码元的脉宽;
  ②根据连续2个8 ms脉宽码元,获得秒始信号Pr;
  ③根据Pr位置及后续码元脉宽,获得各个位置码元值;
  ④存储各个码元值,根据国军标规定的年、天、时、分、秒、润、秒对应的码元位置及码元值,确定B码解码时间;
  ⑤根据Pr位置提取秒始信号,获得秒沿1 PPS信号并输出。
  在1 PPS信号上升沿秒以上进行加一秒操作,秒以下计数清零,同时秒以下计数以晶振10 MHz为时钟进行累加,提供秒以下时间信息。
  3.2.2 PCIe通信链路程序设计
  解码卡FPGA的PCIe通信链路程序由PCIe硬核及逻辑程序组成,通过例化FPGA厂家封装的IP核即可调用PCIe硬核,另外,可根据具体需求对PCIe IP核的各个寄存器进行设置,其中包括BAR、ID、性能寄存器、结构寄存器等多个参数。需要注意的是,当需要插入2张解码卡时,2张卡的ID不能相同,否则会造成冲突。
  完成IP核设置之后,在FPGA顶层文件中,根据上位机动态库寄存器地址及对应的操作、IP核参数等设计PCIe读写操作模块,建立与上位机之间的PCIe总线通信基础。FPGA建立PCIe硬核之后,需要调用PCIe的Tx_Engine、Rx_Engine才能进行PCIe收发操作,发送引擎和接收引擎状态机如图4和图5所示,根据Tx_Engine、Rx_Engine状态机,在FPGA中建立对应的控制逻辑即可完成FPGA的PCIe链路通信工作。   


  


  4上位机驱动及软件设计
  上位机需要使用驱动才能建立PCIe通信,完成对解码卡的读写操作。为简化应用程序设计、扩展用户应用,在安装驱动的基础上,建立动态库完成驱动函数的调用,然后用户可根据动态库接口,在相应的软件中调用动态库函数即可完成解码卡状态设置、B码时间提取等工作。
  4.1驱动及动态库设计
  为简化设计流程,使用Jungo公司的Windriver软件包完成驱动开发,该软件包可以大幅简化设备驱动程序开发和硬件访问程序,将底层芯片复杂操作(如DMA传输等)封装起来,并提供动态库接口调用说明即可。
  基于Windriver驱动接口,在Visual Studio环境下开展了动态库函数设计工作,动态库函数的优势在于用户应用软件不再关心底层硬件,有助于后续各种上位机应用软件开发。驱动及动态库函数是底层硬件与应用程序之间通信的桥梁,如图6所示。
  


  根据实际工程应用需求,设计了动态库接口函数,如表1所示。上位机用户软件通过调用动态库的接口函数即可完成解码卡状态设置及时间读写工作。当需要增加新功能时,在动态库函数中增加新的定义函数,并在FPGA中增加对应寄存器的操作即可。
  


  4.2软件设计
  完成驱动及动态库函数设计后,在上位机使用Visual Studio开展应用软件设计。为满足多种应用需求,软件界面设计97/08版本选择、内B码/外B码选择、内时钟/外时钟选择、外部B码状态、B码时间设置等功能,可设置解码卡工作在不同版本、不同B码源、不同时钟源(外部有高性能时钟源)。在软件运行过程中,将自动存储B码时间及B码状态,每小时保存一个“.txt”文件,当外部B码丢失或B码时间错误时,可为后续分析问题及解决问题提供数据支撑。软件界面如图7所示。
  


  5测试结果分析
  对解码卡进行测试,测试框图如图8所示。时频信号产生器内置铷钟,产生B码、10 MHz和1 PPS信号,分别送入解码卡及计数器;解码卡插到计算机PCIe×1槽位,解调外部B码并将解出的1 PPS送入计数器进行测量,同时,计算机存储测量结果及解码卡解码时间信息。
  


  解码卡时间存储结果如图9所示,最后一位为标志位,当外部B码有效时为A,无效时为V。
  


  时间间隔计數器测试结果如图10所示,时频信号产生器1 PPS与解码1 PPS存在55 ns左右的偏差,经分析,由于B码传输为单向传输,传输路径将导致时频信号产生器输出端B码与解码卡输入端B码信号存在12 ns固定的偏差,该偏差与线缆类型及线缆长度有关,解码卡解调1 PPS与B码输入存在33 ns左右偏差,该偏差与信号在FPGA内部传输路径有关。当前B码解码精度一般在200 ns,能够满足大多数应用的需求。
  


  6结束语
  介绍了基于PCIe总线的B码解码板卡的设计与实现,鉴于PCIe总线数据流量较小,板卡使用内嵌PCIe硬核的FPGA实现底层B码解码及PCIe通信,解码精度优于100 ns,与使用专用PCIe桥接芯片方案相比,方案更加简洁,同时降低了生产成本。另外,在上位机使用Windriver建立PCIe驱动,然后设计与FPGA程序对应的动态库及应用程序即可通过PCIe总线读取B码解码时间信息,最终完成对计算机的授时,实现计算机时间与系统时间同步。
  参考文献
  [1]任连芳.基于PCI+Express总线的数据传输与存储[D].南京:南京理工大学,2010.
  [2]张森峰.基于PCI+Express的数据传输适配卡设计[D].太原:中北大学,2009.
  [3]张明迪.基于FPGA的IRIG-B码解码设计[D].哈尔滨:哈尔滨工程大学,2011.
  [4]陈利.基于FPGA的IRIG-B码基带产生电路的设计与实现[D].苏州:苏州大学,2014.
  [5]耿家庆.新一代的GPS-B码解码授时系统设计[D].济南:山东大学,2014.
  [6]吴炜,周烨,黄子强.FPGA实现IRIG-B(DC)码编码和解码的设计[J].电子设计工程,2010,18(12):162-164.
其他文献
偷工减料时有发生,在高风险、高速的工作中更是如此。但是,如果员工足够诚实地承认,当他们将易受攻击的代码上线时,可以将一系列已损坏的产品组合在一起。Osterman Research的一项新研究发现了一个令人担忧的趋势———81%的开发人员承认故意推送易受攻击的代码。这使得威胁行为者更容易发起网络攻击。  但我们提到这一点并不是为了消极对待。相反,这是企业和机构向内看的一个很好的提示。减少供应链脆弱
当前我国经济发展越来越迅速,相应的网络与计算机技术发展速度也在加快,推动了人工智能技术的发展,并使该技术在多个行业得到广泛应用,人们对其重视度越来越高。人工智能技术发展潜力较大,是一种新型技术,在大数据网络安全中得到广泛应用,安全性较高,对降低安全事故发生率具有非常重要的作用。为提升大数据网络安全性,保证网络运行安全,应仔细探究人工智能技术在大数据网络安全防御中的应用。本文对数据网络安全防御中人工
期刊
伴随社会经济的不断发展和进步,各行各业的信息化建设也进入了白热化状态,医院的信息化建设也在不断深入。随着社会人口的不断增加,人们对生活质量的追求明显提升,医院就诊的人数也在增加,促使医院的信息系统变的越发复杂。信息系统作为支撑医院正常运转和发展的重要工具,对医院的整体规划和信息化建设都具有重要的影响。  针对信息化需求的不断增多,医院在建设过程中也需要引进和增设不同的系统,但为保证每个系统都能正常
近日,光峰科技控股子公司峰米科技在2021中國智慧城市国际博览会举办主题为“无限想象”的新品发布会,重磅推出峰米R1超短焦激光投影仪(简称峰米R1)。峰米科技是光峰科技与小米科技联合成立的企业,也是激光电视与智能投影企业的佼佼者,致力于为消费者打造集娱乐、智能生活于一体,独具品牌特色的大屏激光投影产品。  作为峰米科技着力打造的全新品类———超短焦激光投影仪,峰米R1化身“空间大师”,通过创新性的
云计算、大数据的出现和发展引领社会步入了全新的信息科技时代。如今大数据、人工智能等技术被广泛应用到人们日常生产生活的各个方面。在计算机网络技术领域中,人工智能的运用使网络的技术水平和运行能力得到了进一步提升,计算机已不再是传统意义上的独立工具。为提高计算机的数据处理能力和准确性,更好地掌控人工智能技术的应用场景,本文就大数据时代人工智能在计算机网络技术中的运用展开研究。  大数据和人工智能  大数
针对在嵌入式平台上采用深度学习目标检测识别模型很难在精度和速度之间保持平衡的问题,提出一种基于深度可分离卷积块和反向特征融合结构的方法对YOLOv3模型进行改进,并通过基于距离的非极大抑制和损失函数的设计(DIoU-NMS和DIoU-Loss),最终实现在快速目标检测的同时提升了检测准确率。实验结果表明,在VOC2007+2012数据集上,实时性满足79FPS的同时m AP可达到80.22%,并在
摘要:随着信息化技术的快速发展,高校的信息系统日趋完善,各种信息系统如学习平台、教学和办公应用系统都运行在数据中心,数据中心存储了大量的业务信息。对高校数据中心存储的各类应用数据进行抽取、转化和处理,建立面向主题的数据仓库。对系统数据进行挖掘和探索式分析,以可视化驾驶舱的方式直观地展现学校的实际数据状态,通过对数据的可视化分析可以为学校在办学、人才培养和学生管理等方面提供数据支持和决策。  关键词
摘要:电子邮件欺骗是最常见的电子邮件攻击类型,其攻击及检测是电子邮件取证研究中一个具有挑战性的问题。提出利用内存取证技术来获取浏览器的实时进程提取电子邮件头进行分析,采用Message-ID检测,结合nslookup查询提取MX记录来检测和识别用户收到的伪造电子邮件。实验测试和分析结果表明,可以有效检测电子邮件欺骗,精度高、误报少,并且不会中断机器的常规操作。  关键词:电子邮件欺骗;内存取证;M
近日,安全研究人员披露了惠普打印机驱动程序中存在提權漏洞的技术细节,该驱动程序也被三星与施乐公司所使用。该漏洞影响了16年间众多版本的驱动程序,可能波及上亿台Windows计算机。攻击者可以利用该漏洞执行绕过安全防护软件、安装恶意软件、查看、修改、加密、删除数据和创建后门账户等操作。  SentinelOne的研究人员表示,该漏洞(CVE-2021-3438)已经在Windows系统中潜伏了16年
期刊
近日,英特尔宣布跟Sumber合作为下一代数据中心开发基于浸没式冷却的余热回收技术。英特尔和Submer正利用至强架构的服务器系统以及Submer的精密冷却技术为行业展示对于数据中心高品位废热的回收解决方案。英特尔和Sumber的这项前沿技术合作将加速数据中心行业对于浸没式液冷技术的应用以及生态链的建设。  英特尔院士数据中心和人工智能事业部Mohan Kumar表示:“近期在浸没式冷却技术方面的