王亞京,包鵬贊,陳金香,王海濤,程向群
(北京航天新立科技有限公司,北京 100143)
位置傳感器是電機(jī)伺服控制系統(tǒng)中最常用的轉(zhuǎn)子位置檢測(cè)裝置,常用的位置傳感器有光電式、霍爾式、磁阻式、電渦流式和旋轉(zhuǎn)變壓器(簡(jiǎn)稱旋變器)等。旋轉(zhuǎn)變壓器結(jié)構(gòu)堅(jiān)固、抗干擾能力強(qiáng)、響應(yīng)速度快、溫度適用范圍寬,因此廣泛應(yīng)用在高溫、嚴(yán)寒、潮濕、高震動(dòng)等特殊工況下運(yùn)行的電機(jī)伺服控制系統(tǒng)中[1-2]。旋轉(zhuǎn)變壓器的缺點(diǎn)是信號(hào)解碼比較復(fù)雜,但是近年來隨著旋變數(shù)字轉(zhuǎn)換芯片(Resolver-to-Digital Converter,RDC)的不斷發(fā)展,其被應(yīng)用于旋變器信號(hào)處理,能夠有效簡(jiǎn)化接口電路,縮短工程研發(fā)周期。文中通過FPGA 驅(qū)動(dòng)旋變數(shù)字轉(zhuǎn)換芯片AD2S1210對(duì)旋轉(zhuǎn)變壓器信號(hào)解碼進(jìn)行簡(jiǎn)化方案設(shè)計(jì),并結(jié)合硬件驅(qū)動(dòng)電路與FPGA 解碼軟件研制進(jìn)行了實(shí)驗(yàn)驗(yàn)證。
旋變器的輸出電壓隨轉(zhuǎn)子角度發(fā)生變化,旋變器由一個(gè)勵(lì)磁繞組(R1-R2)和兩個(gè)正交的感應(yīng)繞組(S1-S3、S2-S4)組成,如圖1 所示。在勵(lì)磁繞組加上高頻信號(hào)后,感應(yīng)繞組會(huì)產(chǎn)生同頻信號(hào),信號(hào)幅值與轉(zhuǎn)子角度相關(guān)[3]。
圖1 旋變器測(cè)量角度示意圖
具體函數(shù)關(guān)系如下:
式中,ER1-R2為繞組端電壓幅值;ω為勵(lì)磁電壓角頻率;θ為轉(zhuǎn)子轉(zhuǎn)角;k為變比。
旋變數(shù)字轉(zhuǎn)換芯片可以向旋變器提供正弦波激勵(lì),接收旋變器輸出的正余弦模擬信號(hào)并將其轉(zhuǎn)化為數(shù)字信號(hào)[4],并且具有數(shù)字通信接口,可以很好地實(shí)現(xiàn)與單片機(jī)、DSP 和FPGA 等處理器的對(duì)接[5-7]。
該方案以ADI 公司推出的AD2S1210 芯片作為解碼的旋變數(shù)字轉(zhuǎn)換芯片,其最大跟蹤速率可達(dá)2 500 r/s,最大分辨可達(dá)16 位[8],可通過接口總線對(duì)AD2S1210 進(jìn)行參數(shù)配置,讀取片內(nèi)的角度、速度和故障等信息。
AD2S1210 的硬件驅(qū)動(dòng)電路主要包含旋變器勵(lì)磁驅(qū)信號(hào)動(dòng)電路和感應(yīng)信號(hào)接收電路[9]。旋變器硬件驅(qū)動(dòng)電路設(shè)計(jì)方案如圖2 所示。
圖2 旋變器硬件驅(qū)動(dòng)電路
勵(lì)磁信號(hào)驅(qū)動(dòng)電路如圖3 所示。AD2S1210 直接輸出的差分勵(lì)磁信號(hào)EXC/------EXC 抗干擾能力和驅(qū)動(dòng)能力均較弱[10],因此需要提高勵(lì)磁信號(hào)的抗干擾能力和驅(qū)動(dòng)能力;此外,EXC/------EXC 來自AD2S1210 內(nèi)部的數(shù)模轉(zhuǎn)換模塊,由于D/A 轉(zhuǎn)換過程會(huì)產(chǎn)生一定的量化噪聲,因此勵(lì)磁信號(hào)驅(qū)動(dòng)電路中增加了濾波電路[11]。
圖3 勵(lì)磁信號(hào)驅(qū)動(dòng)電路
圖3 中勵(lì)磁信號(hào)驅(qū)動(dòng)電路的單端增益計(jì)算公式為:
將電阻值代入式(2),計(jì)算出勵(lì)磁信號(hào)驅(qū)動(dòng)電路的單端增益為1.28,因此差分總增益為2.56。
感應(yīng)信號(hào)接收電路如圖4 所示。通常應(yīng)用環(huán)境中,旋變器感應(yīng)輸出的SIN/COS 信號(hào)傳輸鏈路較長(zhǎng),信號(hào)傳輸過程中易受環(huán)境噪聲干擾[12],且感應(yīng)信號(hào)往往較小,其電壓幅值難以達(dá)到AD2S1210 的信號(hào)輸入要求(2.3Vpp~4.0Vpp)。所以,AD2S1210 感應(yīng)信號(hào)接收電路設(shè)計(jì)的目的是濾除傳輸鏈路中的環(huán)境噪聲,并將感應(yīng)信號(hào)電壓幅值調(diào)整到AD2S1210 要求的范圍內(nèi)[13]。
圖4 感應(yīng)信號(hào)接收電路
圖4 中感應(yīng)信號(hào)接收電路的單端增益計(jì)算公式為:
將電阻值代入式(3),計(jì)算出感應(yīng)信號(hào)接收電路的單端增益為1.629,因此差分總增益為3.297。
FPGA 信號(hào)時(shí)鐘精確,適合完成時(shí)序邏輯,通常應(yīng)用于一些對(duì)時(shí)序要求比較高的場(chǎng)合[14]。文中方案選用FPGA 對(duì)AD2S1210 芯片進(jìn)行時(shí)序解碼,F(xiàn)PGA產(chǎn)生讀寫時(shí)序并對(duì)讀寫數(shù)據(jù)進(jìn)行處理,采用Verilog語言進(jìn)行編寫,不使用IP核,以保證FPGA 解碼軟件具有良好的移植性[15-16]。
解碼軟件的工作流程為:初始化完成后,讀/寫狀態(tài)寄存器,之后以2 ms 的固定周期采集AD2S1210的角度位置數(shù)據(jù)。解碼軟件設(shè)計(jì)采用模塊化的設(shè)計(jì)思路,其關(guān)鍵功能模塊有AD2S1210 初始化配置模塊、AD2S1210 數(shù)據(jù)寫入模塊及AD2S1210 數(shù)據(jù)讀取模塊。
初始化模塊的功能是完成AD2S1210 上電復(fù)位和采樣鎖定時(shí)序。電路上電后,初始化模塊啟動(dòng),AD2S1210 的復(fù)位信號(hào)由FPGA 輸入,復(fù)位信號(hào)需要持續(xù)保持低電平,直到AD2S1210 的供電電壓VDD達(dá)到額定值(4.5~5.5 V)。
查詢AD2S1210 芯片手冊(cè)可知,VDD達(dá)到額定電壓后,復(fù)位保持時(shí)間tRST至少為10 μs;而采樣鎖定時(shí)間tTRACK和AD2S1210 位置輸出分辨率有關(guān),設(shè)計(jì)中設(shè)定該分辨率為16位,則tTRACK時(shí)間不少于60 ms。如果以上兩個(gè)時(shí)間不正確,會(huì)導(dǎo)致AD2S1210 指示位置錯(cuò)誤或無法正常工作[17-18]。
在FPGA 中編寫AD2S1210 初始化配置模塊,并進(jìn)行時(shí)序仿真。時(shí)序仿真如圖5 所示,首先測(cè)試tRST,其值為上電零時(shí)刻到rstn_rdc 信號(hào)上升沿的時(shí)間,可觀察到tRST為20.09 μs;tTRACK的值是tRST信號(hào)上升沿到TRACE 計(jì)數(shù)器完成時(shí)刻的時(shí)間,即圖中兩標(biāo)尺間的時(shí)間80 ms。初始化tRST和tTRACK時(shí)長(zhǎng)滿足AD2S1210 芯片手冊(cè)要求,復(fù)位和采樣鎖定上電時(shí)序正確,初始化配置模塊設(shè)計(jì)合理。
圖5 初始化配置模塊時(shí)序仿真
AD2S1210 數(shù)據(jù)寫入模塊用于向AD2S1210 的片內(nèi)寄存器完成一次數(shù)據(jù)寫入,以實(shí)現(xiàn)相關(guān)命令和配置。只有在配置模式下,AD2S1210 的片內(nèi)寄存器才允許寫入,因此AD2S1210 數(shù)據(jù)寫入模塊使能期間,A0、A1 應(yīng)該都保持高電平。
AD2S1210 數(shù)據(jù)寫入模塊從時(shí)序上分為兩個(gè)步驟,第一步寫入寄存器地址,第二步寫入數(shù)據(jù)。AD2S1210 數(shù)據(jù)寫入模塊時(shí)序仿真如圖6 所示,AD2S1210 寫入模塊使能后,A0、A1 均置高電平,接著依次置低電平,寫入寄存器地址(控制寄存器0x92),在串行時(shí)鐘SCLK 的下降沿將串行數(shù)據(jù)輸入總線MOSI 上的數(shù)據(jù)寫入寄存器,因此下降沿時(shí)MOSI 保持穩(wěn)定,寄存器的D7 位至D0 位依次寫入,寫入完畢依次置高電平;然后依次置低電平,再向寄存器中寫入8 位的配置數(shù)據(jù)(0x7F),寫入完畢相繼置高,由此完成一次數(shù)據(jù)寫入操作。
圖6 AD2S1210數(shù)據(jù)寫入模塊時(shí)序仿真
AD2S1210 數(shù)據(jù)讀取模塊用于從AD2S1210 完成一次數(shù)據(jù)讀取。當(dāng)通過A0 和A1 輸入將AD2S1210設(shè)置為配置模式時(shí)(即A0、A1 均為高電平),AD2S1210 數(shù)據(jù)讀取模塊可讀出片內(nèi)寄存器中的存儲(chǔ)數(shù)據(jù);當(dāng)通過A0 和A1 輸入將AD2S1210 設(shè)置為普通模式時(shí),AD2S1210 數(shù)據(jù)存儲(chǔ)模塊可從輸出移位寄存器讀出轉(zhuǎn)角的位置(A0、A1 均為低電平)或者速度(A0 為低電平,A1 為高電平)數(shù)據(jù)。
在配置模式下,AD2S1210 數(shù)據(jù)讀取模塊從時(shí)序上分為兩個(gè)步驟,第一步寫入寄存器地址,第二步讀出數(shù)據(jù)。配置模式下AD2S1210 數(shù)據(jù)寫入模塊時(shí)序仿真如圖7 所示,讀出模塊使能后,A0、A1 均置高電平,接著依次置低電平,寫入寄存器地址(故障寄存器0xFF),寫入完畢依次置高電平;然后依次置低電平,在串行時(shí)鐘SCLK的上升沿將寄存器內(nèi)的數(shù)據(jù)從串行數(shù)據(jù)輸出總線MISO 上讀出,待SCLK 下降沿的MISO 數(shù)據(jù)穩(wěn)定,F(xiàn)PGA 可進(jìn)行采集,寄存器的D7 位至D0 位依次讀出,讀取數(shù)據(jù)完畢后,相繼置高,完成一次數(shù)據(jù)讀取操作。在普通模式下,輸出移位寄存器為24 位寬,AD2S1210 數(shù)據(jù)讀取模塊讀出轉(zhuǎn)角的位置時(shí)序仿真如圖8 所示。讀取模塊使能后,A0、A1 均置低電平,信號(hào)發(fā)生高電平到低電平轉(zhuǎn)換且達(dá)到脈沖寬度要求后,輸出移位寄存器數(shù)據(jù)更新,接著依次置低電平,在串行時(shí)鐘SCLK 的上升沿將寄存器內(nèi)的數(shù)據(jù)從串行數(shù)據(jù)輸出總線MISO 上讀出,待SCLK 下降沿MISO 數(shù)據(jù)穩(wěn)定后,F(xiàn)PGA 可進(jìn)行采集,輸出移位寄存器的D23 位至D0 位依次讀出,數(shù)據(jù)讀取完畢后,相繼置高,完成一次數(shù)據(jù)讀取操作。
圖7 配置模式下AD2S1210數(shù)據(jù)讀取模塊時(shí)序仿真
圖8 普通模式下AD2S1210數(shù)據(jù)讀取模塊時(shí)序仿真
將FPGA 解碼軟件注入硬件驅(qū)動(dòng)電路,進(jìn)行定點(diǎn)控制測(cè)試,測(cè)試環(huán)境參數(shù):
1)電機(jī)型號(hào)MS24HS1P4150,保持力矩為1.28 N·m,相數(shù)為2;
2)旋變器型號(hào)TS2610N171E64,額定輸入電壓/頻率為7 Vrms/10 kHz,額定變比為0.5;
3)AD2S1210勵(lì)磁頻率為10 kHz,分辨率為16位。
在測(cè)試過程中,控制電機(jī)轉(zhuǎn)子每隔18°定點(diǎn)輸出精確角度,記錄旋變器測(cè)量角度并計(jì)算兩者誤差,如表1 所示。經(jīng)過360°圓周測(cè)試,測(cè)量誤差不大于0.02°,且在各測(cè)試點(diǎn)角度值示數(shù)穩(wěn)定。
表1 定點(diǎn)控制測(cè)試記錄表
文中設(shè)計(jì)了旋轉(zhuǎn)變壓器解碼硬件驅(qū)動(dòng)電路以及FPGA 解碼軟件,并進(jìn)行了實(shí)驗(yàn)驗(yàn)證,從實(shí)驗(yàn)結(jié)果來看,測(cè)量誤差可控制在0.02°范圍內(nèi),且角度值示數(shù)穩(wěn)定。結(jié)合旋轉(zhuǎn)變壓器對(duì)高溫、嚴(yán)寒、潮濕和高震動(dòng)等工況的適用性,該設(shè)計(jì)方案可以應(yīng)用于上述特殊工況下電機(jī)伺服控制系統(tǒng)中的轉(zhuǎn)子位置檢測(cè)。