欢迎来到天天文库
浏览记录
ID:15791915
大小:195.50 KB
页数:7页
时间:2018-08-05
《irig-b格式时间码解码接口卡电路设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、IRIG-BB码的软件实现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码序列表示如下:
2、 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:
3、 P码 40-41:天的百位,BCD表示 42-44:位元0 其他的表示请参考IRIG-B的SPEC。注意该时间表示的是当年的第XX天XX月XX日XX时XX分XX秒2.实现方法 在软件实现中,为了有效地测量高低电平的持续时间,需要一个定时器对电平持续的时间进行测量。通常 的做法是隔一段时间对电平进行采样。比如每隔500us获取电平的高低值。其实现方法如下: 硬件实现: 把B码的输入信号接入一GPIO 软件实现: 设置定时器(在LINUX的传统时间子系统中,其软件定时器的精度为1/HZ,通常为毫秒级,因此在 本实现中采用硬件定
4、时)每500us产生一个中断。中断发生后,采集GPIO的电平,若电平为高, 则高 电平采样次数递增,否则低电平次数递增。为了保证采样不谝移,必须先统计高电平,然后 统计低电平。比对统计的次数,找出B码时间基准点,然后确定当前时间。关于当前时间的确定, 后面将详细讨论。 该方法的缺陷: 1.统计次数过少:2ms的采样次数为4次,若采样时间因系统原因偏移,有时采样次数可能为3次, 一个码元的采样次数为20次(10ms/500us) 2.中断过于频繁 改进的方法 硬件实现: 采用可识别电平变化的硬件电路,如AT9
5、1SAM9263的TC,其TIOA接B码输入信号 软件实现: 统计电平变化时定时器发生的次数。该次数即为某时段内的采样次数。该方法大大提高了采样次数,如 使用AT91SAM9263的TC,其10ms的采样次数可以达到30720 该方法改进了前一种实现方法的缺陷:统计次数可达到3万多次;中断为每10ms发生两次3.当前时间的确定 由于B码的时间随着采样的进行而流逝,在时间基准点的的时间通常为 XX天XX月XX日XX时XX分XX秒0毫秒0微秒(准点) 而要测量出B码时间需要连续测量41个码元后才能确定,因此我们可以选择在第42,43,或44
6、个码元处对 系统时间进行校准,该点的精确时间为: XX天XX月XX日XX时XX分XX秒42(或43,或44)*10毫秒0微秒 由于系统执行指令的延迟,为了达到更精确的时间,可以在设置系统时间的时候读出从第42,43或44 开始消逝的时间ELAPSED。设置时间为: XX天XX月XX日XX时XX分XX秒420,430或440毫秒ELASPED微妙IRIG-B格式时间码解码接口卡电路设计摘要:IRIG-B格式时间码(简称B码)为国际通用时间格式码,用于各系统的时间同步。“B码解码接口卡”为EISA(或ISA)总线接口卡,将标准时统设备送来的IRI
7、G-B(DC)码,解码出时、分、秒,并加入毫秒信息,送入主计算机,以校准本机的系统时间。本文给出以单片机为核心的“B码解码接口卡”电路设计和板内程序流程。关键词:单片机解码接口IRIG-B格式一、IRIG-B格式码的格式与规范图1为B(DC)码示意图。它是每秒一帧的时间串码,每个码元宽度为10ms,一个时帧周期包括100个码元,为脉宽编码。码元的"准时"参考点是其脉冲前沿,时帧的参考标志由一个位置识别标志和相邻的参考码元组成,其宽度为8ms;每10个码元有一个位置识别标志:P1,P2,P3,…,P9,P0,它们均为8ms宽度;PR为帧参考点;二进制"
此文档下载收益归作者所有