专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
FPGA
基于FPGA的IRIG-B(DC)码解码
2020-02-23 10:45
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
FPGA
17648
2
2
随着电力自动化水平的提高,电力对时间的同步要求越来越迫切、时间同步的精度要求越来越高。采用GPS全球卫星定位系统的时间同步功能,是提高电力生产和管理自动化水平、确保运行质量的一条最佳途径。国家电力公司、各大电网和省电力公司,高度重视电力系统的时间同步系统的建设,明确要求电力的生产运行系统装置采用卫星时钟进行校时。由于目前GPS接收机采用IRIG-B(DC)时间码的格式输出标准时间信息,所以本文提出了一种基于FPGA来实现的IRIG-B(DC)时间码解码设计方案。
IRIG-B码简介
IRIG-B(DC)时间码(简称B码)是由IRIG所属的TCG(Telecommunication Group)制订的一种串行时间码。B码是一种串行时间码,帧长为1 s,共包含100个码元。它采用脉宽调制方式编码,共有三种宽度的码元,分别表示“0”,“1”.“P”,其中“P”为标志位,如图1所示,码元的总宽度为10 ms,“0”的脉宽为2 ms;“1”的脉宽为5 ms;“P”的脉宽为8 ms。
B码的1帧从连续两个“P”开始,其中第一个标志位为P0,第二个标志位为PR,PR的上升沿是1 s的准秒时刻,即当前帧表示的秒时刻的起点。如果规定PR所在位置为第0个码元,那么每帧分别有编号为0,1,2,…,99的码元。标志位P1,P2,P3,…,P0的位置分别在9,19,29,…,99。B码包含了当前时刻的秒,分,时,天信息和每天按秒计时的秒数(TIME OF DAY,TOD),如图2所示。
秒信息从00~59,分为“秒”和“十秒”两部分,分别使用BCD码表示。“秒”使用1,2,3,4码元,“十秒”使用6,7,8码元。分信息也是从00~59,分为“分”和“十分”,“分”使用10,11,12,13码元,“十分”使用15,16,17码元。小时信息从00~23,分为“时”和“十时”,“时”使用20,21,22,23码元,“十时”使用25,26码元。天表示的是从1月1日到当前日期的总天数,如1月1日,天数为1。天数从1~365(闰年为366),分为“天”,“十天”和“百天”三部分,“天”使用30,31,32,33码元,“十天”使用35,36,37,38码元,“百天”使用40,41码元,TOD时间使用80,81,82,83,84,85,86,87,88,90,91,92,93,94,95,96,97共17个码元,采用直接二进制表示从每天的第一秒到当前时刻的总秒数。23点59分59秒对应的TOD时间为86 399 s的IRIG-B(DC)码如图2所示。注意,秒、分、时、天、TOD表示都是低位在前,高位在后;第5、14、24、34码元为索引标志码元。另外,标志位P5到P8之间的码元为控制码元,可以根据实际使用时的协议来制订使用方法。
FPGA解码方案
FPGA是现场可编程门阵列(Field ProgrammableGate Array)的简称。FPGA器件及其开发系统是开发大规模数字集成电路的新技术。在电子产品设计中有较广泛的应用。在本设计中采用的是Xilinx公司Spartan3系列中的XC3S1500芯片。它具有29952个逻辑单元,150万个门。XC 3S1500具有333个管脚,采用FG456封装,支持在线可编程。
Xilinx公司提供了支持FPGA开发的软件ISE,通过它可以进行原理图编辑,VHDL文本语言编辑,并支持这两种编辑方式的混合设计。在本设计中采用的是ISE 10.1软件。完成了设计输入并成功地进行了编译,只能说明设计符合一定的语法规范,并不能保证设计可以获得所期望的功能,这时就需要通过仿真对设计进行验证。ModelSim是业界十分优秀的语言仿真器,它提供十分友好的调试环境,仿真速度快,精度高。在本设计中采用的是ModelSim SE 6.6e。
在本工程设计中采用了VHDL语言,自顶向下的设计方法,实现了工程的层次化管理。为了使得产品稳定、可靠,采用全同步设计,使整个工程都在一个时钟上升沿时刻改变状态。这样可以避免冒险和其他不定态的出现。其软件设计模块基本框图如图3所示。
全局控制模块
全局控制模块产生全局控制信号count,对其他模块进行时序管理。首先,将输入的10 MHz频率倍频到50 MHz,使得整个工程以50 MHz的频率运行。其次,判断输入的B(DC)码码元的上升沿,在码元的上升沿时刻对全局控制信号count复位,接下来在50 MHz频率的控制下全局控制信号count开始计数。count的低17比特是2.2 ms的计数器,count的第17,18比特是对B(DC)码码元采样点的标记,范围是0~3。count的第19~25比特是对B(DC)码码元的统计,范围是0~99。最后,搜索帧头的功能。对B码采样模块输出的数据进行判断,当搜索到连续两个标志位P0,PR时,则认为搜索到帧头,开始BCH译码,否则认为没有搜索到帧头,控制信号count复位,重新搜索。
B码采样模块
B码采样模块在B(DC)码码元上升沿时刻开始以2.2 ms间隔对其采样,由于B码的码元宽度为10 ms所以每个B(DC)码码元采样到四个值。‘P’码元采样到的数据是“1110”,如图4所示。同理,‘0’码元采样到的数据是“0000”,‘1’码元采样到的数据是“1100”。将采样到的值反馈给全局控制模块以便进行帧头搜索并传递给BCH译码模块。
为了防止干扰造成的抖动对输入信号造成误判,采取的修正方法是在全局控制信号count的控制下,在B(DC)码码元的每个采样点处间隔两个主钟连续采样三次.然后将这三次的采样值两两按位与,再将相与的结果相或便得到该采样点处的真实值,有效地防止了干扰造成的信号误判。
BCH译码模块
BCH译码模块在控制信号count的控制下对B(DC)码采样模块输出的数据进行判断,当为“1110”时,对应的码元信息为‘P’;当为“0000”时,对应的码元信启、为‘0’;当为“1100”时,对应的码元信息为‘1’,并按照秒、分、时、天、TOD在B(DC)码中所对应的码元位置进行相应的组合。
天、时、分、秒、TOD提取模块
天、时、分、秒、TOD提取模块是将BCH译码模块中输出的数据存入天、时、分、秒、TOD寄存器中。图5是在ModelSim SE 6.6下的仿真,TOD为86 399,365天23时59分59秒分别存入了TOD、天、时、分、秒寄存器。从图5观察TOD、天、时、分、秒输出正确。
1 PPS提取模块
1 PPS提取模块是产生1 PPS信号。上电复位后能够产生高电平宽度为5 ms,周期为1 s的游离1 PPS信号,当全局控制模块搜索到帧头位置后,通过全局控制信号count来修正1 PPS信号上升沿的位置。图6是在M0delSim SE 6.6下的仿真1 PPS信号输出。观察图6可知1 PPS信号输出正确。
串口模块
串口模块是将天、时、分、秒、TOD串行输出到B(DC)码解码上位机软件。在串口模块中按照规定的组帧协议将天、时、分、秒、TOD的BCD码组帧输出。利用本厂设计生产的B(DC)码发生器输出固定时间的B(DC)码,然后用本设计方案设计试制的B(DC)码解码器解码,最后通过串口连接到PC机上进行测试。图7是B(DC)码解码上位机软件的测试结果,显示正确。
结语
传统的IRIG-B码解码器采用微处理器设计,器件较多,结构较复杂,尤其是在受到外界干扰的情况下,会出现死机等故障。而采用FPGA设计的解码器集成度高、设计灵活方便,在很大程度上解决了上述问题。
随着我国电力自动化水平的不断发展,电力生产设备的可靠性和小型化是必然的趋势。FPGA在这方面能发挥较好的作用,其应用可使电力生产设备结构更加简单紧凑,性能更加可靠、稳定。
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
1992dongzi
1楼-- · 2020-02-23 12:44
B码对时,沙发
加载中...
一周热门
更多
>
相关问题
如何用FPGA驱动LCD屏?
5 个回答
请教一下各位专家如何用FPGA做eDP接口?
6 个回答
FPGA CH7301c DVI(显示器数字接口)没有数字输出
7 个回答
100颗FPGA的板子,开开眼界
6 个回答
求教自制最小系统版
10 个回答
基于FPGA的X射线安检设备控制器
2 个回答
CycolneIVGX核心板,可扩展PCIE,光纤接口,大家来鉴赏一下
6 个回答
关于VHDL或Verllog程序稳定性的问题
11 个回答
相关文章
嵌入式领域,FPGA的串口通信接口设计,VHDL编程,altera平台
0个评论
Xilinx的FPGA开发工具——ISE开发流程
0个评论
基于FPGA的详细设计流程
0个评论
干货分享,FPGA硬件系统的设计技巧
0个评论
一种通过FPGA对AD9558时钟管理芯片进行配置的方法
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
FPGA
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
一周热门 更多>