魏朋濤,何 平,王志成,劉 輝
(1.中國科學(xué)院大學(xué),北京 100049;2.中國科學(xué)院 沈陽計(jì)算技術(shù)研究所 高檔數(shù)控國家工程研究中心,沈陽 110168;3.沈陽高精數(shù)控技術(shù)有限公司,沈陽 110168)
?
基于STM32的伺服控制器接口技術(shù)研究*
魏朋濤1,2,何平2,3,王志成2,3,劉輝1,2
(1.中國科學(xué)院大學(xué),北京100049;2.中國科學(xué)院 沈陽計(jì)算技術(shù)研究所 高檔數(shù)控國家工程研究中心,沈陽110168;3.沈陽高精數(shù)控技術(shù)有限公司,沈陽110168)
摘要:分析了伺服控制器對硬件接口的性能要求,提出了接口性能的評測指標(biāo),為伺服控制器接口性能評測提供了基礎(chǔ)。針對目前主流的STM32高性能通用微控制器的接口特點(diǎn),設(shè)計(jì)了基于STM32F405的伺服控制器實(shí)驗(yàn)平臺(tái),并通過實(shí)驗(yàn)驗(yàn)證了接口的性能,實(shí)驗(yàn)結(jié)果表明STM32F405的接口性能良好,可以滿足伺服控制器實(shí)時(shí)性和準(zhǔn)確性要求,對基于STM32的伺服控制器接口技術(shù)研究具有一定的參考價(jià)值。
關(guān)鍵詞:伺服控制器;STM32;接口技術(shù);實(shí)時(shí)性
0引言
伺服控制系統(tǒng)實(shí)現(xiàn)高速、高效的控制性能依賴于控制芯片的運(yùn)算能力和接口性能,目前在伺服控制器中大部分使用專用于電機(jī)控制的DSP數(shù)字信號處理芯片,這些芯片針對電機(jī)控制做了很大程度的優(yōu)化,將重心放在電機(jī)控制上而忽略了一些其他的外擴(kuò)接口,不利于伺服系統(tǒng)功能的擴(kuò)展。意法半導(dǎo)體新推出的Cortex-M4內(nèi)核的STM32F4xx系列微控制芯片是通用的32位高性能控制芯片,增加了硬件浮點(diǎn)運(yùn)算單元(FPU),運(yùn)算速度大幅度提高,使得可以完成復(fù)雜的電機(jī)控制算法。芯片集成了豐富的外設(shè)接口,可以快速方便的進(jìn)行伺服系統(tǒng)功能擴(kuò)展。STM32的硬件優(yōu)勢使業(yè)界人士開始研究基于STM32控制芯片的伺服控制器,但是目前對STM32接口技術(shù)研究比較少,相關(guān)研究成果比較匱乏。
在此背景下,本文將首先對伺服控制器的接口需求進(jìn)行研究,提出接口性能評測指標(biāo),然后針對目前主流的STM32控制芯片設(shè)計(jì)實(shí)驗(yàn)平臺(tái),最后通過實(shí)驗(yàn)對接口的性能進(jìn)行測試,驗(yàn)證STM32平臺(tái)接口是否滿足伺服控制器實(shí)時(shí)性、準(zhǔn)確性要求。
1需求分析
1.1伺服控制器結(jié)構(gòu)
伺服控制器是用來控制伺服電機(jī)的一種控制器,一般通過位置、速度和力矩三種方式對伺服執(zhí)行器件進(jìn)行控制,實(shí)現(xiàn)高精度的傳動(dòng)系統(tǒng)定位。為了獲得良好的控制性能,伺服控制器一般會(huì)設(shè)計(jì)成一個(gè)具有電流環(huán)、速度環(huán)、位置環(huán)三閉環(huán)回路的復(fù)合控制系統(tǒng),伺服控制系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 伺服控制系統(tǒng)結(jié)構(gòu)圖
伺服控制器通過接口與電機(jī)、反饋裝置以及上位機(jī)相連,實(shí)時(shí)監(jiān)測伺服電機(jī)的電流和位置,接收上位機(jī)控制指令,在內(nèi)部進(jìn)行環(huán)路控制,實(shí)現(xiàn)高速高效的精確控制。
1.2控制器接口需求
伺服控制器的接口主要分為兩類:電機(jī)控制接口和人機(jī)交互接口。伺服控制器實(shí)現(xiàn)高精度高速度的控制依賴于這些接口性能,對接口實(shí)時(shí)性、準(zhǔn)確性等方面有一定的要求,下面具體研究這些接口應(yīng)具備的性能。
(1)電流采集接口
電流采集接口主要對伺服電機(jī)的兩相電流進(jìn)行采樣,為控制算法提供電流參數(shù)。電流采集在每個(gè)PWM周期的起點(diǎn)處執(zhí)行,電流采集完成之后執(zhí)行電機(jī)控制算法,電流采集占用時(shí)間越短則控制算法的可用時(shí)間就越長,控制算法的復(fù)雜度和精確度的提高空間就越大,把時(shí)間消耗作為電流采集接口性能評測指標(biāo)。
(2)編碼器接口
編碼器接口主要是檢測伺服電機(jī)轉(zhuǎn)子的位置,為控制算法提供位置參數(shù)。增量式編碼器輸出用于脈沖計(jì)數(shù)的A相、B相脈沖信號和用于零點(diǎn)檢測的Z相周期脈沖信號,編碼器接口應(yīng)該能夠通過捕獲A相和B相的邊沿信號并根據(jù)相位差進(jìn)行遞增或遞減計(jì)數(shù),根據(jù)Z相周期信號在每個(gè)周期更新零點(diǎn)位置的計(jì)數(shù)值,可以根據(jù)當(dāng)前時(shí)刻計(jì)數(shù)值與零點(diǎn)位置計(jì)數(shù)值得到當(dāng)前時(shí)刻的位置。電機(jī)在運(yùn)轉(zhuǎn)過程中編碼器每次經(jīng)過零點(diǎn)時(shí)的計(jì)數(shù)值應(yīng)該保持一致,由于編碼器在正反轉(zhuǎn)切換時(shí)會(huì)產(chǎn)生抖動(dòng),正反轉(zhuǎn)的零點(diǎn)位置會(huì)存在一定的漂移,把這個(gè)漂移范圍稱為抖動(dòng)域,用來評測編碼器接口的性能。
(3)PWM接口
PWM接口主要是輸出占空比可調(diào)的脈寬調(diào)制方波,控制功率電路驅(qū)動(dòng)伺服電機(jī)運(yùn)轉(zhuǎn)。功率驅(qū)動(dòng)電路一般是由場效應(yīng)管組成的逆變器電路,逆變電路上下臂的場效應(yīng)管在同一時(shí)刻只能有一個(gè)處于導(dǎo)通狀態(tài),因此控制上下臂的PWM應(yīng)該是相位互補(bǔ)的,換相期間還要有一定的時(shí)延,即死區(qū)時(shí)間。不同規(guī)格的場效應(yīng)管的導(dǎo)通和截止時(shí)間是有差異的,為了適應(yīng)不同規(guī)格場效應(yīng)管的逆變電路,PWM的死區(qū)時(shí)間應(yīng)該是可以任意編程設(shè)置的。
(4)通信接口
通信接口實(shí)現(xiàn)伺服控制器與上位機(jī)或數(shù)控系統(tǒng)信息交換,通信的實(shí)時(shí)性和正確性直接影響到控制系統(tǒng)的控制性能。伺服控制系統(tǒng)一般都會(huì)較長時(shí)間持續(xù)工作,我們把每小時(shí)出錯(cuò)幀數(shù)作為通信正確性評估指標(biāo),把每秒鐘通信次數(shù)作為實(shí)時(shí)性評估指標(biāo),用上述兩個(gè)指標(biāo)來評估設(shè)計(jì)的通信接口的性能。
1.3STM32硬件接口
STM32F405是以Cortex-M4為內(nèi)核的32位高性能微控制器,片上集成了豐富的外設(shè)接口,集成了3個(gè)高分辨率的ADC接口,時(shí)鐘頻率可達(dá)到42MHz,可以在微妙級別內(nèi)完成模數(shù)轉(zhuǎn)換;具有兩個(gè)高級定時(shí)器和四個(gè)通用定時(shí)器,工作模式可靈活配置,配置成輸出模式可輸出3路互補(bǔ)帶死區(qū)的PWM,配置成輸入捕獲模式可以對輸入脈沖進(jìn)行捕獲計(jì)數(shù);它還集成了USART、USB 2.0、CAN、MAC等通信接口,可以使用多種PHY與其他設(shè)備進(jìn)行通信。
2設(shè)計(jì)與實(shí)現(xiàn)
根據(jù)伺服控制器的基本結(jié)構(gòu)和接口要求,針對STM32F405的接口特點(diǎn),設(shè)計(jì)出基于STM32F405的伺服控制器實(shí)驗(yàn)平臺(tái)原理框圖如圖2所示。
圖2 基于STM32F405的伺服控制器實(shí)驗(yàn)平臺(tái)原理框圖
2.1電流采集接口
電流采集接口使用STM32F405的ADC1和ADC2實(shí)現(xiàn)。由于STM32F405的ADC通道共用一個(gè)數(shù)據(jù)寄存器,所有通道的轉(zhuǎn)換結(jié)果存儲(chǔ)在同一個(gè)寄存器中,因此使用DMA及時(shí)將每次采樣的結(jié)果傳輸?shù)絻?nèi)存緩沖區(qū),待所有通道轉(zhuǎn)換完成之后中斷CPU進(jìn)行數(shù)據(jù)計(jì)算。將ADC1和ADC2配置成雙重模式,設(shè)置12位分辨率,對APB2總線時(shí)鐘進(jìn)行2分頻得到42MHz的ADC時(shí)鐘,在每個(gè)PWM周期的開始位置對伺服電機(jī)的兩相電流進(jìn)行4次連續(xù)采樣,每次采樣結(jié)果由DMA傳輸?shù)絻?nèi)存開辟的緩沖區(qū)存儲(chǔ),4次采樣完成后通知CPU進(jìn)行數(shù)據(jù)處理。電流采集接口的采集流程如圖3所示。
圖3 電流采集接口采樣流程圖
2.2編碼器接口
編碼器接口使用STM32F405的TIM5來實(shí)現(xiàn)。將TIM5配置成編碼器接口模式,在TI1和TI2的邊沿進(jìn)行計(jì)數(shù),TI1映射到通道1,TI2映射到通道2,將編碼器的A、B相連接到TIM5的通道1和通道2,計(jì)數(shù)器在編碼器A、B相的邊沿處進(jìn)行遞增或遞減計(jì)數(shù)。實(shí)驗(yàn)所使用的增量編碼器在每個(gè)周期會(huì)產(chǎn)生10000個(gè)邊沿信號,將TIM5的自動(dòng)重載寄存器設(shè)置成9999,計(jì)數(shù)器的值會(huì)在0到9999之間進(jìn)行連續(xù)計(jì)數(shù),每個(gè)計(jì)數(shù)器值可以表示一個(gè)唯一的位置。將TIM5的通道3設(shè)置成上升沿輸入捕獲,對編碼器的Z相信號進(jìn)行零點(diǎn)捕獲,將每次零點(diǎn)位置的計(jì)數(shù)值進(jìn)行更新保存。
2.3PWM接口
PWM接口由STM32F405的高級定時(shí)器TIM8實(shí)現(xiàn)。將TIM8計(jì)數(shù)器設(shè)置PWM模式,時(shí)鐘頻率設(shè)置為168MHz,計(jì)數(shù)器在每個(gè)下溢事件產(chǎn)生中斷,觸發(fā)ADC進(jìn)行電流采集。配置CCRx比較寄存器的值設(shè)定PWM的占空比,配置BDTR斷路和死區(qū)寄存器設(shè)置死區(qū)時(shí)間和使能斷路輸入功能。
計(jì)數(shù)器在中心對齊計(jì)數(shù)模式下產(chǎn)生特定頻率的PWM所需要的自動(dòng)重載值可由公式(1)計(jì)算得到。
(1)
式中N代表定時(shí)器在中心對齊計(jì)數(shù)模式下的自動(dòng)重載值,F(xiàn)表示定時(shí)器的計(jì)數(shù)頻率,f表示PWM的頻率,則由公式(1)得到TIIM8輸出8kHz的PWM的自動(dòng)重載值為:
2.4通信接口
通信接口設(shè)計(jì)成采用Modbus現(xiàn)場總線通信協(xié)議,使用UART轉(zhuǎn)RS485總線接口與上位機(jī)或數(shù)控系統(tǒng)進(jìn)行通信。Modbus通訊協(xié)議是以數(shù)據(jù)幀為傳輸單位的,一個(gè)通用的Modbus數(shù)據(jù)幀格式如圖4所示,由地址域、功能碼、數(shù)據(jù)和校驗(yàn)碼組成,幀與幀之間沒有固定的限定符,Modbus通訊協(xié)議規(guī)定幀與幀之間的時(shí)間間隔至少為3.5個(gè)字符的傳輸時(shí)間,如圖5所示。
圖4Modbus數(shù)據(jù)幀格式
圖5 Modbus數(shù)據(jù)幀間隔
根據(jù)Modbus通信協(xié)議的特點(diǎn),數(shù)據(jù)幀的界定由USART和TIM2來實(shí)現(xiàn),USART完成比特流的接收與發(fā)送,在每次有數(shù)據(jù)到達(dá)時(shí)啟動(dòng)定時(shí)器進(jìn)行計(jì)時(shí),當(dāng)定時(shí)器超時(shí)溢出時(shí)則完成了一個(gè)數(shù)據(jù)幀的接收,通知上層應(yīng)用程序?qū)邮盏降臄?shù)據(jù)幀進(jìn)行解析,定時(shí)器的溢出值可由公式(2)計(jì)算得到。
(2)
式中NTn表示定時(shí)n個(gè)字符的計(jì)數(shù)值,l表示每個(gè)字符的長度,B表示數(shù)據(jù)傳輸?shù)牟ㄌ芈?,t1表示定時(shí)器計(jì)一次數(shù)的時(shí)間。設(shè)定USART的比特率為19200,8位數(shù)據(jù)位,1位停止位,一位校驗(yàn)位,則字符長度l=10, TIM2設(shè)置84分頻得到1MHz的計(jì)數(shù)脈沖,則定時(shí)器每計(jì)一次數(shù)的時(shí)間t1= 10-6s,由公式(2)得到計(jì)時(shí)3.5個(gè)字符的計(jì)數(shù)值為:
由于采用SP3845芯片進(jìn)行UART與RS485的轉(zhuǎn)換,該芯片只支持單雙工的收發(fā)模式,因此需要由程序控制SP3485的收發(fā)模式,通信接口的數(shù)據(jù)幀收發(fā)流程如圖6所示。
圖6 數(shù)據(jù)幀收發(fā)流程圖
3驗(yàn)證與評價(jià)
為驗(yàn)證STM32實(shí)驗(yàn)平臺(tái)接口是否滿足伺服控制器實(shí)時(shí)性、準(zhǔn)確性的要求,根據(jù)提出的指標(biāo)對實(shí)驗(yàn)平臺(tái)的接口性能進(jìn)行驗(yàn)證與評價(jià)。
3.1電流采集接口
電流采集接口主要驗(yàn)證評價(jià)采樣的時(shí)間消耗。使用STM32F405的TIM2定時(shí)器產(chǎn)生1/84μs的基準(zhǔn)時(shí)間,分別記錄采集開始和傳輸結(jié)束的時(shí)刻來測量整個(gè)電流采集的時(shí)間。實(shí)驗(yàn)中分別測量了1000次單次采樣和多次采樣所需要的時(shí)間,求取平均值得到單次采樣和多次采樣平均時(shí)間的統(tǒng)計(jì)圖如圖7所示。
圖7 AD采集時(shí)間消耗圖
由實(shí)驗(yàn)結(jié)果分析可得STM32的ADC可以在幾個(gè)微秒時(shí)間內(nèi)完成多通道的采樣轉(zhuǎn)換和傳輸工作,伺服控制器的PWM載波周期一般為100μs左右,STM32的電流采集接口采集四通道占用1.7μs的時(shí)間是很少的,可以滿足實(shí)時(shí)性的要求。
3.2編碼器接口
編碼器接口主要驗(yàn)證對編碼器脈沖計(jì)數(shù)的準(zhǔn)確性和穩(wěn)定性,可以通過測量編碼器的某一固定位置的計(jì)數(shù)值變化來驗(yàn)證編碼器接口的性能。實(shí)驗(yàn)中通過測量編碼器零點(diǎn)位置的計(jì)數(shù)值驗(yàn)證編碼器接口性能,分別測量了編碼器正轉(zhuǎn)、反轉(zhuǎn)以及正反轉(zhuǎn)交替情況下零點(diǎn)位置的計(jì)數(shù)值變化,實(shí)驗(yàn)結(jié)果曲線圖如圖8所示。
圖8 編碼器零點(diǎn)位置計(jì)數(shù)值變化曲線圖
由圖分析可知,捕獲到的編碼器零點(diǎn)位置的計(jì)數(shù)值在5608到5611之間波動(dòng),抖動(dòng)域?yàn)?個(gè)計(jì)數(shù)值,相對編碼器每個(gè)周期的10000個(gè)計(jì)數(shù)值是很小的。編碼器同方向轉(zhuǎn)動(dòng)時(shí)在零點(diǎn)位置捕獲到的計(jì)數(shù)值保持恒定為5608或5611,只有在正反轉(zhuǎn)交替變換的情況捕獲到的計(jì)數(shù)值有小范圍的波動(dòng),這個(gè)波動(dòng)與編碼器的內(nèi)部構(gòu)造是相符的,因此STM32編碼器接口是可以滿足伺服控制器對編碼器位置測定要求的。
3.3PWM接口
PWM接口主要測試PWM輸出波形的規(guī)則性、占空比的精確性以及死區(qū)時(shí)間的插入,實(shí)驗(yàn)中設(shè)定PWM接口的載波頻率為8kHz,占空比設(shè)置為50%,死區(qū)時(shí)間設(shè)置為3μs,由示波器觀察PWM接口的輸出波形如圖9所示。
圖9 8kHz載波頻率的PWM輸出波形
由圖分析可得PWM的周期為125μs,與設(shè)定的8kHz載波頻率對應(yīng)的周期相一致。從圖中還可以看到互補(bǔ)的兩路PWM方波在相位變化的時(shí)候存在一定的時(shí)間延遲,延遲時(shí)間與程序設(shè)定的3μs時(shí)間大致相同,由于死區(qū)時(shí)間的插入使得PWM的占空比略小于50%,輸出波形與程序設(shè)定是相符的,滿足伺服控制機(jī)器的PWM接口要求。
3.4通信接口
通信接口主要驗(yàn)證通信的實(shí)時(shí)性和正確性,移植沈陽高精數(shù)控DSP平臺(tái)伺服控制器的應(yīng)用層通信程序,通過伺服調(diào)試軟件測試STM32通訊接口的性能,測試結(jié)果如圖10所示。
由實(shí)驗(yàn)結(jié)果可知,在2小時(shí)的通信測試中,平均數(shù)據(jù)幀發(fā)送速度達(dá)到33.6幀/秒,0誤碼率0出錯(cuò)幀數(shù),表明STM32通訊接口的實(shí)時(shí)性和準(zhǔn)確性可以達(dá)到伺服控制器的通訊接口要求。
圖10 通訊接口性能測試結(jié)果
4結(jié)束語
設(shè)計(jì)了基于STM32F405的伺服控制器實(shí)驗(yàn)平臺(tái),通過實(shí)驗(yàn)評測接口性能,給出了評測結(jié)果,表明STM32的接口性能可以滿足伺服控制器實(shí)時(shí)性和準(zhǔn)確性的要求。該成果已經(jīng)成功指導(dǎo)沈陽高精數(shù)控伺服部完成了基于STM32的伺服控制器的接口設(shè)計(jì),并具有比較好的性能。
[參考文獻(xiàn)]
[1] 張莉松,胡祐德,徐立新.伺服系統(tǒng)原理與設(shè)計(jì)[M].北京:北京理工大學(xué)出版社,2008.
[2] 張健.基于Modbus通信的四軸運(yùn)動(dòng)控制器設(shè)計(jì)與研究[D].西安:長安大學(xué),2012.
[3] 王洪城,趙波,陳潔,等.基于Simulink的永磁同步電機(jī)矢量控制系統(tǒng)研究[J].物聯(lián)網(wǎng)技術(shù),2012 (2):83-85.
[4] 李芳芳.基于MODBUS協(xié)議的人機(jī)接口通信研究[D].西安:長安大學(xué),2009.
[5] 劉學(xué)俊.基于STM32的永磁直流無刷電機(jī)的控制及其在繞線機(jī)上的應(yīng)用[D].廈門:廈門大學(xué),2014.
[6] 梁軍龍.基于STM32F407的永磁同步電機(jī)伺服控制器設(shè)計(jì)[J].山西電子技術(shù),2014 (1):28-30.
[7] 于兆凱.基于STM32的永磁同步電機(jī)伺服系統(tǒng)的研究[D].杭州:浙江大學(xué),2012.
[8] 劉云,賈洪平,張鵬,等.基于SVPWM的無刷直流電機(jī)矢量控制系統(tǒng)研究[J].機(jī)電工程,2014,31(9):1177-1181.
[9] 張愛民,王云沼,龔松顯.STM32微控制器的可靠串口通信技術(shù)研究[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2013(10):21-23.
[10] Modbus_IDA. Modbus application protocol specification V1.1b3 [EB/OL]. http://www.modbus.org,2012-04-26.
[11] STMicroelectronics. RM0090 Reference manual (STM32F405xx,STM32F407xx,STM32F415xx advanced ARM-based 32-bit MCUs) Rev 14 [EB/OL]. www.st.com,2011-10-20.
(編輯趙蓉)
Research on Interface Technology of Servo Controller Based on STM32
WEI Peng-tao1,2, HE Ping2,3,WANG Zhi-cheng2,3, LIU Hui1,2
(1.University of Chinese Academy of Sciences ,Beijing 100049,China;2.National Engineering Research Center For High-End CNC,Shenyang Institute of Computing Technology of Chinese Academy of Sciences, Shenyang 110168,China)
Abstract:After analyzing the interface performance requests of servo controller, proposed the indicators for evaluating the interface performance, provided the basis for servo-controller’s interface performance evaluation. An experimental platform for servo controller was designed based on the current high-performance and general-purpose microcontrollers STM32F405. The experimental platform’s interface performance was verified experimentally, it can meet the requirements of servo-controller’s real-time and accuracy. Results of the research may have a certain reference value to the servo controller interface technology research based STM32.
Key words:servo controller; STM32; interface technology; real time
文章編號:1001-2265(2016)05-0079-04
DOI:10.13462/j.cnki.mmtamt.2016.05.021
收稿日期:2015-07-06
*基金項(xiàng)目:“高檔數(shù)控機(jī)床與基礎(chǔ)制造裝備”國家科技重大專項(xiàng)、數(shù)控機(jī)床精度保持性技術(shù)研究(2014ZX04014021)
作者簡介:魏朋濤(1990—),男,石家莊人,中國科學(xué)院大學(xué)、中科院沈陽計(jì)算技術(shù)研究所碩士研究生,研究方向?yàn)榍度胧脚c數(shù)控技術(shù),(E-mail)wei_pengtao@126.com。
中圖分類號:TH166;TG659
文獻(xiàn)標(biāo)識碼:A