摘 要:在“NC嵌入PC”的開(kāi)放數(shù)控系統(tǒng)結(jié)構(gòu)模型基礎(chǔ)上提出了一種經(jīng)濟(jì)、高效、可靠的開(kāi)放式數(shù)控系統(tǒng)" title="開(kāi)放式數(shù)控系統(tǒng)">開(kāi)放式數(shù)控系統(tǒng)結(jié)構(gòu)模型。采用TMS320F2812 DSP和FPGA構(gòu)成開(kāi)放數(shù)控系統(tǒng)的硬件平臺(tái),采用WDM和COM技術(shù)實(shí)現(xiàn)軟件開(kāi)放。此數(shù)控系統(tǒng)能實(shí)現(xiàn)多種電機(jī)的四軸聯(lián)動(dòng)的控制。最后通過(guò)仿真證明了該數(shù)控模型的可行性。
關(guān)鍵詞:TMS320F2812 DSP? FPGA? 運(yùn)動(dòng)控制卡? 開(kāi)放數(shù)控系統(tǒng)
?
?? “NC嵌入PC”的開(kāi)放式數(shù)控系統(tǒng)結(jié)構(gòu)模型,充分利用了PC機(jī)的豐富資源(內(nèi)存空間大、硬盤(pán)容量大和高速運(yùn)算功能的CPU),使這種結(jié)構(gòu)模式成為開(kāi)放數(shù)控系統(tǒng)的主流設(shè)計(jì)。DSP因其高速、強(qiáng)實(shí)時(shí)控制能力而迅速得到了廣泛的應(yīng)用,但由于其有限的PWM輸出口,要實(shí)現(xiàn)多軸控制,單個(gè)DSP芯片就顯得鞭長(zhǎng)莫及。在多軸控制卡設(shè)計(jì)中,最常用的有三種設(shè)計(jì)方案:(1)采用主DSP作為主控制器,實(shí)現(xiàn)對(duì)多個(gè)從DSP節(jié)點(diǎn)的監(jiān)控和管理,每個(gè)從DSP控制一個(gè)軸運(yùn)動(dòng),多個(gè)從DSP芯片通過(guò)總線(xiàn)與主DSP芯片進(jìn)行通訊,形成一個(gè)主從式的分布式控制結(jié)構(gòu);(2)DSP只負(fù)責(zé)復(fù)雜的控制算法,發(fā)送數(shù)據(jù)給FPGA,F(xiàn)PGA存儲(chǔ)DSP最新的脈沖寬度,發(fā)出PWM波,控制多軸運(yùn)動(dòng);(3)單個(gè)DSP負(fù)責(zé)復(fù)雜的控制算法,通過(guò)輸出選擇邏輯開(kāi)關(guān)來(lái)選擇D/A通道,驅(qū)動(dòng)電機(jī)軸運(yùn)動(dòng)。高速F2812 DSP芯片和大容量可編程邏輯器件FPGA的出現(xiàn),使單個(gè)DSP控制多軸運(yùn)動(dòng)成為可能。利用FPGA的并行性對(duì)DSP的PWM功能進(jìn)行擴(kuò)展,從而可實(shí)現(xiàn)高精度的不同電機(jī)的多軸控制,并且FPGA和DSP都支持在系統(tǒng)可編程,因此大大縮短了設(shè)計(jì)周期,而且在硬件不變的情況下,可以根據(jù)需要通過(guò)修改軟件以擴(kuò)展功能,體現(xiàn)出其良好的硬件平臺(tái)開(kāi)放性。
1 開(kāi)放數(shù)控系統(tǒng)的結(jié)構(gòu)模型
??? F2812 DSP是TI公司最新推出的32位定點(diǎn)處理器,系統(tǒng)處理能力為150MIPS,指令周期6.67ns,實(shí)時(shí)控制能力很強(qiáng)。兩個(gè)事件管理器模塊EVA、EVB中各有兩個(gè)通用定時(shí)器,三個(gè)完全比較單元,能夠支持8通道的16位PWM輸出。在電流環(huán)等采樣獲取中,因其頻率比較高(20kHz),每測(cè)一次電流就重新調(diào)整新的PWM波的脈沖寬度,如果EVA、EVB同時(shí)工作,在定時(shí)器中斷響應(yīng)時(shí)可能檢測(cè)不到電流的變化,這樣對(duì)于16位的DSP處理器的兩個(gè)EV只能有一個(gè)得到有效的應(yīng)用。但是F2812高達(dá)150MIPS的處理能力,能夠很好的捕捉到電流的變化,定時(shí)器中斷也能得到及時(shí)響應(yīng),其EVA、EVB能夠同時(shí)得到應(yīng)用。因此,一片F(xiàn)2812 DSP能夠很好地控制兩臺(tái)三相伺服電機(jī)和四臺(tái)步進(jìn)電機(jī)" title="步進(jìn)電機(jī)">步進(jìn)電機(jī)。
??? 圖1為開(kāi)放數(shù)控系統(tǒng)的結(jié)構(gòu)模型,在硬件方面實(shí)現(xiàn)了模塊化設(shè)計(jì),通過(guò)ISA總線(xiàn)與PC機(jī)通訊,由PC機(jī)控制各實(shí)時(shí)模塊的協(xié)調(diào)工作。對(duì)伺服電機(jī)的驅(qū)動(dòng)信號(hào),由F2812 DSP通過(guò)其EVA、EVB完成兩通道的PWM波形輸出,F(xiàn)PGA擴(kuò)展PWM功能,完成另兩通道PWM的控制輸出;對(duì)步進(jìn)電機(jī)的驅(qū)動(dòng),全部由F2812 DSP的EV完成,控制四軸聯(lián)動(dòng)。充分利用了F2812 DSP的內(nèi)部資源和FPGA的速度快、多路并行、靈活性高的優(yōu)點(diǎn)。
?
?
??? 本數(shù)控模型包括六部分:
??? (1)DSP插補(bǔ)" title="插補(bǔ)">插補(bǔ)板,由DSP完成比較復(fù)雜的插補(bǔ)和位置控制計(jì)算,并通過(guò)事件管理器控制兩電機(jī)軸的驅(qū)動(dòng)信號(hào)的產(chǎn)生。FPGA接收DSP最新脈沖寬度,產(chǎn)生PWM控制信號(hào),控制多種電機(jī)(步進(jìn)電動(dòng)機(jī)、直流電動(dòng)機(jī)、交流電動(dòng)機(jī))的驅(qū)動(dòng)電路。
??? (2)位置反饋,主要用于閉環(huán)和半閉環(huán)數(shù)控系統(tǒng)中。半閉環(huán)系統(tǒng)中,用于檢測(cè)絲杠或電機(jī)軸的回轉(zhuǎn)角,間接測(cè)出機(jī)床運(yùn)動(dòng)部件的位移,經(jīng)位置反饋裝置進(jìn)行處理后通過(guò)總線(xiàn)送回到控制系統(tǒng)和伺服系統(tǒng),并與控制指令相比較,經(jīng)過(guò)位置控制計(jì)算,精確控制電機(jī)的運(yùn)行。閉環(huán)系統(tǒng)中,直接測(cè)出工作臺(tái)的實(shí)際位置,然后通過(guò)位置控制控制電機(jī)運(yùn)行。位置反饋模塊作為單獨(dú)的模塊通過(guò)總線(xiàn)與PC機(jī)進(jìn)行通訊,用戶(hù)可根據(jù)實(shí)際要求設(shè)計(jì)自己的反饋模塊,而與DSP插補(bǔ)板沒(méi)有關(guān)系,從而體現(xiàn)其開(kāi)放性。
??? (3)開(kāi)關(guān)量I/O" title="I/O">I/O控制和輔助功能控制。I/O控制是CNC裝置和機(jī)床驅(qū)動(dòng)部件之間傳遞信息的接口,主要用于接收各種開(kāi)關(guān)、按鈕以及機(jī)床上各行程限位開(kāi)關(guān)等信號(hào)。輔助功能也通過(guò)I/O端口實(shí)現(xiàn),常用的輔助功能有程序停,主軸啟、停、轉(zhuǎn)向,冷卻泵的接通和斷開(kāi),刀庫(kù)的起、停等。
??? (4)故障檢測(cè)功能,主要對(duì)驅(qū)動(dòng)電路、電機(jī)運(yùn)行方面等進(jìn)行故障檢查,對(duì)故障的原因進(jìn)行定位和報(bào)警提示,保護(hù)硬件電路的運(yùn)行。例如電流過(guò)限、短路、斷路、電壓過(guò)高或過(guò)低等硬件故障。由于DSP有錯(cuò)誤自檢的功能,可以自己設(shè)計(jì)軟硬件處理故障的電路,用于保護(hù)DSP的正常運(yùn)行,例如看門(mén)狗電路、 存儲(chǔ)器讀寫(xiě)錯(cuò)誤、指令溢出、過(guò)載等錯(cuò)誤。
??? (5)驅(qū)動(dòng)單元,設(shè)計(jì)三種不同電機(jī)的帶有速度控制的驅(qū)動(dòng)裝置。
??? (6)PC機(jī)功能設(shè)計(jì),完成數(shù)據(jù)參數(shù)的輸入,運(yùn)動(dòng)控制監(jiān)視,手動(dòng)操作,通過(guò)總線(xiàn)與其他實(shí)時(shí)控制單元通信,提供友好的人機(jī)界面,編寫(xiě)各控制單元的通信軟件。
2 軟件開(kāi)放性設(shè)計(jì)
??? 在軟件設(shè)計(jì)方面,許多開(kāi)放式數(shù)控系統(tǒng)均采用面向?qū)ο螅∣OP)的技術(shù),將數(shù)控功能模塊化,構(gòu)建基本類(lèi)庫(kù)。利用派生功能,當(dāng)需要擴(kuò)展某基類(lèi)的功能時(shí),通過(guò)從基類(lèi)中派生出新的基類(lèi)來(lái)完成新的功能,較好地實(shí)現(xiàn)了軟件重用和二次開(kāi)發(fā)的功能。這種傳統(tǒng)的OOP技術(shù)僅僅是軟件源代碼級(jí)的可重用,它存在互操作能力差、可移植性不強(qiáng)、擴(kuò)展不方便等缺點(diǎn),不能很好滿(mǎn)足一個(gè)開(kāi)放式數(shù)控系統(tǒng)所強(qiáng)調(diào)的要求。在數(shù)控系統(tǒng)中引入COM作為底層支持可以更好的滿(mǎn)足數(shù)控系統(tǒng)開(kāi)放的要求。COM技術(shù)中組件的二進(jìn)制級(jí)交互保證了所構(gòu)建出的數(shù)控系統(tǒng)具有良好的可重用性,可以快速方便地?cái)U(kuò)展,而不必再關(guān)注數(shù)控組件的內(nèi)部實(shí)現(xiàn),擴(kuò)充功能時(shí)只需要修改或更換相關(guān)的組件而不必再重新編譯原系統(tǒng),可以快速滿(mǎn)足新的生產(chǎn)需要,提高軟件的開(kāi)發(fā)效率和可維護(hù)性。
??? 為了更好地實(shí)現(xiàn)軟件的重用性和二次開(kāi)發(fā)功能,將與底層無(wú)關(guān)的軟件功能用WDM技術(shù)實(shí)現(xiàn)。WDM(Windows Driver Model)是Microsoft為Windows 98和Windows 2000作業(yè)系統(tǒng)提供一系列I/O服務(wù)及二進(jìn)制相容設(shè)備的驅(qū)動(dòng)方式,有助于減少在Windows平臺(tái)上對(duì)硬件設(shè)定所花費(fèi)的成本。在PC端,PC和運(yùn)動(dòng)控制卡之間進(jìn)行中斷和I/O操作的接口采用WDM實(shí)現(xiàn),將與硬件有關(guān)的操作屏蔽起來(lái)。對(duì)應(yīng)用程序而言,可見(jiàn)的是一個(gè)虛擬化的設(shè)備對(duì)象,PC程序可以根據(jù)任務(wù)的實(shí)時(shí)性來(lái)選擇和控制卡的通訊方式。對(duì)于實(shí)時(shí)性要求高的緊迫任務(wù),如緊急停車(chē)或出錯(cuò)處理,應(yīng)用程序可以用直接寫(xiě)端口的方式向控制卡發(fā)送中斷請(qǐng)求。而對(duì)于一般實(shí)時(shí)性和大批量的數(shù)據(jù)傳輸?shù)娜蝿?wù),應(yīng)用程序可以用與WDM進(jìn)行消息映射的方式完成,然后再完成硬件的相關(guān)操作。通過(guò)模塊化的WDM體系結(jié)構(gòu)中靈活統(tǒng)一的接口,使操作系統(tǒng)可以動(dòng)態(tài)地配置不同的驅(qū)動(dòng)程序模塊來(lái)支持特定的設(shè)備。這樣更好的體現(xiàn)了軟件的重用性和可移植性,利于軟件的二次開(kāi)發(fā)。表1描述了軟件的層次結(jié)構(gòu)。
?
3 DSP插補(bǔ)板的設(shè)計(jì)
??? DSP插補(bǔ)板原理如圖2所示。DSP插補(bǔ)板通過(guò)ISA總線(xiàn)與PC機(jī)通訊,雙口RAM用于PC機(jī)與DSP交換信息,實(shí)現(xiàn)數(shù)據(jù)雙向通訊??刂撇竭M(jìn)電機(jī)時(shí),只需要控制每臺(tái)電機(jī)輸入的步進(jìn)脈沖和轉(zhuǎn)向,就可以控制一臺(tái)步進(jìn)電機(jī),所以步進(jìn)電機(jī)可以直接由F2812 DSP的事件管理器控制,實(shí)現(xiàn)四臺(tái)電機(jī)的聯(lián)動(dòng)??刂扑欧姍C(jī)時(shí),需要控制逆變器的六支開(kāi)關(guān)管(如無(wú)刷直流電機(jī)和交流異步電機(jī))的開(kāi)關(guān)動(dòng)作,用F2812 DSP的EVA、EVB分別控制兩通道的PWM輸出,F(xiàn)PGA控制另兩通道的PWM輸出。FPGA接收DSP數(shù)據(jù)線(xiàn)傳來(lái)的三相脈寬" title="脈寬">脈寬,設(shè)置好死區(qū)寄存器和周期寄存器,完成PWM的輸出控制逆變器六支開(kāi)關(guān)管的動(dòng)作,實(shí)現(xiàn)四軸的聯(lián)動(dòng)。
??? 由于FPGA需要設(shè)計(jì)兩通道的PWM輸出和總線(xiàn)與控制卡的通訊功能,因此所需要的邏輯單元很大。在設(shè)計(jì)仿真后,確定FPGA選用Altera公司的Flex10K系列的EPF10K30A。由于其配置單元為SRAM,屬于易失性可編程器件,編程信息在系統(tǒng)斷電后會(huì)丟失,所以在設(shè)計(jì)FPGA時(shí)就需要外擴(kuò)一個(gè)Flash存儲(chǔ)器,在每次上電工作時(shí),需要從器件外部的Flash中將編程信息寫(xiě)入器件的SRAM中,從而可以進(jìn)行任意次數(shù)的編程、快速編程、實(shí)現(xiàn)板極和系統(tǒng)級(jí)的動(dòng)態(tài)配置,充分體現(xiàn)了硬件的開(kāi)放性設(shè)計(jì)。
4 硬件設(shè)計(jì)
??? 圖3為DSP插補(bǔ)板的硬件接線(xiàn)圖。硬件接線(xiàn)需要注意以下幾個(gè)問(wèn)題:因?yàn)镈SP的時(shí)鐘和FPGA不同,數(shù)據(jù)傳輸不能正常完成,DSP通過(guò)總線(xiàn)向FPGA只寫(xiě)數(shù)據(jù),可以在FPGA中做DPRAM來(lái)實(shí)現(xiàn)DSP與FPGA的數(shù)據(jù)交換,在DPRAM的一側(cè)用DSP時(shí)鐘讀寫(xiě),另一側(cè)用FPGA系統(tǒng)時(shí)鐘讀寫(xiě),可以很好地完成數(shù)據(jù)的讀寫(xiě)交換。DSP的速度較快,為了保證DSP的運(yùn)行速度,外部存儲(chǔ)器需要具有一定的速度,否則DSP訪問(wèn)外部存儲(chǔ)器時(shí)需要加入等待周期,且C2000系列的DSP只能同異步的存儲(chǔ)器直接相接。本設(shè)計(jì)要驅(qū)動(dòng)不同種類(lèi)的電動(dòng)機(jī)的四軸聯(lián)動(dòng),需要的數(shù)據(jù)量比較大,控制算法比較復(fù)雜,選用存儲(chǔ)空間大的CY7C104BV33-12作為外擴(kuò)存儲(chǔ)器。F2812 DSP采用統(tǒng)一尋址方式,CY7C104BV33既可以作為程序存儲(chǔ)器,也可以作為數(shù)據(jù)存儲(chǔ)器。CY7C104BV33采用3.3V供電,可以與DSP直接相接。DSP系統(tǒng)中難免存在5V/3.3V混合供電現(xiàn)象,I/O為3.3V供電的DSP,其輸入信號(hào)電平不允許超過(guò)電源電壓3.3V,5V器件輸出信號(hào)高電平可達(dá)4.4V,長(zhǎng)時(shí)間超常工作會(huì)損壞DSP器件,輸出信號(hào)電平一般無(wú)需變換。本設(shè)計(jì)采用74LVC245A(8位、3.3V)進(jìn)行電平轉(zhuǎn)換,方向控制信號(hào)由DSP的/RD控制。
?
5 PWM發(fā)生器的實(shí)現(xiàn)
??? 圖4為FPGA實(shí)現(xiàn)PWM設(shè)計(jì)框圖,以驅(qū)動(dòng)一臺(tái)電機(jī)6個(gè)功率器件為例。它主要由脈寬寄存器、緩沖寄存器、周期寄存器、死區(qū)寄存器、死區(qū)發(fā)生器、比較器組成。脈寬寄存器接收來(lái)自DSP刷新后送來(lái)的三相PWM信號(hào)脈寬;緩沖寄存器實(shí)現(xiàn)對(duì)脈寬數(shù)據(jù)的緩沖;周期寄存器決定PWM的載波周期;死區(qū)寄存器決定上下橋臂的死區(qū)時(shí)間;比較寄存器將三相脈寬值與三角載波進(jìn)行比較,最后生成三相PWM信號(hào)PA、PB、PC,再經(jīng)過(guò)死區(qū)發(fā)生器處理,最后產(chǎn)生6個(gè)中心對(duì)稱(chēng)的PWM驅(qū)動(dòng)信號(hào),驅(qū)動(dòng)三相逆變器的6個(gè)功率器件。為了實(shí)現(xiàn)三相的同步,將三相脈寬寄存器中的值放入各自的緩沖寄存器中,通過(guò)基準(zhǔn)計(jì)數(shù)器計(jì)數(shù)達(dá)到最大時(shí),發(fā)出三相同步信號(hào)SYN,在SYN下將三個(gè)脈寬值從緩沖寄存器中取出與三角波進(jìn)行比較,達(dá)到三相同步的目的。
?
6 實(shí)驗(yàn)結(jié)果分析
??? 圖5為在MAX PLUSⅡ環(huán)境下仿真的FPGA驅(qū)動(dòng)直流電機(jī)的PWM波形,采用VHDL設(shè)計(jì)的帶有死區(qū)功能的PWM輸出,控制逆變器六支開(kāi)關(guān)管AH、AL、BH、BL、CH、CL。AH、BH、CH設(shè)為高有效,AL、BL、CL設(shè)為低有效,A相占空比50%,B相占空比40%,C相占空比60%。仿真波形符合DSP中EV產(chǎn)生PWM波形的標(biāo)準(zhǔn),證明了FPGA在DSP的控制下能夠很好地完成電機(jī)的控制,F(xiàn)PGA并行擴(kuò)展了DSP的EV模塊功能。
?
??? 本文在開(kāi)放數(shù)控模型的基礎(chǔ)上,提出了一個(gè)經(jīng)濟(jì)、高速的開(kāi)放數(shù)控系統(tǒng)結(jié)構(gòu)模型。該數(shù)控系統(tǒng)在軟硬件平臺(tái)體現(xiàn)出了良好的開(kāi)放性,能控制多種電機(jī)四軸聯(lián)動(dòng),符合開(kāi)放數(shù)控發(fā)展方向。給出了FPGA產(chǎn)生帶死區(qū)功能的PWM輸出的仿真圖形,理論上證明了該結(jié)構(gòu)模型的正確性和可行性。其經(jīng)濟(jì)高效的性能,符合市場(chǎng)發(fā)展的需要。
參考文獻(xiàn)
[1] 劉小敏,王元生.我國(guó)數(shù)控機(jī)床的現(xiàn)狀與發(fā)展.機(jī)械研究與應(yīng)用.2006,4(5):30.
[2] 楊特育.高性能DSP芯片TMS320F2812在電機(jī)控制器中的應(yīng)用.電子元器件應(yīng)用.2006,8(3):56.
[3] 王太勇,王濤.基于現(xiàn)場(chǎng)總線(xiàn)的分布式數(shù)控系統(tǒng)體系結(jié)構(gòu)的研究.制造業(yè)自動(dòng)化,2005,9(9):22.
[4] 蘇奎峰,呂強(qiáng).TMS320F2812原理與開(kāi)發(fā).北京:電子工業(yè)出版社,2005.
[5] 池志田,王保良,黃志堯.基于DSP和FPGA的SVPWM的實(shí)現(xiàn)研究.電氣應(yīng)用,2005,24(6):74.
[6] 王曉明,王玲.電動(dòng)機(jī)的DSP控制.北京:北京航空航天大學(xué)出版社,2004.