一种实现PCI多功能卡的方法 技术领域 本发明关于实现多功能卡的方法,具体的说,是关于一种实现外设元件交互连接总线(PCI)多功能卡的方法。
背景技术 随着计算机技术的提高,在个人计算机(PC)上,PCI已经逐渐替代ISA、EISA总线成为计算机局部总线新的标准,甚至有些个人计算机上已经不再提供ISA、EISA总线。但是由于主板资源的原因,一台个人计算机上提供的PCI插槽有限,一般只有3-6个,对于不断增加的配置要求来说,PCI插槽资源就相对显得有些紧张。如果能在一块PCI卡上实现两个或多个PCI功能,可以有效地节省系统地PCI插槽资源,同时降低PCI板卡生产厂的生产成本。
虽然《PCI局部总线标准》协议中对如何实现PCI多功能卡已有说明,但是由于实现PCI的多功能在很多方面和PCI单功能不同,其中包括PCI多功能的配置空间译码,主设备总线申请冲突的防止,总线使用的仲裁。因此,除非是专门设计的多功能电路,否则板卡生产厂商无法简单的将两块原来是为单功能PCI卡设计的电路设计成一块多功能PCI卡。如果能够将其中一块为单功能设计的卡进行一下改进,使得它即能够使用在单功能的PCI卡上,同时作为多功能卡时,又能将另一个为单功能设计的卡简单的合成为多功能卡的话,可以给板卡生产厂家提供更多的组合,容易实现产品的多样化。
发明内容 为了以上目的,本发明提供了一种更有效的实现PCI多功能卡的方法,该方法包括:
PCI多功能卡主功能的配置空间中,多功能指示位、即0EH地址的头标类型字段(Header Type)中的位7必须为1。
在配置寄存器寻址时,利用配置访问的功能号参于PCI配置寄存器译码,产生用于多功能卡中的另一个功能的配置寄存器寻址信号(IDSEL#);
当PCI多功能的另一个功能进行主设备总线申请时,由PCI多功能的主功能进行总线申请的仲裁,并向PCI总线进行总线的申请。
附图说明 在本专利申请的权利要求书中,具体地指出了本发明的主题,并清楚地对其提出了专利保护。然而参照下面的详细说明和附图,可以更好的理解本发明的有关结构和实现方法以及其目的、特征和优势。
图1为本发明的实现PCI多功能卡的方法的框图;
图2是说明由功能0实现IDSEL2#译码的原理图;
图3是说明多功能卡的由功能0进行总线申请仲裁。
具体实施方法 在以下的详细说明中,描述了特定的细节以便提供对本发明全面的理解。然而本专业的技术人员会认识到,本发明也可以用其它相类似的细节实施。
由《PCI局部总线标准》规定,PCI功能必须提供“身份和特征”的信息,因此,每个PCI功能,包括多功能PCI卡的每一个功能,都要通过专用的“配置空间(Configuration Space)”提供以上信息,参考下表。 字节偏移 意义位32 位16 位15 位0 00H设备代码(Device ID)供应商代码(Vendor ID) 04H状态字(Status)命令字(Command) 08H基类代码(Base ClassCode) 子类代码 (Sub Class Code)特殊寄存器编程接口(Prog.I/F) 修改版本 (Revision ID) 0CH内含自测试(BIST) 头标类型 (Header Type)延时计数(LatencyTimer) 高速缓存大 小(Cache Line Size) 10H 14H 18H 1CH 20H 24H基地址寄存器(Base Address Register) 28H CardBus总线配置区寄存器(CardBus CIS Pointer) 2CH 子系统代码 (Subsystem ID)子系统供应商代码(Subsystem Vendor ID) 30H 扩展ROM基地址寄存器 (Expansion ROM Base Address) 34H 38H 保留(Reserved) 3CH 最大潜伏时 间 (Max_Lat)最小响应时间(Min_Gnt)中断引脚号(InterruptPin)中断干线号(InterruptLine)
上表说明的是PCI功能提供的配置空间中的信息,其中包括:插槽上是否有PCI插卡;该PCI卡具有的功能(由PCI基类代码提供);该PCI插卡的生产厂商(由供应商代码提供);产品型号(由设备代码提供);以及该PCI卡需要有配置以及所占用的计算机资源。
由《PCI局部总线标准》规定,位于0EH字节的头标类型字段(Head Type)的位7用来标识一个多功能设备。如果此位为0则表示相应的设备为单功能设备;反之,若为1则说明该设备为多功能设备。尽管本发明不限于此,作为本发明的一个具体的实施例,该位的值可以由端口管脚设定:当外部管脚接高电平时,该位为1;当外部管脚接低电平时,该位为0。作为本发明的另一是实施例,该位的值也可以由存储在外接EEPROM中的固定位在系统上电时由外接EEPROM自动下载(如网卡设备)。这样的实现,使得该设备既可以工作于多功能设备的0号功能,又可以独立使用于单功能设备。
对于多功能设备,按照《PCI局部总线标准》规定,要求能够接受并响应0类配置访问,并能够接受0类议问配置的功能编号字段,利用它的IDSEL#脚,AD[1:0],及AD[10:8]的编码值这三个条件来决定是否响应相应的配置响应。如果设备是多功能设备,必须具有0号功能,而第二功能可以是1~7当中的任何一个号码。在本发明中,利用0号功能,对IDSEL#脚,AD[1:0],及AD[10:8]的编码值进行译码,产生第二功能所需的IDSEL2#信号。尽管本发明不限于此,作为本发明的一个具体的实施例,利用当AD[1:0]=00、AD[10:8]=001、IDSEL#=0时,产生IDSEL2#的有效信号,提供给第二功能进行配置功能的访问。图2为提供给第二功能的IDSEL2#进行译码的具体实现。
当多功能设备的两个功能都可以工作在主模式下时,如果不对总线申请信号线REQ#和GNT#进行仲裁,将会产生总线竞争,使数据操作无法进行下去,更严重的会导致系统瘫痪。为了使两个功能都能进行正常的数据传送操作,由0号功能对总线申请和获得进行仲裁,尽管本发明不限于此,作为本发明的一个具体的实施例,如图3所示,由0号功能内部的PCI总线申请仲裁逻辑负责对本功能和功能1的总线请求进行处理,在这里,该仲裁器采用固定机理的算法,即本功能的总线请求设为高优先级,而功能1的总线请求为低优先级,当两个功能同时申请总线时,由功能0首先获得总线。
虽然此处说明描述了本发明的某此特征及一种实现方法,但是对于本专业的技术人员来说,将会出现许多修改、替换、变化和等效代换。因此,本发明的保护范围由所附的权利要求的范围为准。