新闻中心

EEPW首页>嵌入式系统>设计应用> 实现8位微控制器升级至32位的关键

实现8位微控制器升级至32位的关键

作者: 时间:2011-04-25 来源:网络 收藏
独立位设置/重设

本文引用地址://m.amcfsurvey.com/article/150823.htm

  ARM 架构的另一缺陷是不能利用单个 ARM 指令进行单独的位设置和重设操作。对实时控制应用而言,这些操作必须执行一个读/改/写 (read-modify-write) 序列。在多个任务共享同一外围设备的情况下,位操作 (bit manipulation) 必须是独立的 (atomic) (不易中断),这就要求在读/改/写序列期间屏蔽中断。

  这种解决方案是通过两个虚拟寄存器 (virtual register),一个用于位设置 (使启动),另一个用于位重设 (使失效),这能透过单条储存指令来启动位或使之失效 (图3)。由于这种指令对 ARM 处理器的影响是单独的,故不必屏蔽中断。

  外围 DMA

  在外围设备上要保持恒定的数据传输率,需要处理器的及时响应。采用一个外围直接内存访问 (DMA)就可消除这种约束。不同于CPU逐个字节地传输数据,这种DMA无需CPU干涉,便可直接把数据按模块进行传输。在每个模块传输结束时产生一个单独的中断,不再需要对外围设备轮询 (polling)。采用双指针机制 (dual pointer mechanism) 就可以自动管理模块数据传输,避免了对时间要求严格的指针重配置。

  单电源

  先进的CMOS技术使微中的内核电源电压逐渐降低。采用0.18μm工艺时,其典型值是1.8V。不过,如果要保留与原有8位系统的兼容性,32位MCU必须采用电压范围在3.0V~3.6V之间的单电源。在这种情况下,可以利用一个内置电压调节器 (图4) 来产生内核及其它片上子系统所需的1.8V电压。该调节器的输出电压在生产阶段时校准。

  以外部连接方式来提供1.8V电压环,能根据主板能力对功率源进行更好的控制。对于采用片上电压调节器、还是效率更高或待机耗电更低的外部电压调节器,最终用户拥有绝对的控制权。

  使用外部连接方案的另一项优点,是可能使板上的其它IC也由内部产生的1.8V供电。

  当 CPU 以较低的速度 (500Hz ~1.5MHz) 运行时,电压调节器会处于闲置 (idle) 模式,此时电压调节器的功耗降到2μA。这种情况下,最大输出电流为1mA,便足以维持CPU和大多数外围设备的活动。这有助于弥补32位MCU待机电流稍高的不足。

  减低8位至32位过程的复杂性

  要增加低成本32位ARM微控制器的市场接受程度,必须使用现有固件,以便于移植。简化专为C语言而最佳化的器件编程模型 (device programming model)、提供强有力的调试功能,以及使已建立的8位开发工具支持32位微控制器等,都是加快用户学习速度的

  一个适用于整个微控制器系列集成式外围设备、而且全面和一致的编程模型,正是简化复杂性的基础。要做到这种模型,最好的方法是通过一种均匀寄存器结构 (homogeneous register structure) 为所有外围设备指定系统和中断结构地址。只需一个紧密地集成在外围地址空间的外围DMA控制器,就可以显着减低对软件的要求。

  为用户提供外围设备驱动器和完整的项目实例 (如可重用的源代码),可加快他们的学习进程,并尽快开始工作。当代码能够迅速被更新,而一旦被加载后器件就能完全自主时,片上闪存的优点就变得显而易见。ARM7 处理器适合于多种操作系统和软件模块如协议堆栈。此外,ARM 微控制器的顾问人数正日益增加,能有效帮助中的客户处理移植过程上遇到的各种问题。

  对软件开发商而言,要加快移植过程并使固件有效,调试工具的质量至关重要。支持硬件断点 (hardware breakpoints) 的在线仿真 (In-Circuit-Emulation) 接口,提供对处理器的寄存器和内部存储空间的全面访问能力,此外也是连接软件可控追踪 (software-controlled trace) 调试器的界面。目前它们是具有最佳性价比的调试解决方案 (见图5)。编程人员使用指令集仿真器 (Instruction Set Simulator),可以在硬件调试之前提高固件的质量水平,从而缩短开发时间。

  除了微控制器调试埠之外,使用片上硬件 (on-chip hardware) 也可以加快开发速度。一般而言,错位 (mis-aligned) 的数据存取极难处理,除非片上监控器能够予以识别,并向处理器发出一个异常中断请求。这正是ARM架构的功能之一。当处理器在调试模式下被中止时,有可能会发生监视器溢出 (overflow) 事故。但若在调试时自动把监视器中止,就可以预防这种情况的发生。此外,外围设备还可能在调试期间产生无效的中断请求,这些请求应该被过滤。

  要避免在升级过程差不多完成时才出现最后错误,最好的方法是用闪存来存储程序。这样,在开发的最终阶段也可以对软件进行修改,不会影响生产周期,灵活性极佳。



评论


相关推荐

技术专区

关闭