EM9360是英創公司推出的基于AT91SAM9260的同時支持3網口,6串口和CAN通訊接口的高性能ARM9工控主板。經過我們精心的設計,使得EM9360還具有了強大的擴展功能,最終可通過EM9360構建成同時支持4網口,雙CAN,22串口的網絡通訊終端,基于其強大的通訊功能,EM9360廣泛應用于電力、鐵路,電信等行業。在上述行業中,除了對設備的通訊功能,運行穩定性有很高的要求之外,一般還需要系統具有高精度的時間同步功能。鑒于此,EM9360預留了一路時間同步輸入(PPS_IN)接口,通過此接口可使EM9360與時鐘源保持精確時間同步,同時EM9360還保留了一路時間同步輸出(PPS_OUT)接口,可讓其作為時間服務器,同步其它設備。
本文主要介紹EM9360通過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脈沖的前沿為秒準點標志,也是一個時間格式的幀參考標志。一個時間格式幀包含了秒,時,分,天數,年份,控制位等豐富的信息。
IRIG-B碼標準
在使用IRIG-B碼時鐘源與EM9360與進行時間同步時,用戶并不需要關心IRIG-B碼的具體含義,實現方法,僅需要將B碼送到EM9360的PPS_IN接口就行了,EM9360的驅動程序將完成B碼解碼,同步等工作。下面從應用層面介紹用戶如何使用EM9360的IRIG-B校時功能。
1、通過標準的文件操作方式來打開系統的校時功能
HANDLE hGPSFile;
hGPSFile = CreateFile( TEXT('GPS1:'), GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);
2、關閉由CreateFile打開的HANDLE,即關閉系統校時功能。
CloseHandle(hGPSFile);
3、用戶可以調用DeviceIoControl來查看系統最近一次同步的時間,調用方法如下:
#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、用戶可以通過修改系統注冊表來配置靈活的校時方案,通過注冊表的設置,可實現時間秒同步、分鐘同步、小時同步或日同步,對應的注冊表項如下:(下面的注冊表鍵值為系統默認值)
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\GPS1]
'DeviceArrayIndex'=dword:1
'Prefix'='GPS'
'Dll'='irig_b.dll'
'DeviceID'=dword:1a
'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碼進行解碼,然后再通過串口、總線或其它形式將數據交給主控板卡處理,增加了系統成本和操作難度,EM9360可直接對B碼進行解碼,不需要增加任何硬件就能實現毫秒級精度的時間同步,大大降低了系統復雜程度,節約了成本,提高了系統穩定性。
該校時方案同樣實用于英創其它9260系列工控主板,如EM9160,EM9260。
-
嵌入式主板
+關注
關注
7文章
6086瀏覽量
35614
發布評論請先 登錄
相關推薦
評論