摘要:提出了ARM微控器LPC2214與4軸3聯(lián)動(dòng)DSP運(yùn)動(dòng)控制芯片MCX314A相結(jié)合的通用運(yùn)動(dòng)控制器方案。闡述了該運(yùn)動(dòng)控制器在X、Y兩軸數(shù)控伺服工作臺(tái)中的應(yīng)用原理。該控制器具有高速度、高精度、高可靠性、成本低等特點(diǎn),它在數(shù)控機(jī)床的控制中有重要的應(yīng)用價(jià)值。
運(yùn)動(dòng)控制系統(tǒng)在工業(yè),尤其是現(xiàn)代制造加工業(yè)中應(yīng)用非常普遍??刂剖菫榱藢?shí)現(xiàn)預(yù)期運(yùn)動(dòng)軌跡和速度、加速度、力等運(yùn)動(dòng)參數(shù)而采取的必要手段。一般地,運(yùn)動(dòng)控制系統(tǒng)主要由運(yùn)動(dòng)控制器、驅(qū)動(dòng)器、執(zhí)行器、傳動(dòng)部件和被控運(yùn)動(dòng)部件構(gòu)成。ARM處理器具有體積小、低功耗、低成本、高性能等特點(diǎn),是業(yè)界領(lǐng)先的嵌入式32位RISC微處理器;MCX314A是高集成度的專用運(yùn)動(dòng)控制DSP芯片,能實(shí)現(xiàn)4軸3聯(lián)動(dòng)的位置、速度、加速度控制和直線、圓弧的連續(xù)插補(bǔ)和位置環(huán)閉環(huán)控制。兩者有機(jī)結(jié)合,可方便地構(gòu)成低成本、高性能的運(yùn)動(dòng)控制器。
1 ARM微控器LPC2214
LPC2214是Philips公司推出的基于支持實(shí)時(shí)仿真和跟蹤的16/32位ARM7TDMI-S工業(yè)級(jí)ARM微控制器,片內(nèi)帶有256kB高速FlashROM和16kB靜態(tài)RAM,且具有外部存儲(chǔ)器接口。通過片內(nèi)PLL可實(shí)現(xiàn)最大為60MHz的CPU操作頻率。LPC2214采用144腳LQFP封裝,片內(nèi)有2個(gè)32位定時(shí)器、中斷控制器以及多種串行接口等功能模塊,這使它特別適用于工業(yè)控制應(yīng)用。其內(nèi)部結(jié)構(gòu)如圖1所示。
圖1 LPC2214內(nèi)部結(jié)構(gòu)方框圖
2 MCX314A的主要功能
MCX314A是日本NOVA公司推出的4軸運(yùn)動(dòng)控制專用DSP集成電路,能用于步進(jìn)電機(jī)或脈沖型伺服驅(qū)動(dòng)的位置、速度和插補(bǔ)控制,可用于工業(yè)自動(dòng)化設(shè)備、工業(yè)機(jī)器人、測(cè)量設(shè)備、辦公設(shè)備和家用電器等。其可以進(jìn)行各軸(X軸、Y軸、Z軸、U軸)獨(dú)立的定位控制、速度控制,也可在4軸中選擇任意的2軸作圓弧插補(bǔ)、2/3軸作直線插補(bǔ),插補(bǔ)精度是±0.5LSB。其還有伺服電機(jī)反饋輸入(編碼器信號(hào)、在位信號(hào)和報(bào)警信號(hào))、加/減速驅(qū)動(dòng)、軟硬件限位、自動(dòng)原點(diǎn)搜索、同步動(dòng)作、輸入信號(hào)濾波等功能。
MCX314A能與8/16位數(shù)據(jù)總線接口,其所有的功能都是通過讀寫內(nèi)部命令寄存器、數(shù)據(jù)寄存器、狀態(tài)寄存器和模式寄存器而實(shí)現(xiàn)。默認(rèn)輸入時(shí)鐘為16MHz,輸出脈沖范圍為32位,速度最高可達(dá)每秒4百萬個(gè)脈沖。各軸都有32位的邏輯位置計(jì)數(shù)器(對(duì)輸出的驅(qū)動(dòng)脈沖計(jì)數(shù))、實(shí)際位置計(jì)數(shù)器(對(duì)外部編碼器計(jì)數(shù))和比較寄存器,實(shí)現(xiàn)位置的閉環(huán)控制。各軸都有4個(gè)通用輸入和8個(gè)通用輸出。
3 運(yùn)動(dòng)控制器的基本構(gòu)成
3.1 硬件系統(tǒng)
ARM微控制器LPC2214通過16位數(shù)據(jù)總線與MCX314A相連,如圖2所示。兩者互連后,且將MCX314A的EXPLSN引腳、H16L8引腳、TESTN引腳接+5V電壓,RESETN引腳連接低電平復(fù)位電路,CLK引腳接16M時(shí)鐘源,VDD引腳接上+5V電源,MCX314就具備了最基本的運(yùn)行條件。LPC2214的I/O運(yùn)行電壓是3.3V的(但能承受5V電平),而MCX314A運(yùn)行電壓是+5V,兩者互連時(shí),可串人1kΩ電阻。應(yīng)用實(shí)踐表明LPC2214和MCX314A直接相連也是可行的。圖2中虛線框內(nèi)表示4軸中的某一軸的接口。XPP/XPM在CW/CCW模式時(shí)輸出正/反驅(qū)動(dòng)脈沖,在脈沖/方向模式時(shí)輸出驅(qū)動(dòng)脈沖和方向信號(hào)。ECA/ECB/IN0接收編碼器的反饋輸入。AM26LS31是4路差動(dòng)線驅(qū)動(dòng)器,AM26LS32是4路差動(dòng)線接收器。
為了能與上位系統(tǒng)(人機(jī)交互界面HMI和CAD/CAM系統(tǒng)等)通信,控制器設(shè)計(jì)有以太網(wǎng)通信和RS232通信接口。RTL8019AS是以太網(wǎng)控制器,SP3232E是3.3V電平與RS232電平的轉(zhuǎn)換IC。LPC2214外部Flash存儲(chǔ)器用于存儲(chǔ)需要固化的運(yùn)動(dòng)控制參數(shù)(如軌跡坐標(biāo)、運(yùn)動(dòng)速度)。
圖2 控制器構(gòu)成及接口原理框圖
3.2 軟件系統(tǒng)
LPC2214通過16位EMC外部存儲(chǔ)器總線接口讀寫MCX314A內(nèi)部的寄存器實(shí)現(xiàn)對(duì)MCX314A的控制。MCX314A可“寫”的寄存器有:命令寄存器WR0,模式寄存器WRl~3,輸出寄存器WR4,插補(bǔ)模式寄存器WR5,數(shù)據(jù)寄存器WR6~7;可“讀”的寄存器有:主狀態(tài)寄存器RR0,狀態(tài)寄存器RR1~5,數(shù)據(jù)寄存器RR6~7。
ARM處理器將I/O端口和存儲(chǔ)器統(tǒng)一編址,可將MCX314A接于LPC2214的Bank2存儲(chǔ)器組(地址范圍是0x8200,0000-0x82ff,ffff),即將CS2作為MCX314A的片選信號(hào),那么WR0和RR0的地址是0x8200,0000,記為Addr。依此類推,WRl和RRl的地址是Addr+2,WR7和RR7的地址是Addr+Oxoe。為了使LPC2214提供16位的總線接口,需要在其啟動(dòng)代碼中設(shè)置PINSEL2=0xofSl4914,BCFG2=0x-1000ffef,。
采用ARM開發(fā)套件ADSl.2(CodeWarrior for ARM Developer Suite)進(jìn)行軟件開發(fā)。啟動(dòng)代碼的編寫是ARM微控器軟件開發(fā)的重要任務(wù),其包括以下部分:設(shè)置中斷/異常向量表,初始化堆棧指針寄存器、設(shè)置堆棧大小、地址重映射、設(shè)置系統(tǒng)時(shí)鐘、引導(dǎo)進(jìn)入C語言程序等。NOVA electronics Inc.MCX314 As User‘s Manual Ver.1.2文中提供了基于C語言的示例程序,該程序作適當(dāng)修改后,可方便地移植到ADSl.2開發(fā)環(huán)境中。上位系統(tǒng)通過通信接口將運(yùn)動(dòng)參數(shù)下載到運(yùn)動(dòng)控制器的存儲(chǔ)器中,LPC2214從存儲(chǔ)器中讀取運(yùn)動(dòng)參數(shù),完成對(duì)MCX314A的控制,程序流程如圖3。
圖3 MCX314A控制程序流程圖
4 在XY兩軸數(shù)控伺服工作臺(tái)中的應(yīng)用
XY兩軸工作臺(tái)是采用滾珠絲桿和滾動(dòng)導(dǎo)軌傳動(dòng)的十字工作臺(tái),其控制系統(tǒng)拓?fù)鋱D如圖4。為了簡(jiǎn)化通用控制器的結(jié)構(gòu)且使其適應(yīng)不同應(yīng)用場(chǎng)合,將其與對(duì)象緊密相關(guān)的部分(如信號(hào)驅(qū)動(dòng)放大和光電隔離)另設(shè)信號(hào)轉(zhuǎn)接板。圖中電機(jī)為松下交流伺服電機(jī)(型號(hào)MSMA022A1C,功率200W,額定轉(zhuǎn)速3000r/min,額定轉(zhuǎn)矩0.64N•m),EC為11線2500P/r增量編碼器,電機(jī)驅(qū)動(dòng)器采用與電機(jī)配套的松下伺服驅(qū)動(dòng)器MSDA023A1A。將伺服驅(qū)動(dòng)器的“控制模式”設(shè)置為“位置控制”,把指令脈沖設(shè)置為“CW/CCW”方式,整定各環(huán)路增益。
圖4 數(shù)控平臺(tái)控制系統(tǒng)結(jié)構(gòu)拓?fù)鋱D
上位PC系統(tǒng)通過通信接口把數(shù)控代碼程序下載到運(yùn)動(dòng)控制器中,LPC2214對(duì)數(shù)控程序進(jìn)行解釋,轉(zhuǎn)換成MCX314A相應(yīng)的命令。MCX314A執(zhí)行命令,產(chǎn)生控制脈沖給伺服驅(qū)動(dòng)器,驅(qū)動(dòng)機(jī)械部件完成期望的運(yùn)動(dòng)。運(yùn)動(dòng)控制器可以脫離PC系統(tǒng)獨(dú)立運(yùn)行。如果LPC2214把運(yùn)動(dòng)狀態(tài)(含編碼器的位置反饋信號(hào))反饋給上位PC系統(tǒng),也可方便地實(shí)現(xiàn)PC對(duì)數(shù)控過程的監(jiān)控。
5 結(jié)束語
以ARM微控器和專用芯片MCX314A為核心的嵌入式運(yùn)動(dòng)控制器,具有高速度、高精度、高效率、成本低等特點(diǎn),控制器結(jié)構(gòu)簡(jiǎn)潔、可靠性高,是通用運(yùn)動(dòng)控制器的一種可行的解決方案。在數(shù)控機(jī)床等數(shù)控裝備、機(jī)器人等領(lǐng)域有重要應(yīng)用價(jià)值。