












摘 要:提出一種基于現場可編程門陣列(FPGA)的硬件脈沖同步方法以保證冗余系統數據交互、任務調度的可靠性。以三通道冗余系統為例,每個通道都接收3個通道的脈沖信號輸入,對3個通道的脈沖信號進行排序,確定主控通道的脈沖同步信號;捕獲主控脈沖的信號邊沿,計算與另外兩個通道的同步偏差;設置不同粒度的調整區間,偏差大進行多周期調整,偏差小則進行單周期調整;建立基于FPGA的硬件脈沖同步仿真平臺并進行測試分析。仿真結果表明:脈沖同步精度可達到20 ns,同步建立時間不超過470 ms,滿足了多通道冗余系統的同步需求。
關鍵詞:冗余;多通道;硬件同步;FPGA
中圖分類號:V233.7文獻標志碼:A文章編號:1671-5276(2024)03-0010-05
Research on FPGA Hardware Pulse Synchronization Method for Multi-channel Redundant Systems
Abstract:A hardware pulse synchronization method based on field programmable gate array (FPGA) is proposed to ensure the reliability of data interaction and task scheduling of the redundant system. Taking the three-channel redundant system as an example, each channel receives pulse signal inputs from three channels, the pulse signals of the three channels are sorted to determine the pulse synchronization signal of the master channel. The signal edges of the master pulse are captured to compute the synchronization deviation from the other two channels. The adjustment intervals with different granularities are set with large deviations for multi-cycle adjustment and small deviations for single-cycle adjustment.The FPGA-based hardware pulse synchronization simulation platform is established and simulated. The simulation results show that the pulse synchronization accuracy can reach 20 ns, and the synchronization establishment time is no more than 470 ms, which meets the synchronization requirements of multi-channel redundant system.
Keywords:redundancy; multi-channel; hardware synchronization; FPGA
0 引言
冗余是容錯控制的一種方法。容錯控制的主要目的是當系統發生故障時,仍能保持控制目標的能力[1]。容錯控制已經廣泛應用于航空航天等要求高可靠性領域[2]。容錯控制的關鍵因素之一在于冗余[3-4]。根據冗余信息的不同,冗余可分為硬件冗余和解析冗余[5]。硬件冗余將關鍵部件和易故障的部件進行備份,有些可靠性需求高的系統會將整個控制系統都進行備份[6]。本文基于硬件冗余進行研究。硬件冗余要求硬件設備有多個備份,多個備份即多個通道,由于時鐘頻率等誤差導致通道間的行為也會有所不同。為了保證冗余的可靠性,各通道進行切換時需要保證一定精度的時間同步,這就對通道間的同步提出了要求。同步在容錯控制中起到重要作用[7]。
通道間同步技術是各通道在同一時間進行相同任務調度的基礎。同步按照實現平臺的不同又可以分為軟件同步和硬件同步。LIU等[8]提出基于公共時鐘產生同步周期信號,進行通道數據交換比較、時間裕度計算完成系統同步和通信同步。ZHOU等[9]通過Petri網絡描述了三模冗余系統任務同步的模型,直觀地表達了任務同步的機制及過程。WANG等[10]設計了一種應用于四余度的“雙握手”軟件同步方法。YANG等[11]提出了用于時鐘同步的過程彈性容錯DLL設計,采用動態定時校正時鐘誤差,使三模冗余系統的時鐘相位誤差大大降低。
針對航電系統高同步精度和更短的同步時間需求,本文提出一種可應用于多通道的基于現場可編程門陣列(field programmable gate array,FPGA)的硬件脈沖同步方法,以保證系統可靠性。
1 影響因素分析
本文基于多通道冗余分析同步的影響因素。分析由于FPGA啟動時間、通道間時鐘不同步、布線時延問題而產生的通道間不同步。
1.1 上電啟動不同步
為了避免共因失效,冗余系統雖然使用相同設計,但是也會采用不同硬件,器件的差異導致了上電的不同步[12]。航電系統常用28V直流電源,經過濾波、過壓保護等電路后,經二次電源轉換為后級電路提供電源。由于轉換器件的差異,表現為上電上升時間的不同,整個控制系統的運行時間會存在一個初始的偏差。
1.2 時鐘不同步
不同通道間采用相同頻率的不同時鐘源,由于時鐘源器件的不同以及本身帶有的誤差,其誤差經過系統長時間的運行而累積成可以對系統時鐘造成影響的偏差,從而導致依賴于時鐘的系統任務的不同步,如圖1所示。
1.3 布線時延
電信號的傳輸速度取決于介質的介電常數,信號在PCB板中以有限的速度傳輸,從發送傳輸到接收端,傳輸時間的延遲受到速度與走線長度的影響。
信號的傳輸速度v可由式(1)計算:
式中:ε0為自由空間的介電常數,其值為8.89×10-12F/m;εr為材料的相對介電常數;μ0為自由空間的導磁率,值為4π×10-7H/m;μr為材料的相對導磁率(幾乎所有的互連材料相對導磁率都為1)。空氣的相對介電常數和相對導磁率都為1,光在空氣中的速度約為0.304 8 m/ns,則
根據經驗法則,大多數聚合物的介電常數約為4,估算電路板中信號傳輸速度約為0.152 4m/ns,取其倒數作為傳輸時延的度量,即每米連線的時延為6.56ns。在信號遠距離傳輸時需要考慮布線時延,將時間補償加入到設計中。
2 硬件同步方案設計及實現
本文同步方案基于三通道進行設計,也可用于多通道系統。本方案A、B、C三通道冗余設計,功能相同,由FPGA采用硬件的方式實現通道間任務的同步。A通道同步信號為主控時,B通道、C通道同步信號跟隨A通道進行同步校正;當A通道出現故障時,同步信號進行切換,以B通道為主控,C通道跟隨B通道的同步信號。FPGA產生以同步周期為周期的中斷信號給外部控制系統,實現三通道的同步功能,中斷信號的同步通過調整脈沖信號對齊來完成。
2.1 整體架構
本方案的硬件同步電路及同步方法由FPGA實現,架構如圖2所示。通道內FPGA包含排序電路、同步信號發生器、輸入處理、分頻器、計數器、狀態寄存器、中斷信號發生器,主要外部接口如表1所示。接口有3個同步脈沖輸入,包含了另外2個通道的同步脈沖以及本通道的脈沖信號返回輸入,返回輸入是為了能用更簡潔的邏輯實現同步脈沖輸入的排序。
2.2 同步方案實現
設定同步脈沖基準周期50ms,采用周期調節方式,本通道同步脈沖落后于主控脈沖時,增加本通道同步脈沖的周期(每周期的增加幅度取決于脈沖偏差),超前時減小周期。主控脈沖信號輸入本通道,與本通道輸出脈沖有偏差,如圖3所示。相位相差較大時采用多周期調節,相位相差較小時,采用單周期調節。調整范圍及周期取決于同步脈沖周期等,根據實際需求設定其值。
1)同步脈沖排序及主控脈沖獲取
當B通道作為主控時,A通道接收B通道的同步脈沖輸出并跟隨,在3個同步脈沖輸入f_sync_rx[0]、f_sync_rx[1]、f_sync_rx[2]中需要判斷出哪個信號來自于B通道。三輸入脈沖的連接順序如圖2中排序電路所示,本通道輸出脈沖返回硬線連接順序為1,即連接到f_sync_rx[0]對應的引腳,按照1~N的數字順序循環連接,如本通道為B通道時,f_sync_rx[0]連接本通道同步脈沖輸出返回,f_sync_rx[1] 連接C通道同步脈沖,按照循環順序連接,則f_sync_rx[2]連接A通道同步脈沖。然后將f_sync_rx[2∶0]根據通道標識chnl_id按照實際的通道順序A、B、C進行重排序,緩沖一級,得到順序的同步脈沖輸入。
經過排序后,還需要根據主/被控狀態信號判斷本通道的控制狀態以及主控通道號,根據本通道ID確定主控同步信號的序號。
進行通道擴展時,每通道輸入脈沖數量與通道數一致,輸入順序與上述三通道原理一致,本通道輸入脈沖硬線連接rx[0],正序排列,設共m個通道,本通道序號n,則本通道輸入脈沖連接rx[i]的順序如圖4所示。
2)方案實現
整個同步過程包括輸入處理、計數、狀態判斷、同步脈沖輸出等,具體實現如下。
a)sa、sb、sc確定主控/被控設備。
b)sa、sb、sc、chnl_id組合邏輯判斷同步使能信號,當沒有主控設備時,同步不使能。
c)同步脈沖信號與本設備脈沖信號周期、寬度相同。同步脈沖信號在接收到本通道時需要進行同步打拍、濾波、邊沿采集才能捕獲有效邊沿,本通道同步脈沖輸出時要把上述捕獲時間計算在內,這樣才可以保證捕獲的有效邊沿與發送通道起始相位一致,也可以避免毛刺信號和跨時鐘域帶來的亞穩態。
d)脈沖同步實現。當主/被設備同步脈沖上升沿時差滿足調整精度時,判定主/被設備同步。否則,被控設備應判斷與主設備之間的相位關系并通過漸進式調節實現與主設備的同步。兩通道脈沖偏差應保持在一定范圍內,若偏差過大,則認為主/被控設備出現故障,不同步。
e)相位偏差計算。設A通道為主控通道,B通道為隨動通道。A、B通道同步脈沖信號的偏差為
式中:l0為同步脈沖初始偏差;dB、dA為B、A通道的脈沖周期;dB每個周期會進行調整,調整方式如下:
式中:dB[0]為B通道同步脈沖初始周期;sign(·)為符號函數;lstep為每周期調節步長。
接收主控脈沖時,由于傳輸路徑和輸入處理,還需要將同步打拍、濾波等補償的延遲時間計算在內,且布線較長時,也要計算將布線時延。
f)調整策略。設置脈沖周期基準為20ms,每個脈沖周期含有25個調整周期,則調整周期的基準為0.8ms。調整單元是調整周期的基本組成單元,調整單元由時鐘分頻得到,分頻后時鐘頻率50MHz,則每個調整周期的調整精度為20ns。在本通道脈沖初始周期開始2個計數器分別計數,單元計數器以50MHz為單位計數,周期計數器以調整周期計數,在檢測到同步源邊沿時2個計數器清零。根據檢測的邊沿所在的調整區間,將調整策略劃分為多周期調整、單周期調整和單元調整,多周期調整策略增加或減小每個周期時間,單周期策略增加或減小1個周期時間。單元調整在檢測邊沿處于最后一個調整周期時發揮作用,當監測到邊沿慢于本通道輸出時,立即將計數器清零,在下一個周期完成同步;當監測到邊沿快于本通道輸出時,同樣立即將計數器清零,這時輸出脈沖寬度變小,在本周期完成同步。
3 驗證及分析
3.1 仿真測試
建立仿真測試平臺,仿真環境Questasim10.5e。另外兩個通道同步脈沖的產生采用與本通道相同的方法,頻率一致,仿真時使用不同的起始復位時間以模擬通道間不同步。由圖5可知,測試設定本通道ID為00,即A通道,主控信號高電平有效,即B通道為主控通道。f_sync_rx為進入本通道的B通道同步脈沖及經過組合邏輯和排序選擇并緩存后的主控同步脈沖sync_in。
圖6(a)為兩通道的同步脈沖位于多周期調整范圍,sync_in為緩沖后的主控通道脈沖,將計數器數值以模擬量顯示,單元計數器miframe_cnt在每個調整周期都被增加了。圖6(b)為經過多周期調整后,進入單周期調整,單元計數器miframe_cnt只在最后一個周期被增加。圖6(c)進入單元調整,脈沖偏差小于單周期調整增加的時間。圖6(d)為單元調整放大的主被控脈沖,調整后完成同步(脈沖與計數器清零邊沿的偏差是同步打拍、濾波等補償的延遲時間)。圖7中sync_set_up是以調整周期為單位計數的同步建立時間,從0計數,計數399時建立同步,同步時間為320ms,同步誤差為一個分頻時鐘周期,理論同步精度為所使用的分頻時鐘周期。
3.2 同步建立時間分析
被控脈沖不同步時只有超前或滯后于主控脈沖兩種情況。這兩種情況對應調整方案為脈沖周期增加或減少,增加或減少時最大同步建立時間相同。本節分析基于被控脈沖超前時,計算同步建立時間。
脈沖同步周期為20ms,則超前最大時間為同步周期的一半,10ms。本方案采用的多周期調整增加1.5ms,單周期增加0.06ms,單元調整范圍為0~0.06ms,單元調整只需1次,則
式中:a為多周期調整次數; b為單周期調整次數,且都為整數;t為單元調整時間,同步建立時間Tsetup為
Tsetup=21.5a+20.06b+(20+t)(6)
使建立時間最大的a、b取值為6、16,最大同步建立時間Tsetup=470ms。
4 結語
1)針對冗余系統的同步需求,提出一種基于FPGA的硬件同步方法。經過排序后獲得主控脈沖,同步過程劃分為多周期調整、單周期調整、單元調整,以主控脈沖為基準調整同步偏差。
2)仿真結果表明,同步精度達到20ns,最大同步時間不超過470ms,保證了多通道冗余系統的同步需求。
參考文獻:
[1] CHEMASHKIN F Y,ZHILENKOV A. Fault tolerance control in cyber-physical systems[C]. [S.I.]:IEEE,2019.
[2] 高桂軍,王友仁,姚睿. 系統異構冗余容錯設計研究[J]. 傳感器與微系統,2007,26(10):25-28.
[3] 毛海杰,李煒,馮小林. 非線性系統主動容錯控制綜述[J]. 傳感器與微系統,2014,33(4):6-9,13.
[4] 簡榮坤,李冰冰,韓誠. 智能傳感器故障診斷系統數據預處理方法[J]. 傳感器與微系統,2016,35(9):27-29,32.
[5] 馬立偉,王俊雷,林尚飛. 基于FMECA分析的無人收放控制系統冗余策略研究[J]. 機電工程技術,2022,51(6):92-95.
[6] HAZRA N K,NANDA A K. Component redundancy versus system redundancy in different stochastic orderings[J]. IEEE Transactions on Reliability,2014,63(2):567-582.
[7] LIU X Z,WU C. Fault-tolerant synchronization for nonlinear switching systems with time-varying delay[J]. Nonlinear Analysis:Hybrid Systems,2017,23:91-110.
[8] LIU B,YANG M F,WANG Y,et al. A lightweight data-voting strategy for triple-modular redundant control computers[J]. Science China Technological Sciences,2022,65(2):419-431.
[9] ZHOU S,XIONG G P. Modeling and analysis of task synchronization process based on Petri Net[C]//World Automation Congress. Puerto Vallarta,Mexico:IEEE,2012:267-271.
[10] WANG Y,JIA Z Q,ZHANG M. Research on the computer synchronization of the fault-tolerant system[C]//2020 3rd International Conference on Intelligent Robotic and Control Engineering (IRCE). Oxford,UK:IEEE,2020:18-22.
[11] YANG J Y,HUANG S Y. Process-resilient fault-tolerant delay-locked loop using TMR with dynamic timing correction[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2022,41(5):1563-1572.
[12] 宋征宇. 運載火箭冗余設計中的同步控制技術[J]. 載人航天,2013,19(2):11-16,37.