周 峰, 李智華, 顧 全
(上海大學機電工程與自動化學院,上海 200072)
步進電機是將電脈沖信號轉變為角位移或直線位移的開環執行驅動機構,在不超載的情況下,步進電機的轉速及停止位置僅取決于給定脈沖信號的頻率和個數,其被廣泛運用于CNC、咖啡機、數字探頭、自動儀表、打印機、機器人等方面。在大多數情況下,步進電機都要進行細分控制,以便提高控制精度和控制穩定性。簡便、高效、可靠的控制技術決定了步進電機的應用前景和效果。
Cypress公司在2009推出了基于8051和ARM Cortex-M3內核的 PSoC3和 PSoC5,并同步發布了專門用于PSoC3/5的集成開發環境——PSoC Creator。PSoC內置微處理器和數字模擬外設,是具有真正混合信號處理能力的可編程片上系統。片內內置定時器、PWM、AD、放大器、濾波器等可編程數字、模擬系統,可靈活配置用戶所需的各種模塊,為步進電機的控制提供了一個強有力的平臺。
單極性指步進電機線圈中電流的流動方向是固定的,即線圈中的電流只按一個方向流動。兩相步進電機的單極性驅動電路使用4個晶體管來驅動步進電機的2組相位,電路結構如圖1所示。

圖1 單極驅動電路圖
雙極性則是指步進電機線圈中電流的流動方向不是單向的,即繞組電流有時沿某一方向流動,有時按相反方向流動。兩相步進電機的雙極性驅動電路如圖2所示,它使用8個晶體管來驅動2組相位。

圖2 雙極驅動電路圖
從性能上看,兩種驅動電路在相同電壓UDD的驅動下,單極性驅動電路的輸出力矩比雙極性驅動電路要小。單極性驅動電路每次都借助中間抽頭,導通繞組線圈的一半,而雙極性驅動電路的繞組線圈每次都有電流通過,在相同電壓UDD的驅動下其驅動電流IDD相當,但是單極性驅動電路產生的磁場集中在某個導通的線圈附近,而雙極性驅動電路則在整個電機內產生了一個相對均勻的磁場,其穩定性要優于單極性驅動電路,輸出力矩也較大。故本次設計采用雙極驅動模式。
根據用戶和測試的需要,該步進電機控制器具備以下功能:
(1)細分微步數可調,最大可達256步細分;
(2)步進電機運行轉速可調;
(3)帶負載電流大小可調;
(4)電機轉動方向可調;
(5)靜止時有節能保護,線圈電流減半;
(6)過流保護;
(7)溫度保護。
2.2.1 PSoC 硬件功能的實現
本設計選用CY8C3866AXI芯片來控制一個兩相四步電機。首先對PSoC進行設置,運用cypress公司自己開發的PSoC Creator軟件來搭建硬件電路。PSoC Creator將一個軟件開發IDE與一個圖形設計編輯器結合在一起,構成一個獨特的強有力的軟硬件同步設計環境。它提供了存有幾十個預先配置過的模擬和數字外設庫,可以方便地拖放進電路圖設計界面并組成強大的系統。該工具還可以自動為所有片上信號分配管腳。構建過程會為每一個元件產生一個一致的、容易記住的API系列,這樣軟件開發者即可控制硬件,而無需為基本執行指令操心。該系統中選用了多個內部數模模塊,如:用于實現該設計的2個可編程增益放大器(PGA),2個比較器(CMP),2個PWM,2個8位電壓數模轉化器(VDAC),2個中斷器,2個clock,一個LCD顯示模塊,一個電容觸摸感應模塊(CapSense),一個UART通信接口,2個控制存儲器(Control Reg和Control Start),一個8位計數器(timer)。各器件的功能見表1。

