0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术IRIG-B码校时在WEC7主板ESM335x上的实现

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-02-04 11:40 次阅读

ESM335x是英创公司推出的基于TI AM335x Cortex-A8 CPU的高性能工控主板,板载了丰富的应用通讯接口,如LVDS/TTL标准显示接口,4USB、6串口、双CAN、双网口等。除此之外,ESM335x还引出了一组精简ISA总线,我们基于ESM335x的ISA总线设计了一系列扩展模块,比如8串口扩展模块ETA508、双网口扩展模块ETA728和4路CAN总线扩展模块ETA704,使得ESM335x能够满足更多复杂的工业应用,比如通讯管理机。当然用户也可以利用ESM335x 的ISA总线扩展自己的专有应用模块,以适应特定的现场应用需求。

在电力、交通、电信等行业,一般要求设备具有高精度时钟,通常由时钟源提供高精度的时钟信息输出,而设备需要有自动校时和时钟同步的能力,IRIG-B是目前广泛应用的较时方案之一,本文就将介绍ESM335x通过GPS时钟源产生的IRIG-B(DC)码实现时间同步的方法。

IRIG是美国靶场司令委员会制定的一种时间标准,其中的串行时钟编码共有6种格式,即A、B、D、E、G、H。它们的主要差别是时间码的帧速率不同,广泛应用的IRIG-B即其中的B型编码,B型码的时帧速率为1帧/s,可传递100位信息。图1是IGIG-B码示意图,其时帧周期是1s,每秒100个码元,使用脉宽编码方式,每个码元脉宽10ms,共三种码元,其中高电平5ms和2ms分别表示二进制 “1”,“0”,高电平8ms为位置标识,分别为P0,P1,…P9。连续两个8ms宽度脉冲的第二个8ms脉冲的前沿为秒准点标志,也是一个时间格式的帧参考标志。一个时间格式帧包含了秒,时,分,天数,年份,控制位等丰富的信息。

图1:IRIG-B码标准

上面是对IRIG-B码的简单介绍,在实际使用IRIG-B码时钟源与ESM335x进行时间同步时,用户并不需要关心IRIG-B码的具体含义和实现方法,仅需要将B码脉连接到ESM335x的较时引脚就可以了,ESM335x的驱动程序将完成B码解码、同步等工作。

ESM335x(EM335x)使用GPIO6作为B码脉冲输入管脚。

由于GPIO6还复用了PWM功能,所以当使用较时功能时,系统的“PWM1:”则不可用。另外需要特别注意的是:ESM335x(EM335x)所有GIPO的最高输入电压不能超3.3V,否则将损坏主CPU,所以在连接B码信号时应该根据实际情况增加相应的电平转换电路。

应用程序打开设备"IGB1:"后,对应的驱动程序就会根据注册表的设备,自动进行时间同步,下面是IRIG-B码校时的例子代码:

#include"stdafx.h"

#include

#include"bsp_drivers.h"

#defineIOCTL_IRIG_B_GET_TIME

CTL_CODE(FILE_DEVICE_BUS_EXTENDER, 4055, METHOD_BUFFERED, FILE_ANY_ACCESS)

#defineIOCTL_IRIG_B_SYNC_NOW

CTL_CODE(FILE_DEVICE_BUS_EXTENDER, 4056, METHOD_BUFFERED,FILE_ANY_ACCESS)

int_tmain(intargc, _TCHAR* argv[])

