阮瑋琪,賈文紅,鄭麗芳,李 瑞
(1.中國科學院上海應用物理研究所,上海 201204;2.中國科學院大學,北京 100049)
同步輻射光束線站運動控制系統是通過調節狹縫、單色器、聚焦鏡箱等光學設備上的高精度步進電機,為用戶實驗提供有能量、光斑、通量要求的同步輻射光[1-2]。儲存環高頻系統的電磁干擾,地面振動、水冷和液氮冷卻系統引起的機械振動及電噪聲等,致使高精度運動位置傳感信號伴隨有復雜電磁噪聲背景。隨著同步輻射實驗技術的發展,上海光源要求聯動地控制多個設備、實時調節多個物理量以及實時觸發并采集多路實驗數據。
本文設計的多路運動位置傳感器信號實時解析與控制系統的三大基本要求是:①處理并行多路信號[3];②提取強噪聲背景下信號[4];③實時解析高精度傳感信號[5]。模擬電路系統的噪聲濾除率不高,且由于電阻、電容與電感的值在各自的精度范圍內波動,其組成的多路模擬濾波電路對于多路信號易產生不一致延遲。傳統的數字電路系統,通過并聯多個位置信號解析芯片產生控制信號,由于芯片內部固定,適應性差,在特定噪聲下無法解析信號,而且芯片間信號延遲不確定,不具有實時性。本文設計的運動位置傳感器信號實時解析與控制系統,通過數字采樣、基于線性反饋移位寄存器LFSR(Linear Feedback Shift Register)的數字濾波[6]、矯正識別計數及冗余計數的方法,結合可編程邏輯門陣列芯片FPGA(Field Programmable Gate Array),在復雜噪聲背景下,實現并行多路運動位置傳感信號的實時解析及控制信號的實時輸出。相比于模擬電路與傳統數字電路實現方式,系統實時性更好、并行集成度更高。
本系統輸入的運動位置信號由德國Heidenhain公司RPN 886型超高精密編碼傳感器與IBV 660B型細分轉換器組成的運動編碼傳感系統[7]產生。RPN 886編碼傳感器主要結構為環繞于直徑200 mm圓盤上的圓形帶狀光柵,內刻有7 200萬道光柵刻痕,刻痕間距為8 nm~9 nm。IBV 660B轉換器最高輸出方波頻率為2.5 MHz,最高編碼分辨率為0.087 2 μrad。RPN 886傳感器每轉動一周,IBV 660B轉換器將產生7 200萬個周期方波。編碼系統產生的運動位置傳感信號為實時正交差分信號(下稱原信號S(t)),通過等長度信號通道輸入實時解析與控制系統中。如圖1 所示,C1與C2為輸入的兩路外界背景噪聲,C3與C4為4路差分信號合成后的AB兩相正交信號。圖中方框區域內,可以明顯地觀察到噪聲信號N(t)對運動位置傳感信號S(t)的影響,主要表現為S(t)上升沿、下降沿以及高低電平處出現jitter類型抖動[8]。本質上是能量較小的噪聲信號作用于能量較大的原信號改變后者電平狀態。

圖1 輸入正交差分運動位置傳感信號

圖2 運動位置傳感器信號實時解析與控制系統
系統結構如圖2所示,正交差分運動位置傳感信號S(t)與噪聲N(t)耦合的輸入信號H(t)依次經過差分與單端信號轉換、數字信號采樣、基于線性反饋移位寄存器LFSR的數字濾波、矯正識別計數、冗余計數、信號計數觸發過程,系統輸出實時的觸發控制信號C(t),其中信號計數是實時的。
強噪聲信號對原信號影響較大,系統需要通過不同的方法實時提取與解析有用的運動位置傳感信號,并實時輸出觸發控制信號。
如圖3所示,為達到并行多路信號同步的目標,在FPGA芯片內部,系統采用同一采樣時鐘Sampling Clock及系統時鐘System Clock,濾波時鐘Filter Clock可等效看作同一時鐘源計數分頻得到。通過調用Xilinx公司可編程原語IBUFDS,輸入的差分信號H(t)直接轉換為單端信號,再經Flip-Flop觸發器的數字采樣以濾除高頻噪聲信號。Flip-Flop觸發器由輸入采樣時鐘Sampling Clock控制,高于采樣頻率Sampling Clock的噪聲被濾除。這一過程可表述如下:

