当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]基于ARM平台的MEMS输入设备的固件设计

 1 引言

  MEMS(Micro Electro Mechanical System,即微机电系统)是指集微型传感器、执行器以 及信号处理和控制电路、接口电路、通信和电源于一体的微型机电系统,具有体积小、重量 轻、性能稳定、可大批量生产、性能一致性好、成本低等特点,将MEMS器件——加速度传 感器应用于输入产品和嵌入式系统,满足它们对倾斜、运动、定位、振动等微小变化的测量 需求,以MEMS替换机械控制部件,为消费产品带来了一场革新。

  国外和港台地区有一些单位正在开展这方面的研究,并取得了一定的成绩。例如:香港 中文大学Alan H. F. Lam等几个博士生提出了一种基于微加速度传感器的虚拟键盘鼠标系统 (MIDS),能同时具备鼠标和键盘的功能[1];加州大学伯克利分校设计了一种加速度感应手 套,利用放置在手指上的二维加速度传感器感测手和手指的动作,实现电脑输入的功能[2]。

  2. 系统设计

  本文设计的无线输入系统是以加速度计为敏感元件,来完成鼠标的功能,并能够在三维 空间上同步操作者的三维运动,从而实现电脑输入的目的。本文采用美国AD公司的微加速 度传感器ADXL203,并结合Nordic半导体公司的射频收发器NRF2401,与Philips公司的 D12USB接口芯片形成一个硬件体系。该系统由两个子系统组成:远端子系统和主机端子系 统,具体的构成如图1所示。

  在软件开发上,采用 ARM 嵌入式系统的开发理念,采用内置有ARM7 处理器核的 LPC2214 微控制器,开发新一代基于微加速度传感器的MEMS 无线输入设备。在调试初期, 以周立功公司的EasyARM2200 开发板为开发平台,使用ADS 作为开发环境。[!--empirenews.page--]

  2.远端子系统设计

  远端子系统的主要任务是加速度计信号的采集,信号的放大、滤波等的处理,控制器 对射频无线发送的软件控制。主要的实现过程为:使用GPIO 口,并按照一定的采样频率将 加速度信号送入微控制器LPC2214,在LPC2214 内部进行信号放大和A/D 转换;并且按照 无线传输模块定义的格式将数据进行编码,再通过GPIO 口传送给无线射频模块。 主程序主要实现各个器件的初始化和任务的调用。

  int main(void)

  {

  TargetInit();

  Init_RF();

  Init_ADC();

  Init_Transmitter();

  TaskMouse();

  return 0;

  }

  在完成各个模块的初始化之后,执行Taskmouse 函数。Taskmouse 函数是主执行函数, 包含了GetMousePos()、ModeSelect()、Get_ADCValue_X()和Get_ADCValue_Y()等子函数。 调用该函数就可以执行加速度计信号采集、鼠标位置确定、系统工作模式选择等程序行。 获取鼠标位置信息的示意程序如下所示:

  void GetMousePos(uint8 *buf, uint8 shift)

  {

  uint8 i;

  uint8 sampf = 50;

  uint32 dpi = 100;

  uint32 sum_x, sum_y;

  sum_x = sum_y = 0;

  for (i = 0; i < sampf; ++i) {

  sum_x += Get_ADCValue_X(dpi);

  sum_y += Get_ADCValue_Y(dpi); }

  buf[0] = (sum_x / sampf) >> shift;

  buf[1] = (sum_y / sampf) >> shift;

  }

  3.主机端子系统设计

  在主机端子系统中,NRF2401 接受远端子系统的数据并从I/O 口进入LPC2214,数据通 过协议等处理为鼠标格式,最后通过USB 接口发送给主机。在该模块中,我们采用了操作 系统来实现多任务处理。[!--empirenews.page--]

  3.1 μC/OS-II 操作系统的移植

  我们使用的 μC/OS-II 是一个完整、可移植、可固化、可剪裁的占先式实时多任务的实 时操作系统内核,使用标准的ANSIC 语言编写, 并包含一段汇编语言代码,被广泛地应用 于各种架构的微处理器上。

  在本系统中,μC/OS-II 的移植主要是修改3 个与ARM 处理器体系结构相关的文件: OS_CPU.H、OS_CPU.C 和OS_CPU_A.ASM。OS_CPU.H 文件为系统通用量设置的移植文 件,采用C 语言描述。包含数据类型定义、堆栈单位、堆栈增长方向和宏定义,需根据处 理器进行相应修改;OS_CPU.C 文件为系统管理代码的移植文件, 采用C 语言描述; OS_CPU_A.ASM 文件为处理器相关代码的移植文件, 采用ARM 的汇编语言描述。

  3.2 控制器编程

  将操作系统成功移植到LPC2214 上后,就可以对主机端系统进行软件设计。下面是主 机端主函数的代码:

  int main (void)

  {

  OSInit();

  OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[127], 5);

  OSStart();

  }

  主函数首先对操作系统进行初始化,初始化完成后,创建启动任务,设置任务的优先级, 并开始进行多任务操作。启动任务TaskStart 主要完成各个模块的初始化,包括开发板的初 始化TargetInit(),射频芯片的初始化Init_RF(),控制器AD 转换的初始化Init_ADC(),USB 接口芯片的初始化Init_D12()等,并将射频无线接受设置为接收模式。最后调用主执行函数 TaskDisplay()进行任务处理。

  3.3 USB 编程

  在主机端软件设计中,USB接口设计是非常重要的一环。USB接口,即通用串行总线。 这是针对PC机外设的一种新型接口技术,具有终端用户使用方便、应用性广泛、能同步传 输宽带、灵活性强和实现成本低等特性。USB的基本通信流和分层模型如图2所示。

  为简化USB 设备的开发过程,USB 提出了设备类的概念。HID(Human Interface Device) 设备类,即人机接口设备。典型的HID 设备如键盘、鼠标。客户软件可以直接使用操作系 统内置的HID 设备类驱动程序(hidclass.sys)和HID 小驱动程序(hidusb.sys)与HID 设备进行通信。[!--empirenews.page--]

    报告描述符用于提供HID 设备和主机间交换数据的格式。根据该输入设备的实现 要求和系统定义的鼠标协议格式,HID 类设备的报告描述符如下所示:


  4 结束语

  本文讨论了基于MEMS的无线输入设备,主要介绍了在嵌入式环境下,输入设备的固件 编程设计。本文将系统分成两个子系统,并对他们进行分别介绍,给出了子系统的简单实现 流程和函数的调用,并列出了一部分程序行。此方案的子程序具有易移植性,很容易在其他 领域中使用。

  基于MEMS的无线输入设备,其主要部件依托MEMS表面微加工和体硅加工的特殊工 艺,使系统在尺寸、性能等方面有了提高,并且作为输入设备发展的新形式,减少了设备之 间连线的繁琐,扩大了其使用的空间。随着信息技术和MEMS技术的继续发展,基于MEMS 技术的无线输入设备会更加可靠、方便。

  本文创新点:提出了基于MEMS器件的电脑输入模型,将ARM7和μC/OS-II操作系统相 结合,应用于输入系统,并完成了样机的程序实现。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

