摘 要: 刻章機(jī)、繡花機(jī)等小型機(jī)電一體化產(chǎn)品對(duì)控制精度和系統(tǒng)成本都提出了很高的要求。針對(duì)這些特殊的民用領(lǐng)域,采用基于SoC技術(shù)的高速單片機(jī)C8051F120實(shí)現(xiàn)低成本的運(yùn)動(dòng)控制解決方案,并已推廣到小型工控領(lǐng)域。
關(guān)鍵詞: 雕刻機(jī);C8051F120;SoC
隨著現(xiàn)代技術(shù)的發(fā)展進(jìn)步,運(yùn)動(dòng)控制技術(shù)取得了巨大的成就,被認(rèn)為是21世紀(jì)最有發(fā)展?jié)摿Φ募夹g(shù)之一。運(yùn)動(dòng)控制器作為數(shù)控系統(tǒng)的核心運(yùn)算單元,具有舉足輕重的地位。但縱觀所有市場(chǎng),幾乎所有的產(chǎn)品都定位于工控領(lǐng)域,在低成本的民用領(lǐng)域卻很少涉及。針對(duì)低端運(yùn)動(dòng)控制器的市場(chǎng)應(yīng)用前景,本文主要應(yīng)用SoC技術(shù),采用SLAB公司最新推出的高性能混合信號(hào)處理器C8051F120,設(shè)計(jì)出基于SoC技術(shù)的運(yùn)動(dòng)控制器,從而實(shí)現(xiàn)低成本的大規(guī)模生產(chǎn)。
1 雕刻數(shù)控系統(tǒng)的一般構(gòu)成
雕刻機(jī)的數(shù)控系統(tǒng)是指一種能夠裝載數(shù)控程序文件并能夠自動(dòng)控制機(jī)床進(jìn)行加工的控制系統(tǒng)。其工作原理:用計(jì)算機(jī)編制數(shù)控加工程序(或畫(huà)出需要雕刻的圖形),通過(guò)存儲(chǔ)介質(zhì)傳輸給運(yùn)動(dòng)控制模塊,運(yùn)動(dòng)控制模塊將NC程序解釋成特定的加工路徑數(shù)據(jù),并通過(guò)查補(bǔ)和速度控制算法產(chǎn)生控制步進(jìn)電機(jī)或伺服電機(jī)(本文采用步進(jìn)電機(jī)),控制X、Y、Z等軸的進(jìn)給,對(duì)工件進(jìn)行加工。結(jié)合雕刻機(jī),運(yùn)動(dòng)控制模塊的工作流程示意圖如圖1所示。
2 基于C8051F120的運(yùn)動(dòng)控制系統(tǒng)
本設(shè)計(jì)采用SLAB公司最新推出的混合信號(hào)處理器C8051F120作為核心控制器,在滿足插補(bǔ)速度的同時(shí),成本相對(duì)較低,但沒(méi)有涉及到多軸插補(bǔ),一般應(yīng)用在只需要低速度點(diǎn)位運(yùn)動(dòng)控制和對(duì)軌跡要求不高的輪廓運(yùn)動(dòng)控制場(chǎng)合。
2.1 C8051F120芯片簡(jiǎn)介
C8051F120器件是完全集成混合信號(hào)的片上系統(tǒng)型MCU芯片,具有100個(gè)I/O引腳,其內(nèi)部采用高速、流水線結(jié)構(gòu)、與8051兼容的CIP-51內(nèi)核,運(yùn)行速度可達(dá)100 MIPS[1];采用全速、非入侵式的系統(tǒng)片內(nèi)調(diào)試接口,極大地方便了系統(tǒng)的調(diào)試;其16×16的MAC單元可以提供強(qiáng)大的數(shù)據(jù)處理能力;128 KB的片上Flash和8 KB的片內(nèi)數(shù)據(jù)存儲(chǔ)器,為大容量的數(shù)據(jù)存儲(chǔ)提供了空間[2]。其結(jié)構(gòu)示意圖如圖2所示。
2.2 C8051F120中直線插補(bǔ)的實(shí)現(xiàn)
C8051F120是實(shí)現(xiàn)數(shù)控過(guò)程中運(yùn)算的關(guān)鍵,全部運(yùn)算均由其完成。當(dāng)采用逐點(diǎn)比較法實(shí)現(xiàn)直線插補(bǔ)時(shí),每走一步都需要4個(gè)節(jié)拍[3]。其實(shí)現(xiàn)步驟如下:
(1)誤差判別。判別偏差函數(shù)F的正負(fù),確定工作點(diǎn)相對(duì)于規(guī)定曲線的位置。
(2)坐標(biāo)進(jìn)給。根據(jù)偏差情況,控制X或Y坐標(biāo)進(jìn)給一步,使工作點(diǎn)向規(guī)定的曲線靠攏。
(3)偏差計(jì)算。進(jìn)給一步后,計(jì)算工作點(diǎn)與規(guī)定曲線的新偏差,作為下一步偏差判別的依據(jù)。
(4)終點(diǎn)判別。判斷終點(diǎn)是否到達(dá),如果未到達(dá)終點(diǎn),繼續(xù)插補(bǔ);如果已經(jīng)到達(dá)終點(diǎn),則停止插補(bǔ)。
4個(gè)象限內(nèi)的直線插補(bǔ)如圖3所示。
3 C8051F120中軟件的實(shí)現(xiàn)
C8051F120具有雙周期的16×16 MAC單元,其100 MIPS強(qiáng)大的數(shù)據(jù)吞吐能力為逐點(diǎn)比較法實(shí)現(xiàn)直線插補(bǔ)提供了強(qiáng)有力的支持[4]。只需先將坐標(biāo)絕對(duì)化,同時(shí)記錄象限值,偏差判斷后決定進(jìn)給量即可方便地實(shí)現(xiàn)直線插補(bǔ)。
3.1 直線插補(bǔ)程序流程
軟件實(shí)現(xiàn)直線插補(bǔ)的流程圖如圖4所示。
3.2 直線插補(bǔ)的C語(yǔ)言實(shí)現(xiàn)
為了提高C8051F120的運(yùn)行效率,系統(tǒng)的數(shù)控軟件部分主要采用C語(yǔ)言編寫(xiě)。方法如下:
void line(long int xm ,long int ym,long int xe,long int ye,v,p)
{
long int xdata fm,e,e0;
xm=0;
ym=0;
xe=fabs(xe);
ye=fabs(ye);
fm=ym*xe-xm*ye;
e=xe+ye;
e0=0;
while(e)
{
if(fm>=0)
{
X_PUL=!X_PUL;
xm=xm+1;
ym=ym;
fm=fm-ye;
e--;
e0++;
}
if(fm<0)
{
Y_PUL=!Y_PUL;
xm=xm;
ym=ym+1;
fm=fm+xe;
e--;
e0++;
}
for(a=0;a<v;a++);
}
}
本文在吸收消化國(guó)內(nèi)外先進(jìn)產(chǎn)品的經(jīng)驗(yàn)后,采用低成本的器件開(kāi)發(fā)出極低成本、性能優(yōu)良的運(yùn)動(dòng)控制模塊,能夠滿足廣泛的刻章機(jī)、點(diǎn)膠機(jī)等小型數(shù)控系統(tǒng)的需要,并可以繼續(xù)開(kāi)發(fā)出高端運(yùn)動(dòng)控制器才有的脫機(jī)功能,具有廣泛的推廣價(jià)值和使用價(jià)值。
參考文獻(xiàn)
[1] 潘琢金.C8051F120/1/2 ISP Flash微控制器數(shù)據(jù)手冊(cè).REV 1.5.新華龍電子有限公司, 2004.
[2] 張迎新,雷文,姚靜波.C8051F系列SOC單片機(jī)原理及應(yīng)用[M].北京:國(guó)防工業(yè)出版社,2005.
[3] 任玉田,焦振學(xué).機(jī)床計(jì)算機(jī)數(shù)控技術(shù)[M].北京:北京理工大學(xué)出版社,2004.
[4] 潘琢金,孫德龍,夏秀峰.C8051F單片機(jī)應(yīng)用解析[M].Cygnol Integrated Products Inc., 2002.