摘 要:根據(jù)運(yùn)動(dòng)控制系統(tǒng)高可靠性要求,結(jié)合CPCI總線技術(shù)的獨(dú)特優(yōu)勢(shì),開發(fā)一種具有熱插拔功能的運(yùn)動(dòng)控制卡。該卡使用的先進(jìn)技術(shù)保證了系統(tǒng)傳輸?shù)母咚倏煽坎⑶沂沟孟到y(tǒng)具有熱插拔功能,在使用及維修時(shí)更加便捷。板卡的硬件部分包括CPCI總線接口、熱插拔控制器及運(yùn)動(dòng)控制電路,驅(qū)動(dòng)程序采用WinDriver進(jìn)行編寫。運(yùn)動(dòng)控制卡已經(jīng)在汽車駕駛機(jī)器人系統(tǒng)中應(yīng)用。結(jié)果表明:該運(yùn)動(dòng)控制卡性能穩(wěn)定、操作方便,具有廣泛的應(yīng)用前景。
關(guān)鍵詞:CPCI總線;PCI9030;熱插拔;運(yùn)動(dòng)控制;驅(qū)動(dòng)程序
Design of Motion Control Board Based on CPCI Bus
WEI Wei,ZANG Weigong,E Li
(chool of Instrument cience and Engineering,outheast University,Nanjing,210096,China)
Abstract:According to requirement of high reliability in motion control system,a design of hot swap motion control board based on CPCI bus is presented in this paperhe card uses advanced technology to ensure high speed,reliable transmission system and a hot swap function allowing the system more convenient in the usage and maintenancehe hardware is consti[CD4]tuted of three parts:CPCI bus interface,hot-swap controllers and motion control circuithe driver is programmed by WinDriverhis motion control card has been used in vehicle driver robot,final result indicates that the card runs stability,is easy to operate and has wide application prospects
Keywords:CPCI bus;PCI9030;hot swap;motion control;driver program
1 引 言
近年來(lái),隨著對(duì)系統(tǒng)可靠性需求的日益增加,CPCI總線以其獨(dú)特的優(yōu)勢(shì)被廣泛地應(yīng)用在工業(yè)控制中。由于CPCI總線支持熱插拔,這種方式就保證在不影響系統(tǒng)運(yùn)行的前提下,可以對(duì)其中的任意板卡進(jìn)行檢測(cè)及維修。這樣就提高了基于CPCI總線的運(yùn)動(dòng)控制系統(tǒng)的靈活性,同時(shí)對(duì)應(yīng)用在該系統(tǒng)上的運(yùn)動(dòng)控制卡的需求也會(huì)越來(lái)越大。因此急需開發(fā)一款基于CPCI總線的、高性能、高可靠性的運(yùn)動(dòng)控制卡以滿足運(yùn)動(dòng)控制系統(tǒng)發(fā)展的需要。
2 CPCI總線簡(jiǎn)介
CPCI全稱為CompactPCI,中文又稱緊湊型PCI,是國(guó)際PICMG協(xié)會(huì)于1994年提出來(lái)的一種總線接口標(biāo)準(zhǔn)。它是以PCI電氣規(guī)范為標(biāo)準(zhǔn)的高性能工業(yè)用總線。
CPCI總線相對(duì)于PCI具有以下優(yōu)點(diǎn):
(1) 具有更好的機(jī)械特性。它增強(qiáng)了電信設(shè)備或其他惡劣工業(yè)環(huán)境中的PCI系統(tǒng)的可維護(hù)性和可靠性;
(2) 采用Eurocard封裝,系統(tǒng)中氣流均勻;
(3) CompactPCI連接器的電源和信號(hào)引線支持熱插拔規(guī)范,這對(duì)于容錯(cuò)系統(tǒng)是非常重要的,也是標(biāo)準(zhǔn)PCI所不能實(shí)現(xiàn)的功能;
(4) 總線易于擴(kuò)展,可同時(shí)支持多達(dá)26個(gè)標(biāo)準(zhǔn)的PCI總線設(shè)備;
() CompactPCI背板的連接器插針?lè)譃殚L(zhǎng)針、中長(zhǎng)針和短針。長(zhǎng)針是一些電源針,最短的針是BD-EL#,其他總線信號(hào)和部分電源信號(hào)是中長(zhǎng)針。
3 硬件設(shè)計(jì)
該運(yùn)動(dòng)控制卡的系統(tǒng)結(jié)構(gòu)圖如圖1所示。系統(tǒng)采用專用接口芯片PCI9030實(shí)現(xiàn)運(yùn)動(dòng)控制芯片MCX314與CPCI總線的高速通信;使用時(shí)通過(guò)正確配置E2PROM(93C66L)的參數(shù)來(lái)完成PCI9030的初始化;用熱插拔控制器LC1643L實(shí)現(xiàn)運(yùn)動(dòng)控制卡的熱插拔功能。下面對(duì)各個(gè)部分進(jìn)行一一介紹:
31 CPCI總線接口
由于CPCI總線規(guī)范較為復(fù)雜,為了降低設(shè)計(jì)難度,縮短開發(fā)時(shí)間,本系統(tǒng)采用采用PLX公司的專用接口芯片PCI9030實(shí)現(xiàn)CPCI的總線接口。PCI9030是業(yè)界首個(gè)支持熱交換的接口芯片,為CPCI接口提供了優(yōu)秀的解決方案。它采用MARarget技術(shù),可以保證高性能的熱交換實(shí)施功能,可以支持具有熱交換功能的PICMG21目標(biāo)設(shè)備,并且符合PCIv 22規(guī)范所規(guī)定的32位33 Mz目標(biāo)接口功能,可以獲得高達(dá)132MB/s的PCI突發(fā)傳輸速度,局部總線操作速度高達(dá)60 Mz,支持個(gè)局部地址空間到PCI總線地址空間的映射(空間0,1,2,3,4及1個(gè)擴(kuò)展的ROM),傳輸?shù)却芷诩翱偩€寬度可編程。另外,PCI9030內(nèi)含預(yù)充電BIO、早期電源支持、熱交換控制/狀態(tài)寄存器(-CR)和附加引腳資源,可利用這些資源以及ENUM#,CPCIW和LEDon#實(shí)現(xiàn)運(yùn)動(dòng)控制板卡的帶電熱插拔的軟硬件控制。由于PCI9030完全符合PCIv22規(guī)范,所以只需將對(duì)應(yīng)管腳互聯(lián)即可,這里不再贅述。但需注意要將需要預(yù)充電的總線引腳上拉至預(yù)充電電壓,PME#,R#,ENUM#,INA#上拉至PCI的I/O工作電壓VI/O,且R#接至總線EAL#與PCI-R#的組合邏輯輸出端。
32 E2PROM與PCI9030連接
E2PROM用來(lái)對(duì)完成PCI9030的初始化,在整個(gè)系統(tǒng)中起著極其重要的作用。本系統(tǒng)的E2PROM選用National公司的NM93C66L。它是一個(gè)4 kB的低功耗串行存儲(chǔ)器,用來(lái)存儲(chǔ)PCI9030的配置信息并在芯片復(fù)位時(shí)進(jìn)行加載,從而使運(yùn)動(dòng)控制卡具有即插即用的功能。其與PCI9030的連接原理圖如圖2所示。其中,NM93C66L的片選信號(hào)C、串行時(shí)鐘信號(hào)K、數(shù)據(jù)輸入DI和數(shù)據(jù)輸出信號(hào)DO分別與PCI9030對(duì)應(yīng)的信號(hào)相連;保護(hù)寄存器使能信號(hào)PRE接地來(lái)使能對(duì)存儲(chǔ)空間的操作,同時(shí)禁止對(duì)保護(hù)寄存器的操作;編程使能信號(hào)PE接33 V來(lái)允許對(duì)存儲(chǔ)區(qū)的操作。
33 熱插拔控制器與CPCI總線的連接:
為了使板卡在熱插拔的過(guò)程中,不對(duì)CPCI總線產(chǎn)生沖擊,不影響CPCI總線上數(shù)據(jù)的傳輸,則需要一個(gè)良好的電源切換控制電路。這里選用LC1643AL實(shí)現(xiàn)這一功能。LC1643AL與CPCI總線的連接原理圖如圖3所示。[FL)]
在上電過(guò)程中,33 V和 V電源由N溝道通路晶體管控制通斷,±12 V電源由內(nèi)部通路晶體管控制。電阻R1和R2提供電流失效檢測(cè),R和C1提供電流補(bǔ)償,R3和R4用來(lái)防止在Q1和Q2處的高頻震蕩。當(dāng)ON#腳被拉低時(shí),通路晶體管被打開且[GK!3]將有22 μA的電流源連接到IMER腳。隨著經(jīng)過(guò)通路晶體管電流的逐漸增加,供電電壓達(dá)到限制值。每種電源的上電速率由62 μA/C1所決定。在IMER腳的電壓小于12 VIN-09 V的過(guò)程中,電流限制失效檢測(cè)被忽略。一旦4種供電電壓達(dá)到正常范圍,PWRGD#將會(huì)被拉低。
對(duì)于CPCI數(shù)據(jù)總線的1 V預(yù)充電電壓由L1117生成,其輸出電壓設(shè)定在18 V,經(jīng)過(guò)二極管1N4148后產(chǎn)生1 V的預(yù)充電電壓。
34 MCX314與PCI9030的連接
MCX314是日本Nova公司推出的4軸運(yùn)動(dòng)專用控制集成電路,能用于步進(jìn)電機(jī)或脈沖型伺服驅(qū)動(dòng)的位置、速度和插補(bǔ)控制,可用于工業(yè)自動(dòng)化設(shè)備、工業(yè)機(jī)器人、測(cè)量設(shè)備、辦公設(shè)備和家用電器等。其可以進(jìn)行各軸(x軸、y軸、z軸、u軸)獨(dú)立的定位控制、速度控制,也可在4軸中選擇任意的2軸做圓弧插補(bǔ)、2或3軸做直線插補(bǔ),插補(bǔ)精度是±0LB。默[K]認(rèn)輸入時(shí)鐘為16 Mz,脈沖輸出速度最高可達(dá)4 MPP。MCX314還有伺服電機(jī)反饋輸入(編碼器信號(hào)、到位信號(hào)和報(bào)警信號(hào))、加/減速驅(qū)動(dòng)、軟硬件限位、自動(dòng)原點(diǎn)搜索、同步動(dòng)作、輸入信號(hào)濾波等功能。MCX314能與8位或16位數(shù)據(jù)總線相連,其所有的功能都是通過(guò)讀寫內(nèi)部命令寄存器、數(shù)據(jù)寄存器、狀態(tài)寄存器和模式寄存器而實(shí)現(xiàn)。各軸都有32位的邏輯位置計(jì)數(shù)器(對(duì)輸出的驅(qū)動(dòng)脈沖計(jì)數(shù))、實(shí)際位置計(jì)數(shù)器(對(duì)外部編碼器計(jì)數(shù))和比較寄存器,實(shí)現(xiàn)位置的閉環(huán)控制。各軸都有4個(gè)通用輸入(可用于限位、原點(diǎn)信號(hào)輸入)和4或8個(gè)通用輸出(通過(guò)軟件設(shè)置來(lái)實(shí)現(xiàn))。
MCX314與PCI9030的連接原理圖如圖4所示。PCI9030具有可編程的片選信號(hào),可通過(guò)配置片選基地址寄存器使得在某一局部地址范圍內(nèi)產(chǎn)生片選信號(hào),這樣就節(jié)省了譯碼電路,使得應(yīng)用更加方便。通過(guò)對(duì)局部地址總線寄存器進(jìn)行配置,將PCI9030的數(shù)據(jù)總線配置為16位,此時(shí)LBE1#就作為L(zhǎng)A1來(lái)使用。
由于本設(shè)計(jì)采取的是地址、數(shù)據(jù)線非復(fù)用方式,則將MODE接地,且為了保證數(shù)據(jù)總線的所有數(shù)據(jù)均可用將分別代表高8位數(shù)據(jù)有效和低8位數(shù)據(jù)有效的LBE3#,LBE0#置低。
為了將MCX314配置為16位數(shù)據(jù)總線,將16L8置高,且將測(cè)試管腳和外部單步插補(bǔ)控制腳置高,即不允許硬件外部單步插補(bǔ)。其余與電機(jī)驅(qū)動(dòng)器連接如圖4所示,這里不再贅述。需要注意的是,如果編碼器存在Z相,則只需將Z相接至任何一個(gè)通用輸入端,通過(guò)軟件實(shí)現(xiàn)對(duì)編碼器的讀取。
4 驅(qū)動(dòng)程序的編寫?yīng)?/p>
經(jīng)過(guò)對(duì)同類驅(qū)動(dòng)開發(fā)工具的比較,決定采用WindDriver開發(fā)驅(qū)動(dòng)程序。這個(gè)開發(fā)工具不必熟悉操作系統(tǒng)的內(nèi)核知識(shí)就可以快速地開發(fā)出驅(qū)動(dòng)程序,對(duì)于開發(fā)者來(lái)說(shuō)很方便。
在開發(fā)過(guò)程中,使用向?qū)傻尿?qū)動(dòng)程序框架代碼,然后在此基礎(chǔ)上略加修改,就可以在用戶模式下調(diào)試代碼。具體流程如下:在Driver Wizard界面下,選中自己的設(shè)備并生成安裝信息,點(diǎn)擊下一步對(duì)I/O、內(nèi)存等資源進(jìn)行調(diào)試,并完成對(duì)工作寄存器的配置,然后生成相應(yīng)代碼,最后在驅(qū)動(dòng)程序中添加自己所需的代碼即可完成驅(qū)動(dòng)程序的編寫工作。
結(jié) 語(yǔ)
本運(yùn)動(dòng)控制卡已經(jīng)在汽車駕駛機(jī)器人的控制系統(tǒng)中得到應(yīng)用。應(yīng)用結(jié)果表明本運(yùn)動(dòng)控制卡性能穩(wěn)定,接口豐富,應(yīng)用方便,可以通過(guò)對(duì)寄存器的操作輕易地完成對(duì)4個(gè)軸實(shí)時(shí)有效的運(yùn)動(dòng)控制,具有良好的應(yīng)用前景。
參 考 文 獻(xiàn)
[1]葉佩青,汪勁松MCX314運(yùn)動(dòng)控制芯片與數(shù)控系統(tǒng)設(shè)計(jì)[M]北京:北京航空航天大學(xué)出版社,2002
[2]李貴山,陳金鵬PCI局部總線及其應(yīng)用[M]西安:西安電子科技大學(xué)出版社,2003
[3]周文慶,曹建福通用運(yùn)動(dòng)控制卡CompactPCI接口的設(shè)計(jì)[J]電子技術(shù)應(yīng)用,2004():33-36
[4]王磊,魯新平,李吉成WindDriver在開發(fā)基于PLX906芯片的PCI設(shè)備驅(qū)動(dòng)程序中的應(yīng)用[J]現(xiàn)代電子技術(shù),2006,29(18):77-79
[]李坡,孫茂陽(yáng),王偉,等一種基于CPCI總線的紅外圖像采集卡[J]現(xiàn)代電子技術(shù),2006,29(20):91-93
作者簡(jiǎn)介 衛(wèi) 巍 男,1983年出生,天津人,東南大學(xué)在讀碩士研究生。主要從事汽車電子與汽車測(cè)試方面的研究。