王亞京,包鵬贊,陳金香,王海濤,程向群
(北京航天新立科技有限公司,北京 100143)
位置傳感器是電機伺服控制系統中最常用的轉子位置檢測裝置,常用的位置傳感器有光電式、霍爾式、磁阻式、電渦流式和旋轉變壓器(簡稱旋變器)等。旋轉變壓器結構堅固、抗干擾能力強、響應速度快、溫度適用范圍寬,因此廣泛應用在高溫、嚴寒、潮濕、高震動等特殊工況下運行的電機伺服控制系統中[1-2]。旋轉變壓器的缺點是信號解碼比較復雜,但是近年來隨著旋變數字轉換芯片(Resolver-to-Digital Converter,RDC)的不斷發展,其被應用于旋變器信號處理,能夠有效簡化接口電路,縮短工程研發周期。文中通過FPGA 驅動旋變數字轉換芯片AD2S1210對旋轉變壓器信號解碼進行簡化方案設計,并結合硬件驅動電路與FPGA 解碼軟件研制進行了實驗驗證。
旋變器的輸出電壓隨轉子角度發生變化,旋變器由一個勵磁繞組(R1-R2)和兩個正交的感應繞組(S1-S3、S2-S4)組成,如圖1 所示。在勵磁繞組加上高頻信號后,感應繞組會產生同頻信號,信號幅值與轉子角度相關[3]。

圖1 旋變器測量角度示意圖
具體函數關系如下:

式中,ER1-R2為繞組端電壓幅值;ω為勵磁電壓角頻率;θ為轉子轉角;k為變比。
旋變數字轉換芯片可以向旋變器提供正弦波激勵,接收旋變器輸出的正余弦模擬信號并將其轉化為數字信號[4],并且具有數字通信接口,可以很好地實現與單片機、DSP 和FPGA 等處理器的對接[5-7]。
該方案以ADI 公司推出的AD2S1210 芯片作為解碼的旋變數字轉換芯片,其最大跟蹤速率可達2 500 r/s,最大分辨可達16 位[8],可通過接口總線對AD2S1210 進行參數配置,讀取片內的角度、速度和故障等信息。
AD2S1210 的硬件驅動電路主要包含旋變器勵磁驅信號動電路和感應信號接收電路[9]。旋變器硬件驅動電路設計方案如圖2 所示。

圖2 旋變器硬件驅動電路
勵磁信號驅動電路如圖3 所示。AD2S1210 直接輸出的差分勵磁信號EXC/------EXC 抗干擾能力和驅動能力均較弱[10],因此需要提高勵磁信號的抗干擾能力和驅動能力;此外,EXC/------EXC 來自AD2S1210 內部的數模轉換模塊,由于D/A 轉換過程會產生一定的量化噪聲,因此勵磁信號驅動電路中增加了濾波電路[11]。

圖3 勵磁信號驅動電路
圖3 中勵磁信號驅動電路的單端增益計算公式為:

將電阻值代入式(2),計算出勵磁信號驅動電路的單端增益為1.28,因此差分總增益為2.56。
感應信號接收電路如圖4 所示。通常應用環境中,旋變器感應輸出的SIN/COS 信號傳輸鏈路較長,信號傳輸過程中易受環境噪聲干擾[12],且感應信號往往較小,其電壓幅值難以達到AD2S1210 的信號輸入要求(2.3Vpp~4.0Vpp)。所以,AD2S1210 感應信號接收電路設計的目的是濾除傳輸鏈路中的環境噪聲,并將感應信號電壓幅值調整到AD2S1210 要求的范圍內[13]。

圖4 感應信號接收電路
圖4 中感應信號接收電路的單端增益計算公式為:

將電阻值代入式(3),計算出感應信號接收電路的單端增益為1.629,因此差分總增益為3.297。
FPGA 信號時鐘精確,適合完成時序邏輯,通常應用于一些對時序要求比較高的場合[14]。文中方案選用FPGA 對AD2S1210 芯片進行時序解碼,FPGA產生讀寫時序并對讀寫數據進行處理,采用Verilog語言進行編寫,不使用IP核,以保證FPGA 解碼軟件具有良好的移植性[15-16]。
解碼軟件的工作流程為:初始化完成后,讀/寫狀態寄存器,之后以2 ms 的固定周期采集AD2S1210的角度位置數據。解碼軟件設計采用模塊化的設計思路,其關鍵功能模塊有AD2S1210 初始化配置模塊、AD2S1210 數據寫入模塊及AD2S1210 數據讀取模塊。
初始化模塊的功能是完成AD2S1210 上電復位和采樣鎖定時序。電路上電后,初始化模塊啟動,AD2S1210 的復位信號由FPGA 輸入,復位信號需要持續保持低電平,直到AD2S1210 的供電電壓VDD達到額定值(4.5~5.5 V)。
查詢AD2S1210 芯片手冊可知,VDD達到額定電壓后,復位保持時間tRST至少為10 μs;而采樣鎖定時間tTRACK和AD2S1210 位置輸出分辨率有關,設計中設定該分辨率為16位,則tTRACK時間不少于60 ms。如果以上兩個時間不正確,會導致AD2S1210 指示位置錯誤或無法正常工作[17-18]。
在FPGA 中編寫AD2S1210 初始化配置模塊,并進行時序仿真。時序仿真如圖5 所示,首先測試tRST,其值為上電零時刻到rstn_rdc 信號上升沿的時間,可觀察到tRST為20.09 μs;tTRACK的值是tRST信號上升沿到TRACE 計數器完成時刻的時間,即圖中兩標尺間的時間80 ms。初始化tRST和tTRACK時長滿足AD2S1210 芯片手冊要求,復位和采樣鎖定上電時序正確,初始化配置模塊設計合理。