表1 PSoC內部配置功能表
硬件流程:PGA將采樣電阻上得到的采樣電流進行放大,然后與當前數模轉化器輸出的模擬值進行比較,一旦后者小于前者,PWM的kiss端生效,PWM停止工作直到后者大于或等于前者。當PWM管正常工作時,輸出的脈沖信號結合Control Reg表示的象限信息通過LUT1真值表來控制8個MOS管的輪流導通,實現步進電機在某種微步下的運轉。
2.2.2 PSoC 軟件功能的實現
在PSoC設計中,本文采用C語言編寫所有程序。一般的數字和模擬模塊的API程序,當選擇了這個模塊后就會自動在PSoC Creator中生成,設計中主要是對 main,stepper,useinterface函數進行編寫。軟件流程圖見圖3。

圖3 控制軟件流程圖
(1)main函數包含了各種模塊的初始化、參數初始值的設定,以及通過Capsense觸摸盤來控制微步數、電機運行方向、轉速、負載電流大小。
(2)Stepper函數規劃了一個運行周期內步進電機運行的算法,其中包括了一個正弦表的寫入。程序利用讀取正弦表的指針來識別當前電機的運行位置并判斷其處于哪一象限,并在這一象限內進行指針的傳遞,當換相指令來了以后就到下一個象限進行循環。如圖4所示。

圖4 A、B相導通原理圖
(3)Useinterface的功能是通過Capsense的輸入信號來控制LCD上的顯示,其設計等同于一個狀態機,給用戶一個清晰方便的界面。
結合雙極驅動模式以及在PCoS上設置的控制方法,利用Cypress公司的CY27x43板搭建了實際的測試平臺,由此來進行性能測試。
細分通過調節變化正弦表中指針的Sm.MicroStepPace來實現,當一個時鐘周期內指針走了128個Sm.MicroStepPace,則細分就是半步,當一個時鐘周期內指針走了256個 Sm.MicroStep-Pace,就等于沒有細分,于是有
Pace=256/Sm.MicroStepPace在此基礎上分別用示波器抓取Half Step、4 Microsteps、32 Microsteps下某一MOS管腳上的電壓波形,如圖5~圖7所示。

圖5 Half Step下管腳電壓

圖6 4 MicroSteps下管腳電壓

圖7 32 MicroSteps下管腳電腳
從圖5~圖7可看出:本設計不僅可以實現細分數的調節,而且MOS管腳輸出電壓波形正確、穩定,充分體現了在PSoC3基礎下設計的控制器的高性能、低復雜度。
步進電機每個周期的運行都將在正弦表中進行,因此只需要改變這個正弦表的周期(speedFrq值)就能改變電機的運轉速度。另外,因為PWM脈沖的周期是恒定不變的,故在改變微步數值時也能改變轉速,因為微步數少了意味著一個周期內只要更少的脈沖數就可以走完,如表2所示。

表2 轉速計測量的結果
電機的運行是被分在四個象限內進行的,當正弦信號過零點或者到達幅值時,標志位就會發出換相的信號進行換相,正向運行時是從第一象限→第二象限→第三象限→第四象限→第一象限運轉的,當要反向運行時就必須是第四象限→第三象限→第二象限→第一象限→第四象限運轉,測試中用Capsense觸摸板來改變Control Reg控制器的輸出,試驗證明電機進行了反轉,并且轉速和細分微步數沒有變化。
本文介紹了一款步進電機控制器的設計。該設計基于功能強大的PSoC3單片機,應用PSoC Creator進行片內設計,外圍電路簡單可靠,設計過程簡便。設計的步進電機具有微步數可調(從256步到整步),轉速可調,電機轉動方向可調等多種可控功能,并且在樣機測試中輸出了穩定的電壓波形,可見設計的樣機是一個高性能的步進電機控制器。
[1]劉寶廷.步進電動機及其驅動控制系統[M].哈爾濱:哈爾濱工業大學出版社,1997.
[2]Cypress MicroSystems.PSoC mixed signal array preliminary data sheet for silicon revision A[G].2003.
[3]焦振宇.賽普拉斯PSoC及其開發應用[J].微處理機,2004(5):62-64.
[4]董陽澤,蔣山山,薛德賢.PSoC在電機控制器中的應用研究[J].微計算機信息,2006(8):117-119.