一种复合键盘和指纹识别器的通用串行总线数据传输方法

文档序号:6336980阅读:134来源:国知局
专利名称:一种复合键盘和指纹识别器的通用串行总线数据传输方法
技术领域
本发明涉及集成电路领域,特别是USB多功能键盘和USB指纹识别设备集成的
复合设备。
背景技术
目前的USB多功能键盘上如果需要增加指纹识别设备,一般都需要3颗芯片, 一颗USB多功能键盘控制芯片,一个USB指纹识别设备芯片和一颗USB HUB控制芯 片。多媒体键盘和指纹识别设备的功能由各自的控制芯片完成,USB HUB芯片负责把二 者结合在一起,即将USB多媒体键盘和USB指纹识别设备的两个接口结合成一个接口, 我们称这种实现方法为“三芯片”方案。三芯片方案存在以下不足之处使用的芯片多(3颗),产品成本高,系统连 线复杂,影响系统性能,兼容性不好控制等等,而成本高,集成度低则是最主要的缺
点ο所以“三芯片”系统结构太复杂,使用不方便,芯片数目多导致功耗高成本高 不利于市场推广。

发明内容
本发明目的是提供一种复合键盘和指纹识别器的通用串行总线数据传输方法, 该方法实现了多个不同USB设备类型的端点共存于一个USB控制器中。为达到上述目的,本发明采用的技术方案是一种复合键盘和指纹识别器的通 用串行总线数据传输方法,包括以下步骤
步骤1、在同一个USB设备的USB控制器下设置中断端点和块传输(Bulk)端点; 步骤2、主机向USB控制器发送用于取所述设备描述符的请求信息; 步骤3、主机根据来自所述设备的描述符,分配给该设备一 USB地址,一中断端点 地址和一块传输(Bulk)端点地址,该中断端点地址和块传输(Bulk)端点地址均为所 述USB地址的子地址;
步骤4、将来自主机数据包解包,如果该数据包内USB地址与设备的USB地址相 符,则接受该数据包;或者,将来自中断端点或块传输(Bulk)端点的数据与所述设备 的USB地址和相应的端点地址整合为数据包向主机传输;
步骤5、根据数据包内端点地址与所述中断端点地址和块传输(Bulk)端点地址,将 该数据包内端点地址分别与中断端点地址和块传输(Bulk)端点地址比较;
步骤6、当所述数据包内端点地址符合中断端点地址时,将数据包内数据存放于中断 端点对应的第一缓存区;当所述数据包内端点地址符合块传输(Bulk)端点地址时,将 数据包内数据存放于块传输(Bulk)端点对应的第二缓存区;
步骤7、所述第一缓存区与键盘控制模块之间传输数据,或者所述第二缓存区与指纹 识别器的SPI接口之间传输数据。
上述技术方案中的有关内容解释如下 上述方案中,所述设备描述符,包括
配置描述符(CONFIG—DESCRIPTOR), 该配置描述符(CONFIG— DESCRIPTOR)中项目设备接口类型数(bNumlnterface)的值设置为2 ;
接口 描述符(INTERFACE—DESCRIPTOR),该接口 描述符(INTERFACE— DESCRIPTOR)由接口类型参数(blnterfaceClass)、接口子类型参数blnterfaceSubClass 和接口协议(blnterfaceProtocol)决定其是HID类型或海量存储类型。由于上述技术方案运用,本发明的有益效果是
本发明本专利的优势在于实现了多种工作类型的USB设备共用一个PHY和SIE,而 不是使用一个USB Hub对多个设备进行级联,节约了硬件资源,且Host对各个设备的访 问时间并不比使用Hub慢,达到了同样的USB传输性能要求。


