王 紅
內蒙古交通職業技術學院赤峰,內蒙古赤峰 024005
將分布于不同地域的各種系統中的時間統一于一個標準時間或者與標準時間之差限定在某一范圍之內,我們稱之為時間同步。當前,時間同步在很多行業領域中都起著至關重要的作用。比如在航空航天、交通運輸以及電力系統等領域,要求時間同步的精度要達到微秒甚至納秒級,各系統才能正常高效地運作。
為滿足各行業對時間同步的高精度要求,很多商家都研制出了基于GPS 的對時裝置,GPS 即全球定位系統(GPS)是目前比較完善的全球共享的高精度時間發布系統。這些裝置接收來自GPS 的標準時間信息,解碼并轉換為各種時間格式碼提供給不同的系統對時之用,如DCF77 格式碼、BJT 格式碼、IRIG-B 格式碼等,這些格式碼各有優缺點。而IRIG-B 碼作為一種國際通用的時間編碼,對時精確,簡化了對時回路,并包含完整的絕對時標信息,因此得到了廣泛的應用。
IRIG(Inter Range Instrumentation Group)碼,是美國靶場司令委員會制定的一種時間標準,其包含4 種并行二進制時間碼格式和6 種串行二進制時間碼格式,而IRIG-B 時間碼格式是其中最常用的一種。IRIG-B 碼包含有秒、分鐘、小時、一年中的第幾天、年份、二進制的秒計日等時間信息,且發送頻率為每秒一次,因此其中還隱含著標準的秒脈沖信息。

圖1 IRIG-B(DC)碼示意圖
圖1 是 IRIG-B(DC)碼的示意圖。它是一種采用脈寬編碼方式編碼的串行時間碼,每秒發送一幀,一幀包括100 個碼元。每個碼元都是由總寬度為10ms 的脈沖組成,其中由高電平所占寬度的不同代表著不同的碼型,即:二進制的"0"、"1"和位置識別標志。二進制"0"的脈寬為2ms,二進制"1"的脈寬為5ms,位置識別標志的脈寬為8ms。每10 個碼元就會有一個位置識別標志,因此,在一幀數據內共有10 個位置識別標志,即:P1,P2,P3,…,P9,P0,另外還有一個幀參考標志碼元PR,脈寬也為8ms。一幀數據中包含三大部分信息:第一部分按順序分別為秒、分、時、天、年等信息,第二部分為控制功能位,第三部分是用二進制的秒來表示的一天中的時間信息,此部分計時信息每24 小時循環1 次。
碼元的"準時"參考點是其脈沖前沿,一幀數據從幀參考標志PR 碼元開始,而其前一個碼元正是上一個幀周期中的最后一個位置識別標志P0 碼元。因此當連續出現兩個8ms 脈寬的碼元時,在這兩個碼元之后的下一個碼元即為當前一幀數據中秒的開始。從參考碼元PR 開始對碼元進行編碼,即從第0號碼元開始依次至第99 號碼元,共計100 個碼元。在一幀數據的第一部分信息中,秒、分、時、天、年的位置在位置識別標志P0~P6 之間,均用BCD 碼表示,低位在前,高位在后;依次占用的碼元為秒7 位即第1,2,3,4,6,7,8 號碼元、分7 位即第10,11,12,13,15,16,17 號碼元、時6 位即第20,21,22,23,25,26,27 號碼元、天10 位即第30,31,32,33,35,36,37,38,40,41 號碼元、年8 位即第50,51,52,53,55,56,57,58 號碼元,其中每段信息中均有一個脈寬為2ms 的索引標志,依次為第5,14,24,34,44,54 號碼元。第二部分信息即一些控制功能位,位于位置識別標志P6~P8 之間。第三部分信息即二進制秒計日信息位于位置識別標志P8~P0 之間,占據第80~97 碼元,共計17 位。
對IRIG-B 格式時間碼進行解碼就是利用MCS-51 系列單片機及其外圍電路接收來自時統設備的IRIG-B 碼,根據IRIG-B碼的數據格式,解讀出其中所包含的各種時間信息,通過程序設計將其轉換為其它各種不同的時間格式碼,以供不同的設備對時之用。另外,根據IRIG-B 碼的發送頻率為每秒一次,并參考PR 碼元的上升沿,可以形成一路標準秒脈沖信息,與串口信息同時輸出。解碼的關鍵在于對IRIG-B 碼中各個碼元的脈寬進行檢測,以確定碼頭,并對碼元開始計數,然后依次檢測隨后的98 個碼元脈沖寬度,以確定秒、分、時、天、年、二進制秒計日等信息。

