1 引 言
近年來,隨著對(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ì)越來越大。因此急需開發(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年提出來的一種總線接口標(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á)256個(gè)標(biāo)準(zhǔn)的PCI總線設(shè)備;
(5)CompactPCI背板的連接器插針分為長(zhǎng)針、中長(zhǎng)針和短針。長(zhǎng)針是一些電源針,最短的針是BD-SEL#,其他總線信號(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í)通過正確配置E2PROM(93CS66L)的參數(shù)來完成PCI9030的初始化;用熱插拔控制器LTC1643L實(shí)現(xiàn)運(yùn)動(dòng)控制卡的熱插拔功能。下面對(duì)各個(gè)部分進(jìn)行一一介紹:
3.1 CPCI總線接口
由于CPCI總線規(guī)范較為復(fù)雜,為了降低設(shè)計(jì)難度,縮短開發(fā)時(shí)間,本系統(tǒng)采用采用PLX公司的專用接口芯片PCI9030實(shí)現(xiàn)CPCI的總線接口。PCI9030是業(yè)界首個(gè)支持熱交換的接口芯片,為CPCI接口提供了優(yōu)秀的解決方案。它采用SMARTarget技術(shù),可以保證高性能的熱交換實(shí)施功能,可以支持具有熱交換功能的PICMG2.1目標(biāo)設(shè)備,并且符合PCIv 2.2規(guī)范所規(guī)定的32位33 MHz目標(biāo)接口功能,可以獲得高達(dá)132 MB/s的PCI突發(fā)傳輸速度,局部總線操作速度高達(dá)60 MHz,支持5個(gè)局部地址空間到PCI總線地址空間的映射(空間0,1,2,3,4及1個(gè)擴(kuò)展的ROM),傳輸?shù)却芷诩翱偩€寬度可編程。另外,PCI9030內(nèi)含預(yù)充電BIOS、早期電源支持、熱交換控制/狀態(tài)寄存器(HS-CSR)和附加引腳資源,可利用這些資源以及ENUM#,CPCISW和LEDon#實(shí)現(xiàn)運(yùn)動(dòng)控制板卡的帶電熱插拔的軟硬件控制。由于PCI9030完全符合PCIv2.2規(guī)范,所以只需將對(duì)應(yīng)管腳互聯(lián)即可,這里不再贅述。但需注意要將需要預(yù)充電的總線引腳上拉至預(yù)充電電壓,PME#,RST#,ENUM#,INTA#上拉至PCI的I/O工作電壓VI/O,且RST#接至總線HEALTH#與PCI-RST#的組合邏輯輸出端。
3.2 E2PROM與PCI9030連接
E2PROM用來對(duì)完成PCI9030的初始化,在整個(gè)系統(tǒng)中起著極其重要的作用。本系統(tǒng)的E2PROM選用National公司的NM93CS66L。它是一個(gè)4 kB的低功耗串行存儲(chǔ)器,用來存儲(chǔ)PCI9030的配置信息并在芯片復(fù)位時(shí)進(jìn)行加載,從而使運(yùn)動(dòng)控制卡具有即插即用的功能。其與PCI9030的連接原理圖如圖2所示。其中,NM93CS66L的片選信號(hào)CS、串行時(shí)鐘信號(hào)SK、數(shù)據(jù)輸入DI和數(shù)據(jù)輸出信號(hào)DO分別與PCI9030對(duì)應(yīng)的信號(hào)相連;保護(hù)寄存器使能信號(hào)PRE接地來使能對(duì)存儲(chǔ)空間的操作,同時(shí)禁止對(duì)保護(hù)寄存器的操作;編程使能信號(hào)PE接3.3 V來允許對(duì)存儲(chǔ)區(qū)的操作。
3.3 熱插拔控制器與CPCI總線的連接
為了使板卡在熱插拔的過程中,不對(duì)CPCI總線產(chǎn)生沖擊,不影響CPCI總線上數(shù)據(jù)的傳輸,則需要一個(gè)良好的電源切換控制電路。這里選用LTC1643AL實(shí)現(xiàn)這一功能。LTC1643AL與CPCI總線的連接原理圖如圖3所示。
在上電過程中,3.3 V和5 V電源由N溝道通路晶體管控制通斷,±12 V電源由內(nèi)部通路晶體管控制。電阻R1和R2提供電流失效檢測(cè),R5和C1提供電流補(bǔ)償,R3和R4用來防止在Q1和Q2處的高頻震蕩。當(dāng)ON#腳被拉低時(shí),通路晶體管被打開且將有22μA的電流源連接到TIMER腳。隨著經(jīng)過通路晶體管電流的逐漸增加,供電電壓達(dá)到限制值。每種電源的上電速率由62μA/C1所決定。在TIM-ER腳的電壓小于12 VIN-0.9 V的過程中,電流限制失效檢測(cè)被忽略。一旦4種供電電壓達(dá)到正常范圍,PWRGD#將會(huì)被拉低。
對(duì)于CPCI數(shù)據(jù)總線的1 V預(yù)充電電壓由LT1117生成,其輸出電壓設(shè)定在1.8 V,經(jīng)過二極管1N4148后產(chǎn)生1 V的預(yù)充電電壓。
3.4 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ǔ)精度是±0.5LSB。默認(rèn)輸入時(shí)鐘為16 MHz,脈沖輸出速度最高可達(dá)4 MPPS。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ù)總線相連,其所有的功能都是通過讀寫內(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è)通用輸出(通過軟件設(shè)置來實(shí)現(xiàn))。
MCX314與PCI9030的連接原理圖如圖4所示。PCI9030具有可編程的片選信號(hào),可通過配置片選基地址寄存器使得在某一局部地址范圍內(nèi)產(chǎn)生片選信號(hào),這樣就節(jié)省了譯碼電路,使得應(yīng)用更加方便。通過對(duì)局部地址總線寄存器進(jìn)行配置,將PCI9030的數(shù)據(jù)總線配置為16位,此時(shí)LBEI#就作為L(zhǎng)Al來使用。
由于本設(shè)計(jì)采取的是地址、數(shù)據(jù)線非復(fù)用方式,則將MODE接地,且為了保證數(shù)據(jù)總線的所有數(shù)據(jù)均可用將分別代表高8位數(shù)據(jù)有效和低8位數(shù)據(jù)有效的LBE3#,LBE0#置低。
為了將MCX314配置為16位數(shù)據(jù)總線,將H16L8置高,且將測(cè)試管腳和外部單步插補(bǔ)控制腳置高,即不允許硬件外部單步插補(bǔ)。其余與電機(jī)驅(qū)動(dòng)器連接如圖4所示,這里不再贅述。需要注意的是,如果編碼器存在Z相,則只需將Z相接至任何一個(gè)通用輸入端,通過軟件實(shí)現(xiàn)對(duì)編碼器的讀取。
4 驅(qū)動(dòng)程序的編寫
經(jīng)過對(duì)同類驅(qū)動(dòng)開發(fā)工具的比較,決定采用Wind-Driver開發(fā)驅(qū)動(dòng)程序。這個(gè)開發(fā)工具不必熟悉操作系統(tǒng)的內(nèi)核知識(shí)就可以快速地開發(fā)出驅(qū)動(dòng)程序,對(duì)于開發(fā)者來說很方便。
在開發(fā)過程中,使用向?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)程序的編寫工作。#p#分頁(yè)標(biāo)題#e#
5 結(jié) 語
本運(yùn)動(dòng)控制卡已經(jīng)在汽車駕駛機(jī)器人的控制系統(tǒng)中得到應(yīng)用。應(yīng)用結(jié)果表明本運(yùn)動(dòng)控制卡性能穩(wěn)定,接口豐富,應(yīng)用方便,可以通過對(duì)寄存器的操作輕易地完成對(duì)4個(gè)軸實(shí)時(shí)有效的運(yùn)動(dòng)控制,具有良好的應(yīng)用前景。
轉(zhuǎn)載請(qǐng)注明出處。