在工控行業很多領域中,需要控制系統具有高精度的時間同步功能,IRIG就是美國靶場司令委員會制定的一種時間標準。自EM9X60后,英創EM928x嵌入式主板也實現了IRIG-B碼校時功能。之前的相關文章見鏈接http://www.emtronix.com/article/article2011414.html。
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碼標準
EM9280擁有4路IRQ,其中IRQ3也可用于IRIG-B碼校時。使用IRIG-B碼校功能時,需要設置注冊表,關閉IRQ3功能
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\IRQ3]
'TrueInstall'=dword:0
同時打開IRIQB對時功能
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\IGB1]
'TrueInstall'=dword:1
此時IRIGB功能打開,IRQ3不能繼續做IRQ使用(其它3路IRQ可正常使用)。
在與IRIG-B碼時鐘源時間同步時,用戶并不需要關心IRIG-B碼的具體含義,實現方法,僅需要將B碼送到EM9280的IRQ3接口(對應英創EM9280評估底板CN10,11針腳)就行了,EM9360的驅動程序將完成B碼解碼,同步等工作。
應用層面使用EM9280的IRIG-B校時功能方法如下。
1、通過標準的文件操作方式來打開系統的校時功能。
HANDLE hIrigb;
hIrigb = CreateFile(L'IGB1:', // name of device
GENERIC_READ|GENERIC_WRITE, // desired access
FILE_SHARE_READ|FILE_SHARE_WRITE, // sharing mode
NULL, // security attributes (ignored)
OPEN_EXISTING, // creation disposition
FILE_FLAG_RANDOM_ACCESS, // flags/attributes
NULL); // template file (ignored)
2、關閉由CreateFile打開的HANDLE,即關閉系統校時功能。
CloseHandle(hIrigb);
3、用戶可以調用DeviceIoControl來查看系統最近一次同步的時間,調用方法如下:
#define IOCTL_IRIG_B_GET_TIME CTL_CODE(FILE_DEVICE_UNKNOWN, 0xC10, METHOD_BUFFERED, FILE_ANY_ACCESS)
bRet = DeviceIoControl(hIrigb, // file handle to the driver
IOCTL_IRIG_B_GET_TIME, // I/O control code
NULL, // in buffer
0, // in buffer size
&systime, // out buffer
sizeof(SYSTEMTIME), // out buffer size
NULL, // pointer to number of bytes returned
NULL); // ignored (=NULL)
4、用戶可以通過修改系統注冊表來配置靈活的校時方案,通過注冊表的設置,可實現時間秒同步、分鐘同步、小時同步或日同步,對應的注冊表項如下:(下面的注冊表鍵值為系統默認值)
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\IGB1]
'DeviceArrayIndex'=dword:1
'Prefix'='IGB'
'Dll'='irig_b.dll'
'DeviceID'=dword: fe
'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碼進行解碼,然后再通過串口、總線或其它形式將數據交給主控板卡處理,增加了系統成本和操作難度,英創EM9280及EM9X60可直接對B碼進行解碼,不需要增加任何硬件就能實現毫秒級精度的時間同步,大大降低了系統復雜程度,節約了成本,提高了系統穩定性。
-
嵌入式主板
+關注
關注
7文章
6086瀏覽量
35622
發布評論請先 登錄
相關推薦
中科曙光南京研究院方案入選江蘇省信息技術創新優秀解決方案
中科曙光入選2024年江蘇省信息技術應用創新優秀解決方案名單
中科創達榮獲2024年軟件和信息技術服務優秀企業
梯度科技入選2023年信息技術應用創新解決方案名單
B碼對時案例分享,基于RK3568J+Logos-2,讓電力設備輕松實現“高精度授時”!
兆芯金融方案入選工信部2023年信息技術應用創新典型解決方案
NTP服務器知識課堂 網絡時間同步系統的校時方式
![NTP服務器知識課堂 網絡時間同步系統的<b class='flag-5'>校時方</b>式](https://file1.elecfans.com//web2/M00/FF/5E/wKgZomaohuCAVFhGAADZ8dWv154986.jpg)
網絡時間同步系統的校時方式
![網絡時間同步系統的<b class='flag-5'>校時方</b>式](https://file1.elecfans.com/web2/M00/A6/33/wKgaomUSmM6AAKXHAAFmcT9Nwyc385.png)
B碼對時方案,基于TI AM62x異構多核工業處理器實現!
B碼對時方案,基于TI AM62x異構多核工業處理器實現!
翼輝信息入選2023年信息技術應用創新解決方案名單
![翼輝<b class='flag-5'>信息</b>入選2023年<b class='flag-5'>信息技術</b>應用創新解決<b class='flag-5'>方案</b>名單](https://file1.elecfans.com/web2/M00/DF/08/wKgaomYtxPmAfMmRAAAXEv6laks393.jpg)
網絡時間同步服務器的校時方式,您了解多少?
![網絡時間同步服務器的<b class='flag-5'>校時方</b>式,您了解多少?](https://file1.elecfans.com/web2/M00/8D/BE/wKgaomS_fpGAGlHNAAS4Wz6JV4k897.png)
龍芯中科三項信創方案入圍工信部2023年信息技術應用創新應用示范案例名單
![龍芯中科三項信<b class='flag-5'>創</b><b class='flag-5'>方案</b>入圍工信部2023年<b class='flag-5'>信息技術</b>應用創新應用示范案例名單](https://file1.elecfans.com/web2/M00/C3/19/wKgZomXpfwWAT16RAABpz-I0EpY201.png)
B碼對時方案,基于TI AM62x異構多核工業處理器實現!
![<b class='flag-5'>B</b><b class='flag-5'>碼</b>對<b class='flag-5'>時方案</b>,基于TI AM62x異構多核工業處理器實現!](https://file1.elecfans.com/web2/M00/C2/EC/wKgZomXpHHyAF4RtAABrSqQ9DGs303.png)
評論