葉蔚然,孫志斌,耿寶明
(1.中國(guó)科學(xué)院 空間科學(xué)與應(yīng)用研究中心 北京 100190;2.中國(guó)科學(xué)院大學(xué) 北京 100049)
基于FPGA的三自由度精密激光轉(zhuǎn)臺(tái)控制系統(tǒng)
葉蔚然1,2,孫志斌1,耿寶明1,2
(1.中國(guó)科學(xué)院 空間科學(xué)與應(yīng)用研究中心 北京 100190;2.中國(guó)科學(xué)院大學(xué) 北京 100049)
為了實(shí)時(shí)監(jiān)控大型高海拔宇宙線觀測(cè)站內(nèi)激光在大氣中傳輸衰減特性,設(shè)計(jì)一個(gè)精密激光轉(zhuǎn)臺(tái)向站內(nèi)不同探測(cè)器指定方向發(fā)射激光脈沖。系統(tǒng)采用Actel FPGA為主控制器,A3977驅(qū)動(dòng)兩相混合式步進(jìn)電機(jī)工作,TR絕對(duì)值編碼器反饋3個(gè)方向上的角度數(shù)據(jù),實(shí)現(xiàn)閉環(huán)控制,并將FPGA通過RS422接至本地PC,再接入互聯(lián)網(wǎng)即可與遠(yuǎn)程控制端進(jìn)行通信。最終實(shí)現(xiàn)激光轉(zhuǎn)臺(tái)每個(gè)方向均小于0.01°誤差的精確定位,且能通過互聯(lián)網(wǎng)實(shí)現(xiàn)遠(yuǎn)程控制。關(guān)鍵詞:FPGA;A3977;激光轉(zhuǎn)臺(tái);步進(jìn)電機(jī);絕對(duì)值編碼器
高能宇宙射線的觀測(cè)是天體物理學(xué)中新興的熱點(diǎn)話題,宇宙線粒子進(jìn)入到大氣層后,會(huì)和大氣中的物質(zhì)相互作用,產(chǎn)生次級(jí)粒子群,也就是廣延大氣簇射現(xiàn)象(Extensive Air Shower,EAS),簇射的粒子數(shù)可高達(dá)千億,并散布在數(shù)平方公里的面積上[1-2]。因此,在地面上只能通過構(gòu)建大型的宇宙線探測(cè)陣列研究這些簇射粒子群,反演出宇宙線的組成、能量及方向等信息,實(shí)現(xiàn)對(duì)原初粒子的間接探測(cè)。然而,次級(jí)粒子在大氣中傳輸會(huì)受到大氣分子及氣溶膠散射衰減,使得宇宙線的重建變得更為復(fù)雜。對(duì)此,我們要對(duì)觀測(cè)站上空的大氣衰減特性進(jìn)行實(shí)時(shí)監(jiān)控,采用精密激光轉(zhuǎn)臺(tái),向不同探測(cè)器指定方向發(fā)射激光,為了使監(jiān)控實(shí)驗(yàn)的順利進(jìn)行,特制的激光轉(zhuǎn)臺(tái)將實(shí)現(xiàn)以下功能:
1)轉(zhuǎn)臺(tái)包括水平、俯仰及角位3個(gè)方向,為減小實(shí)驗(yàn)重復(fù)性誤差,精度均小于0.01°;
2)遠(yuǎn)程控制設(shè)定轉(zhuǎn)臺(tái)方向,及控制激光發(fā)射。
激光轉(zhuǎn)臺(tái)的結(jié)構(gòu)如圖1所示,主要由底下的水平底座、中間的俯仰臺(tái)和用來調(diào)整光斑形狀的角位臺(tái)組成,要求能夠?qū)崿F(xiàn)包括水平方向0~360°、俯仰方向0~90°、角位方向-45°~45°3個(gè)方向連續(xù)可調(diào),并能精確定位,重復(fù)精度達(dá)到0.01°以內(nèi)。
圖1 激光轉(zhuǎn)臺(tái)結(jié)構(gòu)圖Fig.1 Structure of laser turntable
為了達(dá)到以上要求,選用Actel FPGA控制芯片,驅(qū)動(dòng)控制轉(zhuǎn)臺(tái)的3個(gè)步進(jìn)電機(jī)工作,并用角度編碼器反饋角度信息,實(shí)現(xiàn)閉環(huán)控制,另外,為了方便監(jiān)控實(shí)驗(yàn)的遠(yuǎn)程操控,將FPGA通過RS422連到本地PC機(jī),遠(yuǎn)端PC通過互聯(lián)網(wǎng)與本地PC通信實(shí)現(xiàn)遠(yuǎn)程控制。根據(jù)功能劃分,激光轉(zhuǎn)臺(tái)控制系統(tǒng),主要分為以下4個(gè)部分:中央控制單元、電機(jī)驅(qū)動(dòng)單元、角度反饋單元和通信網(wǎng)絡(luò)單元,如圖2所示。
圖2 控制系統(tǒng)框圖Fig.2 Diagram of control system
根據(jù)功能要求,硬件系統(tǒng)包括以下幾個(gè)模塊:FPGA及配置電路模塊、電機(jī)驅(qū)動(dòng)模塊、編碼器信號(hào)采集模塊、RS422通信模塊以及電源模塊。
圖3 系統(tǒng)硬件構(gòu)成框圖Fig.3 Structure of hardware system
2.1 FPGA及配置電路模塊
本系統(tǒng)中,F(xiàn)PGA作為控制芯片,其作用至關(guān)重要。首先,要給A3977提供控制信號(hào)用以驅(qū)動(dòng)步進(jìn)電機(jī)工作;其次,采集絕對(duì)值編碼器CMV22的角度數(shù)據(jù),實(shí)現(xiàn)閉環(huán)控制;最后,負(fù)責(zé)和上位機(jī)通信,執(zhí)行上位機(jī)的控制命令,并反饋轉(zhuǎn)臺(tái)的運(yùn)行狀態(tài)。
FPGA選用APA600,APA600是ACTEL公司基于Flash工藝的FPGA器件,此系列的FPGA為ACTEL公司的第二代產(chǎn)品,憑借其宇航級(jí)品質(zhì),此系列FPGA一直應(yīng)用在我國(guó)軍工、航天領(lǐng)域,并發(fā)揮重大作用,系統(tǒng)門數(shù)為60萬門,具有126K的內(nèi)嵌RAM,可以滿足本系統(tǒng)的設(shè)計(jì)要求。FPGA需要I/O電源3.3 V和內(nèi)核電源1.5 V,均由電源模塊提供。
此外,本系統(tǒng)選用頻率為16 MHz的外部有源晶振,為FPGA提供時(shí)鐘,MAX706提供硬件復(fù)位信號(hào)。
2.2 電機(jī)驅(qū)動(dòng)模塊
轉(zhuǎn)臺(tái)的3個(gè)方向均采用兩相混合式步進(jìn)電機(jī)[3],采用28 V的電壓,用FPGA通過Allegro公司的A3977驅(qū)動(dòng)控制電機(jī)工作。
A3977是一種用于雙極型步進(jìn)電機(jī)的微步進(jìn)電機(jī)驅(qū)動(dòng)集成電路,其內(nèi)部集成了步進(jìn)和直接譯碼接口、正反轉(zhuǎn)控制電路、雙H橋驅(qū)動(dòng),電流輸出2.5 A,最大輸出功率可接近90 W。由于采用了內(nèi)置譯碼器技術(shù),A3977可以很容易的使用最少的控制線對(duì)步進(jìn)電機(jī)實(shí)施微步進(jìn)控制[4-5]。由FPGA提供的步進(jìn)控制信號(hào)有步進(jìn)輸入(STEP)、步進(jìn)模式邏輯輸入(MS1,MS2)以及方向控制信號(hào)(DIR)以及電機(jī)運(yùn)轉(zhuǎn)使能控制信號(hào)(EN),如圖4所示。圖中A+、A-和B+、B-分別接至步進(jìn)電機(jī)的兩路線圈中,通過電流按一定規(guī)律變化,就會(huì)使電機(jī)做出相應(yīng)的轉(zhuǎn)動(dòng)。
圖4 電機(jī)驅(qū)動(dòng)電路原理框圖Fig.4 Block diagram of the motor driving circuit
在工作時(shí),EN管腳處于低電平時(shí)有效,此時(shí)當(dāng)STEP輸入的上升沿到來后,內(nèi)置譯碼器將根據(jù)步進(jìn)邏輯的輸入值(步進(jìn)模式見表1)控制H橋的輸出,使電機(jī)在當(dāng)前步進(jìn)模式下產(chǎn)生1次步進(jìn)。
表1 步進(jìn)細(xì)分控制真值表Tab.1 Microstep resolution truth table
2.3 編碼器信號(hào)采集模塊
本系統(tǒng)中,對(duì)于角度的精確度具有極高的要求,我們采用德國(guó)TR的多圈絕對(duì)值編碼器CMV22讀取角度信號(hào),絕對(duì)編碼器具有斷電記憶的功能,此編碼器單圈分辨率4096,即最小分辨率約為0.087 9°,最多可以讀取256圈,再加上轉(zhuǎn)臺(tái)三個(gè)方向減速器機(jī)構(gòu)傳動(dòng)比(俯仰傳動(dòng)比最小1:90,水平轉(zhuǎn)臺(tái)傳動(dòng)比1:180,角位轉(zhuǎn)臺(tái)傳動(dòng)比1:352),那么換算過來俯仰、水平、角位的最小分辨率分別為0.000 977°、0.000 488°和0.000 250°。
絕對(duì)值編碼器輸出的脈沖信號(hào)采用同步串行接口(Synchronous Serial Interface,簡(jiǎn)稱SSI接口),SSI接口是高精度絕對(duì)值角度編碼器中一種較常用的接口方式,基于RS422的通信技術(shù),包含一對(duì)時(shí)鐘信號(hào)及一對(duì)數(shù)據(jù)輸出信號(hào),采用主機(jī)主動(dòng)式讀出方式,即在主控者發(fā)出的時(shí)鐘脈沖的控制下,從最高有效位(MSB)開始同步傳輸,如圖5所示。
2.4 RS422通信模塊和電源模塊
RS422通信模塊采用TEXAS INSTRUMENTS公司生產(chǎn)的DS26LV31AT和DS26LV32AT,分別把FPGA發(fā)送、接收信號(hào)轉(zhuǎn)化成差分信號(hào),通過TXEN和RXEN可以對(duì)發(fā)送接收使能控制,再將RS422通過轉(zhuǎn)換器轉(zhuǎn)為RS232協(xié)議與上位機(jī)通信。所需的時(shí)鐘、使能和輸出使能信號(hào)均由FPGA提供。
系統(tǒng)電源部分,主要包括28 V、3.3 V和1.5 V。其中28 V為系統(tǒng)直流輸入電源,為外部的電機(jī)和編碼器供電;3.3 V通過DC/DC轉(zhuǎn)化得到,為FPGA供電,并與28 V電源完全隔離;1.5 V由3.3 V通過三端穩(wěn)壓芯片產(chǎn)生,為FPGA內(nèi)核供電。為了防止前端大功率電路影響到后端的控制和信號(hào)傳輸部分,將28 V電源隔離與后端隔離,28 V采用一次地,3.3 V和1.5 V共用二次地,電路如圖7所示。
圖5 SSI協(xié)議時(shí)序圖Fig.5 Timing diagram of SSI protocol
圖6 RS422電路原理圖Fig.6 Schematic of RS422
圖7 電源模塊電路原理框圖Fig.7 Block diagram of the power supply module circuit
本系統(tǒng)的FPGA程序使用硬件描述語言Verilog HDL編寫,F(xiàn)PGA程序工作流程圖如下圖所示。轉(zhuǎn)臺(tái)的3個(gè)方向依次運(yùn)動(dòng)到設(shè)定的位置,當(dāng)達(dá)到指定位置時(shí)電機(jī)停止,然后轉(zhuǎn)動(dòng)下一個(gè)方向的電機(jī)直到轉(zhuǎn)臺(tái)的3個(gè)方向設(shè)定完畢,然后就可控制發(fā)射激光打向預(yù)定的位置。當(dāng)監(jiān)控實(shí)驗(yàn)結(jié)束后,轉(zhuǎn)臺(tái)用相同的方法,回轉(zhuǎn)到初始位置。FPGA的功能模塊主要包括422串行通信和電機(jī)閉環(huán)控制。
3.1 422串行通信
RS422負(fù)責(zé)與上層工控機(jī)通信,接收上位機(jī)的控制指令,發(fā)送轉(zhuǎn)臺(tái)的狀態(tài)參數(shù)、工程參數(shù),實(shí)現(xiàn)信息互通。RS422異步串行接口的波特率為115.2 kbps,其頻率由系統(tǒng)時(shí)鐘16.384 MHz經(jīng)過計(jì)數(shù)器分頻得到,數(shù)據(jù)幀格式由1位起始位、8位數(shù)據(jù)位、1位校驗(yàn)位(奇校驗(yàn))和1位停止位構(gòu)成。
圖8 FPGA程序工作流程圖Fig.8 Flow chart of FPGA software
串行通信模塊可分為發(fā)送子模塊和接收子模塊,均由狀態(tài)機(jī)實(shí)現(xiàn)。發(fā)送子模塊,F(xiàn)PGA按照軟件配置的數(shù)據(jù)包發(fā)送間隔,將內(nèi)部寄存器按地址順序依次組包發(fā)送;接收子模塊,首先對(duì)輸入的數(shù)據(jù)進(jìn)行3取2處理,處理后的串行數(shù)據(jù)按照RS422鏈路層協(xié)議進(jìn)行串并轉(zhuǎn)換,解析出有效數(shù)據(jù)的同時(shí)完成數(shù)據(jù)的奇校驗(yàn),并寫入寄存器接口模塊。如果校驗(yàn)結(jié)果不正確,則錯(cuò)計(jì)數(shù)寄存器計(jì)數(shù),進(jìn)行錯(cuò)誤統(tǒng)計(jì)。
3.2 電機(jī)閉環(huán)控制
該模塊負(fù)責(zé)對(duì)3臺(tái)電機(jī)的分時(shí)控制,根據(jù)配置的參數(shù)選擇對(duì)應(yīng)電機(jī)工作,產(chǎn)生控制電機(jī)運(yùn)行的驅(qū)動(dòng)信號(hào),控制電機(jī)以一定速度運(yùn)轉(zhuǎn)至預(yù)定位置。
為了保證轉(zhuǎn)臺(tái)控制系統(tǒng)的功率不至于太高,控制的3臺(tái)電機(jī)使能信號(hào)互斥,通過使能信號(hào)依次選擇啟動(dòng)某一個(gè)電機(jī)運(yùn)轉(zhuǎn),結(jié)束一次運(yùn)行過程后,再切換至下一個(gè)電機(jī)。通用驅(qū)動(dòng)控制FPGA根據(jù)上位機(jī)設(shè)定的角度預(yù)先配置電機(jī)閉環(huán)行程設(shè)置寄存器,電機(jī)開始運(yùn)行,當(dāng)電機(jī)閉環(huán)行程輸出寄存器與閉環(huán)行程設(shè)置寄存器一致時(shí),則表示本次設(shè)置的轉(zhuǎn)動(dòng)結(jié)束,反饋電機(jī)運(yùn)行狀態(tài)標(biāo)志位。
本系統(tǒng)硬件原理圖和PCB均采用Cadence軟件繪制,F(xiàn)PGA開發(fā)環(huán)境為L(zhǎng)ibero,綜合工具為Synplify Pro,仿真工具采用ModelSim。制板、程序調(diào)通后,并配合相應(yīng)的上位機(jī)及通過網(wǎng)絡(luò)連接的遠(yuǎn)端控制機(jī),測(cè)試轉(zhuǎn)臺(tái)精度是否滿足設(shè)計(jì)要求。
將激光打到距離激光發(fā)射器3 m遠(yuǎn)處的墻上,通過設(shè)定轉(zhuǎn)臺(tái)3個(gè)坐標(biāo)值,并用坐標(biāo)紙做標(biāo)記,轉(zhuǎn)臺(tái)歸零重啟后,重新打到預(yù)先標(biāo)記的點(diǎn),定位點(diǎn)基本重合,誤差在0.5 mm以內(nèi),對(duì)于3 m的距離,也就是<0.01°,激光轉(zhuǎn)臺(tái)控制系統(tǒng)滿足設(shè)計(jì)要求。
文中設(shè)計(jì)了一種基于FPGA[7-8]和A3977的精密激光轉(zhuǎn)臺(tái)控制系統(tǒng),能夠很好地滿足高海拔宇宙線觀測(cè)站的惡劣環(huán)境,具有非常高的轉(zhuǎn)臺(tái)定位精度,為觀測(cè)站多個(gè)探測(cè)器監(jiān)控大氣狀況實(shí)驗(yàn)時(shí),提供了非??煽?、重復(fù)性誤差極小的穩(wěn)定光源,為大氣監(jiān)控提供保障,從而大大提高了宇宙射線信息重建的準(zhǔn)確性。
[1] 孫志斌,黃振,葉蔚然,等.深空,自由空間,非可視散射和水下激光光子通信[J].紅外與激光工程,2012,41(9):2424-2431.
SUN Zhi-bin,HUANG Zhen,YE Wei-ran,et al.Overview of the photonic communication in deep space,free space,and underwater communication[J].Infrared and Laser Engineering,2012,41(9):2424-2431.
[2] 曹臻.ARGO-YBJ:豐富多彩的宇宙線觀測(cè)[J].自然雜志,2012,34(5):284-290.
CAO Zhen.ARGO-YBJ:Fruitful Cosmic Ray Observations [J].Chinese Journal of Nature,2012,34(5):284-290.
[3] 花同.步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)[J].電子設(shè)計(jì)工程,2011,19(15):13-15.
HUA tong.Design of stepping motor control system [J].Electronic Design Engineering,2011,19(15):13-15.
[4] 張玉更,王晉.基于 AVR 的 PCB 板雕刻機(jī)的設(shè)計(jì)[J].電子設(shè)計(jì)工程,2011,19(6):143-145.
ZHANG Yu-geng,WANG Jin.Design of a PCB board engraving machine based on AVR [J].Electronic Design Engineering,2011,19(6):143-145.
[5] 楊旭強(qiáng),吳紅星.電機(jī)控制集成電路的選用第二十講內(nèi)置譯碼器的步進(jìn)電機(jī)微步進(jìn)驅(qū)動(dòng)芯片 A3977[J].微電機(jī),2002(4):14.YANG Xu-qiang,WU Hong-xing.Optional motor control IC(Lecture 20),The built-in decoder micro-stepping stepper motor driver chip7[J].Technical lecture,2002(4):14.
[6] 曾繁泰,陳美金.VHDL 程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2000.
[7] 葛昀,吳寧.基于FPGA的高精度頻率電壓轉(zhuǎn)換系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)[J].電子科技,2014(4):112-114,117.
GE Yun,WU Ning.Design and implementation of high precision voltage frequency conversion system based on FPGA[J].Electronic Science and Technology,2014(4):112-114,117.
[8] 陳亮,劉金學(xué).基于DSP和FPGA的導(dǎo)航計(jì)算機(jī)系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2012(2):1-3,6.
CHEN Liang,LIU Jin-xue.Design of navigation computer system based on DSP and FPGA[J].Modern Electronics Technique,2012(2):1-3,6.
Three freedom degrees precision laser turntable control system based on FPGA
YE Wei-ran1,2,SUN Zhi-bin1,GENG Bao-ming1,2
(1.Center for Space Science and Applied Research,Chinese Academy of Sciences,Beijing 100190,China;2.University of Chinese Academy of Sciences,Beijing 100049,China)
In order to monitor the atmospheric aerosol attenuation of the Large High Altitude Comic Ray Observatory,we design a precision laser turntable to emit laser pulses for various detectors in certain directions.We take Actel FPGA as the main controller for the control system of the turntable,A3977 to drive three two-phase hybrid stepping motors,and TR absolute encoder to collect angle data of three directions.And we implement a closed-loop control.And then,we connect to a local PC via RS422,through which we can control the system anywhere with internet.Eventually,the laser turntable achieve precise positioning less than 0.01 ° error in each direction,and can achieve remote control via the Internet.
FPGA;A3977;laser turntable;stepping motor;absolute encoder
TN99
A
1674-6236(2014)11-0015-04
2014-03-14 稿件編號(hào):201403156
國(guó)家自然科學(xué)基金(61274024);國(guó)家自然科學(xué)青年科學(xué)基金(40804032)
葉蔚然(1989—),男,浙江建德人,碩士研究生。研究方向:智能檢測(cè)與控制技術(shù)。