基于FPGA的IRIG-B码解码器设计
摘要 针对基于单片机的IRIG—B码解码器解码精度低、工作稳定性差等问题,提出了一种基于FPGA的IRIG—B码解码器设计。在实现过程中着重分析了输入 IRIG—B码信号的毛刺问题,并采用三级D触发器后接或门的方法,彻底消除毛刺对本系统稳定性的影响。通过仿真验证了本系统具有解码精度高、工作稳定性强、易于实现等优点。
关键词 IRIG—B码;解码;毛刺
美国靶场司令委员会(Range Commanders Council,RCC)下属机构靶场间仪器组(Inter—Range Instrumen—tation Croup,IRIG)为保证靶场试验中各参试设备协同工作,制定了一种时间标准IRIG—B码(简称B码),由靶场时统站发送该码,各设备接收此信号后再结合其测量数据,从而达到测量数据的时间同步。我国靶场测量、控制、计算、通信、气象等测试设备,均采用IRIG—B码作为时间同步标准,其特点是可靠性高、接口标准、通用规范及使用灵活方便。
1 B码简介
IRIG—B码为一种串行的时间格式,其中每个脉冲称为码元。IRIG—B码的帧速率为1 fip·s-1,一帧数据由100个码元组成,分为第0、1、2、…、99个码元,每个码元长度为10 ms。时间格式中秒、分、时均用BcD码表示,低位在前,高位在后。第1、2、3、4、6、7、8码元属于“秒”信息,共占用7个码元;第10、11、 12、13、15、16、17码元属于“分”信息,共占用7个码元;第20、21、22、23、25、26码元属于“时”信息,共占用6个码元;第30、 31、32、33、35、36、37、38、40、41码元属于“天”信息,共占用10个码元。
IRIG—B码由位置识别标志、参考码元、码字和索引标志4种码元组成。
B码的位置识别标志脉宽为8 ms,每帧B码中有10个位置识别标志码元:P1、P2、…、P10。每10个码元有一个位置识别码,位置识别标志的重复率为码元速率的10%。
![](../img/eep/emb/emb-49246qlmkq3out3e.jpg)
参考码元Pr脉宽也为8 ms,作用是识别帧的起始时刻,“准时”参考点为参考码元的前沿。
![](../img/eep/emb/emb-4924710b40eodggl.jpg)
B码的二进制“1”和“0”的脉宽分别为5 ms和2 ms,是用于传递秒、分、时等重要信息的码元。
![](../img/eep/emb/emb-49248x1z2szl0j2k.jpg)
![](../img/eep/emb/emb-49249aqdshwd30ad.jpg)
索引标志码元脉宽为2 ms,位于“秒”、“分”、“时”、“天”信息的十位和个位之间。
![](../img/eep/emb/emb-49250llwepcrd4zq.jpg)
图6为本文B码的一帧数据示意图,后续实验就是对此帧数据进行解码,此帧数据代表的时间信息为:110天8时7分21秒。
![f.jpg](../img/eep/emb/emb-49251aze20latbb5.jpg)
2 FPGA解码
FPGA解码首先需要对码元进行识别,对脉冲计数,以脉冲下降沿作为计数结束。采用有限状态机对第0、1、2、…、99码元进行有序地解码,首先判断出参考码元,再根据5 ms和2 ms码元的位置提取出正确的时间信息。由于不同的系统可能采用不同解码时钟,为使系统有更好的重用性,需要对时钟频率进行归一化。
2.1 消除毛刺
在组合电路、反馈电路和计数器中都可能产生毛刺信号,往往一个毛刺信号会影响整个电子系统的稳定性。由于D触发器对毛刺信号不敏感,通常的处理方法是通过 D触发器对输入信号进行“过滤”,但这种方法有效的条件是毛刺不出现在D触发器时钟的上升沿,且持续时间不能维持1个时钟周期,如图7所示,否则,将会放大毛刺信号,对整个电子系统造成更不利影响。
![](../img/eep/emb/emb-49252cidzxlo3f3f.jpg)
若在P码元的5 ms处出现一个毛刺,而不作有效地毛刺处理,将会出现码元误判,甚至会导致整帧数据错误,影响各系统时间同步。输入信号经过图8所示的处理后,不利于系统的毛刺将被“剔除”,从而增强系统的稳定性。
![](../img/eep/emb/emb-49253lii3rlkfm52.jpg)
当输入信号处于低电平时出现毛刺,图8的处理方法将会放大毛刺,但对于整个系统是没有影响的,因为本系统采用高电平计数的方式识别码元,当脉宽很窄时,便认为是毛刺干扰,舍去,比上升沿识别码元更简单且更具抗干扰性。这种毛刺处理方法,虽然引入了额外的组合电路,但根据输入信号的特点,是不会产生毛刺的。
2.2 对脉冲宽度进行计数和码元识别
本文采用的归一化时钟为1 MHz,脉宽2 ms、5 ms、8 ms的计数分别为2 000、5 000、8 000,由于脉宽不可能精确到某个值,所以需要放宽计数判别各个码元。计数在1500~2 500表示2 ms脉宽,计数在4 500~5 500表示5 ms脉宽,计数在7 500~8 500表示8 ms脉宽。输入信号i_DATA处于高电平时,开始计数,当时钟i_cLK采集到i_DATA的下降沿时,即停止计数,并以w_UP_DOWN信号作为脉冲结束标志。
2.3 提取“秒”、“分”等信息的状态机
STATE_IDL1表示处于检测码元,当检
- Reed Solomon编解码器的可编程逻辑实现(06-21)
- 巴西的新电视机顶盒采用意法半导体(ST)的最先进的解码器技术(03-24)
- 基于DSP的脱机视频编/解码系统(02-01)
- 带DSP功能的超低功率音频编解码器帮助解决音频方案挑战(05-04)
- 语音编解码算法G.723.1在DSP上的优化(05-18)
- TMS320C54xx与TLV320AIC24型编解码器接口(05-21)