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