首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

无线USB接口键盘控制器的设计方案2

无线USB接口键盘控制器的设计方案2

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 软件流程图

  结语
  本设计方案适用于多媒体辅助环境下的课堂教学、讲座等,可进行远达十米以上的远程遥控电脑工作,效果良好。同时,它也为便携式的无线通讯外设系统提供了方便、快捷和可靠的接口解决方案。
返回列表