基于ARM和MCX314As的嵌入式運(yùn)動(dòng)控制器
摘要:ARM處理器是業(yè)界領(lǐng)先的低功耗、低成本、高性能32位嵌入式RISC微處理器,MCX314A是4軸3聯(lián)動(dòng)專用DSP運(yùn)動(dòng)控制芯片。文中提出以ARM微控器LPC2292對(duì)MCX314A進(jìn)行控制的嵌入式運(yùn)動(dòng)控制器方案,論述了控制器硬件和軟件系統(tǒng)的構(gòu)成,給出了運(yùn)動(dòng)控制器在XY兩軸數(shù)控伺服工作臺(tái)控制中的應(yīng)用實(shí)例。
關(guān)鍵詞:運(yùn)動(dòng)控制;微控器;數(shù)控
1 引言
運(yùn)動(dòng)控制系統(tǒng)廣泛應(yīng)用于現(xiàn)代制造加工業(yè)、機(jī)器人、電子機(jī)械、紡織機(jī)械、食品加工、辦公設(shè)備、家用電器等。控制是為了實(shí)現(xiàn)預(yù)期運(yùn)動(dòng)軌跡和速度、加速度、力等運(yùn)動(dòng)參數(shù)而采取的必要手段。運(yùn)動(dòng)控制器為實(shí)現(xiàn)運(yùn)動(dòng)控制提供了一個(gè)基礎(chǔ)平臺(tái),在這個(gè)平臺(tái)上可以方便地實(shí)現(xiàn)對(duì)多個(gè)電機(jī)的協(xié)調(diào)控制。發(fā)揮ARM微控器與MCX314A各自的優(yōu)勢,將兩者有機(jī)融合可方便地構(gòu)成高性能的運(yùn)動(dòng)控制器。
2 MCX314A的主要功能
MCX314A是日本NOVA公司推出的4軸運(yùn)動(dòng)控制專用DSP集成電路,能用于步進(jìn)電機(jī)或脈沖型伺服驅(qū)動(dòng)的位置、速度和插補(bǔ)控制,可用于工業(yè)自動(dòng)化設(shè)備、工業(yè)機(jī)器人、測量設(shè)備、辦公設(shè)備和家用電器等。其可以進(jìn)行各軸(X軸、Y軸、Z軸、U軸)獨(dú)立的定位控制、速度控制,也可在4軸中選擇任意的2軸作圓弧插補(bǔ)、2/3軸作直線插補(bǔ),插補(bǔ)精度是±0.5LSB。默認(rèn)輸入時(shí)鐘為16MHz,脈沖輸出速度最高可達(dá)4MPPS,輸出脈沖范圍為32位。
MCX314A還有伺服電機(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)。各軸都有32位的邏輯位置計(jì)數(shù)器(對(duì)輸出的驅(qū)動(dòng)脈沖計(jì)數(shù))、實(shí)際位置計(jì)數(shù)器(對(duì)外部編碼器計(jì)數(shù))和比較寄存器,實(shí)現(xiàn)位置的閉環(huán)控制。各軸都有4個(gè)通用輸入(可用于限位、原點(diǎn)信號(hào)輸入)和4/8個(gè)通用輸出。
3 ARM微控器LPC2292
LPC2292是Philips公司推出的基于支持JTAG的16/32位ARM7TDMI-S工業(yè)級(jí)ARM微控制器,片內(nèi)帶有256 kB高速Flash ROM和16kB靜態(tài)RAM,且具有外部存儲(chǔ)器接口。通過片內(nèi)PLL可實(shí)現(xiàn)最大為60MHz的CPU操作頻率。LPC2292采用144腳LQFP封裝,內(nèi)含2路CAN、8路10位ADC、2個(gè)32位定時(shí)器、6路PWM通道、實(shí)時(shí)時(shí)鐘、看門狗、9個(gè)外部中斷以及多種串行接口(包括2個(gè)16C550工業(yè)標(biāo)準(zhǔn)UART、I2C接口和SPI接口)等功能模塊,這使它特別適用于工業(yè)嵌入式控制應(yīng)用。
4 運(yùn)動(dòng)控制器的基本構(gòu)成
4.1 硬件系統(tǒng)
ARM微控制器LPC2292通過16位數(shù)據(jù)總線與MCX314A相連,如圖1所示。LPC2292的I/O運(yùn)行電壓是3.3V的(但能承受5V電平),而MCX314A是5V電壓的,兩者互連時(shí),可串入1kΩ電阻。應(yīng)用實(shí)踐表明LPC2292和MCX314A直接相連也是可行的。兩者互連后,且將MCX314A的EXPLSN引腳、H16L8引腳、TESTN引腳接+5V電壓,RESETN引腳連接低電平復(fù)位電路,CLK引腳接16M有源晶振時(shí)鐘,VDD引腳接上+5V電源,MCX314就具備了最基本的運(yùn)行條件。微控器就可通過外部存儲(chǔ)器接口,對(duì)MCX314A進(jìn)行讀寫操作,實(shí)現(xiàn)相應(yīng)的功能。
圖1中虛線框內(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)線接收器。
LPC2292外部Flash存儲(chǔ)器可用于存儲(chǔ)需要固化的運(yùn)動(dòng)控制參數(shù)(如軌跡坐標(biāo)、運(yùn)動(dòng)參數(shù))。Flash存儲(chǔ)器采用SST39VF160(2MB),SRAM采用IS61LV25616AL(512KB),液晶模塊采用SMG240128A。為便于與上位系統(tǒng)和其他控制器間通信,控制器設(shè)計(jì)有RS232、CAN和以太網(wǎng)通信功能。CAN收發(fā)器采用TJA1050, RS232電平與3.3V電平轉(zhuǎn)換IC采用SP3232E,以太網(wǎng)接口控制器采用RTL8019AS。通信接口可以根據(jù)需要增減,如可用SGS-THOMSON公司的專用SERCOS接口控制芯片SERCON410B擴(kuò)展SERCOS接口。通過這些通信接口,運(yùn)動(dòng)控制器可直接與CAD/CAM系統(tǒng)融合。ARM控制器可方便地把CAD/CAM系統(tǒng)產(chǎn)生的G、M數(shù)控代碼直接轉(zhuǎn)換成MCX314A的命令。MCX314A執(zhí)行命令,產(chǎn)生控制脈沖給伺服驅(qū)動(dòng)器,驅(qū)動(dòng)機(jī)械部件形成期望的運(yùn)動(dòng)。
4.2 軟件系統(tǒng)
LPC2292要完成通信、人機(jī)交互、運(yùn)行控制算法產(chǎn)生控制指令、MCX314A的讀寫操作等多任務(wù)。在控制器中嵌入實(shí)時(shí)多任務(wù)μC/OS-II操作系統(tǒng)給軟件系統(tǒng)設(shè)計(jì)帶來便利,移植的技術(shù)細(xì)節(jié)參見文獻(xiàn)[3>。下面主要討論MCU對(duì)MCX314A的控制。
操作MCX314A對(duì)于程序設(shè)計(jì)來說就是按一定的時(shí)序讀寫其內(nèi)部的寄存器。MCX314A可“寫”的寄存器有:命令寄存器WR0,模式寄存器WR1~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接于LPC2292的Bank2存儲(chǔ)器組(地址范圍是0x8200,0000~0x82ff,ffff),即將CS2作為MCX314A的片選信號(hào),那么WR0和RR0的地址是0x8200,0000,記為Addr。那么,WR1和RR1的地址是Addr+2,依此類推,WR7和RR7的地址是Addr+0x0e。為了使LPC2292提供16位的總線接口,需要在其啟動(dòng)代碼中設(shè)置PINSEL2= 0x0f814914, BCFG2 =0x1000ffef。圖2是MPU操作MCX314A的流程圖。
文獻(xiàn)[1>提供了基于 C語言的示例程序,但ARM開發(fā)套件ADS1.2(CodeWarrior for ARM Developer Suite)沒有提供outpw和inpw函數(shù)。下面提供這兩函數(shù)的源代碼,這樣,文獻(xiàn)[1>的程序可方便地移植到ARM中。
void outpw(unsigned int addr, unsigned short data)
{ volatile unsigned short *ptr;
ptr=(volatile unsigned short *)addr;
*ptr=data;
}
unsigned short inpw(unsigned int addr)
{ volatile unsigned short *ptr;
ptr=(volatile unsigned short *)addr;
return *ptr;
}
5 在XY兩軸數(shù)控伺服工作臺(tái)中的應(yīng)用
XY兩軸工作臺(tái)是采用滾珠絲桿和滾動(dòng)導(dǎo)軌傳動(dòng)的十字工作臺(tái)(X、Y兩軸垂直)。X、Y兩軸兩端各有1個(gè)限位開關(guān)。采用松下交流伺服電機(jī)(型號(hào)MSMA022A1C,功率200W,額定轉(zhuǎn)速3000r/min,額定轉(zhuǎn)矩0.64Nm)驅(qū)動(dòng)工作臺(tái)運(yùn)動(dòng),電機(jī)驅(qū)動(dòng)器采用松下伺服驅(qū)動(dòng)器MSDA023A1A。采用光電編碼器作為位置反饋器件(伺服電機(jī)同軸安裝11線2500P/r增量編碼器)。
圖3是該平臺(tái)的X軸驅(qū)動(dòng)原理圖,Y軸驅(qū)動(dòng)與X軸驅(qū)動(dòng)電路相同。圖中M為伺服電機(jī),EC是編碼器。
將伺服驅(qū)動(dòng)器的“控制模式”設(shè)置為“位置控制”,把指令脈沖設(shè)置為“CW/CCW”方式。LPC2292按流程圖操作MCX314A,設(shè)置相應(yīng)的運(yùn)動(dòng)參數(shù),寫入功能命令,即可完成對(duì)平臺(tái)的運(yùn)動(dòng)軌跡控制。
6結(jié)束語
運(yùn)動(dòng)控制系統(tǒng)應(yīng)用廣泛。以運(yùn)動(dòng)控制器作為相對(duì)獨(dú)立的標(biāo)準(zhǔn)部件可以明顯縮短新產(chǎn)品的研發(fā)周期,盡快將產(chǎn)品投入市場。以ARM微控器和MCX314A為核心的嵌入式運(yùn)動(dòng)控制器,具有高速度、高精度、高效率、高可*性、成本低等特點(diǎn)和優(yōu)勢,是運(yùn)動(dòng)控制器的一種良好的解決方案。在數(shù)控機(jī)床等數(shù)控裝備、機(jī)器人等領(lǐng)域有重要應(yīng)用價(jià)值。
文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。