DSP+FPGA在高速高精運動控制器中的應用
運動控制卡已經(jīng)在數(shù)控機床、工業(yè)機器人、醫(yī)用設備仆加、繪圖儀、IC電路制造設備缚庐、IC封裝等領域得到了廣泛運用唁奢,取得了良好的效果。目前運動控制卡大部分采用8051系列的8位單片機,雖然節(jié)省了開發(fā)周期但缺乏靈活性麻掸,難以勝任高要求運作環(huán)境酥夭,而且運算能力有限。
DSP的數(shù)據(jù)運算處理功能強大论笔,即使在很復雜的控制中采郎,采樣周期也可以取得很小,控制效果更接近于連續(xù)系統(tǒng)狂魔。把DSP與PC的各自優(yōu)勢結合將是高性能數(shù)控系統(tǒng)的發(fā)展趨勢蒜埋。本運動控制器采用TI公司的高性能浮點DSP作為主控芯片,通過ISA接口與PC協(xié)調(diào)并進行數(shù)據(jù)交換最楷,以PC計算機作為基本平臺整份,以DSP高速運動控制卡作細插補、伺服控制的核心籽孙,對直線電機的運動進行控制烈评,取得了良好的實際應用效果。
1犯建、高速高精運動控制卡的主要硬件構成
本運動控制系統(tǒng)的任務是控制直線電機的運動该捎,要求4軸輸入和4軸輸出,采用光柵尺對輸入計數(shù)张相,16位并行高速DA輸出枝扭,運動定位精度要求達到10nm,響應時間<100ns蝗腻。
高速直線電機是本系統(tǒng)的控制對象孵钱,它具有加速快(a>10g),運動速度高(v>300mm/s)的特點拓币。要求控制系統(tǒng)有足夠短的響應時間(<100ns)和足夠高的定位精度(10nm級)昏滔,因而系統(tǒng)的核心CPU的處理能力及運算能力必須滿足高速要求;此外琳宽,直線電機運動定位的核心是高精度的反饋控制裝置挫肆。直線電機的反饋控制裝置是光柵尺和高精度脈沖計數(shù)器,光柵尺發(fā)出與運動距離成線性關系的脈沖數(shù)泛邮,脈沖計數(shù)器的計數(shù)值表示直線電機當前的運動位置料离。經(jīng)計算,計數(shù)長度為28位的計數(shù)器才能滿足定位的精度要求锭汛,同時計數(shù)頻率很高笨奠。一般的通用計數(shù)器參數(shù)無法達到袭蝗,所以設計一個特殊計數(shù)器是必要的唤殴。為了方便設置目標點的運動參數(shù),使運動控制卡具有比較好的人機交互功能,系統(tǒng)必須具有與PC機通信的功能朵逝。
綜合考慮上述要求蔚袍,系統(tǒng)的設計采用DSP+FPGA的形式,由DSP主控芯片作為中央處理模塊配名,F(xiàn)PGA作為反饋計數(shù)模塊且負責板上的部分邏輯譯碼工作啤咽,PC通信接口模塊采用雙口RAM,輸出模塊用D/A轉換器實現(xiàn),如圖1所示渠脉。
1.1 DSP模塊
基于DSP的運動控制系統(tǒng)一般采用TI公司的TMS320C24x系列芯片宇整,但24x系列是16位定點處理器,運算能力有限芋膘。不能滿足本系統(tǒng)規(guī)劃的高速高精要求鳞青,為此,我們選用了TI公司的TMS320C32 DSP作為主控芯片凡矿。
TMS320C3X系列芯片是美國TI公司推出的第一代浮點DSP芯片键先,具有豐富的指令集、很高的運算速度紊竹、較大的尋址空間和較高的性價比牺道,在各領域得到了廣泛的應用。TMS320C32是TMS320系列浮點數(shù)字信號處理器的新產(chǎn)品壹会,在TMS320C30和TMS320C31的基礎上進行了簡化和改進颈顽。在結構上的改進主要包括可變寬度的存儲器接口、更快速的指令周期時間销顷、可設置優(yōu)先級的雙通道DMA處理器受卒、靈活的引導程序裝入方式、可重新定位的中斷向量表以及可選的邊緣/電平觸發(fā)中斷方式等灼烫。
對TMS320C32的開發(fā)可以用匯編語言筋蝴,也可以用C語言。使用匯編語言的優(yōu)點在于運行速度快窄忱、可以充分利用芯片的硬件特性岛涝,但開發(fā)速度較慢,程序的可讀性差糟秘;而C語言的優(yōu)勢在于編程容易简逮、調(diào)試快速、可讀性好尿赚,可以大大縮短開發(fā)周期散庶,但C語言對于其片內(nèi)的沒有映射地址的特殊功能寄存器不能操作,如IF和IE凌净,AR0~AR7等悲龟。
1.2 FPGA模塊
該部分主要功能為一個4通道的針對光柵尺的脈沖計數(shù)器屋讶,此外,還承擔部分地址譯碼的工作须教。但由于脈沖計數(shù)頻率高皿渗,計數(shù)量大,所以必須選擇高容量轻腺、高性能的可編程邏輯器件乐疆。
ALTERA FLEX(Flexible Logic Element Matrix)10K 系列FPGA,規(guī)模從一萬門到十萬門,可提供720~5392個觸發(fā)器及6144~24576位RAM,提供30ns贬养、40ns及50ns等幾個速率等級挤土,可適應18~105MHz的信號處理速率。ALTERA FLEX10K系列FPGA主要由輸入輸出單元IOE郎博、掩埋陣列EAB传撰、邏輯陣列LAB及內(nèi)部連線組成。EAB是在輸入和輸出端口加有寄存器的RAM塊,其容量可靈活變化呛产。所以,EAB不僅可以用于存儲器,還可以事先寫入查表值來用它構成如乘法器距搂、糾錯邏輯等電路。當用于RAM時,EAB可配制成多種形式的字寬和容量治勒。
LAB主要用于邏輯電路設計,一個LAB包括8個邏輯單元LE,每一個LAB提供4個控制信號及其反相信號,其中兩個可用于時鐘信號恰磷。每一個LE包括組合邏輯及一個可編程觸發(fā)器。觸發(fā)器可被配成D,T,JK,RS等各種形式路倔。IOE提供全局的時鐘及清零信號輸入端口,還提供具有可編程性的各種輸入輸出端口熏屎,如低噪聲端口、高速端口等逮赋。
FLEX10K系列芯片是ALTERA公司新近推出的PLD產(chǎn)品京嗽。與ALTERA公司先前推出的MAX7000系列EPLD相比,F(xiàn)LEX10K(以下簡稱10K)系列具有更加豐富的內(nèi)部資源(最多可達10萬門)卓奄,更加充裕的可配置的I/O管腳(最多達406條)墨叛。再加上其低廉的價格,使得10K系列芯片受到越來越多用戶的歡迎模蜡。
基于以上原因漠趁,我們在本方案中采用ALTERA FLEX10K10,并且考慮到以后設計的連續(xù)性忍疾,我們可以無需更改硬件電路闯传,就可以更換性能更高的、相同尺寸卤妒、相同管腳配置的ALTERA FLEX10K20甥绿。
1.3 PC通信接口模塊
該模塊選用16位的ISA總線與PC相連,CY7C133雙口RAM用作數(shù)據(jù)緩沖则披。
ISA總線的使用十分靈活共缕、方便纬朝,而且I/O操作比較簡單。雖然ISA總線的引腳多但并不是都要用到的骄呼,關鍵是幾個固定引腳的應用,例如:I/O CH RDY判没、I/OR蜓萄、I/OW、ALE钳生、數(shù)據(jù)線和地址線秤慌,結合起來實現(xiàn)通信。
在本系統(tǒng)中孕称,雙口RAM的 PC端地址線并沒有直接采用ISA過來的地址線式涝,而是由FPGA內(nèi)部地址計數(shù)器給定。這是因為酝遇,ISA總線上大部分地址都已經(jīng)被PC系統(tǒng)分配好图汪,直接把2K的雙口RAM數(shù)據(jù)空間映射到ISA總線上并不現(xiàn)實;而且控制系統(tǒng)與PC交換的數(shù)據(jù)基本上是一系列加工點的坐標參數(shù)驳芙,采用順序訪問對性能沒有影響讳汇。因此采用地址計數(shù)器方式的順序訪問,完全能夠達到設計的要求掰闯。
具體做法是:ISA地址線的A2~A9接到地址比較器74LS688枪第,與設定好的地址作比較,74LS688的片選信號由ISA的IOR和IOW的“與”提供(IOR和IOW在ISA總線訪問端口時低有效)的钞,A0兜蠕,A1接到FPGA,用于選擇FPGA內(nèi)部4個功能不同的寄存器抛寝。ISA的ALE用于觸發(fā)FPGA 內(nèi)部邏輯功能熊杨,鎖存ISA總線過來的信號,如圖2所示盗舰。
當訪問地址清零寄存器時猴凹,地址計數(shù)值清零;當訪問地址增加寄存器時岭皂,地址計數(shù)值增加“1”郊霎。如此類推,訪問不同的寄存器就對地址計數(shù)值完成不同的操作爷绘,把地址計數(shù)值直接作為地址送給雙口RAM书劝,就可以實現(xiàn)ISA總線訪問雙口RAM了。
1.4 輸出模塊
輸出模塊采用模擬輸出土至,經(jīng)外部放大驅動電機的方案购对。D/A轉換芯片選擇DAC7744猾昆。
DAC7744是高性能的4通道16位高速D/A,主要特點如下:
● 輸出通道:獨立4 路
● 輸出信號范圍:0~5V协包;0~10V帅珍;±5V;±10V
● 輸出阻抗:≤2Ω
● D/A轉換器件:DAC7744
● D/A轉換分辨率:16位
● D/A轉換碼制:二進制原碼(單極性) 二進制偏移碼(雙極性)
● D/A轉換時間:≤1μs
● D/A轉換綜合誤差:≤0.02% FSR
● 電壓輸出方式負載能力:5mA/路
1.5 存儲模塊
存儲模塊用于存儲系統(tǒng)程序和數(shù)據(jù)幔憋,主要由SRAM(2片CY7C1021)和FLASH(AM29F400B)組成司报。外圍存儲電路如圖3所示。
2全乙、軟件設計
該運動控制卡應用時插在工控機的ISA槽上偎洋,與上位機配合工作。首先在上位NC機輸入加工曲線侄伟,由上位機做粗插補睁奶,然后把數(shù)據(jù)通過ISA接口傳遞給控制卡∑参控制卡對接收到的數(shù)據(jù)再做細插補——采用三次B樣條插值,然后發(fā)送給DA爵蝠,驅動電機運動。DSP通過FPGA進行脈沖計數(shù)汪仰,讀出直線電機光柵尺的反饋信息懒披,然后采用離散PID控制算法調(diào)整,以便于電機運動控制的最優(yōu)化剖张。
運動控制算法的核心是先用B樣條插值法把目標點進一步細化切诀,使運動曲線更平滑,然后在運動過程中采用PID算法進行調(diào)整搔弄,最終達到高速高精的設計要求幅虑,圖3給出了系統(tǒng)軟件流程圖。
2.1 B樣條插值
目前許多先進的CAD/CAM系統(tǒng)都采用了B樣條曲線顾犹。其特點是倒庵,可用統(tǒng)一的數(shù)學形式精確表示分析曲線(如直線,圓錐曲線等)和自由曲線(如均勻B樣條曲線等)炫刷,因而便于用統(tǒng)一的數(shù)據(jù)庫管理擎宝、存儲,程序量可以大大減少浑玛;非均勻B樣條曲線定義中的權因子使外形設計更加靈活方便绍申,設計人員通過調(diào)整具有直觀幾何意義的點、線顾彰、面元素即可達到預期的效果极阅。
本系統(tǒng)采用三次B樣條曲線作為精插補算法,該算法應用在控制卡中可以得到比較滿意的效果蜻罕。計算過程中只需要相鄰4個點的位置數(shù)據(jù),(x0,y0)蛹鼎,(x1,y1)样京,(x2,y2),(x3,y3)列充,就可以構造出平滑的曲線品痕。
公式以坐標分量形式表示為:
2.2 PID控制
在控制領域中,PID控制算法是一種常用的算法频咨,PID是比例府贰、積分、微分的縮寫霹链。PID的合理的參數(shù)估計、比較梨脖,可以通過MATLAB的傳遞函數(shù)模型仿真來得到厦绪。
由于該系統(tǒng)是數(shù)字系統(tǒng),采用的都是數(shù)字量屎螟,所以必須把PID算法離散化才能使用逛镶。又由于系統(tǒng)的存儲空間有限,算法的存儲空間開銷不能太大疗韵,所以采用了離散化的增量式PID算法兑障。該算法在運算過程中只需要保留最近3次的誤差數(shù)據(jù),就能夠推導出下一次的輸出量蕉汪,節(jié)省了大量的數(shù)據(jù)空間流译,提高了運算速度,有很強實用價值者疤。
公式如下:
μ( k )福澡,μ( k-1 )分別是k和k-1時刻的輸出量,在系統(tǒng)中體現(xiàn)為DA的輸出量驹马。
e( k )革砸,e( k-1 ),e( k-2 )分別是k糯累,k-1算利,k-2 時刻的偏差值,在系統(tǒng)中體現(xiàn)為該時刻實際位置與目標位置的偏差泳姐。
T效拭,Td,Ti门烧,Kp是PID公式的常量辨头,不同的數(shù)值代表著PID系統(tǒng)的微分、積分翠冻、比例調(diào)節(jié)作用的強度和效果曙早。
3色矿、小結
在開放式數(shù)控系統(tǒng)中應用基于DSP+FPGA的運動控制卡,DSP承擔了CNC系統(tǒng)中實時性要求較高的模塊功能邻冷。利用DSP高速運算能力和實時信號處理能力决癞,采用先進的Bspline插補算法,使該DSP運動控制卡具有高速妆跌、高精度的性能榴廷,結合FPGA芯片的先進技術,使該運動控制卡的集成性证账、可靠性大大提高钢战。本運動控制卡目前是基于ISA總線設計的,今后將考慮把該系統(tǒng)移植到PCI總線上除踱,將能進一步提高系統(tǒng)的處理速度能力弟头,適應更高要求。
聲明:本網(wǎng)站所收集的部分公開資料來源于互聯(lián)網(wǎng)涉茧,轉載的目的在于傳遞更多信息及用于網(wǎng)絡分享赴恨,并不代表本站贊同其觀點和對其真實性負責,也不構成任何其他建議伴栓。本站部分作品是由網(wǎng)友自主投稿和發(fā)布伦连、編輯整理上傳,對此類作品本站僅提供交流平臺钳垮,不為其版權負責惑淳。如果您發(fā)現(xiàn)網(wǎng)站上所用視頻、圖片饺窿、文字如涉及作品版權問題汛聚,請第一時間告知,我們將根據(jù)您提供的證明材料確認版權并按國家標準支付稿酬或立即刪除內(nèi)容短荐,以保證您的權益倚舀!聯(lián)系電話:010-58612588 或 Email:editor@mmsonline.com.cn。
- 暫無反饋