摘要:本文首先針對電機控制簡要介紹了Cypress最新推出的PSoC4產品的主要特性和兩相HB型
步進電機細分控制原理。然后分析了當前主要的步進電機商用解決方案,詳細闡述了在PSoC4平臺上開發步進電機控制系統的方法,過程和優勢,并給出了實用的工程和實驗結果。
1. 引言
PSoC4為Cypress在2013年推出的可編程片上系統PSoC(Programmable System on Chip)系列的最新產品,采用ARM Cortex-M0作為處理核心。PSoC4完全繼承了PSoC芯片家族本身的高度可編程的靈活性,并融合Cortex M0高性價比的處理器核架構,使得PSoC4系列產品成為一個具有高度可擴展性的處理器平臺,在性價比、功耗等方面優勢顯著。更值得一提的是,PSoC4針對電機控制提供了完整和極具特色的片內資源,工程師在PSoC4上開發電機控制系統時將更加直觀與快捷。
PSoC4產品系列目前推出的是CY8C4100和CY8C4200兩個入門級產品系列。本文即以CY8C4200為例,介紹如何在PSoC4上開發兩相HB型步進電機控制系統。
2. PSoC4架構及片內資源簡介
PSoC 4 是基于ARM Cortex-M0 CPU(處理器)的可編程嵌入式系統控制器家族,為嵌入式應用提供了強大的可編程平臺。它集合了可編程模擬資源、可編程內部互聯、用戶可編程數字邏輯、通用的固定功能外設計以及高性能的ARM Cortex-M0 CPU子系統。
PSoC 4系列包括以下特性:
●高性能Cortex-M0 CPU內核
●固定功能以及可配置的數字模塊
●高度可編程的數字邏輯
●高性能模擬系統
●靈活可編程的內部互連
圖1是PSoC4的系統框圖。限于篇幅,本文將主要概括與電機控制相關的片內資源特性,詳細內容可以參考Cypress網站上的PSoC4的數據手冊。
●高達48MHz,43 DMIPS的32位Cortex-M0 CPU,支持單周期乘法
●多達32 KB Flash及4KB
SRAM內存
●四個獨立的可支持中央對齊的TCPWM,支持互補的可編程死區及同步ADC操作
●兩個低功耗比較器
●兩個電流數模轉換器(IDAC),可以輸出給內部模塊,或通過GPIO輸出到外部成為可定制的用戶電流源。
●兩個支持比較器模式及SAR ADC輸入緩沖功能的運算放大器
●四個可編程數字邏輯模塊(UDB)
圖1: PSoC4芯片系統框圖
PSoC4在開發環境方面與PSoC家族的上一代產品保持一致,仍然為PSoC Creator,延續了將片內資源抽象為模塊化Component的開發方法,控制系統架構清晰具體,簡單快捷。用戶可以更多關注產品的功能開發,而較少的注意芯片的硬件結構細節。PSoC Creator的詳細信息可以在Cypress網站上獲得。
3. 步進電機控制原理及主要商用控制方案分析
① 步進電機控制原理
兩相HB型步進電機是步進電機家族中應用最為廣泛的一種,具有分辨率高,轉矩大和性價比高的優點。其缺點是低速時的振動大和高速時的噪音。采用細分步進驅動是降低振動和噪音的有效手段。
圖2表示兩相HB型步進電機的4細分微步進的各相電流基準波形。各相電流值的峰值相等,相位偏差90°,電機相電流將跟蹤此基準波形,由于電機實際相電流的連續性,其平均曲線將變成正弦波。
圖2:4細分微步進的電流基準波形
② 步進電機主要商用控制方案分析
目前市場上比較成熟的步進電機控制方案大致有兩種,區別主要在產生細分正弦波的方式上,分別為偏硬件和偏軟件的方案。偏硬件的方案由CPLD和DAC產生基準正弦波,偏軟件的方案由MCU及其內部PWM產生基準正弦波。
1)基于CPLD的偏硬件方案分析
圖3為基于CPLD的偏硬件方案控制框圖,CPLD根據雙四拍時序控制雙全橋驅動電路的開通。其內部存儲有基準正弦波的細分值數字表,此細分表有DAC轉換成模擬電壓與電機相電流的采樣值進行比較后控制雙全橋驅動電路,可以使電機相電流準確跟蹤正弦基準值。
圖3:基于CPLD的偏硬件方案控制框圖
2)基于MCU的偏硬件方案分析
圖4為基于MCU的偏軟件方案控制框圖,MCU對電機兩相電流進行實時采樣,進行ADC轉換后與細分正弦波的基準值進行比較,根據比較的結果決定PWM的開通,從而使電機產生細分正弦的相電流。
圖4:基于MCU的偏軟件方案控制框圖
綜合上述兩種方案不難看出,CPLD方案可以產生100K以上的pps(pulse per second),但系統所需器件多,成本較高。MCU方案成本有所降低,但由于ADC采樣帶來的相位滯后和閉環控制算法耗時較長限制了電機的pps,一般在50K以下,如果要繼續提高,需要采用高檔的MCU或DSP,也會增加成本。
4. 基于PSoC4的步進電機控制架構及優勢
PSoC4片內集成有兩個電流數模轉換器 (IDAC),分別為最大7位和8位精度。均取為7為精度,因此可以產生最大為128細分的階梯狀正弦波。圖5表示由IDAC產生的兩路16細分基準正弦波。
圖5:16細分基準正弦波
圖6為基于PSoC4的步進電機控制架構框圖。
圖6:步進電機控制框圖
對電機的兩相電流分別進行采樣,經放大和高頻濾波后與IDAC產生的電流基準由PSoC4的內部比較器 進行比較,當實際相電流超過基準值時,將由PSoC4關閉驅動電機的PWM輸出一個周期,這樣就可以迫使電機的實際相電流跟蹤IDAC產生的電流基準,實現正弦波細分驅動。
對比PSoC4控制架構于前述的商用方案可以發現,由于PSoC4內部集成了IDAC、可編程的CPLD(UDB)和比較器,因此具備CPLD方案的所有性能與優勢,同時其內部的高性能Cortex-M0核又使其可以完成MCU的控制功能,并具有其低成本的特點。因此,基于PSoC4的步進電機控制方案在性價比上有很大的提高。
5. 基于PSoC4 的步進電機控制設計實例
①控制原理圖設計
圖7為PSoC Creator環境下的步進電機控制原理圖,虛線框內的部分即為依據圖4構建的電機相電流細分驅動電路。兩路電流獨立控制,相位相差90。。內部低功耗比較器的同向端接電機向電流經采樣、放大和濾波后的電壓信號;反向端節內部IDAC輸出的細分正弦信號。比較器輸出高電平將關閉TCPWM一個周期,迫使電機相電流跟蹤IDAC的電流基準波形,實現步進電機的細分驅動控制。
圖中的定時器用于設計細分步長,通過在軟件中修改其周期值可以實時改變電機的轉速。圖中的ADC可以讀入模擬的速度輸入信號,作為電機的給定轉速。
圖7:步進電機控制原理圖
②控制系統軟件設計
1)主程序設計
控制主程序首先初始化和配置PSoC4的內部資源,在主循環中檢測用戶的起停命令和速度給定,決定運行或鎖定步進電機。圖8為控制主程序的流程圖。
圖8:主程序流程圖
2)中斷函數設計
本文的細分步進驅動算法主要在設定細分步長的定時器溢出中斷函數中完成。中斷函數處理正弦波1/2周期判斷,繞組驅動區間推進,兩相繞組電流細分基準值更新和細分微步推進等。圖9為中斷函數的流程圖。
圖9: 中斷函數流程圖
③控制系統實驗結果
在PSoC Creator環境編譯步進電機控制工程,連接PSoC4開發板,雙全橋驅動板與兩相HB型步進電機,電機可正常運行。圖8顯示電機運行時的三個關鍵波形。通道2為相電流實際波形,通道3為相電流經采樣放大濾波后的信號波形,通道4為IDAC輸出的相電流基準波形。
由圖可以看出,電機相電流為平滑的正弦波,且能很好的跟蹤細分正弦電流基準。
圖10: 電機運行時的三個關鍵波形
6. 小結
本文主要介紹了如何在PSoC4平臺上開發步進電機控制系統。作為PSoC家族的最新成員,PSoC4保留了PSoC系列豐富的片內資源和高度的靈活性,而且提供了針對電機控制的富有特色的外設。本文開發完成的實例顯示了在PSoC4平臺上開發步進電機控制系統不僅直觀快捷,而且具有優越的性能和較低的成本。用戶可以使用PSoC4設計出優秀的步進電機控制系統和產品。
參考文獻
[1]. PSoC 4: PSoC 4200 Family Datasheet
[2]. PSoC 4 Architecture TRM
[3]. PSoC 4100/4200 Family PSoC 4 Registers TRM (Technical Reference Manual)
[4]. AN56551 - PSoC 3 Stepper Motor Control with Precision Microstepping
[5]. 坂本正文著. 王自強 譯. 步進電機應用技術. 北京: 科學出版社,2010