趙宵凱, 方益民 , 徐海林
(江南大學 輕工過程先進控制教育部重點實驗室,江蘇 無錫214122)
運動控制系統在工業控制系統中隨處可見,同時工業控制對運動控制系統的要求也在不斷提高。我國對運動控制產品質量要求不斷提升,傳統的基于PC 平臺的運動控制器逐漸顯示出高能耗、高成本、低可靠性等缺點[1-2]。隨著嵌入式技術的不斷發展,ARM 微處理器的成本低、能耗低、可靠性高等特點使得其在工業控制領域得到了充分應用[3-5]。PCL6045BL 是一種基于DSP 的專用運動控制芯片,DSP 強大的數據處理能力和較高的運行效率等優點,決定PCL6045BL 可以實現高精度、高速度的多軸伺服控制[6]。
為解決精密制造對低成本、可移植性強的通用型多軸數控系統的迫切需求,文中給出一種基于ARM 微處理器LPC1788 與DSP 專業運動控制芯片PCL6045BL 構成的嵌入式四軸運動控制器。該嵌入式四軸運動控制器具有可以脫離PC 機運行、通用性強、靈活性較大以及能耗低等優點,可以滿足運動控制系統高速、高精度的要求。它可廣泛應用于雕刻機、機器人、繡花機以及數控加工等工業控制領域。
嵌入式四軸運動控制器主要由硬件部分和軟件部分構成。硬件主要包括LPC1788 嵌入式主控板和PCL6045BL 運動控制板兩個部分。LPC1788 嵌入式主控板和PCL6045BL 運動控制板之間通過專用的IDE 通信接口進行連接。軟件方面在硬件平臺上移植μC/OS-Ⅱ嵌入式實時操作系統、觸摸屏程序設計、設計PCL6045BL 應用控制程序。采用上述的軟硬件平臺,嵌入式運動控制器可以達到開放性能好、精度高的要求。嵌入式四軸運動控制器的結構如圖1 所示。

圖1 嵌入式四軸運動控制器的構成Fig.1 Composition of the embedded four axes motion controller
ARM 具有豐富的通信接口、存儲器資源以及人機接口,具備了系統移植的基本條件[7]。PCL6045BL運動控制芯片速度快,可靠性高,性能好,在運動控制方面有很大的優勢[8]。嵌入式實時系統μC/OS-Ⅱ不僅提供一些任務管理、通信以及時間管理等基本服務,將系統按照優先級合理地分成多個任務,并由μC/OS-Ⅱ提供系統服務進行通信,以配合實現系統的控制目的[9-10]。將LPC1788 處理器、PCL6045BL 以及μC/OS-Ⅱ三者的優勢應用到本嵌入式四軸運動控制器中可以使其具有強大的功能,并縮短開發時間。
本嵌入式四軸運動控制器以LPC1788 為主控制芯片,在ARM 上移植μC/OS-Ⅱ實時操作系統來進行人機界面的顯示、I/O 的管理、任務間的通信、指令的編譯等工作。PCL6045BL 運動控制模塊主要負責位置控制、插補驅動、速度反饋。用戶通過觸摸屏對運動的參數及模式進行設置,LPC1788 根據運動的具體要求,通過與PCL6045BL 之間的IDE 通信接口來控制DSP 運動控制芯片發出脈沖以達到使伺服電機高速運行。
嵌入式四軸運動控制器的硬件設計主要包括ARM 控制部分和PCL6045BL 運動控制部分。在設計時,分別對ARM 控制部分和PCL6045BL 運動部分進行設計,最后制板,再進行軟硬件聯合調試。運動控制系統的硬件如圖2 所示。

圖2 系統硬件框圖Fig.2 System hardware block diagram
ARM 部分以嵌入式處理器LPC1788 為核心,配有豐富的存儲模塊和通用接口,其功能主要有:
配置外部NAND Flash 存儲器、NOR Flash 存儲器以及SDRAM 用來存放系統參數,操作系統代碼以及運動控制系統控制程序。
通過串口、CAN 總線與工控一體機通信,接受觸摸屏的數據,并對數據進行處理,得到控制命令和插補參數。
根據系統的運動控制參數對PCL6045BL 進行操作,使其完成控制伺服的功能。
DSP 部分主要以NPM 公司的PCL6045BL 為核心,其主要功能如下:
接受ARM 部分發來的控制命令和插補參數,同時反饋運動信息給ARM 部分。
PCL6045BL 根據LPC1788 發來的運動參數,發出控制伺服電機的脈沖信號,控制電機進行定長運動和插補運動。
接收并處理外部的限位、回原點、減速及編碼器信號,增強運動控制系統的控制精度。
通過對IF0 和IF1 端子的設置,PCL6045BL 可以與8 位的Z80、16 位的8086、16 位的H8 和16 位的68 000 CPU 進行過接口。表1 是PCL6045BL 與CPU接口,其中L 表示低電平,H 表示高電平[8]。

