IRIG-B格式时间码解码接口卡电路设计.doc

上传人:壹****1 文档编号:543466121 上传时间:2022-09-12 格式:DOC 页数:7 大小:195.50KB
返回 下载 相关 举报
IRIG-B格式时间码解码接口卡电路设计.doc_第1页
第1页 / 共7页
IRIG-B格式时间码解码接口卡电路设计.doc_第2页
第2页 / 共7页
IRIG-B格式时间码解码接口卡电路设计.doc_第3页
第3页 / 共7页
IRIG-B格式时间码解码接口卡电路设计.doc_第4页
第4页 / 共7页
IRIG-B格式时间码解码接口卡电路设计.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《IRIG-B格式时间码解码接口卡电路设计.doc》由会员分享,可在线阅读,更多相关《IRIG-B格式时间码解码接口卡电路设计.doc(7页珍藏版)》请在金锄头文库上搜索。

1、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: 秒的

2、个位,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. 实现方法 在软件实现中,为

3、了有效地测量高低电平的持续时间,需要一个定时器对电平持续的时间进行测量。通常 的做法是隔一段时间对电平进行采样。比如每隔500us获取电平的高低值。其实现方法如下: 硬件实现: 把B码的输入信号接入一GPIO 软件实现: 设置定时器(在LINUX的传统时间子系统中,其软件定时器的精度为1/HZ,通常为毫秒级,因此在 本实现中采用硬件定时)每500us产生一个中断。中断发生后,采集GPIO的电平,若电平为高, 则高 电平采样次数递增,否则低电平次数递增。为了保证采样不谝移,必须先统计高电平,然后 统计低电平。比对统计的次数,找出B码时间基准点,然后确定当前时间。关于当前时间的确定, 后面将详细讨

4、论。 该方法的缺陷: 1. 统计次数过少:2ms的采样次数为4次,若采样时间因系统原因偏移,有时采样次数可能为3次, 一个码元的采样次数为20次(10ms/500us) 2. 中断过于频繁改进的方法 硬件实现: 采用可识别电平变化的硬件电路,如AT91SAM9263的TC,其TIOA接B码输入信号 软件实现: 统计电平变化时定时器发生的次数。该次数即为某时段内的采样次数。该方法大大提高了采样次数,如 使用AT91SAM9263的TC,其10ms的采样次数可以达到30720 该方法改进了前一种实现方法的缺陷:统计次数可达到3万多次;中断为每10ms发生两次3. 当前时间的确定 由于B码的时间随着

5、采样的进行而流逝,在时间基准点的的时间通常为 XX天XX月XX日XX时XX分XX秒0毫秒0微秒 (准点) 而要测量出B码时间需要连续测量41个码元后才能确定,因此我们可以选择在第42,43,或44个码元处对 系统时间进行校准,该点的精确时间为: 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格式时间码解码接口卡电路设计摘 要: IRI

6、G-B格式时间码(简称B码)为国际通用时间格式码,用于各系统的时间同步。“B码解码接口卡”为EISA(或ISA)总线接口卡,将标准时统设备送来的IRIG-B(DC)码,解码出时、分、秒,并加入毫秒信息,送入主计算机,以校准本机的系统时间。本文给出以单片机为核心的“B码解码接口卡”电路设计和板内程序流程。关键词:单片机 解码 接口 IRIG-B格式一、 IRIG-B格式码的格式与规范图1为 B(DC)码示意图。它是每秒一帧的时间串码,每个码元宽度为10ms,一个时帧周期包括100个码元,为脉宽编码。码元的准时参考点是其脉冲前沿,时帧的参考标志由一个位置识别标志和相邻的参考码元组成,其宽度为8ms

7、;每10个码元有一个位置识别标志:P1,P2,P3,P9,P0,它们均为8ms宽度;PR为帧参考点;二进制1和0的脉宽为5ms和2ms。一个时间格式帧从帧参考标志开始。因此连续两个8ms宽脉冲表明秒的开始,如果从第二个8ms开始对码元进行编码,分别为第0,1,2,99个码元。在B码时间格式中含有天、时、分、秒,时序为秒-分-时-天,所占信息位为秒7位、分7位、时6位、天10位,其位置在P0P5之间。P6P0包含其他控制信息。其中秒信息:第1,2,3,4,6,7,8码元;分信息:第10,11,12,13,15,16,17码元;时信息:第20,21,22,23,25,26,27码元;第5,14,2

8、4码元为索引标志,宽度为2ms。时、分、秒均用BCD码表示,低位在前,高位在后;个位在前,十位在后。图 1 B(DC)码示意图二、 B码解码接口卡设计方案B码解码接口卡功能框图如图2所示。对B码进行解码就是将B码中所包含的时、分、秒信息提取出来,转换成主计算机能够识别的形式,同时以秒的准时点为参考,生成毫秒信息,一同送入主计算机中。解码的关键在于检测B码中各个码元的高电平宽度,首先要检测连续两个8ms宽的码元出现的位置,然后再检测随后的30个码元脉冲宽度,以确定时、分、秒。这里不检测天的值,天可以直接在主计算机上设置。检测高电平宽度:将B码送入单片机89C51的INT0端,在INT0引脚由低电

