首页 科技 军事 财经 教育 体育 房产 健康 汽车 安全 热点 人才 推选

科技

旗下栏目:

B码对时_百度文库

发布时间:2019-10-28 来源:原创/投稿/转载 作者:admin 人气:

  摘 要: IRIG-B 格式时间码(简称 B 码)为国际通用时间格式码,用于各系统的时间同步。“B 码解码接口 卡”为 EISA(或 ISA)总线接口卡,将标准时统设备送来的 IRIG-B(DC)码,解码出时、分、秒,并加入毫 秒信息,送入主计算机,以校准本机的系统时间。本文给出以单片机为核心的“B 码解码接口卡”电路设计 和板内程序流程。 关键词:单片机 解码 接口 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 口经锁存器Ⅰ输出******线,以控制两个并行接口芯片 8255 的输出端。单片机解码和计 数输出的毫秒(2 字节)、秒(1 字节)、分(1 字节)、时(1 字节)BCD 码,在单片机的写指令控制下, 分五次送到两片 8255 的不同端口。各端口经锁存器Ⅱ~锁存器Ⅵ,将数据锁存。单片机送出一组时间码后, 向主计算机发送中断。主计算机响应中断后,依次读取各锁存器的值,即为当前的时统时间。 锁存器Ⅱ~Ⅵ的数据输出端直接挂在 EISA(ISA)总线 通过******译码产生。 主计算机读时应能保证数据不处于变化中,因此,须将单片机的写信号 WR 经延时反向后,送到各锁存器的 LE 端,使数据被锁存。主计算机内设一存储单元,存放前一秒的数据。当前读取的数据如果比前一秒多 1,则认 为时间正确。 为避免板内程序死循环,在该板上设计了看门狗复位电路。 在单片机板内程序中,每隔一定时间对 P1.6 口进 行置 1。计时器的最高位输出端接至单片机的 Reset 端。在正常情况下,P1.6 口总能执行置 1 操作,不会对 单片机复位;但若程序中有死循环,则 P1.6 口不被置 1。当计时器计到最高位输出端为 1 时,就会对单片机 复位。看门狗复位电路采用 14 位二进制计数器 4060,并具备上电复位和手动复位的功能,其振荡周期由外 接电阻、电容的大小决定。 2 ? 电路设计方案 2 方案 2 如图 4 所示。解码原理同方案 1。该电路采用 FIFO(IDT7201)加状态寄存器和缓冲器,实现单片机 与主计算机之间的数据传输,无需 8255 和锁存器,器件较少,但相应地会增加软件控制的工作量。单片机解 码后,在每帧数据前加上标志码,输出时、分、秒、毫秒信息,在写信号的控制下,经缓冲器送入 FIFO 中。主 计算机查询状态寄存器,了解 FIFO 的状态(空、满、半满)后,读取 FIFO 中的数据。这里用 FIFO 的 8 位数 据线 为先进先出双口存储器。内部 RAM:512×9,设有空标志(EF)、满标志(FF)和半满标志(HF), 以避免数据溢出和空读。读、写数据通过内部循环指针,无须******信息存取数据。 IDT7201 复位时,空标志(EF)置 0;满标志(FF)和半满标志(HF)置 1;读、写指针设到初始位置。当写 信号 () 由高变低时,若满标志 (FF) 1,则开始写循环,将数据写入 RAM 中,不受任何读操作的影响;当 RAM 为 半满时,HF 置 0;当写指针比读指针小 1 时,表明缓冲区已满,FF 置 0,禁止写操作。 当读信号 由低到高时, () 如果 EF 为 1,则开始读循环,数据以 FIFO 的方式读出;当所有数据均读出,读指针等于写指针,缓冲区已空,EF 置 0,禁止读操作。在缓冲区空或满时,、信号的外部变化,不影响 FIFO。 图 4 FIFO 实现输入输出控制原理图 四、 板内程序设计流程 在单片机内部 RAM 中,用可位寻址的 21H、22H、23H、24H 单元分别存放秒、分、时BCD 码和帧标志 等,如表 1 所列。 表 1 时间码存放表 D0 单 片 机 内 部 RAM 21H 22H 23H 24H 08H 10H 18H 20H D1 09H 11H 19H 21H 秒的个位 12H 1AH 22H 13H 1BH 23H 14H 1CH 24H 分的个位 时的个位 D2 0AH D3 0BH D4 0CH D5 0DH 15H 1DH 时的十位 25H 26H 27H D6 0EH 16H D7 秒的十位 分的十位 帧标志 INT0、INTI 中断处理程序如图 5 和图 6 所示。 图 5 INT0 中断处理程序流程图 图 6INT1 中断处理程序流程图 MES

责任编辑:admin