IRIG-B格式时间码解码接口卡电路设计
发布时间:2008/5/27 0:00:00 访问次数:1473
关键词:单片机 解码 接口 irig-b格式
一、 irig-b格式码的格式与规范
图 1为 b(dc)码示意图。它是每秒一帧的时间串码,每个码元宽度为10ms,一个时帧周期包括100个码元,为脉宽编码。码元的"准时"参考点是其脉冲前沿,时帧的参考标志由一个位置识别标志和相邻的参考码元组成,其宽度为8ms;每10个码元有一个位置识别标志:p1,p2,p3,…,p9,p0,它们均为8ms宽度;pr为帧参考点;二进制"1"和"0"的脉宽为5ms和2ms。
一个时间格式帧从帧参考标志开始。因此连续两个8ms宽脉冲表明秒的开始,如果从第二个8ms开始对码元进行编码,分别为第0,1,2,…,99个码元。在b码时间格式中含有天、时、分、秒,时序为秒-分-时-天,所占信息位为秒7位、分7位、时6位、天10位,其位置在p0~p5之间。p6~p0包含其他控制信息。其中"秒"信息:第1,2,3,4,6,7,8码元;"分"信息:第10,11,12,13,15,16,17码元;"时"信息:第20,21,22,23,25,26,27码元;第5,14,24码元为索引标志,宽度为2ms。时、分、秒均用bcd码表示,低位在前,高位在后;个位在前,十位在后。
图 1 b(dc)码示意图
二、 b码解码接口卡设计方案
b码解码接口卡功能框图如图2所示。
对b码进行解码就是将b码中所包含的时、分、秒信息提取出来,转换成主计算机能够识别的形式,同时以秒的准时点为参考,生成毫秒信息,一同送入主计算机中。解码的关键在于检测b码中各个码元的高电平宽度,首先要检测连续两个8ms宽的码元出现的位置,然后再检测随后的30个码元脉冲宽度,以确定时、分、秒。这里不检测天的值,天可以直接在主计算机上设置。
检测高电平宽度:将b码送入单片机89c51的int0端,在int0引脚由低电平变为高电平时,启动单片机的内部定时器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工作在模式1,采用内部时钟。当int0引脚由低到高时,定时器t0开始计时;当int0引脚由高变低时,触发int0中断,执行中断服务程序,计算int0引脚的高电平宽度。根据宽度对b码各脉冲进行解码,形成秒、分、时的bcd码,存入单片机的内部ram中。同时,由频率源产生的12mhz的信号经分频器后,输出1khz信号,送至单片机int1引脚,使1ms产生一次int1中断,执行int1中断处理程序,对毫秒进行计数。毫秒计数到1000时,进行秒加1,毫秒初值在b码的准时点进行赋值。
单片机的p0口经锁存器ⅰ输出地址线a0、a1,以控制两个并行接口芯片8255的输出端。单片机解码和计数输出的毫秒(2字节)、秒(1字节)、分(1字节)、时(1字节)bcd码,在单片机的写指令控制下,分五次送到两片8255的不同端口。各端口经锁存器ⅱ~锁存器ⅵ,将数据锁存。单片机送出一组时间码后,向主计算机发送中断。主计算机响应中断后,依次读取各锁存器的值,即为当前的时统时间。
锁存器ⅱ~ⅵ的数据输出端直接挂在eisa(isa)总线上,其片选信号cs1~cs5通过地址译码产生。
主计算机读时应能保证数据不处于变化中,因此,须将单片机的写信号wr经延时反向后,送到各锁存器的le端,使数据被锁存。主计算机内设一存储单元,存放前一秒的数据。当前读取的数据如果比前一秒多1,则认为时间正确。
为避免板内程序死循环,在该板上设计了看门狗复位电路。在单片机板内程序中,每隔一定时间对p1.6口进行置1。计时器的最高位输出端接至单片机的reset端。在正常情况下,p1.6口总能执行置1操作,不会对单片机复位;但若程序中有死循环,则p1.6口不被置1。当计时器计到最高位输出端为1时,就会对单片机复位。看门狗复位电路采用14位二进制计数器4060,并具备上电复位和手动复位的功能,其振荡
关键词:单片机 解码 接口 irig-b格式
一、 irig-b格式码的格式与规范
图 1为 b(dc)码示意图。它是每秒一帧的时间串码,每个码元宽度为10ms,一个时帧周期包括100个码元,为脉宽编码。码元的"准时"参考点是其脉冲前沿,时帧的参考标志由一个位置识别标志和相邻的参考码元组成,其宽度为8ms;每10个码元有一个位置识别标志:p1,p2,p3,…,p9,p0,它们均为8ms宽度;pr为帧参考点;二进制"1"和"0"的脉宽为5ms和2ms。
一个时间格式帧从帧参考标志开始。因此连续两个8ms宽脉冲表明秒的开始,如果从第二个8ms开始对码元进行编码,分别为第0,1,2,…,99个码元。在b码时间格式中含有天、时、分、秒,时序为秒-分-时-天,所占信息位为秒7位、分7位、时6位、天10位,其位置在p0~p5之间。p6~p0包含其他控制信息。其中"秒"信息:第1,2,3,4,6,7,8码元;"分"信息:第10,11,12,13,15,16,17码元;"时"信息:第20,21,22,23,25,26,27码元;第5,14,24码元为索引标志,宽度为2ms。时、分、秒均用bcd码表示,低位在前,高位在后;个位在前,十位在后。
图 1 b(dc)码示意图
二、 b码解码接口卡设计方案
b码解码接口卡功能框图如图2所示。
对b码进行解码就是将b码中所包含的时、分、秒信息提取出来,转换成主计算机能够识别的形式,同时以秒的准时点为参考,生成毫秒信息,一同送入主计算机中。解码的关键在于检测b码中各个码元的高电平宽度,首先要检测连续两个8ms宽的码元出现的位置,然后再检测随后的30个码元脉冲宽度,以确定时、分、秒。这里不检测天的值,天可以直接在主计算机上设置。
检测高电平宽度:将b码送入单片机89c51的int0端,在int0引脚由低电平变为高电平时,启动单片机的内部定时器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工作在模式1,采用内部时钟。当int0引脚由低到高时,定时器t0开始计时;当int0引脚由高变低时,触发int0中断,执行中断服务程序,计算int0引脚的高电平宽度。根据宽度对b码各脉冲进行解码,形成秒、分、时的bcd码,存入单片机的内部ram中。同时,由频率源产生的12mhz的信号经分频器后,输出1khz信号,送至单片机int1引脚,使1ms产生一次int1中断,执行int1中断处理程序,对毫秒进行计数。毫秒计数到1000时,进行秒加1,毫秒初值在b码的准时点进行赋值。
单片机的p0口经锁存器ⅰ输出地址线a0、a1,以控制两个并行接口芯片8255的输出端。单片机解码和计数输出的毫秒(2字节)、秒(1字节)、分(1字节)、时(1字节)bcd码,在单片机的写指令控制下,分五次送到两片8255的不同端口。各端口经锁存器ⅱ~锁存器ⅵ,将数据锁存。单片机送出一组时间码后,向主计算机发送中断。主计算机响应中断后,依次读取各锁存器的值,即为当前的时统时间。
锁存器ⅱ~ⅵ的数据输出端直接挂在eisa(isa)总线上,其片选信号cs1~cs5通过地址译码产生。
主计算机读时应能保证数据不处于变化中,因此,须将单片机的写信号wr经延时反向后,送到各锁存器的le端,使数据被锁存。主计算机内设一存储单元,存放前一秒的数据。当前读取的数据如果比前一秒多1,则认为时间正确。
为避免板内程序死循环,在该板上设计了看门狗复位电路。在单片机板内程序中,每隔一定时间对p1.6口进行置1。计时器的最高位输出端接至单片机的reset端。在正常情况下,p1.6口总能执行置1操作,不会对单片机复位;但若程序中有死循环,则p1.6口不被置1。当计时器计到最高位输出端为1时,就会对单片机复位。看门狗复位电路采用14位二进制计数器4060,并具备上电复位和手动复位的功能,其振荡