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