DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1630|回复: 0
打印 上一主题 下一主题

[待整理] 多功能USB组合设备的结构设计

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-12 14:50:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
引言

随着USB通信技术的不断发展,USB接口得到了广泛的应用。单一功能的USB设备,如USB键盘、USB鼠标、USB调制解调器等,已经不能满足人们对USB设备功能的要求。多功能的USB设备正不断涌现出来,常见的有带话筒的USB摄像头、USB可视电话等。因此,研究多功能USB设备对于满足人们对新型USB设备的需求是十分必要的。
1 多功能USB设备的结构模型

多功能USB设备通常是通过单个或多个USB控制器连接不同类型的设备来实现的。而在一个USB接口上实现多个设备有两种方法:一种是复合设备(Compound Device),一种是组合设备(Composite Device)。图1和图2分别给出了复合设备和组合设备的结构模型。

实际上,USB设备应该被视为不同的功能。多个功能可以被封装在一起形成一个物理设备。所以复合设备其实就是几个设备通过一个USB Hub形成的单一设备,复合设备内的Hub和与Hub相连的各个功能会分配各自的设备地址。组合设备也就是具有多个接口的设备,每个接口代表一个独立的设备,但是组合设备只有一个设备地址。

采用复合设备方法开发多功能USB设备时,其开发过程同开发两种不同类型的USB设备相同,开发难度较低。本文重点介绍组合设备的设计方法,并举例加以实现。
2 组合设备的设计方法

2.1 组合设备的特点

USB组合设备是指具有多个接口且接口间相互独立的USB设备。一个USB设备只有一个设备地址,可以将不同的功能与不同的接口对应,来开发多功能USB设备。

组合设备采用一个USB控制芯片,同时接A设备和B设备。主机可以同时与A设备和B设备通信。

2.2 组合设备的描述符结构

如图3所示,以两个接口的组合设备为例,来说明组合设备的描述符结构。一个设备描述符下有一个配置描述符,一个配置描述符下可以有多个接口描述符,分别对应不同的设备。每个接口描述符下又包含多个端点描述符。一个USB逻辑设备对USB系统来说就是一个端点集合。端点可以根据它们实现的接口来分类。所有的USB设备都需要实现一个缺省的控制方法。这种方法将端点0作为输入端点,同时也将端点0作为输出端点。USB系统用这个缺省方法初始化及一般地使用逻辑设备(即设置此设备)。设备可以有除端点0以外的其他端点,这取决于这些设备的实现。低速设备除端点0外,只能有2个额外的可选端点。而高速设备可具有的额外端点数仅受限于协议的定义。除缺省控制通道的缺省端点外,其他端点只有在设备被设置后才可使用。而且除端点0外,其他端点在不同接口间不能共享。

组合设备使用一个USB控制芯片,通过控制不同的接口与不同的设备进行通信,解决了主机与组合设备内各个设备数据流的区分问题。
3 组合设备的硬件实现

3.1 USB接口部分

设备采用Holtek公司的8位USB多媒体键盘编码器HT82K95E作为本系统的核心。鼠标、键盘等HID类设备为低速设备,所以该设备要能同时实现鼠标和键盘数据同PC机的双向传输,MCU首先必须具有低速的USB接口,并且支持3个端点(包括端点0)。综合考虑,选用了HT82K95E作为本系统的主控芯片。由于鼠标和键盘均属于低速设备,所以应在USB信号线上加1.5kΩ的上拉电阻。

3.2 MCU部分

USB接口部分原理图如图4所示。MCU的复位电路采用由R1和C1组成的RC积分电路来实现上电复位功能。上电瞬间,由于电容电压不能突变,所以复位引脚为低电平,然后电容开始缓慢充电,复位引脚电位开始升高,最后变为高电平,完成芯片的上电复位。HT82K95E微控制器内部还包含一个低电压复位电路(LVR)用于监视设备的供电电压。如果设备的供电电压下降到0.9VLVR的范围内并且超过1 ms的时间。那么LVR就会自动复位设备。

应当注意的是,对于该设备的复位电路,还应加一个BAT54SW二极管,接法如图4中D1所示。如果不加D1,设备在第一次使用时能够正常复位,但在以后的使用中却无法正常复位,原因是电容中的电荷无法释放掉,而D1可以通过整个电路快速释放掉电容中的电荷。

该组合设备采用HT82K95E USB控制芯片,通过对两个接口的管理,实现了鼠标和键盘的功能。

表指令:TABRDL[m]。该指令用于查ROM中最后1页的数据。HT82K95E具有表指针寄存器TB HP,在使用TABRDL指令时,TBHP默认为最后1页的首址高位。通过查表,表格的低位字节送入[m],高位字节送入TBLH寄存器。

在固件设计中,将描述符存储在ROM的最后1页,当主机请求设备的各种描述符时,通过TABRDL指令将描述符从最后1页取出,并传送给主机,完成设备的枚举过程。该组合设备的描述符在下面给出。

ASM_CONFIG_LEN为配置描述符的大小,其值为配置描述符、接口描述符、HID描述符和端点描述符的大小的总和。ASM_ENTlTY_LEN_0为鼠标报告描述符的大小,ASM_ENTITY_LEN_1为键盘报告描述符的大小。描述符中其他各项的意义在本文中不作详细解释,通过使用周立功公司的USB分析仪USBAnalyser,可分析出该组合设备的枚举过程流程,如图5所示。


结语

本文简要分析了多功能USB设备两种结构模型的不同,重点介绍了组合设备的设计方法。基于该设计方法,采用Holtek的8位单片机HT82 K95E芯片设计了一款鼠标键盘组合设备。在开发此组合设备的过程中,可以分别调试两个接口,如果每个接口都可正确运行,接着就可编写两个接口的描述符,实现组合设备的功能。组合设备对USB控制器可提供的端点数量和这些端点所支持的传输类型有所限制。USB控制器需较好的支持设备A和设备B间的传输协议。目前,不少芯片厂商也逐渐提供了组合设备的芯片方案。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-8-9 18:23 , 耗时 0.094063 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表