{

HANDLE hIrigb;

SYSTEMTIME systime;

DWORD dwTimeoues;

// 打开系统较时功能,驱动程序会根据注册表的设置自动较时

hIrigb = CreateFile(TEXT("IGB1:"),

GENERIC_READ|GENERIC_WRITE,

FILE_SHARE_READ|FILE_SHARE_WRITE,

NULL,

OPEN_EXISTING,

FILE_FLAG_RANDOM_ACCESS,

NULL);

if(hIrigb == INVALID_HANDLE_VALUE)

return-1;

// 立刻进行一次时间同步,超时时间设置为3000ms

dwTimeoues = 3000;

if(DeviceIoControl(hIrigb,

IOCTL_IRIG_B_SYNC_NOW,

&dwTimeoues,

sizeof(DWORD),

&systime, // 如果时间同步成功,返回当时系统时间

sizeof(SYSTEMTIME),

NULL,NULL))

{

RETAILMSG(1, (TEXT("Time: %04d-%02d-%02d.%02d:%02d:%02d\r\n"),

systime.wYear, systime.wMonth, systime.wDay,

systime.wHour, systime.wMinute, systime.wSecond));

}

else

{

RETAILMSG(1, (TEXT("Tiem sync faild!!!\r\n")));

}

// 查看最近一次同步的时间,如果返回失败表示时间未同步

if(DeviceIoControl(hIrigb,

IOCTL_IRIG_B_GET_TIME,

NULL,

0,

&systime,

sizeof(SYSTEMTIME),

NULL, NULL))

{

RETAILMSG(1, (TEXT("Sync time: %04d-%02d-%02d.%02d:%02d:%02d\r\n"),

systime.wYear, systime.wMonth, systime.wDay,

systime.wHour, systime.wMinute, systime.wSecond));

}

// 关闭较时功能

CloseHandle(hIrigb);

return0;

}

用户可以通过修改系统注册表来配置灵活的校时方案,通过注册表的设置,驱动程序可自动实现时间秒同步、分钟同步、小时同步或日同步,对应的注册表项如下:(下面的注册表键值为系统默认值)

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\IGB1]

"Prefix"="IGB"

"Dll"="irig_b.dll"

"Priority256"=dword:88

; AutoSync =0: 禁止校时功能; =1: 秒同步; =2: 分同步; = 3: 小时同步; = 4: 日同步

"AutoSync"=dword:2 ; minute sync

; SyncMinute:当AutoSync为小时同步时,在SyncMinute分钟进行同步

"SyncMinute"=dword:3b ; 0x3b = 59 -> minute on sync

; SyncHour: 当AutoSync为日同步时,在SyncHour小时进行同步

"SyncHour"=dword:17 ; 0x17= 23 -> hour on sync

传统的工控板卡在对IRIG-B码处理时,通常需要增加额外的硬件(如单片机FPGA)对B码进行解码,然后再通过串口、总线或其它形式将数据交给主控板卡处理,增加了系统成本和操作难度,ESM335x可直接对B码进行解码,不需要增加任何硬件就能实现毫秒级精度的时间同步,大大降低了系统复杂程度,节约了成本,提高了系统稳定性。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6085

    浏览量

    35450