附图1为本发明流程示意图; 附图2为本发明结构示意图。
具体实施例方式下面结合附图及实施例对本发明作进一步描述
实施例一种复合键盘和指纹识别器的通用串行总线数据传输方法,其特征在于 包括以下步骤
步骤1、在同一个USB设备的USB控制器下设置中断端点和块传输(Bulk)端点; 步骤2、主机向USB控制器发送用于取所述设备描述符的请求信息; 步骤3、主机根据来自所述设备的描述符,分配给该设备一 USB地址,一中断端点 地址和一块传输(Bulk)端点地址,该中断端点地址和块传输(Bulk)端点地址均为所 述USB地址的子地址;
步骤4、将来自主机数据包解包,如果该数据包内USB地址与设备的USB地址相 符,则接受该数据包;或者,将来自中断端点或块传输(Bulk)端点的数据与所述设备 的USB地址和相应的端点地址整合为数据包;
步骤5、根据数据包内端点地址与所述中断端点地址和块传输(Bulk)端点地址,将 该数据包内端点地址分别与中断端点地址和块传输(Bulk)端点地址比较;
步骤6、当所述数据包内端点地址符合中断端点地址时,将数据包内数据存放于中断 端点对应的第一缓存区;当所述数据包内端点地址符合块传输(Bulk)端点地址时,将 数据包内数据存放于块传输(Bulk)端点对应的第二缓存区;
步骤7、所述第一缓存区与键盘控制模块之间传输数据,或者所述第二缓存区与指纹 识别器的SPI接口之间传输数据。所述设备描述符,包括
配置描述符(CONFIG—DESCRIPTOR),用于USB设备的具体功能,Interface, Endpoint等具体硬件资源的功能描述,该配置描述符(CONFIG—DESCRIPTOR)中项目 设备接口类型数(bNumlnterface)的值设置为2 ;接口 描述符(INTERFACE—DESCRIPTOR),该接口 描述符(INTERFACE— DESCRIPTOR)由接口类型参数(blnterfaceClass)、接 口子类型参数 blnterfaceSubClass 和接口协议(blnterfaceProtocol)决定其是HID类型或海量存储类型。本实施例上述内容具体解释如下。USB设备有2个接口类型,每个接口类型可以单独完成一种功能。例如,USB 多媒体键盘,它是一个USB设备,同时它也只有一个接口类型,即人体输入学设备类型
(HID) ;USB指纹识别设备也是一个USB设备,它也只有一个接口类型,根据方案的不 同有不同的设备类型,本例使用的是海量存储设备类型(Mass Storage),这是由于用户 按下指纹传感器后产生的指纹数据需要在短时间内传输到主机(PC),且数据量很大, 而USB海量存储设备类型正是为了满足这种类型的传输指定的协议。USB协议定义了 很多种接口类型,包括了 USB多媒体键盘,USB摄像头,USB打印机,USB闪存盘, USB监视器等等,具备两个或以上接口类型的USB设备,称为USB复合设备。上述方 法,即将USB多媒体键盘和USB指纹识别设备两种接口类型集成到一个设备中,来取代 了现有的“三芯片”方案。USB多媒体键盘与USB指纹识别设备集成的复合设备,设置有一块芯片,包括 PHY (USB物理接口模块)和S正(USB串行数据引擎模块),用于数据流通道的控制 端点及CPU和控制逻辑,用于数据流同的USB中断端点和Bulk端点。所述PHY用于接受USB线缆传送过来的串行数据,所述SIE用于把串行数据转 换成并行数据。本实施例中PHY和SIE上就会有两种数据,中断端点用于接受键盘的数据,该 按键的键盘数据放在中断端点并等待主机定时来获取,Bulk端点用于发送USB指纹识别 设备的数据,同时也接受来自主机的用于配置指纹识别器的指令和数据,即在本实施例 内部将两种数据分开;所述CPU用于数据的分配和协调,具体为主要利用USB设备的多 个端点,来自键盘矩阵的数据发往中断端点,来自主机的指令和数据和来自指纹识别器 的数据发往Bulk端点;所述控制端点,当USB设备枚举时,通知主机当前设备类型以及 设备共有几个端点,各个端点的类型,并且枚举数据中包含了多媒体键盘设备以及指纹 识别设备的特殊信息用于主机识别中断端点和Bulk端点。所述控制逻辑包括键盘控制逻辑和USB指纹识别设备控制逻辑,所述键盘控制 逻辑连接到多媒体键盘矩阵并将产生的按键信息送到中断端点,所述USB指纹识别设备 连接指纹采集芯片并将指纹的数据送到Bulk端点,这样就可以在一块芯片里具备键盘和 指纹识别设备的两种数据流通道。主机识别USB设备和分辨USB设备类型,都是通过USB描述符来实现的, 复合设备的实现也是从描述符来入手的。USB的描述符包括很多,按照主机识别的常 规顺序包括GET—DESCRIPTOR (取描述符),SET—ADDRESS (分配设备地址), SET—CONFIGURATION (确认配置)等。 GET—DESCRIPTOR又包括很多子类,例 如DEVICE_DESCRIPTOR (设备描述符),CONFIG_DESCRIPTOR (配置描述符), STRING DESCRIPTOR (文字描述符),INTERFACE—DESCRIPTOR (接口 描述符), ENDPOINT DESCRIPTOR (端点描述符)等。所述复合设备集成的方法就是改变描述符CONFIG—DESCRIPTOR和
5INTERFACE DESCRIPTOR的参数配置,其中CONFIG—DESCRIPTOR指的是对设备的一
个参数配置,包括该设备有多少个接口,有多少种不同配置及设备工作需要的最大电流 等等,将CONFIG—DESCRIPTOR中的项目bNumlnterface (设备接口类型数)的值设置 为2; INTERFACE—DESCRIPTOR指的是设备的接口类型的详细说明,包括接口类型和 接口子类型的定义,通过定义blnterfaceClass (接口类型)和blnterfaceSubClass (接口
子类型)两项,就可以区分键盘和USB指纹识别设备,对于复合设备就有了 2个设备类 型和2个子设备类型。 下面是这两种描述符的详细定义,是由USB组织按照国际标准定义的,兼容所 有的USB设备和主机
CONFIGRATION DESCRIPTOR
bLength;bDescriptorTypewTotalLength;bNumberlnterface;"2,两个 InterfacebConfiguration;bmAttributes;MaxPower;以下是中断端点—INTERFACE—DESCRIPTORbLength;bDescriptorType;blnterfaceNumber;//ο,第一个 InterfacebAlternateSetting;bNumEndpoints;//1,一个端点blnterfaceClass;//3,HID类blnterfaceSubClass;//1,HID类设备blnterfaceProtocol;//1,HID协议ilnterface;以下是HID专用描述符bLength;bDescriptorType;//2,HID专有描述符bcdHID;bCountryCode;bNumDescriptors;bDescriptorType;bDescriptorLength;以下是中断端点的—ENDPOINT—DESCRIPTORbLength;bDescriptorType;bEndpointAddress;//XX,端点硬件地址
bmAttributes;
wMaxPacketSize;
blnterval;
以下是 Bulk 端点—INTERFACE—DESCRIPTOR bLength;
/1,第二个 Interface
/2,两个端点 /8,大容量存储类 /6,大容量存储类
/0x50,大容量存储类数据传输协议
bDescriptorType; blnterfaceNumber; bAlternateSetting; bNumEndpoints; blnterfaceClass; blnterfaceSubClass; blnterfaceProtocol; ilnterface;
以下是 Bulk 端点的—ENDPOINT1—DESCRIPTOR
bLength;
bDescriptorType;
bEndpointAddress;//XX,数据接收端点硬件地址
bmAttributes;
wMaxPacketSize;
blnterval;
以下是 Bulk 端点的—ENDPOINT2—DESCRIPTOR
bLength;
bDescriptorType;
bEndpointAddress;//XX,数据发送端点硬件地址
bmAttributes;
wMaxPacketSize;
blnterval; }
其中项blnterfaceClass (接口类型)和blnterfaceSubClass (接口子类型)严格定义
了设备类型。复合设备的关键就是主机将键盘和指纹识别设备的数据同时对一个复合设备传 送,要实现这点就必须让主机识别到设备同时有中断端点和Bulk端点。按照上述方法设 置描述符,和主机对接后,主机通过控制端点就可以识别到具备中断端点和Bulk端点的 复合设备,键盘和指纹识别设备的数据就可以正确的传送。上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的 人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本 发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
权利要求
1.一种复合键盘和指纹识别器的通用串行总线数据传输方法,其特征在于包括以 下步骤步骤1、在同一个USB设备的USB控制器下设置中断端点和块传输(Bulk)端点; 步骤2、主机向USB控制器发送用于取所述设备描述符的请求信息; 步骤3、主机根据来自所述设备的描述符,分配给该设备一 USB地址、一中断端点 地址和一块传输(Bulk)端点地址,该中断端点地址和块传输(Bulk)端点地址均为所 述USB地址的子地址;步骤4、将来自主机数据包解包,如果该数据包内USB地址与所述设备的USB地址 相符,则接受该数据包;或者,将来自中断端点或块传输(Bulk)端点的数据与所述设 备的USB地址和相应的端点地址整合为数据包;步骤5、根据数据包内端点地址与所述中断端点地址和块传输(Bulk)端点地址,将 该数据包内端点地址分别与中断端点地址和块传输(Bulk)端点地址比较;步骤6、当所述数据包内端点地址符合中断端点地址时,将数据包内数据存放于中断 端点对应的第一缓存区;当所述数据包内端点地址符合块传输(Bulk)端点地址时,将 数据包内数据存放于块传输(Bulk)端点对应的第二缓存区;步骤7、所述第一缓存区与键盘控制模块之间传输数据,或者所述第二缓存区与指纹 识别器的SPI接口之间传输数据。
2.根据权利要求1所述的方法,其特征在于所述设备描述符,包括配置描述符(CONFIG—DESCRIPTOR), 该配置描述符(CONFIG— DESCRIPTOR)中项目设备接口类型数(bNumlnterface)的值设置为2 ;接口 描述符(INTERFACE—DESCRIPTOR),该接口 描述符(INTERFACE— DESCRIPTOR)由接口类型参数(blnterfaceClass)、接口子类型参数blnterfaceSubClass 和接口协议(blnterfaceProtocol)决定其是HID类型或海量存储类型。
全文摘要
一种复合键盘和指纹识别器的通用串行总线数据传输方法,包括以下步骤在同一个设备的USB控制器下设置中断端点和块传输(Bulk)端点;主机根据来自所述设备的描述符,分配给该设备一USB地址,一中断端点地址和一块传输(Bulk)端点地址;当所述数据包内端点地址符合中断端点地址时,将数据包内数据存放于中断端点对应的第一缓存区;当所述数据包内端点地址符合块传输(Bulk)端点地址时,将数据包内数据存放于块传输(Bulk)端点对应的第二缓存区;所述第一缓存区与键盘矩阵之间传输数据,或者所述第二缓存区与指纹识别器的SPI接口之间传输数据。本发明实现了多个不同USB设备类型的端点共存于一个USB控制器中。
文档编号G06F13/42GK102012890SQ20101056359
公开日2011年4月13日 申请日期2010年11月29日 优先权日2010年7月15日
发明者匡启和, 王廷平, 聂智, 肖佐楠, 郑茳 申请人:苏州国芯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1