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