新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > iMouse多功能空中鼠标

iMouse多功能空中鼠标

作者:梁平 中国科学院上海应用物理所时间:2010-06-29来源:电子产品世界收藏

  软件系统设计

本文引用地址:http://www.eepw.com.cn/article/110397.htm

  系统的软件可以分为鼠标主体端与鼠标接收端两个部分。控制器分别是的MXT8051微控制器与TI的430单片机,在此两部分的控制器上分别都成功移植了mC/OS嵌入式操作系统,并在mC/OS操作系统上运行应用程序。

  mC/OS是一种免费公开源代码、结构小巧、具有可剥夺实时内核的实时操作系统。

  mC/OS 和mC/OS-II 是专门为计算机的嵌入式应用设计的, 绝大部分代码是用C语言编写的。CPU 硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU 上。用户只要有标准的ANSI 的C交叉编译器,有汇编器、连接器等软件工具,就可以将mC/OS-II嵌人到开发的产品中。mC/OS-II 具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点, 最小内核可编译至 2KB 。mC/OS-II 已经移植到了几乎所有知名的CPU 上。

  mC/OS-II目标是实现一个基于优先级调度的抢占式的实时内核,并在这个内核之上提供最基本的系统服务,如信号量、邮箱、消息队列、内存管理、中断管理等。

  鼠标主体端软件结构

  主体端软件结构如图7所示。

  在主体端的软件中,主要用到了μC/OS操作系统的多任务调度与任务间的通讯功能,在鼠标动作数据处理之后,通过消息队列的方式传递给通讯任务,通讯任务将此数据有效地发送给接收端电路。如图9所示。

  鼠标动作数据处理的流程如图8所示。在的加速度传感方案中,最为关键的是如何用软件的方法除去重力以及抖动对传感器输出产生的影响,这里首先对传感器输出的数据进行差分,所得的数据通过一定的衰减后再减掉防抖阈值,最后形成要输出的数据。

  接收端软件结构

  接收端软件结构如图10。

  在鼠标的接收这一端,无线通讯的任务流程基本与主体端的流程差不多,只是这端以接收为主,而主体端则以发送为主。同时,在有效接收到数据包后,程序将评估通讯双端的中心频率偏差,并对芯片进行配置修正。无线通讯的一个关键问题是如何处理好数据丢包的问题,处理不好,鼠标就会跳跃,这里,借鉴了USB协议中对数据包交错发送的控制方法与应答机制,很好解决了这个问题。

  USB控制这一块是软件中最关键的一块,这里涉及了USB协议以及HID的协议。USB的固件程序结构如图11。

  USB事件由中断进行驱动,中断发生后根据不同的中断向量对中断事件进行处理。如图12所示。如果是控制包,则向主控的进程发送一个信号,由主控进程对控制包进行分析处理。在程序的应用层,HID鼠标的数据包通过USB接口的端口1进行传输,计算机对此端口的询问间隔为10ms。



评论


相关推荐

技术专区

关闭