通过bios支持usb输入装置的方法

文档序号:6389248阅读:313来源:国知局
专利名称:通过bios支持usb输入装置的方法
技术领域
本发明涉及一种通过BIOS支持USB输入装置的方法,尤其是应用在没有输入/输出控制器(Super I/O chipset)且缺乏支持USB键盘及鼠标输入装置的操作系统中,仍可使用现有的USB键盘及鼠标输入装置。
一般而言,电脑在开机的时候,必须要启动一些启动时的管理程序,即所谓的基本输入输出系统(Basic Input Output System,BIOS),例如电脑启动时的加电自检(Power-on Self-test,POST)以及磁盘驱动器、键盘、屏幕等低阶硬件设定,并提供一些服务例行程序(Service routine)以供电脑中的固件控制硬件时使用。现今的基本输入输出系统可储存于电可擦可编程只读存储器(Electrically Erasable Programmable Read OnlyMemory,EEPROM)或可擦可编程只读存储器(Erasable ProgrammableRead Only Memory,EPROM)中,以提供使用者可适时地更新内部数据。
目前的BIOS在缺乏支持USB键盘及鼠标输入装置的操作系统下要使用通用串联式总线(USB,Universal Series Bus)键盘及鼠标输入装置,必须利用一输入/输出控制器(Super I/O Controller,为一8051芯片组)上的键盘控制器(Keyboard Controller,KBC),其上一地址60h所产生的硬件中断请求IRQ1与IRQ12,才可呼叫到IRQ1与IRQ12的服务程序。但是,在没有输入/输出控制器的情况下,较原先的系统少了一片芯片组(Chipset),因此除了可降低价格之外,效率也可由8MHz提高至33MHz,效率提高了四倍。此时,若要以USB键盘及鼠标取代传统的个人电脑第二代系统(PS/2)键盘及鼠标,由于没有键盘控制器,可利用60h地址发出IRQ1及IRQ12的硬件中断请求。所以目前的BIOS将无法支持其操作系统下的USB键盘及鼠标。
此外,若是在BIOS中,直接以USB键盘及鼠标服务例行程序支持USB键盘及鼠标,所需修改BIOS的部分很多,可能导致BIOS中存在潜在的问题且此方法无法支持Windows NT4.0的操作系统。因此,必须解决的问题是在电脑少了输入/输出控制器之后,如何在缺乏支持USB键盘及鼠标输入装置的操作系统中,仍可使用现有的USB键盘及鼠标输入装置。
本发明主要目的在于提供一种通过BIOS支持USB输入装置的方法,其应用在缺乏支持USB键盘及鼠标输入装置,且主机板没有键盘控制器的操作系统之中,仍可使用现有的USB键盘及鼠标输入装置,达到可向下兼容的目的。而且仅修改软件即可支持目前市面上一般的芯片组。
根据本发明所公开的通过BIOS支持USB输入装置的方法,可在缺乏支持USB键盘及鼠标输入装置,且主机板中没有键盘控制器的操作系统下,仍可使用USB键盘及鼠标输入装置,其步骤包括当使用者按下USB键盘或移动USB鼠标时,产生系统管理中断(SMI);取出USB键盘及鼠标输入装置输入的数据且判断输入数据类别;依据输入数据类别将输入数据转换成一般传统格式键盘或鼠标数据,使IRQ1及IRQ12的服务例行程序或驱动程序可读取传统格式的数据;利用南桥上的通用型输出管脚接到一南桥上的8259芯片,以产生相对应的IRQ1或IRQ12硬件中断请求;取出传统格式数据而产生系统管理硬件中断(SMI)信号;释放通用型输出管脚的使用权且将传统格式数据存入累加暂存器(a1)内;以及判断是否尚有其他数据,若有,则跳转至利用通用型输出管脚产生相对应硬件中断请求的步骤。若无,则结束。
在硬件上,利用南桥SB的两根通用型输出管脚分别连接至位于南桥内的一8259芯片,再配合更改少部分BIOS内部程序,以分别模拟产生硬件中断请求IRQ1及IRQ12,这样,即可将原来应该在新地址的数据放至旧地址上,再利用操作系统去旧地址取出数据,以得到输入装置所输入的正确数据。
这样,只需修改软件,而不需增加任何硬件上的成本,即可在没有键盘控制器且缺乏支持USB键盘及鼠标输入装置的操作系统下,仍然支持键盘及鼠标的使用。
下面结合附图,进一步说明有关本发明的详细技术内容。


