基于ARM的嵌入式系统和物联网开发
上QQ阅读APP看书,第一时间看更新

1.4 Arm®Mbed™系统

Arm®Mbed™是一个基于32位ARM®Cortex-M微控制器的平台和操作系统,由ARM®公司及其技术伙伴联合开发,用于物联网设备。它提供操作系统、云服务、工具和开发者生态系统,用以开发和部署物联网解决方案。

Arm®Mbed™系统的主要特征之一是其基于网页的开发环境,只需用一个数据线将设备插入计算机,计算机上将显示一个USB存储盘,利用Arm®Mbed™在线编译器写入并编译软件代码,将编译的代码下载到设备上,按一下键盘上的重启按键即可运行!

Arm®Mbed™提供开发物联网和嵌入式设备所需的所有东西,它可以支持100多个Mbed开发板和400多个组件,还有用于写入、构建和测试应用的工具及服务器和用户端工具,用于与接入设备进行通信。

Mbed微控制器为有经验的嵌入式开发人员进行概念验证提供了有力且有效的平台。对于尚无32位微控制器开发经验的开发人员,Mbed提供样机研究方案,用户可借用Mbed社区共享的库、资源和支持完成项目。

图1-7和图1-8是Arm®Mbed™主页和相应的开发者网站。图1-9是Arm®Mbed™支持的开发板列表,其中有几个开发板值得我们关注。

图1-7 Arm®Mbed™网站(上图)和Mbed系统原理图(下图)

图1-8 Arm®Mbed™开发者网站,以前链接是https://developer.mbed.org,现改为https://os.mbed.com

图1-9 Arm®Mbed™开发板,以前链接是https://developer.mbed.org/products,现改为https://os.mbed.com/products

1.4.1 NXP LPC1768

这是最常用的一种开发板,基于NXP LPC1768微控制器,32位ARM®Cortex-M3内核,运行速度为96MHz,512KB闪存,32KB内存和若干接口,包括内置以太网、USB主机和设备、CAN、SPI、I2C、ADC、DAC、PWM和其他输入/输出接口。12位ADC尤其有用。图1-10是开发板及其引脚分配,包括常用的接口及其位置。P5-P30引脚也可用作数字输入和数字输出接口。

