步進(jìn)電機的調焦系統設計
3 軟件設計:
由于電機的運行和轉動(dòng)步數以及兩步之間間隔時(shí)間有關(guān)系,故采用計時(shí)器計時(shí)的方法來(lái)計算時(shí)間,F240初始化程序如下:
void Initcpu(void) //初始化F240程序
{ *WDCR=0x6f; // 禁止自帶的看門(mén)狗功能;
*CKCR1=0x69; // 外部輸入晶振為20MHZ,F240工作在20MHZ;
*CKCR0=0xc3; // 系統時(shí)鐘為10MHZ;
*SYSCR=0x4000; } // F240輸出頻率CLKOUT=IOPC1(I/O管腳);
F240初始化后,計時(shí)器的基本計時(shí)時(shí)間為0.1?s,考慮到F240定時(shí)器是16位計數器,這難以滿(mǎn)足計算長(cháng)時(shí)間的需求,所以采用通過(guò)計算進(jìn)入定時(shí)器中斷的次數來(lái)計算長(cháng)時(shí)間的方法。例如設置定時(shí)器周期寄存器值為800即*T1PR=800,那么進(jìn)一次定時(shí)器中斷時(shí)間為800*0.1= 80?s如果計時(shí)為1s的話(huà),則只需進(jìn)12500次中斷即可,以此類(lèi)推;故定義的數組內容表示如下:
int table[ ]= { 25,800,255, //第1行
. . . . . . } //第n行
其中25為電機步數;800為定時(shí)器周期寄存器值;255每?jì)刹介g所要進(jìn)入定時(shí)器中斷的次數。實(shí)現準確地控制步進(jìn)電機控制器關(guān)鍵在于由F240 I/O口產(chǎn)生規定的脈沖信號,提供給步進(jìn)電機控制器從而驅動(dòng)步進(jìn)電機正確轉動(dòng),程序中包括F240初始化、電機正轉、等待、電機反轉幾個(gè)程序模塊。程序流 程圖如圖2所示:
圖2 程序流程圖
以下是實(shí)現電機正轉的程序。程序中變量解釋?zhuān)簊tep:用于存儲數組中電機步數;every step:用于存儲數組中每?jì)刹介g所要進(jìn)定時(shí)中斷的次數;flag:數組行數標志(程序假設需正轉36組)。
void interrupt INT2_ISR()
{ while (*EVIVRA==0x0027) //是否是定時(shí)器中斷
{ if(flag<36) //用來(lái)完成正轉
{
if (steptotal==step) //是否走完數組每行規定的步數
{ flag++; //數組行標志加1
steptotal=0; //電機轉動(dòng)步數清零
step=table[++j]; //更新電機運行步數數據
*T1PR=table[++j]; //更新定時(shí)器定時(shí)周期
everystep=table[++j]; //更新需要進(jìn)入定時(shí)器中斷次數
*T1CNT=0; } //從零開(kāi)始計時(shí),啟動(dòng)定時(shí)器
i++; //循環(huán)標志位加1
if(i==1) *PADATDIR=0xff05; // 提供下降沿,正轉,不脫機
else{ if (i==everystep)
{ i=0;
steptotal++; } //電機每轉一步標志位加1
else
*PADATDIR=0xff04; //CP腳為高電平為產(chǎn)生下降沿準備,正轉,不脫機
}
*IMR=0x02; //開(kāi)定時(shí)器中斷
enable(); //開(kāi)啟F240總中斷
}
}
4 實(shí)驗結果及其注意事項
電機轉動(dòng)的步數和時(shí)間坐標都是由主機端通過(guò)MATLAB仿真取得的,因此實(shí)際調焦曲線(xiàn)的與理想曲線(xiàn)的擬合程度大大提高了;步進(jìn)電機控制器采用四相八拍運行 方式,并且由DSP進(jìn)行控制,步進(jìn)機精確地按照步進(jìn)角(0.9度)轉動(dòng)。實(shí)際應用該調焦系統調整攝影鏡頭,拍攝運動(dòng)軌跡已知的目標,達到了滿(mǎn)意的效果。
定時(shí)器時(shí)間的準確計算對高精度地測量一些物理量是非常重要的。當需要定時(shí)器計算的時(shí)間比較長(cháng)時(shí),定時(shí)器計數還不夠,這時(shí)就需要利用定時(shí)器自身的中斷,即短時(shí)間定時(shí)一到就進(jìn)入定時(shí)器中斷服務(wù)子程序,利用進(jìn)入的次數來(lái)達到計時(shí)的目的。
5 結束語(yǔ)
本文對基于DSPTMS320F240利用步進(jìn)驅動(dòng)器UP-4HB03M控制步進(jìn)電機進(jìn)行了研究,改進(jìn)了傳統的工程中調焦方式,精度大大提高, 經(jīng)測試系統運行穩定,由于DSP操作方便,而且采用C語(yǔ)言方式編寫(xiě),易于日后的代碼修改和程序移植。
評論