键盘控制器与主机进行数据交换的方法及键盘控制器技术

技术编号:2828247 阅读:225 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种键盘控制器与主机进行数据交换的方法及键盘控制器,其中方法包括:步骤一,将键盘控制器与主机间的交互数据存储在能够不中断键盘控制器的工作就可以被主机访问的自带存储器中;步骤二,通过键盘控制器中闲置的第三组端口来通知键盘控制器或主机去所述自带存储器中读取所述交互数据。本发明专利技术避免了每送一个字节数据就中断键盘控制器,不用增加硬件成本就可以解决目前键盘控制器和主机之间多字节数据频繁交换时所存在的问题。

【技术实现步骤摘要】

本专利技术涉及计算机中的键盘控制器技术,特别是涉及一种键盘控制器与 主机进行数据交换的方法及其键盘控制器。技术背景在笔记本计算机中,KBC (键盘控制器)是一个很重要的部件,在目前 的KBC芯片中, 一般有三个接口来和主机进行通讯, 一个是键盘接口 (0x60/0x64),主要用来传送与键盘、鼠标相关的数据, 一个是电源管理接 口 (0x62/0x66),主要用来传送和电源管理有关的数据,还有一个一般都没 有使用的接口第三组端口 (0x68/0x6c,端口的地址是可以修改的)。主机通 过这三个接口和KBC进行数据交换时存在的问题是,当主机和KBC之间有 比较多的数据需要频繁传送的话,这三个接口都很难完成,这是由于这三个 接口的工作方式所限制的,以主机通过键盘接口 0x60/0x64传送一个字节数 据给KBC为例主机读状态寄存器(0x64),看主机输入端口是否为空,如果 为空,则写入一个约定好的命令到命令寄存器,然后再该读状态寄存器,看 输入端口是否仍为空,如果为空,则写入一个字节的数据到键盘接口0x60, 这样每传送一个字节都要通过一个这样的过程,而且在KBC端,每当主机写 入一个数据到键盘接口 0x60/0x64,都会触发一个中断来中断KBC的工作。 这样如果有多字节数据需要频繁地在主机和KBC之间传送的话,会频繁地中 断KBC的工作,并且加重KBC的负担,会导致系统的性能很差。以上过程 虽然也可以通过一组硬件寄存器来实现性能的提升,但实现这种功能的芯片 成本很高。
技术实现思路
本专利技术的目的在于提供一种键盘控制器与主机进行数据交换的方法及键 盘控制器,解决现有技术在KBC和主机间需要频繁交换数据时,需要较高的 硬件成本才能提升系统性能的问题。为了实现上述目的,本专利技术提供了一种键盘控制器与主机进行数据交换 的方法,其中,包括步骤一,将键盘控制器与主机间的交互数据存储在能够不中断键盘控制 器的工作就可以被主机访问的自带存储器中;步骤二,通过键盘控制器中的第三组端口来通知键盘控制器或主机去所 述自带存储器中读取所述交互数据。上述的方法,其中,所述自带存储器为能够通过输入输出端口或通过内 存访问的方式被主机访问的键盘控制器的随机存储器、寄存器或设备的随 机存储器。上述的方法,其中,所述第三组端口选择为与键盘控制器所带有的电源 管理接口和键盘接口相区别的闲置接口。上述的方法,其中,在主机向键盘控制器发送所述交互数据的条件下, 所述步骤一包括主机把需要传送的交互数据写入到所述自带存储器中;所 述步骤二包括主机读所述第三组端口的状态寄存器,如果根据所述状态寄 存器确定所述第三组端口的输入缓冲器为空,则往第三组端口的命令寄存器 写入一个约定好的命令并触发一个中断给所述键盘控制器,所述键盘控制器 读取所述命令后从所述自带存储器读取所述交互数据。上述的方法,其中,在键盘控制器向主机发送所述交互数据的条件下, 所述步骤一包括键盘控制器将需要传送的交互数据写入到所述自带存储器 中;所述步骤二包括键盘控制器通过所述第三组端口发送一个访问数据给 主机,从而使第三组端口的状态寄存器置起输出缓冲器满的标识;主机发现 所述输出缓冲器满的标识后,读取所述访问数据,并从所述自带存储器读取 所述交互数据。为了实现本专利技术的目的,本专利技术还提供了一种键盘控制器,与主机进行 数据交换,其中,包括自带存储器,能够不中断键盘控制器的工作就可以 被主机访问,用于存储键盘控制器与主机间的交互数据;第三组端口,用于 通知键盘控制器或主机去所述自带存储器中读取所述交互数据。上述的键盘控制器,其中,所述自带存储器为能够通过输入输出端口或 内存访问的方式被主机访问的键盘控制器的随机存储器、寄存器或设备的随机存储器。上述的键盘控制器,其中,所述第三组端口为与键盘控制器所带有的电 源管理接口和键盘接口相区别的闲置接口 。 本专利技术的优点在于将交互数据存到RTC sram或者KBC ram或者KBC的寄存器里,不用触 发KBC的中断,对KBC本身的工作没有影响,写完后通过KBC的第三组端 口告诉KBC有数据送下来,这样不用每送一个字节数据,就中断KBC—次。 本专利技术无需使用高成本的芯片就可以解决目前KBC和主机之间需要较多数 据频繁交换时所存在的问题,不需要增加硬件的成本。 附图说明图1为本专利技术键盘控制器的硬件结构图; 图2为本专利技术方法的步骤流程图。具体实施方式本专利技术提出了一种主机和KBC进行数据交换的方法,参考图l,在目前 的KBC芯片中,通常有RTC sram (实时时钟控制器的静态存储器)101或者 share memory (共享存储器)102、 103或者一对可供主机访问KBC mm (随 机存储器)的端口 ]04、 105,通过这些主机可以访问RTCsram或KBCram, 当主机通过这种方式访问KBC的RTC sram或者KBC ram时,对KBC的 工作影响很小或者没有影响。当主机需要传送数据给KBC时,先通过上述方 式把数据写到RTC ram或者KBC ram,然后往第三组端口 (0x68/0x6c) 106 发一个约定好的命令,当KBC收到这个命令之后,就去RTC ram或者KBC mm读取主机传送来的数据。当KBC需要传送数据给主机时,先把需要传送 给主机的数据写到RTC ram或者KBC ram,然后通过第三组端口发送一个数 据给主机,这样KBC的输出缓冲区满的标识会被置起来,主机看到后就可以 去RTC ram或者KBC ram去读取数据。图2为本专利技术方法的步骤流程图,如图,本专利技术的键盘控制器与主机进行数据交换的方法,主要包括以下步骤步骤201,将键盘控制器与主机间的交互数据存储在键盘控制器的自带 存储器中;步骤202,通过键盘控制器中闲置的第三组端口来通知键盘控制器或主机去所述自带存储器中读取所述交互数据。其中的自带存储器,是指主机不用中断键盘控制器的工作就可以通过IO 端口或内存访问方式访问的键盘控制器的随机存储器、寄存器、设备的随机 存储器,例如键盘控制器的实时时钟的随机存储器可以通过IO端口让主机可 以直接访问,不用每次中断键盘控制器的工作,还有有的键盘控制器的随机 存储器可以映射到主机的空间,从面主机可以通过内存访问方式直接访问, 有的键盘控制器则可以通过一组I/O端口访问键盘控制器的随机存储器和寄 存器而不中断键盘控制器的工作。本专利技术方法的具体工作流程如下1) 主机把需要传送的数据写入到KBC RAM或者RTC sram.2) 主机读第三组端口的状态寄存器,根据状态寄存器判断输入buffer (缓 冲器)是否为空。如果输入buffer为空,则往第三组端口的命令寄存器写入 一个约定好的命令,这样会触发一个中断给KBC, KBC读取这个命令后从 KBC RAM或者RTC sram读取数据。3 ) KBC将需要传送给主机的数据写入到KBC RAM或者RTC sram。4) KBC通过第三组接口返回一个数据给主机,这样会使KBC第三组接 口的状态寄存器的输出buffer满的标识置起来(以此表明KBC有数据送给主 机)。5) 当主机看到第三组接口的状态寄存器的输出buffer满的标识置起来后, 读取从第三组接口返回的数据,并从K本文档来自技高网...

