文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.172617
中文引用格式: 王振,李建宏,,張大松,,等. 基于FPGA的VPX時間統(tǒng)一系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2018,,44(1):65-67,,71.
英文引用格式: Wang Zhen,Li Jianhong,,Zhang Dasong,,et al. VPX time unified system design based on FPGA[J]. Application of Electronic Technique,2018,,44(1):65-67,,71.
0 引言
時間作為物理學(xué)的基本量綱之一,是系統(tǒng)運(yùn)行的重要參考指標(biāo),,而IRIG-B碼作為國際標(biāo)準(zhǔn)時間碼,,其性能優(yōu)越,實現(xiàn)和使用方法簡單易行,十分適合應(yīng)用于高精度時間傳輸系統(tǒng)中,。
FGPA具有編程方便,、集成度高、速度快等特性,,可反復(fù)編程,、擦除及使用,在不改動硬件設(shè)計的情況下,,可實現(xiàn)不同的功能需求,。采用FPGA實現(xiàn)授時、分頻,,產(chǎn)生時間信號和各種同步信號,,可以使時統(tǒng)接口模塊集成度更高,可維護(hù)性更強(qiáng),。
本文結(jié)合實際時統(tǒng)項目提出了一種基于FPGA的高速時間統(tǒng)一系統(tǒng)設(shè)計方案,,它以Altera[1]公司Cyclone系列FPGA[2-3]芯片為核心,采用原理圖和Verilog語言編程[4]實現(xiàn),。通過接收GPS,、北斗、B碼等外部基準(zhǔn),,并選擇其中一路產(chǎn)生與其同步的IRIG-B碼信號和各脈沖信號,,供其他分系統(tǒng)使用。
1 系統(tǒng)總體設(shè)計
時統(tǒng)系統(tǒng)硬件包括時統(tǒng)卡(安裝于服務(wù)器)和IRIG-B碼終端[6],。圖1為時統(tǒng)系統(tǒng)設(shè)備組成圖,。
IRIG-B 碼終端可以實現(xiàn)GPS衛(wèi)星系統(tǒng)與北斗衛(wèi)星系統(tǒng)的雙系統(tǒng)時間信號冗余接收以及外來B碼信號的直接接收,產(chǎn)生多路直流或交流IRIG-B碼發(fā)送給時統(tǒng)卡,。
時統(tǒng)卡通過直接接收IRIG-B碼并通過解碼電路自動獲取標(biāo)準(zhǔn)時間信息,,通過VPX總線向配有時統(tǒng)卡的服務(wù)器發(fā)送時統(tǒng)信息,服務(wù)器接收時統(tǒng)信息后,,向服務(wù)器自身,、網(wǎng)絡(luò)內(nèi)各工作站和終端進(jìn)行網(wǎng)絡(luò)授時,實現(xiàn)對設(shè)備自身信號嚴(yán)格的監(jiān)控和輸出,,以提高系統(tǒng)的可靠性及滿足時間同步要求,。
2 IRIG-B碼編碼原理
IRIG-B碼是國際通用的一種常用串行傳輸方式時間格式碼,與并行傳輸方式相比,,其物理連接簡單,、信息量大、分辨率高,、傳輸距離遠(yuǎn),、抗干擾能力強(qiáng),、具有標(biāo)準(zhǔn)化接口。根據(jù)時間精度的不同要求及B碼傳輸距離的不同,,B碼采用了兩種碼型:B(DC)直流碼和B(AC)交流碼,。B(DC)碼的每個碼元是一個脈沖信號,可以實現(xiàn)較高精度的時間同步,,但脈沖信號頻譜豐富,,窄帶信道無法傳輸,適用于短距離電纜傳輸,;B(AC)碼則可以使用標(biāo)準(zhǔn)語音帶寬(0.3 kHz~3.4 kHz)信道傳輸,傳輸距離更遠(yuǎn),,但傳輸精度有一定損失,。B(AC)碼可由B(DC)碼對標(biāo)準(zhǔn)正弦波載波進(jìn)行幅度調(diào)制得到。根據(jù)不同要求可選擇不同碼型傳輸,,在本時統(tǒng)系統(tǒng)中,,兩種碼型均有應(yīng)用。
3 B碼終端
B碼終端可以接收GPS/北斗的授時信號和外來B碼信號,,通過編解碼處理生成1PPS脈沖信號與DC/AC時間編碼信號,,以供時間同步設(shè)備使用。
3.1 B碼終端系統(tǒng)原理及組成
B碼終端系統(tǒng)原理圖如圖2所示,。
B碼終端可同時接收GPS/北斗信號和外來B碼信號,。當(dāng)GPS/北斗信號到來時,GPS/北斗模塊通過天線接收授時信號,,向ARM和FPGA發(fā)送1PPS脈沖信號,,同時以串行方式向ARM發(fā)送時間信息;ARM將解出的時間信息及有效標(biāo)志,,通過自定義總線和通信協(xié)議發(fā)送至FPGA,; FPGA在接收到1PPS與時間信息后,根據(jù)信息的有效性決定選用該時間信息或自守時的方式,,生成多路AC/DC碼和1PPS信號向外輸出,。當(dāng)外來B碼到來,通過AC/DC解碼電路,,將外來B碼信號整形運(yùn)放,,然后傳給FPGA進(jìn)行編解碼。
3.2 B碼終端單元模塊設(shè)計
(1)GPS/北斗模塊
選用精度為30 ns,、1 PPS的GPS/北斗模塊,,向FPGA和ARM傳輸時間信號,并支持通過串口命令對芯片進(jìn)行配置,。
GPS/北斗模塊輸出包含UTC年,、月,、日、時,、分,、秒。ARM處理器通過模塊提供的1PPS中斷接收整秒信號,,并通過異步串行通信方式獲取時間信息,。
(2)外部B碼解碼電路
當(dāng)采用外部B碼信號作為產(chǎn)生IRIG-B碼的基準(zhǔn)時,需要對外部B碼基準(zhǔn)進(jìn)行接收解調(diào),,以產(chǎn)生基準(zhǔn)秒和串行時間數(shù)據(jù),。在本設(shè)計中,采用硬件電路完成對外部B碼基準(zhǔn)的解調(diào)工作,。
(3)1PPS選擇模塊
FPGA對GPS/北斗信號及外來B碼信號進(jìn)行處理,,產(chǎn)生AC_1PPS、DC_1PPS,、GPS_1PPS信號,,作為ARM與FPGA之間通信基準(zhǔn)。
(4)FPGA各功能模塊設(shè)計
FPGA作為B碼終端的核心,,實現(xiàn)了時碼產(chǎn)生,、同步分頻、外來B碼信號解碼等功能,,主要包含B(AC/DC)碼生成模塊,、B(DC)碼解碼模塊、B(AC)碼解碼模塊等,。各模塊工作原理如圖3所示,。
B(AC)碼生成模塊:FPGA根據(jù)GPS/北斗模塊的時間信息產(chǎn)生AC碼,其每一位的高低電平的AC碼實際輸出對應(yīng)ROM中一個周期的正弦波形,,F(xiàn)PGA輸出的波形控制字發(fā)送至DAC,,DAC輸出對應(yīng)電流值,經(jīng)運(yùn)算放大電路轉(zhuǎn)換后生成對應(yīng)AC碼高低電平的正弦波形,,最后經(jīng)1:1變壓器將波形輸出,。
B(DC)碼生成模塊:FPGA根據(jù)GPS/北斗模塊的時間信息直接產(chǎn)生DC碼的TTL輸出,經(jīng)單端/差分轉(zhuǎn)換后,,輸出至多路DC碼輸出,。
B碼解碼模塊:FPGA通過完成外來B碼的解碼,以實現(xiàn)精準(zhǔn)時間信息的提取并輸出,。
4 時統(tǒng)卡
時統(tǒng)卡設(shè)計采用通用的VPX接口,,可接收標(biāo)準(zhǔn)化時統(tǒng)的IRIG-B(DC)碼、IRIG-B(AC)碼輸入,,設(shè)備可以通過上層驅(qū)動從VPX總線[5-6]上捕獲當(dāng)前時間信息,,采集不同頻率的中斷信號,。針對時統(tǒng)卡的具體要求,將時統(tǒng)卡劃分為兩個主要部分:硬件電路設(shè)計及IRIG-B碼解碼,、時間獲取軟件設(shè)計,。
4.1 硬件電路設(shè)計
時統(tǒng)卡硬件總體主要包括B碼接收電路、VPX接口電路,、B碼解碼電路和電源電路,。具體硬件結(jié)構(gòu)設(shè)計框圖如圖4所示。
B碼接收電路包含兩部分,,即B(AC)碼和B(DC)碼兩種碼型的接收,,通過接收電路后,最終兩種碼型都以TTL電平方式傳輸?shù)紹 碼解碼電路,。
B碼解碼電路主要由FPGA芯片和外圍電路組成,,通過FPGA編程開發(fā)完成B碼的解碼,實現(xiàn)時間信息的提取,。
4.2 FPGA
FPGA通過完成B碼的解碼,以實現(xiàn)精準(zhǔn)時間信息的提取,,并與VPX接口通信,。
FPGA內(nèi)部設(shè)計框圖如圖5所示。
FPGA的B碼解碼模塊主要包括:B(DC)碼解碼模塊,、B(AC)碼解碼模塊,、時間選擇模塊、中斷產(chǎn)生模塊和VPX接口模塊,。FPGA程序可以完成時間信息的提取,、B(DC)碼和B(AC)碼的自動切換,還可以通過B碼解碼過程產(chǎn)生的PPS 秒脈沖,,實現(xiàn)不同時間的中斷信號,。VPX接口程序完成時間信息和中斷信號的接收并傳輸?shù)絍PX總線。
B(AC)碼解模塊和B(DC)解碼模塊分別對兩種時統(tǒng)信號根據(jù)B碼的碼型特點(diǎn)進(jìn)行時間信息提取,,并輸出有效時間信息,、時間有效標(biāo)志和PPS秒脈沖。
有效時間選擇模塊根據(jù)B(AC)和B(DC)碼解碼輸出的時間有效信號選擇輸出有效時間信號,,這里優(yōu)先選擇B(DC)碼時間信息,。
中斷產(chǎn)生模塊根據(jù)PPS秒脈沖產(chǎn)生準(zhǔn)確的、不同周期的中斷時間信號,,為上位機(jī)提供更高分辨率時間信號,。
守時模塊是FPGA在沒有B碼輸入時,通過內(nèi)部時鐘計數(shù)產(chǎn)生秒脈沖和時間的更新,。B碼解碼模塊在沒有成功解碼時間信息時輸出相應(yīng)信號,,通過時間選擇模塊完成守時時間的切換,。守時模塊在有B碼輸入時每個秒周期自動更新時間,并且自行進(jìn)行時間計數(shù),,完成守時功能,。
5 實驗結(jié)果
將B碼終端與時統(tǒng)卡相連接,在接入GPS/北斗信號條件下,,采用上位機(jī)對時統(tǒng)卡輸出的信號進(jìn)行讀取,。在讀取過程中,為了顯示直觀性與簡潔性,,只在每秒初始時刻打印一次信息,。另外,為了更加準(zhǔn)確地反映時統(tǒng)系統(tǒng)及上位機(jī)讀取的延時,,上位機(jī)測試軟件中加入了每秒讀取時各個中斷的最大及最小延遲,。圖6為時統(tǒng)系統(tǒng)運(yùn)行實驗結(jié)果。
經(jīng)過多次長時間的測試,,各個中斷最大延遲均滿足設(shè)計要求,。
6 結(jié)論
本文的時統(tǒng)系統(tǒng),其外圍硬件電路簡單, 可靠性高,,時統(tǒng)卡使用VPX總線進(jìn)行通信,,滿足靶場計算平臺高性能、高帶寬,、抗惡劣環(huán)境的性能要求,,有巨大的發(fā)展應(yīng)用前景,已成功應(yīng)用于某設(shè)備之中,。經(jīng)過長時間工作檢驗可知,,設(shè)備工作穩(wěn)定,指標(biāo)滿足要求,。
參考文獻(xiàn)
[1] 于楓.ALTERA可編程邏輯器件應(yīng)用技術(shù)[M].北京:科學(xué)出版社,,2004.
[2] 李洪偉,袁斯華.基于QuartusII的FPGA/CPLD設(shè)計[M].北京:電子工業(yè)出版社,,2006.
[3] 吳繼華,,王誠.Altera FPGA/CPLD設(shè)計[M].北京:人民郵電出版社,2005.
[4] 夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計教程[M].北京:北京航空航天大學(xué)出版社,,2003.
[5] 包利民,,潘奇.VPX總線技術(shù)及其實現(xiàn)[J].電子機(jī)械工程,2012,,28(2):57-60.
[6] VMEbus International Trade Association.American national standard for VPX baseline standard[S].ANSI/VITA 46.0,,2007.
[7] 馮勝民,陳娟花.基于FPGA的IRIG-B碼產(chǎn)生器設(shè)計與實現(xiàn)[J].電子測量技術(shù),,2015,,38(5):67-71.