图1为本发明的硬件线路图。
图2为本发明的通过BIOS支持USB键盘及鼠标输入装置的方法流程图。
首先,在通用串联式总线控制器初始化(USB controller initialization)时,且尚未进行键盘(Keyboard)与鼠标(Mouse)测试之前,先将存取地址60h与64h、以及利用USB硬件中断可产生系统管理中断(SM1,SystemManagement Interrupt)信号的功能先打开。
接着,请参照图1,图1为本发明的硬件线路图。为实现在没有键盘控制器(KBC)且缺乏支持USB键盘及鼠标输入装置的操作系统(OS,Operating System)下,仍可支持USB键盘及鼠标使用的目的,本发明在硬件上利用南桥10(SB,South Bridge)的两根通用型输出管脚(GeneralPurpose Output Pin)A 12与B 13,分别接至位于南桥10本身上的一片8259芯片11(PIC,Programmable Interface Controller)上,依情况分别产生中断请求IRQ1及IRQ12,但预设值是不产生任何的中断请求(IRQ)。
在一般目前所广为使用的计算机系统中(图中未示),CPU通过CPU总线与北桥NB(North bridge,为一芯片组)相连接;而北桥除了与存储器(可以是SDRAM、EDORAM等存储器)相接之外,还通过AGP总线与AGP VGA卡相连。此外,北桥则经由PCI总线与南桥10相接,用以传送数据与信息;而南桥10除了与硬盘(HDD)、光盘(CD ROM或DVDROM)、通用串联式总线(Universal Serial Bus,USB)、输入装置芯片组(Super I/O Chipset)相接,用以存取或输入数据之外,还分别通过XD总线与ISA总线,以分别与基本输入输出系统(BIOS)及音频装置(Audio,例如声卡)相接。
当BIOS发出指令给60h及64h以测试键盘及键盘控制器(KBC,Keyboard Controller)时,若在free PC则由于没有键盘控制器,所以测试键盘时会发生错误,而本发明由于任何对于地址60h及64h的存取动作,将产生一系统管理中断信号而被BIOS所捕捉到,进而模拟键盘控制器的动作。这样系统就不会因为找不到键盘控制器而产生错误信息。
图2为根据本发明所公开的通过BIOS支持USB键盘及鼠标输入装置方法的流程图,其应用于缺乏支持USB输入装置的操作系统,如旧操作系统的DOS或Windows 3.1等,仍可以使用USB键盘及鼠标输入装置,在使用者按下USB键盘或移动USB鼠标时(步骤200-201),先产生系统管理中断,接着,其步骤包括(1)利用USB服务例行程序(USB Service Routine)由存储器(Memory)中取出USB键盘或鼠标输入装置的输入数据,且判断输入数据类别(步骤202);(2)利用USB服务例行程序依据输入数据类别将输入数据转换成一般传统格式数据,使IRQ1或IRQ12硬件中断服务例行程序及操作系统键盘或鼠标驱动程序可读取传统格式数据(步骤203);(3)利用南桥上的通用型输出管脚GPO pin A或GPO pin B接到一位于南桥本身上的8259芯片上,以产生相对应的硬件中断请求IRQ1或IRQ12(步骤204);(4)利用输入装置的服务程序取出传统格式数据而产生系统管理中断(SMI)信号(步骤205);(5)USB服务例行程序产生以下两个动作1.释放(Deassert)通用型输出管脚GPO pin A或GPO pin B的使用权;以及2.将传统格式数据存入一累加寄存器al(Register)内(步骤206),因此,当系统管理中断结束,回到输入装置服务程序时,服务程序可以得到正确的输入装置信号;以及(6)判断是否尚有其他数据(步骤207),若有,则跳转至利用通用型输出管脚产生相对应硬件中断请求的步骤(步骤204),若无,则结束(步骤208)。
当使用USB键盘及鼠标输入装置时,键盘或鼠标会传送一输入数据信号,在数据传送结束时,会产生一中断请求而进入系统管理模式(SMM,System Management Mode)中的USB服务例行程序,USB服务例行程序由存储器取出这些数据后,判断其来源是为键盘码(Keyboard Code)或是鼠标码(Mouse Code),再将其转换成传统格式的键盘码或鼠标码;当动作结束前,依其数据来源,便对通用型输出管脚A或B下达指令,以产生相对应的IRQ1或IRQ12呼叫旧操作系统的键盘或鼠标服务程序。
此时,旧操作系统的键盘或鼠标服务程序在原来旧地址60h或64h存取数据时,会产生系统管理中断信号,而使BIOS得到此信息。因此,将转换后的传统格式数据放入al累加寄存器内,当系统管理中断结束时,就可以使键盘或鼠标的服务程序得到正确的数据,以完成模拟产生IRQ1或IRQ12硬件中断请求的动作。同时,释放通用型输出管脚A或B的使用权,以免产生无法继续下一个动作的情形。
在上述流程中,在BIOS内部仅需修改两个部分(1)配合硬件上的设计,利用通用型输出管脚A或B产生相对应的硬件中断请求IRQ1或IRQ12;以及(2)利用通用型输出管脚A或B的高/低(0/1)值以释放及产生通用型输出管脚A或B的使用权。
利用上述方法,即可将USB键盘及鼠标的数据在没有做大部分BIOS修改及特别硬件支持下,适用于没有键盘控制器及不支持USB的操作系统的情况下。
根据本发明所公开的通过BIOS支持USB键盘及鼠标输入装置的方法与在没有键盘控制器装置的方法相比,其效果为1.在缺乏支持USB键盘及鼠标输入装置的操作系统,如DOS或Windows 3.1之下,仍可使用现有的USB键盘及鼠标输入装置,达到可向下兼容的目的。
2.可支持目前市面上一般的芯片组,且只需修改固件(Firmware)即可达到目的,不需增加任何硬件(H/W,Hardware)上的成本,并且使用者不会感觉到任何的变化。
3.在减少了输入/输出控制器后,系统执行效率可提高为一般电脑系统执行效率的四倍,故若能增加支持原有操作系统下的操作,将可有更宽的适用性。
虽然本发明已以一较佳实施例公开如上,然其并非用以限定本发明。任何本领域的技术人员,在不脱离本发明的精神和范围内,可作适当的修改与润饰,因此本发明的保护范围应当以权利要求所界定的范围为准。
权利要求
1.一种通过BIOS支持USB输入装置的方法,其应用于主机板无键盘控制器,且缺乏支持USB输入装置的操作系统下,仍可使用该USB输入装置,其步骤包括使用者使用该USB输入装置时产生一系统管理中断信号;取出该USB输入装置的输入数据,且判断该输入数据类别;依据该输入数据类别将该输入数据转换成一般传统格式数据,使该操作系统可读取该传统格式数据;利用南桥上的一通用型输出管脚接到该南桥上的8259芯片上,以产生相对应的硬件中断请求;取出该传统格式数据而产生该系统管理中断信号;释放该通用型输出管脚的使用权且将该传统格式数据存入一寄存器内;以及判断是否尚有其他数据,若有,则跳转至产生相对应硬件中断请求的该步骤,若无,则结束。
2.如权利要求1所述的通过BIOS支持USB输入装置的方法,其中该USB输入装置指USB键盘。
3.如权利要求2所述的通过BIOS支持USB输入装置的方法,其中对应该USB键盘所产生的该硬件中断请求为IRQ1。
4.如权利要求1所述的通过BIOS支持USB输入装置的方法,其中该USB输入装置指USB鼠标。
5.如权利要求4所述的通过BIOS支持USB输入装置的方法,其中对应该USB鼠标所产生的该硬件中断请求为IRQ12。
6.如权利要求1所述的通过BIOS支持USB输入装置的方法,其中将该传统格式数据存入该寄存器内的步骤,是利用“in 60h,al”的程序码实现。
7.如权利要求1所述的通过BIOS支持USB输入装置的方法,其中将该传统格式资料存入该寄存器内的步骤,是利用“in 64h,al”的程序码实现。
8.如权利要求1所述的通过BIOS支持USB输入装置的方法,其中该寄存器为累加寄存器。
9.如权利要求1所述的通过BIOS支持USB输入装置的方法,其中该缺乏支持USB输入装置的操作系统为DOS系统。
10.如权利要求1所述的通过BIOS支持USB输入装置的方法,其中该缺乏支持USB输入装置的操作系统为Windows 3.1系统。
11.如权利要求1所述的通过BIOS支持USB输入装置的方法,其中取出该USB输入装置的输入数据且判断该输入数据类别的该步骤,是利用该USB服务程序实现。
12.如权利要求1所述的通过BIOS支持USB输入装置的方法,其中取出该传统格式数据与产生该系统管理中断信号的步骤,是利用该输入装置的服务程序实现。
13.如权利要求1所述的通过BIOS支持USB输入装置的方法,其中释放该通用型输出管脚使用权且将该传统格式数据存入该寄存器内的步骤,是利用USB服务程序实现。
全文摘要
本发明涉及一种通过BIOS支持USB输入装置的方法,尤其是应用在缺乏支持USB键盘及鼠标输入装置的操作系统,如DOS或Windows3.1中,仍可使用现有的USB键盘及鼠标输入装置。在硬件上,利用南桥的两根通用型输出管脚分别接至南桥上的8259芯片上,再修改BIOS内部少部分程序,以分别模拟产生硬件中断请求IRQ1和IRQ12。这样可达到向下兼容的目的,且只需修改软件即可支持目前市面上一般的芯片组。
文档编号G06F3/00GK1311468SQ0010339
公开日2001年9月5日 申请日期2000年3月3日 优先权日2000年3月3日
发明者谢安邦 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1