摘 要:提出了一種基于FPGA的雙通道旋轉變壓器測角電路設計方案,通過FPGA來控制AD2S82A、AD2S80A的解碼和同步問題。同時用FPGA對轉換后數據進行誤差補償和組合,以及二進制角度值的轉換,提高了整個系統(tǒng)的集成度和可靠度。整個電路在Altium Designer 9.0設計環(huán)境下設計實現。采用Altera公司的EP2C35F484C6型FPGA芯片進行FPGA部分的仿真,實驗和仿真的結果很好地實現了該方案的設計功能,并滿足高精度、高速度轉換的設計要求。
關鍵詞:雙通道旋轉變壓器; FPGA; AD2S80A; AD2S82A; 測角
中圖分類號:TN710; TP29文獻標識碼:A
文章編號:1004-373X(2010)15-0141-03
Angle Measurement System for Two-speed Resolver Based on FPGA
JIANG Bo1,2, LIANG Yan-bing1, WANG Chen1,2
(1. Xi’an Institute of Optics and Precision Mechanics, Chinese Academy of Sciences, Xi’an 710119, China;
2. Graduate School, Chinese Academy of Sciences, Beijing 100039, China)
Abstract: A design scheme of angle measurement circuit for two-speed resolver based on FPGA is introduced, which controls the decoding and synchronization of AD2S82A and AD2S80A through FPGA. The error compensation and combination of the converted data and the conversion of binary angle value were carried on by FPGA, in order to improve the integration and reliability of the whole system. The whole circuit was designed in Altium Designer 9.0 design environment. The simulation of FPGA part is based on the chip EP2C35F484C6 of Altera Company, the test and simulation results achieve the design functions of the scheme commendably, and meet the requirement about high-precision, high-speed conversion of the design.
Keywords: two-speed resolver; FPGA; AD2S80A; AD2S82A; angle measurement
0 引 言
旋轉變壓器是一種電磁感應式傳感器,用來測量旋轉物體的轉軸角位移和角速度,它由定子和轉子組成。其中定子繞組作為變壓器的原邊,接受勵磁電壓,轉子繞組作為變壓器的副邊,通過電磁耦合得到感應電壓。為了提高測量精度,采用雙通道旋轉變壓器。雙通道旋轉變壓器采用單相定子激磁、兩相定子感應輸出。在激磁繞組加上激磁電壓Uref后,在粗軸的定子繞組中感應出正余弦電壓Uc_sin,Uc_cos,在精軸的定子繞組中也感應出正余弦電壓Uf_sin,Uf_cos[1]。
AD2S82A和AD2S80A是美國模擬器件公司(Analog Devices Inc)生產的分解器數字轉換器(簡稱RDC)。AD2S8X系列RDC可將轉角轉換成與轉角成比例的數字量,它實質上是一種特殊的模數轉換器。AD2S82A和AD2S80A都屬于AD2S8X系列中的產品,是一種單片式、分辨率可變RDC。在制造過程中它采用BiMOS工藝,使用雙極性高精度線性電路,因此具有精度高、性能穩(wěn)定及可靠性高等特點[2-3]。
FPGA是可編程邏輯器件(PLD)的第四代產品,內部具有獨立的I/O接口和邏輯單元CLB。使用靈活,適用性強,特別適用于復雜邏輯的設計,FPGA芯片是系統(tǒng)提高系統(tǒng)集成度和可靠性的最佳選擇之一。
1 總體設計方案
系統(tǒng)總體框圖如圖1所示,采用集成芯片AD2S82A和AD2S80A,分別作為旋轉變壓器粗碼盤和精碼盤輸出信號的解碼器,將旋轉變壓器輸出的模擬量轉換成與之對應的數字量[4]。然后將它們送入FPGA中進行誤差補償和數據組合,再在FPGA中對誤差補償后的二進制角度值,通過分段查表轉換為以度分秒顯示的角度值。
圖1 系統(tǒng)總體框圖
2 硬件電路設計
2.1 硬件電路框圖[5]
該硬件電路框圖如圖2所示,FPGA芯片作為系統(tǒng)的設計核心,對其他電路模塊進行控制,同時在FPGA中實現誤差補償和數據組合和角度轉換。
圖2 硬件電路框圖
2.2 驅動及A/D轉換模塊
驅動電路主要采用集成芯片MAX038CPP,用其來產生正弦波,由于該正弦波電流很小,不能用其直接驅動旋轉變壓器,還要對其進行功率放大。功率放大電路主要采用集成芯片OPA541AM。
把驅動電路產生的正弦波作為雙通道旋轉變壓器的激勵信號,加到其定子繞組上,于是在其粗通道轉子繞組上產生正弦波和余弦波,將它們送入AD2S82A,對其進行解碼。同時,將旋轉變壓器精通道轉子繞組產生的正弦波和余弦波送入AD2S80A,也進行解碼[6-7]。
通過AD2S82A和AD2S80A的片選端口,可以選擇它們各自的分辨率10 b,12 b,14 b,16 b,與其對應的最高跟蹤速度為1 040 r/s,260 r/s,65 r/s,16 125 r/s。由于它們將旋轉變壓器式信號轉換成自然二進制代碼,是采用一種比率式跟蹤方法,輸出數字角只與輸入正余弦信號的比值有關,而與絕對值無關,因此具有較高的噪音抑制能力,可以減小旋轉變壓器遠距離傳輸帶來的誤差[8]。這里AD2S82A和AD2S80A都選擇12位輸出。
當AD2S82A和AD2S80A正處于運算過程當中時,會在它們各自的BUSY端口,產生一個繁忙信號。用FPGA對這兩個繁忙信號進行檢測,當兩芯片有一塊處在運算過程當中時,FPGA發(fā)出一個禁止信號,送入AD2S82A和AD2S80A各自的INHIBIT端口,禁止這時讀取兩芯片的轉換數據。這樣即能使兩芯片工作同步,又能防止誤讀轉換結果。
2.3 FPGA誤差補償和數據組合模塊
當雙通道旋轉變壓器粗碼盤和精碼盤的極數比值為1∶32 時,旋轉變壓器旋轉1圈,這時粗軸相當于轉了1圈,而精軸相當于旋轉了32圈,也即粗軸旋轉1圈相當于轉過360°,而精軸旋轉1圈只轉過了1125°(360°/32)。所以,精軸解碼后的數字角最高位Q1代表5625°(1125°/2),相當于粗軸的P6位[9]。解碼后的粗軸和精軸各個位的權重如表1所示。
由于粗軸的后幾位肯定不如放大32倍之后的精軸的數字準確,所以粗精數字角組合的原則是,粗精軸都輸出12位數字角,但粗軸只取高5位(P1~P5),而精軸取全12位(Q1~Q12)。
由于旋轉變壓器在轉動時,粗碼盤和精碼盤之間存在各種各樣的誤差,粗精通道對應位可能不同是變化。即存在粗通道數據變化后,精通道對應位的數據還沒有變化,同樣也存在精通道數據變化,而粗通道對應位的數據還沒有變化,因此還要對解碼后的數據進行誤差補償。
通過表1可以看出,粗通道和精通道對應的位只有P6和Q1,它們都代表5°37′30″。當P6和Q1變化不同步時,就要進行誤差補償。采用VHDL語言編寫誤差補償模塊,在FPGA中實現誤差補償[10],其程序流程圖如圖3所示。
圖3 誤差補償流程圖
表1 位權重
二進制位1234567891011121314151617
度18090452211521
分3015374824422110521
秒30452311633163819402010
粗軸P1P2P3P4P5P6P7P8P9P10P11P12
精軸Q1Q2Q3Q4Q5Q6Q7Q8Q9Q10Q11Q12
補償后R1R2R3R4R5R6R7R8R9R10R11R12R13R14R15R16R17
2.4 角度值轉換模塊
誤差補償后的角度值,是以二進制顯示的角度,即如表1所示的R1~R17,不同的位代表的角度值不同。為了方便顯示和后續(xù)電路運算,還要對二進制角度值進行轉換,將其轉換為以度分秒顯示的角度值。
直接按各個位的權重進行轉換,涉及到多次乘法和除法運算,影響整個電路的速度。通過查表可以避開免乘法和除法運算,但是直接查表需要很大的ROM空間,這里采用分段查表法,把誤差補償后的數據分成整度數的位R1~R3和帶分秒的位R4~R17,其中R4~R17按度分秒分別進行查表,再將查到的整度數和R1~R3查到的整度數做加法運算。這樣可以將ROM空間減小到原來的大約1/8。
3 仿真驗證
現將誤差補償、數據組合、角度轉換3個模塊進行仿真。仿真是基于Altera公司的EP2C35F484C6型FGPA,仿真中建立了3種情況的測試平臺,仿真結果如圖4所示。
圖4 仿真結果
仿真的時鐘周期為10 ns,db1~db18為FPGA的輸入信號,其中db1為最高位。db的高6位db1~db6為AD2S82A的輸出(P1~P6),db的其他位db7~db18為
AD2S80A的輸出(Q1~Q12),db_out1~db_out 17為誤差補償后的數據,再用db_out1~db_out17去分段查表。圖4中deg為度數輸出,min為分數輸出,sec為秒數輸出。
從仿真結果可以看出,當db6(P6)和db7(Q1)不同時,就要進行誤差補償。誤差補償后的數據再通過分段查表,就可以得到正確的以度分秒顯示的角度值。
4 結 語
提出并建立了一種基于FPGA的雙通道旋轉變壓器測角系統(tǒng)。該方案的主要特點是充分利用了FPGA豐富的硬件資源,將復雜的數學運算和控制運算用硬件來實現,大大提高了轉換的速率和整個系統(tǒng)的穩(wěn)定性。該方案也可以輕松地移植到更多極對數的旋轉變壓器或感應同步器上,可進一步提高轉換的精度。
參考文獻
[1]王琳,宋國榮,王永梁.旋轉變壓器轉角及幅值的微機測量系統(tǒng)[J].北京工業(yè)大學學報,2000,26(S1):15-17.
[2]Analog Devices Inc..AD2S80A Datasheet[DB/OL]. [2000-01-20]. http://www.analog.com.
[3]Analog Devices Inc..AD2S81A/AD2S82A Datasheet[DB/OL]. [2000-01-20]. http://www.analog.com.
[4]DENNIS Shi-hsiung Fu. Circuit applications of the AD2S90 resolver-to-digital converter[DB/OL]. [2006-02-12]. http://www.discover circuits.com.
[5]PATEL Hitesh. Circuit applications of the AD2S81A and AD2S80A resolver-to-digital converters[DB/OL]. [2006-02-12]. http://www.discover circuits.com.
[6]DENNIS Shi-hsiung Fu. Speed measurement and control with the Ad2S83: a silicon tachogenerator[DB/OL]. [2006-02-12]. http://www.discover circuits.com.
[7]SCHIRMER Mark. Using the 2S80 series resolver-to-digital converters with synchros: solid-state scott-T circuit[DB/OL]. [2006-02-12]. http://www.discover circuits.com.
[8]何俊,李文華.基于FPGA和AD2S80A的數字測角系統(tǒng)[J].儀表技術與傳感器,2008(7):68-69.
[9]徐大林,高文政.基于FPGA的多極旋轉變壓器粗、精數據組合:雙速處理器的設計與實現[J].測控技術,2006,25(5):42-45.
[10]侯伯亨,顧新.VHDL硬件描述語言與數字邏輯電路設計[M].西安:西安電子科技大學出版社,1999.