PCI总线通用接口芯片CH361及其应用
扫描二维码
随时随地手机看文章
关键词:PCI总线;CH361;I/O端口映射;扩展ROM映射
1 主要特点
CH361是一个简便易用的PCI总线通用接口芯片。该器件在本地端提供了通用的8 位数据总线。由于其支持I/O 端口映射和扩展ROM 映射,因而可广泛应用于制作低成本的基于PCI总线的计算机板卡,或者用于将原先基于ISA 总线的板卡移植到PCI总线上。
CH361的主要特点如下:
● 带有通用8位主动并行接口:包括8位数据、16位地址、I/O读和写以及存储器读和写;
● 可以设定PCI设备的设备标识(Vendor ID,Device ID,Class Code 等);
● 支持长度达240字节的I/O端口;
● 允许本地硬件地址实现专用I/O端口,可直接移植ISA板卡到PCI总线;
● 具有两种I/O端口存取速度:分别为60ns和240ns;
● 支持直接映射容量为8kB或者32kB的扩展ROM(Boot ROM);
● 支持通过8kB或者32kB扩容窗口映射的、容量为64kB/128kB的扩展ROM;
● 支持扩展ROM(Boot ROM)的写操作,同时支持存储器SRAM和闪存Flash-Memory;
图2
●内置预引导Mini-Boot-ROM,可支持扩展ROM模拟;
●内置I2C主设备接口,可挂接I2C从设备;
●支持本地设备数据等待,并可提供本地数据输入缓存;
●内置4μs~1ms的硬件计时单元,用于延时;
●采用80个脚的LQFP80和PQFP80两种形式;
●采用了4项专利技术和多项专有技术,低成本,简便易用。
2 引脚功能
CH361接口芯片的引脚排列如图1所示。各引脚功能如表1所列。
表1 CH361的引脚功能描述
引 脚 号 | 引 脚 名 称 | 类 型 | 引 脚 说 明 |
20,61,80 | VCC | 电源 | +5V电源 |
1,21,60 | GND | 电源 | 接地 |
64 | PCI_RST | 输入 | 系统复位信号线 |
65 | PCI_CLK | 输入 | 系统时钟信号线 |
2~5,14~19,22~23, 25~32,66~73,76~79 |
PCI_AD31~PCI_AD0 | 三态输出及输入 | 地址、数据复用信号线 |
6,13,24,74 | PCI_CBE3~PCI_CBE0 | 输入 | 总线命令、字节使能复用信号线 |
12 | PCI_PAR | 三态输出 | 奇偶校验信号线 |
75 | PCI_IDSEL | 输入 | 初始化设备选择信号线 |
7 | PCI_FRAME | 输入 | 帧周期开始信号线 |
8 | PCI_IDRY | 输入 | 发起设备准备好信号线 |
9 | PCI_TRDY | 三态输出 | 目标设备准备好信号线 |
10 | PCI_DEVSEL | 三态输出 | 目标设备选中信号线 |
11 | PCI_STOP | 三态输出 | 可用于INTA中断请求信号线,一般不连接 |
51~58 | D7~D0 | 三态输出及输入 | 8位数据信号线,各带40kΩ上拉电阻,D7同时是I2C接口的SDA信号线 |
33~39,42~50 | A15~A0 | 输出 | 16位地址信号线,A15~A8可以独立控制输出,A15同时可以设定为I2C接口的SCL信号线 |
40 | IOP_RD | 输出 | I/O端口的读选通/使能,低电平有效 |
41 | IOP_WR | 输出 | I/O端口的写选通/使能,低电平有效 |
62 | MEM_RD | 输出 | 扩展ROM或存储器的读选通/使能,低电平有效 |
63复用 | MEM_WR | 输出 | 扩展ROM或存储器的写选通/使能,低电平有效 |
IOP_HIT | 输入 | 本地硬件地址请求,低电平有效,带上拉 | |
59复用 | SYS_EX | 输出 | 可以独立控制的输出信号线,可以设定为I2C接口的SCI信号线 |
IOP_WAIT | 输入 | 本地设备数据等待请求,低电平有效,带上拉 | |
EXT_WR | 输入 | 本地数据输入缓存写使能,上升沿有效,带上拉 | |
INT_REQ | 输入 | 本地中断请求输入,低电平有效,带上拉 |
3 工作模式
为了在不增加引脚的前提下提供更多可用功能,CH361对部分引脚进行了复用,并可通过“工作模式设定”进行功能选择。“工作模式设定”的具体方法如下:首先将本地端8位数据信号线采用上拉或者下拉的方式设定为所需的高电平或者低电平,以便在CH361被复位后根据这些信号线的默认状态来设定工作模式以及参数;这些信号线在作为8 位数据总线被驱动时,由于一般外部设备的驱动电流不小于1mA,所以,上拉或者下拉不会影响其对数据总线的驱动;另外,CH361仅在复位后的1μs内一次性设定工作模式及参数,所以,如果外部设备的驱动能力很小或者是采用OC 集电极开路驱动,那么,系统仅在复位后的短时间内实现下拉,而在其余时间屏蔽下拉或者转换成上拉。表2和表3所列为设定工作模式和参数时所对应的数值(1 即高电平,0 即低电平)。
表2 工作模式设定表
数 据 线 | 数 据 线 的 设 定 说 明 | 设定值=0 | 设定值=1 |
D0 | 设定系统复位后A15地址线的默认值 | 复位后为0 | 复位后为1 |
D1 | 选择PCI设备标识(ID) | 外部提供ID | CH361默认1D |
D4 | 选择复用引脚63的功能 | IOP_HIT | MEM_WR |
D5 | 设定I/O端口存取速度、扩展ROM容量 | 60ns、8kB | 240ns、32kB |
D7和D6 | 提供给产品制造商使用,数据线的状态从PCI设备配置空41H中读取 |
表3 引脚复用设定表
数据线D4-D3-D2的设定值 | 选择复用引脚59 |
引脚功能说明 |
D4-D3-D2=000或者100 | INT_REQ | 本地中断请求输入 |
D4-D3-D2=001 | IOP_WAIT | 本地设备数据等请求 |
D4-D3-D2=010 | EXT_WR | 本地数据输入缓存写使能 |
D4-D3=011或者110或者111 | SYS_EX | 独立控制输出,复位后为0 |
D4-D3-D2=101 | 独立控制输出,复位后为1 |
4 CH361的典型应用
4.1 与PCI总线的连接电路
图2所示是CH361与PCI总线进行连接的接口电路,图中,电容C1~C4用于电源退耦,而C2~C4应分别并联在CH361的三对电源引脚上。图中,PCI总线的电源线引脚可以自由选择,但数量不得少于4对。CH361属于高频数字电路,因此,设计PCB板需要参考PCI总线规范。
4.2 与存储器的连接电路
图3是CH361与SRAM62256存储器的接口电路。图中,CH361通过MEM_RD和MEM_WR与存储器U2(型号是SRAM62256)连接。因为CH361只在PCI设备配置空间中提供扩展ROM基址寄存器,而计算机BIOS通常不会为SRAM设置扩展ROM基址,所以在读写存储器U2前,需要设置扩展ROM基址寄存器,以将存储器U2映射到存储器空间。也就是说,向CH361的扩展ROM基址置入地址值0E0000001(该地址不能与其它设备的存储器地址相冲突,最低位置1是为了启用扩展ROM)后,U2即被映射到0E0000000H至0E0007FFFH 的地址空间,这样,当计算机读写0E0001234H 地址的存储器时,实际上就是读写存储器U2的1234H地址的内容。
如果将普通的SRAM换成双端口SRAM,则CH361可以通过双端口存储器与外部的单片机或者DSP交换数据。CH361使用8位数据总线,所以,向SRAM写入数据只能以字节为单位进行,但从SRAM读出数据则能够以字节、字、双字为单位进行。CH361通过存储器与外部电路交换数据的实测速度可以达到每秒1.5M字节。
4.3 连接扩展ROM
图4是CH361与扩展ROM的接口电路。CH361可通过MEM_RD与ROM芯片U3(型号是27C512)进行连接。它支持EPROM和闪存Flash-Memory,容量可以是32kB或者64kB。如果将SYS_EX用于A16地址线,则最大容量可达128kB。一般情况下?CH361可以直接支持32kB容量的扩展ROM(即27C256芯片的容量),也可以在扩展ROM的程序中通过控制A15地址线支持64kB容量的ROM芯片。下拉电阻R1用于CH361的工作模式设定,因为图中的数据线D0连接了下拉电阻,所以,系统复位后,地址线A15为低电平以选择U3的低32kB(地址为0000H-7FFFH),而在需要读取U3的高32kB时(地址为8000H-0FFFFH),可以通过写芯片控制寄存器的位0来重新设定A15地址线,SYS EX连接A16地址线时与A15的用法类似。另外,由于PCI扩展ROM中的内容通常被BIOS复制到RAM内存中,所以需要设置CH361的扩展ROM基址以重新将U3映射到存储器空间。CH361的A15引脚不仅能用作地址线,还可以自由控制,例如在需要同时连接SRAM和ROM时,可通过A15切换两者的片选。PC机中的扩展ROM相当于一个电子盘,如果在其中写入引导程序和应用程序,那么,即使计算机没有硬盘和操作系统,扩展ROM中的引导程序和应用程序也能够控制计算机以实现某些特定的功能。如,无硬盘PC机用于工业控制或控制作业流程等。
4.4 I/O端口应用
图5是CH361 的应用接口电路。利用读选通/使能IOP RD和写选通/使能IOP WR可 控制74LS139的译码使能,然后由74LS139对地址进行译码即可输出2路读控制和2路写控制,再经74LS245输入缓冲和74LS374锁存输出, 即可获得2组每组8位缓冲输入和2组每组8位锁存输出。如将CH361的I/O基址设定为5A00H,则读取5A00H端口就是读取第一组缓冲输入,写入5A01H端口就是写入第二组锁存输出。如果CH361没有连接扩展ROM或者存储器,则空闲的地址线A14~A8以及A15便可直接作为输出控制线。A15~A0地址设定寄存器在系统复位后为低电平,并且只能以字为单位进行读写。如要设定A13为高电平?A9为低电平?其它位保持不变,则首先必须读取该寄存器,然后将读出数据中的位13置1、位9置0 ,最后再写回该寄存器。图5是一个简单示例,CH361的输入输出信号与TTL/CMOS 兼容,因而可以连接ADC/DAC/MCU等芯片,由于其输出引脚的驱动电流大于10mA,因而可以在串接限流电阻后驱动LED。此外,CH361还提供了8根地址线A7~A0以可用于I/O地址译码,但由于偏移地址0FFH至0F0H范围为专用功能寄存器的地址,所以I/O地址译码只对偏移地址0EFH至00H范围有效,且长度不应超过240字节。一般情况下,如果使用的I/O端口长度不超过128字节,则可使用A7作为外部电路的片选线。而当偏移地址为7FH至00H范围时,A7就可以输出低电平有效的片选信号,如果偏移地址超过80H,A7将输出高电平,此时,I/O端口的片选信号无效。