《USB多点触摸设备的固件程序设计》由会员分享,可在线阅读,更多相关《USB多点触摸设备的固件程序设计(3页珍藏版)》请在金锄头文库上搜索。
1、1 2 U S B多点触摸设 备的固件程序设计 U S B多点触摸设备的固件程序设计 De s i gn o f F _ r mwa r e o f USB M u l t i - t o u c h De v i c e s 王 允 卢振 宇 郭 星 吴建 国 ( 安徽大学计算机科学与技术学院, 安徽 合肥 2 3 0 6 0 1 ) 摘 要 现在 , U S B设备 已经十分普及 , 尤其是 H I D( Hu ma n I n t e r f a c e D e v i c e ) 设备 , 其无 需驱动的特点更是给用户带来 了极 大 的 方便 。给 出一种 基 于 S T C8 9 C
2、5 2 RC微 控 制 器和 PDI US BD1 2芯 片仿 真 USB 多点 触摸 设 备 的方 法 。首先 介 绍 USB和 H I D的基础知识 , 然后详 细阐述该设备的硬件设计 , 最后结合主机在枚举期 间的请求 , 论述该设备 的识别过程。实现的 多点 触摸 设备无需编写和安装 U S B设备驱动程序 , 操作 系统可 自动识别。 关 键 词 : 通 用 串行 总线 , 人 机 接 口设 备 , 多点 触摸 , 描 述 符 , S T C 8 9 C5 2 R C, P DI U S BD 1 2 Ab s t r a c t I n t h e s e d a y s ,U S
3、 B D e v ic e s h a v e a l r e a d y b e c o m e v e r y p o p u la r ,e s p e c i a l ly t h e H I D( H u ma n I n t e r f a c e D e v i c e ) D e v i c e s It b r i n gs gr ea t c o n v en i e n ce t o us er s,o wi n g t o t h e f e a t u r e o f h av i n g n o u s e f or d r ive r sTh i s pa pe
4、r pr ov i d es a wa y t o s imu l a t e t h e USB mu lt i t ou ch d e vice s b as ed on t h e ST C89 C52 RC mi c r o co n t r ol u nit a nd PDI USBD1 2 c hip I t f i r s t ly i n t r odu c es t h e ba s ic k n o wledg e o f USB an d HI D Se co ndly , r e pr es en t t he ha r d wa r e de s i gn o f t
5、 h e de v ice i n de t a i l Fin al ly , t his p ape r di s cu s s e s t h e s o f t war e i mpl e men t a t ion pr oc e s s o f t h e de vic e c o mbining t he r eq u es t s f r Om t he h o s t S en ume r a t ion p r o ce s s Ke y wo r d s : USB, HI D, Mult it ou c h, de s c r i p t o r , S TC8 9 C
6、5 2RC, PDIUSBD1 2 从实现 的技术角度可将市场上 的触摸屏分为 四种 :电阻触 摸屏 、 电容触摸屏 、 表面声 波触摸屏 和红外线触摸屏l 1 。前两种 技术适 用于中小尺寸的触摸设备 , 如平板电脑 、 手机 、 导航仪等。 而后两种技术适合应用在大尺寸的触摸场合 , 如会展 、 互动会议 和博物馆等 。 本文在基于大尺寸红外多点触控设备 的背景下 , 对其 U S B HI D的接 口部分进行 固件程序设计 。 由于微软从 Wi n d o w s 9 8 系统 开始 , 就 为 HI D类设备提供 了通用 的驱动程 序 , 所以本文 实现 的仿 真触摸设备 无需安装驱
7、动程序_ 2 】 。此外 , 该 设备 可由 U S B直接供电。 1 U S B HI D类简介 U S B是通 用 串行 总线 ( U n iv e r s a l S e r i a l B u s ) 的缩写 。现 在 , U S B 3 0版本高速模式下的速度可 以达到 5 G b s左右 。 U S B 只支持主从 模式的结构 , 即主机 与设备之 间的互连 , 而设备与设 备之间 、 主机与主机之间是不能互连的。 HI D( H u ma n I n t e r f a c e D e v i c e ) , 即人机交互设备 。很多简 单 的 U S B设备可 以枚举成 HI D
8、类设备 ,如 U S B鼠标 、 U S B游 戏操纵杆 和 U S B触摸板等 。HI D只支持 U S B四种传输方式中 两种控制传输方式和 中断传输方式 。 通常 , 主机会具备至少个 U S B主控制器 ( h o s t c o n t r o l le r ) 和根集线器 ( r o o t h u b ) 。其中 , 主控制器负责处理数据 , 而根集 线器 提供 主控制器与 US B设 备的接 口和通 路。 当有设备 插人 时 , 集线 器的接收端变为高电平 , 并将它报告给 主控制器 , 这样 主机就检测到有设备接人 _d 。主机检测到有设备插入后 , 就需要 与设备进行通信
9、, 以确定设 备的功能和行 为 , 这是通过 向主机返 回描述符来实现的。U S B协议 中标准描述符主要包括设备描述 符、 配置描述符 、 接 1:3描述符 、 端 点描述符 和字符描述符 等 , 对于 H I D类设备还包含报告描述符等。 2硬件 系统结构 本文 实现的仿真触摸设备在硬件 电路上主要包 括两部分 : R S - 2 3 2串 1: 3 和 U S B接 口。本节将分别介绍 U S B接 口的构成 和 R S 一 2 3 2的调试功能 。 整体 的系统结构如图 1所示。 R S 一 2 3 2 串 口部分 , 一方面用于调试时查看主机返 回的数据信息 ; 另一方 面向单片机传
10、送模拟的触摸点信息 ,如触点个数 和各触摸 点的 坐标等信 息。U S B接 口部分则负责与主机间的数据通信 。 I IR S 一 2 3 2 P C 一 一二 一 I 笪 竺 调试部分 一 L 一 d 。 w s 7 S T C 8 9 C 5 2 R C U S B i j I RS 2 3 2 发板 。 二 狮U S 1 接 f J 棒 I I I l 图 1 仿真触摸系统结构 3设备的识别 在本 节中 , 将结合 H I D类 触摸屏设 备 的识 别过程 , 即主机 枚举设备的过程 , 详细介绍 固件程序 中各 描述符 的返 回过程 , 该 部分是整个系统软件的核心部分。并重点阐述 H
11、I D类触摸板的 报告描述符内容。 完成触摸设备的枚举过程 , 主机就能识别该触 摸设备 。 3 1 U S B触摸设备 的枚举过程 HI D触摸板 的整个枚举过程如 图 2所示 。A 当 H I D类触摸 设备 的 U S B接 口接入主机后 ,主机 U S B集线器便检测到高 电 平 , 即有设备接入 。B主机接着对设 备复位 , 此时设备的地址为 O 。C 主机通过地址 O与设 备通信 , 此 时向设备发 出获取设 备描 述符 的标准请求。 D 设备返回至少 8字节的设 备描述符后 , 主机 对设备再次复位。E 复位后主机发送设置设备地址请求 , 地址 由 U S B主机分配 , 并包含
12、在请求中发给设备。此后设备就启用新分 配的地址与主机通信。F主机再次发送获取设备描述符 的请求 , 但这次与 C 中不同, 这次设备会将完整的设备描述符都发送给主 机。 G 请求并获取配置描述符集合 , 包含了配置描述符 、 接 口描述 符 、 H I D描述符和端点描述符 。 H 请求并获取字符串描述符 , 包含 厂商字符 串、 产品字符串、 产品序列号和语言 I D。 I 设置配置请求 , 根据请求 的配置值 , 使能相应 的端点 。J请求并获取报告 描述符 。 安徽省 自然科 学基金青年基金项 目( 1 1 0 4 0 6 0 6 Q0 7 ) ; 高校省级重点 自然科 学研 究项 目(
13、 k j 2 0 1 0 A0 2 3) 。 工业控制计算机 2 0 1 3年第 2 6卷第 1 1 期 1 3 K 枚 举成功 , 操作 系统识 别 出 U S B触摸输入设备 。 根据 枚举 过 程设 计 了 固 件 的 整 个 程 序 结 构 。 根 据 P DI U S B D 1 2中 断 寄 存 器 的 值 , 判断产生 中断的端点和原 因, 对应返 回主 机请 求的描述 符 。枚举过程 的程序结构为 : w h i le ( 1 ) if ( D 1 2 _ I N T = = 0 ) D1 2 Wr it eComma nd 检测到设备插入 设备描述符请求 申 配置描、述符请求
14、 设备描述符请求 字符串描述符请求 申 申 I 设 置 设 备 地 址 报 告 描 述 符 请 求 I l 枚 举 成 功 I l I US B E p 0 1 n 0 ; 端点 0输 入中断 if ( in t e r r u p t s o u r c e O x 0 4 ) US B E p 1 Ou t 0 ; 端 点 1输出中断 if ( in t e r r u p t s o u r c e0 x 0 8 ) US B E p l I n ( ) ; 端点 1输人 中断 if ( in t e r r u p t s o u r c e 0 x l 0 ) US B E p 2
15、Ou t ( ) ; 端点 2输出中断 if ( in t e r r u p t_ s o u r c e 0 x 2 0 1 US B E p 2 l n ( ) : 端点 2输人 中断 if ( i n t e r r u p t_ s o u r c e 0 x 4 0 ) U S BB u s R e s e t ( ) : U SB复位 if ( i n t e r r u p t _ s o u r c e 0 x 8 0 1 U S B B u s S u s p e n d ( ) : U S B挂起 wh il e ( 1 ) 3 I 2 报告描述符 本文 中 , 除报 告描述符外 , 其他描述 符 的结构 比较 固定 , 在 U S B协议 中也有详 细的介绍 , 只需按照相应 的格式定义并返 回 即可 。 报告描述符的结构 比较灵活 , 本文构造并定义 了一个多点 触摸设备的报告描述符 。 报告描述符定义了传输 数据的意义 , 通常由一些全局项 目 、 区域项 目和主项 目构成 。 其中 , 主项 目定义报告 中数据的种类 和 格式 ,包 括 I NP U T项 、 0U T P U T项 、 F E A T