梁宇飛,石上瑤,張 棟,武 濤
(中北大學(xué) 機(jī)械工程學(xué)院,太原 030051)
音圈電機(jī)式振鏡具有高頻響、高加速、快響應(yīng)等優(yōu)勢,相較于掃描電機(jī)式振鏡可以提供更高的速度及響應(yīng)[1-3],因此,音圈電機(jī)式振鏡在驅(qū)動控制方面具有更高的要求。
傳統(tǒng)的音圈電機(jī)大部分采用數(shù)字控制方法,其缺點是無法直接實現(xiàn)音圈電機(jī)的高精度要求,要達(dá)到高精度要求,需配備對應(yīng)精度的ADC模塊及數(shù)字處理器等。模擬控制信號優(yōu)勢體現(xiàn)在信號的高精度及無限分辨率,對于要高精度控制的音圈電機(jī)擁有較大的優(yōu)勢,并且實際使用時音圈電機(jī)所需電流較小,音圈電機(jī)式振鏡采用模擬電路在保持不失真條件下,可以滿足高精度及高速控制。
現(xiàn)在工業(yè)用音圈電機(jī)驅(qū)動控制器大都采用單一處理器,再配合外圍相關(guān)電路以達(dá)到驅(qū)動目的。這種驅(qū)動方法存在諸多不足。單一使用DSP定點型處理器作為處理核心,無法保證復(fù)雜算法保持高速高精度,而且DSP外設(shè)模塊的固定化,無法滿足設(shè)計的靈活性;單一使用FPGA作為處理核心,雖然擁有并行計算及靈活性的優(yōu)點,但無法完成浮點運算[4]。近幾年FPGA快速發(fā)展,將其與ARM芯片結(jié)合,可以更好地利用FPGA高速并行運算的特點,ARM芯片擁有的優(yōu)良兼容性既提供更好的可行性,也彌補了FPGA無法完成浮點運算的缺點。但是現(xiàn)有的結(jié)合方式未充分發(fā)揮FPGA的并行計算等優(yōu)勢,只是一些單純的時序處理,其性能沒有得到充分的發(fā)揮。
本文提出一種基于ARM和FPGA的異構(gòu)處理器驅(qū)動控制方法,并設(shè)計軟硬件,以實現(xiàn)對音圈電機(jī)式振鏡的驅(qū)動控制。再依照ARM和FPGA的各自功能特點進(jìn)行功能劃分和軟件設(shè)計[5]。
驅(qū)動控制器采用基于ARM和FPGA的結(jié)構(gòu),搭配上位機(jī)和外圍電路完成音圈電機(jī)式振鏡的驅(qū)動控制。驅(qū)動器硬件結(jié)構(gòu)如圖1所示。其中ARM使用基于Cortex-M7內(nèi)核的STM32H750芯片;FPGA使用Altera公司的10 M02SCU169芯片。ARM通過SPI通訊協(xié)議傳輸電壓信號到DAC芯片;音圈電機(jī)動子實時位置使用光柵尺傳感器采集并計算得到;電路電流由STM32內(nèi)部傳感器采集并計算得到。
圖1 系統(tǒng)硬件設(shè)計
ARM屬于可編程軟件,擁有通用性、靈活性等特點。FPGA是硬件可編程類型,擁有高速并行計算能力,但在一些復(fù)雜運算的場合中會占用大量的邏輯單元,不適合高速且復(fù)雜的場合。綜合上述ARM和FPGA優(yōu)缺點后,依照實際需求情況進(jìn)行功能分配,其中ARM主要負(fù)責(zé)系統(tǒng)初始化、信號采樣、模擬信號輸出、閉環(huán)控制算法等功能,F(xiàn)PGA主要負(fù)責(zé)激光打標(biāo)圖象點數(shù)據(jù)集處理、上位機(jī)通訊功能、與ARM之間數(shù)據(jù)交換等功能。驅(qū)動控制器中各部分功能劃分如圖2所示。
圖2 控制器功能劃分
振鏡控制器與上位機(jī)通訊普遍采用XY2-100協(xié)議。此協(xié)議由時鐘信號、同步信號、X/Y坐標(biāo)數(shù)據(jù)四路差分信號組成。XY2-100協(xié)議時序圖如圖3所示。
圖3 XY2-100 協(xié)議時序圖
數(shù)據(jù)通道共有20位數(shù)據(jù)位,其中第1~3位數(shù)據(jù)位為控制頭,在上升沿發(fā)送;第4~19位數(shù)據(jù)位為振鏡數(shù)據(jù),在上升沿發(fā)送;第20位數(shù)據(jù)位為奇偶校驗位,在下降沿發(fā)送完畢[6]。
ARM和FPGA之間協(xié)同處理必須保持高速通信。它們的通信主要包括異步串行接口方式、DMA方式、總線方式和將FPGA作為存儲設(shè)備4種[6]。選用將FPGA作為存儲器的方式可以在簡化結(jié)構(gòu)的同時保持高速通訊,ARM通過FMC接口訪問SDRAM存儲的信息,可以保持超高的讀寫速度,繼而滿足驅(qū)動控制所需的高速數(shù)據(jù)交換。ARM和FPGA通信原理圖如圖4所示。其中D0~D15是雙向數(shù)據(jù)總線,A0~A23是地址總線,SDCLK是SDRAM的時鐘線,SDNWE是寫入使能,SDCKE是存儲區(qū)域時鐘使能,SDNE是存儲區(qū)域芯片使能,NBL是寫訪問的輸出字節(jié)屏蔽。
圖4 ARM和FPGA通信原理圖
振鏡工作時,高密集數(shù)據(jù)傳輸引起上位機(jī)發(fā)送速率和振鏡速率不匹配而在某點停留時間過長,可導(dǎo)致激光燒蝕,但若數(shù)據(jù)點過少也會導(dǎo)致精度降低、質(zhì)量下降[7]。使用FPGA對上位機(jī)下發(fā)圖象進(jìn)行數(shù)據(jù)點提取操作,將原始數(shù)據(jù)點集經(jīng)過稀疏化、曲線點集分段、最小二乘法非均勻有理B樣條曲線(以下簡稱NURBS)擬合數(shù)據(jù)處理,轉(zhuǎn)換成由少量直線和曲線構(gòu)成的實體,這樣可以避免因為數(shù)據(jù)點密集或稀疏而出現(xiàn)問題。
NURBS曲線由控制點、權(quán)重、節(jié)點矢量和階數(shù)組成,數(shù)學(xué)定義如下:
(1)
其中Ni,k(u)滿足De-Boor遞推關(guān)系式:
式中:fi為控制點;ωi為權(quán)因子;u為節(jié)點矢量[8]。
在FPGA中對上位機(jī)下發(fā)數(shù)據(jù)點集進(jìn)行再處理。對于包含節(jié)點矢量和數(shù)據(jù)坐標(biāo)的值,使用最小二乘法擬合NURBS曲線,最終可以得到通過最小二乘法全局逼近的NURBS表達(dá)式。
ARM主程序主要用于全局階段性控制,把握每一個階段,例如開關(guān)中斷、系統(tǒng)初始化以及系統(tǒng)定時器的駛?cè)腭偝龅冗^程。其主程序流程圖如圖5所示。
圖5 ARM主程序流程圖
驅(qū)動器采用模擬電路控制,通過STM32生成連續(xù)模擬信號,16位DAC80501使用SPI接口以DMA方式發(fā)送到驅(qū)動電路中。STM32H750使用SPI協(xié)議以DMA方式驅(qū)動DAC外設(shè)能夠得到比肩FPGA的速度。DAC的SPI接口通信協(xié)議如圖6所示。
圖6 DAC的SPI接口通信協(xié)議
信號采樣包括電流采樣和位置采樣兩部分。電流采樣使用STM32H750內(nèi)部的16位ADC1采樣,并且內(nèi)部ADC采樣需在STM32上外接3.3 V的基準(zhǔn)電壓。位置采樣使用1 μm增量式光柵尺,通過高速差分線路接收器將采集的A-,A+,B-,B+,Z-,Z+轉(zhuǎn)化為A,B,Z三相信號。其中A、B表示光柵尺的位置信號,Z表示光柵尺的原點信號。
電機(jī)控制算法采用模糊RBF神經(jīng)網(wǎng)絡(luò)的位置控制和PI電流控制。位置環(huán)由模糊RBF神經(jīng)網(wǎng)絡(luò)控制器實現(xiàn)PID參數(shù)的實時控制,根據(jù)位置輸出誤差及誤差率作為控制器的輸入,通過模糊RBF神經(jīng)網(wǎng)絡(luò)控制器的模糊化及模糊推理,并且進(jìn)行不間斷訓(xùn)練,最終可動態(tài)修正PID控制參數(shù)Kp,Ki,Kd,使系統(tǒng)擁有更好的抗干擾能力和動態(tài)響應(yīng)[9-13]。電流環(huán)采用傳統(tǒng)的PI控制即可達(dá)到目標(biāo)穩(wěn)定效果。
閉環(huán)控制算法示意圖如圖7所示。
圖7 閉環(huán)控制算法示意圖
根據(jù)需求設(shè)計的全模擬驅(qū)動電路,如圖8、圖9所示。再使用NI multisim進(jìn)行電路仿真,探究是否符合設(shè)計要求[14]。
圖8 驅(qū)動電路圖
圖9 位置采樣信號電路圖
4.1.1 差分轉(zhuǎn)單端電路
DA信號的輸出需要轉(zhuǎn)化為單端信號進(jìn)行后續(xù)的計算,本電路差分轉(zhuǎn)單端芯片選用TI公司的INA133U,可以實現(xiàn)準(zhǔn)確的增益和高共模抑制。電路如圖8中A所示。
4.1.2 運算放大電路
運算放大器采用TI公司的SA5534AD,具備高輸出驅(qū)動能力等特點。通過在COMP和COMP/BAL上連接外部補償電容器來優(yōu)化各種應(yīng)用的頻率響應(yīng)。電路如圖8中B所示。
4.1.3 功率驅(qū)動電路
功率驅(qū)動芯片采用TI公司的LM3886TF,可以利用自身自峰值瞬時溫度保護(hù)電路,提供動態(tài)受保護(hù)的安全工作區(qū),使輸出端得到完全的保護(hù),防止欠壓、過壓等。電路如圖8中C所示。
4.1.4 電流采樣電路
電流采樣采用精密采樣電阻采樣,方便接入模擬電路,且不會影響電路輸出終值。使用INA143U處理采樣電阻兩端信號,輸出單端信號計算得到實時電流值。電路如圖8中D所示。
4.1.5 位置采樣電路
位置采樣電路將光柵尺傳感器輸出的差分信號輸入到AM26LV32ETPWR中轉(zhuǎn)化為單端信號。位置采樣電路如圖9所示。
根據(jù)圖8電路在NI multisim中進(jìn)行電路繪制并仿真測試,NI multisim中繪制的仿真電路圖如圖10所示。
圖10 NImultisim軟件仿真電路圖
使用軟件自帶的信號發(fā)生器在電路輸出端輸入30 Hz方波信號,測試得到電路最終的穩(wěn)定輸出信號。仿真結(jié)果如圖11所示,通道A表示輸入方波信號,通道B表示穩(wěn)定情況下精密采樣電阻實測電壓值,滿足設(shè)計要求[15]。
圖11 仿真結(jié)果圖
本文設(shè)計的驅(qū)動器開發(fā)板如圖12所示。
圖12 硬件驅(qū)動板實物圖
本文基于FPGA和ARM設(shè)計的驅(qū)動器開發(fā)板,輸出驅(qū)動電機(jī)兩端電壓信號,如圖13所示。所測兩端電壓信號可以滿足設(shè)計音圈電機(jī)的驅(qū)動控制,說明本文設(shè)計的驅(qū)動器有效。
圖13 電機(jī)兩端電壓圖
本文提出一種基于ARM和FPGA的音圈電機(jī)驅(qū)動控制系統(tǒng),完成了音圈電機(jī)式振鏡驅(qū)動電機(jī)控制板的設(shè)計和驗證,根據(jù)芯片各自的功能特點進(jìn)行功能劃分。仿真實驗表明,設(shè)計的驅(qū)動電路板可以實現(xiàn)所需功能,并且功能劃分也實現(xiàn)了系統(tǒng)硬件的資源合理配置,保證控制系統(tǒng)實時性要求。