什么是IRIG-B碼對時
IRIG-B(inter-range instrumentationgroup-B)碼是一種時間同步標準,通常用于精確的時間測量和數據同步,廣泛應用于電力、通信、航空等領域。
IRIG-B碼為每秒一幀的時間串碼,一幀串碼中包含100個碼元,頻率為1KHz,即每個碼元占用10ms時間。IRIG-B碼基本的碼元為"0"碼元、"1"碼元和"P"碼元,"0"碼元和"1"碼元對應的脈沖寬度為2ms和5ms,"P"碼元為位置碼元,對應的脈沖寬度為8ms,IRIG-B碼信息的基本碼元的示意圖如下所示。
圖1
下圖為一幀的IRIG-B碼脈沖序列結構示意圖。連續兩個"P"碼元表示整秒的開始,第二個"P"碼元的脈沖前沿為“準時”參考點,定義其為"Pr"。每10個碼元有一個位置碼元,共有10個,定義其為P1,P2,…,P9,P0。IRIG-B碼時間格式的時序為秒、分、時、天,所占信息位分別為:秒7位、分7位、時6位、天10位,其位置在P0 ~ P5之間。
通常,從"Pr"開始對碼元進行編號,分別定義為第0,1,2,…,99碼元,則“秒”信息位于第1、2、3、4、6、7、8碼元,“分”信息位于第10、11、12、13、15、16,17碼元,“時”信息位于第20、21、22、23、25、26碼元,“天”信息位于第30、31、32、33、35、36、37、38、40、41碼元。
圖2
IRIG-B碼對時應用場景
IRIG-B碼對時可應用于繼電保護裝置、電力RTU、電力錄波器、通訊管理機、電能質量在線監測等領域。創龍科技已基于TI AM62x異構多核處理器實現IRIG-B碼對時方案,降低了終端用戶的開發難度,縮減了研發時間,可快速進行產品方案評估與技術預研。
圖3
常見IRIG-B碼對時實現方案
IRIG-B碼對時的實現常見方案一般基于FPGA或MCU實現,具體方案實現方式如下。
(1)基于FPGA實現
為達到IRIG-B碼與時間信號輸入、輸出的精確同步,采用現代化靶場的IRIG-B碼編碼和解碼的原理,從工程的角度出發,提出了使用現場可編程門陣列(FPGA)來實現IRIG-B碼編碼和解碼的設計方案和體系結構,設計中會涉及到幾個不同的時鐘頻率,FPGA對時鐘的同步性具有靈活性、效率高、且功耗低,抗干擾性好的特點。結果表明,FPGA能夠確保為從設備提供同源的時鐘基準,使時鐘與信號的延遲控制在200ns以內,從而得到了IRIG-B碼與時間精確同步的效果。
但是,基于FPGA實現IRIG-B碼開發難度較大,時間投入較多,開發成本將會較高,不利于產品的快速上市。
(2)基于MCU實現
MCU(Micro Control Unit)即微控制單元,通過MCU核心可實現解析IRIG-B碼時序并提取時間信息,再將時間信息同步至其他核心。
基于MCU實現IRIG-B碼開發方案結構簡單、開發成本較低、同步精度較高,可滿足多種工業應用場景要求。
AM62xIRIG-B碼對時方案
本章節主要描述創龍科技基于TI AM62x的MCU(Cortex-M4F)核心實現IRIG-B碼信號解析功能。
AM62x內部集成Cortex-A53 + Cortex-M4F核心,可使用Cortex-M4F實現IRIG-B碼對時功能,無需增加額外的MCU成本。并且,通過內部MCU實現IRIG-B碼對時功能方案,硬件設計簡單,有利于快速開發產品。
(1)案例說明
衛星時鐘同步裝置(廠家:南京諾煌電氣科技有限公司,型號:YS-DN-100)通過GPS天線模塊獲取標準時間信息并輸出IRIG-B碼信號,經評估板板載RS485芯片轉換成電平信號后傳輸至Cortex-M4F核心,Cortex-M4F核心通過讀取GPIO引腳電平,解析IRIG-B碼時序并提取時間信息,再通過TI-RPMsg機制將時間信息發送至Cortex-A53核心打印時間信息。系統框圖如下所示。
圖4
(2)
案例測試
本案例需在開闊場地進行測試,請確保衛星時鐘同步裝置的RUN指示燈處于常亮狀態(表示設備工作正常),否則請檢查GPS天線連接是否正常。
由于評估底板RS485_2 UART5為Cortex-A53核心的外設,因此請通過飛線的方式將RS485芯片(U30)的pin3引腳連接至EXPROT接口(J11)的pin4引腳(即Cortex-M4F核心GPIO)。衛星時鐘同步裝置輸出的IRIG-B碼信號經評估底板RS485_2 UART5接口后,再經過EXPROT接口(J11)的pin4引腳輸入至Cortex-M4F核心。
圖5
圖6
請將衛星時鐘同步裝置的ANT接口連接至GPS天線模塊,將衛星時鐘同步裝置OUT1接口的“+端子”連接至評估板的RS485_2 UART5接口“A2端子”、OUT1接口的“-端子”連接至評估板的RS485_2 UART5接口“B2端子”,硬件連接如下圖所示。
圖7
請將本案例"dtsbin"目錄下的tl62x-evm.dtb設備樹文件拷貝至Linux系統啟動卡"/boot/"目錄下,替換原有的tl62x-evm.dtb設備樹文件。然后將案例bin目錄下的am62-mcu-m4f0_0-fw文件、irig_b_decode可執行程序拷貝至Linux系統啟動卡文件系統"/home/root/"目錄下。
圖8
評估板上電,從Linux系統啟動卡啟動,依次執行如下命令,更新Cortex-M4F核心固件,并重啟評估板。
Target#rm /lib/firmware/am62-mcu-m4f0_0-fw
Target#cd /lib/firmware/
Target#ln -sf /home/root/am62-mcu-m4f0_0-fw am62-mcu-m4f0_0-fw
Target#sync
Target#reboot
圖9
執行如下命令,查詢Cortex-M4F核心與remoteproc對應關系。
備注:Cortex-M4F核心對應的RemoteProc Name為5000000.m4fss。
Target#head /sys/class/remoteproc/remoteproc*/name
圖10
根據查詢結果,執行如下命令查看Cortex-M4F核心程序運行日志,確認Cortex-M4F核心運行狀態。
Target#cat /sys/kernel/debug/remoteproc/remoteproc0/trace0
圖11
執行如下命令,查看程序運行參數。
Target#./irig_b_decode -h
備注:rproc_id:核心ID。Cortex-M4F核心ID為9,默認ID為0。
圖12
執行如下命令,解析IRIG-B碼時序并提取時間信息,可看到串口終端打印當前日期如下圖所示。
Target#./irig_b_decode -r9
圖13
審核編輯 黃宇
-
處理器
+關注
關注
68文章
19348瀏覽量
230260 -
FPGA
+關注
關注
1630文章
21759瀏覽量
604291 -
異構多核
+關注
關注
0文章
7瀏覽量
6934 -
IRIG-B碼
+關注
關注
0文章
8瀏覽量
9384
發布評論請先 登錄
相關推薦
評論