9、平变为高电平时,启动单片机的内部定时器T0,开始计数;在INT0引脚由高变低时(即下降沿),触发INT0中断,读取计数器的值,脉冲宽度等于计数值乘以计数周期。形成毫秒值:将1kHz信号接到单片机的INT1端,每毫秒产生一次中断。INT1中断处理程序完成毫秒计数,当计到1000ms时完成秒加1。图 2 B码解码接口卡功能框图三、 电路设计1 电路设计方案1方案1中,输入输出模块由5片锁存器构成,接口控制简单,如图3所示。图 3 B码解码接口卡电路来自时统设备的IRIG-B(DC)码,为RS422接口信号,经转换后变为TTL电平,送至单片机89C51的INT0端。单片机初始化设置中,定时器T0工作

10、在模式1,采用内部时钟。当INT0引脚由低到高时,定时器T0开始计时;当INT0引脚由高变低时,触发INT0中断,执行中断服务程序,计算INT0引脚的高电平宽度。根据宽度对B码各脉冲进行解码,形成秒、分、时的BCD码,存入单片机的内部RAM中。同时,由频率源产生的12MHz的信号经分频器后,输出1kHz信号,送至单片机INT1引脚,使1ms产生一次INT1中断,执行INT1中断处理程序,对毫秒进行计数。毫秒计数到1000时,进行秒加1,毫秒初值在B码的准时点进行赋值。单片机的P0口经锁存器输出地址线A0、A1,以控制两个并行接口芯片8255的输出端。单片机解码和计数输出的毫秒(2字节)、秒(1

11、字节)、分(1字节)、时(1字节)BCD码,在单片机的写指令控制下,分五次送到两片8255的不同端口。各端口经锁存器锁存器,将数据锁存。单片机送出一组时间码后,向主计算机发送中断。主计算机响应中断后,依次读取各锁存器的值,即为当前的时统时间。锁存器的数据输出端直接挂在EISA(ISA)总线上,其片选信号CS1CS5通过地址译码产生。主计算机读时应能保证数据不处于变化中,因此,须将单片机的写信号WR经延时反向后,送到各锁存器的LE端,使数据被锁存。主计算机内设一存储单元,存放前一秒的数据。当前读取的数据如果比前一秒多1,则认为时间正确。为避免板内程序死循环,在该板上设计了看门狗复位电路。在单片机

12、板内程序中,每隔一定时间对P1.6口进行置1。计时器的最高位输出端接至单片机的Reset端。在正常情况下,P1.6口总能执行置1操作,不会对单片机复位;但若程序中有死循环,则P1.6口不被置1。当计时器计到最高位输出端为1时,就会对单片机复位。看门狗复位电路采用14位二进制计数器4060,并具备上电复位和手动复位的功能,其振荡周期由外接电阻、电容的大小决定。2 电路设计方案2方案2如图4所示。解码原理同方案1。该电路采用FIFO(IDT7201)加状态寄存器和缓冲器,实现单片机与主计算机之间的数据传输,无需8255和锁存器,器件较少,但相应地会增加软件控制的工作量。单片机解码后,在每帧数据前加

13、上标志码,输出时、分、秒、毫秒信息,在写信号的控制下,经缓冲器送入FIFO中。主计算机查询状态寄存器,了解FIFO的状态(空、满、半满)后,读取FIFO中的数据。这里用FIFO的8位数据线。IDT7201为先进先出双口存储器。内部RAM:5129,设有空标志(EF)、满标志(FF)和半满标志(HF),以避免数据溢出和空读。读、写数据通过内部循环指针,无须地址信息存取数据。IDT7201复位时,空标志(EF)置0;满标志(FF)和半满标志(HF)置1;读、写指针设到初始位置。当写信号()由高变低时,若满标志(FF)为1,则开始写循环,将数据写入RAM中,不受任何读操作的影响;当RAM半满时,HF

14、置0;当写指针比读指针小1时,表明缓冲区已满,FF置0,禁止写操作。当读信号()由低到高时,如果EF为1,则开始读循环,数据以FIFO的方式读出;当所有数据均读出,读指针等于写指针,缓冲区已空,EF置0,禁止读操作。在缓冲区空或满时,、信号的外部变化,不影响FIFO。图 4 FIFO实现输入输出控制原理图四、 板内程序设计流程在单片机内部RAM中,用可位寻址的21H、22H、23H、24H单元分别存放秒、分、时BCD码和帧标志等,如表1所列。表1 时间码存放表D0D1D2D3D4D5D6D7单片机内部RAM21H08H09H0AH0BH0CH0DH0EH秒的个位秒的十位22H10H11H12H13H14H15H16H分的个位分的十位23H18H19H1AH1BH1CH1DH时的个位时的十位24H20H21H22H23H24H25H26H27H帧标志INT0、INTI中断处理程序如图5和图6所示。图5 INT0中断处理程序流程图图 6INT1中断处理程序流程图MES

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号