PCI總線通用接口芯片CH361及其應(yīng)用
關(guān)鍵詞:PCI總線;CH361;I/O端口映射;擴(kuò)展ROM映射
1 主要特點(diǎn)
CH361是一個(gè)簡(jiǎn)便易用的PCI總線通用接口芯片。該器件在本地端提供了通用的8 位數(shù)據(jù)總線。由于其支持I/O 端口映射和擴(kuò)展ROM 映射,因而可廣泛應(yīng)用于制作低成本的基于PCI總線的計(jì)算機(jī)板卡,或者用于將原先基于ISA 總線的板卡移植到PCI總線上。
CH361的主要特點(diǎn)如下:
● 帶有通用8位主動(dòng)并行接口:包括8位數(shù)據(jù)、16位地址、I/O讀和寫以及存儲(chǔ)器讀和寫;
● 可以設(shè)定PCI設(shè)備的設(shè)備標(biāo)識(shí)(Vendor ID,Device ID,Class Code 等);
● 支持長(zhǎng)度達(dá)240字節(jié)的I/O端口;
● 允許本地硬件地址實(shí)現(xiàn)專用I/O端口,可直接移植ISA板卡到PCI總線;
● 具有兩種I/O端口存取速度:分別為60ns和240ns;
● 支持直接映射容量為8kB或者32kB的擴(kuò)展ROM(Boot ROM);
● 支持通過(guò)8kB或者32kB擴(kuò)容窗口映射的、容量為64kB/128kB的擴(kuò)展ROM;
● 支持?jǐn)U展ROM(Boot ROM)的寫操作,同時(shí)支持存儲(chǔ)器SRAM和閃存Flash-Memory;
圖2
●內(nèi)置預(yù)引導(dǎo)Mini-Boot-ROM,可支持?jǐn)U展ROM模擬;
●內(nèi)置I2C主設(shè)備接口,可掛接I2C從設(shè)備;
●支持本地設(shè)備數(shù)據(jù)等待,并可提供本地?cái)?shù)據(jù)輸入緩存;
●內(nèi)置4μs~1ms的硬件計(jì)時(shí)單元,用于延時(shí);
●采用80個(gè)腳的LQFP80和PQFP80兩種形式;
●采用了4項(xiàng)專利技術(shù)和多項(xiàng)專有技術(shù),低成本,簡(jiǎn)便易用。
2 引腳功能
CH361接口芯片的引腳排列如圖1所示。各引腳功能如表1所列。
表1 CH361的引腳功能描述
引 腳 號(hào) | 引 腳 名 稱 | 類 型 | 引 腳 說(shuō) 明 |
20,61,80 | VCC | 電源 | +5V電源 |
1,21,60 | GND | 電源 | 接地 |
64 | PCI_RST | 輸入 | 系統(tǒng)復(fù)位信號(hào)線 |
65 | PCI_CLK | 輸入 | 系統(tǒng)時(shí)鐘信號(hào)線 |
2~5,14~19,22~23, 25~32,66~73,76~79 |
PCI_AD31~PCI_AD0 | 三態(tài)輸出及輸入 | 地址、數(shù)據(jù)復(fù)用信號(hào)線 |
6,13,24,74 | PCI_CBE3~PCI_CBE0 | 輸入 | 總線命令、字節(jié)使能復(fù)用信號(hào)線 |
12 | PCI_PAR | 三態(tài)輸出 | 奇偶校驗(yàn)信號(hào)線 |
75 | PCI_IDSEL | 輸入 | 初始化設(shè)備選擇信號(hào)線 |
7 | PCI_FRAME | 輸入 | 幀周期開(kāi)始信號(hào)線 |
8 | PCI_IDRY | 輸入 | 發(fā)起設(shè)備準(zhǔn)備好信號(hào)線 |
9 | PCI_TRDY | 三態(tài)輸出 | 目標(biāo)設(shè)備準(zhǔn)備好信號(hào)線 |
10 | PCI_DEVSEL | 三態(tài)輸出 | 目標(biāo)設(shè)備選中信號(hào)線 |
11 | PCI_STOP | 三態(tài)輸出 | 可用于INTA中斷請(qǐng)求信號(hào)線,一般不連接 |
51~58 | D7~D0 | 三態(tài)輸出及輸入 | 8位數(shù)據(jù)信號(hào)線,各帶40kΩ上拉電阻,D7同時(shí)是I2C接口的SDA信號(hào)線 |
33~39,42~50 | A15~A0 | 輸出 | 16位地址信號(hào)線,A15~A8可以獨(dú)立控制輸出,A15同時(shí)可以設(shè)定為I2C接口的SCL信號(hào)線 |
40 | IOP_RD | 輸出 | I/O端口的讀選通/使能,低電平有效 |
41 | IOP_WR | 輸出 | I/O端口的寫選通/使能,低電平有效 |
62 | MEM_RD | 輸出 | 擴(kuò)展ROM或存儲(chǔ)器的讀選通/使能,低電平有效 |
63復(fù)用 | MEM_WR | 輸出 | 擴(kuò)展ROM或存儲(chǔ)器的寫選通/使能,低電平有效 |
IOP_HIT | 輸入 | 本地硬件地址請(qǐng)求,低電平有效,帶上拉 | |
59復(fù)用 | SYS_EX | 輸出 | 可以獨(dú)立控制的輸出信號(hào)線,可以設(shè)定為I2C接口的SCI信號(hào)線 |
IOP_WAIT | 輸入 | 本地設(shè)備數(shù)據(jù)等待請(qǐng)求,低電平有效,帶上拉 | |
EXT_WR | 輸入 | 本地?cái)?shù)據(jù)輸入緩存寫使能,上升沿有效,帶上拉 | |
INT_REQ | 輸入 | 本地中斷請(qǐng)求輸入,低電平有效,帶上拉 |
3 工作模式
為了在不增加引腳的前提下提供更多可用功能,CH361對(duì)部分引腳進(jìn)行了復(fù)用,并可通過(guò)“工作模式設(shè)定”進(jìn)行功能選擇。“工作模式設(shè)定”的具體方法如下:首先將本地端8位數(shù)據(jù)信號(hào)線采用上拉或者下拉的方式設(shè)定為所需的高電平或者低電平,以便在CH361被復(fù)位后根據(jù)這些信號(hào)線的默認(rèn)狀態(tài)來(lái)設(shè)定工作模式以及參數(shù);這些信號(hào)線在作為8 位數(shù)據(jù)總線被驅(qū)動(dòng)時(shí),由于一般外部設(shè)備的驅(qū)動(dòng)電流不小于1mA,所以,上拉或者下拉不會(huì)影響其對(duì)數(shù)據(jù)總線的驅(qū)動(dòng);另外,CH361僅在復(fù)位后的1μs內(nèi)一次性設(shè)定工作模式及參數(shù),所以,如果外部設(shè)備的驅(qū)動(dòng)能力很小或者是采用OC 集電極開(kāi)路驅(qū)動(dòng),那么,系統(tǒng)僅在復(fù)位后的短時(shí)間內(nèi)實(shí)現(xiàn)下拉,而在其余時(shí)間屏蔽下拉或者轉(zhuǎn)換成上拉。表2和表3所列為設(shè)定工作模式和參數(shù)時(shí)所對(duì)應(yīng)的數(shù)值(1 即高電平,0 即低電平)。
表2 工作模式設(shè)定表
數(shù) 據(jù) 線 | 數(shù) 據(jù) 線 的 設(shè) 定 說(shuō) 明 | 設(shè)定值=0 | 設(shè)定值=1 |
D0 | 設(shè)定系統(tǒng)復(fù)位后A15地址線的默認(rèn)值 | 復(fù)位后為0 | 復(fù)位后為1 |
D1 | 選擇PCI設(shè)備標(biāo)識(shí)(ID) | 外部提供ID | CH361默認(rèn)1D |
D4 | 選擇復(fù)用引腳63的功能 | IOP_HIT | MEM_WR |
D5 | 設(shè)定I/O端口存取速度、擴(kuò)展ROM容量 | 60ns、8kB | 240ns、32kB |
D7和D6 | 提供給產(chǎn)品制造商使用,數(shù)據(jù)線的狀態(tài)從PCI設(shè)備配置空41H中讀取 |
表3 引腳復(fù)用設(shè)定表
數(shù)據(jù)線D4-D3-D2的設(shè)定值 | 選擇復(fù)用引腳59 |
引腳功能說(shuō)明 |
D4-D3-D2=000或者100 | INT_REQ | 本地中斷請(qǐng)求輸入 |
D4-D3-D2=001 | IOP_WAIT | 本地設(shè)備數(shù)據(jù)等請(qǐng)求 |
D4-D3-D2=010 | EXT_WR | 本地?cái)?shù)據(jù)輸入緩存寫使能 |
D4-D3=011或者110或者111 | SYS_EX | 獨(dú)立控制輸出,復(fù)位后為0 |
D4-D3-D2=101 | 獨(dú)立控制輸出,復(fù)位后為1 |
4?。茫龋常叮钡牡湫蛻?yīng)用
4.1 與PCI總線的連接電路
圖2所示是CH361與PCI總線進(jìn)行連接的接口電路,圖中,電容C1~C4用于電源退耦,而C2~C4應(yīng)分別并聯(lián)在CH361的三對(duì)電源引腳上。圖中,PCI總線的電源線引腳可以自由選擇,但數(shù)量不得少于4對(duì)。CH361屬于高頻數(shù)字電路,因此,設(shè)計(jì)PCB板需要參考PCI總線規(guī)范。
4.2 與存儲(chǔ)器的連接電路
圖3是CH361與SRAM62256存儲(chǔ)器的接口電路。圖中,CH361通過(guò)MEM_RD和MEM_WR與存儲(chǔ)器U2(型號(hào)是SRAM62256)連接。因?yàn)椋茫龋常叮敝辉冢校茫稍O(shè)備配置空間中提供擴(kuò)展ROM基址寄存器,而計(jì)算機(jī)BIOS通常不會(huì)為SRAM設(shè)置擴(kuò)展ROM基址,所以在讀寫存儲(chǔ)器U2前,需要設(shè)置擴(kuò)展ROM基址寄存器,以將存儲(chǔ)器U2映射到存儲(chǔ)器空間。也就是說(shuō),向CH361的擴(kuò)展ROM基址置入地址值0E0000001(該地址不能與其它設(shè)備的存儲(chǔ)器地址相沖突,最低位置1是為了啟用擴(kuò)展ROM)后,U2即被映射到0E0000000H至0E0007FFFH 的地址空間,這樣,當(dāng)計(jì)算機(jī)讀寫0E0001234H 地址的存儲(chǔ)器時(shí),實(shí)際上就是讀寫存儲(chǔ)器U2的1234H地址的內(nèi)容。
如果將普通的SRAM換成雙端口SRAM,則CH361可以通過(guò)雙端口存儲(chǔ)器與外部的單片機(jī)或者DSP交換數(shù)據(jù)。CH361使用8位數(shù)據(jù)總線,所以,向SRAM寫入數(shù)據(jù)只能以字節(jié)為單位進(jìn)行,但從SRAM讀出數(shù)據(jù)則能夠以字節(jié)、字、雙字為單位進(jìn)行。CH361通過(guò)存儲(chǔ)器與外部電路交換數(shù)據(jù)的實(shí)測(cè)速度可以達(dá)到每秒1.5M字節(jié)。
4.3 連接擴(kuò)展ROM
圖4是CH361與擴(kuò)展ROM的接口電路。CH361可通過(guò)MEM_RD與ROM芯片U3(型號(hào)是27C512)進(jìn)行連接。它支持EPROM和閃存Flash-Memory,容量可以是32kB或者64kB。如果將SYS_EX用于A16地址線,則最大容量可達(dá)128kB。一般情況下?CH361可以直接支持32kB容量的擴(kuò)展ROM(即27C256芯片的容量),也可以在擴(kuò)展ROM的程序中通過(guò)控制A15地址線支持64kB容量的ROM芯片。下拉電阻R1用于CH361的工作模式設(shè)定,因?yàn)閳D中的數(shù)據(jù)線D0連接了下拉電阻,所以,系統(tǒng)復(fù)位后,地址線A15為低電平以選擇U3的低32kB(地址為0000H-7FFFH),而在需要讀取U3的高32kB時(shí)(地址為8000H-0FFFFH),可以通過(guò)寫芯片控制寄存器的位0來(lái)重新設(shè)定A15地址線,SYS EX連接A16地址線時(shí)與A15的用法類似。另外,由于PCI擴(kuò)展ROM中的內(nèi)容通常被BIOS復(fù)制到RAM內(nèi)存中,所以需要設(shè)置CH361的擴(kuò)展ROM基址以重新將U3映射到存儲(chǔ)器空間。CH361的A15引腳不僅能用作地址線,還可以自由控制,例如在需要同時(shí)連接SRAM和ROM時(shí),可通過(guò)A15切換兩者的片選。PC機(jī)中的擴(kuò)展ROM相當(dāng)于一個(gè)電子盤,如果在其中寫入引導(dǎo)程序和應(yīng)用程序,那么,即使計(jì)算機(jī)沒(méi)有硬盤和操作系統(tǒng),擴(kuò)展ROM中的引導(dǎo)程序和應(yīng)用程序也能夠控制計(jì)算機(jī)以實(shí)現(xiàn)某些特定的功能。如,無(wú)硬盤PC機(jī)用于工業(yè)控制或控制作業(yè)流程等。
4.4 I/O端口應(yīng)用
圖5是CH361 的應(yīng)用接口電路。利用讀選通/使能IOP RD和寫選通/使能IOP WR可 控制74LS139的譯碼使能,然后由74LS139對(duì)地址進(jìn)行譯碼即可輸出2路讀控制和2路寫控制,再經(jīng)74LS245輸入緩沖和74LS374鎖存輸出, 即可獲得2組每組8位緩沖輸入和2組每組8位鎖存輸出。如將CH361的I/O基址設(shè)定為5A00H,則讀取5A00H端口就是讀取第一組緩沖輸入,寫入5A01H端口就是寫入第二組鎖存輸出。如果CH361沒(méi)有連接擴(kuò)展ROM或者存儲(chǔ)器,則空閑的地址線A14~A8以及A15便可直接作為輸出控制線。A15~A0地址設(shè)定寄存器在系統(tǒng)復(fù)位后為低電平,并且只能以字為單位進(jìn)行讀寫。如要設(shè)定A13為高電平?A9為低電平?其它位保持不變,則首先必須讀取該寄存器,然后將讀出數(shù)據(jù)中的位13置1、位9置0 ,最后再寫回該寄存器。圖5是一個(gè)簡(jiǎn)單示例,CH361的輸入輸出信號(hào)與TTL/CMOS 兼容,因而可以連接ADC/DAC/MCU等芯片,由于其輸出引腳的驅(qū)動(dòng)電流大于10mA,因而可以在串接限流電阻后驅(qū)動(dòng)LED。此外,CH361還提供了8根地址線A7~A0以可用于I/O地址譯碼,但由于偏移地址0FFH至0F0H范圍為專用功能寄存器的地址,所以I/O地址譯碼只對(duì)偏移地址0EFH至00H范圍有效,且長(zhǎng)度不應(yīng)超過(guò)240字節(jié)。一般情況下,如果使用的I/O端口長(zhǎng)度不超過(guò)128字節(jié),則可使用A7作為外部電路的片選線。而當(dāng)偏移地址為7FH至00H范圍時(shí),A7就可以輸出低電平有效的片選信號(hào),如果偏移地址超過(guò)80H,A7將輸出高電平,此時(shí),I/O端口的片選信號(hào)無(wú)效。