圖3 解碼裝置原理框圖
來自時統設備的IRIG-B(DC)碼,多為RS422/RS485 接口信號,經75176 集成塊轉換為TTL 電平。為避免將一些外部干擾信號帶入CPU,需經過7404 反相器去干擾整形,即去掉TTL 電平信號中的一些可能存在的毛刺波形,同時增加信號的驅動能力,提高了信號在傳輸過程中的抗干擾性。將去擾整形后的TTL 電平信號送至單片機89C2051 的INT0 端。
IRIG-B 時間碼經過單片機的處理后,解碼出各種時間信息,通過TXD 引腳送入MAX232 芯片,轉為RS232 電平信號后送到串口輸出端子,供給需進行時間同步的各類裝置設備對時使用。另外,根據IRIG-B 時間碼的參考幀標志信息,由單片機P1.5 引腳輸入一路秒脈沖對時信息。為提高輸出秒脈沖信息的抗干擾性及增加驅動能力,將其經光耦TLP521 隔離后送至輸出端口。秒脈沖采用靜態空接點的方式輸出,可通過短接塊完成有源輸出和無源輸出兩種方式之間的切換。
幀參考標志、“秒”、“分”、“時”、“天”、“年”的BCD 碼、計日的二進制秒等信息可分別存放在單片機內部RAM 中可位尋址的20H~29H 單元中,根據代表“1”、“0”的碼元寬度對相應的位置1 或清0。
關于脈寬的判斷,本設計采用單片機內部時鐘,為定時器T0 賦計時0.5ms 的初值。當INT0 引腳接收的信號的電平由低變高的時候,打開T0 定時器,則T0 定時器開始計時,當計滿0.5ms 時,進入T0 中斷,T0 中斷程序即對發生0.5ms 的次數進行計數,計數器加1;當INT0 引腳電平由高變低時,關閉T0 定時器停止計時,通過讀取T0 中斷中計數器的值來計算來自INT0 引腳的脈沖寬度,脈沖寬度即等于計數值乘以0.5ms。當脈沖寬度在1.5-3.5ms 范圍內時,認為脈寬為2ms,即為二進制0 碼元;當脈沖寬度在3.5-6.5ms 范圍內時,認為脈寬為5ms,即為二進制1 碼元;當脈沖寬度>6.5ms 時,認為脈寬為8ms,即為位置識別標志碼元。根據脈沖寬度解碼出IRIG-B 碼中所包含的各種時間信息,并存入單片機的內部RAM 單元中。根據年份,將天數換算成月份和日期。
除了送出絕對時標信息外,在幀參考標志上升沿出現時,可同時送出另外一種對時方式,即脈寬約為100ms 的秒脈沖信息。在幀參考標志上升沿出現時,將P1.5 置1,由于每個碼元寬度為10ms,因此當計數到十個碼元時清零P1.5,即形成脈寬為100ms 的秒脈沖。
本程序最終通過串行口中斷程序輸出解碼后的時間信息,并同時自P1.5 腳輸出脈寬為100ms 的秒脈沖信息。為了獲得準確完整的時間信息后再進行輸出,本設計在主程序開始前先進行通過一個子程序進行一次預對時,以確保時間信息的準確性。而串口中斷程序是用一個循環語句將連續單元存放的處理過的時間信息陸續送出。
本設計程序的關鍵在于如何處理當前接收的信息與輸出的信息之間的時間差問題。由于在接收到當前一秒的時間信息時,解出的時間信息已經滯后,若不經過加一秒處理即送出,則此時間信息剛好比B 碼標準時間滯后一秒。因此,需要將此時的時間信息進行加一秒處理,在下一秒的幀參考標志上升沿出現時將經過加一秒處理過的時間信息送出去,這時送出去的時間信息與B 碼標準時間才是同步吻合的。時間信息在經過加1 秒處理后除了秒信息發生變化外,可能還會產生年月日時分及一年中天數的變化,由于月份又有大月、小月、閏月之分,閏月可通過年除以4 取余的方法判斷是否為閏年,再進行相應月份、日期的處理。因此,時間每加一秒,都要考慮到這些信息的變化;又因為時間的不可重復性,因此在編程時要充分考慮到各種可能引起時間信息變化的因素。
本IRIG-B 解碼裝置有電路設計簡捷、性能穩定、抗干擾能力強、體積小等優點,而且所用CPU 芯片采用市場上通用ATMEL 公司的89C2051 單片機,具有很高的性價比。近年來,中國、西歐、美國等許多國家生產的電力系統配電設備、遙測設備等,與時間系統的接口大都采用IRIG-B 碼格式,因此IRIG-B 格式時間碼的應用日趨廣泛。從本IRIG-B 時間解碼裝置中解調出來的1pps 標準秒脈沖信號,亦可為一些時統設備提供對時之用,因此本裝置具有較高的應用價值。
[1]馬紅皎,胡永輝.GPS&IRIG-B 碼時間系統分析.電子科技,2005(7):21-25.
[2]劉浩,蘇理,丁敏.IRIG-B 碼對時在保護測控裝置中的實現.江蘇電機工程,2007(1):48-50.
[3]雷震,魏豐.IRIG-B格式時間碼在GPS同步時鐘卡中的應用.現代電子技術,2004(5):75-79.
[4]朱祖揚,薛兵.基于IRIG-A 碼輸出的超小型GPS時鐘設計.單片機與嵌入式系統應用,2006(12):22-24.
[5]何立民.單片機高級教程-應用與設計(第2版).北京:北京航空航天大學出版社,2007.