基于CH365型接口和MCX314As型運動控制器的PCI總線運動控制卡設(shè)計
摘要:以CH365型PCI總線接口和MCX314As型運動控制器為核心硬件,自主研發(fā)了基于運動控制器的PCI總線運動控制卡。該控制卡能夠?qū)崿F(xiàn)4軸位置、速度和S曲線的加減速控制,具有直線、圓弧、位模式插補功能及自動原位搜尋功能,同時具有4路信號輸入和8路通用輸出。
關(guān)鍵詞:運動控制卡;PCI總線;MCX314As;CH365
1 引言
隨著現(xiàn)代科技的發(fā)展,數(shù)控技術(shù)的發(fā)展趨勢是開放式數(shù)控。開放式數(shù)控系統(tǒng)具有即插即用、可移植性、可擴展性和可互操作性特點。PC―NC是目前比較實用的一種開放式數(shù)控系統(tǒng)模式,PC―NC可歸納為3種:PC板插入到NC裝置中;軟件NC;NC板插入到PC中。其中,第一種方案保留原有的數(shù)控系統(tǒng)不變,插入的PC板主要承擔人一機界面、編程和通信等功能,用以提高系統(tǒng)開放性。此方案為目前主流數(shù)控系統(tǒng)廠商采用,可靠性較高但開放性有限。第二種方案的實時性對PC的CPU要求很高。第三種方案是在PC硬件平臺和操作系統(tǒng)的基礎(chǔ)上,采用自主開發(fā)或購買的運動控制卡來實現(xiàn)數(shù)控機床所需的全部功能。其中PC進行非實時處理,實時插補控制由運動控制卡來承擔,采用這種方案設(shè)計的數(shù)控系統(tǒng)開放性好,人一機界面靈活,非常適合非標準數(shù)控機床的開發(fā)。
文中給出了基于第三種方案的運動控制卡設(shè)計方案,采用CH365型PCI總線接口和MCX314As型運動控制器作為核心硬件,實現(xiàn)運動控制卡的4軸位置、速度、S曲線的加減速控制;直線、圓弧、位模式插補功能:自動原位搜尋功能以及4路信號輸入和8路通用輸出。與其他控制卡相比,其位模式插補功能、自動原位搜尋功能及電子齒輪設(shè)計最有特色。
圖1
2 PCI總線接口電路
目前,計算機總線技術(shù)已由ISA總線發(fā)展到PCI總線,PCI的含義是周邊元件互連(peripheral component interconnect)。PCI局部總線是一種高性能的32位/64位地址/數(shù)據(jù)復(fù)用總線,總線時鐘頻率高達33MHz/66MHz,同步控制,猝發(fā)傳送時數(shù)據(jù)傳遞速率高達132MB/s(32位)或264MB/s(64位)[1]。
實現(xiàn)PCI接口的方法有二種:使用復(fù)雜可編程邏輯器件或現(xiàn)場可編程門陣列(如CPLD/FPGA)和使用專用電路(如PCI9052和CH365等)。采用CPLD/FPGA實現(xiàn)PCI接口雖然靈活性高且性能較好,但其IP核的價格較高,而采用專用電路固然靈活性較差,但不影響其使用性能,尤其是可以利用器件生產(chǎn)廠商提供的配套工具,大大簡化設(shè)計和縮短開發(fā)周期,從而降低開發(fā)成本。
目前市場上有多種PCI接口電路.國外的如PLX公司的:PCI90系列,Altera公司的eplok,AMCC公司的S5933等,這些接口電路的性能好、適應(yīng)對象較廣,但價格較昂貴。南京沁恒公司推出一款CH365型PCI接口電路,該器件性能完全滿足PCI接口規(guī)范,雖然頻率較低(16MHz),但可滿足設(shè)計需要且使用方便,價格低于國外產(chǎn)品,性價比高。經(jīng)比較,本設(shè)計采用CH365作PCI接口器件。
CH365具有以下滿足本運動控制卡設(shè)計的性能特點:
實現(xiàn)基于32位PCI總線的從設(shè)備接口:
轉(zhuǎn)換為主動并行接口,8位數(shù)據(jù),16位地址,I/O讀寫,存儲器讀和寫:
可以設(shè)定PCI板卡的設(shè)備標識(Vendol ID、De-vice ID,Class Code等);
支持以字節(jié)、字或雙字為單位對I/O端口或者存儲器進行讀寫:
非突發(fā)存取的實測速度高達7MB/s,讀寫脈沖寬度為30ns~240ns可選,滿足運動控制卡要求:
支持長度達240字節(jié)的I/O端口:
支持低電平有效的本地中斷請求,支持中斷共享:
內(nèi)置4μs~1ms的硬件計時單元,用于軟件運行過程中的延時參考[2]。
3 運動控制器
目前傳統(tǒng)的運動控制器多采用嵌入式高性能單片機(如MC6833l微控制器)或DSP(TMS320xxx或DSP56xxx)來實現(xiàn),系統(tǒng)集成度不夠高,電路復(fù)雜,且軟、硬件研制周期長,性能一致性較難保證。采用專用運動控制器可以提高系統(tǒng)集成度、插補速度及可靠性,同時簡化電路,縮短開發(fā)周期。
目前市場上有多種運動控制器,如美國的PMD公司,日本的NOVA、KY()PAL、SEEK公司的產(chǎn)品。本設(shè)計采用日本NOVA公司的MCX314As,它是MCX314的改進型,能夠同時控制4個伺服馬達或步進馬達,能以脈沖串形式輸出,對伺服馬達和步進馬達進行位置控制、插補驅(qū)動速度控制等。具有許多突出功能。
(1)以固定速度或加/減速度輸出指定數(shù)量的脈沖達到定量驅(qū)動;連續(xù)輸出驅(qū)動脈沖,直至高位的停止命令或外部的停止信號有效時停止實現(xiàn)連續(xù)驅(qū)動。用于快速歸零原點開關(guān)搜尋、掃描操作、控制馬達旋轉(zhuǎn)連續(xù)驅(qū)動速度等。
(2)設(shè)定各線段的加/減速曲線為定速、直線(梯形)加/減速或S曲線加/減速,使用S曲線加/減速可使運動更平滑,但降低了總速度。
(3)每個控制軸都有2個用于控制當前位置的32位可逆計數(shù)器,一個是在器件內(nèi)部管理驅(qū)動脈沖輸出的邏輯位置計算器,另一個是管理來自外部編碼器脈沖的實際位置計數(shù)器;另外每個軸還有2個32位比較寄存器,用于比較邏輯位置計數(shù)器和實際位置計數(shù)器的位置大小,可作為軟件限位控制。
(4)可以任選2軸或3軸,進行直線插補、圓弧插補、位模式插補驅(qū)動。插補坐標范圍是從當前位置到一8,388,608~+8,388,608之間,在整個指定的直線插補范圍內(nèi)的插補精度是+0.5LSB.插補速度范圍是1pps~4Mpps;位插補驅(qū)動可以產(chǎn)生任何插補曲線;同時可以進行直線插補→圓弧插補→直線插補的連續(xù)插補驅(qū)動,連續(xù)插補時最高達2Mpos。
(5)加/減速驅(qū)動的定速開始時、定速完畢時、驅(qū)動完畢時、位置計數(shù)器和比較器之間的大小關(guān)系變化時均會產(chǎn)生中斷。此外,連續(xù)插補、位模式插補發(fā)生下一個數(shù)據(jù)請求時位置限制也會產(chǎn)生中斷。
其他功能主要有外部信號控制的驅(qū)動操作、脈沖輸出/輸入方式的選擇、硬件限制信號輸入、緊急停止、每軸具有8個通用輸出信號和4個通用輸入信號、驅(qū)動狀態(tài)的輸出[3]。
4 控制卡系統(tǒng)設(shè)計
4.1控制卡硬件結(jié)構(gòu)設(shè)計
控制卡硬件結(jié)構(gòu)如圖1所示。PCI端的主要信號有地址、數(shù)據(jù)多路復(fù)用的輸入/輸出信號(AD[3l-O])、總線命令和字節(jié)使能多路復(fù)用信號(CBE[3-O])、奇偶校驗信號(PAR)、幀周期信號(FRAME)、發(fā)起設(shè)備準備好信號(IRDY)、目標設(shè)備準備好信號(TRDY)、初始化設(shè)備選擇信號(IDSEL)、設(shè)備選擇信號(I)EVSEL)、時鐘輸入信號(CLK)、復(fù)位信號(RST)和中斷信號(INTA)。這些信號完全符合:PCI規(guī)范的要求。
控制卡本地端使用的信號主要有雙向數(shù)據(jù)信號(D[7-0]),地址信號(A[14―0]),獨立輸出控制信號A15,I/O端口讀/寫控制信號(IOP_RD,IOP_WR)及中斷信號(INTA)。CH365在I/O讀寫控制時只用到8根地址線A[7―0]。在本系統(tǒng)中,低4位地址信號A[3―0]作為MCX314As中寄存器的地址信號直接連到MCX314As,高4位A[7―4]作為譯碼電路的輸入信號來產(chǎn)生MCX314As的片選信號,A[14―8]空閑不用,獨立輸出控制信號A15作為控制是否啟用電子齒輪電路的選通開關(guān)信號。
對于MCX314As,其RSq、端與CH365共用,該輸入把:MCX314As的RESETN置為低電平且大于4周期以上時,執(zhí)行復(fù)位。CS端為MCX314As的片選信號,由CPLD中的譯碼電路模塊產(chǎn)生。H16L8端接地,設(shè)置電路處于8位數(shù)據(jù)總線訪問方式,這是因為CH365的數(shù)據(jù)傳輸是8位。也正因為這樣,本系統(tǒng)只用到MCX314As的16位數(shù)據(jù)總線D[15:0]中的D[7:0],而D[15:8]要經(jīng)高電阻接至+5V。RD和WR分別為MCX314As的讀、寫信號線,當它們?yōu)榈碗娖綍r,可以對MCX314As進行寄存器的讀寫操作。需要特別注意的是由于本系統(tǒng)采用8位數(shù)據(jù)傳輸,所以對于MCX314As中的16位寄存器分為高8位和低8位地址,讀寫操作必須訪問2次。A[3:0]用來選擇MCX314As的寄存器地址。BLTSYN連接MCX314As忙信號,處于低電平時不能執(zhí)行寫入命令。MCX-314As只有一個中斷INTN,所有中斷源都需進行“或運算”后輸出到中斷信號端口。與其他運動控制卡相比,本運動控制卡的最大特色是具有位插補功能、自動原位搜尋功能及電子齒輪設(shè)計。
與直線、圓弧插補相比,位插補不是由幾個參數(shù)和指令來產(chǎn)生任一特定的運動控制(如直線、圓弧等),它需要由上位機提供所有的插補數(shù)據(jù)。而這種插補模式卻有很大的適應(yīng)性,它對插補數(shù)據(jù)沒有任何形式的限制,這無疑為實現(xiàn)樣條插補、特殊函數(shù)曲線插補提供了方便,使得本運動控制卡在加工復(fù)雜輪廓曲線的工件時有很大的優(yōu)越性,尤其適用于仿形機上的應(yīng)用。由于位插補需要大量的插補數(shù)據(jù),因此如何生成和管理這些數(shù)據(jù)就成為位插補模式應(yīng)用的關(guān)鍵。一般來講,插補數(shù)據(jù)都是由上位機提前生成的,這樣,如何管理這些數(shù)據(jù)使其能及時寫入而讓插補連續(xù)進行就成為本設(shè)計系統(tǒng)的一個關(guān)鍵。針對這些數(shù)據(jù)“先進先出”的特點.本設(shè)計系統(tǒng)采用隊列管理機制,并結(jié)合MCX314As中的堆棧計數(shù)器(SC),利用中斷不斷地將插補數(shù)據(jù)寫入MCX314As中的4個(正反向各2個)數(shù)據(jù)緩沖區(qū),從而保證了位插補的連續(xù)性。位插補的終止有2種方式:向正反方向各2個緩沖區(qū)都寫入l;上位機停止寫入數(shù)據(jù)。
自動原位搜尋功能有助于機床快速歸零到機床參考點。在此功能下,設(shè)計系統(tǒng)按選定軸負方向高速驅(qū)動至原點附近,然后以低速驅(qū)動直到原點信號或編碼器Z信號激活而停止。再以設(shè)定的驅(qū)動速度往正方向快速歸零到機床參考點。與其他控制系統(tǒng)的通過程序?qū)崿F(xiàn)機制相比,該功能更為簡單方便。
在3軸極坐標螺旋仿形加工中,要求其中2軸(極徑、極角)按工件外形輪廓曲線聯(lián)動插補。第三軸按設(shè)定的螺距跟隨極角坐標軸進給。在一般三軸加工中,上位機發(fā)送來的加工數(shù)據(jù)都為3維增量坐標,這里的第三軸增量坐標數(shù)據(jù)由設(shè)定的螺距決定,而M(2X314As的速度是按合成速度來控制的,這樣就會出現(xiàn)下述情況:當粗加工螺距設(shè)定很大時。第三軸數(shù)據(jù)值就大,速度分量也很大,導(dǎo)致其它2軸速度分量大大降低,影響加工效率與質(zhì)量。考慮到這種情況,本系統(tǒng)基于電子隨動原理設(shè)計了電子齒輪,1軸可以按設(shè)定的比率從動于其他3軸中的任意l軸(類似機械齒輪傳動),也可以解除這種從動關(guān)系的設(shè)定。在電子齒輪關(guān)系機制下,上述的3軸極坐標螺旋仿形加工就只需2軸數(shù)據(jù),而第三軸按設(shè)定的傳動比率跟隨前者中的某一軸,從而理想地解決了這個難題。
為了提高反饋脈沖的分辨率,本設(shè)計系統(tǒng)還采用了4倍頻電路設(shè)計,對電動機的編碼反饋脈沖進行4倍頻處理。
為了提高板卡的集成度,本系統(tǒng)使用VHDL硬件描述語言在(2PLD(MAX7000)中實現(xiàn)系統(tǒng)所需的一些外圍電路。如地址譯碼(用于產(chǎn)生M(2X314As的片選信號)、4倍頻電路、電子齒輪電路、速度倍率手輪譯碼等,限于篇幅,不再介紹。
系統(tǒng)對電機的控制脈沖由MCX314As產(chǎn)生,并根據(jù)需要選擇是否采用電子齒輪傳動方式,然后經(jīng)差分驅(qū)動輸出驅(qū)動器產(chǎn)生差分驅(qū)動輸出,既可以控制數(shù)字式交流伺服驅(qū)動器,也可以控制步進電機驅(qū)動器。電機編碼器反饋信號(A、B、Z)經(jīng)過高速光電隔離后輸入CPLD,經(jīng)過4倍頻后傳輸給MCX314As的實際位置寄存器,用于位置顯示和軟件限位。通用輸出信號經(jīng)過74LS06型輸出緩沖器輸出。外部反饋脈沖(如超程限位信號、原位搜索信號等)及外部手動控制信號要經(jīng)過光電隔離才能輸入MCX314As。
本系統(tǒng)采用MCX314As默認的16MHz頻率作為時鐘信號。該時鐘決定了每個軸的正/負方向的驅(qū)動脈沖時間周期。圖2示出MCX314As的時鐘電路[4]。
4.2控制卡系統(tǒng)的軟件設(shè)計
控制卡系統(tǒng)的軟件設(shè)計主要是板卡驅(qū)動程序設(shè)計、CPLD硬件語言描述程序和MCX314As功能驅(qū)動函數(shù)設(shè)計。本系統(tǒng)的驅(qū)動程序主要是圍繞(2H365來實現(xiàn)該板卡與PC的接口功能,選用DriverStudio 2.6開發(fā)工具,快速有效地開發(fā)了在Windows環(huán)境下用戶級的WDM設(shè)備驅(qū)動程序,向該板卡的運用程序提供I/O基址、中斷號等。CPLD硬件語言描述程序是用VHDL編寫的,主要實現(xiàn)M(2X314As的片選信號、4倍頻電路、電子齒輪電
路、速度倍率手輪譯碼等外圍電路功能。MCX314As的功能驅(qū)動函數(shù)設(shè)計是用于MCX314As的初始化、速度和加速度設(shè)置、直線插補、圓弧插補、歸零搜索(1IOME)、硬件限位、位插
補、數(shù)字信號的輸入/輸出和中斷信號處理等功能函數(shù)設(shè)計。限于篇幅,這里只給出位插補的程序流程,如圖3所示。
5 結(jié)束語
使用高集成度的MCX314As型運動控制器能實現(xiàn)4軸控制或3軸聯(lián)動的位置、速度、加速度控制,并能實現(xiàn)直線、圓弧、位3種模式的連續(xù)插補,具有接口簡單、易于編程、工作可靠的特點。采用CH365作為PCI―ISA的橋接口,大大簡化了PCI接口的設(shè)計。與其他以DSP或微控制器為控制核心的運動控制器相比,本設(shè)計雖然在功能多樣性和靈活性上不如后者,但具有可靠性高、實時性好、適合列表曲線仿型加工時犬數(shù)據(jù)量快速連續(xù)加工的特點。
評論