劉 通,崔業(yè)兵
(上海航天控制技術(shù)研究所·上?!?01109)
無刷直流電機(jī)具有效率高、壽命長(zhǎng)、噪聲低、轉(zhuǎn)速高、體積小等特點(diǎn),在工業(yè)、日常生活及高科技領(lǐng)域中迅速得到了廣泛的應(yīng)用[1]。另一方面,隨著工業(yè)領(lǐng)域自動(dòng)化進(jìn)程的發(fā)展,自動(dòng)化進(jìn)程對(duì)現(xiàn)場(chǎng)總線的數(shù)據(jù)傳輸能力、實(shí)時(shí)性等都提出了更高的要求。將以太網(wǎng)應(yīng)用于工業(yè)自動(dòng)化領(lǐng)域,使生產(chǎn)設(shè)備智能化、規(guī)?;⒕W(wǎng)絡(luò)化,是必然的趨勢(shì)。
本文設(shè)計(jì)了一款高精度、高性能的無刷直流電機(jī)控制系統(tǒng),并詳細(xì)介紹了其外圍接口的電路設(shè)計(jì)。以STM32作為控制核心,其具有低功耗、外設(shè)豐富的優(yōu)點(diǎn)。充分利用其專為電機(jī)驅(qū)動(dòng)而設(shè)計(jì)的高級(jí)定時(shí)器TIM1/TIM8,通過驅(qū)動(dòng)芯片IR2136輸出6路PWM驅(qū)動(dòng)信號(hào),驅(qū)動(dòng)功率MOSFET三相逆變電路,實(shí)現(xiàn)對(duì)無刷直流電機(jī)的控制。為增強(qiáng)控制器的通用性和實(shí)用性,本設(shè)計(jì)引入了EtherCAT以太網(wǎng)現(xiàn)場(chǎng)總線技術(shù)。在EtherCAT的設(shè)計(jì)中,通常采用SPI串行接口實(shí)現(xiàn)其與微處理芯片之間的數(shù)據(jù)傳輸,其數(shù)據(jù)處理能力較弱,傳輸速率也受到了很大的限制[2]。為了能夠充分發(fā)揮EtherCAT的優(yōu)越性能,文中采用了STM32微處理器芯片特有的FSMC機(jī)制,設(shè)計(jì)了EtherCAT并行接口電路,實(shí)現(xiàn)并行讀寫EtherCAT模塊內(nèi)存,大大提高控制系統(tǒng)的實(shí)時(shí)性能。
控制器主要由STM32主控電路、驅(qū)動(dòng)電路、逆變電路、檢測(cè)電路及EtherCAT通信電路等組成,系統(tǒng)框圖如圖1所示。該控制器采用Hpwm_Lon的驅(qū)動(dòng)方式控制由功率MOSFET組成的三相全橋逆變器的導(dǎo)通與關(guān)斷,并根據(jù)不同的導(dǎo)通次序和通電狀態(tài)實(shí)現(xiàn)電動(dòng)機(jī)的正反轉(zhuǎn)和啟??刂?。當(dāng)電機(jī)運(yùn)行時(shí),霍爾接口電路采集換向信號(hào),在將信號(hào)進(jìn)行處理后將信號(hào)送入STM32通用定時(shí)器接口,并將其作為換向信息;ADC接口電路通過精密采樣電阻采集母線電流的大小信息,實(shí)現(xiàn)對(duì)電動(dòng)機(jī)的過流保護(hù)。根據(jù)霍爾信號(hào)和反電動(dòng)勢(shì)過零點(diǎn)信號(hào)解算出速度,采用速度PID閉環(huán)控制方式,通過改變PWM的占空比,實(shí)現(xiàn)對(duì)速度的調(diào)節(jié)控制。
圖1 控制系統(tǒng)的硬件框圖Fig.1 Control system hardware structure figure
微處理器STM32通過相應(yīng)的控制算法處理系
統(tǒng)反饋速度及電流信號(hào),生成相應(yīng)的控制指令,以觸發(fā)高級(jí)定時(shí)器,并最終輸出6路PWM控制信號(hào)給由功率MOSFET組成的逆變驅(qū)動(dòng)電路,驅(qū)動(dòng)無刷直流電機(jī)系統(tǒng)。同時(shí),利用EtherCAT接口電路和上位機(jī)進(jìn)行交互通信,將電機(jī)運(yùn)行的速度、位置等信息顯示在上位PC機(jī)上,上位PC機(jī)也可通過該接口向控制器發(fā)送控制指令。
為了簡(jiǎn)化系統(tǒng)結(jié)構(gòu),驅(qū)動(dòng)電路選用六輸出高壓柵極驅(qū)動(dòng)器IR2136。該驅(qū)動(dòng)器是由功率MOSFET和IGBT組成的專用柵極集成驅(qū)動(dòng)電路,可以驅(qū)動(dòng)工作母線電壓高達(dá)600V的功率開關(guān)器件[2]。該器件與主電路共地運(yùn)行,且只需1路控制電源,克服了常規(guī)控制器需要多路隔離電源的缺點(diǎn)。該驅(qū)動(dòng)器采用自舉技術(shù),其內(nèi)部3個(gè)獨(dú)立的高壓側(cè)和低壓側(cè)輸出通道可輸出六路功率開關(guān)器件的驅(qū)動(dòng)脈沖,實(shí)現(xiàn)對(duì)由功率MOSFET組成的三相全橋逆變器的最優(yōu)驅(qū)動(dòng),使整個(gè)驅(qū)動(dòng)電路的設(shè)計(jì)得以優(yōu)化。同時(shí),驅(qū)動(dòng)芯片具有過流保護(hù)功能,在系統(tǒng)觸發(fā)保護(hù)信號(hào)時(shí)可封鎖輸出的六路驅(qū)動(dòng)信號(hào)。
如圖2所示,HIN1~HIN3、LIN1~LIN3分別為經(jīng)過光耦隔離輸出的計(jì)算六路PMW信號(hào),是逆變器上、下橋臂驅(qū)動(dòng)信號(hào)的入端;HO1~HO3、LO1~LO3為逆變器上、下橋臂的驅(qū)動(dòng)輸出端。D1~D3是自舉快恢復(fù)二極管,其主要作用是防止上橋臂導(dǎo)通時(shí)母線電壓被加到IR2136的電源上,進(jìn)而導(dǎo)致器件損壞;C1~C3是自舉電容,其主要作用是為上橋臂MOS管驅(qū)動(dòng)的懸浮電源存儲(chǔ)能量;上述兩者共同組成自舉電路驅(qū)動(dòng)高壓側(cè)MOSFET。自舉電容C1~C3給高壓側(cè)提供懸浮電源Vbs,該懸浮電源為IR2136的Vb和Vs管腳之間的電壓差。1個(gè)半橋高壓側(cè)MOSFET在導(dǎo)通前需要先對(duì)自舉電容充電,當(dāng)自舉電容兩端的電壓超過閾值電壓(即MOSFET柵極開啟電壓)時(shí),高壓側(cè)MOSFET導(dǎo)通。
IR2136具有過流和欠壓故障報(bào)警功能,當(dāng)系統(tǒng)過流或欠壓時(shí),其FAULT管腳輸出的低電平可作為故障報(bào)警信號(hào)。
圖2 IR2136驅(qū)動(dòng)電路Fig.2 Driving circuit figure of IR2136
逆變電路的作用是將動(dòng)力直流電源轉(zhuǎn)換為可驅(qū)動(dòng)無刷電機(jī)運(yùn)行的三相交流電源,其中柵極串聯(lián)電阻可改變MOSFET的開關(guān)速度,其阻值可根據(jù)調(diào)試情況選定,一般的阻值為30Ω左右。
EtherCAT通信主要由微處理器STM模塊和EtherCAT模塊兩部分構(gòu)成:STM 模塊主要解析通信信息,實(shí)現(xiàn)控制指令的生成;EtherCAT模塊負(fù)責(zé)實(shí)現(xiàn)協(xié)議中物理層和數(shù)據(jù)鏈路層之間的通信。本設(shè)計(jì)采用了工業(yè)以太網(wǎng)從站控制專用芯片ET1100,該芯片主要負(fù)責(zé)數(shù)據(jù)鏈路層部分,通過硬件機(jī)制完成主、從站之間的數(shù)據(jù)交換。微處理器采用STM32芯片,主要負(fù)責(zé)應(yīng)用層協(xié)議[3],如圖3所示。
圖3 EtherCAT通信電路Fig.3 EtherCAT communicate circuit figure
2.2.1 FSMC接口設(shè)計(jì)
STM32F103ZET6是基于Cortex-M3核心的32位微控制器,具備芯片集成定時(shí)器、CAN、ADC、SPI、I2C、USB、UART等多種功能,包含512KB片內(nèi)FLASH和64KB片內(nèi)RAM,支持可兼容SRAM、NOR和NAND Flash接口的16位總線FSMC。
FSMC是STM32系列的一種特有的存儲(chǔ)控制機(jī)制,可以并行讀寫任意一種外部存儲(chǔ)器,是一種非常靈活的外部存儲(chǔ)器讀寫方法。
基于上述特點(diǎn),本設(shè)計(jì)以STM32F103ZET6為微處理器模塊,以ET1100芯片為EtherCAT控制器模塊,并在兩模塊間采用了FSMC和MCI接口進(jìn)行通信[4]。其中,微處理器模塊FSMC中的BANK1的區(qū)域3負(fù)責(zé)控制ET1100,其有效地址空間為0x68000000~0x68003000。
2.2.2 PDI接口設(shè)計(jì)
EtherCAT模塊中與微處理器相連的接口被稱為物理設(shè)備接口(簡(jiǎn)稱PDI接口),該接口具有串行傳輸和并行傳輸兩種方式。其中,串行方式主要是指SPI方式,并行傳輸方式有16位異步、8位異步、16位同步、8位同步等方式,各個(gè)類型可由相關(guān)寄存器進(jìn)行配置。ET1100支持3種PDI(過程數(shù)據(jù)接口):32位數(shù)字量IO、串行接口SPI、8/16位異步/同步微處理器接口MCI。其中,SPI和MCI用于連接外部CPU,組成從站系統(tǒng)。
ET1100并行總線接口有多種選擇,包括地址線和數(shù)據(jù)線是否復(fù)用、傳輸數(shù)據(jù)是8位或16位,以及同步/異步操作模式的選擇等,如圖4所示。本設(shè)計(jì)以STM32為微控制器,令PDI控制寄存器0x0140=0x08,設(shè)置ET1100為16位異步接口[5]。STM控制模塊提供16位地址線、16位數(shù)據(jù)線和8位控制線,分別對(duì)應(yīng)ET1100的地址線、數(shù)據(jù)線和控制線,該接口為微處理器接口(簡(jiǎn)稱為MCI)。
圖4 STM32和ET1100硬件接口電路Fig.4 Access circuit of STM32 and ET1100
霍爾位置傳感器是無刷直流電機(jī)轉(zhuǎn)子的位置檢測(cè)裝置,呈空間角度相差120°放置,其輸出的3個(gè)位置信號(hào)的高低電平相互覆蓋,脈沖寬度為180°,相位相差120°。通過三相霍爾信號(hào)的相位順序可以實(shí)現(xiàn)轉(zhuǎn)子位置的測(cè)量,并解算出轉(zhuǎn)速。轉(zhuǎn)子位置與霍爾信號(hào)的關(guān)系如下
(1)
由于霍爾位置傳感器采用集電極開路輸出,其輸出信號(hào)須經(jīng)過上拉電阻處理得到位置方波信號(hào)。如圖5所示,R4~R6為上拉電阻,R1~R3分別與C1~C3構(gòu)成濾波電路。電機(jī)轉(zhuǎn)子的位置信息由HALL_A~HALL_C接入STM32的通用定時(shí)器進(jìn)行采集和處理。當(dāng)檢測(cè)到輸出信號(hào)發(fā)生上升沿和下降沿電平跳變時(shí),此時(shí)刻便為無刷直流電機(jī)的換相時(shí)刻。
圖5 霍爾傳感器的接口電路Fig.5 Hall access circuit
控制器采用在逆變器直流側(cè)串接無感電阻的方式,檢測(cè)流過電機(jī)的電流,通過閉環(huán)控制避免電機(jī)啟動(dòng)電流過大或過載運(yùn)行,從而實(shí)現(xiàn)對(duì)電機(jī)的保護(hù)。無感電阻兩端電壓經(jīng)過濾波、跟隨、偏置、反相后被送入STM32的12位A/D轉(zhuǎn)換模塊,轉(zhuǎn)變?yōu)閿?shù)字量的電流信號(hào),成為反饋信號(hào)并供控制程序處理。當(dāng)電流檢測(cè)值超過允許值時(shí),控制程序?qū)⒎怄iPWM輸出,直至故障解除。
主程序主要完成GPIO、ADC模塊、PWM模塊、FSMC模塊、定時(shí)器1、定時(shí)器2等初始化工作。其中,定時(shí)器1邊沿中斷服務(wù)程序檢測(cè)霍爾傳感器的邊沿信號(hào),并進(jìn)行編碼,以控制六路PWM控制信號(hào)的輸出,從而驅(qū)動(dòng)功率MOSFET的導(dǎo)通與關(guān)斷,實(shí)現(xiàn)無刷電機(jī)的通電與換相;定時(shí)器1定時(shí)中斷服務(wù)程序,用于啟動(dòng)時(shí)電機(jī)的通電與換相;定時(shí)器2用于檢測(cè)給定電壓的大小,從而計(jì)算電機(jī)的轉(zhuǎn)速和進(jìn)行速度的調(diào)節(jié)。
軟件設(shè)計(jì)的主控制程序流程圖如圖6所示,先執(zhí)行初始化程序,STM32控制器在接收到來自工業(yè)以太網(wǎng)發(fā)送的啟動(dòng)指令后進(jìn)入啟動(dòng)程序,采用“三段式”啟動(dòng)法,隨后電機(jī)進(jìn)入正常的閉環(huán)運(yùn)轉(zhuǎn)狀態(tài)。
圖6 程序流程圖Fig.6 Program flowchart
本文詳細(xì)描述了一款具有EtherCAT以太網(wǎng)功能的無刷直流電機(jī)控制器的硬件設(shè)計(jì)實(shí)現(xiàn)方案,其驅(qū)動(dòng)系統(tǒng)集成了無刷直流電機(jī)速度控制、工業(yè)以太網(wǎng)通訊及驅(qū)動(dòng)電路等,可實(shí)現(xiàn)對(duì)無刷直流電機(jī)的控制。通過霍爾位置傳感器檢測(cè)轉(zhuǎn)子的位置信息,該控制器可實(shí)現(xiàn)速度PID閉環(huán)控制,從而進(jìn)行轉(zhuǎn)速調(diào)節(jié)控制;通過實(shí)時(shí)檢測(cè)母線電流,并進(jìn)行閉環(huán)控制,可避免電機(jī)啟動(dòng)電流過大或過載運(yùn)行,為電機(jī)提供保護(hù)。基于STM32微處理器特有的FSMC功能及ET1100的MCI接口,可實(shí)現(xiàn)兩者之間的并行通信;相比傳統(tǒng)的SPI接口,該方案很好地解決了數(shù)據(jù)處理和傳輸速率相對(duì)降低、不能充分發(fā)揮EtherCAT通信協(xié)議卓越性能的問題。