PCI9054芯片接口設(shè)計(jì)中若干問(wèn)題的深入研究
PIC9054是PLX公司推出的一種32位33MHz的PCI總線主控I/O加速器。它采用多種先進(jìn)技術(shù),使復(fù)雜的PCI接口應(yīng)用設(shè)計(jì)變得相對(duì)簡(jiǎn)單。該芯片是目前主流的PCI接口芯片之一,其功能和性能如下:
·符合PCI V2.2規(guī)范,包含PCI電源管理特性;
·支持PCI雙地址周期,地址空間高達(dá)4GB;
·提供兩個(gè)獨(dú)立的可編程DMA控制器,每個(gè)通道均支持塊和分散/集中的DMA方式;
·PCI與Local Bus之間數(shù)據(jù)傳輸速率高達(dá)132MB/s;
·支持復(fù)用或非復(fù)用的32位局部總線操作,本地總線支持8位、16位和32位外圍設(shè)備和存儲(chǔ)設(shè)備,本地總線有三種工作模式:M模式、C模式和J模式,可通過(guò)模式選擇引腳加以選擇;
·PCI9054內(nèi)部有可編程的FIFO,可以實(shí)現(xiàn)零等待突發(fā)傳輸及本地總線與PCI總線之間的異步操作,本地總線速率高達(dá)50MHz。
·支持可編程突發(fā)管理、可編程預(yù)取數(shù)技術(shù)和可編程中斷產(chǎn)生;
·3.3V/5V兼容。
1 PCI9054的工作模式
PCI9054有M、C、J三種工作模式,可通過(guò)模式選擇控制引腳MODE[1:0]進(jìn)行控制。當(dāng)MODE[1:0]=“11”時(shí),PCI9054工作在M模式;當(dāng)MODE[1:0]="00"時(shí),PCI9054工作在C模式;當(dāng)MODE[1:0]=“01”時(shí),PCI9054工作在J模式;當(dāng)MODE[1:0]="10"時(shí),婁保留工作狀態(tài)。
M模式可與Motorola MPC850或MPC860系列高性能微處理器進(jìn)行無(wú)縫連接;C模式可與Intel i960系列高性能微處理器進(jìn)行無(wú)縫連接;J模式地址和數(shù)據(jù)線復(fù)用,應(yīng)用很復(fù)雜,不過(guò)在一些特殊的應(yīng)用場(chǎng)合,利用J模式和TI公司6000系列DSP的HPI口進(jìn)行接口,其控制邏輯將比其它模式簡(jiǎn)單得多。
事實(shí)上,C模式能夠滿足絕大多數(shù)的應(yīng)用需求,而且C模式的本地總線操作時(shí)序最簡(jiǎn)單,邏輯控制相對(duì)容易,其開(kāi)發(fā)難度相對(duì)較低,因此,如無(wú)特殊需求,建議采用C模式。
2 總線仲裁
在PCI9054與本地總線的接口設(shè)計(jì)中,一般需采用一片可編程邏輯器件CPLD/FPGA進(jìn)行邏輯控制。在其控制邏輯中,總線仲裁邏輯是最關(guān)鍵、最核心的部分,直接影響計(jì)算機(jī)運(yùn)行的穩(wěn)定性。如果總線仲裁邏輯設(shè)計(jì)不合理,當(dāng)計(jì)算機(jī)對(duì)PCI擴(kuò)展板上的硬件資源進(jìn)行訪問(wèn)時(shí),計(jì)算機(jī)將會(huì)死機(jī),因此PCI9054本地總線的所有控制邏輯必須服從于總線仲裁邏輯。
下面以C模式為例對(duì)PCI9054的總線仲裁邏輯進(jìn)行探討。在C模式下,PCI9054的143腳LHOLD和144腳LHOLDA是總線仲裁輸入輸出信號(hào)控制引腳,從公開(kāi)發(fā)表的論文來(lái)看,有人將這兩個(gè)引腳直接與設(shè)計(jì)電路相連進(jìn)行總線仲裁邏輯設(shè)計(jì)。筆者在設(shè)計(jì)時(shí)也曾采用過(guò)這種方式,結(jié)果計(jì)算機(jī)運(yùn)行很不穩(wěn)定,經(jīng)常莫名其妙地死機(jī)。仔細(xì)分析這種方式設(shè)計(jì)的電路會(huì)發(fā)現(xiàn),該設(shè)計(jì)電路其實(shí)是利用器件的引腳傳輸延時(shí)配合總線仲裁電路的時(shí)序關(guān)系的。一般情況下,當(dāng)環(huán)境溫度、工作電壓等外界因素變化時(shí),大多數(shù)據(jù)邏輯器件的引腳延時(shí)會(huì)有相應(yīng)的變化,因此用器件引腳延時(shí)設(shè)計(jì)出的總線仲裁邏輯電路運(yùn)行不穩(wěn)定應(yīng)該是預(yù)料之中的事。
利用D觸發(fā)器只在觸發(fā)時(shí)鐘有效邊沿對(duì)信號(hào)敏感的特性進(jìn)行設(shè)計(jì),提高電路運(yùn)行的穩(wěn)定性,是可編程邏輯器件設(shè)計(jì)中的一種常用技巧。圖1是PCI9054在C模式下對(duì)外設(shè)進(jìn)行單一周期寫(xiě)操作的時(shí)序圖,圖2是利用可編程邏輯器件中的D觸發(fā)器設(shè)計(jì)出的總線仲裁電路。
在圖1中,ADS#、BLAST#和READY#信號(hào)的時(shí)序配合很重要,如果配合不好,計(jì)算機(jī)同樣會(huì)死機(jī)。要提高電路穩(wěn)定性,其設(shè)計(jì)思想與圖2中的總線仲裁邏輯電路的設(shè)計(jì)思想相似。從多次實(shí)驗(yàn)情況來(lái)看,無(wú)論使用哪種工作模式,在該設(shè)計(jì)思想下設(shè)計(jì)出的本地總線控制邏輯電路運(yùn)行非常穩(wěn)定,沒(méi)有死機(jī)的情況發(fā)生。
模數(shù)轉(zhuǎn)換器相關(guān)文章:模數(shù)轉(zhuǎn)換器工作原理
評(píng)論