圖5 初始化配置模塊時序仿真
AD2S1210 數據寫入模塊用于向AD2S1210 的片內寄存器完成一次數據寫入,以實現相關命令和配置。只有在配置模式下,AD2S1210 的片內寄存器才允許寫入,因此AD2S1210 數據寫入模塊使能期間,A0、A1 應該都保持高電平。
AD2S1210 數據寫入模塊從時序上分為兩個步驟,第一步寫入寄存器地址,第二步寫入數據。AD2S1210 數據寫入模塊時序仿真如圖6 所示,AD2S1210 寫入模塊使能后,A0、A1 均置高電平,接著依次置低電平,寫入寄存器地址(控制寄存器0x92),在串行時鐘SCLK 的下降沿將串行數據輸入總線MOSI 上的數據寫入寄存器,因此下降沿時MOSI 保持穩定,寄存器的D7 位至D0 位依次寫入,寫入完畢依次置高電平;然后依次置低電平,再向寄存器中寫入8 位的配置數據(0x7F),寫入完畢相繼置高,由此完成一次數據寫入操作。

圖6 AD2S1210數據寫入模塊時序仿真
AD2S1210 數據讀取模塊用于從AD2S1210 完成一次數據讀取。當通過A0 和A1 輸入將AD2S1210設置為配置模式時(即A0、A1 均為高電平),AD2S1210 數據讀取模塊可讀出片內寄存器中的存儲數據;當通過A0 和A1 輸入將AD2S1210 設置為普通模式時,AD2S1210 數據存儲模塊可從輸出移位寄存器讀出轉角的位置(A0、A1 均為低電平)或者速度(A0 為低電平,A1 為高電平)數據。
在配置模式下,AD2S1210 數據讀取模塊從時序上分為兩個步驟,第一步寫入寄存器地址,第二步讀出數據。配置模式下AD2S1210 數據寫入模塊時序仿真如圖7 所示,讀出模塊使能后,A0、A1 均置高電平,接著依次置低電平,寫入寄存器地址(故障寄存器0xFF),寫入完畢依次置高電平;然后依次置低電平,在串行時鐘SCLK的上升沿將寄存器內的數據從串行數據輸出總線MISO 上讀出,待SCLK 下降沿的MISO 數據穩定,FPGA 可進行采集,寄存器的D7 位至D0 位依次讀出,讀取數據完畢后,相繼置高,完成一次數據讀取操作。在普通模式下,輸出移位寄存器為24 位寬,AD2S1210 數據讀取模塊讀出轉角的位置時序仿真如圖8 所示。讀取模塊使能后,A0、A1 均置低電平,信號發生高電平到低電平轉換且達到脈沖寬度要求后,輸出移位寄存器數據更新,接著依次置低電平,在串行時鐘SCLK 的上升沿將寄存器內的數據從串行數據輸出總線MISO 上讀出,待SCLK 下降沿MISO 數據穩定后,FPGA 可進行采集,輸出移位寄存器的D23 位至D0 位依次讀出,數據讀取完畢后,相繼置高,完成一次數據讀取操作。

圖7 配置模式下AD2S1210數據讀取模塊時序仿真

圖8 普通模式下AD2S1210數據讀取模塊時序仿真
將FPGA 解碼軟件注入硬件驅動電路,進行定點控制測試,測試環境參數:
1)電機型號MS24HS1P4150,保持力矩為1.28 N·m,相數為2;
2)旋變器型號TS2610N171E64,額定輸入電壓/頻率為7 Vrms/10 kHz,額定變比為0.5;
3)AD2S1210勵磁頻率為10 kHz,分辨率為16位。
在測試過程中,控制電機轉子每隔18°定點輸出精確角度,記錄旋變器測量角度并計算兩者誤差,如表1 所示。經過360°圓周測試,測量誤差不大于0.02°,且在各測試點角度值示數穩定。

表1 定點控制測試記錄表
文中設計了旋轉變壓器解碼硬件驅動電路以及FPGA 解碼軟件,并進行了實驗驗證,從實驗結果來看,測量誤差可控制在0.02°范圍內,且角度值示數穩定。結合旋轉變壓器對高溫、嚴寒、潮濕和高震動等工況的適用性,該設計方案可以應用于上述特殊工況下電機伺服控制系統中的轉子位置檢測。