??? 摘 要: 簡要介紹了基于CompactPCI總線的插拔" title="插拔">插拔" title="熱插拔" title="熱插拔">熱插拔">熱插拔通用運(yùn)動(dòng)控制卡" title="運(yùn)動(dòng)控制卡">運(yùn)動(dòng)控制卡的硬件結(jié)構(gòu),并對CompactPCI總線接口的硬件設(shè)計(jì)進(jìn)行了討論,提出了電氣措施和設(shè)計(jì)要點(diǎn),。
??? 關(guān)鍵詞: 運(yùn)動(dòng)控制? CompactPCI總線? PCI9030? 熱插拔
?
??? 近年來,隨著嵌入式系統(tǒng)的快速發(fā)展及其對硬件可靠性要求的提高,特別是帶有多個(gè)運(yùn)動(dòng)控制卡的網(wǎng)絡(luò)運(yùn)動(dòng)控制系統(tǒng)的發(fā)展,對運(yùn)動(dòng)控制卡提出了新的要求。運(yùn)動(dòng)控制卡應(yīng)具有帶熱插拔功能的CompactPCI總線接口,。在這樣的運(yùn)動(dòng)控制系統(tǒng)中,采用可靠性高的嵌入式系統(tǒng)軟件,上位機(jī)只需對被控對象實(shí)施總體的控制和管理;而位置反饋信號的采集,、閉環(huán)控制的計(jì)算及控制量的輸出則均可由以DSP為核心的運(yùn)動(dòng)控制卡完成,極大地提高了運(yùn)算速度和控制響應(yīng)速度。通過帶熱插拔功能的CompactPCI總線接口的上下機(jī)聯(lián)接,使系統(tǒng)具有更高的可靠性和帶電更換故障板卡的能力,。
1 CompactPCI接口總線概述
??? CompactPCI接口總線定義了更加堅(jiān)固耐用的PCI版本,。在電氣、邏輯和軟件方面,它與PCI標(biāo)準(zhǔn)完全兼容,。CompactPCI接口卡安裝在支架上,并使用標(biāo)準(zhǔn)的Eurocard外型,。CompactPCI雖然與標(biāo)準(zhǔn)PCI屬同一標(biāo)準(zhǔn),二者還是有很大的不同。Compact PCI相對PCI來講具有很多優(yōu)點(diǎn):(1)具有更好的機(jī)械特性,。它增強(qiáng)了PCI系統(tǒng)在電信或其它條件惡劣的工業(yè)環(huán)境中的可維護(hù)性和可靠性,。(2)采用Eurocard封裝,系統(tǒng)中氣流均勻。(3)CompactPCI連接器的電源和信號引線支持熱插拔規(guī)范,這對于容錯(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背板的連接器插針分為長針、中長針和短針,。長針是一些電源針,最短的針是BD_SEL#,其它總線信號和部分電源信號是中長針,。連接器插槽J1插孔有長針插孔、中長針和短針插孔,而J2插槽都是中長針插孔,。
2 系統(tǒng)的硬件結(jié)構(gòu)概述
??? 開放式四軸DSP運(yùn)動(dòng)控制卡經(jīng)12位DAC驅(qū)動(dòng)四個(gè)伺服電機(jī),并通過CompactPCI總線背板連接器與主機(jī)通信,。其中DSP處理器與CompactPCI接口采用PLX公司的PCI9030接口芯片使之和雙口RAM緩沖區(qū)進(jìn)行通信。
??? PCI9030是業(yè)界首個(gè)支持熱交換的PCI目標(biāo)接口芯片,為CompactPCI接口提供了優(yōu)秀的解決方案,。它采用SMARTarget技術(shù),可以保證高性能的熱交換實(shí)施功能,可以支持具有熱交換功能的PICMG2.1目標(biāo)設(shè)備,并且符合PCIv2.2規(guī)范所規(guī)定的32位33MHz目標(biāo)接口功能,可以獲得高達(dá)132Mbyte/s的PCI突發(fā)傳輸速度,局部總線操作速度最高可達(dá)60MHz,支持5個(gè)局部地址空間到PCI總線地址空間的映射(空間0,、1、2,、3,、4以及1個(gè)擴(kuò)展的ROM),傳輸?shù)却芷诩翱偩€寬度可編程。另外,PCI9030內(nèi)含預(yù)充電BIOS,、早期電源支持,、熱交換控制/狀態(tài)寄存器(HS_CSR)和附加引腳資源,可利用這些資源以及ENUM#輸出信號、彈出開關(guān)和表示用戶插入/取出狀態(tài)的LED燈實(shí)現(xiàn)運(yùn)動(dòng)控制板卡的帶電熱插拔的軟硬件控制,。
??? 其硬件結(jié)構(gòu)框圖如圖1所示,。該系統(tǒng)由以下幾部分組成:
?
??? ·核心處理器TMS320LF2407,主要完成位置速度PID控制,、插補(bǔ)迭代運(yùn)算、開關(guān)量輸入和輸出,、PLC控制等對實(shí)時(shí)性要求高的任務(wù),另外還完成程序和數(shù)據(jù)存儲和上下機(jī)的通信任務(wù),。
??? ·模擬量控制電路,將數(shù)字量速度信號經(jīng)四路12位數(shù)/模轉(zhuǎn)換芯片DAC7725轉(zhuǎn)換為-10V~10V的模擬信號,輸出到電機(jī)伺服驅(qū)動(dòng)模塊。
??? ·反饋電路,由兩片CPLD元件EPM7128SLC84構(gòu)成四路12位可逆脈沖計(jì)數(shù)器,對差分光電編碼器的編碼脈沖進(jìn)行循環(huán)計(jì)數(shù),可實(shí)現(xiàn)編碼器Z相點(diǎn)硬件中斷,。
??? ·FLASH電路,用于存儲數(shù)控參數(shù)和數(shù)控指令代碼,也用于緊急情況下保護(hù)數(shù)據(jù),。
??? ·開關(guān)量電路,包括通用8/8 I/O" title="I/O">I/O點(diǎn)、4個(gè)電機(jī)使能輸出,、4個(gè)軸的左右極限輸入和原點(diǎn)中斷輸入等電路,。
??? ·通訊電路,通過PCI接口從模式使3.3V芯片PCI9030和雙口RAM芯片70V24與PC機(jī)的CompactPCI總線相連,可以進(jìn)行高速數(shù)據(jù)傳輸,。
??? 本系統(tǒng)是一個(gè)閉環(huán)多軸運(yùn)動(dòng)控制硬件系統(tǒng),具有快速精確的計(jì)算能力以及較強(qiáng)的數(shù)據(jù)通訊能力,是良好的復(fù)雜數(shù)控系統(tǒng)平臺,。
3 CompactPCI接口的設(shè)計(jì)
??? CompactPCI接口的設(shè)計(jì)要點(diǎn)在于在硬件插拔過程中,不能對CompactPCI總線產(chǎn)生較大的沖擊,不能影響CompactPCI總線上數(shù)據(jù)傳輸?shù)恼_。所以應(yīng)具有良好的熱電源切換控制電路和相應(yīng)的總線電路以及便于軟件處理熱插拔過程的控制信號,。
??? 電源控制和 PCI9030的接口原理框圖如圖2所示,。
?
3.1 PCI9030芯片熱插拔控制信號的作用
??? 在Compact PCI規(guī)范中規(guī)定:(1)板卡插入后,硬件初始化過程中應(yīng)點(diǎn)亮藍(lán)燈;(2)板卡即將拔出,軟件能獲知板卡即將拔出,并做好善后工作后,點(diǎn)亮藍(lán)燈。
??? PCI9030芯片有BD_SEL#輸入信號引腳,、ENUM#輸出信號引腳,、CPCISW輸入信號引腳和LEDON#輸出信號引腳,均用作CompactPCI接口熱插拔控制信號。其功能分別如下:
??? PCI9030的BD_SEL#輸入信號引腳同運(yùn)動(dòng)控制卡CompactPCI接口的引腳BD_SEL#相連,當(dāng)BD_SEL#信號變高時(shí),使PCI9030輸出引腳成高阻態(tài),保護(hù)芯片,。PCI9030的ENUM#信號是送到背板的帶上拉的集電極開路信號;它通知背板主機(jī)CPU板卡是剛剛插入,還是即將拔出,。并通知CPU系統(tǒng)配置改變,使CPU同時(shí)執(zhí)行相關(guān)必要的軟件操作(在板卡安裝時(shí),安裝設(shè)備驅(qū)動(dòng)程序;在移出板卡前,卸載設(shè)備驅(qū)動(dòng)程序)。板卡的插入/拔出狀態(tài)是由CPCISW信號送到PCI9030完成的,這時(shí),PCI9030通過ENUM#信號通知背板主機(jī)硬件配置改變情況,同時(shí)主機(jī)CPU執(zhí)行相關(guān)必要的軟件操作,。當(dāng)操作結(jié)束時(shí),主機(jī)CPU通過PCI9030將CPCISW信號寫入HS_CSR寄存器的相應(yīng)位中,使LEDON#信號變化,點(diǎn)亮或熄滅藍(lán)燈,通知板卡可安全取出或已安全插入,。另外,PCI9030將板卡插入/拔出的狀態(tài)(即CPCISW信號)寫入HS_CSR寄存器的相應(yīng)位中,軟件可以通過這些位來查詢板卡插入/拔出狀態(tài),使軟件可采取各種切換措施,也可以通過向寄存器的相應(yīng)位寫1來清除該位。
3.2 熱插拔電源電路的原理設(shè)計(jì)
3.2.1 熱插拔電源管理器的確定
?? ?熱插拔電源電路需在插拔過程中和正常工作時(shí),對CompactPCI接口板" title="接口板">接口板電源進(jìn)行監(jiān)控,按一定的速率及時(shí)地上電和斷電,把該電源的情況及時(shí)通知背板系統(tǒng)以便通過軟件進(jìn)行處理;同時(shí)需對CompactPCI接口板的總線信號提供預(yù)充電電壓,使CompactPCI接插件的插針點(diǎn)的預(yù)充電電壓達(dá)到1V,保證CompactPCI接口板在插拔過程中,對CompactPCI總線的沖擊很小;另外需對背板的PCI_RST信號和CompactPCI 接口板的電源好壞情況進(jìn)行邏輯處理來產(chǎn)生該接口板上的LOCAL_PCI_RST信號,。為此,熱插拔電源電路采用了芯片LTC1646作為CompactPCI熱插拔電源管理器,。它能夠使線路板在運(yùn)行中的CompactPCI總線插槽內(nèi)安全地插入和拔出。兩個(gè)外部N溝道通路晶體管IRF7413控制3.3V和5V電源,使電源能在電流限制或可設(shè)置速率上電,。電子電路斷路器可保護(hù)兩組電源不受過流故障情況的損害,。
3.2.2? LTC1646芯片的主要引腳功能
??? ·LTC1646的3.3V和5V輸入主要來自中等長度的電源插針。3.3V和5V連接器長插針在CompactPCI插卡上與中等長度的3.3V和5V電源插針短接在一起,為LTC1646的預(yù)充電電路,、VI/O上拉電阻和PCI9030芯片提供初期電源,。
??? CompactPCI背板的連接器插針中有引腳BD_SEL#、HEALTHY#用于熱插拔電源電路,。
??? ·芯片PWRGD#信號引腳輸出指示何時(shí)所有電源電壓都在容許范圍內(nèi),連接于PWRGD#引腳的HEALTHY#信號把板卡電源情況通知背板主機(jī),當(dāng)HEALTHY#信號變高時(shí),說明板卡電源情況出了問題,。
??? ·芯片OFF/ON#輸入信號引腳連接于板卡的BD_SEL#引腳,用來控制開關(guān)板卡電源或?qū)㈦娫磾嗦菲鲝?fù)位。而BD_SEL#信號應(yīng)通過1.2kΩ電阻上拉至PCI9030的I/O工作電壓VI/O,。
??? ·芯片PRECHARGE引腳用于產(chǎn)生1V的預(yù)充電電壓,??稍诎蹇ú灏芜^程中對總線I/O引腳施加偏置。板卡上需要進(jìn)行預(yù)充電的CompactPCI總線引腳(即接插件J1,、J2與CompactPCI接口器件PCI9030連接的引腳)包括:AD0~AD31,、C/BE0#~C/BE3#、PAR,、FRAME#,、IRDY#、TRDY#,、STOP#,、LOCK#、IDSEL,、DEVSEL#,、PERR#、SERR#,。LTC1646產(chǎn)生的預(yù)充電信號經(jīng)過較大的10kΩ電阻上拉至預(yù)充電電壓(PRECHARGE OUT),。而BD_SEL#、ENUM#,、INTA#信號應(yīng)上拉至PCI9030的I/O工作電壓VI/O,。
??? ·芯片的RESETIN#引腳輸入信號PCI_RST#,在片內(nèi)與HEALTHY#信號進(jìn)行邏輯結(jié)合,從而在引腳RESETOUT#生成LOCAL_PCI_RST#信號送到PCI9030芯片的PCI_RST#信號引腳,用來在任一組電源超出范圍時(shí)對板卡和芯片PCI9030進(jìn)行復(fù)位。
3.2.3 在LTC1646芯片控制下CompactPCI接口板的上電順序
?? ?當(dāng)插卡插入時(shí),長3.3V和5V連接器插針以及長GND插針首先接觸,。LTC1646預(yù)充電電路在插入階段將總線I/O插針偏置為1V,。3.3V和5V中等長度的電源插針在插入的下一個(gè)階段接觸,但只要OFF/ON#引腳被1.2kΩ上拉電阻拉到VI/O,線路板電源則被關(guān)斷。在線路板插入的最后階段,BD_SEL#短連接器插針開始接觸,OFF/ON#引腳被拉低,。這使得通路晶體管導(dǎo)通,并且在內(nèi)部有一個(gè)5μA電流源與TIMER引腳連接,。時(shí)每個(gè)通路晶體管的電流開始增加,直至增加到各自的電流限值;然后,3.3V和5V電源被允許按一定的速率上電,一旦兩組電壓都在容差范圍之內(nèi),HEALTHY#將拉低,LOCAL_PCI_RST#可自由跟隨PCI_RST#。
3.2.4 在LTC1646芯片控制下CompactPCI接口板的斷電順序
??? 當(dāng)BD_SEL#被拉高時(shí)則開始一個(gè)斷電過程,。LTC1646內(nèi)部開關(guān)被連接于每個(gè)輸出電源電壓引腳,使旁路電容器向地放電,。TIMER引腳立即被拉低。GATE引腳被一個(gè)200?滋A的電流源拉低,以防止3.3V和5V電源上的負(fù)載電流同時(shí)變?yōu)榱銖亩鴮﹄娫措妷涸斐筛蓴_,。當(dāng)任一輸出電壓跌落在門限以下時(shí),HEALTHY#引腳被拉高,LOCAL_PCI_RST#將被確定為低,。
??? 一旦斷電過程完成,插卡就可以從插槽內(nèi)取出。在拔出期間,預(yù)充電電路繼續(xù)將總線I/O插針偏置為1V?熏直到5V和3.3V長連接器插針分開,。
3.3 CompactPCI接口設(shè)計(jì)的其它電氣措施
??? ·熱插拔板卡在帶電拔插過程中,為了保護(hù)板卡免遭靜電損壞,必須進(jìn)行靜電放電,。所以,必須在板卡上設(shè)計(jì)放電條。
??? ·為了減小板卡上的CompactPCI總線的信號線分支對總線的影響,必須對CompactPCI總線信號進(jìn)行串聯(lián)電阻匹配,。需要加串聯(lián)匹配電阻的引腳包括:AD0~AD31,、C/BE0#~C/BE3#、PAR,、FRAME#,、IRDY#,、TRDY#、STOP#,、LOCK#,、IDSEL、DEVSEL#,、PERR#,、SERR#以及INTA#。根據(jù)CompactPCI規(guī)范,對CompactPCI的信號線長度和到預(yù)充電電阻的分支線的長度必須進(jìn)行限制(PCB的布線特征阻抗應(yīng)設(shè)計(jì)為65Ω±10%),。線的長度越短,對CompactPCI總線的沖擊越小,。在CompactPCI接口板上,對于預(yù)充電的信號,從接插件J1或J2到PCI9030器件管腳,總的信號線長度應(yīng)小于38.1mm。其中,從接插件插針到串聯(lián)電阻的PCB連線長度應(yīng)小于15.2mm,預(yù)充電電阻的分支長度最好是零,最長不能超過2.5mm,。
??? ·為了減少插拔過程中由電容產(chǎn)生的浪涌電流并避免接插件燒損,必須限制濾波電容總量,。
??? 位置數(shù)控板卡的CompactPCI接口的設(shè)計(jì)是網(wǎng)絡(luò)運(yùn)動(dòng)控制系統(tǒng)發(fā)展的必然要求,通過帶熱插拔的CompactPCI接口總線的上下機(jī)聯(lián)接,使網(wǎng)絡(luò)運(yùn)動(dòng)控制系統(tǒng)具有更高的可靠性和帶電更換故障板卡的能力。
參考文獻(xiàn)
1 劉和平.TMS320LF240X DSP結(jié)構(gòu),原理及應(yīng)用. 北京:北京航空航天大學(xué)出版社,2002
2 PCI9030? DataBook Version1.3. PLX Technology Inc, January 2002
3 LTC1646? DataBook.Linear Technology Inc,2000