CN100530150C - 驱动通用串行总线(usb)装置的方法 - Google Patents

驱动通用串行总线(usb)装置的方法 Download PDF

Info

Publication number
CN100530150C
CN100530150C CNB2006100367980A CN200610036798A CN100530150C CN 100530150 C CN100530150 C CN 100530150C CN B2006100367980 A CNB2006100367980 A CN B2006100367980A CN 200610036798 A CN200610036798 A CN 200610036798A CN 100530150 C CN100530150 C CN 100530150C
Authority
CN
China
Prior art keywords
usb
serial bus
universal serial
bios
program code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2006100367980A
Other languages
English (en)
Other versions
CN101114261A (zh
Inventor
杨益昌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitac Computer Shunde Ltd
Shunda Computer Factory Co Ltd
Mitac International Corp
Original Assignee
Mitac Computer Shunde Ltd
Mitac International Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitac Computer Shunde Ltd, Mitac International Corp filed Critical Mitac Computer Shunde Ltd
Priority to CNB2006100367980A priority Critical patent/CN100530150C/zh
Publication of CN101114261A publication Critical patent/CN101114261A/zh
Application granted granted Critical
Publication of CN100530150C publication Critical patent/CN100530150C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Systems (AREA)

Abstract

本发明揭示了一种驱动通用串行总线(USB)装置的方法,应用于包含有微处理器的计算机系统,此微处理器包含多个分别具有若干个USB连接端口的控制器,各个控制器分别有控制器编号,且各个USB连接端口亦分别具有连接端口编号,需于包含基本输入输出系统(BIOS)程序代码的内存中储存USB侦测程序代码,于开机后将BIOS程序代码以及USB侦测程序代码传送至随机存取内存中执行,将各个控制器编号与连接端口编号排列组合后形成多个测试编号,依序将测试编号传送至USB侦测程序代码中以判断各个USB连接端口的连接状态,若侦测到有连接USB装置的话,即对USB连接端口进行初始化,以驱动USB装置。

Description

驱动通用串行总线(USB)装置的方法
技术领域
本发明关于一种驱动装置的方法,特别是一种驱动通用串行总线(USB)装置的方法。
背景技术
于计算机开机时,先从只读存储器(ROM)里头读取基本输入输出系统(BIOS)程序代码至随机存取内存(RAM),在随机存取内存(RAM)里头解压缩以后由处理器执行基本输入输出系统(BIOS)程序代码的运作。
基本输入输出系统(BIOS)程序代码是用以对计算机周边装置进行初始化,一般而言,基本输入输出系统(BIOS)程序代码储存于一个只读存储器(ROM)里头,至少包含有三个部分:程序段(code segment)、数据段(data segment)以及堆栈段(stack segment),在程序段主要放置所有的指令,数据段则放置程序所需用到的静态数据,例如变量、数组、档案指针,都是放在数据段中,而堆栈段则是放置程序当中呼叫子程序时的原程序地址,而原程序传递给子程序的参数也大多靠堆栈段,当中,每个区段的容量大小限制为64千位(KB)。
其中,驱动主板通用串行总线(USB)控制器的程序代码,通常包含于程序段里头,且欲驱动USB控制器的话,程序代码必须符合USB数据传输协议(protocol),因此,写基本输入输出系统(BIOS)程序代码的研发人员必须细部了解USB协议的相关规定,又要小心控制程序容量不能超过64KB,且当程序执行有错误时,维护程序更是一大工程。
发明内容
本发明的主要目的在于提供一种驱动通用串行总线(USB)装置的方法,于基本输入输出系统(BIOS)程序代码中不需包含有通用串行总线(USB)的数据传输协议(protocol),透过于只读存储器(ROM)中建立另一存储区块,于此存储区块里头存放一组通用串行总线(USB)侦测程序代码,当系统开机执行BIOS时,再呼叫执行通用串行总线(USB)侦测程序代码,便可以得知各个通用串行总线(USB)连接端口的连接状态,以解决现有技术所存在的问题。
因此,为达上述目的,本发明所揭露的一种驱动通用串行总线(USB)装置的方法,应用于一计算机系统,此计算机系统包含有一微处理器,此微处理器包含有若干个控制器,每一个控制器分别具有若干个通用串行总线(USB)连接端口,其中,各个控制器分别有一对应的控制器编号,且各个通用串行总线连接端口亦分别具有一对应的连接端口编号。
首先,于包含基本输入输出系统(BIOS)程序代码的只读存储器(ROM)中储存通用串行总线(USB)侦测程序代码,之后,将基本输入输出系统(BIOS)程序代码以及通用串行总线(USB)侦测程序代码传送至随机存取内存(RAM)中,接着执行基本输入输出系统(BIOS)程序代码,并呼叫执行通用串行总线(USB)侦测程序代码。
将各个控制器编号与各个连接端口编号排列组合成若干个分别对应于每一个通用串行总线连接端口的测试编号,依序传送每个测试编号至通用串行总线(USB)侦测程序代码中,以依序判断各个通用串行总线连接端口的连接状态。
倘若侦测到有通用串行总线(USB)装置连接于对应的通用串行总线连接端口时,即对有连接USB装置的通用串行总线连接端口进行初始化,以驱动通用串行总线(USB)装置。
透过本发明,得以提早使通用串行总线连接端口能够动作,不需等到开机动作完成,便能够接收连接于USB连接端口的USB装置所发送的命令信号,目前的计算机系统,通常把USB的初始化动作写在程序的最后端,必须等到系统开机完全之后,才得以控制连接的USB装置。
此方法可以移植到任何的计算机平台,只要额外在ROM里面烧录一段通用串行总线(USB)侦测程序代码,于开机之后,执行BIOS时再将通用串行总线(USB)侦测程序代码呼叫进来,依照顺序将每个控制器以及连接端口的编号当作参数传入通用串行总线(USB)侦测程序代码中,便可提早驱动连接有USB装置的连接端口,以提早操控USB装置。
以下在实施方式中详细叙述本发明的详细特征以及优点。
附图说明
图1为本发明的驱动通用串行总线(USB)装置的方法流程图
具体实施方式
为使对本发明的目的、构造、特征、及其功能有进一步的了解,兹配合实施例详细说明如下。
请参阅图1,为本发明的驱动通用串行总线(USB)装置的方法流程图,此方法应用于计算机系统,此计算机系统包含有一微处理器,此微处理器可为南桥芯片,微处理器里头包含有若干个控制器,各个控制器分别具有若干个通用串行总线(USB)连接端口,一般而言,一个控制器包含有两个连接端口,其中,每一个控制器分别有一对应的控制器编号,且每一通用串行总线连接端口亦分别具有一对应的连接端口编号,例如,南桥芯片里头设计有4个控制器,可将控制器依序设定编号为0、1、2、3,而各个控制器接具有两个连接端口,分别将此两个连接端口的编号设定为0及1。
首先,于包含基本输入输出系统(BIOS)程序代码的只读存储器(ROM)中储存一通用串行总线(USB)侦测程序代码(步骤110),此通用串行总线(USB)侦测程序代码与原本存在的基本输入输出系统(BIOS)程序代码需储存在只读存储器中的不同的存储区块,其中,USB侦测程序代码属于的存储区块的容量为64千位(KB),而原本的BIOS程序代码于只读存储器中占有多个存储区块以储存程序代码,每一存储区块的容量皆为64KB。
接着,将基本输入输出系统(BIOS)程序代码以及通用串行总线(USB)侦测程序代码传送至随机存取内存(RAM)(步骤120),然后,于RAM里头,将基本输入输出系统(BIOS)程序代码以及通用串行总线(USB)侦测程序代码解压缩(步骤122)。
之后,利用中央处理器(CPU)来执行基本输入输出系统(BIOS)程序代码,并呼叫执行通用串行总线(USB)侦测程序代码(步骤130),将各个控制器编号与各个连接端口编号排列组合成若干个分别对应于各个通用串行总线连接端口的测试编号,依序传送各个测试编号至通用串行总线(USB)侦测程序代码中(步骤140)进行侦测,即每一个测试编号需包含有一对应的控制器编号以及一对应的连接端口编号,且中央处理器里头具有多个缓存器,各个缓存器系用以储存各个控制器编号以及USB连接端口编号,例如,第一个缓存器的值为第一个控制器编号”0”,第二个缓存器的值为第一个控制器的第二个连接端口编号”1”,将此两个值传送给USB侦测程序代码,那么,透过执行USB侦测程序代码,便可以得知第一个控制器的第二个连接端口是否有连接任何USB装置,之后重复呼叫此USB侦测程序代码,依序传入控制器编号以及连接端口编号,以扫瞄每一个连接端口的连接状态。
最后,判断各个通用串行总线连接端口是否连接有通用串行总线(USB)装置?(步骤150),倘若侦测到有连接USB装置,那么对连接有通用串行总线(USB)装置的通用串行总线连接端口进行初始化,以驱动通用串行总线(USB)装置(步骤160),倘若没有连接USB装置,那么未连接有通用串行总线装置的通用串行总线连接端口不需进行初始化动作(步骤170)。
此发明的BIOS程序代码中,不需要包含有USB的数据传输协议(protocol),于执行BIOS程序代码时,将USB侦测程序代码呼叫进来包含于BIOS里头执行,便得以将连接有USB装置的USB连接端口进行初始化。
对于已经驱动的USB装置而言,在计算机系统尚未开机完全,即可输入传送控制指令,假设USB装置为一键盘,此键盘具有多个按键,那么使用者便可以透过输入按键将系统切换至不同的装置端,例如可以透过键盘以操控光驱,输入的按键分别有其对应的编码,可将此编码传送至中央处理器的另一缓存器中,接着计算机系统可以依照输入的编码去执行所对应的动作。
虽然本发明以前述的实施例揭露如上,然其并非用以限定本发明。在不脱离本发明的精神和范围内,所为的更动与润饰,均属本发明的专利保护范围。关于本发明所界定的保护范围请参考所附的申请专利范围。

Claims (9)

1.一种驱动通用串行总线(USB)装置的方法,应用于一计算机系统,该计算机系统包含有一微处理器,该微处理器包含有若干个控制器,各该控制器分别具有若干个通用串行总线(USB)连接端口,其中,各该控制器分别有一对应的控制器编号,且各该通用串行总线连接端口亦分别具有一对应的连接端口编号,该方法包含有下列步骤:
于包含一基本输入输出系统(BIOS)程序代码的一只读存储器(ROM)中储存一通用串行总线(USB)侦测程序代码,且该基本输入输出系统(BIOS)程序代码与该通用串行总线(USB)侦测程序代码分别储存于该只读存储器(ROM)中的不同区块,并且该基本输入输出系统(BIOS)程序代码中不包含有通用串行总线(USB)的数据传输协议(protocol);
将该基本输入输出系统(BIOS)程序代码以及该通用串行总线(USB)侦测程序代码传送至一随机存取内存(RAM);
执行该基本输入输出系统(BIOS)程序代码,并呼叫执行该通用串行总线(USB)侦测程序代码;
将各该控制器编号与各该连接端口编号排列组合成若干个分别对应于各该通用串行总线连接端口的测试编号,依序传送各该测试编号至该通用串行总线(USB)侦测程序代码中,以依序判断各该通用串行总线连接端口的连接状态;以及
当侦测到有一通用串行总线(USB)装置连接于一对应的通用串行总线连接端口时,即对该通用串行总线连接端口进行初始化,以驱动该通用串行总线(USB)装置。
2.根据权利要求1所述的驱动通用串行总线(USB)装置的方法,其特征在于,该微处理器为一南桥芯片。
3.根据权利要求1所述的驱动通用串行总线(USB)装置的方法,其特征在于,该通用串行总线(USB)侦测程序代码于该只读存储器(ROM)中所属的区块的容量为64千位(KB)。
4.根据权利要求1所述的驱动通用串行总线(USB)装置的方法,其特征在于,该基本输入输出系统(BIOS)程序代码于该只读存储器(ROM)中占有若干个存储区块以储存程序代码。
5.根据权利要求4所述的驱动通用串行总线(USB)装置的方法,其特征在于,各该存储区块的容量为64千位(KB)。
6.根据权利要求1所述的驱动通用串行总线(USB)装置的方法,其特征在于,该将该基本输入输出系统(BIOS)程序代码以及该通用串行总线(USB)侦测程序代码传送至一随机存取内存(RAM)的步骤之后,更包含有一将该基本输入输出系统(BIOS)程序代码以及该通用串行总线(USB)侦测程序代码解压缩的步骤。
7.根据权利要求1所述的驱动通用串行总线(USB)装置的方法,其特征在于,各该测试编号分别包含有一对应的控制器编号以及一对应的连接端口编号。
8.根据权利要求1所述的驱动通用串行总线(USB)装置的方法,其特征在于,该执行该基本输入输出系统(BIOS)程序代码的步骤,利用一中央处理器(CPU)以运作。
9.根据权利要求8所述的驱动通用串行总线(USB)装置的方法,其特征在于,该中央处理器具有若干个缓存器,各该缓存器分别用以储存各该控制器编号以及各该连接端口编号。
CNB2006100367980A 2006-07-28 2006-07-28 驱动通用串行总线(usb)装置的方法 Expired - Fee Related CN100530150C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006100367980A CN100530150C (zh) 2006-07-28 2006-07-28 驱动通用串行总线(usb)装置的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006100367980A CN100530150C (zh) 2006-07-28 2006-07-28 驱动通用串行总线(usb)装置的方法

Publications (2)

Publication Number Publication Date
CN101114261A CN101114261A (zh) 2008-01-30
CN100530150C true CN100530150C (zh) 2009-08-19

Family

ID=39022614

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100367980A Expired - Fee Related CN100530150C (zh) 2006-07-28 2006-07-28 驱动通用串行总线(usb)装置的方法

Country Status (1)

Country Link
CN (1) CN100530150C (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101281474B (zh) * 2008-05-06 2010-06-02 北京握奇数据系统有限公司 打开指定端口usb设备的方法及装置
TWI545441B (zh) * 2014-02-17 2016-08-11 廣達電腦股份有限公司 電腦系統及其通用序列匯流排裝置的偵測方法
CN108196894B (zh) * 2018-01-02 2021-05-18 联想(北京)有限公司 一种检测外部设备接入的方法及电子设备
TWI660267B (zh) * 2018-03-28 2019-05-21 和碩聯合科技股份有限公司 開機檢測裝置、系統及其方法

Also Published As

Publication number Publication date
CN101114261A (zh) 2008-01-30

Similar Documents

Publication Publication Date Title
US6498999B1 (en) Method and apparatus for design verification of an integrated circuit using a simulation test bench environment
CN100367253C (zh) 一种扩展外设的方法及系统
CN100524114C (zh) 具有快速输入/输出功能的控制设备及其控制数据的控制方法
CN100511171C (zh) 一种单板调试串口功能的测试方法及其系统
CN100530150C (zh) 驱动通用串行总线(usb)装置的方法
US20050249143A1 (en) Interface integrated circuit device for a usb connection
CN102968377A (zh) 一种基于虚拟机技术的机载软件系统测试通用平台
CN101814058A (zh) 通用存储装置
CN103761129B (zh) 一种在Bootloader层实现SDIO接口驱动的方法
CN101685432A (zh) 实现usb接口切换的装置,实现usb接口测试的系统
CN106815088A (zh) 服务器及其侦错方法
CN101527161B (zh) 一种快速烧写NAND flash的方法和装置
CN100426271C (zh) 串行周边接口控制装置、系统及其判断方法
CN102890661A (zh) 一种主从机通讯协议
US20120059969A1 (en) Non-invasive direct-mapping usb switching device
CN101436144A (zh) 单片机程序编辑和仿真主机
CN100498732C (zh) 通用串行总线装置的测试系统及其方法
CN101082880A (zh) 加快从计算机下载数据到单片机目标存储器的方法及系统
CN102222054A (zh) 数据传输装置、方法及控制器
AU2002346666A1 (en) Method and apparatus for processing transactions in a data processing system
CN213690596U (zh) 一种程序检测装置和电子设备
US7406556B2 (en) Method for reading and writing non-standard register of standard interface device
TWI310158B (zh)
CN1294347A (zh) 键盘输入系统异常的检错方法
CN100468353C (zh) Usb接口规范检测系统及其方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090819

Termination date: 20130728