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