2.4 直通通道
S5920提供了4個(gè)可映射到內(nèi)存或I/O空間的模塊,即直通通道。每個(gè)直通通道的地址范圍代表一個(gè)地址塊,其大小由用戶定義,最大范圍為512M字節(jié)。每一個(gè)地址塊的數(shù)據(jù)寬度可在8/16/32位中選擇。通過直通通道,PCI總線可以直接使用外加接口上的資源,在猝發(fā)模式下,能夠以最大帶寬傳送數(shù)據(jù)。
為加速數(shù)據(jù)的吞吐率,直通通道中集成了兩個(gè)32字節(jié)的FIFO。允許寫FIFO可使S5920能夠零等待地從PCI總線接收猝發(fā)傳送數(shù)據(jù)而無須理會(huì)外加總線的響應(yīng)速度;允許讀FIFO則可實(shí)現(xiàn)數(shù)據(jù)從外加總線的預(yù)取,從而使PCI總線也能零等待地執(zhí)行讀周期。這一特點(diǎn)將大大提高PCI總線的效率,并提升外加總線設(shè)計(jì)的性能。
需要強(qiáng)調(diào)的是,S5920的FIFO是作為直通通道的可選組件,而不是一個(gè)獨(dú)立的FIFO通道,且只有32字節(jié),不能擴(kuò)充。與之不同的是,S5933的 FIFO是一個(gè)雙向的獨(dú)立通道,可實(shí)現(xiàn)總線主控方式下的高速數(shù)據(jù)傳送,但直通通道沒有收發(fā)FIFO,從這個(gè)意義上說,S5920的直通通道性能強(qiáng)于 S5933;另一個(gè)與S5933不同的地方是,S5920的直通通道還支持一種主動(dòng)/被動(dòng)模式的外加總線接口。在被動(dòng)模式下,要求開發(fā)者通過在外部驅(qū)動(dòng)外加總線來實(shí)現(xiàn)數(shù)據(jù)傳輸;在主動(dòng)模式下,允許內(nèi)部邏輯驅(qū)動(dòng)外加總線或要求外加總線獨(dú)立讀/寫數(shù)據(jù),從而減小了對(duì)外部電路的依賴。另外,主動(dòng)模式還能產(chǎn)生可編程的等待狀態(tài),以降低外加總線設(shè)計(jì)的性能要求。
3 主要信號(hào)引腳
S5920信號(hào)一般分為三組,即PCI接口信號(hào)、nvRAM接口信號(hào)和外加接口信號(hào)。其中,PCI接口信號(hào)符合PCI2.2規(guī)范,nvRAM接口信號(hào)符合I2C串行總線標(biāo)準(zhǔn),這里不再贅述。而S5920外加總線信號(hào)分為輸入(in)、輸出(out)和雙向三態(tài)(t/s)三種。下面對(duì)S5920的外加總線引腳作一分類描述:
3.1 信箱通道引腳
MDMODE:(in),信箱通道數(shù)據(jù)模式選擇端。高電平時(shí),MD[7∶0]信號(hào)恒為輸入;低電平時(shí),由LOAD#信號(hào)控制MD[7∶0]為輸入或輸出。
LOAD#:(in),高電平時(shí),MD[7∶0]為輸入,下一個(gè)時(shí)鐘ADCLK的上升沿將數(shù)據(jù)鎖入到外加總線輸出信箱寄存器的第三字節(jié);當(dāng)?shù)碗娖角襇DMODE為0時(shí),MD[7∶0]上顯示PCI輸出信箱寄存器中第三字節(jié)的內(nèi)容。
MD[7∶0]:(t/s),信箱通道數(shù)據(jù)總線。
3.2 直通通道引腳
PTMODE:(in),直通通道工作方式選擇端。高電平時(shí),S5920工作于被動(dòng)方式,此時(shí)允許外設(shè)讀/寫總線上的數(shù)據(jù);低電平時(shí),S5920工作于主動(dòng)方式,該方式允許S5920主動(dòng)地驅(qū)動(dòng)信號(hào)和數(shù)據(jù)上總線。
PTATN#:(out),直通通道提示信號(hào),用于表示一個(gè)PCI總線周期正在進(jìn)行。
PTBURST#:(out),直通通道猝發(fā)傳送指示。高電平時(shí),表示當(dāng)前PCI總線操作是猝發(fā)方式;低電平時(shí),為單周期方式。
PTRDY#/WAIT#:(in),PASS_THRU準(zhǔn)備好/等待信號(hào)。被動(dòng)方式下,該信號(hào)為PTRDY#,有效時(shí)表示外加總線已經(jīng)響應(yīng)PTATN#信號(hào),且讀/寫數(shù)據(jù)完畢;主動(dòng)方式下,該信號(hào)為WAIT#,有效時(shí)插入等待狀態(tài)或阻止S5920驅(qū)動(dòng)數(shù)據(jù)上總線。
PTNUM[1∶0]:(out),PASS_THRU通道號(hào),表示在PASS_THRU激活期間,地址落在哪一個(gè)通道范圍,僅在PTATN#為低時(shí)有效。
PTBE[3∶0]#:(out),PASS_THRU字節(jié)允許。在PCI對(duì)PASS_THRU的讀操作中,指示32位雙字的哪一個(gè)字節(jié)寫入S5920;在PCI向PASS_THRU的寫操作中,指示32位雙字的哪一個(gè)字節(jié)從S5920中讀出。這幾個(gè)信號(hào)僅在PTATN#為低時(shí)有效。
PTADR#:(t/s),PASS_THRU地址請(qǐng)求信號(hào)。被動(dòng)方式下是一個(gè)輸入信號(hào),有效時(shí),S5920將當(dāng)前地址放置到外加總線上。主動(dòng)方式下是一個(gè)輸出信號(hào),表明一個(gè)PASS_THRU地址在DQ總線上。
PTWR:(out),PASS_THRU讀/寫信號(hào)。表明當(dāng)前PCI與PASS_THRU間的數(shù)據(jù)傳輸是讀周期還是寫周期。僅在PTATN#為低時(shí)有效。
DXFER#:(out),主動(dòng)方式傳送完畢。被動(dòng)方式下不用。
3.3 外加總線寄存器訪問引腳
DQ[31∶0]:(t/s),地址/數(shù)據(jù)總線。
ADR[6∶2]:(in),外加地址總線。用于選擇8個(gè)外加總線操作寄存器。
BE[2∶0]#:(in),字節(jié)選通信號(hào)。
BE3#/ADR1:(in),字節(jié)選通3(32位方式)或ADR1(16位方式),該信號(hào)端與讀選通(RD#)或?qū)戇x通(WR#)信號(hào)、SELECT#信號(hào)一起使用。
SELECT#:(in),外加接口選擇信號(hào)。當(dāng)讀寫外加接口寄存器時(shí),該引腳必須置低(當(dāng)RD#或WR#有效時(shí))。
WR#:(in),寫選通信號(hào),當(dāng)該信號(hào)與SE-LECT#信號(hào)共同有效時(shí),寫數(shù)據(jù)到外加接口寄存器。
RD#:(in),讀選通信號(hào),當(dāng)該信號(hào)與SELECT#信號(hào)共同有效時(shí),從外加接口讀取數(shù)據(jù)。
DQMODE#:(in),外加總線數(shù)據(jù)寬度選擇。
3.4 系統(tǒng)控制引腳
SYSRST:(out),系統(tǒng)復(fù)位信號(hào)。在PCI總復(fù)位信號(hào)的作用下,該引腳將輸出一個(gè)負(fù)脈沖;也可通過軟件對(duì)S5920中的復(fù)位控制寄存器進(jìn)行操作以使之有效。
BRCLK:(out),緩沖后的PCI時(shí)鐘信號(hào)。
ADCLK:(in),外加總線時(shí)鐘信號(hào)。S5920內(nèi)部所有外加總線邏輯均與該時(shí)鐘同步。
IRQ#:(out),中斷請(qǐng)求信號(hào)。有效時(shí),表明S5920向外加總線申請(qǐng)中斷。
ADDINT#:(in),外加總線中斷請(qǐng)求信號(hào)。有效時(shí),該信號(hào)將引起PCI總線的中斷請(qǐng)求信號(hào)INTA#有效。
FLT#:(in),浮動(dòng)。有效時(shí),S5920器件中的所有輸出端均處于高阻狀態(tài)。
4 用S5920實(shí)現(xiàn)并行接口
下面給出一個(gè)用S5920實(shí)現(xiàn)PCI并行數(shù)據(jù)接口擴(kuò)展卡的實(shí)例,該設(shè)計(jì)利用S5920的一個(gè)直通通道來實(shí)現(xiàn)16位數(shù)據(jù)傳輸。它采用查詢方式讀寫I/O端口,在異常情況下,外設(shè)可通過S5920向PCI總線提出中斷請(qǐng)求,以使軟件對(duì)其進(jìn)行相應(yīng)處理。
采用S5920+CPLD結(jié)構(gòu)的接口設(shè)計(jì)如圖2所示。圖中CPLD芯片采用LATTICE公司生產(chǎn)的is-pLSI1032E,該芯片可用來產(chǎn)生外加總線和對(duì)外接口所需的各種控制信號(hào),以及完成地址譯碼和數(shù)據(jù)的鎖存和緩沖。配置存儲(chǔ)器采用串行EEPROM芯片X24C02。
該接口擴(kuò)展卡主要的對(duì)外接口控制信號(hào)包括選通、讀、寫、外設(shè)和中斷請(qǐng)求等。位于S5920和is-pLSI1032E中間的是外加總線,在本設(shè)計(jì)實(shí)例中,與直通通道操作相關(guān)的各種信號(hào)主要有: BPCLK、PTATN#、PTBURST#、PTWR、PTNUM[1∶0]、PTBE[3∶0]#、ADCLK、SELECT#、RD#、WR#、 BE[3∶0]#、ADR[6∶2]、PTRDY#、ADDINT#及DQ[15∶0]等。
發(fā)送和接收數(shù)據(jù)的簡(jiǎn)單程序如下:




5 結(jié)束語
對(duì)于熟悉計(jì)算機(jī)XT、ISA總線開發(fā)的設(shè)計(jì)者來說,S5920等專用PCI總線接口芯片的出現(xiàn)為他們提供了無須深入掌握PCI總線規(guī)范即可進(jìn)入PCI 擴(kuò)展卡設(shè)計(jì)領(lǐng)域的途徑。當(dāng)然,從實(shí)際出發(fā),設(shè)計(jì)者也可以采用其它方案,甚至可以脫離專用芯片直接面對(duì)總線完成設(shè)計(jì),這些都有待于在對(duì)PCI總線規(guī)范深入研究的基礎(chǔ)上進(jìn)一步探討。





