基于DSP的運(yùn)動(dòng)控制器的開(kāi)發(fā)
3 軟件程序設(shè)計(jì)及流程
整個(gè)運(yùn)動(dòng)控制系統(tǒng)程序主要包括EEPROM引導(dǎo)程序和DSP主程序兩部分。其中,F(xiàn)lash引導(dǎo)程序的作用是把系統(tǒng)程序從片外低速EEPROM傳送到片外高速RAM中運(yùn)行,在運(yùn)動(dòng)控制卡的硬件調(diào)試階段,程序規(guī)模比較小,程序可以存放在片內(nèi)的。Flash中,這樣則不需要引導(dǎo)程序,直接在片內(nèi)運(yùn)行程序。系統(tǒng)程序主要由主程序、讀寫(xiě)雙口RAM程序、脈沖輸出程序、插補(bǔ)程序和加減速控制程序組成。主程序調(diào)用各子程序,進(jìn)行與上位機(jī)的通信、I/O、QEP、定時(shí)器及中間寄存器的初始化、設(shè)置中斷標(biāo)志、讀取計(jì)數(shù)器的值、計(jì)算各控制量、積分平滑等功能。當(dāng)發(fā)生中斷時(shí),調(diào)用相應(yīng)中斷程序,并修改或重置標(biāo)志位。
圖2所示為DSP主程序的流程圖。主CPU使用硬件復(fù)位控制DSP的復(fù)位操作,DSP復(fù)位后運(yùn)行片內(nèi)ROM或加載到RAM中的系統(tǒng)主程序。DSP主程序由初始化程序、時(shí)鐘循環(huán)等待中斷程序組成。初始化程序完成所有變量的初始化,復(fù)位全部外設(shè)和關(guān)閉所有輸出。之后進(jìn)入循環(huán)和等待中斷的過(guò)程,檢測(cè)到主機(jī)命令之后,讀取命令并根據(jù)系統(tǒng)需要調(diào)用相應(yīng)的處理程序。命令處理完后再進(jìn)入循環(huán)等待狀態(tài),命令處理程序是實(shí)現(xiàn)運(yùn)動(dòng)控制器功能的關(guān)鍵程序,包括運(yùn)動(dòng)控制的算法,速度控制、位置控制等功能的實(shí)現(xiàn),還包括完成數(shù)據(jù)寫(xiě)入和讀取等功能,同時(shí)對(duì)外部中斷進(jìn)行處理。當(dāng)上位機(jī)給運(yùn)動(dòng)控制卡發(fā)送控制命令時(shí),DSP首先讀取主機(jī)發(fā)送來(lái)的軸的目標(biāo)位置,根據(jù)速度控制的模式設(shè)定指令選擇相應(yīng)的速度控制算法,同時(shí)查詢(xún)外部事件,如有事件發(fā)生,執(zhí)行相應(yīng)的處理程序。接著就可以送出軸的控制輸出,檢測(cè)各軸是否都完成運(yùn)動(dòng)(判斷軸狀態(tài)寄存器完成標(biāo)志位),完成則推出命令處理程序,否則繼續(xù)執(zhí)行。本文引用地址:http://www.ex-cimer.com/article/152225.htm
4 結(jié)束語(yǔ)
運(yùn)動(dòng)控制器的硬件設(shè)計(jì)需要注意:如抗干擾、外圍電路的速度與DSP的實(shí)時(shí)性能匹配問(wèn)題。這些問(wèn)題相互影響,要確定一個(gè)正確的電路結(jié)構(gòu)和合理的PCB布線,需要大量的實(shí)際經(jīng)驗(yàn),因此在電路結(jié)構(gòu)方面仍有待改進(jìn),使之更適應(yīng)穩(wěn)定、高速的控制要求。對(duì)控制軟件的改進(jìn)主要包括以下兩方面:
(1)完成上位機(jī)上接口函數(shù)、運(yùn)動(dòng)控制函數(shù)庫(kù)和上層調(diào)試環(huán)境的設(shè)計(jì)、編寫(xiě)NURBS數(shù)學(xué)處理程序,在運(yùn)動(dòng)控制器內(nèi)部實(shí)現(xiàn)不同的插補(bǔ)算法,建立運(yùn)動(dòng)控制器的操作平臺(tái)和完善的人機(jī)交互功能,使得運(yùn)動(dòng)控制器具有更強(qiáng)大的控制性能和更容易編程;
(2)對(duì)伺服電機(jī)的控制只提供了硬件上的支持,在軟件上需要對(duì)光電編碼器的反饋信號(hào)進(jìn)行分析,計(jì)算出與給定位置的誤差,再通過(guò)軟件PID算法調(diào)節(jié)器獲得位置控制量來(lái)控制伺服系統(tǒng)。
評(píng)論