CN1779601A - 鼠标和键盘数据上报的控制方法和装置 - Google Patents
鼠标和键盘数据上报的控制方法和装置 Download PDFInfo
- Publication number
- CN1779601A CN1779601A CN200410088984.XA CN200410088984A CN1779601A CN 1779601 A CN1779601 A CN 1779601A CN 200410088984 A CN200410088984 A CN 200410088984A CN 1779601 A CN1779601 A CN 1779601A
- Authority
- CN
- China
- Prior art keywords
- data
- mouse
- port
- keyboard
- module
- 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.)
- Granted
Links
Landscapes
- Input From Keyboards Or The Like (AREA)
Abstract
本发明公开一种鼠标和键盘数据上报的控制方法和装置,其中控制方法包括以下步骤:1)微处理器选择鼠标数据端口和键盘数据端口中的一个数据端口作为第一端口而另一个数据端口为第二端口;2)接收第一端口数据块的字节并保存,同时抑制第二端口的数据发送,且缓存第二端口待发数据;3)接收第二端口数据块的字节并保存,同时抑制第一端口的数据发送且缓存第一端口待发数据;4)如果第一、二端口皆有数据上报则交替执行步骤2)和3),否则接收当前有数据上报的鼠标数据端口或键盘数据端口的数据;5)当接收字节为数据块尾字节时,将完整的数据块上报给计算机。相应地,控制装置包括:数据端口控制模块、通信模块及交替控制模块。
Description
技术领域
本发明涉及鼠标和键盘数据上报,尤指一种鼠标和键盘数据上报的控制方法和装置。
背景技术
自计算机出现以来,鼠标和键盘就作为计算机一个不可分割的部分承担着计算机终端的作用。一般情况下,鼠标和键盘的数据根据协议(例如PS/2端口协议、串行通信协议)传输到计算机,计算机将接收到的数据进行解码,以响应鼠标和键盘不同的指令。随着机群系统的出现和广泛的运用,鼠标和键盘的数据处理装置(例如:KVM切换器)也得到了充分的发展和运用,有效实时地接收并处理鼠标和键盘所上报的数据块。现有技术的鼠标和键盘数据处理装置主要基于双微控制器或专用芯片以实现鼠标和键盘数据的并行接收处理,以保证鼠标和键盘所上报数据的实时性和可靠性。
如果采用双微控制器,则针对PS/2端口来决定微控制器的数量,鼠标和键盘一共有两个PS/2端口,就需要在每一个端口设置一个微控制器用于接收该端口上报过来的数据。而数据发送出去采用方式:由两个微控制器其中的一个微控制器收集自身接收到的数据以及另外一个微控制器接收到的数据,再通过通信总线(通常采用485总线)发送出去;额外再使用一个微控制器收集两个微控制器接收到的数据,再使用通信总线(通常采用485总线)发送出去。因此,该技术方案要求至少使用两个微控制器且微控制器之间还需要通信,不仅增加了成本,而且使得装置中的通信结构复杂。另外,采用485总线则通信仲裁部分就必须由软件实现,这样会导致编写程序复杂、工作量大,而且通信不够稳定。
如果采用专用芯片,将具体的通信协议(如,PS/2端口协议)以及鼠标和键盘的相关命令都通过自己设计的芯片来实现。由于在自己设计的专用芯片中可以实现鼠标和键盘的并行同时接收,并将收到的数据通过通信总线发送,因此不需要额外的微控制器。但这种方案需要开发人员熟练地根据上述协议掌握芯片的设计开发,技术门槛非常高;同时,芯片初始设计费用非常高,造成研发成本过高。
发明内容
本发明解决的问题是避免因采用多个微控制器和专用芯片来控制鼠标和键盘数据上报而造成成本高及通信结构复杂的问题。
为解决上述问题,本发明鼠标和键盘数据上报的控制方法包括以下步骤:1)微处理器选择鼠标数据端口和键盘数据端口中的一个数据端口作为第一端口而另一个数据端口为第二端口;2)接收第一端口数据块的字节并保存,同时抑制第二端口的数据发送,且缓存第二端口待发数据;3)接收第二端口数据块的字节并保存,同时抑制第一端口的数据发送且缓存第一端口待发数据;4)如果第一、二端口皆有数据上报则交替执行步骤2)和3),否则接收当前有数据上报的鼠标数据端口或键盘数据端口的数据;5)当接收字节为数据块尾字节时,将完整的数据块上报给计算机。
所述步骤4)包括:
a)检测该第一端口是否有数据上报;
b)如果该第一端口有数据上报,则执行步骤2),并在接收完毕时启动定时器、设置超时时间及允许第二端口通信;如果该第一端口没有数据上报,则执行步骤e);
c)判断定时器时否溢出;
d)如果定时器未溢出,执行步骤e);
e)检测第二端口是否有数据上报;
f)如果第二端口有数据上报,则执行步骤3),在接收完毕时启动定时器、设置超时时间及允许第一端口通信;第二端口没有数据上报,执行步骤a);
g)判断定时器时否溢出;
h)如果定时器未溢出,执行步骤a)。
定时器超时时间范围为大于等于接收相邻字节时间间隔小于等于接收相邻数据块的时间间隔。优选地,定时器超时时间取值为一个字节的接收时间。
所述鼠标数据端口和键盘数据端口皆为PS/2端口,定时器超时时间范围为大于等于300us小于等于5ms。定时器超时时间优选取值为740us。通过将数据端口的时钟拉为低电平来抑制该数据端口的数据发送并缓存该数据端口待发数据。
进一步地,定时器溢出,以确定当前字节是数据块的尾字节,执行步骤5)。所述步骤5)中数据块通过控制器局域网总线或485总线发送。
相应地,本发明鼠标和键盘数据上报的控制装置包括:数据端口控制模块,用于通过在接收当前数据端口数据时抑制另外数据端口通信而择一地接收鼠标数据端口或键盘数据端口的数据;通信模块,用于将数据端口控制模块接收的完整数据块上报给计算机;交替控制模块,用于通知数据端口控制模块在鼠标数据端口或键盘数据端口皆有数据上报时交替接收鼠标数据端口数据和键盘数据端口数据,否则接收当前有数据上报的数据端口或键盘数据端口的数据,并在接收到数据块的尾字节时通知通信模块。
交替控制模块进一步包括:检测模块,用于择一检测鼠标或键盘数据端口是否有数据上报,且在有数据上报时,通知数据端口控制模块接收鼠标数据端口或键盘数据端口数据;如果当前数据端口没有数据上报,则切换另一个数据端口继续检测;定时器管理模块,由数据端口控制模块设置和启动,如果定时器超时时间未溢出则通知检测模块更换另一个数据端口检测;如果定时器溢出则表示数据块已接收尾字节,通知通信模块上报数据块。
所述定时器超时时间范围为大于等于接收相邻字节时间间隔小于等于接收相邻数据块的时间间隔。
所述检测模块进一步包括用于检测鼠标数据端口的鼠标检测模块和用于检测键盘数据端口的键盘检测模块。
定时器管理模块进一步包括:鼠标定时器,用于未溢出则通知键盘检测模块对键盘数据端口进行检测是否有数据上报,溢出则通知通信模块传输接收到完整的鼠标的数据块;键盘定时器,用于未溢出则通知鼠标检测模块对鼠标数据端口进行检测是否有数据上报;溢出则通知通信模块传输接收到完整的键盘的数据块。
所述数据端口控制模块进一步包括:键盘数据端口抑制模块,与鼠标检测模块连接,用于被通知鼠标数据端口有数据上报时,抑制键盘数据端口通信且缓存待发送的键盘数据;鼠标数据接收模块,与键盘数据端口抑制模块连接,用于接收鼠标数据端口的鼠标数据;鼠标数据保存模块,与鼠标数据接收模块连接,用于保存接收的鼠标数据;鼠标定时器启动和设置模块,与鼠标数据保存模块连接,用于在接收当次任务完毕,设置鼠标定时器超时时间并启动鼠标定时器;键盘数据端口通信使能模块,用于在接收当次任务完毕,允许键盘数据端口通信。鼠标数据端口抑制模块,与键盘检测模块连接,用于被通知键盘数据端口有数据上报时,抑制鼠标数据端口通信且缓存待发送的鼠标数据;键盘数据接收模块,与鼠标数据端口抑制模块连接,用于接收键盘数据端口的键盘数据;键盘数据保存模块,与键盘数据接收模块连接,用于保存键盘数据;键盘定时器启动和设置模块,与键盘数据保存模块连接,用于在接收当次任务完毕,设置键盘定时器超时时间并启动鼠标定时器;鼠标数据端口通信使能模块,用于在接收当次任务完毕,允许鼠标数据端口通信。
进一步地,所述通信模块为控制器局域网总线或485总线。所述鼠标数据端口和键盘数据端口皆为PS/2端口。PS/2端口的时钟线拉为低电平抑制该端口通信。
与现有技术相比,本发明具有以下优点:
择一处理键盘数据端口或鼠标数据端口则可由单微控制器实现,达到降低产品和开发成本,简化了系统结构;每次接收一个字节及以相邻字节间隔时间设置超时时间,保证数据实时性;抑制数据端口时缓存待发送数据则可保证数据传输的可靠性;采用CAN总线传输,则进一步保证数据的实时性和可靠性。
附图说明
图1是本发明鼠标和键盘数据上报的控制方法流程图。
图2是本发明鼠标和键盘数据上报的控制方法实施例流程图。
图3是本发明鼠标和键盘数据上报的控制装置框图。
图4、5是图3的细化框图。
具体实施方式
请参照图1所示,本发明鼠标和键盘数据上报的控制方法包括以下步骤:
1)微处理器选择鼠标数据端口和键盘数据端口中的一个数据端口作为第一端口而另一个数据端口为第二端口;
2)接收第一端口数据块的字节并保存,同时抑制第二端口的数据发送,且缓存第二端口待发数据;
3)接收第二端口数据块的字节并保存,同时抑制第一端口的数据发送且缓存第一端口待发数据;
4)如果第一、二端口皆有数据上报则交替执行步骤2)和3),否则接收当前有数据上报的鼠标数据端口或键盘数据端口的数据;
5)当接收字节为数据块尾字节时,将完整的数据块上报给计算机。
这样满足两个条件就可以实现接收:微处理没有接收另外一个数据端口的数据;当前端口有数据汇报上来。因此,可以说在时间上,微处理器完全有充足的时间来接收上报的报文,同时可以通过通信发送收到的报文,而不会影响下一个报文的接收。
步骤4)进一步包括:
a)检测该第一端口是否有数据上报;
b)如果该第一端口有数据上报,则执行步骤2),并在接收完毕时启动定时器、设置超时时间及允许第二端口通信;如果该第一端口没有数据上报,则执行步骤e);
c)判断定时器时否溢出;
d)如果定时器未溢出,执行步骤e);
e)检测第二端口是否有数据上报;
f)如果第二端口有数据上报,则执行步骤3),在接收完毕时启动定时器、设置超时时间及允许第一端口通信;第二端口有数据上报,执行步骤a);
g)判断定时器时否溢出;
h)如果定时器未溢出,执行步骤a)。
所述定时器如果溢出,则当前字节是数据块的尾字节,执行步骤5)
为了保证数据传输的实时性,定时器超时时间范围为大于等于接收相邻字节时间间隔小于等于接收相邻数据块的时间间隔,本实施例,以接收相邻字节时间间隔或一个字节接收时间来设置超时时间。例如,以PS/2协议为例,一个字节的接收时间大概在740微秒左右,按照这个时间设置数据报文接收的超时时间。同时,鼠标或键盘发送一个数据块(目前不超过5个字节)时,任意相邻两个上报字节之间的时间差不超过300微秒,而目前鼠标或键盘的相邻数据块时间间隔约5ms。因此300us<740us<5ms,从这个关系可以看出设置这个超时时间能够保证微控制器接收完上报一个报文并设置超时时间,而不会误认为下一个报文字节仍然是本报文的数据。理论上界于300us和5ms的时间均可以作为超时时间,但是考虑到微处理器本身的速度以及程序运行的情况,740微秒为优选。超时时间的设置只要满足实时性即可,随着微控制器、鼠标键盘数据处理加快,超时时间不限于设置为接收相邻字节时间间隔,即每次不限于接收一个字节。
所述步骤5)中数据块通过控制器局域网总线(CAN,Controller AreaNetwork)或485总线发送。CAN总线是一种高速工业现场总线,其通信仲裁功能采用硬件仲裁方法,就是通信仲裁部分全部由CAN控制器芯片来实现,保证总线上最多只有一个节点在发送通信报文;对于本发明,可以用485总线代替CAN总线,则其通信仲裁部分就必须由研发人员编写软件实现。
优选CAN总线作为通信介质是有两个方面的考虑:1)使用CAN总线可以避免通信仲裁的开发(CAN控制器自身就可以实现通信仲裁);2)因为鼠标或键盘一次汇报的数据块不会超过5个字节,可以通过一个8个字节长度的CAN报文发送,这样一个CAN报文可以发送一个完整的鼠标或键盘数据块,不需要解包,以保证数据通信的可靠性。考虑数据汇报最快的鼠标,其数据报文汇报的时间间隔在5ms以上,而CAN总线发送一次报文的时间不超过0.7ms(250Kbps),因此使用CAN总线完全可以保证鼠标键盘所汇报的数据实时,可靠地发送出去。例如,当需要发送鼠标报文的时候,将内存中保存的完整鼠标数据块的拷贝到CAN总线发送内存中,然后在CAN总线数据报文中拿出一个字节标注是鼠标还是键盘(因为CAN数据报文最多可以到8个字节,还可以自由使用其余3个字节)。
所述步骤5)中通信总线(例如CAN总线或485总线)仲裁当前所接收到的数据块,考虑到键盘上报数据块频率低于鼠标上报数据块频率,将以键盘上报的数据块为优先,对所接收到的数据块进行发送。在符合实时性情况下,不限于优先发送键盘数据块;可以依次发送键盘数据块和鼠标数据块后再直接返回步骤a)或e);也可以发送完一个数据块后,可以直接返回步骤a)或e)。
请参照图2所示,本发明鼠标和键盘数据上报的控制方法以鼠标数据端口和键盘数据端口皆为PS/2端口为例进行说明,但不限于PS/2端口,例如,若鼠标和键盘的数据端口为串口,则仍然可以按照串口相关的协议实现鼠标和键盘数据接收,数据上报抑制以及设置超时时间计算。
PS/2端口的Clock(时钟线)和Data数据线都是集电极开路的,平时都是高电平,有输出时才被拉到低电平,之后自动上浮到高电平。当PS/2端口等待发送数据时,首先检查Clock(时钟线)以确认其是否为高电平。如果是低电平,则认为是计算机抑制了通讯,此时必须缓冲保存待发送的数据直到重新获得总线的控制权(一般PS/2键盘有16个字节的缓冲区,而PS/2鼠标只有一个缓冲区仅存储最后一个要发送的数据)。如果Clock(时钟线)为高电平,PS/2端口开始发送数据。一般都是由PS/2设备产生时钟信号。其中数据位在Clock(时钟线)为高电平时准备好,在Clock(时钟线)的下降沿被计算机读入。当时钟频率为15KHz时,从Clock(时钟线)的上升沿到数据位转变时间至少要5μs。数据变化到Clock(时钟线)下降沿的时间至少也有5μs,但不能大于25μs,这是由PS/2通讯协议的时序规定的。当微控制器将PS/2端口的时钟线拉为低电平时,鼠标键盘就会将其待发送的数据存放在其缓存中,直到该时钟线为高电平之后,鼠标或键盘才将这个数据发送上来,这个数据不会丢失。
请继续参照图2,本发明鼠标和键盘数据上报的控制方法包括:
步骤200,初始化数据端口,拉高鼠标和键盘的PS/2端口时钟线,允许鼠标和键盘的PS/2端口接收数据;
步骤201,关闭鼠标和键盘定时器;
步骤202,微控制器选定鼠标PS/2端口为第一端口先行处理,而键盘PS/2端口为第二端口;检测鼠标PS/2端口时钟线是否为低电平;如果是低电平表示鼠标PS/2端口有数据上报,执行步骤203;如果否,则表示鼠标PS/2端口没有数据上报,执行步骤210;
步骤203,拉低键盘PS/2端口时钟线,禁止键盘PS/2端口通信;
步骤204,接收并存储鼠标数据的字节;
步骤205,接收完毕,设置鼠标定时器超时时间为一个字节传输时间(或相邻两个字节间隔时间相同),启动鼠标定时器;
步骤206,拉高键盘PS/2端口时钟线,允许(使能)键盘PS/2端口通信;
步骤207,判断鼠标定时器时否溢出,如果溢出,执行步骤208;如果未溢出,执行步骤210;
步骤208,打包接收的鼠标数据,转至步骤209;
步骤209,通过CAN通信仲裁并发送,返回步骤202(转至步骤210也可);
步骤210,检测键盘PS/2端口时钟线是否为低电平;如果是,则执行步骤211;如果否,则执行步骤202;
步骤211,拉低鼠标PS/2端口时钟线,禁止鼠标PS/2端口通信;
步骤212,接收并存储键盘数据的字节;
步骤213,接收完毕,设置键盘定时器超时时间为一个字节传输时间(或相邻两个字节间隔时间),启动键盘定时器;
步骤214,拉高鼠标PS/2端口时钟线,允许(使能)鼠标PS/2端口通信;
步骤215,判断键盘定时器时否溢出,如果溢出,执行步骤216);如果未溢出,执行步骤202;
步骤216,打包接收的键盘数据转至步骤209。
请参照图3所示,本发明鼠标和键盘数据上报的控制装置包括:
数据端口控制模块34,用于通过在接收当前数据端口数据时抑制另外数据端口通信而择一地接收鼠标数据端口31或键盘数据端口32的数据;
通信模块35,用于将数据端口控制模块34接收的完整数据块上报给计算机,本实施例中,通信模块35为控制器局域网总线或485总线,具体见前述控制方法中的描述;
交替控制模块33,用于通知数据端口控制模块34在鼠标数据端口31或键盘数据端口32皆有数据上报时交替接收鼠标数据端口数据31和键盘数据端口数据32,否则接收当前有数据上报的鼠标数据端口31或键盘数据端口32的数据,并在接收到数据块的尾字节时通知通信模块35。
请结合图4、5所示,交替控制模块33进一步包括:定时器管理模块330和检测模块331。
检测模块331,用于择一检测鼠标或键盘数据端口31、32是否有数据上报,且在有数据上报时,通知数据端口控制模块34接收鼠标数据端口31或键盘数据端口32数据;如果当前数据端口没有数据上报,则切换另一个数据端口继续检测。检测模块331包括用于检测鼠标数据端口的鼠标检测模块334和用于检测键盘数据端口的键盘检测模块335。具体实现参见前述控制方法中的描述。
定时器管理模块330,由数据端口控制模块34设置和启动,如果定时器超时时间未溢出则通知检测模块331更换另一个数据端口检测;如果定时器溢出则表示数据块已接收尾字节,通知通信模块35上报数据块。定时器管理模块330包括鼠标定时器332和键盘定时器333。鼠标定时器332未溢出则通知键盘检测模块335对键盘数据端口32进行检测是否有数据上报,溢出则通知通信模块35传输接收到完整的鼠标的数据块。键盘定时器333未溢出则通知鼠标检测模块334对鼠标数据端口31进行检测是否有数据上报;溢出则通知通信模块35传输接收到完整的键盘的数据块。
数据端口控制模块34包括键盘数据处理模块(未标号)和鼠标数据处理模块(未标号)。
鼠标数据处理模块进一步包括:
键盘数据端口抑制模块340,与鼠标检测模块334连接,用于被通知鼠标数据端口31有数据上报时,抑制键盘数据端口32通信且缓存待发送的键盘数据,具体实现参见前述控制方法中的描述;
鼠标数据接收模块341,与键盘数据端口抑制模块340连接,用于接收鼠标数据端口31的鼠标数据,每次接收字节的数量同前述控制方法;
鼠标数据保存模块342,与鼠标数据接收模块341连接,用于保存接收的鼠标数据;
鼠标定时器启动和设置模块343,与鼠标数据保存模块342连接,用于在接收当次任务完毕,设置鼠标定时器332超时时间并启动鼠标定时器332,超时时间的设置同前述控制方法;
键盘数据端口通信使能模块344,用于在接收当次任务完毕,允许键盘数据端口32通信。
键盘数据处理模块进一步包括:
鼠标数据端口抑制模块345,与键盘检测模块335连接,用于被通知键盘数据端口32有数据上报时,抑制鼠标数据端口31通信且缓存待发送的鼠标数据,具体实现参见前述控制方法中的描述;
键盘数据接收模块346,与鼠标数据端口抑制模块345连接,用于接收键盘标数据端口32的键盘数据,每次接收字节的数量同前述控制方法;
键盘数据保存模块347,与键盘数据接收模块346连接,用于保存键盘数据;
键盘定时器启动和设置模块348,与键盘数据保存模块347连接,用于在接收当次任务完毕,设置键盘定时器333超时时间并启动鼠标定时器332,超时时间的设置同前述控制方法;
鼠标数据端口通信使能模块349,用于在接收当次任务完毕,允许鼠标数据端口31通信。
这样,接收鼠标数据端口31数据块的字节,同时抑制键盘数据端口32且缓存键盘数据端口32待发数据,并在保存接收鼠标数据后使能键盘数据端口32;或者,接收键盘数据端口32数据块的字节,同时抑制鼠标数据端口31且缓存鼠标数据端口31待发数据,并在保存所接收的键盘数据后使能鼠标数据端口31。
所述鼠标和键盘数据上报的控制装置,所述鼠标数据端口和键盘数据端口皆为PS/2端口,通过将鼠标数据端口和键盘数据端口的时钟线拉为低电平来抑制该数据端口的数据发送并缓存该数据端口待发数据,具体参见前述控制方法中描述。
前述控制方法中描述的实施例适用于本发明鼠标和键盘数据上报的控制装置,不再赘述。
综上所述,本发明鼠标和键盘数据上报的控制方法和装置,择一处理键盘数据端口或鼠标数据端口则可由单微控制器实现;每次接收一个字节及以相邻字节间隔时间设置超时时间,保证数据实时性;抑制数据端口时缓存待发送数据则可保证数据传输的可靠性;采用CAN总线传输,则进一步保证数据的实时性和可靠性。
Claims (17)
1.一种鼠标和键盘数据上报的控制方法,其特征在于,包括以下步骤:
1)微处理器选择鼠标数据端口和键盘数据端口中的一个数据端口作为第一端口而另一个数据端口为第二端口;
2)接收第一端口数据块的字节并保存,同时抑制第二端口的数据发送,且缓存第二端口待发数据;
3)接收第二端口数据块的字节并保存,同时抑制第一端口的数据发送且缓存第一端口待发数据;
4)如果第一、二端口皆有数据上报则交替执行步骤2)和3),否则接收当前有数据上报的鼠标数据端口或键盘数据端口的数据;
5)当接收字节为数据块尾字节时,将完整的数据块上报给计算机。
2.如权利要求1所述的鼠标和键盘数据上报的控制方法,其特征在于,步骤4)包括:
a)检测该第一端口是否有数据上报;
b)如果该第一端口有数据上报,则执行步骤2),并在接收完毕时启动定时器、设置超时时间及允许第二端口通信;如果该第一端口没有数据上报,则执行步骤e);
c)判断定时器时否溢出;
d)如果定时器未溢出,执行步骤e);
e)检测第二端口是否有数据上报;
f)如果第二端口有数据上报,则执行步骤3),在接收完毕时启动定时器、设置超时时间及允许第一端口通信;第二端口没有数据上报,执行步骤a);
g)判断定时器时否溢出;
h)如果定时器未溢出,执行步骤a)。
3.如权利要求2所述的鼠标和键盘数据上报的控制方法,其特征在于,定时器超时时间范围为大于等于接收相邻字节时间间隔小于等于接收相邻数据块的时间间隔。
4.如权利要求3所述的鼠标和键盘数据上报的控制方法,其特征在于,定时器超时时间取值为一个字节的接收时间。
5.如权利要求3所述的鼠标和键盘数据上报的控制方法,其特征在于,所述鼠标数据端口和键盘数据端口皆为PS/2端口,定时器超时时间范围为大于等于300us小于等于5ms。
6.如权利要求5所述的鼠标和键盘数据上报的控制方法,其特征在于,定时器超时时间取值为740us。
7.如权利要求2至6任一项所述的鼠标和键盘数据上报的控制方法,其特征在于,定时器溢出,以确定当前字节是数据块的尾字节,执行步骤5)。
8.如权利要求2至6任一项所述的鼠标和键盘数据上报的控制方法,其特征在于,所述步骤5)中数据块通过控制器局域网总线或485总线发送。
9.如权利要求4至6任一项所述的鼠标和键盘数据上报的控制方法,其特征在于,通过将数据端口的时钟拉为低电平来抑制该数据端口的数据发送并缓存该数据端口待发数据。
10.一种鼠标和键盘数据上报的控制装置,其特征在于,包括:
数据端口控制模块,用于通过在接收当前数据端口数据时抑制另外数据端口通信而择一地接收鼠标数据端口或键盘数据端口的数据;
通信模块,用于将数据端口控制模块接收的完整数据块上报给计算机;
交替控制模块,用于通知数据端口控制模块在鼠标数据端口或键盘数据端口皆有数据上报时交替接收鼠标数据端口数据和键盘数据端口数据,否则接收当前有数据上报的数据端口或键盘数据端口的数据,并在接收到数据块的尾字节时通知通信模块。
11.如权利要求10所述的鼠标和键盘数据上报的控制装置,其特征在于,交替控制模块包括:
检测模块,用于择一检测鼠标或键盘数据端口是否有数据上报,且在有数据上报时,通知数据端口控制模块接收鼠标数据端口或键盘数据端口数据;如果当前数据端口没有数据上报,则切换另一个数据端口继续检测;
定时器管理模块,由数据端口控制模块设置和启动,如果定时器超时时间未溢出则通知检测模块更换另一个数据端口检测;如果定时器溢出则表示数据块已接收尾字节,通知通信模块上报数据块。
12.如权利要求11所述的鼠标和键盘数据上报的控制装置,其特征在于,定时器超时时间范围为大于等于接收相邻字节时间间隔小于等于接收相邻数据块的时间间隔。
13.如权利要求11所述的鼠标和键盘数据上报的控制装置,其特征在于,检测模块包括用于检测鼠标数据端口的鼠标检测模块和用于检测键盘数据端口的键盘检测模块;
定时器管理模块进一步包括:
鼠标定时器,用于未溢出则通知键盘检测模块对键盘数据端口进行检测是否有数据上报,溢出则通知通信模块传输接收到完整的鼠标的数据块;
键盘定时器,用于未溢出则通知鼠标检测模块对鼠标数据端口进行检测是否有数据上报;溢出则通知通信模块传输接收到完整的键盘的数据块。
14.如权利要求13所述的鼠标和键盘数据上报的控制装置,其特征在于,数据端口控制模块进一步包括:
键盘数据端口抑制模块,与鼠标检测模块连接,用于被通知鼠标数据端口有数据上报时,抑制键盘数据端口通信且缓存待发送的键盘数据;
鼠标数据接收模块,与键盘数据端口抑制模块连接,用于接收鼠标数据端口的鼠标数据;
鼠标数据保存模块,与鼠标数据接收模块连接,用于保存接收的鼠标数据;
鼠标定时器启动和设置模块,与鼠标数据保存模块连接,用于在接收当次任务完毕,设置鼠标定时器超时时间并启动鼠标定时器;
键盘数据端口通信使能模块,用于在接收当次任务完毕,允许键盘数据端口通信。
鼠标数据端口抑制模块,与键盘检测模块连接,用于被通知键盘数据端口有数据上报时,抑制鼠标数据端口通信且缓存待发送的鼠标数据;
键盘数据接收模块,与鼠标数据端口抑制模块连接,用于接收键盘数据端口的键盘数据;
键盘数据保存模块,与键盘数据接收模块连接,用于保存键盘数据;
键盘定时器启动和设置模块,与键盘数据保存模块连接,用于在接收当次任务完毕,设置键盘定时器超时时间并启动鼠标定时器;
鼠标数据端口通信使能模块,用于在接收当次任务完毕,允许鼠标数据端口通信。
15.如权利要求10至14任意一项所述的鼠标和键盘数据上报的控制装置,其特征在于,所述通信模块为控制器局域网总线或485总线。
16.如权利要求10至14所述的鼠标和键盘数据上报的控制装置,其特征在于,所述鼠标数据端口和键盘数据端口皆为PS/2端口。
17.如权利要求16所述的鼠标和键盘数据上报的控制装置,其特征在于,PS/2端口的时钟线拉为低电平抑制该端口通信。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200410088984XA CN100339804C (zh) | 2004-11-23 | 2004-11-23 | 鼠标和键盘数据上报的控制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200410088984XA CN100339804C (zh) | 2004-11-23 | 2004-11-23 | 鼠标和键盘数据上报的控制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1779601A true CN1779601A (zh) | 2006-05-31 |
CN100339804C CN100339804C (zh) | 2007-09-26 |
Family
ID=36769944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB200410088984XA Expired - Fee Related CN100339804C (zh) | 2004-11-23 | 2004-11-23 | 鼠标和键盘数据上报的控制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100339804C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112269474A (zh) * | 2020-10-09 | 2021-01-26 | 上海晨驭信息科技有限公司 | 一种kvm usb链路健康管理系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2296349A (en) * | 1994-12-19 | 1996-06-26 | Secr Defence | Maintaining order of input data events |
CN1275167C (zh) * | 2003-03-05 | 2006-09-13 | 广达电脑股份有限公司 | 虚拟键盘与鼠标的控制装置 |
-
2004
- 2004-11-23 CN CNB200410088984XA patent/CN100339804C/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112269474A (zh) * | 2020-10-09 | 2021-01-26 | 上海晨驭信息科技有限公司 | 一种kvm usb链路健康管理系统 |
CN112269474B (zh) * | 2020-10-09 | 2024-02-09 | 上海晨驭信息科技有限公司 | 一种kvm usb链路健康管理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN100339804C (zh) | 2007-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100346307C (zh) | Java操作系统中实时任务调度的实现方法 | |
CN1828541A (zh) | Java操作系统中定时任务的实现方法 | |
CN101055533A (zh) | 一种多线程处理器动态内存管理系统及方法 | |
CN1760839A (zh) | 帮助多端口主机适配器的端口测试的装置、系统和方法 | |
CN1685326A (zh) | 总线连接系统 | |
CN1316074A (zh) | 中断/软件控制的线程处理 | |
CN1700196A (zh) | 通过直接存储器访问控制器传输数据的系统及方法 | |
CN1881934A (zh) | 微处理器、网络系统和通信方法 | |
CN1889063A (zh) | 数字信号处理器子系统及其数据处理方法 | |
CN1892630A (zh) | Dma数据传送装置、半导体集成电路装置及数据传送方法 | |
CN1819544A (zh) | 一种基于bitmap表的缓存管理方法 | |
CN1687865A (zh) | 降低处理器电力消耗的系统、方法及装置 | |
CN1482782A (zh) | Modbus/tcp工业以太网和设备网现场总线间的协议转换方法和装置 | |
CN1855067A (zh) | 一种实时操作系统中任务挂起状态监控方法 | |
CN1908925A (zh) | 提高pci通信可靠性及效率的方法 | |
CN100339804C (zh) | 鼠标和键盘数据上报的控制方法和装置 | |
CN1976310A (zh) | 在网络中通过总线接口进行通信的方法和系统 | |
CN1828543A (zh) | Java操作系统中实时任务调度方法 | |
CN1519735A (zh) | 嵌入式实时操作系统的进程调度方法 | |
CN1863085A (zh) | 保证网管和网元配置数据一致性的方法及系统 | |
CN101039207A (zh) | 具有双中央处理器的智能光网络设备及其实现方法 | |
CN101039216A (zh) | 一种分布式系统定时方法、装置及系统 | |
CN101039332A (zh) | 页面数据传递方法、系统及服务器 | |
CN101079815A (zh) | 报文转换方法、系统及装置 | |
CN1934551A (zh) | 数据转发控制系统 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070926 Termination date: 20201123 |