高林,胡永輝,侯雷
?
基于ARM+FPGA的IRIG-B碼產(chǎn)生器的研制
高林1,2,3,胡永輝1,2,侯雷1,2
(1. 中國科學院國家授時中心,西安 710600;2. 中國科學院精密導(dǎo)航定位與定時技術(shù)重點實驗室,西安 710600;3. 中國科學院研究生院,北京 100039)
本設(shè)計中采用ARM芯片作為主控芯片,F(xiàn)PGA芯片作為主功能芯片,使用C和Verilog語言編程。通過軟件控制生成IRIG-B(DC)碼信號,由分頻1 PPS信號和外部標準1 PPS信號鎖相同步保證時標信號的同步,在產(chǎn)生DC碼后采用基于FPGA內(nèi)部ROM數(shù)字查找表技術(shù)實現(xiàn)AC碼的數(shù)字調(diào)制。整體方案設(shè)計簡單,應(yīng)用方便。
IRIG-B碼;ARM芯片;現(xiàn)場可編程門陣列(FPGA);數(shù)字調(diào)制
時間統(tǒng)一設(shè)備在測控中提供一種符合標準的同步信號作為基本參考單位,這是非常重要的。我國在靶場測量,工業(yè)控制,航空航天,通信實驗,電力系統(tǒng)維護等方面大多采用國際標準IRIG-B格式時間碼(簡稱B碼)作為同步標準。B碼信號產(chǎn)生器作為時間統(tǒng)一設(shè)備的重要組成部分,其設(shè)計不僅要滿足精度的要求,同時要考慮應(yīng)用現(xiàn)場需求[1]。
在測試實驗中,通過地面基準時頻站和配備原子鐘的時統(tǒng)車來保障測控設(shè)備間的時間同步,盡管可以滿足精度要求,但成本較高,在飛行測試和其他移動測量中難以滿足要求。隨著我國衛(wèi)星導(dǎo)航系統(tǒng)的不斷建設(shè)和更為先進的授時技術(shù)不斷發(fā)展,在此基礎(chǔ)上設(shè)計研制成本低廉、性能良好、便于攜帶的IRIG-B碼信號產(chǎn)生器可以很好地應(yīng)用于移動測量中來保障時間統(tǒng)一,還可以廣泛應(yīng)用于國防實驗、金融、電力等部門。本文正是基于實際項目需求,提出了使用ARM芯片和FPGA芯片的組合研制IRIG-B碼信號產(chǎn)生器,設(shè)計中合理地使用集成器件,使得外圍電路簡單,邏輯清晰。采用本方案研制的IRIG-B碼信號產(chǎn)生器具有高精度、低功耗、低成本和便于應(yīng)用的特點,并且具有良好的人機交互性能。
IRIG(inter range instrumentation group)規(guī)定的時間格式標準有兩大類:一類是并行時間碼,規(guī)定的4種并行時間碼格式是PB1,PB2,PB3和PB4。這4種并行時間碼一般主要用于衛(wèi)星、導(dǎo)彈和空間飛行器的發(fā)射、測控、跟蹤及其數(shù)據(jù)處理系統(tǒng)以及定時系統(tǒng)與用戶之間近距離的實時并行二進制格式的時間信息的傳輸。受傳輸距離的限制,并行時間碼遠不如串行時間碼應(yīng)用廣泛;另一類是串行時間碼,按時幀的速率不同分為A,B,D,E,G,H 6種。其中IRIG-B碼的幀速率為每秒1幀,每次傳遞100個碼元,每個碼元寬度為10 ms,用高電平寬度為8 ms的脈沖表示索引標記,用寬度為5 ms的脈沖表示邏輯1,用寬度為2 ms的脈沖表示邏輯0[2]。B碼脈沖序列如圖1所示。
圖1 B碼脈沖序列圖
脈寬調(diào)制的IRIG-B碼信號按照IRIG標準的習慣稱為IRIG-B(DC)碼。就直流碼而言,由于每個碼元為脈沖信號,因而其可以實現(xiàn)較高精度(納秒量級)的時間同步,但由于脈沖信號的頻譜豐富,窄帶信道無法傳輸,而只適用于用電纜傳輸至近距離的用戶,對遠距離時統(tǒng)設(shè)備并且只有窄帶信道相聯(lián)系的用戶,可以采用B(DC)碼調(diào)制成B(AC)碼的方法,如圖2所示。用B(DC)碼對標準正弦波載頻進行幅度調(diào)制,標準正弦信號必須與產(chǎn)生B(DC)碼的信號共源,以保持兩者的時間關(guān)系一直不變,正弦波載頻的頻率與碼元速率嚴格相關(guān),一般為碼元速率的10倍,B(AC)碼低幅到高幅的正弦信號的正交過零點(如圖2中的A點)與B(DC)碼的準時點(即脈沖前沿)嚴格保持一致。同時,我國國軍標規(guī)定標準調(diào)制比為10:3。
圖2 典型的1 kHz調(diào)制信號
B碼信號符合使用習慣,攜帶信息量大,譯碼后可獲得多種脈沖信號、BCD編碼的時間信息和控制信息,調(diào)制后的B碼信號交流碼還適用于遠距離傳輸,具有標準化的接口,因此IRIG-B碼被廣泛應(yīng)用于各種場合,形成國際標準。
圖3是該系統(tǒng)框圖。系統(tǒng)由標準10 MHz的輸入作為本地頻率基準,通過FPGA內(nèi)部數(shù)字分頻鏈模塊產(chǎn)生各種所需時標信息和符合IRIG-B碼編碼特征的脈沖序列,對分頻產(chǎn)生的1PPS信號與外部授時模塊提供的1 PPS標準信號進行時差測量,微控制器收集測量結(jié)果作為依據(jù)來調(diào)整程控移相器超前或者滯后,完成對外部標準1PPS信號的鎖相同步。直流碼的產(chǎn)生由ARM控制器編程軟件控制邏輯門電路輸出符合B碼編碼標準的時標信號完成,生成的直流碼信號按要求進行驅(qū)動輸出。FPGA內(nèi)部ROM存儲正弦調(diào)制信號的采樣波形,產(chǎn)生的直流碼信號在數(shù)字調(diào)制模塊依據(jù)查找表輸出相關(guān)的數(shù)字序列到DAC器件輸出交流碼信號,經(jīng)過后置放大濾波處理按要求輸出IRIG-B交流碼信號。
圖3 IRIG-B碼信號產(chǎn)生器系統(tǒng)框圖邏
由圖3可以看到本系統(tǒng)的信號源主要是授時模塊的標準時間信息和1 PPS信號及10 MHz頻率信號。針對衛(wèi)星授時傳遞信號的編碼特點,采用模塊化設(shè)計,不僅降低系統(tǒng)設(shè)計難度,更增強了系統(tǒng)的實際應(yīng)用性。只要符合RS232傳輸標準的時間信息均可作為系統(tǒng)輸入,基于此特點,北斗系統(tǒng)、GPS系統(tǒng)、GLONASS系統(tǒng)的授時型接收機均可提供信號輸入,應(yīng)用靈活[2]。
設(shè)計中控制芯片采用STM32F103VBT6,該芯片使用高性能的ARM Cortex-M3TM32位的RISC內(nèi)核;最高工作頻率為72 MHz,在72 MHz時消耗36 mA(所有外設(shè)處于工作狀態(tài)),待機時下降到2μA;128 k的程序存儲空間和20k的RAM;最大程度地集成了復(fù)位電路、低電壓檢測、調(diào)壓器、精確的RC振蕩器等單元;外設(shè)接口豐富,2~3.6 V供電電壓;工作于-40~+105℃的溫度范圍[3]。功耗表現(xiàn)突出,控制方便,設(shè)計簡單,非常適合嵌入式的系統(tǒng)設(shè)計[3]。
本設(shè)計中ARM芯片STM32F103VBT6的控制功能主要包括接收授時模塊信息進行鐘面顯示并完成標準時間的二進制編碼存儲;收集時差測量結(jié)果,控制移相器完成鎖相同步;軟件控制完成直流碼產(chǎn)生;控制時標信號選擇模塊對時標信息進行控制輸出等。
系統(tǒng)設(shè)計主要功能實現(xiàn)采用FPGA芯片EP3C10E144I7N,該芯片屬于Altera Cyclone III 系列,該系列采用全銅、低K值、1.2 V SRAM工藝設(shè)計,不僅提高了颶風家族的低功耗、高性價比特點,在功能設(shè)計上更為完善。EP3C10E144I7N具有10 320個邏輯單元、內(nèi)置46個M9K的RAM存儲塊,該芯片內(nèi)置23個乘法器、2個鎖相環(huán)(相對于Cyclone I和Cyclone II系列增加了動態(tài)重配功能)和10個全局時鐘網(wǎng)絡(luò)。最小輸入頻率為5 MHz,能直接接收外部10 MHz的標準頻率輸入。Cyclone III芯片支持熱切換和上電復(fù)位,不需要額外復(fù)位芯片。相對于Altera Cyclone II系列的產(chǎn)品,設(shè)計難度降低,功耗更低,成本也不高[4]。
FPGA完成主要功能包括:數(shù)字分頻鏈模塊設(shè)計產(chǎn)生各種時標信號和直流碼編碼信號;時差測量和程控移相模塊完成本地1PPS信號和外部標準的1 PPS信號的鎖相同步;依據(jù)FPGA內(nèi)部ROM查找表對直流碼信號數(shù)字調(diào)制等。
在輸出設(shè)計上充分考慮項目應(yīng)用需求,輸出時標信號使用了TI(texas instruments)的驅(qū)動芯片SN54128,其輸出具有50Ω的驅(qū)動能力,工作溫度范圍為-55~+125℃,且與SN74128(70Ω驅(qū)動能力)上下兼容[5]。IRIG-B(DC)碼輸出應(yīng)用了AM26C31,即TI公司生產(chǎn)的一種低功耗,線性差分驅(qū)動芯片,符合EIA(electronic industries association)和ITU(international telecommunication union)聲明的V.11接口標準。工作溫度范圍為-55~+125℃[6]。直流碼調(diào)制后得到表示交流碼信號幅度的數(shù)字序列值輸出到DAC8311,TI公司的14位低功耗的數(shù)字模擬轉(zhuǎn)換芯片[7],產(chǎn)生的交流碼信號經(jīng)后置電路處理輸出符合要求的交流碼信號。
依據(jù)奈奎斯特抽樣定理,如果信號的采樣頻率大于信號最高頻率的2倍,則整個連續(xù)信號就可以用它的抽樣值代替。如果抽樣值序列是經(jīng)過正弦信號以×(> 2)的頻率進行抽樣獲得,則該正弦信號需在=1/的時間內(nèi)等間隔輸出個采樣值至數(shù)模轉(zhuǎn)換器(DAC),再經(jīng)低通濾波器濾波后即可恢復(fù)原來的正弦信號。各采樣點的值為
本設(shè)計中依據(jù)上述原理生成查找表文件,對標準1 kHz正弦信號進行200 kHz等間隔抽樣,采樣值輸出需綜合考慮實際選用的DAC器件,實際采樣值輸出表達式可寫成
表1 FPGA正弦查找表
采用Matlab可以輔助生成存儲于FPGA內(nèi)ROM中的.mif文件,建立周期為5μs的定時器和地址計數(shù)器,定時器溢出,計數(shù)器加1??梢园焉傻牟檎冶韺?yīng)邏輯0置于ROM上半部分,邏輯1置于下半部分,使用IRIG-B碼輸入信號作為地址高位,則對應(yīng)的ROM輸出即為DAC的調(diào)制輸出,同時保證了直流IRIG-B碼和交流IRIG-B碼的嚴格相關(guān)性。
基于ARM+FPGA的IRIG-B碼產(chǎn)生器的ARM控制器部分設(shè)計原理圖和FPGA部分設(shè)計原理圖分別如圖4和圖5所示。
圖4 IRIG-B碼產(chǎn)生器ARM控制器部分設(shè)計原理圖
圖5 IRIG-B碼產(chǎn)生器FPGA部分設(shè)計原理圖
IRIG-B碼信號產(chǎn)生器的主程序控制包括設(shè)備初始化、同步設(shè)置、發(fā)送準時參考標志、進行中斷判定等工作。完成上電后設(shè)備首先進行狀態(tài)檢測,選擇自動同步時間信息或者手動設(shè)定時間信息,鐘面信息和設(shè)備狀態(tài)信息送到LCD顯示,當接收到標準1 PPS信號后,控制發(fā)送位置識別標志P0和參考碼元,作為B碼的準時參考標志,完成后進行中斷判定,中斷1則執(zhí)行1 PPS中斷程序,中斷0則執(zhí)行100 PPS中斷程序。
ARM主程序控制流程如圖6所示。
圖6 B碼信號產(chǎn)生器主程序流程圖
1 PPS中斷子程序完成標準時間的提取和BCD編碼,并控制索引計數(shù)的清零設(shè)置。通常為了保證提取到正確的絕對時間,在1 PPS上升沿送出當前時間,而ARM微控制器接收時間時,IRIG-B碼的當前幀已經(jīng)啟動,形成IRIG-B碼編碼信號后需要等待下一個1PPS上升沿到來才發(fā)送出去,因此我們需要對接收的時間進行預(yù)進位處理后存儲,以保證發(fā)送時間與標準時間之間的嚴格同步。預(yù)進位處理后的時間信息還要考慮閏年的大月、小月,這可以影響B(tài)碼編碼時的Day字段。
1 PPS中斷處理流程如圖7所示。
圖7 B碼信號產(chǎn)生器秒中斷處理流程圖
根據(jù)B碼信號的碼元可以和100 PPS信號正好對應(yīng)的關(guān)系,使用同步后的100 PPS信號為中斷信號,完成IRIG-B碼的直流碼編碼。定時器啟動后完成位置識別標志的發(fā)送,每響應(yīng)1次100 PPS中斷,索引計數(shù)就加1,同時進行判斷,當索引計數(shù)為9、19、29、39、49、59、69、79、89、99時,即每計數(shù)10次發(fā)送1個位置識別標志。當索引計數(shù)不是位置識別標識時,則對其時間信息進行判斷,并根據(jù)判定結(jié)果控制邏輯門電路發(fā)送符合IRIG-B編碼格式的脈沖信號,如果需要特殊控制信息,就在相應(yīng)的位置加入相應(yīng)的特殊控制碼,輸出相應(yīng)的脈沖信號,完成IRIG-B(DC)碼的編碼。
100 PPS中斷子程序控制流程如圖8所示。
圖8 B碼信號產(chǎn)生器100 PPS中斷處理流程圖
采用組合ARM+FPGA來完成的IRIG-B碼信號產(chǎn)生器的設(shè)計,相比傳統(tǒng)的設(shè)計,降低了設(shè)計難度,功耗更低,控制方便,性能穩(wěn)定,應(yīng)用更加廣泛。在實際測試中,授時模塊采用北斗導(dǎo)航接收機作為輸入,直流碼的同步精度可達50 ns,交流碼同步精度可達100 ns。
隨著新的高精度授時手段不斷提高,便攜式時統(tǒng)設(shè)備可以滿足大部分測控現(xiàn)場的精度要求,可以為高速移動測量等場合提供完善的解決方案。嵌入式技術(shù)的應(yīng)用和大規(guī)模集成電路的研究不僅可以提高IRIG-B碼產(chǎn)生器的精度和可靠性,還可以不斷開發(fā)其更為強大的功能,比如對現(xiàn)場信息處理能力和信息傳遞能力地不斷提高。相信隨著技術(shù)的不斷進步,作為時間統(tǒng)一設(shè)備的重要組成部分的B碼信號發(fā)生器將會具有微功耗、高度集成、高穩(wěn)定度、智能化等特點。
[1] 童寶潤. 時間統(tǒng)一系統(tǒng)[M]. 北京: 國防工業(yè)出版社, 2003.
[2] 楊蕾, 胡永輝. 用CPLD實現(xiàn)的靶場時間碼產(chǎn)生器[J]. 電子測量與儀器學報, 2004(增刊): 1186-1192.
[3] STMicroelectronics. STM32F103VBT6 Datasheet[K]. 2009.
[4] Altera Corporation. CycloneⅢDevice Handbook[K]. 2008.
[5] TI Corporation. SN54128/SN74128 Device Datasheet[K]. 2007.
[6] TI Corporation. AM26C31 Device Datasheet[K]. 2008 .
[7] TI Corporation. DAC8311/DAC8411 Device Datasheet[K]. 2007.
[8] 龐吉耀. 基于FPGA的IRIG2B編碼器實現(xiàn)[J]. 現(xiàn)代電子技術(shù), 2009, 24(311): 113-117.
An IRIG-B code generator based on ARM and FPGA
GAO Lin1,2,3, HU Yong-hui1,2, HOU Lei1,2
(1. National Time Service Centre, Chinese Academy of Sciences, Xi′an 710600, China;2. Key Laboratory of Precision Navigation and Timing Technology, National Time Service Center,Chinese Academy of Sciences, Xi′an 710600, China;3. Graduate University of Chinese Academy of Sciences, Beijing 100039, China)
In this design, an ARM chip is used as the master control chip, while an FPGA chip is used as the main functional chip, and they can be programmed by using C programming language and Verilog hardware description language respectively. The IRIG-B code signal is generated and controlled by the software, and then the frequency demultiplication 1PPS signal and the external standard 1PPS signal are used to ensure the synchronization of time scale signal. Afterwards, the digital look-up table which is based on the ROM in FPGA is used to realize the digital modulation of AC code. The whole design is easy to be realized and applied.
IRIG-B code; ARM chip; FPGA; Digital modulation
TN76
A
1674-0637(2012)04-0218-10
2012-02-08
中國科學院“西部之光”人才培養(yǎng)計劃重點資助項目(Y001YR1601)
高林,男,碩士研究生,主要從事時間統(tǒng)一系統(tǒng)技術(shù)研究。