Ash 发表于 2016-3-18 17:55:12

在英特尔® EDISON 开发板上使用 MCU 和超声测距传感器

以下为部分内容,完整内容和项目代码请至原文链接查看 点此查看全文
英特尔® Edison 开发包含一个内部微控制器单元 (MCU)。 在本文中,我将从两个方面解释使用内部 MCU 的优势
[*]实时
[*]能效

MCU 在多款应用中都至关重要。 例如,基于英特尔® Edison 开发板的 Linux* 在与传感器交互时无法提供实时响应。 MCU 支持自 2.1 版开始能够在英特尔® Edison® 开发板固件软件版本上使用。
我们来了解一下英特尔® Edison 计算模块中使用的系统芯片 (SoC):
https://software.intel.com/sites/default/files/managed/a2/f7/soc.png
英特尔® Edison 计算模块中的系统芯片包括两个 CPU:
[*]双核英特尔® 凌动™ 处理器(500 MHz) 标有主机 CPU。
[*]采用 Minute 英特尔® 架构的 MCU (100 MHz)。 标有 MCU。

Minute 英特尔架构内核是一款节能架构,基于英特尔® 486,并额外采用指令,能够与英特尔® 奔腾® 处理器兼容。 MCU 包含丰富的 I/O 子系统(GPIO、I2C、高速 UART、DMA)和 SRAM,并能够访问英特尔® Edison 计算模块上的所有 GPIO 针脚。 适用于代码和数据的总 SRAM 为 192 kb。 MCU 使用 WindRiver 的实时 Viper* 操作系统运行。MCU 程序支持在 Viper 内核上使用,并可控制连接到 MCU 上的外围设备,而不受英特尔凌动处理器的影响。 例如,它能够控制 GPIO 针脚,与采用 I2C 和 UART 协议的传感器通信,并与英特尔凌动处理器通信。
为何在英特尔® Edison 上使用 MCU使用 MCU 得益于两个原因:提供实时微秒级延迟和高能效。英特尔凌动处理器和 Yocto Project* 标准 Linux* 分发版不支持即购即用的实时应用。Linux 应用可能会被调度器先占用,从而造成不可接受且不可预测的延迟,因而不可能提供实时响应。MCU 运行一个应用和实时操作系统,这使得其有可能提供实时响应。对于许多通信协议需要严格遵守短时间来执行的传感器,均需要实时响应。如要在没有内部 MCU 的情况下将这些传感器连接到英特尔® Edison 开发板,您将需要使用外部 MCU。 在这种情况下,所有的传感器通信都在外部 MCU 上进行。 例如,面向英特尔® Edison 开发板的 SparkFun Block* – Arduino 扩展板可提供外部 MCU 功能。 但是,使用外部 MCU 将会增加 BOM 成本并提高解决方案的复杂性。MCU 可以提高某些应用的能效,在这些应用中, CPU 设置为睡眠状态且 MCU 正在等待外部事件(如当传感器的值上升到超过阈值时)。当外部事件出现时,MCU 将会唤醒 CPU。 《使用 MCU SDK 和 API: 代码示例》一文中介绍了实施示例。为了解释如何使用内部 MCU,我们将把超声波测距传感器 HC-SR04 连接到英特尔® Edison 开发板中。 我们将把测量到的距离输出到 Grove* LCD RGB 背光符号显示器中。
超声波测距传感器 HC-SR04https://software.intel.com/sites/default/files/managed/f1/8e/Sensor-HC-SR04.jpg
该传感器有四个针脚:
[*]Vcc: 5V
[*]Trig: 触发传感器信号。 MCU 向传感器发送 10 us 脉冲。 传感器启动一次测量。
[*]回波: 从传感器到 MCU 的回波信号。 脉冲宽度随测量距离成比例增减。
[*]Gnd: 接地

图片展示了示波器屏幕上的协议:https://software.intel.com/sites/default/files/managed/3c/f5/oscilloscope-screen.jpg

[*]1 个通道: Trig
[*]2 个通道: 回波
MCU 向 Trig 针脚发送一个脉冲。 之后,传感器将相应回波针脚上的脉冲。脉冲持续时间随测量距离成比例增减。使用公式来计算距离(位于传感器数据表上):距离 (cm) = 回波脉冲持续时间 (us) / 58传感器可以测量从 2 厘米到 400 厘米的距离(如数据表所示)。不借助微秒级实时延迟,以预估的精确度不可能测量这么短的脉冲的持续时间。 例如,调度器可能预先占用测量流程,测量结果可能无效。
将 HC-SR04 传感器连接到英特尔® Edison 开发板上的 MCU
组件:
[*]英特尔® Edison 计算模块
[*]面向 Arduino 的英特尔® Edison 开发板
[*]Grove Basic Shield
[*]Grove LCD RGB 背光灯
[*]超声波测距传感器 HC-SR04
[*]电路试验板

首先,安装适用于 Arduino 的英特尔® Edison 计算模块和英特尔® Edison 开发板。 接下来,将 Grove Base Shield 扩展板连接至适用于 Arduino 的英特尔® Edison 开发板。 将 Grove LCD RGB 背光灯连接至 Grove Basic Shield 上的任意 I2C 端口。将超声波测距传感器 HC-SR04 连接至 Grove Basic Shield,如下:
[*]Vcc 至 +5V
[*]Trig 至针脚 3
[*]Echo 至针脚 4
[*]Gnd 至 Gnd
针脚 3 和 4 随机选择。 针对此目的,您可以使用任意 GPIO 针脚。
更新英特尔® Edison 开发板固件MCU 支持自 2.1 版开始已经添加到英特尔® Edison 开发板固件软件版本中。 如果您有较旧的固件,则需要更新它。如要获取当前的固件版本,请使用以下命令:# configure_edison –version该示例基于固件版本 146。《刷新英特尔® Edison》一文中提供了固件更新说明。 我更喜欢使用该篇文章中介绍的备用刷新方法。请在刷新前仔细阅读说明。使用以太网通过 USB 连接英特尔® Edison 开发板
您必须对网络连接进行配置,使其能够与 MCU SDK 中的英特尔® Edison 开发板相连。如要做到这一点,请将 USB 连接线与顶部的微型 USB 端口相连,并将微型开关设置到底部位置(朝向微型 USB 端口)。
以上为部分内容,完整内容和项目代码请至原文链接查看 点此查看全文
相关内容推荐:
[*]使用英特尔® EDISON 平台制作一部视频漫游小车
[*]英特尔开发者专区



virtualwiz 发表于 2016-3-19 07:27:58

沙发- 虽然木有用过intel

iooops 发表于 2016-3-19 20:35:36

板凳- 虽然也木有用过Intel

凌风清羽 发表于 2016-3-27 20:39:31

MCU确实是个好的idea
页: [1]
查看完整版本: 在英特尔® EDISON 开发板上使用 MCU 和超声测距传感器