《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于DSP的運(yùn)動(dòng)控制器的開(kāi)發(fā)
基于DSP的運(yùn)動(dòng)控制器的開(kāi)發(fā)
電子科技
陳雪姝,林曉春 西安電子科技大學(xué)
摘要: 運(yùn)動(dòng)控制器是一種用于多種運(yùn)動(dòng)控制場(chǎng)合的上位控制單元,通常采用專業(yè)運(yùn)動(dòng)控制芯片或高速DSP來(lái)控制步進(jìn)電機(jī)或伺服電機(jī)。運(yùn)動(dòng)控制器與PC機(jī)構(gòu)成主從結(jié)構(gòu)。PC機(jī)負(fù)責(zé)人機(jī)交互界面的管理和控制系統(tǒng)的實(shí)時(shí)監(jiān)控工作;控制器完成運(yùn)動(dòng)控制的細(xì)節(jié)。運(yùn)動(dòng)控制器配有庫(kù)函數(shù)供用戶調(diào)用,這種開(kāi)放的結(jié)構(gòu)能夠廣泛應(yīng)用于制造業(yè)中設(shè)備自動(dòng)化的各個(gè)領(lǐng)域。
Abstract:
Key words :

    運(yùn)動(dòng)控制器是一種用于多種運(yùn)動(dòng)控制場(chǎng)合的上位控制單元,通常采用專業(yè)運(yùn)動(dòng)控制芯片或高速DSP來(lái)控制步進(jìn)電機(jī)或伺服電機(jī)。運(yùn)動(dòng)控制器與PC機(jī)構(gòu)成主從結(jié)構(gòu)。PC機(jī)負(fù)責(zé)人機(jī)交互界面的管理和控制系統(tǒng)的實(shí)時(shí)監(jiān)控工作;控制器完成運(yùn)動(dòng)控制的細(xì)節(jié)。運(yùn)動(dòng)控制器配有庫(kù)函數(shù)供用戶調(diào)用,這種開(kāi)放的結(jié)構(gòu)能夠廣泛應(yīng)用于制造業(yè)中設(shè)備自動(dòng)化的各個(gè)領(lǐng)域。


1 系統(tǒng)的構(gòu)成與工作原理
1.1 系統(tǒng)的構(gòu)成
    系統(tǒng)構(gòu)成如圖1所示,包括電源轉(zhuǎn)換模塊、DSP外圍電路、脈沖輸出電路、編碼器信號(hào)采集和處理電路、D/A輸出電路和DSP-PC機(jī)通信電路等。核心微處理器采用美國(guó)TI公司的16位定點(diǎn)DSP芯片TMS320LF2407A。

1.2 系統(tǒng)的工作原理
    本系統(tǒng)由上位機(jī)通過(guò)雙端口RAM把運(yùn)動(dòng)控制指令或控制參數(shù)傳遞給運(yùn)動(dòng)控制器的DSP,DSP根據(jù)采集到的PC機(jī)指令,通過(guò)位置控制和速度控制算法進(jìn)行計(jì)算。然后將計(jì)算出的脈沖信號(hào)經(jīng)脈沖驅(qū)動(dòng)送電機(jī)驅(qū)動(dòng)。


2 系統(tǒng)的硬件電路描述
    系統(tǒng)硬件電路主要包括電源轉(zhuǎn)換模塊、DSP及外圍電路、擴(kuò)展存儲(chǔ)器電路、脈沖輸出電路、編碼器信號(hào)采集和處理電路、D/A輸出電路和DSP-PC機(jī)通信電路等??刂破靼蹇ㄊ褂肁ltera公司的可編程邏輯器件MAXⅡEPM570實(shí)現(xiàn)數(shù)字邏輯電路設(shè)計(jì),降低了板卡的設(shè)計(jì)尺寸,增加了板卡的可靠性和設(shè)計(jì)靈活性,它的在線編程特性可使得數(shù)字邏輯設(shè)計(jì)、硬件設(shè)計(jì),如同軟件設(shè)計(jì)一樣簡(jiǎn)便。
2.1 電源轉(zhuǎn)換模塊
    TMS320LF240A是低功耗芯片,采用3.3 V供電,本設(shè)計(jì)采用Bay Linear Inc公司生產(chǎn)的電源轉(zhuǎn)換芯片B1117提供。
2.2 DSP接口電路
2.2.1 時(shí)鐘信號(hào)
    選擇16MHz的有源晶振作為外部時(shí)鐘信號(hào)源,從DSP的XTAL1/CLXIN腳輸入,經(jīng)PLL1和PLL2倍頻成32 MHz信號(hào),供DSP使用。因而TMS320LF2407A的速度可達(dá)到3 1 ns,管腳XTAL2懸空。同時(shí),16 MHz的有源晶振也是CPLD器件MAXⅡ570的外部時(shí)鐘信號(hào)源。
2.2.2 串行EEPROM接口電路
    TMS320LF2407A引導(dǎo)ROM為用戶提供兩種選擇:同步傳輸通過(guò)串行外設(shè)接口(SPI)實(shí)現(xiàn);異步傳輸通過(guò)串行通信接口(SCI)來(lái)實(shí)現(xiàn)。程序代碼可以加載到用戶指定的位置。為了有效的引導(dǎo)ROM和加載,本設(shè)計(jì)將MP/MC#引腳拉低,從而使DSP工作于微控制器模式。