表1 PCL6045BL 與4 種CPU 接口時端子設置Tab.1 PCL6045BL with four CPU interface terminal Settings
PCL6045BL 與LPC1788 的通信是通過讀寫輸入輸出總線上的地址來進行控制指令和數據傳輸的。PCL6045BL 每個軸的內部寄存器地址由A0、A1和A2 地址線輸入決定,其控制地址范圍由輸入端子A3 和A4 進行選擇[8]。因此在這種主從結構的設計中,ARM 與PCL6045BL 的連接如圖3 所示。

圖3 PCL6045BL 與LPC1788 的接口電路Fig.3 PCL6045BL and LPC1788 interface circuit
根據系統的硬件原理,運用Protel99 進行原理圖設計,并完成PCB 設計、電路板的焊接,得到嵌入式四軸運動控制器的硬件實物如圖4 所示。
嵌入式四軸運動控制器提供了豐富的外部接口信號,每個軸具有± EL、減速及ORG 的4 個專用輸入信號,以及脈沖輸出、編碼器輸入等信號。
μC/OS-Ⅱ是一種源代碼公開的嵌入式實時系統,當外部操作和數據出現時,能夠接收并快速處理,然后根據處理結果盡快進行反饋,控制系統對象或者對系統給出反應,創建有一定優先級實時任務,并協調其運行的嵌入式操作系統。μC/OS-Ⅱ具有可移植性、可固化、可裁剪的特點[11-12]。μC/OS-Ⅱ實時操作系統的源代碼是完全公開的,其包含的文件結構如圖5 所示[13]。

圖4 嵌入式四軸運動控制器實物Fig.4 Embedded four axes motion controller object graph

圖5 系統軟件的整體結構Fig.5 Overall structure of the system software
對μC/OS-Ⅱ的移植主要是對處理器相關代碼的重寫或修改。移植的主要內容包括:在OS_CPU.H 中用#define 設置一個常量的值、聲明10 個數據類型和#define 聲明3 個宏;在OS_CPU_C.c 中用C語言編寫6 個簡單的函數;在OS_CPU_A.asm 中編寫4 個匯編語言函數。
完成以上代碼的移植,將源程序和操作系統一起編譯,然后將生成的二進制執行文件下載到LPC1788 上,實時嵌入式系統μC/OS-Ⅱ就可以在ARM LPC1788 處理器上正常運行。
μC/OS-Ⅱ提供基于優先級搶占式的實時操作系統內核,大致可以分為系統核心(包含任務調度)、任務管理、時間管理、多任務同步與通信、內存管理、CPU 移植等部分。
μC/OS-Ⅱ操作系統支持多任務,每個任務都具有優先級,任務越重要,賦予的優先級應越高,系統內核總是將CPU 分配給處于就緒態的優先級最高任務。
根據實現性優先原則劃分任務的方法,優先級大小將系統任務劃分為PCL6045BL 控制任務、外部信號控制任務、伺服單元采集任務、Modbus 協議通信任務以及觸摸屏管理任務。
與沒有系統的程序一樣,嵌入式μC/OS-Ⅱ實時多任務操作系統也有一個main 主函數,它是所有函數的運行入口點。在主函數中主要實現硬件的初始化、操作系統的初始化OSInit()、任務創建、一些任務通信方法的創建等操作。系統運行的基本流程如圖6 所示。

圖6 用戶程序流程Fig.6 User program process
在μC/OS-Ⅱ運行任何任務程序之前,首先要調用系統初始化函數OSInit()對操作系統進行初始化。主函數中在用開始多任務調度OSStart()函數之前,用戶必須通過OSTaskCreate()函數建立至少一個應用任務,而且任務不能在中斷服務程序中建立,否則應用程序會崩潰。在主函數運行到OSStart()時,系統就會進入開始多任務環境,μC/OS-Ⅱ會運行處于就緒態的優先級最高的任務。
PCL6045BL 是通過LPC1788 的總線對寄存器賦值來工作的,把命令寫入運動控制芯片PCL6045BL,用PCL6045BL 來完成運動控制,其工作流程如圖7 所示。當寫入啟動指令后,PCL6045BL開始運動。