无线连接已成为许多产品的必备功能,但往往会增加系统设计的成本和复杂性,因为它通常必须作为更大应用的附加功能。Microchip Technology Inc.(美国微芯科技公司)今日推出首款基于Arm Cortex®-M...

关键字: Microchip ARM PIC

物联网正在扩大规模并加速发展,进而驱动着全新的经济。而Arm生态系统正是这一巨大机遇背后的推动力。

关键字: ARM 物联网

ARM公司是一家知识产权(IP)供应商,它与一般的半导体公司最大的不同就是不制造芯片且不向终端用户出售芯片,而是通过转让设计方案,由合作伙伴生产出各具特色的芯片。

关键字: ARM

2018年10月26日,深圳星河丽思卡尔顿酒店,ARM中国CEO吴雄昂在ARM年度技术论坛上对记者如是说,彼时的吴坚定,温雅,意气风发。时隔两年,ARM中国CEO吴雄昂再次回到媒体视线,这一次,ARM中国与来自投资方和剑...

关键字: ARM 芯片 集成电路

喜欢折腾主机的小伙伴一定都知道X86和ARM架构的区别,前者在PC领域已经统治了几十年;后者则主要应用于移动领域,尤其是近几年,ARM的产品在终端应用特别是手持终端应用飞速发展。

关键字: 国产 ARM 主机

科技公司们认为,收购将使英伟达控制一个重要的供应商,该供应商向苹果、英特尔、三星电子、亚马逊和华为等公司授权基本的芯片技术,同时也向不计其数的中小技术企业提供授权。总部位于英国的ARM公司将芯片设计和相关软件代码授权给所...

关键字: 英伟达 ARM 半导体公司

在去年九月,英伟达宣布以400亿美金收购ARM时,就注定这场收购不会太顺利。因为一旦ARM成功被英伟达收购,这将使ARM改变在全球半导体市场中的中立立场,因为ARM的很多客户,都是英伟达的直接或者间接的对手。除此之外,还...

关键字: 英伟达 ARM 半导体

奥升德功能材料宣布在其HiDura™品牌下推出服务于医疗保健市场的医疗级尼龙66树脂和工程材料新产品组合。奥升德功能材料生产的HiDura MED聚酰胺可用于医疗耐用品、药物输送、外科器械、医疗设备和伤口护理。(能动Ne...

关键字: HID 医疗设备

以下内容中,小编将对工控主板的相关内容进行着重介绍和阐述,希望本文能帮您增进对工控主板的了解,和小编一起来看看吧。

关键字: ARM 工控主板 主板

在这篇文章中,小编将为大家带来工控主板的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: ARM 工控主板 主板

嵌入式教程

6897 篇文章

关注

发布文章

编辑精选

技术子站

关闭