【技术保护点】
一种键盘控制器与主机进行数据交换的方法,其特征在于,包括:步骤一,将键盘控制器与主机间的交互数据存储在能够不中断键盘控制器的工作就可以被主机访问的自带存储器中;步骤二,通过键盘控制器中的第三组端口来通知键盘控制器或主机去所述自带存储器中读取所述交互数据。

【技术特征摘要】
1. 一种键盘控制器与主机进行数据交换的方法,其特征在于,包括步骤一,将键盘控制器与主机间的交互数据存储在能够不中断键盘控制器的工作就可以被主机访问的自带存储器中;步骤二,通过键盘控制器中的第三组端口来通知键盘控制器或主机去所述自带存储器中读取所述交互数据。2. 根据权利要求1所述的方法,其特征在于,所述自带存储器为能够通 过输入输出端口或通过内存访问的方式被主机访问的键盘控制器的随机存 储器、寄存器或设备的随机存储器。3. 根据权利要求1或2所述的方法,其特征在于,所述第三组端口选择 为与键盘控制器所带有的电源管理接口和键盘接口相区别的闲置接口 。4. 根据权利要求3所述的方法,其特征在于,在主机向键盘控制器发送 所述交互数据的条件下,所述步骤一包括主机把需要传送的交互数据写入到所述自带存储器中; 所述步骤二包括主机读所述第三组端口的状态寄存器,如果根据所述 状态寄存器确定所述第三组端口的输入缓冲器为空,则往第三组端口的命令 寄存器写入一个约定好的命令并触发一个中断给所述键盘控制器,所述键盘 控制器读取所述命令后从...

【专利技术属性】
技术研发人员:易贤群
申请(专利权)人:联想北京有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1