圖7 PCL6045 工作流程Fig.7 PCL6045 workflow
圓弧運動從(0,0)到(2 000,2 000)的圓弧,如圖8 所示。

圖8 圓弧插補軌跡Fig.8 Trajectory of circular interpolation
選擇圓弧插補順時針模式來實現如上圓弧,此時MOD 設為64 H。使用該模式時,應設置每個插補軸的運動速度,在PRMD 寄存器中指定是否使用恒定合成速度控制,并在所有插補軸的PRMV 寄存器中指定終點位置,在PRIP 寄存器中輸入中心坐標。在順時針插補中,PCL 畫一條以中心坐標為中心點,從當前坐標到結束點坐標的順時針圓弧,其流程如圖9 所示。

圖9 圓弧插補控制流程Fig.9 Circular arc interpolation control flow chart
X 軸和Y 軸的輸出脈沖波形如圖10 所示。CH1為X 軸脈沖波形,CH2 為Y 軸脈沖波形,其脈沖均為低電平時有效。
從X,Y 軸2 軸圓弧插補實驗可以看出,在看到的波形中X 軸分擔了插補運算的主要任務,2 個軸互相配合完成圓弧插補動作。嵌入式四軸運動控制器可以準確地實現PCL6045BL 2 軸圓弧插補的功能,驗證了系統方案的正確性。
該運動控制器的硬件結構是基于微處理器LPC1788 和PCL6045BL 運動控制芯片設計的,它較好地發揮了ARM 處理器的高性能、低成本和運動控制芯片的高可靠、開發周期短的優點和PCL6045BL強大的運動控制能力;在控制器硬件平臺上移植μC/OS-Ⅱ實時操作系統既能使整個軟件系統結構簡潔、層次清晰,又能很好地達到運動控制實時性要求。圓弧插補實驗驗證了方案的正確性,整個系統可靠、穩定且響應速度快。

圖10 圓弧插補脈沖輸出拉寬顯示Fig.10 Circular arc interpolation pulse output shows wide
[1]劉建群,陳新度.Qt 環境下基于PMAC 運動控制器的控制系統開發與應用[J].組合機床與自動化加工技術,2014(1):114-120.
LIU Jianqun,CHEN Xindun.Qt environment with PMAC motion controller based control system development and application of[J].Journal of Combination Machine Tools and Automatic Processing Technology,2014(1):114-120.(in Chinese)
[2]彭全海.基于GT 運動控制器開放式數控系統的研究[D].大連:大連交通大學,2012.
[3]馬義德,劉映杰,張新國.嵌入式系統的現狀及發展前景[J].信息技術,2001(12):57-59.
MA Yide,LIU Yingjie,ZHANG Xinguo. Current situation and development prospect of the embedded system[J]. Journal of Information Technology,2001(12):57-59.(in Chinese)
[4]Jack Ganssle.Changes in embedded design mathodology[J].Embedded System Programming,1999,9:35-40.
[5]孫安青.ARM Cortex-M3 嵌入式開發實例詳解:基于NXP LPC1768[M].北京:北京航空航天大學出版社,2012.
[6]鄭廣,劉電霆.基于Rabbit6000 和PCL6045BL 的運動控制器設計[J].軟件導刊,2012,11(4):100-102.
ZHENG Guang,LIU Dianting.Motion controller design based on Rabbit6000 and PCL6045BL[J].Journal of Software Tribune,2012,11(4):100-102.(in Chinese)
[7]CHEN Y D,WEI H X,WANG T M. Embedded control system for industrial robots[C]//2010 International Conference on Computer,Mechatronics,Control and Electronic Engineering.Shanghai:Shanghai Jiaotong University,2010:122-125.
[8]葉佩青,張輝.PCL6045B 運動控制與數控應用[M].北京:清華大學出版社,2007.
[9]陳瑤,李佳,宋寶華.Cortex-M3 +μC/OS-Ⅱ嵌入式系統開發入門與應用[M].北京:人民郵電出版社,2010.
[10]Jean J Labrosse.Micro C/0S—ⅡThe Real Time Kernel[M].Montreal,Canada:CMP Books,2002.
[11]賈麗.基于μC/OS-Ⅱ的以太網設備遠程管理軟件設計與實現[D].成都:電子科技大學,2010.
[12]李海強.基于ARM+μC/OS-Ⅱ的智能變功率開水器控制器的研究與設計[D].南京:南京理工大學,2013.
[13]李杰.基于μC/OS-Ⅱ的磁電機焊錫機器人控制系統設計與研究[D].重慶:重慶大學,2013.