圖3 多通道數字采樣與濾波
(1)
h(n)=H(nTsampling)=S(nTsampling)+N(nTsampling),n≥0
(2)
式中:S(t)表示原始正交信號,N(t)表示噪聲信號,Tsampling為采樣時鐘周期,h(n)表示經過采樣后的數字信號序列。h(n)與H(t)電壓幅值都被歸一化。
數字信號序列h(n)輸入由3級串聯D觸發器、1級 JK觸發器及門電路組成的基于線性反饋移位寄存器LFSR的數字濾波電路[9]。濾波電路只允許3個及以上連續濾波時鐘Filter Clock上升沿時刻都為同一個值的信號序列h(n)經過,最終濾波時鐘Filter Clock的3個上升沿之間的噪聲尖峰被濾除,因此允許輸入50%占空比的信號序列的頻率為濾波時鐘頻率的六分之一。在系統實現時,系統時鐘System Clock與采樣時鐘Sampling Clock相同,濾波時鐘Filter Clock與采樣時鐘Sampling Clock的初始相位一致,濾波時鐘周期Tfilter是采樣時鐘周期Tsampling的整數α倍。這有利于控制α值以調整不同通道的數字濾波器帶寬,同時也兼顧更高的采樣和系統時鐘頻率以及更窄的濾波器通帶。α取值過大可致使原信號S(t)采樣失真,發生信號重疊而無法計數,取值太小可導致較多頻帶的噪聲信號N(t)輸入,增大系統誤差率,所以α取值的上限與下限由原信號頻率與噪聲信號頻率以及它們的占空比決定,可表示為
Tfilter=αTsampling=αTsystem
(3)
(4)
式中:當輸入系統的方波信號占空比減小時,式(4)中等效信號頻率相應增大,即fsignal增大。
3級D觸發器每一級延遲時間為Tfilter,h(n)經過各級D觸發器輸出的信號分別定義為Q[1](n)、Q[2](n)、Q[3](n),表示如下
Q[1](n)=h(n-α)=H(nTsampling-Tfilter)
(5)
Q[2](n) =Q[1](n-α)=h(n-2α)
=H(nTsampling-2Tfilter)
(6)
Q[3](n)=Q[2](n-α)=h(n-3α)
=H(nTsampling-3Tfilter)
(7)
Q[1](n)、Q[2](n)、Q[3](n)經過與門及或非門后輸入到JK觸發器,而后其輸出的信號序列JK(n)連接到后續計數電路。圖中多級并聯通道電路與通道一Channel 1電路保持一致,都可用同一通道公式表示,只是α取值不一致。JK觸發器處理信號過程可表示為
J(n)=Q[1](n)&Q[2](n)&Q[3](n)
(8)
K(n)=Q[1](n)+Q[2](n)+Q[3](n)
(9)
JK(n)=J(n)&JK(n-1)+K(n)&JK(n-1)
(10)
式(10)中:JK(n-1)表示JK觸發器前一時刻狀態。
至此,系統對輸入信號H(t)進行數字采樣與數字濾波后,單通道總延遲時間Tdelay是5級串聯觸發器延遲時間的和,可表示為
Tdelay=Tsampling+3Tfilter+Tsystem=(3α+2)Tsampling
(11)
為實現多通道并行處理的要求,系統采取不同通道不同α值的策略。系統所有m通道總延遲可表述為所有單通道延遲的組合向量tdelay,即
(12)
tdelay=Ac1
(13)

系統通過矯正識別[10]的數學方法識別原信號S(t),并對S(t)進行有效計數,而冗余計數[11]方式則可以大幅提高計數準確度。如表1所示,由于編碼器輸出A、B兩路信號正交,A信號和B信號上升沿、下降沿、高電平、低電平的8種組合表示編碼器順時針或者逆時針旋轉一個刻度。編碼傳感器旋轉一周產生7 200萬個A、B正交信號并產生1個Z信號脈沖。實際工作環境下編碼器運動角度小于π/6且AB信號計數至少在幾十萬后才產生一個Z信號,因此A、B信號序列的精確識別與計數極為重要。

表1 正交編碼器信號

圖4 運動位置傳感信號抖動識別與矯正
識別與矯正計數用于剔除運動位置傳感信號中混和的抖動噪聲,圖4所示為運動位置編碼傳感器順時針旋轉產生的兩路正交信號,方框內噪聲信號表現為jitter抖動特征。系統首先識別A信號上升沿與B信號低電平,增加計數值,而后如果檢測到A信號下降沿與B信號高電平,則再次增加計數器值,但是若檢測到A信號下降沿與B信號低電平,說明此時檢測到噪聲信號,則計數器值減一。若系統接收到Z信號高電平脈沖,則自動矯正計數值。本質上,通過判別信號特征,系統識別區分正交信號與噪聲信號,并自動矯正計數值。系統用于識別與矯正的時鐘為系統時鐘System Clock。至此,系統單通道總延遲Tdelayall與總延遲向量tdelayall表示為
Tdelayall=Tdelay+Tsystem=(3α+3)Tsampling
(14)
tdelayall=Ac2
(15)
式中:tdelayall=[Tdelayall(1)…Tdelayall(m)]T表示m通道總延遲向量,c2=Tsampling[1 3 2]T表示所有通道狀態向量,轉移矩陣A(α矩陣)依然保持不變。
系統采用如圖5所示的運動位置傳感信號邊沿與電平雙識別計數方式作為冗余計數方式。理論上,輸入混合有噪聲的編碼器信號H(t)在經過上述數字采樣、數字濾波以及矯正識別后,計數誤差僅來源于與編碼信號特征一致的噪聲信號。根據表1所述的8種順時針與逆時針旋轉的A、B信號序列狀態,圖5(a)與圖5(b)分別描述的順時針旋轉編碼器信號與逆時針旋轉編碼器信號的計數方式,系統對每一個編碼器旋轉刻度計數4次以降低噪聲信號序列所帶來的誤差,誤差值減少4倍。

