开发者学堂课程【基于STM32的端到端物联网全栈开发:STM32节点端及开发环境介绍】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/574/detail/7936
STM32节点端及开发环境介绍
内容介绍:
一、基于 STM32的节点端介绍
二、STM32的平台策略
三、STM32与第三方合作布局 I0T
四、STM32L4+家族
五、STM32生态系统
六、STM32L4+生态系统
七、NUCL EO-L4R5Zi 板
八、X-NUCLEO-IKS01A2
九、EXT-AT3080
十、WIFI 模块的固件升级
十一、课程所需要的硬件
内容简介:
回顾之前的第二章,已经了解了阿里的 IoT 平台,它是如何做设备接入,设备管理的,一个物理设备在 IoT 平台上是如何创建和抽象的,接下来使用 stm32来在物理上实现这两个节点设备,然后分别和阿里云 IoT 平台进行通信,来完成数据链路的前半程工作。在本章里除了 stm32嵌入式开发,也会对应在阿里 IoT 平台上实际操作来建立这两个节点设备在平台上的表征。文章的内容是介绍如何使用 stm32,以灵活的方式接到阿里 IoT 平台,分为三节,首先第一节是对 stm32的介绍,一个以 stm32为核心,外扩 WiFi 连接和深色传感器的节点设备,这个32系列产品的平台性策略,stm32在 IoT 领域的部署,常用的 stm32开发软件平台等。软件平台等。
接下来的第二节,第三节是之前在课程指南里预告的 STM32L4R5节点连接阿里云 IoT 平台的两种方式,资源数据的设备使用有开源社区广泛使用的,paho MQTT 客户端协议栈接入,这种方式的特点是灵活简洁,资源丰富的设备,使用阿里云 IoT 平台推出的节点测 Linkkit C-SDK 和 TLS 通过 MQTT 来实现和阿里云 IoT 平台的双向安全连接。当然这两种配置的设备都是在同一个硬件平台及 STM32L4R5上实现的,后续会比较这两种实现的工作特性和存储空间占用情况。
一、基于STM32的节点端介绍
这一节内容主要是介绍本次课程的节点设备,选择 STM32L4R5作为主控,获取本地传感器信息,通过 WiFi 方式进行网络连接,设备由三个独立的板子以 INucleo 接口连接在一起,这三个意见词板上各自的资源和特点会稍后介绍。初次接触还可以在本节了解到 STM32产品的家族概况、生态系统,包括方便用户快速使用 STM32进行产品开发的一套软硬件平台。
1.STM32市场拓展里程碑
自从2017年第一款 STM32F1在北京发布以来,经过12年的发展,如今 STM32家族已经拥有了十五大产品系列近千个产品,从超低功耗到高性能,其强大的产品阵容足以覆盖各种应用,满足不同需求。在 stm32家族诞生的10周年季,出货量已经累计超过30亿克。
在中国以 up 或 TCL 为内核的32位微控制器市场微,stm32的份额已经高达48%,是中国市场上第一大通用控制器厂商,stm32能在中国市场取得如此令人瞩目的成绩,一方面持续推陈出新,给客户带来各种创新,具有差异化的产品来丰富产品阵容。
一方面大力进行围绕 stm32的生态系统建设,举办更多市场活动,让在校学生和国内工程师可以第一时间接触和了解到 stm32的产品和技术。
如今 stmcu70%的业务来自中小客户,目标就是让所有人都知道 stm32的方向和策略,同时让所有人把 stm32作为产品设计的首选。
罗马不是一天建成的,要保持持续的创新和高速业务增长,也并不是一件容易的事情。这个时间轴说明了 stm32如今的市场地位是如何一步一个脚印走出来的。
图里有14个蝴蝶代表不同的 cortex-M 产品系列,整个家族目前已经拥有十五大系列,有一个是近期推出的 MCU 产品,它采用的是 arm 的 ATM 和 M4双核架构,因此没有放在这张图里面。图里不同的蝴蝶代表不同的类型,深蓝色是主流系列,从第一款 f103到今年春节前后推出的性价比之王,绿色的是低功耗系列,采用 ST 特有的超低漏电工艺,配合金巧设计的低功耗外设主打低功耗应用,是当前 iot 业务的首选系列之一。
今年推出的 l5系列在低功耗特性上,这个 iot 应用进一步强化安全架构,采用 arm 新一代内核,支持安全技术,红色是高性能系列,主打高频处理能力,紫色的是无线系列,新推出来的低功耗 b21的双核产品,stm3wb 是今年的主推产品之一。
另外为了进一步配合 iot 应用,stm 会继续在无线产品包括低功耗广域网方面发力。
2、STM32产品布局与定位
这张图把刚才按照时间顺序排列的14只小蝴蝶,按照产品系列大类和所基于的内核做了重新排列,由此可见 stm 是arm 或 cortex 系列内核覆盖和支持最全的芯片厂商。
虽然 F103已经是12年前推出的产品,stm 家族也越来越庞大,但是 stm 承诺所有的 stm 产品从用户下单起,会保证至少10年的供货周期,这就充分保证了客户的使用安全性,这对工业产品的应用是至关重要的。
二、STM32的平台策略
前两页14个小蝴蝶按产品的面试时间,基于的 arm 内核所处的大类特性,展示了 stm32的总体认识。
这张图与特性4个大类为密度,绿色、深蓝色、玫红色、紫色展示了 stm 家族产品在比较树木,存储容量方面的分布状况由于产品推出非常快,处理的一些数字细节,也许在观看视频的时候就已经过时了,因此推荐使用 stm 出品的免费的 PC 端跟手机端工具 SU finder 的来根据内核,产品线,封装 flash 大小比较个数所需具体外设来筛选需要的stm32的产品信号。
这个分布图可以看到一个大的趋势,就是在小尺寸少资源方面低功耗L系列要是有更多的选择,在大存储容量丰富的影响资源的提供方面,高性能系列是首选考虑。
另外这里要强调 stm32的平台策略,这也是 stm32家族的一大特色和优势。虽然 stm32有近1000个产品型号,但是意见方面绝大多数 stm32能够做到90%的影响兼容。
软件方面 stm32屏蔽了不同系列之间的一些差异,就是假如用户之前采用某一个 stm32做产品设计,现在需要提升性能,提升配置或者降低成本,往低配置方向做产品延伸,那么总有一个另外的 stm32可以满足性能和价格的要求,并且重要的是切换 stm32之后,用户的研发成本和周期受益于这个平台策略,也会由于软件硬件设计的高度可重用性而大大缩短。
所以这次系列课程虽然是以 STM32L4R5为主控,也可以很容易的切换到其他 STM32上信号上,只要它有一个接口,一个 Ur 的接口,并且有足够的 flash 和 ram。
三、STM32与第三方合作布局 I0T
1、基于 STM32的云连接软件开发套件SDK扩展功能包I-CUBE)
2、开发兼容 STM32 Nucleo 的 NB-IoT 模块
3、兼容 STM32 Nucleo 的射频模块扩展板
4、部署从设备到云端的安全方案
近几年互联网迅速发展,设备大量增加,给 stm32二带来了巨大的新市场机会。不仅低功耗低成本的 scu 作为节点,在 iot 领域有着亿万级的部署规模,高性能的 MCU 进行实时控制处理的优势,也在 IoT 网关占有一席之地。
而且 MCU 只有在中国的战略之一就是致力于 IoT 业务开发,通过与行业伙伴的密切合作来实现共赢。
云管端是 IoT 应用不可或缺的数据流必经路径,端上 stm32和众多的无线连接模块厂家合作,一方面集成 MCU 在模块中提高模块处理和控制性能,一方面开发兼容 stm32转换的无线模块的扩展板,支持 WiFi 和 lora nb-iot 2g 3g 4g的各种连接支持。
万物互联的大数据时代涌现出了很多公有云服务提供商,IoT 市场相比于以前所面对的人和人互联通信也是一个新的领域。另外一方面,对于传统控制领域的嵌入式开发者,如何上云是一个崭新的话题,但也是 IoT 时代必须解决的问题。在这样的一个需求背景下,stm 想客户之所想,急客户之所急和国内主要的公有云厂家合作提供基于 stm32的联营势力套件。
四、STM32L4+家族
在之前看到的14只小蝴蝶里面选择归属于低功耗大类,采用了 coetex-m4内核的 STM32L4+系列作为节点设备的开发平台,L4+的主屏幕最高可达到120兆赫兹,flash 容量从1兆到2兆上可选,提供640kb 的 ram,目前有三个产品线,从上往下是从简单到复杂,分别是 L4r5、l4r7、l4r9,最后一个数字是579,表示芯片所系的 IP 越来越丰富,从图里可以看到7比5多了 tft 显示控制接口屏和针对圆形显示屏优化过的 chrom 加速器件,9比7又多了 mipi-dsi 控制单元,字母 s 表示的系列比 r 系列多了 aes 硬件加密单元,在本系列中的节点设备,主控系列型号是 STM32L4R5 USB OTG,线上集成两兆 flash,640 kbram,主频最高可达120兆赫兹。
五、STM32生态系统
1、生态系统方面,STM 也为广大的 STM32开发者提供了丰富的硬件和软件资源,来帮助用户快速学习和使用 STM32技能产业开发。STM32的屏幕开发版有三种系列定位不同,它一般采用的是干系列芯片的最大影响封装功能,定位不同,nucleo 全功能开发版,一般采用的是该系列的最大的引导封装,板子上也尽可能的集成了各种模块来展示功能。Discovery 探索套件及全功能开发版,它面向的是普通用户,满足他们对产品新特性的功能评估要求。
2014年推出的 QQ6版,它上面的外设比较少,但是最大的特点是改善集成的标准,针对接口,就是将 STM32和生态系统连接了起来,从而方便学习丰富的外设模块资源来进行快速产品的开发。所有这些评估版都集成了一个调试招录器。
也就是一板在手就可以开始一个项目开发了。除了板载的 STM32的控制器的主控板外,STM 其他产品部门也推出了基于 cube 接口的功能扩展模块,比如实现互联功能的 WiFi、蓝牙 NFC 的扩展板,各种传感器扩展板,用户可以根据自己的应用选择扩展板搭配目标芯片对应的 UK600进行快速的产品意见联系搭建。软件方面是 STM32 cube 从2014年推出的框架和概念,它包括预习在 STM32上面的嵌入式软件和一直在 PC 端上面的工具软件,全部由 STM 开发维护支持,并免费给 STM32用户使用。
2、工具软件包括 STM32 cube mx,它是用于项目的 STM32选型,引脚配置,始终配置,中间件选择跟集成,固化估计以及最重要的 irq 的初始工程里面的生成。
STM32 cube programmer 继承了以前若干工具的功能,可以读取和抄写 STM32的片上闪存,选项自己片外存储器等,这个 cubeMonitor 可以实现监控运行参数,并进行拨号测量。总而言之,STM 通过整合并加强以前各个分散的软件开发工具链,来打造一套全功能的一站式开发工具解决方案。
3、嵌入式软件包括15个小蝴蝶,每人1个的底层驱动包,通过点抽象层屏蔽不同系列的硬件区别,向用户的上层应用提供一套统一的 API 接口,每个 STM32包含了该系列芯片上所有关系的驱动,每个外设的简单历程,多个外设中间件结合的复杂应用等,cube扩展功能包就是常见的 Xcube 或者 Icube 为名字的前置的部件包, 它一般是针对一个具体的应用,比如连接阿里云 IoT 平台的 I-cube 阿里云。在本次课程里,会用到 STM32CubeMXS PC 端工具,一个搭载了 STM32Cubel5 nucleo 版和其上的功能扩展版,以及一个基于 L4R 系列的 STM32CubeL4驱动包。
六、STM32L4+生态系统
1、Nucleo 最灵活的原型评估方式
2、Discovery kit 关键特性的原型评估
3、EVAL board 全功能评估
七、NUCL EO-L4R5Zi 板
1、3个用户 LED,1个用户按键,1个复位按键板载144引脚 STM32L .4R5ZI
2、2M 片上 Flash, 640K RAM, 120MHz 主频
3、板载32.768 KHz 晶振
4、板载多个连接器
5、Micro-AB 端口
6、SWD (对外)调试接口
7、ST morpho 扩展插槽
8、Arduino Uno V3扩展插槽
9、板载 ST-LINKN2-1提供调试烧录、虚拟串口功能
NUCL EO-L4R5Zi 板就是这个课程系列里节点设备的主控板,一颗144引脚的主控芯片,型号是 L4R5Zi,有两兆片上flash,640kram,最大主频是120赫兹,三个可以被控制的 led,红绿蓝,蓝色的用户按键,一个黑色的复原按键,后面连接阿里云 iot 平台的 demo 里面会用到其中的红绿两个 led 以及蓝色的用户按键,在靠近 usb 供电端口侧,把ST-LINKV2-1对目标芯片 L4R5的调试烧写功能,这个板载的 ST-LINKV2提供对外的 swd 对外调试接口,可以用来调试烧写其他开发板上面的 stm32,除此之外 ST-LINKV2还提供了 usb 转串口功能,使得目标 su 可以和 pc 的串口调试工具做双向通信,通常用于调试打印 logo 信息到 pc 上面,或者在 demo 原型演示时,作为一个用户的交互接口,后面连接阿里云 iot 平台的 demo 演示里面也会用到它。
八、X-NUCLEO-IKS01A2
1、STM32Cube 的扩展软件包 X-CUBE-MEMS1,
提供X-NUCLEO-IKS01A2扩展板的驱动
2、提供 NUCLEO-F401 RE,
NUCL EO-L053R8,STM32L073RZ-Nucleo,NUCLEO-L1 52RE or NUCLEO-L476RG 板的例程
使用 X-NUCLEO-IKS01A2作为传感器扩展版,这个板子上集成有温度传感器,压力传感器,加速度传感器和陀螺仪等。通过板载的 arduino 接口插针和主控板连接,实际用到的板间信号线就是一个 MC 总选和电源地。针对该4次扩张版的使用,X-NUCLEO 提供了 IKS01A2扩展软件包,里面包含各个传感器模块的驱动,也是在 F401、L053、L152以及 L476这个4块 nucleo 板上面的使用历程。
虽然要使用的是 L4R5nucleo 板,不在现成已支持的4个 nucleo 板中,但是好消息是最新版的特别 cube-mems5.1已经把 iks01a2版的传感器驱动以插件的形式集成了进来,这样通过在通过 cube-mems 界面里的勾选配置,就可以非常方便的在任意带有 stm 接口的 stm32上使用该扩展板,设置进一步在任意 stm32上使用这些传感器,传感器不一定要在这个板子上面,可以是自己设计的任意板子,这就要感谢 X-NUCLEO-IKS01A2的的插件功能。
九、EXT-AT3080
(1)集成无线模块 EMW3080支持 Station, SoftAP, SoftAP+Station 模式。
(2)对外提供标准 Arduino 接口。
(3)外部 MCU 通过用户 UART 串口与 WIFI 模块进行 AT 指令通信。
使用的 estat3080版来作为 WiFi 功能扩展版,这块板子上集成了 EMW3080WiFi 模块,并通过完整的登陆接口插针和SUV 板传感器扩展板连接,实际用到的板车信号线也就是一个的收发和电源地。软件方面3080模块底层是 WiFi af 的驱动,在其上是汽车开发的 WiFi 部件,并封装成AP指令供外部的 ICU 调用。L4r5这一侧,最底层的是 ST,根据3080模块的 at 指令开发的 WiFi 驱动,这里两个动词 WiFi 驱动是 MC 上面的,WiFi 附件是3080模块上面的,不要混淆,
十、WIFI 模块的固件升级
通过 at 指令和 WiFi 模块进行。如果 WiFi 模块里的固件版本较老,可能需要进行升级。在项目代码开发时,WiFi 版本的部件版本是 Basic AT V2.1.2,通过 at 指令 at 加上 dwve r可以查询所用模块的固件版本,一般在购买 WiFi 模块时,包裹里面的发货单上也会标明所属模块搭载的部件版本信息。
可以到官网来下载 emw3080的 V2.1.2部件包,使用通用版的部件就可以了。通过串口更新,更新说明,串口,通过串口更新只需要将 WiFi 模块扩展上面的用户 Ur 的串口,也就是 Arduino 里的串口连接到 PC,再根据部件压缩包里面的更新说明进行更新即可,或者通过 JLINK 更新,更新说明,JLINK 将板上的接口与 JLINK 相连,然后根据 JLINK 的更新说明来做相应操作。
十一、课程所需要的硬件
硬件版 |
说明 |
NUCLEO-L4R5ZI |
搭载 STM32L 4R 的主控底板,可通过 Arduino 接口外接其他功能扩展板;板载 STLINK 调试烧录器,支持USB 供电 |
X-NUCLEO-IKS01A2 |
搭载多种环境传感器(温湿度、压力)和运动传感器(加速度、陀螺仪)的传感器扩展板,具备 Arduino 接口 |
EXT-AT3080 |
搭载 Wifi 模块和天线的连接扩展板,具备 Arduino 接口 |