周 峰, 李智華, 顧 全
(上海大學(xué)機(jī)電工程與自動化學(xué)院,上海 200072)
步進(jìn)電機(jī)是將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蛑本€位移的開環(huán)執(zhí)行驅(qū)動機(jī)構(gòu),在不超載的情況下,步進(jìn)電機(jī)的轉(zhuǎn)速及停止位置僅取決于給定脈沖信號的頻率和個(gè)數(shù),其被廣泛運(yùn)用于CNC、咖啡機(jī)、數(shù)字探頭、自動儀表、打印機(jī)、機(jī)器人等方面。在大多數(shù)情況下,步進(jìn)電機(jī)都要進(jìn)行細(xì)分控制,以便提高控制精度和控制穩(wěn)定性。簡便、高效、可靠的控制技術(shù)決定了步進(jìn)電機(jī)的應(yīng)用前景和效果。
Cypress公司在2009推出了基于8051和ARM Cortex-M3內(nèi)核的 PSoC3和 PSoC5,并同步發(fā)布了專門用于PSoC3/5的集成開發(fā)環(huán)境——PSoC Creator。PSoC內(nèi)置微處理器和數(shù)字模擬外設(shè),是具有真正混合信號處理能力的可編程片上系統(tǒng)。片內(nèi)內(nèi)置定時(shí)器、PWM、AD、放大器、濾波器等可編程數(shù)字、模擬系統(tǒng),可靈活配置用戶所需的各種模塊,為步進(jìn)電機(jī)的控制提供了一個(gè)強(qiáng)有力的平臺。
單極性指步進(jìn)電機(jī)線圈中電流的流動方向是固定的,即線圈中的電流只按一個(gè)方向流動。兩相步進(jìn)電機(jī)的單極性驅(qū)動電路使用4個(gè)晶體管來驅(qū)動步進(jìn)電機(jī)的2組相位,電路結(jié)構(gòu)如圖1所示。
圖1 單極驅(qū)動電路圖
雙極性則是指步進(jìn)電機(jī)線圈中電流的流動方向不是單向的,即繞組電流有時(shí)沿某一方向流動,有時(shí)按相反方向流動。兩相步進(jìn)電機(jī)的雙極性驅(qū)動電路如圖2所示,它使用8個(gè)晶體管來驅(qū)動2組相位。
圖2 雙極驅(qū)動電路圖
從性能上看,兩種驅(qū)動電路在相同電壓UDD的驅(qū)動下,單極性驅(qū)動電路的輸出力矩比雙極性驅(qū)動電路要小。單極性驅(qū)動電路每次都借助中間抽頭,導(dǎo)通繞組線圈的一半,而雙極性驅(qū)動電路的繞組線圈每次都有電流通過,在相同電壓UDD的驅(qū)動下其驅(qū)動電流IDD相當(dāng),但是單極性驅(qū)動電路產(chǎn)生的磁場集中在某個(gè)導(dǎo)通的線圈附近,而雙極性驅(qū)動電路則在整個(gè)電機(jī)內(nèi)產(chǎn)生了一個(gè)相對均勻的磁場,其穩(wěn)定性要優(yōu)于單極性驅(qū)動電路,輸出力矩也較大。故本次設(shè)計(jì)采用雙極驅(qū)動模式。
根據(jù)用戶和測試的需要,該步進(jìn)電機(jī)控制器具備以下功能:
(1)細(xì)分微步數(shù)可調(diào),最大可達(dá)256步細(xì)分;
(2)步進(jìn)電機(jī)運(yùn)行轉(zhuǎn)速可調(diào);
(3)帶負(fù)載電流大小可調(diào);
(4)電機(jī)轉(zhuǎn)動方向可調(diào);
(5)靜止時(shí)有節(jié)能保護(hù),線圈電流減半;
(6)過流保護(hù);
(7)溫度保護(hù)。
2.2.1 PSoC 硬件功能的實(shí)現(xiàn)
本設(shè)計(jì)選用CY8C3866AXI芯片來控制一個(gè)兩相四步電機(jī)。首先對PSoC進(jìn)行設(shè)置,運(yùn)用cypress公司自己開發(fā)的PSoC Creator軟件來搭建硬件電路。PSoC Creator將一個(gè)軟件開發(fā)IDE與一個(gè)圖形設(shè)計(jì)編輯器結(jié)合在一起,構(gòu)成一個(gè)獨(dú)特的強(qiáng)有力的軟硬件同步設(shè)計(jì)環(huán)境。它提供了存有幾十個(gè)預(yù)先配置過的模擬和數(shù)字外設(shè)庫,可以方便地拖放進(jìn)電路圖設(shè)計(jì)界面并組成強(qiáng)大的系統(tǒng)。該工具還可以自動為所有片上信號分配管腳。構(gòu)建過程會為每一個(gè)元件產(chǎn)生一個(gè)一致的、容易記住的API系列,這樣軟件開發(fā)者即可控制硬件,而無需為基本執(zhí)行指令操心。該系統(tǒng)中選用了多個(gè)內(nèi)部數(shù)模模塊,如:用于實(shí)現(xiàn)該設(shè)計(jì)的2個(gè)可編程增益放大器(PGA),2個(gè)比較器(CMP),2個(gè)PWM,2個(gè)8位電壓數(shù)模轉(zhuǎn)化器(VDAC),2個(gè)中斷器,2個(gè)clock,一個(gè)LCD顯示模塊,一個(gè)電容觸摸感應(yīng)模塊(CapSense),一個(gè)UART通信接口,2個(gè)控制存儲器(Control Reg和Control Start),一個(gè)8位計(jì)數(shù)器(timer)。各器件的功能見表1。
表1 PSoC內(nèi)部配置功能表
硬件流程:PGA將采樣電阻上得到的采樣電流進(jìn)行放大,然后與當(dāng)前數(shù)模轉(zhuǎn)化器輸出的模擬值進(jìn)行比較,一旦后者小于前者,PWM的kiss端生效,PWM停止工作直到后者大于或等于前者。當(dāng)PWM管正常工作時(shí),輸出的脈沖信號結(jié)合Control Reg表示的象限信息通過LUT1真值表來控制8個(gè)MOS管的輪流導(dǎo)通,實(shí)現(xiàn)步進(jìn)電機(jī)在某種微步下的運(yùn)轉(zhuǎn)。
2.2.2 PSoC 軟件功能的實(shí)現(xiàn)
在PSoC設(shè)計(jì)中,本文采用C語言編寫所有程序。一般的數(shù)字和模擬模塊的API程序,當(dāng)選擇了這個(gè)模塊后就會自動在PSoC Creator中生成,設(shè)計(jì)中主要是對 main,stepper,useinterface函數(shù)進(jìn)行編寫。軟件流程圖見圖3。
圖3 控制軟件流程圖
(1)main函數(shù)包含了各種模塊的初始化、參數(shù)初始值的設(shè)定,以及通過Capsense觸摸盤來控制微步數(shù)、電機(jī)運(yùn)行方向、轉(zhuǎn)速、負(fù)載電流大小。
(2)Stepper函數(shù)規(guī)劃了一個(gè)運(yùn)行周期內(nèi)步進(jìn)電機(jī)運(yùn)行的算法,其中包括了一個(gè)正弦表的寫入。程序利用讀取正弦表的指針來識別當(dāng)前電機(jī)的運(yùn)行位置并判斷其處于哪一象限,并在這一象限內(nèi)進(jìn)行指針的傳遞,當(dāng)換相指令來了以后就到下一個(gè)象限進(jìn)行循環(huán)。如圖4所示。
圖4 A、B相導(dǎo)通原理圖
(3)Useinterface的功能是通過Capsense的輸入信號來控制LCD上的顯示,其設(shè)計(jì)等同于一個(gè)狀態(tài)機(jī),給用戶一個(gè)清晰方便的界面。
結(jié)合雙極驅(qū)動模式以及在PCoS上設(shè)置的控制方法,利用Cypress公司的CY27x43板搭建了實(shí)際的測試平臺,由此來進(jìn)行性能測試。
細(xì)分通過調(diào)節(jié)變化正弦表中指針的Sm.MicroStepPace來實(shí)現(xiàn),當(dāng)一個(gè)時(shí)鐘周期內(nèi)指針走了128個(gè)Sm.MicroStepPace,則細(xì)分就是半步,當(dāng)一個(gè)時(shí)鐘周期內(nèi)指針走了256個(gè) Sm.MicroStep-Pace,就等于沒有細(xì)分,于是有
Pace=256/Sm.MicroStepPace在此基礎(chǔ)上分別用示波器抓取Half Step、4 Microsteps、32 Microsteps下某一MOS管腳上的電壓波形,如圖5~圖7所示。
圖5 Half Step下管腳電壓
圖6 4 MicroSteps下管腳電壓
圖7 32 MicroSteps下管腳電腳
從圖5~圖7可看出:本設(shè)計(jì)不僅可以實(shí)現(xiàn)細(xì)分?jǐn)?shù)的調(diào)節(jié),而且MOS管腳輸出電壓波形正確、穩(wěn)定,充分體現(xiàn)了在PSoC3基礎(chǔ)下設(shè)計(jì)的控制器的高性能、低復(fù)雜度。
步進(jìn)電機(jī)每個(gè)周期的運(yùn)行都將在正弦表中進(jìn)行,因此只需要改變這個(gè)正弦表的周期(speedFrq值)就能改變電機(jī)的運(yùn)轉(zhuǎn)速度。另外,因?yàn)镻WM脈沖的周期是恒定不變的,故在改變微步數(shù)值時(shí)也能改變轉(zhuǎn)速,因?yàn)槲⒉綌?shù)少了意味著一個(gè)周期內(nèi)只要更少的脈沖數(shù)就可以走完,如表2所示。
表2 轉(zhuǎn)速計(jì)測量的結(jié)果
電機(jī)的運(yùn)行是被分在四個(gè)象限內(nèi)進(jìn)行的,當(dāng)正弦信號過零點(diǎn)或者到達(dá)幅值時(shí),標(biāo)志位就會發(fā)出換相的信號進(jìn)行換相,正向運(yùn)行時(shí)是從第一象限→第二象限→第三象限→第四象限→第一象限運(yùn)轉(zhuǎn)的,當(dāng)要反向運(yùn)行時(shí)就必須是第四象限→第三象限→第二象限→第一象限→第四象限運(yùn)轉(zhuǎn),測試中用Capsense觸摸板來改變Control Reg控制器的輸出,試驗(yàn)證明電機(jī)進(jìn)行了反轉(zhuǎn),并且轉(zhuǎn)速和細(xì)分微步數(shù)沒有變化。
本文介紹了一款步進(jìn)電機(jī)控制器的設(shè)計(jì)。該設(shè)計(jì)基于功能強(qiáng)大的PSoC3單片機(jī),應(yīng)用PSoC Creator進(jìn)行片內(nèi)設(shè)計(jì),外圍電路簡單可靠,設(shè)計(jì)過程簡便。設(shè)計(jì)的步進(jìn)電機(jī)具有微步數(shù)可調(diào)(從256步到整步),轉(zhuǎn)速可調(diào),電機(jī)轉(zhuǎn)動方向可調(diào)等多種可控功能,并且在樣機(jī)測試中輸出了穩(wěn)定的電壓波形,可見設(shè)計(jì)的樣機(jī)是一個(gè)高性能的步進(jìn)電機(jī)控制器。
[1]劉寶廷.步進(jìn)電動機(jī)及其驅(qū)動控制系統(tǒng)[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1997.
[2]Cypress MicroSystems.PSoC mixed signal array preliminary data sheet for silicon revision A[G].2003.
[3]焦振宇.賽普拉斯PSoC及其開發(fā)應(yīng)用[J].微處理機(jī),2004(5):62-64.
[4]董陽澤,蔣山山,薛德賢.PSoC在電機(jī)控制器中的應(yīng)用研究[J].微計(jì)算機(jī)信息,2006(8):117-119.