圖5 運動位置傳感信號邊沿與電平雙識別計數
系統各通道計數值與電腦上位機通過串口輸入FPGA中的判別值進行比較,當通道的計數值達到判別值后,系統輸出上升沿觸發信號以控制外部傳感器采樣。這一判斷行為在FPGA中采用組合邏輯電路實現,其延遲時間為一個ps級別的門電路延遲,不計入系統總的延遲時間內。系統輸出觸發控制信號具有高實時性。

圖6 系統FPGA數字信號處理板
系統采用如圖6所示的FPGA高速信號處理板,其芯片采用Xilinx公司XC7K325T-3FFG900C型號FPGA,具有30萬以上等效邏輯資源且能運行高頻率時鐘,滿足多通道信號同步實時處理的要求。濾波時鐘與系統時鐘取400 MHz,即Tsampling與Tsystem都為2.5 ns。
本實驗系統的運動裝置采用PK266DB步進電機與傳動比為10 000的傳動裝置,最小運動角度為3.14 μrad,編碼系統使用分辨率為0.087 2 μrad的RPN 886編碼器與IBV 660B細分器,最小步進角度對應編碼系統36個計數值,運動裝置每1.44 ms控制步進3.14 μrad以控制編碼信號頻率為25 kHz。由式(4)知α必須小于2 666,為防止輸入系統的信號占空比小于50%,最終α取值為250。噪聲信號N(t)由信號發生器產生并耦合到輸入信號通道上。
傳感信號解析結果如表2所示,信噪比由1∶0.5提升至1∶1后,系統誤差值增大。在運動角度大于9 420 μrad情況下,當信噪比為1∶0.5時,系統的誤差穩定在0.04%左右,信噪比為1∶1時,系統誤差穩定在0.05%左右。這是因為當運動角度較大時,隨著運動角度的增加,運動位置傳感信號S(t)以及噪聲信號N(t)的作用時間同步成比例增加,誤差計數值與理論計數值都同比例增加,導致誤差值恒定。而當運動角度減小到9 420 μrad以下時,系統誤差隨運動角度減小明顯增大。因為在控制運動角度較小時步進電機實際響應角度小,且系統容易受到其他靜態誤差及輸入噪聲影響,誤差值增大。理論上,高精度實驗系統會導致實際計數值在理論計數值上下抖動,而表2中實際計數值都比理論計數值大,說明系統除噪聲信號N(t)外,還受到靜態誤差影響。

表2 運動位置傳感信號計數解析結果
實驗系統不變,研究不同α取值下的編碼器信號頻率與系統平均誤差的關系,如圖7所示,此時信噪比取1∶1,運動角度為9 420 μrad至15 700 μrad間。實驗系統通過控制步進電機運動速度改變運動位置傳感信號頻率,正常工作頻率在25 kHz至800 kHz,極限頻率在800 kHz至1.2 MHz。根據式(4)并作10倍余量后計算得到α值,采用10倍余量主要是為防止信號占空比失真(小于50%)。
由圖7可知,當編碼信號頻率為25 kHz至800 kHz時,α取值介于8~11間的系統誤差小于0.05%。而當頻率25 kHz至1.2 MHz時,α介于8~250間的系統整體誤差小于0.5%。α小于8時,由式(4)可知系統噪聲濾除率較低,誤差率明顯高于0.05%且一直浮動。說明不同頻率下,α取值的窗口不同,編碼器輸出信號S(t)頻率越高α取值窗口越小。
系統實時解析頻率為100 kHz的混有噪聲的正交信號S(t)。由示波器測得輸入正交信號S(t)與實時輸出數字信號序列JK(n)的延遲差[12]如表3所示。不同α取值下,系統實際延遲時間比式(15)表述的理論延遲時間多3 ns左右,這主要為測量延時及信號通道靜態延時。實驗表明信號通道延遲時間固定且可預測,系統具有實時性。

表3 系統延遲時間測量結果
本文闡述一種運動位置傳感器信號實時解析與控制系統的設計與實現方法。系統創新地采用基于線性移位反饋寄存器LFSR的并行多路可控數字濾波器,靈活調節它們的通帶頻率以適應多路高精密運動位置編碼傳感器信號的實時解析,通過矯正識別及冗余計數方式區分噪聲信號與有效信號并有效降低計數誤差。實驗測試表明,系統實現了并行多路、強噪聲背景下信號提取、信號實時解析與控制的三大目標。信噪比為1∶1環境下,系統能并行檢測多路運動位置傳感器信號,且α介于8~250間的系統整體誤差小于0.5%;對頻率在25 kHz至800 kHz的位置傳感信號,α介于8~11間的系統誤差小于0.05%。各單通道信號的解析時間與α成正比,為(3α+3)Tsampling,系統具有實時性。