摘 要: 闡述了用單片機實現(xiàn)同時解調多路IRIG-B碼的應用設計,,利用單片機中斷查詢的方法,,以有限的單片機資源實現(xiàn)最多可同時解調8路IRIG-B碼,。
關鍵詞: IRIG-B碼,;時間碼;B(AC)碼,;B(DC)碼,;碼元,;同步誤差
IRIG-B碼(以下簡稱B碼)是美國靶場測量組推薦的格式時間碼之一,該碼在世界各國靶場應用廣泛,。B碼又分為直流碼IRIG-B(DC)碼(以下簡稱DC碼)和交流碼IRIG-B(AC)碼(以下簡稱AC碼),,DC碼傳輸距離小但授時同步誤差小,AC碼傳輸遠但授時同步誤差相對較大,。詳細的B碼波形及信息定義請參閱參考文獻[1],。B碼授時需要授時終端回送B碼作為自動測量和監(jiān)控同步誤差的依據(jù)。因此,,在點對多B碼授時體系中,,將存在一臺設備同時解調多路B碼現(xiàn)象,用單片機完成多路B碼解調任務具有節(jié)省硬件資源,、控制靈活等特點,。本文以W78E058B單片機為基礎,提出了基于單片機的多路解調IRIG-B碼的應用設計方法,。
1 設計原理
1.1 B碼授時原理
時間終端設備通過接收B碼授時,,同時產(chǎn)生B碼回送上級時間設備,上級時間設備負責送出授時B碼并測量時延和監(jiān)視授時情況,,如圖1所示,。時間終端設備解調授時B碼得到時、分,、秒等時間信息和秒頭,,用于B碼同步;時間設備解調回送B碼得到時,、分,、秒等時間信息和秒頭,用于測量B碼環(huán)路時延并監(jiān)視授時情況,,如圖2所示,。
1.2 單片機解碼原理
AC碼經(jīng)解調電路解調得到DC碼,單片機通過解讀DC碼可以得到B碼信息,。DC碼信息由基本碼元組成,,每碼元占用10 ms的時間寬度。碼元含義依據(jù)高低電平寬度來定義,,分為“0碼”,、“1碼”和“P碼”,如圖3所示,。
用1 kHz信號作為外中斷源,中斷服務程序對各路DC碼高低電平分別計數(shù),,計數(shù)結果作為判定碼元信息位的依據(jù),。
1.3 容錯機制
計數(shù)用的1 kHz信號由本地時鐘分頻產(chǎn)生,,其與各路DC碼存在相位漂移。當1 kHz和DC碼的邊沿非常接近時會存在冒險現(xiàn)象,,這將使計數(shù)結果可能出現(xiàn)±1的偏差,。例如,高電平實際寬度為2 ms,,出現(xiàn)冒險時,,可能誤計為1 ms或3 ms。因此,,設計容錯機制為:計數(shù)結果為1 ms,、2 ms、3 ms時,,判定為0碼,;計數(shù)結果為4 ms、5 ms,、6 ms時,,判定為1碼;計數(shù)結果為7 ms,、8 ms,、9 ms時,判定為P碼,。理論和實踐證明,,此容錯機制有效率為100%。
2 應用設計
2.1 硬件設計
用W78E058B單片機來實現(xiàn)解碼(最多可同時解調8路B碼),。端口分配為:P0口用作數(shù)據(jù)端口和低位地址口,,P1口輸入8路DC碼,P2口低4位作為高位地址口,,高4位和P4口作為8路解碼秒頭標志信號出,。本地1 kHz接入INT0作為單片機解碼中斷服務程序觸發(fā)中斷源,中斷服務程序中依次對8路DC碼計數(shù)識別,,解讀到的B碼信息由P0口寫入專用雙口RAM芯片,。解碼秒頭標志信號與相應的DC碼經(jīng)觸發(fā)裝置得到對應某路解調秒頭信號。至此8路B碼解調硬件設計任務完成,。
2.2 軟件實現(xiàn)
2.2.1 單片機初始化
開啟輔助RAM區(qū)AUX-RAM,,共256 B,存放8路前一秒B碼信息,,每路每秒B碼信息占用10 B,,8路B碼信息需80 B。
CHPNER EQU F6H
CHPCON EQU BFH
MOV CHPNER,,#87H
MOV CHPCON,,#59H
ORL CHPCON,,#00010000B;打開AUX-RAM
MOV CHPCON,,#00H
P4口默認為I/O端口,,可不設置。INT0設置為負邊沿觸發(fā)中斷方式,。
2.2.2 中斷服務程序
中斷服務程序ZDINT0依次對8路DC碼(P1口)進行信息解讀,,每路解讀程序流程如圖4所示。
本理論是在多年實踐的基礎上提出來的,,并且在研制時間設備對時同步檢測儀過程采用了該技術,,經(jīng)設備運行和實際使用環(huán)境檢測符合設計要求,該設計性能良好,。如果用更高配置的CPU來代替W78E058B,,則CPU剩余的資源還可以完成時間設備的其他功能任務。在點對多時間體系中,,時間設備可以減少大量的硬件資源,,設備在完成相同功能的情況下完全可以做到小型化,而且設備在維修性,、可靠性和靈活性方面也有很大的提高,。
參考文獻
[1] 國防科學技術工業(yè)委員會.B時間碼接口終端[S].GJB2991-97,1997:2-3.