EM9360是英創(chuàng)公司推出的基于AT91SAM9260的同時(shí)支持3網(wǎng)口,6串口和CAN通訊接口的高性能ARM9工控主板。經(jīng)過我們精心的設(shè)計(jì),使得EM9360還具有了強(qiáng)大的擴(kuò)展功能,最終可通過EM9360構(gòu)建成同時(shí)支持4網(wǎng)口,雙CAN,22串口的網(wǎng)絡(luò)通訊終端,基于其強(qiáng)大的通訊功能,EM9360廣泛應(yīng)用于電力、鐵路,電信等行業(yè)。在上述行業(yè)中,除了對設(shè)備的通訊功能,運(yùn)行穩(wěn)定性有很高的要求之外,一般還需要系統(tǒng)具有高精度的時(shí)間同步功能。鑒于此,EM9360預(yù)留了一路時(shí)間同步輸入(PPS_IN)接口,通過此接口可使EM9360與時(shí)鐘源保持精確時(shí)間同步,同時(shí)EM9360還保留了一路時(shí)間同步輸出(PPS_OUT)接口,可讓其作為時(shí)間服務(wù)器,同步其它設(shè)備。
本文主要介紹EM9360通過GPS時(shí)鐘源產(chǎn)生的IRIG-B(DC)碼實(shí)現(xiàn)時(shí)間同步的方法。IRIG是美國靶場司令委員會制定的一種時(shí)間標(biāo)準(zhǔn),其中的串行時(shí)鐘編碼共有6種格式,即A、B、D、E、G、H。它們的主要差別是時(shí)間碼的幀速率不同,廣泛應(yīng)用的IRIG-B即其中的B型編碼,B型碼的時(shí)幀速率為1幀/s,可傳遞100位信息。圖1是IGIG-B碼示意圖,其時(shí)幀周期是1s,每秒100個(gè)碼元,使用脈寬編碼方式,每個(gè)碼元脈寬10ms,共三種碼元,其中高電平5ms和2ms分別表示二進(jìn)制 “1”,“0”,高電平8ms為位置標(biāo)識,分別為P0,P1,…P9。連續(xù)兩個(gè)8ms寬度脈沖的第二個(gè)8ms脈沖的前沿為秒準(zhǔn)點(diǎn)標(biāo)志,也是一個(gè)時(shí)間格式的幀參考標(biāo)志。一個(gè)時(shí)間格式幀包含了秒,時(shí),分,天數(shù),年份,控制位等豐富的信息。
IRIG-B碼標(biāo)準(zhǔn)
在使用IRIG-B碼時(shí)鐘源與EM9360與進(jìn)行時(shí)間同步時(shí),用戶并不需要關(guān)心IRIG-B碼的具體含義,實(shí)現(xiàn)方法,僅需要將B碼送到EM9360的PPS_IN接口就行了,EM9360的驅(qū)動(dòng)程序?qū)⑼瓿葿碼解碼,同步等工作。下面從應(yīng)用層面介紹用戶如何使用EM9360的IRIG-B校時(shí)功能。
1、通過標(biāo)準(zhǔn)的文件操作方式來打開系統(tǒng)的校時(shí)功能
HANDLE hGPSFile;
hGPSFile = CreateFile( TEXT('GPS1:'), GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);
2、關(guān)閉由CreateFile打開的HANDLE,即關(guān)閉系統(tǒng)校時(shí)功能。
CloseHandle(hGPSFile);
3、用戶可以調(diào)用DeviceIoControl來查看系統(tǒng)最近一次同步的時(shí)間,調(diào)用方法如下:
#define IOCTL_IRIG_B_GET_TIME CTL_CODE(FILE_DEVICE_UNKNOWN, 0xC10, METHOD_BUFFERED, FILE_ANY_ACCESS)
BOOL GetSyncTime( HANDLE hDevice, SYSTEMTIME *pSyncTime )
{
DWORD dwBytesReturned;
return DeviceIoControl(
hDevice, // 由CreateFile打開的HANDLE
IOCTL_IRIG_B_GET_TIME, // 操作碼,即上面的宏定義
NULL,
0,
(LPVOID) pSyncTime,
sizeof( SYSTEMTIME ),
&dwBytesReturned,
NULL
);
}
4、用戶可以通過修改系統(tǒng)注冊表來配置靈活的校時(shí)方案,通過注冊表的設(shè)置,可實(shí)現(xiàn)時(shí)間秒同步、分鐘同步、小時(shí)同步或日同步,對應(yīng)的注冊表項(xiàng)如下:(下面的注冊表鍵值為系統(tǒng)默認(rèn)值)
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\GPS1]
'DeviceArrayIndex'=dword:1
'Prefix'='GPS'
'Dll'='irig_b.dll'
'DeviceID'=dword:1a
'Priority256'=dword:88
; AutoSync =0: 禁止校時(shí)功能; =1: 秒同步; =2: 分同步; = 3: 小時(shí)同步; = 4: 日同步
'AutoSync'=dword:2 ; minute sync
; SyncMinute:當(dāng)AutoSync為小時(shí)同步時(shí),在SyncMinute分鐘進(jìn)行同步
'SyncMinute'=dword:3b ; 0x3b = 59 -> minute on sync
; SyncHour: 當(dāng)AutoSync為日同步時(shí),在SyncHour小時(shí)進(jìn)行同步
'SyncHour'=dword:17 ; 0x17= 23 -> hour on sync
傳統(tǒng)的工控板卡在對IRIG-B碼處理時(shí),通常需要增加額外的硬件(如單片機(jī),FPGA)對B碼進(jìn)行解碼,然后再通過串口、總線或其它形式將數(shù)據(jù)交給主控板卡處理,增加了系統(tǒng)成本和操作難度,EM9360可直接對B碼進(jìn)行解碼,不需要增加任何硬件就能實(shí)現(xiàn)毫秒級精度的時(shí)間同步,大大降低了系統(tǒng)復(fù)雜程度,節(jié)約了成本,提高了系統(tǒng)穩(wěn)定性。
該校時(shí)方案同樣實(shí)用于英創(chuàng)其它9260系列工控主板,如EM9160,EM9260。
-
嵌入式主板
+關(guān)注
關(guān)注
7文章
6085瀏覽量
35216
發(fā)布評論請先 登錄
相關(guān)推薦
評論