2016-3-18 17:55:12 [显示全部楼层]
5687浏览
查看: 5687|回复: 3

[intel程序猿笔记] 在英特尔® EDISON 开发板上使用 MCU 和超声测距传感器

[复制链接]
以下为部分内容,完整内容和项目代码请至原文链接查看

英特尔® Edison 开发包含一个内部微控制器单元 (MCU)。 在本文中,我将从两个方面解释使用内部 MCU 的优势
  • 实时
  • 能效

MCU 在多款应用中都至关重要。 例如,基于英特尔® Edison 开发板的 Linux* 在与传感器交互时无法提供实时响应。 MCU 支持自 2.1 版开始能够在英特尔® Edison® 开发板固件软件版本上使用。

我们来了解一下英特尔® Edison 计算模块中使用的系统芯片 (SoC):


英特尔® 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-SR04

该传感器有四个针脚:
  • Vcc: 5V
  • Trig: 触发传感器信号。 MCU 向传感器发送 10 us 脉冲。 传感器启动一次测量。
  • 回波: 从传感器到 MCU 的回波信号。 脉冲宽度随测量距离成比例增减。
  • Gnd 接地

图片展示了示波器屏幕上的协议:

  • 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 开发板
在英特尔® EDISON 开发板上使用 MCU 和超声测距传感器图1
您必须对网络连接进行配置,使其能够与 MCU SDK 中的英特尔® Edison 开发板相连。
如要做到这一点,请将 USB 连接线与顶部的微型 USB 端口相连,并将微型开关设置到底部位置(朝向微型 USB 端口)。

以上为部分内容,完整内容和项目代码请至原文链接查看

相关内容推荐:



virtualwiz  中级技匠 来自手机

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

沙发- 虽然木有用过intel
回复

使用道具 举报

iooops  中级技匠

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

板凳- 虽然也木有用过Intel
回复

使用道具 举报

凌风清羽  中级技匠

发表于 2016-3-27 20:39:31

MCU确实是个好的idea
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail