无线USB接口键盘控制器的设计方案
摘要: 通用串行总线USB是一种崭新的微机总线接口规范。本文介绍了一种基于USB接口的无线通讯键盘控制器的设计方案,包括硬件设计、设备驱动程序设计及应用软件设计。
引言
在目前的多媒体演示环境中,缺少远距离可操控计算机的设备。讲授者只能站在讲台上来操作计算机,这样限制了演讲者与观众面对面的交流。
为有效地解决这个问题,本文设计了一种可远距离操控计算机的无线通讯键盘控制器设备,通过把USB接口与无线发送、接收模块整合,设计出一种智能化、简便化的无线通讯键盘控制器。系统主要包括USB模块、无线发送模块和无线接收模块。
1 总体方案
本设计方案以无线发送/接收器为基础,用户通过所设计的"键盘控制器"上的按键,触动无线发射模块,SC2262发送指令数据,位于主机端连接卡上的无线接收器SC2272接收到数据后。将数据传给微控制器MC68HC05JB4,经过MC68HC05JB4芯片处理,数据最后通过USB总线传人主机,由驱动程序发给相应的应用软件。从而操控待操作的文档。系统结构框图如图1所示。
图1 系统结构框图
2 硬件设计
(1)连接卡设计。
此方案中,通过USB口与主机直接连接的是自行设计的连接卡。该卡上集成了两个主要的芯片,形成了两大功能模块。核心是MOTOROLA的微控制器MC68HC05JB4,它分别与无线电接收器SC2272和主机通讯。
(2)MC68HC05SJB4芯片。
MC68HC05JB4芯片是MOTOROLA 公司的MC68HC系列的8位微控制器。通过微控制器内含的USB模块。可以很方便地实现USB总线上的数据通讯。MC68HCO5JB4提供了两个端口分别与电缆的D+、D-相连;同时提供了一个3.3V的参考电压,与D一相连。典型连接如图2所示。D+和D一是一对差模的信号线。其中1.5K的电阻要求较高,阻值范围必须是是1.5KΩ±5%.USB通过一个四线电缆来传输信号与电源:为了与电缆阻抗匹配,在电缆的每一端都使用了非平衡终端匹配电阻。该电阻保证了能够检测外设与端口的连接或分离。并且可以区分高速与低速设备。SCI接口电路使用MAX232芯片,它可将微控制器使用的+5V电压转换为+12V,连接无线电接收器SC2272.将收到的数据传给微控制器。同时为了产生1.5M的USB总线速率。系统使用6MHz的晶振。
图2 USB接口电路。
(3)无线收发与编码、解码器设计。
在信号的编码/解码方面,本设计方案采用SC2262/SC2272芯片作为编/解码芯片。其连接原理如图3、图4所示。SC2262和SC2272芯片的第1至第8根引脚有三种状态。即接电源正极、接地、浮空,利用这三种状态可以有38种地址编码方式。通过对这8根引脚采用相同的编码方式来实现无线电遥控,而不发生干扰。
图3无线电发送器SC2262.
图4无线电接收器SC2272.
在发射电路中。当按下SWO-SW3中的任一开关闭合时。SC2262的第17根引脚就发出对应于地址码的编码脉冲信号,该信号通过无线电发射电路发送出去,与SC2272相连的无线电接收器接收到该信号后,将其送入SC2272的第14根引脚。如果该信号的地址编码与接收到信号的SC2272芯片的地址编码相符。
则SC2272的第10-13根数据线就输出与SW0一SW3相对应的控制信号。通过对Sw0一Sw3的交叉编码可以组合出更多的按键开关。根据不同的需要,开关设计有较大的扩展性。
[#page#]
3 软件设计
软件设计主要包括MC68HC05JB4的主控程序、HID设备驱动程序及应用软件设计等三个部分。
(1)MC68HC05JB4的主控模块。
MC68HC05JB4的主控模块设计主要完成两个功、能:一是监视无线接收器SC2272的状态。自动产生状态信息和用户命令信息;二是完成主机与连接卡之间的USB总线通讯,自动处理主机的控制和查询命令。
对于功能二的实现,MC68HCO5JB4中的USB模块提供了3个端点。其中端点0通过控制传输与主机通讯,端点1和端点2则使用中断传输。把端点0看作是设备的控制和状态寄存器,而端点1和端点2则是设备的两个数据缓冲区。对应于3个端点。
68HCO5JB4提供了3个控制寄存器。2个中断寄存器(端点1和端点2共用1个),同时为端点0提供了8个数据发送/接收寄存器。为端点1和端点2提供了8个共用的数据发送寄存器。
其功能大致分为四个模块:USB中断服务例程:
命令处理器;获取命令模块;报告处理器。
USB中断服务例程处理USB不同的通讯信息,发送端点0的SETUP、IN、0uT等控制信息给命令处理器及协助报告处理器发送待决的报告给中断断点1.当USB设备第一次连接到总线上,它被指定为一个特定的地址,然后主机发送命令要求来检测设备特性并且选择不同的设备参数。命令处理器模块分析这些命令要求,按所要求的描述符和参数响应。USB键盘控制器被定位为人机接口设备(HID)。它不仅需要响应标准的USB协议要求,还要响应HID子协议的要求。同时为了完成信息的传输。设备还必须至少支持一种中断端点。另外为了使数据能被BIOS正确解释,USB键盘控制器必须按照报告定义的格式输入。
报告处理器负责按规定格式转换无线接收模块接收的数据,并请求中断服务例程通过中断管道发送报告。无线接收模块随时准备接收无线发送模块发来的数据,修改报告数据字节。待一个完整的数据包接收完成后,即通知报告处理器。
命令处理器主要处理USB的一般命令和HID的特有命令。获取命令模块主要是模拟实现SCI的接收功能。由于MC68HCO5JB4没有SCI模块。为了正确接收数据,利用MC68HCO5JB4内含的16位时钟的输入捕捉(ICAP)和输出比较(OCMP)功能,模拟实现了SCI的接收功能。每次SCI数据接收后都存入缓冲区。
待一个完整的数据包接收完毕。就设置标志位。通知报告处理器数据已准备好。如果USB通信陷入停顿。
缓冲区有可能被充满,这时SCI的数据接收将被禁止。报告处理器负责生成标准的USB报告。
实现USB键盘控制器特有的挂起与唤醒功能也是设计中的重要环节。USB协议规定。当总线处于空闲态超过3ms时。控制器必须进入挂起状态。而挂起的控制器从总线上吸收的电流必须小于500uA.
MC68HCO5JB4的挂起通过设置USB端点0的中断寄存器中的挂起标志位来实现。协议规定的500uA包括了主机端的电缆终端匹配电阻的电流(通常为220uA),所以对于使用总线电源的控制器而言。进入挂起状态通常便意味着总电流功耗不能超过280mA.
这实际上是要求MC68HCO5JB4进入STOP模式。但MC68HCO5JB4在STOP模式下时钟被禁止,也就是说此时无法接收数据。为了解决这个问题。即要控制器不进入挂起状态。则通过主机周期性地向控制器发送包结束(EOP)信号,间隔时间小于3ms,这样使控制器永远处于正常状态。
(2)应用软件设计。
本设计主要针对文档操作,实现键盘的相关功能。系统设置了"上页"、"下页""返回""关闭"等四个控制热键。可调用API函数注册系统热键代码。用户使用键盘控制器前。先在主机的应用程序界面设置需要操作的文档参数。启动控制热键后,SC2262被触动并开始发送数据,此时主机方主动查询是否有数据发送。实现时实监控。当SC2272接收到数据后,即通过SCI接口电路发送数据给微控制器MC68HCO5JB4,最后MC68HCO5JB4通过USB接12I向主机发送数据。主机接收后执行相应的操作。主要流程图如图5所示。
图5 软件流程图
结语
本设计方案适用于多媒体辅助环境下的课堂教学、讲座等,可进行远达十米以上的远程遥控电脑工作,效果良好。同时,它也为便携式的无线通讯外设系统提供了方便、快捷和可靠的接12I解决方案。
暂无评论