文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.183047
中文引用格式: 侯超,鄭悅,姚惟琳,等. 基于FPGA小型化數(shù)傳中繼天線驅(qū)動(dòng)控制設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2019,45(5):81-84,88.
英文引用格式: Hou Chao,Zheng Yue,Yao Weilin,et al. Design of drive control for digital transmission relay antenna based on FPGA miniaturization[J]. Application of Electronic Technique,2019,45(5):81-84,88.
0 引言
自“天鏈一號(hào)”中繼衛(wèi)星成功發(fā)射后,可為對(duì)地觀測(cè)實(shí)時(shí)轉(zhuǎn)發(fā)遙測(cè)、遙感數(shù)據(jù),極大提高了各類衛(wèi)星的使用效益和應(yīng)急能力。之后的眾多衛(wèi)星都開(kāi)始增加數(shù)傳中繼終端設(shè)備以通過(guò)中繼衛(wèi)星實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)下傳。數(shù)傳中繼天線作為衛(wèi)星有效載荷終端,在伺服控制下驅(qū)動(dòng)二維天線機(jī)構(gòu)在一定角度范圍內(nèi)繞衛(wèi)星X、Y軸轉(zhuǎn)動(dòng),完成對(duì)目標(biāo)的捕獲跟蹤。
由于整星對(duì)中繼天線在指向精度、速度穩(wěn)定度、可靠性以及壽命等方面的要求,中繼天線機(jī)構(gòu)驅(qū)動(dòng)控制器一般為特殊定制產(chǎn)品[1],其功能、性能的表現(xiàn)直接影響到整星任務(wù)執(zhí)行。隨著整星任務(wù)多元化及運(yùn)載能力限制,衛(wèi)星所承載荷的種類、數(shù)量致使有效終端的重量尺寸成為考核機(jī)構(gòu)驅(qū)動(dòng)控制器設(shè)計(jì)的又一指標(biāo)。
目前在軌中繼天線機(jī)構(gòu)驅(qū)動(dòng)控制器多采用“MCU+FPGA”的控制架構(gòu),MCU負(fù)責(zé)通信和控制參數(shù)的分配,F(xiàn)PGA負(fù)責(zé)信號(hào)采集和電機(jī)驅(qū)動(dòng)?;诤教炱靼踩煽啃钥紤],針對(duì)此架構(gòu),要單獨(dú)為MCU設(shè)計(jì)看門(mén)狗電路以防止程序跑飛,另外,MCU航天多采用80C32單片機(jī),受其運(yùn)算速度、可用接口數(shù)量、數(shù)據(jù)總線寬度、順序執(zhí)行以及內(nèi)部無(wú)ROM存儲(chǔ)空間的種種約束,致使該驅(qū)動(dòng)控制器硬件設(shè)計(jì)繁瑣拖沓,而且7.2萬(wàn)門(mén)的反熔絲FPGA資源利用率又不超過(guò)50%,資源利用不充分。本文研究的目的是使用單片7.2萬(wàn)門(mén)反熔絲FPGA實(shí)現(xiàn)串口指令控制二維數(shù)傳中繼天線步進(jìn)電機(jī)的細(xì)分驅(qū)動(dòng),并且在功能、性能、安全可靠性上完全覆蓋并優(yōu)于傳統(tǒng)設(shè)計(jì)。
1 系統(tǒng)架構(gòu)
如圖1所示,硬件系統(tǒng)采用一片F(xiàn)PGA作為核心控制器件,AD7828用于電機(jī)A/B繞組電流采集、主備控制線路各兩片LMD18200芯片用于X/Y維步進(jìn)電機(jī)驅(qū)動(dòng)、4片AD2S80芯片用于兩維旋轉(zhuǎn)變壓器角度信號(hào)解碼,由FPGA實(shí)現(xiàn)串口通信。
考慮到航天型號(hào)可靠性要求,F(xiàn)PGA選用7.2萬(wàn)門(mén)Actel公司具有抗單粒子翻轉(zhuǎn)的反熔絲器件A54SX72A-CQ208B,步進(jìn)電機(jī)選用雙繞組兩相/四拍步進(jìn)電機(jī),主備兩套驅(qū)動(dòng)線路互為熱備份,當(dāng)一路驅(qū)動(dòng)線路故障時(shí)可以通過(guò)遙控指令使FPGA切換至另一路驅(qū)動(dòng)線路。為防止雙繞組電機(jī)在主繞組工作時(shí),電機(jī)備繞組與備份驅(qū)動(dòng)線路存在電流回路形成感應(yīng)電流,導(dǎo)致電機(jī)轉(zhuǎn)動(dòng)時(shí)產(chǎn)生抖動(dòng),所以FPGA在使用主份驅(qū)動(dòng)線路時(shí),及時(shí)向備驅(qū)動(dòng)線路的LMD18200輸出剎車信號(hào)。
在中繼執(zhí)行對(duì)接任務(wù)時(shí),要求二維天線的角位置分辨率為0.005 5°,所以選擇雙通道旋轉(zhuǎn)變壓器加專用RDC芯片解碼電路進(jìn)行角度位置高精度轉(zhuǎn)換[2]。在本文中對(duì)每軸機(jī)構(gòu)雙通道旋變輸出的正余弦信號(hào)分別采用2片AD2S80芯片進(jìn)行粗、精通道RDC轉(zhuǎn)換,F(xiàn)PGA采集并進(jìn)行粗、精通道數(shù)據(jù)組合糾錯(cuò)后最終獲得當(dāng)前機(jī)構(gòu)角度位置。
2 FPGA設(shè)計(jì)結(jié)構(gòu)
FPGA由電平采集電路、旋變數(shù)據(jù)處理電路、電機(jī)驅(qū)動(dòng)電路、異步串口通信電路、AD轉(zhuǎn)換控制電路組成,見(jiàn)圖2。其中串口通信功能作為整個(gè)FPGA控制流程的發(fā)起,電機(jī)驅(qū)動(dòng)則作為功能流程的最終實(shí)現(xiàn)。
采集模塊實(shí)現(xiàn)兩路電平遙控信號(hào)的采集和數(shù)字濾波,其結(jié)果輸出給串口通信控制模塊,由該模塊收集并參與控制。
旋變數(shù)據(jù)采集模塊主要實(shí)現(xiàn)二維機(jī)構(gòu)雙通道旋變數(shù)據(jù)的采集和耦合,由串口通信模塊發(fā)起角度采集請(qǐng)求,本模塊實(shí)現(xiàn)角度采集。
電流數(shù)據(jù)采集模塊實(shí)現(xiàn)X/Y軸步進(jìn)電機(jī)A/B相繞組電流的采集,通過(guò)FPGA控制切換采集通道并發(fā)起AD轉(zhuǎn)換,并根據(jù)AD時(shí)序獲得當(dāng)前繞組電流數(shù)據(jù),由串口通信模塊發(fā)起采集請(qǐng)求和收集采集電流數(shù)據(jù)。
電機(jī)電流采集實(shí)現(xiàn)兩臺(tái)步進(jìn)電機(jī)主備各8路繞組電流的AD轉(zhuǎn)換和采集,由串口通信模塊發(fā)起電流采集請(qǐng)求,本模塊實(shí)現(xiàn)AD轉(zhuǎn)換和采集控制。
串口通信控制模塊主要實(shí)現(xiàn)解串/串行器,服務(wù)層拆/組幀及校驗(yàn),應(yīng)用層數(shù)據(jù)判別/填充、采集模塊數(shù)據(jù)調(diào)度等功能。將指令中的速度擋與采集模塊收集的信息(位置、主備繞組切換、使能開(kāi)關(guān)等信號(hào))進(jìn)行比較,最終獲得電機(jī)的執(zhí)行速度號(hào),輸出給電機(jī)驅(qū)動(dòng)模塊。
步進(jìn)電機(jī)驅(qū)動(dòng)模塊輸入為電機(jī)驅(qū)動(dòng)的速度擋(含指令要求電機(jī)轉(zhuǎn)動(dòng)方向),F(xiàn)PGA按照256細(xì)分正弦PWM斬波方式驅(qū)動(dòng)兩相/四拍步進(jìn)電機(jī)轉(zhuǎn)動(dòng)。
本文重點(diǎn)介紹旋變數(shù)據(jù)處理、串口通信控制處理以及電機(jī)驅(qū)動(dòng)功能的實(shí)現(xiàn),采集濾波功能、AD轉(zhuǎn)換采集較為成熟,這里不作介紹。
2.1 旋變數(shù)據(jù)處理
中繼天線兩維機(jī)構(gòu)均采用雙通道多級(jí)旋轉(zhuǎn)變壓器,粗、精機(jī)極對(duì)數(shù)比為1:N。粗通道執(zhí)行0~360°的粗測(cè)量,精通道則執(zhí)行0°~(360°/N)范圍內(nèi)的精測(cè)量,雙通道輸出數(shù)據(jù)實(shí)際上是將粗通道角度數(shù)據(jù)與精通道角度數(shù)據(jù)進(jìn)行拼接獲得[3]。
粗通道AD2S80選取數(shù)據(jù)位數(shù)n是按照極對(duì)數(shù)N來(lái)確定的,一般參照式(1)選擇:
通過(guò)這種方法選取的高n位粗通道數(shù)據(jù)比精通道AD2S80轉(zhuǎn)換輸出的數(shù)據(jù)權(quán)值高,在n之后的粗通道數(shù)據(jù)與精通道數(shù)據(jù)權(quán)值相同。精通道AD2S80選取位數(shù)一般是和分辨率要求有關(guān)。
在粗、精組合中,由于粗、精機(jī)械軸之間齒輪間隙產(chǎn)生的傳動(dòng)誤差、兩個(gè)旋轉(zhuǎn)變壓器安裝不同心等工藝因素、電氣零位誤差以及RDC轉(zhuǎn)換誤差,使得粗、精在直接組合時(shí)存在模糊區(qū)間,該模糊區(qū)間發(fā)生在選取的粗通道讀數(shù)存在多“1”或少“1”的情況[2],所以在直接輸出雙通道數(shù)據(jù)之前先要通過(guò)精通道來(lái)校準(zhǔn)粗通道。糾錯(cuò)時(shí),將精通道高兩位jData與粗通道權(quán)值相同的兩位cData進(jìn)行比較,比較結(jié)果用于修改粗通道中權(quán)值比精通道權(quán)值高的數(shù)據(jù),對(duì)其進(jìn)行加“1”、減“1”或無(wú)操作[4]。代碼實(shí)現(xiàn)方法見(jiàn)圖4。
將糾錯(cuò)后的粗通道數(shù)據(jù)與精通道數(shù)據(jù)進(jìn)行拼接輸出即為雙通道旋轉(zhuǎn)變壓器轉(zhuǎn)換后的角度位置數(shù)據(jù),此角度位置數(shù)據(jù)為當(dāng)前機(jī)構(gòu)的絕對(duì)角位置。
在實(shí)際使用中,二維機(jī)構(gòu)安裝會(huì)引起機(jī)械零位和電氣零位偏差,即機(jī)構(gòu)處于零位時(shí),通過(guò)旋變輸出的電氣角度不為零,此時(shí)需要FPGA對(duì)獲得的絕對(duì)角度位置進(jìn)行零位偏差修正,從而獲得當(dāng)前機(jī)構(gòu)的相對(duì)角度位置,輸出給串口通信控制模塊,用于當(dāng)前指令狀態(tài)參數(shù)反饋以及對(duì)電機(jī)是否過(guò)界的判斷。
2.2 FPGA異步串口通信功能
串口通信控制模塊實(shí)現(xiàn)兩部分功能:一是實(shí)現(xiàn)異步串口指令接收和發(fā)送,二是向電機(jī)控制模塊輸出電機(jī)控制參數(shù)。
FPGA實(shí)現(xiàn)串口接收狀態(tài)機(jī),實(shí)時(shí)采樣串口接收總線rxd,當(dāng)接收到起始位(低電平有效)時(shí),對(duì)起始位電平寬度計(jì)數(shù),當(dāng)滿足波特率要求時(shí),則認(rèn)為起始位正確。狀態(tài)機(jī)跳轉(zhuǎn)到接收數(shù)據(jù)狀態(tài),對(duì)每一位均進(jìn)行寬度校準(zhǔn),在符合波特率定時(shí)條件下,對(duì)每一位數(shù)據(jù)進(jìn)行三次采樣,進(jìn)行三取二獲得當(dāng)前采樣真實(shí)數(shù)據(jù),并按照字節(jié)排序進(jìn)行移位獲得字節(jié)數(shù)據(jù)。對(duì)采樣位數(shù)計(jì)數(shù),當(dāng)滿足協(xié)議要求的一次串行傳輸數(shù)據(jù)位數(shù)要求時(shí),狀態(tài)機(jī)則跳轉(zhuǎn)到接收校驗(yàn)位狀態(tài)。相同于數(shù)據(jù)區(qū)采樣,對(duì)校驗(yàn)位也進(jìn)行三次采樣二次求同獲得校驗(yàn)位數(shù)據(jù),并在下一時(shí)鐘將數(shù)據(jù)位與接收到的校驗(yàn)位進(jìn)行比對(duì),獲得校驗(yàn)正確標(biāo)志,此時(shí)狀態(tài)機(jī)跳轉(zhuǎn)到接收停止位狀態(tài)。對(duì)停止位寬進(jìn)行判斷,獲得停止位正確標(biāo)志,狀態(tài)機(jī)設(shè)置為IDLE。當(dāng)停止位正確標(biāo)志有效且校驗(yàn)正確標(biāo)志有效時(shí),此時(shí)才能將一次串行傳輸數(shù)據(jù)存放到FPGA內(nèi)部的字節(jié)接收緩沖區(qū)。圖5為綜合后字節(jié)接收狀態(tài)機(jī)。按照通信協(xié)議要求,對(duì)接收的字節(jié)按照幀格式拆幀、判斷合法性后方可獲得當(dāng)前串口指令數(shù)據(jù),執(zhí)行指令內(nèi)容,并按照要求反饋狀態(tài)信息。
通過(guò)對(duì)串口指令的解析,獲得指令要求的電機(jī)速度號(hào),F(xiàn)PGA內(nèi)部實(shí)現(xiàn)一個(gè)113擋速度號(hào)對(duì)應(yīng)的電機(jī)細(xì)分定時(shí)寄存器、占空比、轉(zhuǎn)向信號(hào)和停轉(zhuǎn)標(biāo)志的表,將查找結(jié)果輸出給電機(jī)驅(qū)動(dòng)模塊。這里的細(xì)分定時(shí)寄存器的值為對(duì)應(yīng)速度下步進(jìn)電機(jī)運(yùn)行一個(gè)脈沖周期(4步)進(jìn)行256細(xì)分,每一個(gè)細(xì)分Δt的FPGA晶振周期計(jì)數(shù)值。
例如FPGA晶振為24 MHz,電機(jī)速度為100°/s下的細(xì)分定時(shí)寄存器n的計(jì)算方法:步進(jìn)電機(jī)為兩相四拍電機(jī),步距角為1.8°,則電機(jī)速度為100 °/s時(shí)的一個(gè)脈沖周期為1.8°×4/100=0.072 s,則一個(gè)脈沖周期需要FPGA晶振計(jì)數(shù)為N=0.072/FPGA晶振周期=1 728 000,那么一個(gè)細(xì)分Δt對(duì)應(yīng)的細(xì)分定時(shí)寄存器的值n=N/細(xì)分?jǐn)?shù)=1 728 000/256=6 750。
2.3 電機(jī)驅(qū)動(dòng)功能
電機(jī)驅(qū)動(dòng)采用LMD18200-2D芯片,內(nèi)部包含2個(gè)獨(dú)立背對(duì)背的H橋電路,可用于一臺(tái)兩相四拍步進(jìn)電機(jī)A/B相繞組的驅(qū)動(dòng)使用。LMD18200芯片提供雙極性驅(qū)動(dòng)方式和單極性驅(qū)動(dòng)方式,相較于雙極性的功率損耗大、電流波動(dòng)大以及在設(shè)計(jì)時(shí)必須添加死區(qū)防止開(kāi)關(guān)管直通的問(wèn)題,本設(shè)計(jì)采用單極性驅(qū)動(dòng)方式:FPGA輸出的極性信號(hào)決定電機(jī)AB繞組的換向(電機(jī)轉(zhuǎn)向),極性信號(hào)的周期決定電機(jī)轉(zhuǎn)動(dòng)的速度,輸出PWM信號(hào)的占空比決定電機(jī)的力矩。為保證天線機(jī)構(gòu)穩(wěn)定驅(qū)動(dòng),F(xiàn)PGA采用256細(xì)分正弦PWM斬波輸出方式。
根據(jù)串口通信模塊輸出的電機(jī)驅(qū)動(dòng)控制參數(shù),即細(xì)分定時(shí)寄存器、占空比、轉(zhuǎn)向信號(hào)以及停轉(zhuǎn)標(biāo)志,在電機(jī)驅(qū)動(dòng)模塊中實(shí)現(xiàn):在每個(gè)細(xì)分時(shí)間Δt(細(xì)分定時(shí)寄存器的值)內(nèi),對(duì)應(yīng)細(xì)分點(diǎn)的面積與該細(xì)分時(shí)間內(nèi)多個(gè)PWM脈沖導(dǎo)通面積之和一致即為實(shí)現(xiàn)方式。
具體為:FPGA內(nèi)部維護(hù)兩張256×8 bit的正/余弦細(xì)分表,具體數(shù)值為正/余弦量化值。FPGA根據(jù)24 MHz晶振分頻獲得24 kHz的非對(duì)稱三角波信號(hào),通過(guò)在每個(gè)細(xì)分定時(shí)寄存器的計(jì)數(shù)范圍內(nèi),與具體細(xì)分點(diǎn)量化值(通過(guò)占空比調(diào)制)進(jìn)行比較,當(dāng)調(diào)制值大于三角波對(duì)應(yīng)時(shí)刻的計(jì)數(shù)值時(shí),則輸出PWM斬波為導(dǎo)通,否則關(guān)斷。圖6為輸出PWM斬波示意圖。圖7為仿真實(shí)現(xiàn)波形。
3 試驗(yàn)結(jié)果
本設(shè)計(jì)采用Actel公司反熔絲FPGA,工作頻率為24 MHz,開(kāi)發(fā)環(huán)境為L(zhǎng)iberoIDE,仿真軟件為Modelsim。整個(gè)設(shè)計(jì)邏輯資源使用為79.90%,實(shí)現(xiàn)最高頻率為39.607 MHz。布局布線后,將配置文件固化到目標(biāo)器件中,并連接二維數(shù)傳天線進(jìn)行驅(qū)動(dòng)指向控制測(cè)試,控制系統(tǒng)功能、性能指標(biāo)均滿足要求。圖8為實(shí)測(cè)FPGA輸出電機(jī)驅(qū)動(dòng)信號(hào)。通道1為A相極性信號(hào),通道2為A相PWM斬波信號(hào),通道3為B相極性信號(hào),通道4為B相PWM斬波信號(hào)。經(jīng)過(guò)LMD18200功率放大后,輸出到電機(jī)繞組上,電機(jī)逆時(shí)針轉(zhuǎn)。
4 結(jié)論
本設(shè)計(jì)將串行器/解串器、通信協(xié)議處理、AD轉(zhuǎn)換控制電路、旋變采集電路以及步進(jìn)電機(jī)斬波控制電路集成到FPGA內(nèi)部,具備二維天線各113擋速度驅(qū)動(dòng),對(duì)步進(jìn)電機(jī)實(shí)現(xiàn)高達(dá)256微步的細(xì)分,提高天線運(yùn)行平穩(wěn)度,指向精度優(yōu)于1.2′。使用的反熔絲FPGA芯片,一經(jīng)固化,上電復(fù)位后直接運(yùn)行,不需要對(duì)其進(jìn)行看門(mén)狗監(jiān)控以及設(shè)置軟件陷阱,同時(shí)可抗空間單粒子效應(yīng),本設(shè)計(jì)已在某空間飛行器伺服控制系統(tǒng)中得到應(yīng)用,目前在軌工作正常。另一方面,使用單片F(xiàn)PGA取代傳統(tǒng)“MCU+FPGA”機(jī)構(gòu),最大化利用FPGA器件資源,提高產(chǎn)品集成度,減少單機(jī)體積,使驅(qū)動(dòng)控制電路簡(jiǎn)化約50%,有利于航天器產(chǎn)品小型化設(shè)計(jì)。
參考文獻(xiàn)
[1] 崔赪,王典軍.跟蹤與數(shù)據(jù)中繼衛(wèi)星星間鏈路天線驅(qū)動(dòng)機(jī)構(gòu)計(jì)數(shù)綜述[J].空間控制技術(shù)與應(yīng)用,2010,36(5):32-37.
[2] 徐大林,廖良闖,高文政,等.雙通道多極旋轉(zhuǎn)變壓器—數(shù)字轉(zhuǎn)換器的設(shè)計(jì)與實(shí)現(xiàn)[J].微特電機(jī),2010(1):27-29.
[3] 鄭立,盧剛,李聲晉.基于AD2S80的雙路RDC測(cè)角系統(tǒng)及接口設(shè)計(jì)[J].微特電機(jī),2009(8):12-14.
[4] 劉超,侯超,葛悅,等.基于AD2S80A和FPGA的雙通道旋轉(zhuǎn)變壓器測(cè)角系統(tǒng)設(shè)計(jì)[C].2016年航天元器件專題論壇論文集,2016:340-344.
作者信息:
侯 超,鄭 悅,姚惟琳,王 濤
(上海宇航系統(tǒng)工程研究所 上海市空間飛行器機(jī)構(gòu)重點(diǎn)實(shí)驗(yàn)室,上海201108)