2.2.3 擴(kuò)展RAM電路
    TMS320LF2407A有1.5 kB的數(shù)據(jù)/程序RAM,544 bit雙口RAM(DARAM)和2 kB的單口RAM(SARAM),但是考慮到所需的程序存儲(chǔ)空間和數(shù)據(jù)存儲(chǔ)空間較大,在DSP外部用一片CY62136V作為外存儲(chǔ)器,該芯片是128 kB×16 bit的存儲(chǔ)器,其中64 kB作為數(shù)據(jù)存儲(chǔ)器,其余64 kB作為程序存儲(chǔ)器空間。
2.2.4 外部I/O信號(hào)處理
    通過(guò)管腳引入的硬件中斷,包括軸限位中斷和編碼器INDEX信號(hào)中斷。8個(gè)限位中斷信號(hào)通過(guò)光耦隔離后接入CPLD,經(jīng)CPLD相與后接入DSP中斷管腳XINT1,同時(shí)這些信號(hào)與DSP的I/O口相連。當(dāng)某一軸運(yùn)動(dòng)到限位開(kāi)關(guān)處時(shí),就會(huì)觸發(fā)DSP的外部中斷信號(hào)XINT1,然后DSP就可以判定哪個(gè)限位開(kāi)關(guān)已經(jīng)到位。光耦器件選用Toshiba公司的貼片光耦TLP121,它的平均輸入驅(qū)動(dòng)電流為50 mA,平均輸出驅(qū)動(dòng)電流為5 mA,可直接驅(qū)動(dòng)TTL電路。
2.3 脈沖輸出電路
    每一軸的兩個(gè)信號(hào)輸出口PLUSE+和PLUSE-可用來(lái)輸出脈沖和方向信號(hào),這兩個(gè)輸出口可以由程序設(shè)定為CW/CCW雙脈沖模式或脈沖方向輸出模式,用戶可以設(shè)定J4~J11跳線來(lái)設(shè)定脈沖為差分輸出或者單端輸出兩種方式。
2.4 D/A轉(zhuǎn)換輸出電路
    數(shù)模轉(zhuǎn)換電路的核心芯片采用BB公司生產(chǎn)的12位4路電壓輸出的數(shù)模轉(zhuǎn)換芯片DAC7625。DAC的片選信號(hào)由DSP的DS,PS,IS,STRB,R/W#,WE#,A0,A1,A2,A3,A11經(jīng)過(guò)譯碼得到。DAC的4個(gè)通道在DSP中的I/O地址為:0000 H,0001 H,0002 H,0003 H,DAC傳送寄存器地址為0004 H。
2.5 編碼器電路
    該編碼器信號(hào)處理電路是針對(duì)增量式脈沖編碼器產(chǎn)生的信號(hào)進(jìn)行處理。為消除外部驅(qū)動(dòng)器大電源的干擾,3對(duì)信號(hào)經(jīng)過(guò)光耦進(jìn)行隔離。利用DSP事件管理器中的正交編碼脈沖(QEP)電路,對(duì)引腳上的脈沖數(shù)目和頻率分別解碼和計(jì)數(shù)。
2.6 DSP-PC機(jī)通信電路
    這里選用美國(guó)IDT公司生產(chǎn)的雙口RAM芯片IDT71 V321,該芯片均提供兩個(gè)帶有自身的控制、地址和I/O引腳的獨(dú)立端口,它允許獨(dú)立地讀寫(xiě)存儲(chǔ)器中的任何電源。IDT71V321帶有片內(nèi)硬件端口仲裁電路,可以允許雙機(jī)同步地讀或?qū)懘鎯?chǔ)器中的任何單元,同時(shí)保證數(shù)據(jù)的完整性。它的競(jìng)爭(zhēng)原則是:(1)左右兩端口的地址信號(hào)同時(shí)到達(dá),那么誰(shuí)的CE片選信號(hào)先到,慢的一方BUSY線下拉,直到快的一方訪問(wèn)完畢;(2)左右兩端口的片選信號(hào)同時(shí)到達(dá),那么誰(shuí)的訪問(wèn)地址信號(hào)先到,慢的一方BUSY線下拉,直到快的一方訪問(wèn)完畢。將IDT71V 321的左側(cè)信號(hào)按普通接法和DSP相接。當(dāng)DSP發(fā)出讀/寫(xiě)IDT71V321的命令時(shí),IDT71 V321鎖存左邊的BUSYL信號(hào),將此信號(hào)送到DSP。若BUSYL信號(hào)為1,則表示DSP剛才讀IDT71V321不存在沖突,讀/寫(xiě)有效;若為0,則
說(shuō)明DSP剛才對(duì)IDT71V 321的讀/寫(xiě)存在沖突,本次讀/寫(xiě)無(wú)效,DSP要重新操作。PC機(jī)對(duì)接口的尋址方式里采用L/O尋址方式,使用的控制線為IOW和IOR。


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í)查詢外部事件,如有事件發(fā)生,執(zhí)行相應(yīng)的處理程序。接著就可以送出軸的控制輸出,檢測(cè)各軸是否都完成運(yùn)動(dòng)(判斷軸狀態(tài)寄存器完成標(biāo)志位),完成則推出命令處理程序,否則繼續(xù)執(zhí)行。


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)。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。