约 1369 个字 9 张图片 预计阅读时间 7 分钟
Chap 2 | 物联网硬件平台
章节启示录
本章节是物联网基础的第二章。复习的时候应该会标注哪些是非重点。
1.概述¶
2.关键特性¶
- 低成本与微型化:可以达到更高的部署密度
- 功耗/能耗
- 运算速度和内存大小:
- 运算速度一般用CPU主频来描述
能耗与主频之间的关系:\(P=CV^2FT\) - 内存:
- RAM:存数据,易失性
- Flash:存放程序,非易失性,断电后Flash上的程序依然存在
- 运算速度一般用CPU主频来描述
-
接口类型
- 物理接口:
- 引脚:通过杜邦线连接 ,过程复杂且易出错,引脚接错可能会导致程序无法工作,甚至烧坏外设和主板
- 连接套接口/Grove port:通过Grove port线连接,外设接入容易、快速且不易出错
-
通信协议(6种):
- 模拟信号(Analog): 使用模拟量表示数据的信号, 需要ADC转化
- 数字信号(Digital):使用序列离散值表示数据的信号
- PWM(Pulse-width modulation): 基于数字信号的脉冲调制技术
- UART(Universal Async Rx/Tx): 用于异步逐位传输数据的全双工通信接口标准
- I2C(Inter Integrated Circuit): Phillips公司推出的高性能串行总线
- SPI(Serial Peripheral Interface): 高速、全双工、同步的通信总线
-
UART缓存与波特率:
- 可扩展性:
开发板对接入外接设备种类和数量的支持程度
接口数量和接口类型是评估开发板可扩展性的重要指
- 物理接口:
3.常见的硬件平台¶
- 传感节点平台
发展缓慢的三个原因:技术发展不均衡、功耗的制约、成本的制约- 主要特点:
- 低功耗
- 体积小
- 集成度高
- 低成本
- 主要特点:
-
STM32
STM32系列是由意法半导体公司推出的ARM Cortex-M内核单片机- CPU:作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。
- MCI:作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。
-
MPU:相比MCU,更侧重于高性能计算和复杂的任务处理,具有更高的时钟速度、更大的内存和更强大的计算能力。
-
能耗:以STM32F103为例,三种低功耗模式
- 睡眠模式:内核停止运行,外设保持运行状态。一般适用于等待外设的中断时降低功耗。
- 停机模式:所有时钟都停止,此模式功耗较低,大概在 20μA 左右。
- 待机模式:功耗最低,在2μA左右。关闭所有的时钟,还把1.2V区域的电源也完全关闭了。
- 主要特点:
- 开发方便
- 丰富的通信接口
- 调试简单
- 低功耗
-
ESP32:Wi-Fi和蓝牙双模的单芯片方案。(Wifi和蓝牙可共存,但需要分时控制)
- 能耗:
- Active模式:射频处于工作状态
- Modem-sleep模式:CPU运行。Wi-Fi/蓝牙基带和射频关闭。
- Light-sleep模式:CPU暂停运行。RTC存储器、外设、ULP协处理器运行。唤醒事件(如 定时器或外部中断)会唤醒芯片。
- Deep-sleep模式:CPU和大部分外设都会掉电。
- Hibernation模式:内置的8 MHz振荡器和ULP协处理器均被禁用。
- 主要特点:
- 性能稳定
- 高度集中
- 超低功耗
- 双模解决方案
- 能耗:
- Arduino
- 开发板组成: MCU、USB串口、扩展插座、电源
- MCU:采用AVR体系结构的Atmega系列处理。
AVR的存储体系结构是哈佛结构,具有分离的数据寻址空间和程序寻址空间。 - 扩展接口和盾板:为Arduino提供了非常强大的扩展能力
- 主要特点:
- 上手容易
- 开发简单
- 可扩展性强
- 低功耗
- 开源创新
- 开发板组成: MCU、USB串口、扩展插座、电源
- 树莓派:属于高功耗类型
- 开发板组成:微控制器、扩展接口、USB电源、S卡、HDMI、音频接口、以太网口、USB接口
- 支持盾板
- 主要特点:
- 开发简单
- 上手容易
- 功能强大
- Jetson:
- 运算速度:
- TOPS:1TOPS代表处理器每秒钟可进行一万亿次(10^12)操作。
- TFLOPS:每秒万亿次(10^12)浮点运算。
- GFLOPS:即每秒10亿次(10^9)的浮点运算数。
- 主要特点:
- 强大的计算能力
- 低功耗设计
- 高度集成
- 支持多种AI框架:Jetson平台支持TensorFlow、PyTorch、Caffe/Caffe2、Keras、MXNet等多种现代神经网络框架,方便开发者进行AI应用开发。
- 运算速度:
4.开发案例¶
4.1 基于Arduino硬件平台开发¶
- 步骤1:确定硬件解决方案
- 步骤2:确定开发环境、IDE
- 步骤3:编程:Arduino使用setup-loop的代码结构。setup是程序入口函数,仅执行一次,往往用于程序的初始化;loop是循环体,setup返回之后会被重复执行。
- 步骤4:交叉编译
- 在Arduino IDE下,选择工具→开发板→Arduino UNO。
- 单击“验证”,开始交叉编译程序
- 步骤5:烧写程序
- 步骤6:测试验证:打开串口,设置波特率为9600,查看实时监测的室内环境数据
4.2 基于树莓派4B的开发-室内环境监测¶
- 步骤1:确定硬件平台
- 步骤2:确定开发环境、开发库
- 步骤3:通过SSH远程登陆,基于Python和GrovePi开发。
- 步骤4:运行 & 测试验证:运行“Python indoorEnv.py”。