[发明专利]基于PWM捕获的高鲁棒性IRIG-B直流码解码方法有效
申请号: | 202110288600.2 | 申请日: | 2021-03-18 |
公开(公告)号: | CN113067657B | 公开(公告)日: | 2022-10-21 |
发明(设计)人: | 王越;张发忠;赵红军;郑林博;王可川;刘骞;许芹 | 申请(专利权)人: | 烟台东方威思顿电气有限公司 |
主分类号: | H04J3/06 | 分类号: | H04J3/06;H04L1/00 |
代理公司: | 烟台双联专利事务所(普通合伙) 37225 | 代理人: | 申国栋 |
地址: | 264003 *** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 pwm 捕获 高鲁棒性 irig 直流 解码 方法 | ||
1.一种基于PWM捕获的高鲁棒性IRIG-B直流码解码方法,其特征在于:包括如下步骤:
S1:配置单片机定时器TIMER的输入通道为PWM输入模式,使能该通道的捕获中断;
S2:在PWM捕获产生的IRIG-B直流码信号上升沿、下降沿中断中获取码元周期和码元占空比,根据码元周期判断IRIG-B链路是否有误,若IRIG-B链路无误,则根据占空比判别码元类型,并将码元类型送入高鲁棒性解码状态机;
S3:解码状态机对码元进行解析,最终直接在单片机内部获得高精度授时;
步骤S2中所述判断IRIG-B链路是否有误的方法步骤为:
在IRIG-B直流码信号的上升沿定时器TIMER将计数器值CNT锁存至寄存器CCR1,同时复位CNT并产生一个定时器中断CC1_IRQ;
当CC1_IRQ来临时,在其中断处理函数中读取CCR1值,赋值给全局变量irig_b_period,计算irig_b_period/Fclk的值,Fclk为TIMER的运行频率;
如果计算结果与10ms的误差在设定范围内,则判定IRIG-B链路无误,进一步判别码元类型;如果误差超出设定范围,则判定IRIG-B链路有误,不对码元进行区分、解析;
步骤S2中所述判别码元类型的方法步骤为:
在IRIG-B直流码信号的下降沿将计数器值CNT锁存至寄存器CCR2,并产生一个定时器中断CC2_IRQ;
将CCR2值赋值给变量irig_b_pulse,计算irig_b_pulse/Fclk的值,当计算结果与2ms的误差在设定范围内时判定码元类型为0码元,当计算结果与5ms的误差在设定范围内时判定码元类型为1码元,当计算结果与8ms的误差在设定范围内时判定码元类型为P码元;
步骤S3所述解码状态机包括三个状态:IRIG_B_FIND_P0搜寻PO码元状态、IRIG_B_GET_P搜寻P码元状态和IRIG_B_GET_DATA获取数据状态;
所述解码状态机对码元进行解析的方法具体包括:
S31:将一帧IRIG-B直流码的100个码元按10个分割P码分割为10个数据,解码状态机每接收一个码元,执行步骤S32:
S32:解码状态机根据不同状态和接收到的不同码元类型进行如下解析:
第一,当状态机状态为IRIG_B_FIND_P0时,若接收码元为P码元,则清零接收变量irig_data和数据计数变量data_cnt,将状态置为IRIG_B_GET_P并返回步骤S2;若接收码元不是P码元,则直接返回步骤S2;
第二,当状态机状态为IRIG_B_GET_P时,若接收码元为P码元,则清零比特位计数变量bit_cnt,将状态置为IRIG_B_GET_ DATA并返回步骤S2;若接收码元不是P码元,则将状态重置为IRIG_B_FIND_P0并返回步骤S2;
第三,当状态机状态为IRIG_B_GET_DATA时,若接收码元为P码元,则将状态重置为IRIG_B_FIND_P0并返回步骤S2;若接收码元为0码元或1码元,则对相应数据域进行填充,按比特位填充至接收变量irig_data中,然后bit_cnt加一,转到步骤S33;
S33:根据比特位计数变量bit_cnt的值判断包含分割P码元、数据域码元、索引标志码元在内的10码元数据是否接受完毕,若未接受完毕则返回步骤S2;接受完毕后将计数变量data_cnt加一,状态置为IRIG_B_GET_P,转到步骤S34;
S34:判断计数变量data_cnt的值,若data_cnt小于10,则返回步骤S2,循环执行解码程序,直到填充、解析完一整帧IRIG-B直流码;
步骤S3所述在单片机内部获得高精度授时的方法为:填充、解析完一整帧IRIG-B直流码后,根据填充的irig_data数组,判断秒、分、时的索引标志比特位是否为0,若不为0则认为此帧数据无效,重置状态为IRIG_B_FIND_P0并返回步骤S2;若比特位是0,则根据irig_data解析时间数据、控制数据和SBS时间码,然后将状态置为IRIG_B_FIND_P0并返回步骤S2,以进行下一帧数据的接收。
2.如权利要求1所述的基于PWM捕获的高鲁棒性IRIG-B直流码解码方法,其特征在于:还包括通过设置分频值N改变TIMER的运行频率Fclk,所述TIMER的运行频率Fclk为FA/N,FA为定时器TIMER的总线频率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于烟台东方威思顿电气有限公司,未经烟台东方威思顿电气有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110288600.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种用于培训考核的监督方法及系统
- 下一篇:一种大米生产加工用除尘装置