图1-10 Arm®Mbed™网站上NXP LPC1768开发板及其引脚分配(来源:https://os.mbed.com/platforms/mbed-LPC1768/

特征

❑NXP LPC1768微控制器

-高性能ARM®Cortex™-M3内核

-96MHz、32KB内存、512KB闪存

-以太网、USB主机/设备、2个SPI、2个I2C、3个UART、CAN、6个PWM、6个ADC(12位),通用输入输出接口

❑样机形状系数

-40个引脚、0.1寸厚、双列直插封装,54×26mm

-5V USB或4.5V~9V电源

-内置USB拖放闪存编辑器

❑mbed.org开发者网站

-轻量级在线编译器

-高水平C/C++软件开发工具包

-公开代码库和代码工程的指南

还有一个NXP LPC1768Mbed应用板(图1-11),NXP LPC1768及其Mbed应用板构成一个很好用的工具包。

图1-11 Arm®Mbed™网站上NXP LPC1768开发板上的应用板的正面(左)和背面(右)(来源:https://os.mbed.com/components/mbed-Application-Board/

特征

•128×32图形液晶显示器

•5路操纵杆

•2个电位计

•3.5mm音频接口(模拟输出)

•扬声器、PWM连接

•3轴+/11.5g加速计

•3.5mm音频接口(模拟输入)

•2个伺服电机头

•RGB LED、PWM连接

•USB-mini-B连接器

•温度传感器

•Xbee(Zigbee)或RN-XV(WiFi)插口

•RJ45以太网连接器

•USB-A连接器

•1.3mm DC接口输入

更多关于LPC1768的信息

https://os.mbed.com/ platforms/mbed-LPC1768/

https://os.mbed.com/components/mbed- Application- Board/

http://www.nxp.com/products/microcontrollers- and processors/arm. processors/Ipc-cortex- m mcus/lpc1700- cortex- m3/arm. mbed-lpc 1768- board:OM11043

1.4.2 NXP LPC11U24

这是另一种比较有趣的开发板,基于NXP LPC11U24,32位ARM®Cortex-M0内核,运行速度为48MHz,32KB闪存,8KB内存和若干接口,包括USB设备、SPI、I2C、ADC和其他输入输出接口。图1-12是开发板及其打印输出,包括常用的接口及其位置。P5-P30引脚也可用作数字输入和数字输出接口。

与NXP LPC1768不同,NXP LPC11U24速度更慢、性能更低,但它功耗低、价格低,所以主要用于低成本USB设备和电动应用程序。

图1-12 Arm®Mbed™网站上NXP LPC11U24开发板及其引脚分配(来源:https://os.mbed.com/platform/mbed-LPCIIU24

特征

•NXP LPC11U24微控制器

•低功耗ARM®Cortex™-M0内核

•48MHz、8KB内存、32KB闪存

•USB设备、2个SPI、I2C、UART、6个ADC、通用输入输出接口

•样机形状系数

•40个引脚、0.1寸厚、双列直插封装、54×26mm

•5V USB,4.5V~9V电源或2.4V~3.3V电池

•内置USB拖放闪存编辑器

•mbed.org开发者网站

•轻量级在线编译器

•高水平C/C++软件开发工具包

•公开代码库和代码工程的指南

更多关于LPC11U24的信息

https://os.mbed.com/platforms/mbed‐LPC11U24/

http://www.nxp.com/products/microcontrollers and-processors/arm-processors/lpc-cortex-m-mcus/lpc1100-cortexm0-plusm0/arm- mbed- lpc11u24- board:OM13032

1.4.3 BBC Micro:bit

BBC Micro:bit是一个袖珍的、可编码的计算机,由BBC与31个机构联合开发,包括ARM®、NXP、element14、Microsoft、Cisco等。图1-13是开发板及其打印输出。它使得任何人都可以利用技术变得富有创造力。BBC为英国所有7年级11~12岁的小孩捐赠了一个免费的Micro:bit。

图1-13 Arm®Mbed™网站上BBC Micro:bit开发板及其引脚分配(来源:https://os.mbed.com/platforms/Microbit/

BBC Micro:bit基于Nordic nRF51822微程序控制器、16K内存、256K闪存、还有Freescale板上的加速计和磁力计。

特征

•在BBC网站(http://www.microbit.co.uk/create-code)可实现在高级在线集成开发环境下编程

-Microsoft TouchDevelop IDE

-Microsoft Blocks

-CodeKingdoms Javascript

-MicroPython

•Mbed功能

-在线集成开发环境(developer.mbed.org)

-方便使用C/C++软件开发工具包

-用于快速开发的Micro:bit专用运行库(由Lancaster University开发)

•Nordic nRF51822多协议蓝牙®4.0低功耗/2.4GHz无线射频SoC

-32位ARM®Cortex M0处理器(16MHZ)

-16KB内存

-256KB闪存

-蓝牙低功耗主/从连接

•输入/输出

-25LED矩阵

-Freescale MMA86523轴加速计

-Freescale MAG31103轴磁力计(电子罗盘)

-2个按键

-USB和边缘连接器串行输入/输出

-2/3可重构PWM输出

-5个banana/croc-clip连接器

-边缘连接器

-6个模拟输入

-6-17GPIO通用输入输出(由配置决定)

-SPI

-i2c

•USB Micro B连接器

•JST电源连接器(3v)

更多关于Microsoft:bit的信息

https://www.microbit.co.uk/

https://os.mbed.com/platforms/Microbit/

1.4.4 Arm®Mbed™以太物联网入门工具包

Arm®Mbed™以太物联网入门工具包包含一个Arm®Mbed™FRDM-K64F开发板和一个mbed应用板(图1-14),由IBM物联网基金会设计,旨在为用户提供灵活的体验,用户可以很容易地从开发板的传感器上发送数据到IBM云。它尤其适合没有特定嵌入式或网页开发经历的用户,因为它提供了一个学习新理念和创建工作原型的平台。它允许用户通过IBM BlueMix平台进入IBM云应用,使得部署和设备管理非常简易。用户还可以对入门工具包的硬件进行修改,以便满足个性需求。

图1-14 Arm®Mbed™以太物联网入门工具包,包含一个FRDM-K64F开发板(左)及其应用板(右)

NXP FRDM-K64F是新一代开发板,基于Kinetis K64F低功耗微控制器,ARM®Cortex®-M4内核,运行速度高达120MHz,1024KB嵌入式闪存,256KB内存,以及若干外围设备(16位ADC、DAC、计时器)和接口(以太网、USB设备和串行端口)。新型的Mbed应用板采用Arduino标准开发板,使潜在实验数达到最大,同时与Mbed应用板尽可能保持一致。

本书重点关注Arm®Mbed™IBM以太物联网入门工具包。

Arm®Mbed™以太物联网工具包包含:

Mbed Enabled NXP K64F开发板

•NXP K64F Kinetis K64微控制器(MK64FN1M0VLL12)

•高性能ARM®Cortex™-M4内核、浮点运算器、数字信号处理器(DSP)

•120MHz、256KB内存、1MB闪存

Mbed应用板

•128×32图形液晶显示器

•5路操纵杆

•2个电位计

•扬声器、PWM连接

•3轴+/11.5g加速计

•RGB LED、PWM连接

•温度传感器

•Xbee(Zigbee)或RN-XV(WiFi)插口

微控制器特征

•100LQFP Kinetis MK64FN1M0VLL12

•性能

-ARM®Cortex™-M4、32位内核、数字信号处理器指令、浮点运算器

-120MHz最大CPU频率

•存储器和存储接口

-1024KB程序闪存

-256KB内存

-FlexBus外部总线接口

•系统外围设备

-多种低功耗模式、低泄漏唤醒单元

-16通道DMA控制器

•时钟

-3个内部基准时钟:32kHz、4MHz和48MHz

-2个晶振输入:3MHZ~32MHz(XTAL0)和32kHz(XTAL32/RTC)

-锁相环(PLL)和反馈循环(FL)

•模拟模块

-2个16位SAR ADC,最高800ksps(12位模式)

-2个12位DAC

-3个模拟比较器

-电压基准1.13V

•通信接口

-1个10/100Mbit/s以太网多路存储微控制器,MII/RMII接口IEEE1588可连

-1个全/低速设备/主机/一键拷贝(OTG)控制器USB 2.0接口,3.3V/120MA嵌入式稳压电源和USB设备非晶体操作

-1个CAN模块

-3个SPI模块

-3个I2C模块,支持最高速度1Mbit/s

-6个UART模块

-1个安全数字主控制器(SDHC)

-1个I2S模块

•计时器

-2个8通道Flex-Timers(PWM/电动机控制)

-2个2通道Flex-Timers(PWM/正交译码器)

-32位PIT和16位低功耗计时器

-实时时钟(RTC)

-可编程延迟时钟

•安全性和完整性模块

-硬件CRC和随机数生成器模块

-支持DES、3DES、AES、MD5、SHA-1和SHA-256算法的硬件加密

•操作特性

-电压范围:1.71V~3.6V

-闪存写入电压范围:1.71V~3.6V

开发板特征

•板级组件

-FXOS8700CQ-6轴传感器加速计和磁力计

-2个用户按键

-RGB LED

•连接性

-USB全速/低速一键复制/主机/设备控制器、片上收发器、3.3V~5V校准器和微型USB连接器

-带有板上收发器和RJ45连接器的10/100M以太网控制器

-可连接多达5个UART、2个SPI、2个I2C、1个CAN(多路复用外围设备)

•扩展

-Micro SD卡接口

-与Arduino R3板兼容的接头(32针/外行)

-专有板接头(32针/内行)

•模拟和数字输入/输出(多路复用外围设备)

-多达2个ADC、16位分辨率、28个模拟输入/输出引脚连接到接头

-多达3个计时器,可从接头连接到18个PWM信号

-多达6个比较器输入或1个DAC输出

-多达40个微控制器输入/输出引脚连接到接头(3.3V,每个4mA,最大400mA)

•开发板电源选项(板级3.3V~5V校准器)

-USB调试5V

-USB目标5V

-Arduino接头5V~9V输入电压

-5V PWR输入

-纽扣电池3.3V

•集成了开放SDA USB调试和编程适配器

-若干个工业级的标准调试接口(PEmicro、CMSIS-DAP、JLink)

-拖放MSD快速编程

-虚拟USB到串行端口

•形状系数:3.2"×2.1"/81mm×53mm

•软件开发工具

-可用Mbed HDK&SDK

-在线开发工具

-方便使用C/C++SDK

-大量已发表库和项目

-线下选项NXP free KDS(编译器工具链)和KSDK库/示例

供应商网站:http://www.nxp.com/frdm-k64F

图1-15是FRDM-K64F开发板组件布局和引脚分配,以下是最常用的引脚:

RGB LED LED1(LED_RED),LED2(LED_GREEN),LED3(LED_BLUE),LED4(LED_RED)

数字输入/输出 D0,D1,D2,…,D15

模拟输入 DAC0_OUT

PWM(脉宽调制) A4,A5,D3,D5,D6,…,D13

图1-15 FRDM-K64F开发板组件布局(左)和Arm®Mbed™网站上Arduino和NXP引脚分配特别说明:原书英文版部分图片不甚清晰,导致本书中文翻译版相应图片不甚清晰。——编辑注

更多关于FRDM-K64F的信息

https://os.mbed.com/platforms/IBMEthernetKit/

https://os.mbed.com/platforms/FRDM‐K64F/

https://os.mbed.com/components/mbed‐Application‐Shield/

http://www.nxp.com/frdm‐k64f