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