Arm®Mbed™与物联网技术入门详解
立即解锁
发布时间: 2025-08-29 11:25:26 阅读量: 12 订阅数: 13 AIGC 

### Arm® Mbed™与物联网技术入门详解
#### 1. 嵌入式系统简介
嵌入式系统是一种小型计算机系统,是机器或大型电气/机械系统的一部分。它通常被设计用于执行特定的任务,并且常常是实时系统。之所以称为嵌入式,是因为计算机系统嵌入在硬件设备中。嵌入式系统非常重要,因为它们在许多日常电器中越来越多地被使用,如数字手表、相机、微波炉、洗衣机、锅炉、冰箱、智能电视和汽车等。嵌入式系统通常还需要体积小、成本低和功耗低。
一个典型的嵌入式系统包括微控制器、输入/输出和通信接口,其示意图如下:
```mermaid
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A([嵌入式系统]):::startend --> B(微控制器):::process
A --> C(输入):::process
A --> D(输出):::process
A --> E(通信接口):::process
```
- **微控制器**:是嵌入式系统的核心,协调所有操作。它是一种带有内存和所有输入/输出外设的计算机处理器。
- **输入**:嵌入式系统通过输入和输出与外界交互。输入可以是数字输入或模拟输入,通常用于从传感器(温度传感器、光传感器、超声波传感器等)或其他类型的输入设备(按键、按钮等)读取数据。
- **输出**:可以是数字输出或模拟输出,通常用于显示、驱动电机或其他设备(执行器)。
- **通信接口**:嵌入式系统使用通信接口与其他设备进行通信,包括以太网、USB(通用串行总线)、CAN(控制器局域网)、红外、ZigBee、WiFi和蓝牙等。
#### 2. 微控制器与微处理器
现代嵌入式系统主要基于微控制器,尽管也有基于微处理器构建的嵌入式系统。典型的微控制器包含中央处理器(CPU)、中断、定时器/计数器、内存和其他外设,都集成在一个单一的集成电路(IC)中,是真正的片上计算机或片上系统(SoC)。
微控制器(MCU或μC)与微处理器(MPU)不同。微处理器是一个仅带有中央处理器(CPU)的单一IC,为了使其具有功能,需要添加外部内存和其他外设。以下是它们的主要区别:
| 比较项 | 微处理器 | 微控制器 |
| --- | --- | --- |
| 组成 | 仅含CPU | 含CPU、内存和其他外设 |
| 应用场景 | 个人计算机等通用系统 | 嵌入式系统控制应用 |
| 计算能力 | 较高 | 较低 |
| 时钟频率 | 通常为千兆赫兹 | 通常为兆赫兹 |
| 功耗 | 较高,常需外部冷却系统 | 较低,无需冷却系统 |
微控制器的关键组件包括:
- **CPU**:常被称为处理器或中央处理器,是微控制器的核心。它包含算术逻辑单元(ALU)、控制单元和寄存器。ALU执行算术和逻辑运算,寄存器为ALU提供操作数并存储ALU运算结果,控制单元控制整体操作并与ALU和寄存器通信。CPU的操作周期可描述为取指、解码和执行。CPU通过系统总线与外部外设(如内存和输入/输出)通信,系统总线包括数据总线、地址总线和控制总线。地址总线是单向的,从CPU到外设,而数据总线和控制总线是双向的。根据所实现的指令集,CPU可分为复杂指令集计算(CISC)和精简指令集计算(RISC)两种主要类型。
- **CISC CPU**:指令集非常大(300条以上),硬件更复杂,但软件代码更紧凑,每条指令需要更多周期,使用较少的RAM,因为无需存储中间结果。典型例子有AMD和Intel x86,主要用于个人计算机、工作站和服务器。
- **RISC CPU**:指令集小(100条以下),硬件更简单,但软件代码更复杂,每条指令需要一个周期,使用更多的RAM来处理中间结果。典型例子有Atmel AVR、PIC和ARM®,主要用于微控制器,因为它们功耗较低。
- **内存**:微控制器使用内存来存储程序和数据,有内部和外部两种类型。内部内存大小有限但速度快,对于内部内存不足的应用,需要外部内存。传统上,外部内存有随机存取存储器(RAM)和只读存储器(ROM)两种类型。RAM可以随机访问,可进行读写操作,断电后会丢失所有内容;ROM是只读存储器,只能读取数据,断电后内容不会丢失,因此用于永久存储程序和数据。此外,还有新类型的内存,如电可擦除可编程ROM(EEPROM)和非易失性RAM(NVRAM),两者都可以读写,断电后内容不会丢失。闪存是NVRAM的最佳示例,它具有高密度、低成本、快速和电可编程的特点,广泛用于包含嵌入式操作系统和应用程序的嵌入式系统。
- **并行输入/输出端口**:有多个并行运行的导线(或引脚),因为可以同时访问多个信号,所以称为并行。主要用于将各种设备(如LCD、LED、打印机、存储器等)连接到微控制器。并行端口的数据传输速度比串行端口快得多,但由于干扰和噪声,仅适用于短距离通信。
- **串行输入/输出端口**:使用单根数据线传输数据,因此比并行输入/输出端口慢得多。然而,串行端口可以有更高的带宽,并且可以用于更长的距离。通用异步接收器/发送器(UART)外设是嵌入式系统中常用的串行输入/输出端口,它使用一根线接收数据(Rx)和一根线发送数据(Tx)。
- **定时器/计数器**:是微控制器的有用功能,一个微控制器可能有多个定时器和计数器,它们提供微控制器内部的所有定时和计数功能,包括时钟功能、调制、脉冲生成、频率测量和振荡。
- **模拟到数字转换器(ADC)**:将模拟信号转换为数字信号,主要用于读取传感器的电压输出。ADC可以是8位、10位、12位、16位、24位甚至32位,位数越高意味着转换分辨率越高。ADC的带宽(即它可以测量的频率范围)由其采样率或采样频率决定。根据奈奎斯特 - 香农采样定理,ADC可以测量的最高频率小于其采样率的一半。mbed板的典型ADC采样率约为几百千赫兹。
- **数字到模拟转换器(DAC)**:与ADC相反,将数字信号转换为模拟信号,通常用于控制模拟设备,如音频扬声器、直流电机和各种驱动器。
- **中断控制**:是微控制器应用中最重要和强大的功能之一,用于中断正在运行的程序。中断可以是硬件中断(外部,通过使用中断引脚激活)或软件中断(内部,通过在编程期间使用中断指令)。
- **复位**:是所有微控制器都具备的重要功能,可以确保微控制器回到其原始状态,这在出现问题时尤为重要。
- **看门狗**:或看门狗定时器,是嵌入式系统中常用的电子硬件,用于自动检测软件故障并复位处理器。看门狗定时器基本上从某个初始值倒计时到零,嵌入式软件选择计数器的初始值并定期重启它。如果计数器在软件重启之前达到零,则认为软件出现故障,处理器将被复位。
#### 3. ARM®处理器架构
ARM®(高级精简指令集机器)架构是一种基于精简指令集计算(RISC)的计算机处理器架构。它最初由英国剑桥的Acorn Computers公司在20世纪80年代开发,最初代表Arcon RISC Machine。第一批ARM处理器用于BBC微型计算机。20世纪80年代末,Acorn开始与苹果计算机和VLSI Technology合作。1990年,Acorn将设计团队分拆成一家新公司,名为Advanced RISC Machines(ARM®)Ltd,后来公司名称改为ARM® Holdings plc。1998年,ARM® Holdings plc在伦敦证券交易所和纳斯达克上市,1999年成为富时100指数的成分股。
自2007年在苹果的iPhone和iPad上使用以来,ARM®处理器越来越受欢迎。到目前为止,ARM®处理器广泛应用于智能手机、平板电脑和智能电视等设备。截至2014年,已生产了超过500亿个ARM®处理器。2016年7月,ARM® Holdings的年营业额约为10亿英镑,并同意以243亿英镑被日本软银公司收购,此次收购在很大程度上被视为对物联网(IoT)的投资,ARM®处理器有望在其中占据主导地位。
目前,ARM®处理器通常可分为三类:
| 类别 | 特点 | 应用场景 |
| --- | --- | --- |
| 应用处理器(Cortex - A系列) | 最强大的处理器,针对更高性能进行优化,具有32位和64位,支持A32、T32和A64指令集,有虚拟内存系统,支持丰富的操作系统 | 手机、平板电脑和计算机等 |
| 实时处理器(Cortex - R系列) | 针对更快的响应进行优化,32位,支持A32和T32指令集,有受保护的内存系统(可选虚拟内存) | 工业、家庭和汽车应用等 |
| 微控制器处理器(Cortex - M系列) | 针对更小的尺寸和更低的功耗进行优化,32位,仅支持T32 / Thumb®指令集,有受保护的内存系统 | 嵌入式系统和物联网应用等 |
不同的Cortex - M微控制器也有不同的特点:
| 性能分类 | 具体型号 | 特点 |
| --- | --- | --- |
| 最低功耗和面积 | Cortex - M23 | 最小面积、最低功耗下具备TrustZone |
| | Cortex - M0+ | 最高能源效率 |
| | Cortex - M0 | 最低成本、低功耗,可通过DesignStart免费进行设计和仿真 |
| 性能效率 | Cortex - M33 | 具备TrustZone的灵活性、控制和数字信号处理(DSP) |
| | Cortex - M4 | 主流控制和DSP |
| | Cortex - M3 | 性能效率 |
| 最高性能 | Cortex - M7 | 最大性能、控制和DSP |
#### 4. Arm® Mbed™系统
Arm® Mbed™是一个基于32位ARM® Cortex - M微控制器的平台和操作系统,由ARM®及其技术合作伙伴共同开发,专为物联网(IoT)设备设计。它提供操作系统、云服务、工具和开发者生态系统,使物联网解决方案的创建和部署成为可能。
Arm® Mbed™系统的主要特点之一是其基于Web的开发环境。只需使用USB电缆将设备连接到计算机,设备将在计算机上显示为USB记忆棒。使用Arm® Mbed™在线编译器编写和编译软件代码,将编译后的代码下载到设备中,然后按下板载复位按钮即可运行!
Arm® Mbed™为开发物联网和嵌入式设备提供了所需的一切,它完全支持超过100个mbed兼容板和400多个组件,还拥有用于编写、构建和测试应用程序的工具,以及用于与设备通信的服务器和客户端工具。
对于有经验的嵌入式开发人员,mbed微控制器提供了一个强大而高效的平台来构建概念验证;对于刚接触32位微控制器的开发人员,mbed提供了一个易于使用的原型解决方案,借助mbed社区共享的库、资源和支持来开展项目。
以下是一些值得一提的开发板:
- **NXP LPC1768**:这是最受欢迎的开发板之一,基于NXP LPC1768微控制器,具有32位ARM® Cortex - M3内核,运行频率为96 MHz。它有512 KB闪存、32 KB RAM和许多接口,包括内置以太网、USB主机和设备、CAN、SPI、I2C、ADC、DAC、PWM和其他I/O接口,其中12位ADC特别有用。
- **特点**:
- **NXP LPC1768 MCU**:高性能ARM® Cortex™ - M3核心,96 MHz,32 KB RAM,512 KB闪存,具备以太网、USB主机/设备、2×SPI、2×I2C、3×UART、CAN、6×PWM、6×ADC(12位)、GPIO等接口。
- **原型设计外形**:40引脚0.1英寸间距DIP封装,54×26mm,5V USB或4.5 - 9V电源,内置USB拖放式闪存编程器。
- **mbed.org开发者网站**:轻量级在线编译器,高级C/C++ SDK,有已发布的库和项目的手册。
- **配套mbed应用板特点**:128×32图形LCD,5向操纵杆,2个电位器,3.5mm音频插孔(模拟输出),扬声器(PWM连接),3轴±1.5g加速度计,3.5mm音频插孔(模拟输入),2个伺服电机接口,RGB LED(PWM连接),USB - mini - B连接器,温度传感器,Xbee(Zigbee)或RN - XV(WiFi)插槽,RJ45以太网连接器,USB - A连接器,1.3mm直流插孔输入。
- **NXP LPC11U24**:这是另一个有趣的开发板,基于NXP LPC11U24,具有32位ARM® Cortex - M0内核,运行频率为48 MHz。它包括32 KB闪存、8 KB RAM和许多接口,包括USB设备、SPI、I2C、ADC和其他I/O接口。与NXP LPC1768不同,NXP LPC11U24速度较慢、功能较弱,但功耗更低、成本更低,因此主要设计用于低成本USB设备和电池供电的应用。
- **特点**:
- **NXP LPC11U24 MCU**:低功耗ARM® Cortex™ - M0核心。
### Arm® Mbed™与物联网技术入门详解
#### 5. 开发板对比与选择建议
为了更清晰地对比NXP LPC1768和NXP LPC11U24这两款开发板,我们将它们的关键参数整理成如下表格:
| 开发板型号 | 内核 | 运行频率 | 闪存 | RAM | 主要接口 | 适用场景 |
| --- | --- | --- | --- | --- | --- | --- |
| NXP LPC1768 | ARM® Cortex - M3 | 96 MHz | 512 KB | 32 KB | 以太网、USB主机和设备、CAN、SPI、I2C、ADC、DAC、PWM等 | 对性能要求较高、功能需求丰富的项目,如工业控制、智能家电等 |
| NXP LPC11U24 | ARM® Cortex - M0 | 48 MHz | 32 KB | 8 KB | USB设备、SPI、I2C、ADC等 | 对成本和功耗敏感的项目,如低成本USB设备、电池供电的传感器节点等 |
在选择开发板时,可以参考以下流程图:
```mermaid
graph TD
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A([开始选择开发板]):::startend --> B{对性能要求高吗?}:::process
B -->|是| C(NXP LPC1768):::process
B -->|否| D{对成本和功耗敏感吗?}:::process
D -->|是| E(NXP LPC11U24):::process
D -->|否| F(根据其他需求选择):::process
```
#### 6. 基于Arm® Mbed™的开发流程
使用Arm® Mbed™进行开发,一般可以遵循以下步骤:
1. **准备开发环境**
- 确保计算机已安装必要的驱动程序,以便识别通过USB连接的开发板。
- 访问Arm® Mbed™在线编译器网站,注册并登录账号。
2. **选择开发板**
- 在Arm® Mbed™在线编译器中,选择你所使用的开发板,如NXP LPC1768或NXP LPC11U24。
3. **创建项目**
- 在在线编译器中,点击创建新项目的按钮,为项目命名并选择合适的模板。
4. **编写代码**
- 使用C/C++语言编写代码,利用Arm® Mbed™提供的库和API实现所需功能。例如,读取传感器数据、控制输出设备等。
5. **编译代码**
- 点击在线编译器中的编译按钮,对代码进行编译。如果代码存在错误,编译器会提示错误信息,需要根据提示进行修改。
6. **下载代码**
- 编译成功后,将生成的二进制文件下载到开发板中。可以通过USB将开发板连接到计算机,然后将二进制文件复制到开发板对应的USB存储位置。
7. **运行程序**
- 按下开发板上的复位按钮,程序将开始运行。可以通过串口通信、调试器等工具观察程序的运行状态和输出结果。
#### 7. 应用案例分析
以下是两个基于Arm® Mbed™开发板的应用案例:
- **智能温湿度监测系统**
- **硬件选择**:可以选择NXP LPC1768开发板,搭配温湿度传感器。
- **实现步骤**
1. 使用ADC接口读取温湿度传感器的模拟输出信号。
2. 将模拟信号转换为数字信号,并进行数据处理,计算出实际的温湿度值。
3. 通过LCD显示屏显示温湿度数据。
4. 可以通过以太网或WiFi接口将数据上传到云服务器,实现远程监控。
- **电池供电的无线传感器节点**
- **硬件选择**:选择NXP LPC11U24开发板,搭配低功耗的无线模块(如ZigBee)和传感器。
- **实现步骤**
1. 使用低功耗的传感器采集环境数据,如光照强度、土壤湿度等。
2. 通过SPI或I2C接口将传感器数据传输到开发板。
3. 开发板对数据进行处理和打包。
4. 使用无线模块将数据发送到网关或基站,实现数据的远程传输。
#### 8. 总结
通过对嵌入式系统、微控制器、ARM®处理器架构以及Arm® Mbed™系统的介绍,我们了解了物联网开发的基础知识和关键技术。Arm® Mbed™为物联网和嵌入式设备的开发提供了便捷的平台和丰富的资源,无论是有经验的开发者还是初学者,都可以利用它快速实现项目的开发和验证。
在选择开发板时,需要根据项目的需求综合考虑性能、成本、功耗等因素。同时,遵循基于Arm® Mbed™的开发流程,可以高效地完成代码的编写、编译和调试。通过实际的应用案例分析,我们可以看到这些技术在实际项目中的应用方式和实现步骤。
希望这些内容能够帮助你更好地理解和应用相关技术,开启物联网开发的新征程。
0
0
复制全文
相关推荐








