CN110224702A - 时间码irig-b自适应解码装置及解码方法 - Google Patents
时间码irig-b自适应解码装置及解码方法 Download PDFInfo
- Publication number
- CN110224702A CN110224702A CN201910437757.XA CN201910437757A CN110224702A CN 110224702 A CN110224702 A CN 110224702A CN 201910437757 A CN201910437757 A CN 201910437757A CN 110224702 A CN110224702 A CN 110224702A
- Authority
- CN
- China
- Prior art keywords
- code
- signal
- chip
- feet
- coding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G04—HOROLOGY
- G04G—ELECTRONIC TIME-PIECES
- G04G7/00—Synchronisation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M5/00—Conversion of the form of the representation of individual digits
- H03M5/02—Conversion to or from representation by pulses
Abstract
本发明涉及一种时间码IRIG‑B自适应解码装置及解码方法,包括输入电路;输入电路包括:电B码输入电路和光B码输入电路;电B码输出电路输出到光电隔离电路相连接;B码输出电路和光电隔离电路与信号选择电路相连接;信号选择电路与中央处理器相连接。本发明时间接收设备可自适应2种物理模式的输入IRIG‑B码信号,无论输入那种物理接口的输入信号,程序都可以自适应识别;提高了时间接收设备的兼容性;支持自动信号识别,用户只要把光或电的IRIG‑B码信号接入设备,无需设置,自动识别出哪路通道有信号,并自动对其解码;在当前使用的信号被切断后,系统将自动转换到有信号的通道。
Description
技术领域
本发明涉及一种解码装置及解码方法,具体的说,是涉及一种时间码 IRIG-B自适应解码装置及解码方法。
背景技术
随着当今电子技术日新月异的发展,时间同步得到了越来越重要的应 用。时间码IRIG-B作为一种重要的时间同步传输的方式,以其实际突出 的优越性能,成为时统设备首选的标准码型,广泛的应用到军事、电力等 重要行业或部门。
在全球一体化的今天,把中国国防科技工业与民用科技工业相结合, 实现军民两部门合作共赢成为我国的国家战略。
传统时频接收产品在接收IRIG-B码信息时均定制成某一种特定格 式,存在接收方式单一,接收兼容性差的问题。
针对上述现有技术中的不足,本发明提供一种接收信号方式多样、自 适应解码的技术。
本发明可以自适应国军标IRIG-B(GJB 2991A-2008)格式和电力系统 的时间同步系统IRIG-B码(DLT 1100.1-2009)。
当外部输入IRIG-B码信号后,本发明自主识别当前IRIG-B码的类 型,并且进行有针对性的解码处理。
当输入过程中编码发生变化时,系统也可以自动识别是否发生了编码 改变,通过逻辑识别后,自动切换到相应的解码策略。接收方式上支持差 分电信号和多模光纤信号2种方式,进一步加强兼容性。
本发明是对“军民融合”思想的一种实践。本发明可对军用、民用2 种IRIG-B码进行自适应的时间解码。采用本发明可增强时间同步系统接 收信息的兼容性。
发明内容
针对上述现有技术中的不足,本发明提供可自适应2种物理模式的输 入IRIG-B码信号,无论输入那种物理接口的输入信号,都可以自适应识 别;提高了时间接收设备的兼容性;支持自动信号识别的时间码IRIG-B 自适应解码装置及解码方法。
本发明所采取的技术方案是:
一种时间码IRIG-B自适应解码装置,
包括输入电路;
输入电路包括:电B码输入电路和光B码输入电路;
电B码输出电路输出到光电隔离电路相连接;
B码输出电路和光电隔离电路与信号选择电路相连接;
信号选择电路与中央处理器相连接。
电B码输入电路包括接线端子P1;
接线端子P1接收外部输入的RS485-IRIG-B码信号;
芯片U1为MAX485;
接线端子P1接U1的6脚和7脚作为信号输入,输入信号经过芯片U1 将输入信号转换成TTV5V电平信号;
由芯片U1的1脚输出;
输出到芯片U3的光电隔离器件,信号隔离后,输出到芯片U4进行输 入信号选择。
电B码输出电路包括光纤接收器件OPTIC-RXD1;
光纤接收器件OPTIC-RXD1对外部输入的光纤IRIG-B码信号进行光电 转换;
转换后将输入信号转换成TTV5V电平信号;
光纤接收器件OPTIC-RXD1的6脚输出;
输出到芯片U4进行信号选择;
芯片U4为4路2与非门器件;
其12脚和4脚接MCU进行控制;
当芯片U4的12配置成低电平时,U4的11脚一定是常高;
测试U4的13脚输入什么信号都无效。
此时芯片U4的4脚配置成高电平,则U4的5脚被6脚反相输出到9 脚;
因为10脚常高,所以8脚将正相输出5脚的信号。从而实现了信号 选择;
芯片U3为SN74VHC1G125,将两路输入信号进入芯片U3的2脚;
芯片U3将信号转换成TTL3.3V信号,由芯片U3的4脚输出;
输出后经R4进行阻抗匹配后,将这个信号命名为STM直流B码主信 号;将其接入芯片U9的8脚。
芯片U9为MCU芯片,型号为STM32F10RE。
第一接插件P1的1脚与第一芯片U1(MAX485)的6脚连接;
第一接插件P1的2脚与第一芯片U1(MAX485)的7脚连接;
第一芯片U1(MAX485)的8脚连接VCC 5V A供电;
第一芯片U1(MAX485)的2脚连接GND-A;
第一芯片U1(MAX485)的3脚连接GND-A;
第一芯片U1(MAX485)的5脚连接GND-A;
第一芯片U1(MAX485)的4脚悬空;
第一芯片U1(MAX485)的1脚连接第三芯片U3(6N137)的3脚;
第一芯片U1(MAX485)的1脚连接测试点T1;
第三芯片U3(6N137)的2脚连接电阻R3的2脚;
第三芯片U3(6N137)的8脚连接供电VCC 5V;
第三芯片U3(6N137)的8脚连接电阻R2的1脚;
第三芯片(6N137)的6脚连接第四芯片U4的13脚;
第三芯片U3(6N137)的7脚悬空;
第三芯片U3(6N137)的5脚接地
电阻R3的1脚连接VCC 5V A供电;
电阻R2的2脚连接第三芯片U3(6N137)的6脚;
光纤接收器件(OPTIC-RXD1)的2脚连接5V供电;
光纤接收器件(OPTIC-RXD1)的3脚连接地;
光纤接收器件(OPTIC-RXD1)的7脚连接地;
光纤接收器件(OPTIC-RXD1)的6脚连接第四芯片U4的5脚;
光纤接收器件(OPTIC-RXD1)的6脚连接测试点T3;
光纤接收器件(OPTIC-RXD1)的6脚连接电阻R6的2脚;
电阻R6的1脚连接5V供电
第四芯片U4的12脚连接第9芯片U9(STM32F10RE)的14脚;
第四芯片U4(SN74LS00D)的4脚连接第9芯片U9(STM32F10RE)的 15脚;
第四芯片U4(SN74LS00D)的11脚连接第四芯片U4(SN74LS00D)的 10脚;
第四芯片U4(SN74LS00D)的6脚连接第四芯片U4(SN74LS00D)的9 脚;
第四芯片U4(SN74LS00D)的8脚连接第三芯片U3(SN74VHC1G125) 的2脚;
第四芯片U4(SN74LS00D)的8脚连接测试点T2
第三芯片U3(SN74VHC1G125)的5脚连接5V供电;
第三芯片U3(SN74VHC1G125)的1脚接地;
第三芯片U3(SN74VHC1G125)的3脚接地;
第三芯片U3(SN74VHC1G125)的4脚接电阻R4的1脚;
电阻R4的2脚接第9芯片U9(STM32F10RE)的8脚。
一种IRIG-B自适应解码装置的解码方法,
步骤1,开机MCU芯片进行初始化处理,MCU对芯片U4进行控制;
默认将电信号通道放入后端进行检测;
步骤2,等待TTL3.3V电平的输入信号进入MCU;
步骤3,设定时间内判断有无信号输入;
步骤4,设定时间内无信号输入,MCU对芯片U4进行控制,切换另外 一条通道的信号进行检测,执行步骤3;
步骤5,当信号输入后,采用捕获、提取编码,得到每一次编码的上 升沿和下降沿;
程序默认上升沿作为识别编码的前沿触发,下降沿为编码数据的时长 识别。
步骤6,判定是否得到基准码元,未得到基准码元执行步骤5,得到 基准码元执行步骤8,输入信号有规律误码,执行步骤7;
步骤7,输入信号反相识别与处理,执行步骤5;
步骤8,对全部码元进行解码;
步骤9,判断是否有明确的编码类型,有明确的编码类型,执行步骤 10,无明确的编码类型,执行步骤11;
步骤10,开启编码类型无效标志,执行步骤11;
步骤11,特殊的识别策略,判断当前编码类型是否有效,当前编码类 型无效,执行步骤12,当前编码类型有效,执行步骤14,
步骤12,判断是否发生了编码切换;
此步骤主要为了解决输入编码的突然改变的情况。例如,刚开机输入 的一直是军标码,突然输入被改成了国标码。程序在步骤11时,会对特 殊码进行采集,发现不符合当前的军标码特征时,就切换到步骤12,在步 骤12里面判断是否码值特征是否符合国标特征,如果符合,且累计到了 一定的有效数量(防止偶然一帧的错误数据),就可以判定发生了“编码 切换”。程序即可去步骤13执行切换动作。
步骤13,执行切换动作;
步骤14,开启编码雷友有效标志;
步骤15,启动相应的编码策略;
步骤16,得到编码信息。
对输入信号的固定电平时长进行判断,由IRIG-B码的原理可知,一 旦出现12ms以上的同一电平状态即为信号异常状态;
程序发现这种异常状态,开启输入信号异常标志,程序进入对异常信 号处理模式;
异常信号是指明显出现非法的状态。如正常信号一定是一个连续的方 波脉冲,每个脉冲的宽度不超过8ms。脉冲与脉冲之间的间隔也小于等于 8ms。所以,程序一旦发现,输入信号维持在某一电平状态(0或者1)都 认为信号出现了异常。这种异常通常是输入信号开路或者短路了。程序检 测到出现异常状态,要进行标识,并启动应对措施,不要对已经判断是无 效的输入信号进行解码。典型的案例就是:如输入信号接触不良,传输过 程中有100ms信号断开了。这样编码中就会出现一段全是0的数据。但是 恰巧这100ms没有出现在关键码值位置。就会出现:程序正常解码,但解 出来码值有一段是错误的。
否则,若信号无异常,则每次捕获出有效编码都放入B码的处理函数 进行编码识别。
开机MCU(Microcontroller Unit)微控制单元进行初始化处理;
等待稳定有效的外输入信号;
采用捕获的方式提取输入编码的码值,通过对关键码值的识别,判断 输入的信号编码类型;
确定解码策略;
实施解码处理;
时时侦测输入IRIG-B码的编码是否发生异常,当发生异常时,判别 输入的信号编码类型;
判决是否进行策略切换。从而实现对“军民”两种编码的自适应。
每一个2ms信号视为“0状态”,每一个5ms信号视为“1状态”, 每一个8ms信号视为“P状态”;
处理方式见下表:
表1输入编码的P状态的判别
首先用定时器采集输入信号的脉冲宽度。得到宽度后用了多个if, else和标志位指针来实现对不同状态下输入脉冲宽度做判别。
当收到连续2个P状态后,提取码值函数的位置指针归零,开始正式 提取码值;
提取码值函数循环100次,将周期为一秒的IRIG-B码信息完全提出 出来。将提取信息存入相应的数组;
之后解码函数对数组的内容进行整理。码值及其定义见表。
首先2个连续的P状态是信号编码的码头(起始位)。码头之后1秒 内有100个码值。抓住了码头,就能正常的解码。码头之后开启100次的 循环,将整个编码内的数据提取出来。之后的下一秒,重复这个动作,找 到码头,然后将码头之后的数据提取出来。
表内的分别是我国的对国军标IRIG-B(GJB 2991A-2008)格式和电力 系统的时间同步系统IRIG-B码(DLT 1100.1-2009)。代表军用和民用的2 大主流格式。
表2两种B码值定义对比表
自适应解码装置及解码方法,,包括解码判别处理步骤:
程序组合出通用的秒、分、时、天数信息;
再将针对国军标IRIG-B(GJB 2991A-2008)格式和电力系统的时间同 步系统IRIG-B码(DLT 1100.1-2009)不通用的做特殊处理;
步骤1,提取43位年十位标志;
国军标编码时,此位将交替出现“0”“1”,当电力标准时,此位将 恒定为0;
由此得到判断43位恒定为0就是判断当前输入信号是否是电力标准的 充分条件;
步骤2,提取45~48位的年信息;
当“年十位标志”=1时,表示年的十位,反之,表示年的个位;
军标编码时,此位将交替出现年信息;
理论上分析这个数据是可以全为0的,也可以不为零;
但当电力标准时,此位将恒定为0;
由此得到判断45~48位恒定为0就是判断当前输入信号是否是电力 标准的充分条件;
步骤3,提取50~53和55~58的数据,组合成年信息;
军标编码时,此位将恒定是0;
但当电力标准时,此位将是不确认的;
由此得到判断50~53和55~58的数据位恒定为0就是判断当前输入 信号是否是国军标编码的充分条件;
步骤4,对已知条件进行判别;
43、45-48数都是0,表示输入的信号是电力标准;切换模式为电力 模式;
当前1通道输入的B码是电力码;43/45-48有数,且50-53 55-58 的数是0表示输入的信号是国军标码;
如果43有数,且50段没数;切换模式为GJB模式;表示当前1通道 输入的B码是GJB2008;
步骤5:正常编码进入时,
进入后立刻清除另外一种解码方式有效数量的统计,并且对输入的编 码进行有效数量的积累,累计5个时,改变当前编码的解码方式;
步骤6:程序对编码切换的处理;
当输入信号发生编码切换时,对应的计数值将发生变化;累计5个 时,改变当前编码的解码方式。程序恢复到步骤5的正常解码状态;
步骤:7:程序对编码错误的处理。当输入信号发生编码切换时,将清 除解码类型有效的标志,避免出现错码;
步骤8,解码判别结束后的验证;
上面7个步骤实现了编码类型的识别;
接下来要对编码的内容进行一系列验证;
1是对信号的有效性进行进一步的判别,对输入信号发生切换情况进 行有效性的处理,避免切换过程中的错误信息打上有效标志对外输出,产 生错误;
2是对输入信号的合法性进行识别,对错码进行剔除;
如果当前判断是GB-B码;表示是电力B码;
当程序自认为在电力状态下,进入了一个军标编码;
则45-48位,出现了非0数据,且50-60位是0;
发现1通道B码错误,错误类型1,表示年信息异常;可能将发生信 号切换;正常处理年信息,否则,认为当前1通道输入的B码是 GJB2008;
当程序自认为在国军标编码状态下,进入了一个电力协议判断;则 45-48位,出现了0数据;发现1通道B码错误,错误类型1,表示年信 息异常;可能将发生信号切换;正常处理年信息;
步骤9,判定当前处于解码电力标准B码的状态下,45-48位,出现 了非0数据,且50-60位是0;
则表示很可能当前输入的编码格式发生了改变;
显示相应的错误标志,表示接收状态异常;
对外输出时间信息时,加注信号无效的标志;
反之当程序认为当前处于解码国军标B码的状态下,当45-48位,出 现了0数据,且50-60位出现非0数据;
表示输入信号切换到了电力标准;
显示相应的错误标志,表示接收状态异常;
对外输出时间信息时,加注信号无效的标志;
步骤10,进行完编码标识类型判断和编码有效性检验后,针对编码的 类型解码。
本发明在解码判别结束后,增加了一个判断环节;对输入信号的合法 性进行校对。解决偶然出现的连续3个P状态码导致对正反相判断信号无 法恢复的问题。
在极端情况下,如果在正常的B码中偶然出现3个连续的P状态码 时,输入信号反相的标志将被置1;
B码信号恢复;则错误累计不到3次;
则输入信号反相的标志始终不被恢复;
因此在解码后增加一个编码合法性纠错码机制;
即:如果已经得到有效的B码信息。则输入信号反相的标志就被清 零。表示当前B码是有效的,没有反相;
如果一个编码信息的月日时分秒信息都符合合法性,表示输入信号一 定不是反相的。清除反相标志。
时间码IRIG-B自适应解码装置及解码方法,包括时间信息整理步 骤:
步骤1,将当前时间转成秒数;加一秒的功能;
如果当前判断是GBJ-B码;表示是国军标B码;
B码发的是UTC0的时间;还原成时间;
将结构体的时间信息转换成无符号64位数据;记录当前时间信息;
将无符号64位数据转换成结构体的时间信息;
步骤2,B码信号是每秒一组数据,当检测到这一帧的准秒时刻时, 这一秒的准秒时刻已经过去了,可以说当前检测到的永远是已经逝去的上 一秒;
所以,要输出1PPS信号,只能在下一秒的准时沿时刻+1秒进行输 出;因为是加一秒输出,就涉及到时间进位功能;
程序上先构建一个Void CalcSecond()函数将接收到的时间信息转 换成一个起始于公元元年开始的64位秒信息(公历秒),之后对公历秒 进行+1操作(B_BCodeTimeModule.NTPsecond++),再之后构建一个Void dealIntegerTime()函数将公历秒转换成年月日时分秒信息;
步骤3:军标IRIG-B(GJB 2991A-2008)格式和电力系统的时间同步 系统IRIG-B码(DLT 1100.1-2009)的时间源选择是不一样的;
GJB 2991A-2008采用的时间编码是UTC时间;
而电力系统的时间同步系统IRIG-B码(DLT 1100.1-2009)采用的是 北京时间;
之间存在一个8小时的固定时差;
在编码提取完毕后,还要对输入的时间信息进行整理;
判断当前格式是军标IRIG-B(GJB 2991A-2008)格式,则将结构体的 时间信息转换成无符号64位数据后,对数据增加8小时,转换成北京时 间;
如果当前是电力系统的时间同步系统IRIG-B码(DLT 1100.1-2009) 则不需要进行处理,因为其本身就是北京时间。
本发明相对现有技术的有益效果:
本发明技术的时间接收设备可自适应2种物理模式的输入IRIG-B码 信号,无论输入那种物理接口的输入信号,程序都可以自适应识别。这样 提高了时间接收设备的兼容性。在实际使用环境中,当信号源设备距离信 号接收设备较近时(1公里以内),通产采用RS485电平信号进行传输。 因为这样可以降低成本。当信号源设备距离信号接收设备较远时(大于1 公里),电信号因为信号衰减和电磁干扰的原因将无法使用,所以将采用 光纤信号进行传输。这时,用户不得不增加光电转换模块、协议转换模块 之类的附加产品。这样不但增加了成本,还因为增加了外置转换设备导致 额外的风险。采用本发明,就可以完美解决这一问题。本发明支持光电2 种接口。且支持自动信号识别。用户只要把光或电的IRIG-B码信号接入 设备,无需设置。本发明将自动识别出哪路通道有信号,并自动对其解 码。在当前使用的信号被切断后,系统将自动转换到有信号的通道。
本发明可对输入的RS485电平的IRIG-B码信号进行光电隔离。避免 由外部接口输入的大电压、大电流对系统内部产生破坏。现有技术通常对 外输入的电信号不加隔离措施。因此外部设备的干扰信号会接入到本设 备。可能有静电、漏入强电等意外事件发生时,直接损坏本设备。所以本 发明采用隔离保护措施。对外输入信号,进行光电隔离。信号隔离方式没 有采用常规的隔离变压器隔离,而是采用光耦合器方式。实现:信号单向 传输,输入端与设备完全实现了电气隔离,抗干扰能力强,工作稳定,无 触点,使用寿命长,传输效率高。从而避免了隔离变压器的输入绕组与输 出绕组偶然同时触及带电体导致隔离失败的风险。其核心部件是高速光 耦,光耦的响应速度决定了信号的准确度。
本发明可自适应2种编码格式的输入IRIG-B码信号,对国军标IRIG- B(GJB2991A-2008)格式和电力系统的时间同步系统IRIG-B码(DLT 1100.1-2009)进行智能识别,智能解码。当输入的编码格式发生改变 时,本发明可自动切换相应的解码策略。现有产品都只能针对某一种编码 进行解码。本发明是对“军民融合”思想的一种实践。本发明可对军用、 民用2种IRIG-B码进行自适应的时间解码。采用本发明可增强时间同步 系统接收信息的兼容性。
本发明时间码IRIG-B自适应解码装置及解码方法,支持2种输入信 号模式;分别是RS485电平的电IRIG-B码和光纤信号的光IRIG-B码;外 输入信号是指经过接收电路,将2种输入信号都处理成TTL3.3V的电 IRIG-B码信号;2种IRIG-B码进行自适应的时间解码;增强时间同步系 统接收信息的兼容性;
本发明时间码IRIG-B自适应解码装置及解码方法,还可以本发明可 自适应输入编码的极性,当出现信号极性相位相反时,可自动调整接收方 式,进一步增强时间同步系统接收信息的兼容性;可以灵活的配置输入信 号源。RS485电平的电IRIG-B码和光纤信号的光IRIG-B码。
本发明时间码IRIG-B自适应解码装置及解码方法,可自适应2种物 理接口模式输入的IRIG-B码信号,自动选择有信号的物理接口通道,并 实现解码处理;当2种物理接口有效信号同时接入时,默认采用先接入的 信号。
本发明时间码IRIG-B自适应解码装置及解码方法,对输入的RS485 电平的IRIG-B码信号进行光电隔离。避免由外部接口输入的大电压、大 电流对系统内部产生破坏;
本发明时间码IRIG-B自适应解码装置及解码方法,当输入的编码格 式发生改变时,可自动切换相应的解码策略;可自适应IRIG-B码信号极 性,智能解码。当发现输入的编码电平是反相时,可自动做出调整。
附图说明
图1是本发明时间码IRIG-B自适应解码装置及解码方法的输入信号 处理与MCU解码电路设计原理图;
图2是本发明时间码IRIG-B自适应解码装置及解码方法的结构示意 图;
图3是本发明时间码IRIG-B自适应解码装置及解码方法的解码程序 流程图。
具体实施方式
以下参照附图及实施例对本发明进行详细的说明:
附图1-3可知,一种时间码IRIG-B自适应解码装置,
包括输入电路;
输入电路包括:电B码输入电路和光B码输入电路;
电B码输出电路输出到光电隔离电路相连接;
B码输出电路和光电隔离电路与信号选择电路相连接;
信号选择电路与中央处理器相连接。
电B码输入电路包括接线端子P1;
接线端子P1接收外部输入的RS485-IRIG-B码信号;
芯片U1为MAX485;
接线端子P1接U1的6脚和7脚作为信号输入,输入信号经过芯片U1 将输入信号转换成TTV5V电平信号;
由芯片U1的1脚输出;
输出到芯片U3的光电隔离器件,信号隔离后,输出到芯片U4进行输 入信号选择。
电B码输出电路包括光纤接收器件OPTIC-RXD1;
光纤接收器件OPTIC-RXD1对外部输入的光纤IRIG-B码信号进行光电 转换;
转换后将输入信号转换成TTV5V电平信号;
光纤接收器件OPTIC-RXD1的6脚输出;
输出到芯片U4进行信号选择;
芯片U4为4路2与非门器件;
其12脚和4脚接MCU进行控制;
当芯片U4的12配置成低电平时,U4的11脚一定是常高;
测试U4的13脚输入什么信号都无效。
此时芯片U4的4脚配置成高电平,则U4的5脚被6脚反相输出到9 脚;
因为10脚常高,所以8脚将正相输出5脚的信号。从而实现了信号 选择;
芯片U3为SN74VHC1G125,将两路输入信号进入芯片U3的2脚;
芯片U3将信号转换成TTL3.3V信号,由芯片U3的4脚输出;
输出后经R4进行阻抗匹配后,将这个信号命名为STM直流B码主信 号;将其接入芯片U9的8脚。
芯片U9为MCU芯片,型号为STM32F10RE。
第一接插件P1的1脚与第一芯片U1(MAX485)的6脚连接;
第一接插件P1的2脚与第一芯片U1(MAX485)的7脚连接;
第一芯片U1(MAX485)的8脚连接VCC 5V A供电;
第一芯片U1(MAX485)的2脚连接GND-A;
第一芯片U1(MAX485)的3脚连接GND-A;
第一芯片U1(MAX485)的5脚连接GND-A;
第一芯片U1(MAX485)的4脚悬空;
第一芯片U1(MAX485)的1脚连接第三芯片U3(6N137)的3脚;
第一芯片U1(MAX485)的1脚连接测试点T1;
第三芯片U3(6N137)的2脚连接电阻R3的2脚;
第三芯片U3(6N137)的8脚连接供电VCC 5V;
第三芯片U3(6N137)的8脚连接电阻R2的1脚;
第三芯片(6N137)的6脚连接第四芯片U4(SN74LS00D)的13脚;
第三芯片U3(6N137)的7脚悬空;
第三芯片U3(6N137)的5脚接地
电阻R3的1脚连接VCC 5V A供电;
电阻R2的2脚连接第三芯片U3(6N137)的6脚;
光纤接收器件(OPTIC-RXD1)的2脚连接5V供电;
光纤接收器件(OPTIC-RXD1)的3脚连接地;
光纤接收器件(OPTIC-RXD1)的7脚连接地;
光纤接收器件(OPTIC-RXD1)的6脚连接第四芯片U4(SN74LS00D) 的5脚;
光纤接收器件(OPTIC-RXD1)的6脚连接测试点T3;
光纤接收器件(OPTIC-RXD1)的6脚连接电阻R6的2脚;
电阻R6的1脚连接5V供电
第四芯片U4(SN74LS00D)的12脚连接第9芯片U9(STM32F10RE) 的14脚;
第四芯片U4(SN74LS00D)的4脚连接第9芯片U9(STM32F10RE)的 15脚;
第四芯片U4(SN74LS00D)的11脚连接第四芯片U4(SN74LS00D)的 10脚;
第四芯片U4(SN74LS00D)的6脚连接第四芯片U4(SN74LS00D)的9 脚;
第四芯片U4(SN74LS00D)的8脚连接第三芯片U3(SN74VHC1G125) 的2脚;
第四芯片U4(SN74LS00D)的8脚连接测试点T2
第三芯片U3(SN74VHC1G125)的5脚连接5V供电;
第三芯片U3(SN74VHC1G125)的1脚接地;
第三芯片U3(SN74VHC1G125)的3脚接地;
第三芯片U3(SN74VHC1G125)的4脚接电阻R4的1脚;
电阻R4的2脚接第9芯片U9(STM32F10RE)的8脚。
一种IRIG-B自适应解码装置的解码方法,
步骤1,开机MCU芯片进行初始化处理,MCU对芯片U4进行控制;
默认将电信号通道放入后端进行检测;
步骤2,等待TTL3.3V电平的输入信号进入MCU;
步骤3,30秒内(设定时间内)判断有无信号输入;
步骤4,设定时间内无信号输入,MCU对芯片U4进行控制,切换另外 一条通道的信号进行检测,执行步骤3;
步骤5,当信号输入后,采用捕获、提取编码,得到每一次编码的上 升沿和下降沿;
程序默认上升沿作为识别编码的前沿触发,下降沿为编码数据的时长 识别。
步骤6,判定是否得到基准码元,未得到基准码元执行步骤5,得到 基准码元执行步骤8,输入信号有规律误码,执行步骤7;
步骤7,输入信号反相识别与处理,执行步骤5;
步骤8,对全部码元进行解码;
步骤9,判断是否有明确的编码类型,有明确的编码类型,执行步骤 10,无明确的编码类型,执行步骤11;
步骤10,开启编码类型无效标志,执行步骤11;
步骤11,特殊的识别策略,判断当前编码类型是否有效,当前编码类 型无效,执行步骤12,当前编码类型有效,执行步骤14,
步骤12,判断是否发生了编码切换;
此步骤主要为了解决输入编码的突然改变的情况。例如,刚开机输入 的一直是军标码,突然输入被改成了国标码。程序在步骤11时,会对特 殊码进行采集,发现不符合当前的军标码特征时,就切换到步骤12,在步 骤12里面判断是否码值特征是否符合国标特征,如果符合,且累计到了 一定的有效数量(防止偶然一帧的错误数据),就可以判定发生了“编码 切换”。程序即可去步骤13执行切换动作。
步骤13,执行切换动作;
步骤14,开启编码雷友有效标志;
步骤15,启动相应的编码策略;
步骤16,得到编码信息。
对输入信号的固定电平时长进行判断,由IRIG-B码的原理可知,一 旦出现12ms以上的同一电平状态即为信号异常状态;
程序发现这种异常状态,开启输入信号异常标志,程序进入对异常信 号处理模式;
异常信号是指明显出现非法的状态。如正常信号一定是一个连续的方 波脉冲,每个脉冲的宽度不超过8ms。脉冲与脉冲之间的间隔也小于等于 8ms。所以,程序一旦发现,输入信号维持在某一电平状态(0或者1)都 认为信号出现了异常。这种异常通常是输入信号开路或者短路了。程序检 测到出现异常状态,要进行标识,并启动应对措施,不要对已经判断是无 效的输入信号进行解码。典型的案例就是:如输入信号接触不良,传输过 程中有100ms信号断开了。这样编码中就会出现一段全是0的数据。但是 恰巧这100ms没有出现在关键码值位置。就会出现:程序正常解码,但解 出来码值有一段是错误的。
否则,若信号无异常,则每次捕获出有效编码都放入B码的处理函数 进行编码识别。
开机MCU(Microcontroller Unit)微控制单元进行初始化处理;
等待稳定有效的外输入信号;
采用捕获的方式提取输入编码的码值,通过对关键码值的识别,判断 输入的信号编码类型;
确定解码策略;
实施解码处理;
时时侦测输入IRIG-B码的编码是否发生异常,当发生异常时,判别 输入的信号编码类型;
判决是否进行策略切换。从而实现对“军民”两种编码的自适应。
每一个2ms信号视为“0状态”,每一个5ms信号视为“1状态”, 每一个8ms信号视为“P状态”;
处理方式见下表:
表1输入编码的P状态的判别
首先用定时器采集输入信号的脉冲宽度。得到宽度后用了多个if, else和标志位指针来实现对不同状态下输入脉冲宽度做判别。
当收到连续2个P状态后,提取码值函数的位置指针归零,开始正式 提取码值;
提取码值函数循环100次,将周期为一秒的IRIG-B码信息完全提出 出来。将提取信息存入相应的数组;
之后解码函数对数组的内容进行整理。码值及其定义见表。
首先2个连续的P状态是信号编码的码头(起始位)。码头之后1秒 内有100个码值。抓住了码头,就能正常的解码。码头之后开启100次的 循环,将整个编码内的数据提取出来。之后的下一秒,重复这个动作,找 到码头,然后将码头之后的数据提取出来。
表内的分别是我国的对国军标IRIG-B(GJB 2991A-2008)格式和电力 系统的时间同步系统IRIG-B码(DLT 1100.1-2009)。代表军用和民用的2 大主流格式。
表2两种B码值定义对比表
自适应解码装置及解码方法,,包括解码判别处理步骤:
程序组合出通用的秒、分、时、天数信息;
再将针对国军标IRIG-B(GJB 2991A-2008)格式和电力系统的时间同 步系统IRIG-B码(DLT 1100.1-2009)不通用的做特殊处理;
步骤1,提取43位年十位标志;
国军标编码时,此位将交替出现“0”“1”,当电力标准时,此位将 恒定为0;
由此得到判断43位恒定为0就是判断当前输入信号是否是电力标准的 充分条件;
步骤2,提取45~48位的年信息;
当“年十位标志”=1时,表示年的十位,反之,表示年的个位;
军标编码时,此位将交替出现年信息;
理论上分析这个数据是可以全为0的,也可以不为零;
但当电力标准时,此位将恒定为0;
由此得到判断45~48位恒定为0就是判断当前输入信号是否是电力 标准的充分条件;
步骤3,提取50~53和55~58的数据,组合成年信息;
军标编码时,此位将恒定是0;
但当电力标准时,此位将是不确认的;
由此得到判断50~53和55~58的数据位恒定为0就是判断当前输入 信号是否是国军标编码的充分条件;
步骤4,对已知条件进行判别;
43、45-48数都是0,表示输入的信号是电力标准;切换模式为电力 模式;
当前1通道输入的B码是电力码;43/45-48有数,且50-53 55-58 的数是0表示输入的信号是国军标码;
如果43有数,且50段没数;切换模式为GJB模式;表示当前1通道 输入的B码是GJB2008;
步骤5:正常编码进入时,
进入后立刻清除另外一种解码方式有效数量的统计,并且对输入的编 码进行有效数量的积累,累计5个时,改变当前编码的解码方式;
步骤6:程序对编码切换的处理;
当输入信号发生编码切换时,对应的计数值将发生变化;累计5个 时,改变当前编码的解码方式。程序恢复到步骤5的正常解码状态;
步骤:7:程序对编码错误的处理。当输入信号发生编码切换时,将清 除解码类型有效的标志,避免出现错码;
步骤8,解码判别结束后的验证;
上面7个步骤实现了编码类型的识别;
接下来要对编码的内容进行一系列验证;
1是对信号的有效性进行进一步的判别,对输入信号发生切换情况进 行有效性的处理,避免切换过程中的错误信息打上有效标志对外输出,产 生错误;
2是对输入信号的合法性进行识别,对错码进行剔除;
如果当前判断是GB-B码;表示是电力B码;
当程序自认为在电力状态下,进入了一个军标编码;
则45-48位,出现了非0数据,且50-60位是0;
发现1通道B码错误,错误类型1,表示年信息异常;可能将发生信 号切换;正常处理年信息,否则,认为当前1通道输入的B码是GJB2008;
当程序自认为在国军标编码状态下,进入了一个电力协议判断;则 45-48位,出现了0数据;发现1通道B码错误,错误类型1,表示年信 息异常;可能将发生信号切换;正常处理年信息;
步骤9,判定当前处于解码电力标准B码的状态下,45-48位,出现 了非0数据,且50-60位是0;
则表示很可能当前输入的编码格式发生了改变;
显示相应的错误标志,表示接收状态异常;
对外输出时间信息时,加注信号无效的标志;
反之当程序认为当前处于解码国军标B码的状态下,当45-48位,出 现了0数据,且50-60位出现非0数据;
表示输入信号切换到了电力标准;
显示相应的错误标志,表示接收状态异常;
对外输出时间信息时,加注信号无效的标志;
步骤10,进行完编码标识类型判断和编码有效性检验后,针对编码的 类型解码。
本发明在解码判别结束后,增加了一个判断环节;对输入信号的合法 性进行校对。解决偶然出现的连续3个P状态码导致对正反相判断信号无 法恢复的问题。
在极端情况下,如果在正常的B码中偶然出现3个连续的P状态码 时,输入信号反相的标志将被置1;
B码信号恢复;则错误累计不到3次;
则输入信号反相的标志始终不被恢复;
因此在解码后增加一个编码合法性纠错码机制;
即:如果已经得到有效的B码信息。则输入信号反相的标志就被清 零。表示当前B码是有效的,没有反相;
如果一个编码信息的月日时分秒信息都符合合法性,表示输入信号一 定不是反相的。清除反相标志。
时间码IRIG-B自适应解码装置及解码方法,包括时间信息整理步 骤:
步骤1,将当前时间转成秒数;加一秒的功能;
如果当前判断是GBJ-B码;表示是国军标B码;
B码发的是UTC0的时间;还原成时间;
将结构体的时间信息转换成无符号64位数据;记录当前时间信息;
将无符号64位数据转换成结构体的时间信息;
步骤2,B码信号是每秒一组数据,当检测到这一帧的准秒时刻时, 这一秒的准秒时刻已经过去了,可以说当前检测到的永远是已经逝去的上 一秒;
所以,要输出1PPS信号,只能在下一秒的准时沿时刻+1秒进行输 出;因为是加一秒输出,就涉及到时间进位功能;
程序上先构建一个Void CalcSecond()函数将接收到的时间信息转 换成一个起始于公元元年开始的64位秒信息(公历秒),之后对公历秒 进行+1操作(B_BCodeTimeModule.NTPsecond++),再之后构建一个Void dealIntegerTime()函数将公历秒转换成年月日时分秒信息;
步骤3:军标IRIG-B(GJB 2991A-2008)格式和电力系统的时间同步 系统IRIG-B码(DLT 1100.1-2009)的时间源选择是不一样的;
GJB 2991A-2008采用的时间编码是UTC时间;
而电力系统的时间同步系统IRIG-B码(DLT 1100.1-2009)采用的是 北京时间;
之间存在一个8小时的固定时差;
在编码提取完毕后,还要对输入的时间信息进行整理;
判断当前格式是军标IRIG-B(GJB 2991A-2008)格式,则将结构体的 时间信息转换成无符号64位数据后,对数据增加8小时,转换成北京时 间;
如果当前是电力系统的时间同步系统IRIG-B码(DLT 1100.1-2009) 则不需要进行处理,因为其本身就是北京时间。
解码判别处理
程序组合出通用的秒、分、时、天数信息。再将针对国军标IRIG-B (GJB 2991A-2008)格式和电力系统的时间同步系统IRIG-B码(DLT 1100.1-2009)不通用的做特殊处理。
特殊处理包括如下步骤:
步骤1:提取43位年十位标志。国军标编码时,此位将交替出现 “0”“1”,当电力标准时,此位将恒定为0。由此得到判断43位恒定为 0就是判断当前输入信号是否是电力标准的充分条件。
步骤2:提取45~48位的年信息。当“年十位标志”=1时,表示年 的十位,反之,表示年的个位。国军标编码时,此位将交替出现年信息。 理论上分析这个数据是可以全为0的,也可以不为零。但当电力标准时, 此位将恒定为0。由此得到判断45~48位恒定为0就是判断当前输入信号 是否是电力标准的充分条件。
步骤3:提取50~53和55~58的数据,组合成年信息。国军标编码 时,此位将恒定是0。但当电力标准时,此位将是不确认的。由此得到判 断50~53和55~58的数据位恒定为0就是判断当前输入信号是否是国军 标编码的充分条件。
步骤4:对已知条件进行判别。代码如下:编码类型判决代码图
其中:
INPUT_B_Code1.bit43:为输入信号第43位的信息;
INPUT_B_Code1.YearInf45bit[0]:为输入信号第45~48的数据位 独立的信息;
INPUT_B_Code1.YearInf50bit:为输入信号第50~53和55~58 的数据位组合的信息;
INPUT_B_Code1.is_GJB2008:为输入信号的格式;
INPUT_B_Code1.is_GJB2008_count:为输入信号的国军标编码正确的 计数;
INPUT_B_Code1.is_GB_count;为输入信号的电力编码正确的计 数;
INPUT_B_Code1.Stat_is_OK:为输入信号的状态标志;
DF_INPUT_B_Code_CorrectNum;为无参宏定义;默认=5。
步骤5:正常编码进入时,程序将进入:
if((INPUT_B_Code1. bit43==0)&&(INPUT_B_Code1.YearInf45bit[0]==0)&&(INPUT_B_Code1. YearInf45bit[1]==0))或Else if(INPUT_B_Code1.YearInf50bit==0)段落。进入后立刻清除另外一种解码方式有效数量的 统计,并且对输入的编码进行有效数量的积累,累计5个时,改变当前编 码的解码方式。
步骤6:程序对编码切换的处理。当输入信号发生编码切换时,程序 的
if((INPUT_B_Code1. bit43==0)&&(INPUT_B_Code1.YearInf45bit[0]==0)&&(INPUT_B_Code1. YearInf45bit[1]==0))和Else if(INPUT_B_Code1.YearInf50bit==0)将发生切换,对应的计数值INPUT_B_Code1.is_GJB2008_count或INPUT_B_Code1.is_GB_count将发生 变化。累计5个时,改变当前编码的解码方式。程序恢复到步骤5的正常 解码状态。
步骤:7:程序对编码错误的处理。当输入信号发生编码切换时,程序 的
if((INPUT_B_Code1.bit43==0)&&(INPUT_B_Code1.YearInf45bit[0]= =0)&&(INPUT_B_Code1.YearInf45bit[1]==0))和Else if (INPUT_B_Code1.YearInf50bit==0)将都不能满足,从而进入最后的 else段落。在这里将清除解码类型有效的标志,避免出现错码。
步骤8:解码判别结束后的验证。上面7个步骤实现了编码类型的识 别。接下来要对编码的内容进行一系列验证。作用1是对信号的有效性进 行进一步的判别,对输入信号发生切换情况进行有效性的处理,避免切换 过程中的错误信息打上有效标志对外输出,产生错误。2是对输入信号的 合法性进行识别,对错码进行剔除。
处理代码有:编码类型校验代码图
其中:
INPUT_B_Code1.is_error1:B码错误标志,错误类型1,表示年信 息异常,可能将发生信号切换;
INPUT_B_Code1.YearInf45:45-48位组合的年信息;
步骤9:如果程序认为当前处于解码电力标准B码的状态下,45-48 位,出现了非0数据,且50-60位是0。则表示很可能当前输入的编码格 式发生了改变。打相应的错误标志,表示接收状态异常。对外输出时间信 息时,加注信号无效的标志。反之当程序认为当前处于解码国军标B码的 状态下,当45-48位,出现了0数据,且50-60位出现非0数据。表示输 入信号切换到了电力标准。打相应的错误标志,表示接收状态异常。对外 输出时间信息时,加注信号无效的标志。
步骤10:进行完编码标识类型判断和编码有效性检验后,针对编码的 类型。正常对编码解码。
编码合法性纠错码机制;
本发明在解码判别结束后,增加了一个判断环节。对输入信号的合法 性进行校对。解决偶然出现的连续3个P状态码导致对正反相判断信号 无法恢复的问题。
在极端情况下,如果在正常的B码中偶然出现3个连续的P状态码 时,输入信号反相的标志(INPUT_B_Code1.B_input_UN)将被置1。之 后,B码信号恢复。则错误累计不到3次。则输入信号反相的标志 (INPUT_B_Code1.B_input_UN)始终不被恢复。因此在解码后增加一个 编码合法性纠错码机制。即:如果已经得到有效的B码信息。则输入信 号反相的标志(INPUT_B_Code1.B_input_UN)就被清零。表示当前B码 是有效的,没有反相。
代码如下:编码合法性纠错码机制代码;
其中:
INPUT_B_Code1.time_second:输入信号的秒信息;
INPUT_B_Code1.time_minute;输入信号的份信息;
INPUT_B_Code1.time_hour:输入信号的时信息;
INPUT_B_Code1.time_day:输入信号的天信息;
INPUT_B_Code1.time_month:输入信号的月信息;
如果一个编码信息的月日时分秒信息都符合合法性,表示输入信号一 定不是反相的。清除反相标志。
时间信息的整理:
对外输出前要对时间信息进行一些必要的整理。整理操作如下:
步骤1:代码如下:时间信息的整理代码
其中:
Void CalcSecond()函数:将结构体的时间信息转换成无符 号64位数据;
B_BCodeTimeModule.NTPsecond:无符号64位数据,记录当前时间信 息;
INPUT_B_Code1_is_GJB2008:为输入信号的格式;
Void dealIntegerTime()函数:将无符号64位数据转换成结 构体的时间信息。
步骤2:B码信号是每秒一组数据,当检测到这一帧的准秒时刻时, 这一秒的准秒时刻已经过去了,可以说当前检测到的永远是已经逝去的上 一秒。所以,要输出1PPS信号,只能在下一秒的准时沿时刻+1秒进行输 出;因为是加一秒输出,就涉及到时间进位功能。程序上先构建一个Void CalcSecond()函数将接收到的时间信息转换成一个起始于公元元年开始 的64位秒信息(公历秒),之后对公历秒进行+1操作 (B_BCodeTimeModule.NTPsecond++),再之后构建一个Void dealIntegerTime()函数将公历秒转换成年月日时分秒信息。
步骤3:因为国军标IRIG-B(GJB 2991A-2008)格式和电力系统的时 间同步系统IRIG-B码(DLT 1100.1-2009)的时间源选择是不一样的。 GJB 2991A-2008采用的时间编码是UTC时间。而电力系统的时间同步系统IRIG-B码(DLT 1100.1-2009)采用的是北京时间。之间存在一个8小时 的固定时差。所以,在编码提取完毕后,还要对输入的时间信息进行整理。程序中判断只要当前格式是国军标IRIG-B(GJB 2991A-2008)格式, 则将结构体的时间信息转换成无符号64位数据后,对数据增加8小时, 转换成北京时间。如果当前是电力系统的时间同步系统IRIG-B码(DLT 1100.1-2009)则不需要进行处理,因为其本身就是北京时间。
本发明技术的时间接收设备可自适应2种物理模式的输入IRIG-B码 信号,无论输入那种物理接口的输入信号,程序都可以自适应识别。这样 提高了时间接收设备的兼容性。在实际使用环境中,当信号源设备距离信 号接收设备较近时(1公里以内),通产采用RS485电平信号进行传输。 因为这样可以降低成本。当信号源设备距离信号接收设备较远时(大于1 公里),电信号因为信号衰减和电磁干扰的原因将无法使用,所以将采用 光纤信号进行传输。这时,用户不得不增加光电转换模块、协议转换模块 之类的附加产品。这样不但增加了成本,还因为增加了外置转换设备导致 额外的风险。采用本发明,就可以完美解决这一问题。本发明支持光电2 种接口。且支持自动信号识别。用户只要把光或电的IRIG-B码信号接入 设备,无需设置。本发明将自动识别出哪路通道有信号,并自动对其解 码。在当前使用的信号被切断后,系统将自动转换到有信号的通道。
本发明可对输入的RS485电平的IRIG-B码信号进行光电隔离。避免 由外部接口输入的大电压、大电流对系统内部产生破坏。现有技术通常对 外输入的电信号不加隔离措施。因此外部设备的干扰信号会接入到本设 备。可能有静电、漏入强电等意外事件发生时,直接损坏本设备。所以本 发明采用隔离保护措施。对外输入信号,进行光电隔离。信号隔离方式没 有采用常规的隔离变压器隔离,而是采用光耦合器方式。实现:信号单向 传输,输入端与设备完全实现了电气隔离,抗干扰能力强,工作稳定,无 触点,使用寿命长,传输效率高。从而避免了隔离变压器的输入绕组与输 出绕组偶然同时触及带电体导致隔离失败的风险。其核心部件是高速光 耦,光耦的响应速度决定了信号的准确度。
本发明可自适应2种编码格式的输入IRIG-B码信号,对国军标IRIG- B(GJB2991A-2008)格式和电力系统的时间同步系统IRIG-B码(DLT 1100.1-2009)进行智能识别,智能解码。当输入的编码格式发生改变 时,本发明可自动切换相应的解码策略。现有产品都只能针对某一种编码 进行解码。本发明是对“军民融合”思想的一种实践。本发明可对军用、 民用2种IRIG-B码进行自适应的时间解码。采用本发明可增强时间同步 系统接收信息的兼容性。
本发明时间码IRIG-B自适应解码装置及解码方法,支持2种输入信 号模式;分别是RS485电平的电IRIG-B码和光纤信号的光IRIG-B码;外 输入信号是指经过接收电路,将2种输入信号都处理成TTL3.3V的电 IRIG-B码信号;2种IRIG-B码进行自适应的时间解码;增强时间同步系 统接收信息的兼容性;
本发明时间码IRIG-B自适应解码装置及解码方法,还可以本发明可 自适应输入编码的极性,当出现信号极性相位相反时,可自动调整接收方 式,进一步增强时间同步系统接收信息的兼容性;可以灵活的配置输入信 号源。RS485电平的电IRIG-B码和光纤信号的光IRIG-B码。
本发明时间码IRIG-B自适应解码装置及解码方法,可自适应2种物 理接口模式输入的IRIG-B码信号,自动选择有信号的物理接口通道,并 实现解码处理;当2种物理接口有效信号同时接入时,默认采用先接入的 信号。
本发明时间码IRIG-B自适应解码装置及解码方法,对输入的RS485 电平的IRIG-B码信号进行光电隔离。避免由外部接口输入的大电压、大 电流对系统内部产生破坏;
本发明时间码IRIG-B自适应解码装置及解码方法,当输入的编码格 式发生改变时,可自动切换相应的解码策略;可自适应IRIG-B码信号极 性,智能解码。当发现输入的编码电平是反相时,可自动做出调整。
以上所述,仅是本发明的较佳实施例而已,并非对本发明的结构作任 何形式上的限制。凡是依据本发明的技术实质对以上实施例所作的任何简 单修改、等同变化与修饰,均属于本发明的技术方案范围内。
Claims (8)
1.一种时间码IRIG-B自适应解码装置,其特征在于,
包括输入电路;
输入电路包括:电B码输入电路和光B码输入电路;
电B码输出电路输出到光电隔离电路相连接;
B码输出电路和光电隔离电路与信号选择电路相连接;
信号选择电路与中央处理器相连接。
2.根据权利要求1所述时间码IRIG-B自适应解码装置,其特征在于:
电B码输入电路包括接线端子P1;
接线端子P1接收外部输入的RS485-IRIG-B码信号;
接线端子P1接U1的6脚和7脚作为信号输入,输入信号经过芯片U1将输入信号转换成TTV5V电平信号;
由芯片U1的1脚输出;
输出到芯片U3的光电隔离器件,信号隔离后,输出到芯片U4进行输入信号选择。
电B码输出电路包括光纤接收器件OPTIC-RXD1;
光纤接收器件OPTIC-RXD1对外部输入的光纤IRIG-B码信号进行光电转换;
转换后将输入信号转换成TTV5V电平信号;
光纤接收器件OPTIC-RXD1的6脚输出;
输出到芯片U4进行信号选择;
芯片U4为4路2与非门器件;
其12脚和4脚接MCU进行控制;
当芯片U4的12配置成低电平时,U4的11脚一定是常高;
此时芯片U4的4脚配置成高电平,则U4的5脚被6脚反相输出到9脚;
将两路输入信号进入芯片U3的2脚;
芯片U3将信号转换成TTL3.3V信号,由芯片U3的4脚输出;
输出后经R4进行阻抗匹配后,将这个信号命名为STM直流B码主信号;将其接入芯片U9的8脚。
3.根据权利要求2所述时间码IRIG-B自适应解码装置,其特征在于:
第一接插件P1的1脚与第一芯片U1的6脚连接;
第一接插件P1的2脚与第一芯片U1的7脚连接;
第一芯片U1的8脚连接VCC5V A供电;
第一芯片U1的2脚连接GND-A;
第一芯片U1的3脚连接GND-A;
第一芯片U1的5脚连接GND-A;
第一芯片U1的4脚悬空;
第一芯片U1的1脚连接第三芯片U3(6N137)的3脚;
第一芯片U1的1脚连接测试点T1;
第三芯片U3的2脚连接电阻R3的2脚;
第三芯片U3的8脚连接供电VCC5V;
第三芯片U3的8脚连接电阻R2的1脚;
第三芯片的6脚连接第四芯片U4的13脚;
第三芯片U3的7脚悬空;
第三芯片U3的5脚接地
电阻R3的1脚连接VCC5V A供电;
电阻R2的2脚连接第三芯片U3的6脚;
光纤接收器件的2脚连接5V供电;
光纤接收器件的3脚连接地;
光纤接收器件的7脚连接地;
光纤接收器件的6脚连接第四芯片的5脚;
光纤接收器件的6脚连接测试点T3;
光纤接收器件的6脚连接电阻R6的2脚;
电阻R6的1脚连接5V供电
第四芯片U4的12脚连接第9芯片U9的14脚;
第四芯片U4的4脚连接第9芯片U9的15脚;
第四芯片U4的11脚连接第四芯片U4的10脚;
第四芯片U4的6脚连接第四芯片U4的9脚;
第四芯片U4的8脚连接第三芯片U3的2脚;
第四芯片U4的8脚连接测试点T2
第三芯片U3的5脚连接5V供电;
第三芯片U3的1脚接地;
第三芯片U3的3脚接地;
第三芯片U3的4脚接电阻R4的1脚;
电阻R4的2脚接第9芯片U9(STM32F10RE)的8脚。
4.一种权利要求1-3任意一项所述时间码IRIG-B自适应解码装置的解码方法,其特征在于:
步骤1,开机MCU芯片进行初始化处理,MCU对芯片U4进行控制;
默认将电信号通道放入后端进行检测;
步骤2,等待TTL3.3V电平的输入信号进入MCU;
步骤3,设定时间内判断有无信号输入;
步骤4,设定时间内无信号输入,MCU对芯片U4进行控制,切换另外一条通道的信号进行检测,执行步骤3;
步骤5,当信号输入后,采用捕获、提取编码,得到每一次编码的上升沿和下降沿;
程序默认上升沿作为识别编码的前沿触发,下降沿为编码数据的时长识别;
步骤6,判定是否得到基准码元,未得到基准码元执行步骤5,得到基准码元执行步骤8,输入信号有规律误码,执行步骤7;
步骤7,输入信号反相识别与处理,执行步骤5;
步骤8,对全部码元进行解码;
步骤9,判断是否有明确的编码类型,有明确的编码类型,执行步骤10,无明确的编码类型,执行步骤11;
步骤10,开启编码类型无效标志,执行步骤11;
步骤11,特殊的识别策略,判断当前编码类型是否有效,当前编码类型无效,执行步骤12,当前编码类型有效,执行步骤14,
步骤12,判断是否发生了编码切换;
步骤13,执行切换动作;
步骤14,开启编码雷友有效标志;
步骤15,启动相应的编码策略;
步骤16,得到编码信息。
5.根据权利要求4所述时间码IRIG-B自适应解码装置,其特征在于:
对输入信号的固定电平时长进行判断,由IRIG-B码的原理可知,一旦出现12ms以上的同一电平状态即为信号异常状态;
程序发现这种异常状态,开启输入信号异常标志,程序进入对异常信号处理模式;
否则,若信号无异常,则每次捕获出有效编码都放入B码的处理函数进行编码识别。
6.根据权利要求5所述时间码IRIG-B自适应解码装置,其特征在于:
开机MCU(Microcontroller Unit)微控制单元进行初始化处理;
等待稳定有效的外输入信号;
采用捕获的方式提取输入编码的码值,通过对关键码值的识别,判断输入的信号编码类型;
确定解码策略;
实施解码处理;
时时侦测输入IRIG-B码的编码是否发生异常,当发生异常时,判别输入的信号编码类型;
判决是否进行策略切换。
7.根据权利要求6所述时间码IRIG-B自适应解码装置及解码方法,其特征在于:包括解码判别处理步骤:
程序组合出通用的秒、分、时、天数信息;
再将针对国军标IRIG-B(GJB 2991A-2008)格式和电力系统的时间同步系统IRIG-B码(DLT 1100.1-2009)不通用的做特殊处理;
步骤1,提取43位年十位标志;
国军标编码时,此位将交替出现“0”“1”,当电力标准时,此位将恒定为0;
由此得到判断43位恒定为0就是判断当前输入信号是否是电力标准的充分条件;
步骤2,提取45~48位的年信息;
当“年十位标志”=1时,表示年的十位,反之,表示年的个位;
军标编码时,此位将交替出现年信息;
理论上分析这个数据是可以全为0的,也可以不为零;
但当电力标准时,此位将恒定为0;
由此得到判断45~48位恒定为0就是判断当前输入信号是否是电力标准的充分条件;
步骤3,提取50~53和55~58的数据,组合成年信息;
军标编码时,此位将恒定是0;
但当电力标准时,此位将是不确认的;
由此得到判断50~53和55~58的数据位恒定为0就是判断当前输入信号是否是国军标编码的充分条件;
步骤4,对已知条件进行判别;
43、45-48数都是0,表示输入的信号是电力标准;切换模式为电力模式;
当前1通道输入的B码是电力码;43/45-48有数,且50-53 55-58的数是0表示输入的信号是国军标码;
如果43有数,且50段没数;切换模式为GJB模式;表示当前1通道输入的B码是GJB2008;
步骤5:正常编码进入时,
进入后立刻清除另外一种解码方式有效数量的统计,并且对输入的编码进行有效数量的积累,累计5个时,改变当前编码的解码方式;
步骤6:程序对编码切换的处理;
当输入信号发生编码切换时,对应的计数值将发生变化;累计5个时,改变当前编码的解码方式。程序恢复到步骤5的正常解码状态;
步骤:7:程序对编码错误的处理。当输入信号发生编码切换时,将清除解码类型有效的标志,避免出现错码;
步骤8,解码判别结束后的验证;
上面7个步骤实现了编码类型的识别;
接下来要对编码的内容进行一系列验证;
1是对信号的有效性进行进一步的判别,对输入信号发生切换情况进行有效性的处理,避免切换过程中的错误信息打上有效标志对外输出,产生错误;
2是对输入信号的合法性进行识别,对错码进行剔除;
如果当前判断是GB-B码;表示是电力B码;
当程序自认为在电力状态下,进入了一个军标编码;
则45-48位,出现了非0数据,且50-60位是0;
发现1通道B码错误,错误类型1,表示年信息异常;可能将发生信号切换;正常处理年信息,否则,认为当前1通道输入的B码是GJB2008;
当程序自认为在国军标编码状态下,进入了一个电力协议判断;则45-48位,出现了0数据;发现1通道B码错误,错误类型1,表示年信息异常;可能将发生信号切换;正常处理年信息;
步骤9,判定当前处于解码电力标准B码的状态下,45-48位,出现了非0数据,且50-60位是0;
则表示很可能当前输入的编码格式发生了改变;
显示相应的错误标志,表示接收状态异常;
对外输出时间信息时,加注信号无效的标志;
反之当程序认为当前处于解码国军标B码的状态下,当45-48位,出现了0数据,且50-60位出现非0数据;
表示输入信号切换到了电力标准;
显示相应的错误标志,表示接收状态异常;
对外输出时间信息时,加注信号无效的标志;
步骤10,进行完编码标识类型判断和编码有效性检验后,针对编码的类型解码。
在极端情况下,如果在正常的B码中偶然出现3个连续的P状态码时,输入信号反相的标志将被置1;
B码信号恢复;则错误累计不到3次;
则输入信号反相的标志始终不被恢复;
因此在解码后增加一个编码合法性纠错码机制;
即:如果已经得到有效的B码信息。则输入信号反相的标志就被清零。表示当前B码是有效的,没有反相;
如果一个编码信息的月日时分秒信息都符合合法性,表示输入信号一定不是反相的。清除反相标志。
8.根据权利要求6所述时间码IRIG-B自适应解码装置及解码方法,其特征在于:包括时间信息整理步骤:
步骤1,将当前时间转成秒数;加一秒的功能;
如果当前判断是GBJ-B码;表示是国军标B码;
B码发的是UTC0的时间;还原成时间;
将结构体的时间信息转换成无符号64位数据;记录当前时间信息;
将无符号64位数据转换成结构体的时间信息;
步骤2,B码信号是每秒一组数据,当检测到这一帧的准秒时刻时,这一秒的准秒时刻已经过去了,可以说当前检测到的永远是已经逝去的上一秒;
所以,要输出1PPS信号,只能在下一秒的准时沿时刻+1秒进行输出;因为是加一秒输出,就涉及到时间进位功能;
程序上先构建一个Void CalcSecond()函数将接收到的时间信息转换成一个起始于公元元年开始的64位秒信息(公历秒),之后对公历秒进行+1操作(B_BCodeTimeModule.NTPsecond++),再之后构建一个Void dealIntegerTime()函数将公历秒转换成年月日时分秒信息;
步骤3:军标IRIG-B(GJB 2991A-2008)格式和电力系统的时间同步系统IRIG-B码(DLT1100.1-2009)的时间源选择是不一样的;
GJB 2991A-2008采用的时间编码是UTC时间;
而电力系统的时间同步系统IRIG-B码(DLT 1100.1-2009)采用的是北京时间;
之间存在一个8小时的固定时差;
在编码提取完毕后,还要对输入的时间信息进行整理;
判断当前格式是军标IRIG-B(GJB 2991A-2008)格式,则将结构体的时间信息转换成无符号64位数据后,对数据增加8小时,转换成北京时间;
如果当前是电力系统的时间同步系统IRIG-B码(DLT 1100.1-2009)则不需要进行处理,因为其本身就是北京时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910437757.XA CN110224702B (zh) | 2019-05-24 | 2019-05-24 | 时间码irig-b自适应解码装置及解码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910437757.XA CN110224702B (zh) | 2019-05-24 | 2019-05-24 | 时间码irig-b自适应解码装置及解码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110224702A true CN110224702A (zh) | 2019-09-10 |
CN110224702B CN110224702B (zh) | 2021-07-06 |
Family
ID=67817892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910437757.XA Active CN110224702B (zh) | 2019-05-24 | 2019-05-24 | 时间码irig-b自适应解码装置及解码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110224702B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114006620A (zh) * | 2021-10-27 | 2022-02-01 | 北斗天汇(北京)科技有限公司 | 一种具备自动调节功能的irig交流b码解码方法和系统 |
CN114415780A (zh) * | 2021-12-30 | 2022-04-29 | 研祥智慧物联科技有限公司 | 基于irig-b码的对时方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090089097A (ko) * | 2008-02-18 | 2009-08-21 | 울산대학교 산학협력단 | 아이알아이지-비 시간 코드를 이용한 시간 동기화 장치 및방법 |
CN202586933U (zh) * | 2012-05-11 | 2012-12-05 | 北京北变智达科技有限公司 | 一种基于irig-b的解码对时电路装置 |
CN105553484A (zh) * | 2016-01-15 | 2016-05-04 | 广东水利电力职业技术学院 | 一种极性自适应的irig-b码解码方法及解码装置 |
CN106444351A (zh) * | 2016-08-29 | 2017-02-22 | 山东鲁能控制工程有限公司 | 多源解码授时系统及其工作方法 |
CN207853908U (zh) * | 2018-06-11 | 2018-09-11 | 苏州科技大学 | 面向电能质量无线监测的时间同步装置 |
-
2019
- 2019-05-24 CN CN201910437757.XA patent/CN110224702B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090089097A (ko) * | 2008-02-18 | 2009-08-21 | 울산대학교 산학협력단 | 아이알아이지-비 시간 코드를 이용한 시간 동기화 장치 및방법 |
CN202586933U (zh) * | 2012-05-11 | 2012-12-05 | 北京北变智达科技有限公司 | 一种基于irig-b的解码对时电路装置 |
CN105553484A (zh) * | 2016-01-15 | 2016-05-04 | 广东水利电力职业技术学院 | 一种极性自适应的irig-b码解码方法及解码装置 |
CN106444351A (zh) * | 2016-08-29 | 2017-02-22 | 山东鲁能控制工程有限公司 | 多源解码授时系统及其工作方法 |
CN207853908U (zh) * | 2018-06-11 | 2018-09-11 | 苏州科技大学 | 面向电能质量无线监测的时间同步装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114006620A (zh) * | 2021-10-27 | 2022-02-01 | 北斗天汇(北京)科技有限公司 | 一种具备自动调节功能的irig交流b码解码方法和系统 |
CN114006620B (zh) * | 2021-10-27 | 2023-01-17 | 北斗天汇(北京)科技有限公司 | 一种具备自动调节功能的irig交流b码解码方法和系统 |
CN114415780A (zh) * | 2021-12-30 | 2022-04-29 | 研祥智慧物联科技有限公司 | 基于irig-b码的对时方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110224702B (zh) | 2021-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110224702A (zh) | 时间码irig-b自适应解码装置及解码方法 | |
CN102619501B (zh) | 一种石油测井仪中的数据传输系统 | |
CN101738931B (zh) | 一种irig-b码的对时装置及其对时方法 | |
CN204270025U (zh) | 具有irig-b对时功能的时钟系统 | |
CN108445436B (zh) | 一种双芯运行状态互检的电能表 | |
CN101493674A (zh) | B码解调解码方法及其装置 | |
CN106341212B (zh) | 一种实现多类型时间信号自辨识和检测的装置和方法 | |
CN109828447B (zh) | 一种基于fpga+arm架构的网关通信数据对时方法 | |
CN201828585U (zh) | 便携式变电站同步对时及soe信号发生仪 | |
CN102621954A (zh) | 智能电网中的自适应多信号源对时卡装置及报文分析系统 | |
CN106066465A (zh) | 一种电能表现场校验远程脉冲模块及其校验方法 | |
CN205583839U (zh) | 一种变电站微机综合保护测控装置 | |
CN102496055B (zh) | Rfid解调方式自动识别方法及自动识别电路 | |
CN104006857A (zh) | 一种光电直读水表传感器抑制气泡干扰的方法 | |
CN100571234C (zh) | 应用在无线接收装置的ask解调器及方法 | |
CN100529680C (zh) | 一种使红外发光二极管和光敏晶体管在水中使用的电路 | |
CN109736782A (zh) | 一种矿用电磁波随钻轨迹测量控制系统以及控制方法 | |
CN109002030A (zh) | 一种基于ft3报文开关量位置采集的柔性直流保护测试方法 | |
CN108040022A (zh) | 一种用于随钻测量仪器的总线编解码装置及方法 | |
CN201145846Y (zh) | 电气火灾监控装置 | |
CN209728944U (zh) | 一种应用于atm机的银行卡遗忘提醒装置 | |
CN114006620B (zh) | 一种具备自动调节功能的irig交流b码解码方法和系统 | |
CN102402495A (zh) | 一种船舶name0183输入信号极性自适应方法及接口装置 | |
CN106849780B (zh) | 仪表阀控电机的控制方法及电机状态控制机 | |
CN108234054B (zh) | 一种集中器时钟丢失自检自恢复的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |