工程师们需要迎接可穿戴设备时代的设计挑战
添加新功能并缩短设计周期。而早期的可编程逻辑器件相对来说过于昂贵,并且功耗惊人,所以常用来作为初代设计或小批量产品的原型设计工具和“胶合”元件。
步入21世纪后,深亚微米工艺和新架构的发展带动了性能和通用性增强的新型FPGA的实现,并显著降低了成本和功耗。这使得现在的FPGA能够在可穿戴电子设备中发挥多种作用。
当然,FPGA仍在其传统的应用领域中不断发挥作用,如提供“ 胶合”逻辑、实现基础功能,包括提供额外的逻辑单元(门电路、锁存器、触发器等),添加输入信号调节(电平转换、施密特触发器和反相器),以及为已有的主机处理器I/O互连提供扩展路径。
FPGA还能用于实现前文所提到的更复杂的功能。其最简单的形式是提供桥接功能,如图2所示,FPGA能解决图1中展示的传感器Sub-LVDS接口与应用处理器的CSI-2 I/O总线之间的桥接问题。
图2:嵌入式图像传感器和应用处理器间的桥接。
在串/并转换应用中也经常使用基于FPGA的桥接。图3展示了可编程逻辑器件是怎样将应用处理器的标准并行总线转换成现在的可穿戴设备显示屏最常用的MIPI DSI接口的串行格式的。在该应用中,FPGA负责实现以下功能:
重新定义图像传感器的LVDS输出格式,以匹配应用处理器支持的通道数量和数据速率;
将传感器的数据时钟信号传输至应用处理器,实现任何所需的信号编码;
使用可编程逻辑而不是应用处理器有限的机器周期来实现屏幕刷新动作。
图3:用于可穿戴设备显示屏的GPIO/DSI桥接。
桥接功能也可用作基于FPGA的更大系统元件的构建模块,如实现图4中的双输入桥接/处理器,它将接收来自2个独立图像传感器的CSI-2串行数据流,并将其处理为单个CSI-2或并行或HiSPI输出。根据所选的算法,可对独立的数据流进行色彩调整或在时间或空间上进行补偿生成单幅3D图像,或在屏幕坐标空间的不同位置对其单独显示产生画中画效果。
图4:FPGA可用于实现实时视频处理功能,如生成3D立体图像、视场或画中画。
FPGA助力节能技术
在前面的几个例子中,设计的主要目的是为了增强应用处理器本身的互连或功能。但这些基于FPGA的解决方案还提供了另一个重要的好处:使得MCU或ASSP无需同时执行一个或多个计算密集型任务,从而节省了有限的处理器资源。
但是,在许多情况下,这些设计的功耗降低具有更重要的意义。例如,图3中的设计包含了一个硬件屏幕刷新功能,其仅需消耗传统处理器内核所需功率的一小部分。同样,图4中的一些小尺寸、低功耗FPGA逻辑器件独立于主机处理器执行图像处理任务,这使得主机处理器大部分时间可处于节能睡眠模式。
下面探讨的许多应用都使用这种节能设计方法,适用于大多数有低功耗需求的可穿戴应用。
FPGA可加速设计升级和新设计实现
可穿戴电子设备发展迅速,每一代新产品都比上一代添加了更多的功能和特性。在这些应用中,小尺寸、低成本的FPGA经常被用来扩展可穿戴式设备应用处理器的基本功能。
许多现代的微控制器都有强大的计算能力来管理传感器和处理其产生的数据,并将它与其他数据流进行整合。但使用微控制器来完成这些工作会占用宝贵的I/O资源,并要求处理器长时间处于工作状态,从而会影响电池寿命。
而FPGA可以用来创建半自主的I/O模块,能够从多个传感器收集数据,并在没有处理器干预的情况下完成其他高级功能。“永远在线”的低功耗计步器采用3轴加速度计作为主要传感器,记录佩戴者的步数,计算所走的距离并测定燃烧的卡路里以及运动时间。
在该设计中,一些FPGA逻辑单元被配置用作加速度计的I2C接口和应用处理器SP I/O总线之间的桥接。其他的FPGA功能块用于配置和管理加速度计。可编程逻辑也可以用于处理原始的加速度计数据,针对带有噪声的数据流采用统计学滤波和步数检测算法。FPGA的另一部分功能是用来缓存得到的步数和加速度信息,直到主机处理器从低功耗睡眠状态唤醒并收集这些数据。采用可编程逻辑内核来执行这些计算密集型任务,可使应用处理器长时间处于睡眠模式,从而有助于减少计步器的功耗。通过FPGA实现这些功能也使设计人员能够在不影响计步器的性能和精度的情况下,使用更简单、更低功耗的微控制器。
FPGA提供可扩展的解决方案
采用FPGA的另一个优点是,FPGA厂商通常会提供一系列类似的器件,每个器件有不同的可编程逻辑和I/O组合。使用FPGA作为ASIC的补充或替代,设计工程师可以选择他们目前所需的逻辑门数量,开发大小合适的解决方案。
由于同一FPGA系列的器件共享参数、特性和开发资源,各种逻辑密度和I/O配置选择使得制造商可以采取“升
电子技术设计 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)