IRIG-B B 码的软件实现 1
IRIG-B 码的原理 IRIG-B 码把1 秒时间平均分成100 段,每段持续时间为10ms(10 毫秒),表示一个位元(即一个BIT)
其定义如下: '0': 先高电平持续2ms,后低电平持续8ms '1': 先高电平持续5ms,后低电平持续5ms 'p': 先高电平持续8ms,后低电平持续2ms IRIG-B 码的基准位置(即其时间基准点)的前一位元为P 码,基准点位元也是一P 码
两个P 码连续出现
而在 B 码序列中无其他任何位置连续出现两个或两个以上 P 码
通过找出连续B 码中连续两个P 码,可确定 出 B 码的起点
B 码序列表示如下: 0: PR,B 码序列的基准, P 码 1-4: 秒的个位,BCD 表示 5: 位元0 6-8: 秒的十位, BCD 表示 9: P 码 10-13:分的个位,BCD 表示 14: 位元0 15-17:分的十位,BCD 表示 18: 位元0 19: P 码 20-23:小时的个位,BCD 表示 24: 位元0 25-26:小时的十位,BCD 表示 27-28:位元0 29: P 码 30-33:天的个位,BCD 表示 34: 位元0 35-38:天的十位,BCD 表示 39: P 码 40-41:天的百位,BCD 表示 42-44:位元0 其他的表示请参考 IRIG-B 的SPEC
注意该时间表示的是当年的第 XX 天 XX 月 XX 日XX 时XX 分XX 秒 2
实现方法 在软件实现中,为了有效地测量高低电平的持续时间,需要一个定时器对电平持续的时间进行测量
通常 的做法是隔一段时间对电平进行采样
比如每隔 500us 获取电平的高低值
其实现方法如下: 硬件实现: 把B 码的输入信号接入一GPIO 软件实现: 设置定