趙宵凱, 方益民 , 徐海林
(江南大學(xué) 輕工過程先進(jìn)控制教育部重點實驗室,江蘇 無錫214122)
運動控制系統(tǒng)在工業(yè)控制系統(tǒng)中隨處可見,同時工業(yè)控制對運動控制系統(tǒng)的要求也在不斷提高。我國對運動控制產(chǎn)品質(zhì)量要求不斷提升,傳統(tǒng)的基于PC 平臺的運動控制器逐漸顯示出高能耗、高成本、低可靠性等缺點[1-2]。隨著嵌入式技術(shù)的不斷發(fā)展,ARM 微處理器的成本低、能耗低、可靠性高等特點使得其在工業(yè)控制領(lǐng)域得到了充分應(yīng)用[3-5]。PCL6045BL 是一種基于DSP 的專用運動控制芯片,DSP 強(qiáng)大的數(shù)據(jù)處理能力和較高的運行效率等優(yōu)點,決定PCL6045BL 可以實現(xiàn)高精度、高速度的多軸伺服控制[6]。
為解決精密制造對低成本、可移植性強(qiáng)的通用型多軸數(shù)控系統(tǒng)的迫切需求,文中給出一種基于ARM 微處理器LPC1788 與DSP 專業(yè)運動控制芯片PCL6045BL 構(gòu)成的嵌入式四軸運動控制器。該嵌入式四軸運動控制器具有可以脫離PC 機(jī)運行、通用性強(qiáng)、靈活性較大以及能耗低等優(yōu)點,可以滿足運動控制系統(tǒng)高速、高精度的要求。它可廣泛應(yīng)用于雕刻機(jī)、機(jī)器人、繡花機(jī)以及數(shù)控加工等工業(yè)控制領(lǐng)域。
嵌入式四軸運動控制器主要由硬件部分和軟件部分構(gòu)成。硬件主要包括LPC1788 嵌入式主控板和PCL6045BL 運動控制板兩個部分。LPC1788 嵌入式主控板和PCL6045BL 運動控制板之間通過專用的IDE 通信接口進(jìn)行連接。軟件方面在硬件平臺上移植μC/OS-Ⅱ嵌入式實時操作系統(tǒng)、觸摸屏程序設(shè)計、設(shè)計PCL6045BL 應(yīng)用控制程序。采用上述的軟硬件平臺,嵌入式運動控制器可以達(dá)到開放性能好、精度高的要求。嵌入式四軸運動控制器的結(jié)構(gòu)如圖1 所示。
圖1 嵌入式四軸運動控制器的構(gòu)成Fig.1 Composition of the embedded four axes motion controller
ARM 具有豐富的通信接口、存儲器資源以及人機(jī)接口,具備了系統(tǒng)移植的基本條件[7]。PCL6045BL運動控制芯片速度快,可靠性高,性能好,在運動控制方面有很大的優(yōu)勢[8]。嵌入式實時系統(tǒng)μC/OS-Ⅱ不僅提供一些任務(wù)管理、通信以及時間管理等基本服務(wù),將系統(tǒng)按照優(yōu)先級合理地分成多個任務(wù),并由μC/OS-Ⅱ提供系統(tǒng)服務(wù)進(jìn)行通信,以配合實現(xiàn)系統(tǒng)的控制目的[9-10]。將LPC1788 處理器、PCL6045BL 以及μC/OS-Ⅱ三者的優(yōu)勢應(yīng)用到本嵌入式四軸運動控制器中可以使其具有強(qiáng)大的功能,并縮短開發(fā)時間。
本嵌入式四軸運動控制器以LPC1788 為主控制芯片,在ARM 上移植μC/OS-Ⅱ?qū)崟r操作系統(tǒng)來進(jìn)行人機(jī)界面的顯示、I/O 的管理、任務(wù)間的通信、指令的編譯等工作。PCL6045BL 運動控制模塊主要負(fù)責(zé)位置控制、插補(bǔ)驅(qū)動、速度反饋。用戶通過觸摸屏對運動的參數(shù)及模式進(jìn)行設(shè)置,LPC1788 根據(jù)運動的具體要求,通過與PCL6045BL 之間的IDE 通信接口來控制DSP 運動控制芯片發(fā)出脈沖以達(dá)到使伺服電機(jī)高速運行。
嵌入式四軸運動控制器的硬件設(shè)計主要包括ARM 控制部分和PCL6045BL 運動控制部分。在設(shè)計時,分別對ARM 控制部分和PCL6045BL 運動部分進(jìn)行設(shè)計,最后制板,再進(jìn)行軟硬件聯(lián)合調(diào)試。運動控制系統(tǒng)的硬件如圖2 所示。
圖2 系統(tǒng)硬件框圖Fig.2 System hardware block diagram
ARM 部分以嵌入式處理器LPC1788 為核心,配有豐富的存儲模塊和通用接口,其功能主要有:
配置外部NAND Flash 存儲器、NOR Flash 存儲器以及SDRAM 用來存放系統(tǒng)參數(shù),操作系統(tǒng)代碼以及運動控制系統(tǒng)控制程序。
通過串口、CAN 總線與工控一體機(jī)通信,接受觸摸屏的數(shù)據(jù),并對數(shù)據(jù)進(jìn)行處理,得到控制命令和插補(bǔ)參數(shù)。
根據(jù)系統(tǒng)的運動控制參數(shù)對PCL6045BL 進(jìn)行操作,使其完成控制伺服的功能。
DSP 部分主要以NPM 公司的PCL6045BL 為核心,其主要功能如下:
接受ARM 部分發(fā)來的控制命令和插補(bǔ)參數(shù),同時反饋運動信息給ARM 部分。
PCL6045BL 根據(jù)LPC1788 發(fā)來的運動參數(shù),發(fā)出控制伺服電機(jī)的脈沖信號,控制電機(jī)進(jìn)行定長運動和插補(bǔ)運動。
接收并處理外部的限位、回原點、減速及編碼器信號,增強(qiáng)運動控制系統(tǒng)的控制精度。
通過對IF0 和IF1 端子的設(shè)置,PCL6045BL 可以與8 位的Z80、16 位的8086、16 位的H8 和16 位的68 000 CPU 進(jìn)行過接口。表1 是PCL6045BL 與CPU接口,其中L 表示低電平,H 表示高電平[8]。
表1 PCL6045BL 與4 種CPU 接口時端子設(shè)置Tab.1 PCL6045BL with four CPU interface terminal Settings
PCL6045BL 與LPC1788 的通信是通過讀寫輸入輸出總線上的地址來進(jìn)行控制指令和數(shù)據(jù)傳輸?shù)摹CL6045BL 每個軸的內(nèi)部寄存器地址由A0、A1和A2 地址線輸入決定,其控制地址范圍由輸入端子A3 和A4 進(jìn)行選擇[8]。因此在這種主從結(jié)構(gòu)的設(shè)計中,ARM 與PCL6045BL 的連接如圖3 所示。
圖3 PCL6045BL 與LPC1788 的接口電路Fig.3 PCL6045BL and LPC1788 interface circuit
根據(jù)系統(tǒng)的硬件原理,運用Protel99 進(jìn)行原理圖設(shè)計,并完成PCB 設(shè)計、電路板的焊接,得到嵌入式四軸運動控制器的硬件實物如圖4 所示。
嵌入式四軸運動控制器提供了豐富的外部接口信號,每個軸具有± EL、減速及ORG 的4 個專用輸入信號,以及脈沖輸出、編碼器輸入等信號。
μC/OS-Ⅱ是一種源代碼公開的嵌入式實時系統(tǒng),當(dāng)外部操作和數(shù)據(jù)出現(xiàn)時,能夠接收并快速處理,然后根據(jù)處理結(jié)果盡快進(jìn)行反饋,控制系統(tǒng)對象或者對系統(tǒng)給出反應(yīng),創(chuàng)建有一定優(yōu)先級實時任務(wù),并協(xié)調(diào)其運行的嵌入式操作系統(tǒng)。μC/OS-Ⅱ具有可移植性、可固化、可裁剪的特點[11-12]。μC/OS-Ⅱ?qū)崟r操作系統(tǒng)的源代碼是完全公開的,其包含的文件結(jié)構(gòu)如圖5 所示[13]。
圖4 嵌入式四軸運動控制器實物Fig.4 Embedded four axes motion controller object graph
圖5 系統(tǒng)軟件的整體結(jié)構(gòu)Fig.5 Overall structure of the system software
對μC/OS-Ⅱ的移植主要是對處理器相關(guān)代碼的重寫或修改。移植的主要內(nèi)容包括:在OS_CPU.H 中用#define 設(shè)置一個常量的值、聲明10 個數(shù)據(jù)類型和#define 聲明3 個宏;在OS_CPU_C.c 中用C語言編寫6 個簡單的函數(shù);在OS_CPU_A.asm 中編寫4 個匯編語言函數(shù)。
完成以上代碼的移植,將源程序和操作系統(tǒng)一起編譯,然后將生成的二進(jìn)制執(zhí)行文件下載到LPC1788 上,實時嵌入式系統(tǒng)μC/OS-Ⅱ就可以在ARM LPC1788 處理器上正常運行。
μC/OS-Ⅱ提供基于優(yōu)先級搶占式的實時操作系統(tǒng)內(nèi)核,大致可以分為系統(tǒng)核心(包含任務(wù)調(diào)度)、任務(wù)管理、時間管理、多任務(wù)同步與通信、內(nèi)存管理、CPU 移植等部分。
μC/OS-Ⅱ操作系統(tǒng)支持多任務(wù),每個任務(wù)都具有優(yōu)先級,任務(wù)越重要,賦予的優(yōu)先級應(yīng)越高,系統(tǒng)內(nèi)核總是將CPU 分配給處于就緒態(tài)的優(yōu)先級最高任務(wù)。
根據(jù)實現(xiàn)性優(yōu)先原則劃分任務(wù)的方法,優(yōu)先級大小將系統(tǒng)任務(wù)劃分為PCL6045BL 控制任務(wù)、外部信號控制任務(wù)、伺服單元采集任務(wù)、Modbus 協(xié)議通信任務(wù)以及觸摸屏管理任務(wù)。
與沒有系統(tǒng)的程序一樣,嵌入式μC/OS-Ⅱ?qū)崟r多任務(wù)操作系統(tǒng)也有一個main 主函數(shù),它是所有函數(shù)的運行入口點。在主函數(shù)中主要實現(xiàn)硬件的初始化、操作系統(tǒng)的初始化OSInit()、任務(wù)創(chuàng)建、一些任務(wù)通信方法的創(chuàng)建等操作。系統(tǒng)運行的基本流程如圖6 所示。
圖6 用戶程序流程Fig.6 User program process
在μC/OS-Ⅱ運行任何任務(wù)程序之前,首先要調(diào)用系統(tǒng)初始化函數(shù)OSInit()對操作系統(tǒng)進(jìn)行初始化。主函數(shù)中在用開始多任務(wù)調(diào)度OSStart()函數(shù)之前,用戶必須通過OSTaskCreate()函數(shù)建立至少一個應(yīng)用任務(wù),而且任務(wù)不能在中斷服務(wù)程序中建立,否則應(yīng)用程序會崩潰。在主函數(shù)運行到OSStart()時,系統(tǒng)就會進(jìn)入開始多任務(wù)環(huán)境,μC/OS-Ⅱ會運行處于就緒態(tài)的優(yōu)先級最高的任務(wù)。
PCL6045BL 是通過LPC1788 的總線對寄存器賦值來工作的,把命令寫入運動控制芯片PCL6045BL,用PCL6045BL 來完成運動控制,其工作流程如圖7 所示。當(dāng)寫入啟動指令后,PCL6045BL開始運動。
圖7 PCL6045 工作流程Fig.7 PCL6045 workflow
圓弧運動從(0,0)到(2 000,2 000)的圓弧,如圖8 所示。
圖8 圓弧插補(bǔ)軌跡Fig.8 Trajectory of circular interpolation
選擇圓弧插補(bǔ)順時針模式來實現(xiàn)如上圓弧,此時MOD 設(shè)為64 H。使用該模式時,應(yīng)設(shè)置每個插補(bǔ)軸的運動速度,在PRMD 寄存器中指定是否使用恒定合成速度控制,并在所有插補(bǔ)軸的PRMV 寄存器中指定終點位置,在PRIP 寄存器中輸入中心坐標(biāo)。在順時針插補(bǔ)中,PCL 畫一條以中心坐標(biāo)為中心點,從當(dāng)前坐標(biāo)到結(jié)束點坐標(biāo)的順時針圓弧,其流程如圖9 所示。
圖9 圓弧插補(bǔ)控制流程Fig.9 Circular arc interpolation control flow chart
X 軸和Y 軸的輸出脈沖波形如圖10 所示。CH1為X 軸脈沖波形,CH2 為Y 軸脈沖波形,其脈沖均為低電平時有效。
從X,Y 軸2 軸圓弧插補(bǔ)實驗可以看出,在看到的波形中X 軸分擔(dān)了插補(bǔ)運算的主要任務(wù),2 個軸互相配合完成圓弧插補(bǔ)動作。嵌入式四軸運動控制器可以準(zhǔn)確地實現(xiàn)PCL6045BL 2 軸圓弧插補(bǔ)的功能,驗證了系統(tǒng)方案的正確性。
該運動控制器的硬件結(jié)構(gòu)是基于微處理器LPC1788 和PCL6045BL 運動控制芯片設(shè)計的,它較好地發(fā)揮了ARM 處理器的高性能、低成本和運動控制芯片的高可靠、開發(fā)周期短的優(yōu)點和PCL6045BL強(qiáng)大的運動控制能力;在控制器硬件平臺上移植μC/OS-Ⅱ?qū)崟r操作系統(tǒng)既能使整個軟件系統(tǒng)結(jié)構(gòu)簡潔、層次清晰,又能很好地達(dá)到運動控制實時性要求。圓弧插補(bǔ)實驗驗證了方案的正確性,整個系統(tǒng)可靠、穩(wěn)定且響應(yīng)速度快。
圖10 圓弧插補(bǔ)脈沖輸出拉寬顯示Fig.10 Circular arc interpolation pulse output shows wide
[1]劉建群,陳新度.Qt 環(huán)境下基于PMAC 運動控制器的控制系統(tǒng)開發(fā)與應(yīng)用[J].組合機(jī)床與自動化加工技術(shù),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 運動控制器開放式數(shù)控系統(tǒng)的研究[D].大連:大連交通大學(xué),2012.
[3]馬義德,劉映杰,張新國.嵌入式系統(tǒng)的現(xiàn)狀及發(fā)展前景[J].信息技術(shù),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 嵌入式開發(fā)實例詳解:基于NXP LPC1768[M].北京:北京航空航天大學(xué)出版社,2012.
[6]鄭廣,劉電霆.基于Rabbit6000 和PCL6045BL 的運動控制器設(shè)計[J].軟件導(dǎo)刊,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 運動控制與數(shù)控應(yīng)用[M].北京:清華大學(xué)出版社,2007.
[9]陳瑤,李佳,宋寶華.Cortex-M3 +μC/OS-Ⅱ嵌入式系統(tǒng)開發(fā)入門與應(yīng)用[M].北京:人民郵電出版社,2010.
[10]Jean J Labrosse.Micro C/0S—ⅡThe Real Time Kernel[M].Montreal,Canada:CMP Books,2002.
[11]賈麗.基于μC/OS-Ⅱ的以太網(wǎng)設(shè)備遠(yuǎn)程管理軟件設(shè)計與實現(xiàn)[D].成都:電子科技大學(xué),2010.
[12]李海強(qiáng).基于ARM+μC/OS-Ⅱ的智能變功率開水器控制器的研究與設(shè)計[D].南京:南京理工大學(xué),2013.
[13]李杰.基于μC/OS-Ⅱ的磁電機(jī)焊錫機(jī)器人控制系統(tǒng)設(shè)計與研究[D].重慶:重慶大學(xué),2013.