基于PCI9054和LTC4240的CPCI總線接口設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
CPCI總線簡(jiǎn)介
CPCI總線是一個(gè)開(kāi)放式、國(guó)際性技術(shù)標(biāo)準(zhǔn),由PCI總線工業(yè)計(jì)算機(jī)制造商組織PICMG(PCI Industrial Computer Manufacturer Group)負(fù)責(zé)制定和支持。CPCI總線具有嚴(yán)格的標(biāo)準(zhǔn)和規(guī)范,保證其具有良好的兼容性,支持多種處理器和操作系統(tǒng),符合CPCI規(guī)范的擴(kuò)展卡可插入任何CPCI系統(tǒng)并可靠地工作。CPCI標(biāo)準(zhǔn)將外設(shè)組件互連(PCI)標(biāo)準(zhǔn)特性與支持嵌入式應(yīng)用的堅(jiān)固機(jī)械外形完美結(jié)合在一起,其性能特征是專門針對(duì)工業(yè)環(huán)境而量身定制的。簡(jiǎn)單的說(shuō):CPCI總線=PCI總線的電氣規(guī)范+標(biāo)準(zhǔn)針孔連接器+歐洲卡規(guī)范。CPCI基于ICMG2.0規(guī)范,其電氣特性與PCI總線相同,因此用戶的軟件和普通PC機(jī)兼容,現(xiàn)有的PCI外圍卡也可以很容易地移植到CPCI平臺(tái)上。CPCI使用高密度針孔總線連接器,和使用金手指連接器的PCI卡相比,具有連接更可靠,完全氣密的特點(diǎn),模塊的抗震性和抗腐蝕性高。CPCI還支持熱插拔,即可在不關(guān)機(jī)狀態(tài)下插入或取出板卡。熱插拔的優(yōu)點(diǎn)在于能增強(qiáng)系統(tǒng)性能或診斷系統(tǒng)故障而無(wú)需關(guān)閉系統(tǒng),這對(duì)很多應(yīng)用來(lái)說(shuō)十分重要。
另外,CPCI在32位/33MHz系統(tǒng)中能夠提供132MB/s的背板傳輸能力,在64位/66MHz系統(tǒng)配置情況下的性能為528 MB/s。在對(duì)帶寬要求高的場(chǎng)合CPCI具有很強(qiáng)的優(yōu)勢(shì)。
除了上述所有的優(yōu)點(diǎn),CPCI還具有非技術(shù)性的優(yōu)勢(shì),即經(jīng)濟(jì)實(shí)用、可快速推向市場(chǎng)以及高可靠性。所以,在當(dāng)今的工控、通信、軍事等諸多要求高可靠性領(lǐng)域中CPCI總線已經(jīng)取代了ISA、STD等其它總線,成為主流總線形式。
C PCI系統(tǒng)硬件方案概述
CPCI系統(tǒng)由機(jī)箱、電源、總線背板和功能單元組成。一般而言,CPCI機(jī)箱內(nèi)部就帶有電源和總線背板,其中CPCI總線背板如圖1所示。
在這個(gè)CPCI系統(tǒng)中,我們研制的實(shí)際上是一塊功能單元板,其硬件框圖如圖2所示。
CPCI總線控制以及通信協(xié)議十分復(fù)雜,一般需要選用專門的處理芯片。我們這里選用了PLX公司的PCI9054芯片,而電源管理選用了凌力爾特公司的LTC4240芯片。
CPCI總線接口設(shè)計(jì)
PCI總線接口的實(shí)現(xiàn)
設(shè)計(jì)PCI接口的實(shí)現(xiàn)通常有兩種方法:一種是用可編程器件FPGA或CPLD,另一種是用專用PCI接口芯片。二者各有優(yōu)缺點(diǎn):利用可編程器件自行設(shè)計(jì)PCI接口邏輯,可以根據(jù)具體的應(yīng)用需要,優(yōu)化接口邏輯,靈活性是該方法最大的特點(diǎn),且接口邏輯也可獲得較高的性能。但是由于PCI協(xié)議比較復(fù)雜,在具體的實(shí)現(xiàn)中也相當(dāng)困難,并且各種邏輯關(guān)系驗(yàn)證起來(lái)也很麻煩,有時(shí)會(huì)得不償失,把簡(jiǎn)單的設(shè)計(jì)變得復(fù)雜化了;而利用專用芯片來(lái)實(shí)現(xiàn)PCI總線接口是一種能夠解決設(shè)計(jì)難點(diǎn)的有效方法。但是這種芯片必須具有較低的成本和通用性,而不限于插卡一側(cè)的特定處理器總線,能夠優(yōu)化數(shù)據(jù)傳輸,提供配置空間,具備片內(nèi)FIFO功能(用于突發(fā)性傳輸)等。目前,很多半導(dǎo)體器件公司提供這類專用芯片。如PLX開(kāi)發(fā)的PCI9030、PCI9054 和AMCC開(kāi)發(fā)的接口芯片S5933等。
比較以上兩種實(shí)現(xiàn)PCI接口的方案可知,用可編程邏輯器件能夠較靈活地實(shí)現(xiàn)所需要的功能,但為了達(dá)到PCI指標(biāo)的苛刻要求,需要做大量的邏輯驗(yàn)證和時(shí)序分析工作。采用PCI專用芯片,可以比較容易地實(shí)現(xiàn)PCI接口,大大縮短開(kāi)發(fā)時(shí)間,當(dāng)然,由于廠家設(shè)計(jì)芯片時(shí)對(duì)通用性的考慮,在用戶需要的某個(gè)方面可能不是最好的,但綜合性能方面,采用專用芯片要比用可編程器件設(shè)計(jì)好得多。
我們最終選用了PLX公司的PCI9054芯片。
P CI9054是PLX公司生產(chǎn)的PCI總線通用接口芯片,采用先進(jìn)的PLX數(shù)據(jù)管道結(jié)構(gòu)技術(shù),符合PCIV2.1和V2.2規(guī)范。提供了兩個(gè)獨(dú)立的可編程DMA控制器。每個(gè)通道均支持塊和分散/集中的DMA方式:在PCI總線端支持32位/33MHz;本地端(local bus)可以編程實(shí)現(xiàn)8、16、32位的數(shù)據(jù)寬度,傳輸速率最高可達(dá)132MB/s。
PCI9054與DSP的接口
PCI9054作為一種橋接芯片在PCI總線和LOCAL總線之間提供傳遞消息,既可以作為兩個(gè)總線的主控設(shè)備去控制總線,也可以作為兩個(gè)總線的目標(biāo)設(shè)備去響應(yīng)總線。其本地總線可工作在M,C,J三種模式:M模式是專為Motorola公司的MCU設(shè)計(jì)的工作模式。C模式下9054芯片通過(guò)片內(nèi)邏輯控制將PCI的地址線和數(shù)據(jù)線分開(kāi),很方便地為本地工作時(shí)序提供各種工作方式,一般較廣泛應(yīng)用于系統(tǒng)設(shè)計(jì)中。J模式是一種沒(méi)有Local Master的工作模式。它的好處是地址數(shù)據(jù)線沒(méi)有分開(kāi),嚴(yán)格仿效PCI總線的時(shí)序。
由于DSP我們采用了TI公司的C6202,考慮到與DSP的擴(kuò)展總線進(jìn)行接口,PCI9054的LOCAL總線選用了J模式。其連接如圖3所示。
熱插拔電路設(shè)計(jì)
CPCI總線不同于PCI總線的最大特點(diǎn)是支持熱插拔(Hot Swap)。
熱插拔技術(shù)概述
CPCI熱插拔技術(shù)的基本目的是在系統(tǒng)正常工作的同時(shí),CPCI總線上插入或拔出插件板,完成故障插件板的更換與計(jì)算機(jī)系統(tǒng)的重新配置。熱插拔技術(shù)主要分為三種處理過(guò)程:
1)物理連接過(guò)程
熱插入——在工作著
CPCI總線上加入插件板。
熱拔出—— 在工作著
CPCI總線上移走插件板。
2)硬件連接過(guò)程
計(jì)算機(jī)系統(tǒng)在硬件上的電氣連接與斷開(kāi)。
3)軟件連接過(guò)程
計(jì)算機(jī)系統(tǒng)在軟件上的連接與斷開(kāi)。
這 些連接過(guò)程在系統(tǒng)中雖屬于不同的連接層,但是彼此相互關(guān)聯(lián)。例如:當(dāng)物理連接不存在時(shí),硬件連接層就不能產(chǎn)生電氣連接。而插件板從計(jì)算機(jī)系統(tǒng)的CPCI總線上拔出后,軟件與硬件連接將自動(dòng)斷開(kāi)。
LTC4240熱插拔控制器是凌力爾特公司研制的針對(duì)CPCI總線的熱插拔控制器,它使線路板能夠在帶電的CPCI總線插槽中安全地插入或拔出, 能控制全部4個(gè)CPCI電源,它使用兩個(gè)外部N溝道晶體管控制3.3V和5V電源,而±12V電源則由兩個(gè)片上開(kāi)關(guān)管調(diào)節(jié)。電子斷路器對(duì)所有4個(gè)電源進(jìn)行過(guò)流保護(hù),“電源良好”輸出信號(hào)表明所有電源電壓都在正常容限之內(nèi),另外,LTC4240有 個(gè)內(nèi)置的I 2 C總線兼容接口,從而可用軟件控制和監(jiān)視器件功能及電源狀態(tài)。它還使用戶能夠開(kāi)啟或關(guān)閉器件、置位RESETOUT、開(kāi)啟狀態(tài)LED指示驅(qū)動(dòng)器以及不受±12V電源故障的影響。這個(gè)器件還可為I/O引腳提供預(yù)充電偏壓.以及通過(guò)將PCI_RST信號(hào)和HEALTHY信號(hào)整合來(lái)產(chǎn)生LOCAL_PCI_RST信號(hào).并能滿足PCI定時(shí)要求,且不需要外部邏輯電路。其典型應(yīng)用如圖5所示。
1)板卡插入過(guò)程
當(dāng)板卡插入背板時(shí),在CPCI接插件的防護(hù)地連接上,板卡上可能存在潛在的對(duì)地電壓放電。該熱插拔板將首先接觸到背板插件的長(zhǎng)針(+5V和地),即LTC4240的VCC管腳被加電,將對(duì)其后端電路進(jìn)行復(fù)位以關(guān)斷VGATE3/5輸出,從而禁止外部MOSFET管工作,并輸出1V參考電壓,此1V參考電壓對(duì)還未接觸到背板的I/O管腳加電,同時(shí)PWRGD#的輸出將被置高,接著I/O管腳接觸到背板插針上,BD_SEL#管腳被主機(jī)置低,以確認(rèn)板卡已經(jīng)被正確的插入,此時(shí)LTC4240控制的上電順序開(kāi)始。LTC4240通過(guò)控制VGATE3/5的輸出來(lái)打開(kāi)外部的MOSFET功率管。板卡上的電路都保持在復(fù)位狀態(tài),直到5和3V電源電壓穩(wěn)定,而且內(nèi)部復(fù)位時(shí)間計(jì)時(shí)器達(dá)到一定時(shí)間時(shí),復(fù)位信號(hào)停止,板卡進(jìn)入正常操作過(guò)程。
在 正常工作過(guò)程中,LTC4240將持續(xù)監(jiān)控板卡的后端電壓,一旦電壓超過(guò)關(guān)斷電壓閾值,LTC4240將控制PWRGD#輸出為低,以使主機(jī)檢測(cè)到該信號(hào)并指示板卡電源有問(wèn)題。
2)板卡拔出過(guò)程
板卡拔出時(shí),首先將BD_SEL#與地?cái)嚅_(kāi),LTC4240則立即關(guān)斷VGATE3/5輸出,并改變PWRGD#的狀態(tài),同時(shí)將LOCAL_PCI_RST#輸出置低,并將總線I/O接口電路置為高阻態(tài),這時(shí)電源依舊對(duì)I/O腳加電,以使總線從激活狀態(tài)平穩(wěn)轉(zhuǎn)為非供電狀態(tài)。一旦I/O腳與背板插針斷開(kāi),板卡上的電路和LTC4240將通過(guò)最后斷開(kāi)的長(zhǎng)針進(jìn)行最后的放電過(guò)程。
寄存器配置
設(shè)計(jì)好接口電路后,硬件設(shè)計(jì)工作還只完成了一半。由于PCI9054是通用PCI接口功能芯片,它的功能還不一定能夠滿足用戶的需求,所 以還要進(jìn)行功能寄存器設(shè)置以使接口電路具有特定的功能。寄存器的配置包括EEPROM初始化、LOCAL功能寄存器和PCI配置寄存器的配置。
1)EEPROM初始化
在計(jì)算機(jī)的加電自檢期間,PCI總線的RST#信號(hào)復(fù)位,PCI9054內(nèi)部寄存器的默認(rèn)值作為回應(yīng)。PCI9054輸出本地LRESET#信號(hào)并檢測(cè)串行EEPROM。如果串行EEPROM中的前33個(gè)比特不全為1,那么PCI9054確定串行EEPROM非空,用戶可通過(guò)向PCI9054的寄存器CNTRL的29位寫1來(lái)加載EEPROM的內(nèi)容到PCI9054的內(nèi)部寄存器,配置的信息(設(shè)備識(shí)別號(hào)、供應(yīng)商代碼號(hào)、Local總線三個(gè)空間的大小以及三個(gè)空間的基址等)事先要利用編程器寫入配置存儲(chǔ)器中,也可以在主機(jī)的專用程序中對(duì)EEPROM進(jìn)行配置。
2)PCI配置寄存器的配置
配置PCI配置寄存器比較簡(jiǎn)單。主要是填寫生產(chǎn)商ID號(hào)、器件ID號(hào)、類碼子系統(tǒng)ID號(hào)和子系統(tǒng)生產(chǎn)商ID號(hào)。
3)本地配置寄存器的配置
對(duì) 于本地配置寄存器的配置就是對(duì)本地地址空間及其本地總線屬性的配置。這些配置要根據(jù)實(shí)際開(kāi)發(fā)的硬件板卡的硬件資源進(jìn)行配置。
設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)
在完成上述工作以后,還需在主控板(相當(dāng)一臺(tái)高性能計(jì)算機(jī))上完成設(shè)備驅(qū)動(dòng)程序。其關(guān)鍵是如何完成硬件操作,基本功能是完成設(shè)備的初始化、對(duì)端口的讀寫操作、中斷的設(shè)置和響應(yīng)及中斷的調(diào)用,以及對(duì)內(nèi)存的直接讀寫。在windows下有很多驅(qū)動(dòng)程序開(kāi)發(fā)環(huán)境,只需根據(jù)硬件的具體情況,很方便就能完成驅(qū)動(dòng)程序的編制。
結(jié)束語(yǔ)
我們研制的設(shè)備實(shí)際上是一個(gè)通用硬件平臺(tái),通過(guò)加載不同軟件,它需要完成很多復(fù)雜信號(hào)的檢測(cè)、解調(diào)等功能,由于受到硬件運(yùn)算速度、存儲(chǔ)量等資源限制,這些信號(hào)處理僅靠底層的硬件電路(如DSP、FPGA)將很難滿足要求,這就需要傳給主控板處理;另外,考慮到應(yīng)用的場(chǎng)合,CPCI總線系統(tǒng)很適合我們的要求,其接口設(shè)計(jì)就成為十分重要的部分,需要從軟硬件兩個(gè)方面全盤考慮、精心設(shè)計(jì),才能達(dá)到預(yù)期目標(biāo)。