收藏 人收藏

    评论

    相关推荐

    飞腾助力首届教育信息技术应用创新大赛圆满落幕

    近日,由中国教育技术协会主办,教育部教育管理信息中心教育信实验室、公安部第三研究所、中国电子工业标准化技术协会信工委会支持,北京航空航天
    的头像 发表于 12-24 09:57 161次阅读

    龙芯中科助力2024首届教育信息技术应用创新大赛成功举办

    近日,2024首届教育信息技术应用创新大赛北京航空航天大学成功举办。本次大赛由中国教育技术协会主办,教育信实验室、公安部第三研究所、中国电子工业标准化
    的头像 发表于 12-19 17:02 252次阅读

    AM335x和AMIC110 Sitara™处理器技术参考手册

    电子发烧友网站提供《AM335x和AMIC110 Sitara™处理器技术参考手册.pdf》资料免费下载
    发表于 11-14 15:07 0次下载
    AM<b class='flag-5'>335x</b>和AMIC110 Sitara™处理器<b class='flag-5'>技术</b>参考手册

    主板优化PCIe通道设置

    主板优化PCIe通道设置是提升系统性能的重要步骤,以下是具体的优化建议: 一、了解主板和PCIe规格 查阅主板手册 :首先,需要了解
    的头像 发表于 11-06 09:30 2553次阅读

    中科达荣获2024年软件和信息技术服务优秀企业

    近日,由中国电子信息行业联合会主办的第二十六届中国国际软件博览会(简称“软博会”)天津国家会展中心成功举行。在此次盛会上,中国电子信息行业联合会发布了“2024年软件和信息技术服务企
    的头像 发表于 10-30 11:44 508次阅读

    TMS320DM335 DMSoC实现DDR2/mDDR PCB布局

    电子发烧友网站提供《TMS320DM335 DMSoC实现DDR2/mDDR PCB布局.pdf》资料免费下载
    发表于 10-15 09:14 0次下载
    <b class='flag-5'>在</b>TMS320DM<b class='flag-5'>335</b> DMSoC<b class='flag-5'>上</b><b class='flag-5'>实现</b>DDR2/mDDR PCB布局

    AM335x功耗估算工具

    电子发烧友网站提供《AM335x功耗估算工具.pdf》资料免费下载
    发表于 10-12 11:46 0次下载
    AM<b class='flag-5'>335x</b>功耗估算工具

    国产化背景下的工控主板发展现状

    ,是信息技术应用创新产业的简称,于2016年“信工委会”(信息技术应用创新工作委员会)提出,目的就是要推动我们国内软硬件关键技术的研发
    的头像 发表于 09-21 16:15 435次阅读

    AM335x硬件设计指南

    电子发烧友网站提供《AM335x硬件设计指南.pdf》资料免费下载
    发表于 09-19 11:05 0次下载
    AM<b class='flag-5'>335x</b>硬件设计指南

    B对时案例分享,基于RK3568J+Logos-2,让电力设备轻松实现“高精度授时”!

    ,定义其为P1,P2,…,P9,P0。IRIG-B 时间格式的时序为秒、分、时、天,所占信息位分别为:秒7位、分7位、时6位、天10位,其
    发表于 08-22 14:00

    B对时方案,基于TI AM62x异构多核工业处理器实现

    AM62x异构多核处理器实现IRIG-B对时方案,降低了终端用户的开发难度,缩减了研发时间,可快速进行产品方案评估与技术预研。 图3 常
    发表于 07-25 14:38

    B对时方案,基于TI AM62x异构多核工业处理器实现

    IRIG-B开发方案结构简单、开发成本较低、同步精度较高,可满足多种工业应用场景要求。AM62x IRIG-B对时方案 本章节主要描述
    发表于 07-17 11:07

    昇腾APN最佳伙伴—科技AI算力计算产品亮相WAIC 2024

    WAIC2024的成功举办,必将推动人工智能技术的发展实现新的跨越,科技也从中收获满满!未来,科技
    的头像 发表于 07-09 16:50 503次阅读
    昇腾APN最佳伙伴—<b class='flag-5'>英</b><b class='flag-5'>码</b>科技AI算力计算产品亮相WAIC 2024

    官宣!科技荣获昇腾APN分销金牌认证,携手共建算力底座

    4月15日,华为技术有限公司正式为广州信息科技有限公司颁发“昇腾APN分销金牌认证证书”,授牌仪式
    的头像 发表于 04-16 10:37 523次阅读
    官宣!<b class='flag-5'>英</b><b class='flag-5'>码</b>科技荣获昇腾APN分销金牌认证,携手共建算力底座

    B对时方案,基于TI AM62x异构多核工业处理器实现

    对应的脉冲宽度为2ms和5ms,"P"码元为位置码元,对应的脉冲宽度为8ms,IRIG-B信息的基本码元的示意图如下所示。   图1 下图为一帧的IRIG-
    的头像 发表于 03-07 09:55 712次阅读
    <b class='flag-5'>B</b><b class='flag-5'>码</b>对时方案,基于TI AM62<b class='flag-5'>x</b>异构多核工业处理器<b class='flag-5'>实现</b>!