账号:
密码:
最新动态
产业快讯
CTIMES / 文章 /
STM32开放式开发环境:释放创造力的利器
新型嵌入式应用的开发助力

【作者: 意法半導體】2017年01月04日 星期三

浏览人次:【19432】


五年来,软硬体开发环境变化巨大,市场需要更短的研发周期,STM32开放式开发环境为软硬体开发平台,堆叠式插接电路板整合各种模组化硬体,同时模组化软体覆盖从驱动程式到应用层的全部软体,能将创意快速变成产品原型,顺利转化成最终设计。


市场上涌现各种价格亲民的经济型微控制器,助力新一代开发者创造令人兴奋的新型嵌入式应用。现今的开发工具非常好用,软硬体均呈现模组化趋势,插接安装简单容易,大幅缩短产品设计评估和原型开发周期。 STM32开放式开发环境为软硬体开发平台,堆叠式插接电路板整合各种模组化硬体,同时模组化软体覆盖从驱动程式到应用层的全部软体,?明设计人员将创意快速变成产品原型,顺利转化成最终设计。


STM32开放式开发环境是什么?

STM32开放式开发环境是意法半导体的嵌入式系统原型设计开发环境,以简化嵌入式专案设计为目标,透过开源形式提供全部重要的功能模组,元件包括:


- STM32 Nucleo开发板(STM32微控制器)和STM32 Nucleo扩充板(感测器、通讯介面、马达控制和致动功能),提供尖端商用产品的各种硬体功能。


- STM32Cube软体工具的STM32微控制器软体库和简单易用的软体库配置器(STM32CubeMX )。


- STM32Cube扩充软体库,支援STM32 Nucleo扩充板上的各种元件,包括马达驱动器、低功耗蓝牙模组、MEMS感测器等。


- 功能包:一套采用STM32 Nucleo开发板和STM32Cube软体为一些最常使用之用例开发功能性常式(代码示例)。


- 每个软硬体功能模组都配备描述详尽的技术资讯。


- 活跃且快速发展的线上开发社群


STM32 Nucleo开发板

STM32 Nucleo开发板是STM32开发环境的基础元件,板子搭载一颗ARM Cortex-M32位元处理器内核心的STM32微控制器。 STM32开放式开发环境所用的STM32 Nucleo开发板是64针脚(图1)微控制器。目前STM32 F4和STM32 L0微控制器相容所有的STM32 Nucleo扩充板和扩充软体。



图1 : STM32 Nucleo-64开发板
图1 : STM32 Nucleo-64开发板

开发环境使用STM32Cube HAL(硬体抽象层)API的STM32Cube软体库,大幅降低在不同系列的STM32产品(目前有20余款STM32 Nucleo开发板)中移植软体专案所需的程式设计工作量。


STM32 Nucleo-64开发板硬体

产品特性

- 采用LQFP-64封装的STM32微控制器


- 透过38针脚的Morpho连接器可以使用STM32的所有针脚


- 四个Arduino连接器(位置非对称排列,引导用户正确插接Arduino相容扩充板)


- 整合ST-LINK/V2-1调试器/代码烧录器和mini USB埠,无需安装额外的调试工具,板子可直连PC,进行调试和烧写代码操作。此外,USB介面支援虚拟COM埠和大型存放区介面(相容ARM mbed)


- 2个按键(微控制器重定讯号和开发者专用按键)


- 3个LED灯(5V电源、开发者专用、ST-Link调试器状态)


用户可以为板子选用不同的电源:


- 5V USB供电


- 5V外部电源


- 外部电源VIN (7-12V)


STM32 Nucleo开发板上的5V电源还用于驱动以Arduino或morpho连接器连接主机板的扩充板,同时透过板载稳压器为STM32提供3.3V 电源。


STM32 Nucleo开发板功能性极强,板载代码烧写/调试工具非常实用,设计人员可以立即着手开发专案,而无需添置昂贵的开发工具。


基于STM32Cube的嵌入式软体和工具

在选择最适合的STM32 Nucleo开发板后,下一步为下载相关软体库,熟悉STM32技术特性和外部周边。最快捷的入门方式是下载软体库配置器STM32CubeMX。在此工具图形化使用者介面内,用户只要直接选择正在使用的STM32 Nucleo开发板(图2),配置器就会按照板子所连接的硬体设备(例如LED、按键、UART针脚分配)自动配置STM32外部周边。


下一步,可能需要详细配置每个外部周边,例如,设置UART同步/非同步通讯模式、串列传输速率、寄偶校验和停止位。



图2 : STM32CubeMX: 从板子选型到外部周边配置,只需几步简单的操作。
图2 : STM32CubeMX: 从板子选型到外部周边配置,只需几步简单的操作。

最后,STM32CubeMX将生成代码,创建一个完整软体专案,且相容所用代码编译工具链(例如IAR、Keil或Eclipse),同时配置先前在图形化使用者介面内所选的全部硬体和外部周边,并相容所用之代码调试/烧录工具。


这个图形化使用者介面工具让使用者从零开始创建项目,几分钟内完成专案所需的全部配置,然后立即动手创建自己的软体专案,直接在main.c档里写代码。



图3 : STM32Cube软体库的层次
图3 : STM32Cube软体库的层次

所生成的代码位于STM32Cube嵌入式软体之上,STM32Cube有两个主层(图3):


—硬体抽象层:允许上面的软体层(例如,中介软体层)执行各自的功能,而无需开发人员深入了解如何使用微控制器


—中介软体:一整套中介软体组件(RTOS, USB, TCP/IP, …)


软体设计采用模组化方法,用户在专案开发过程中可以随时增加软体模组,轻松地跨系列移植全部专案。


STM32 Nucleo扩充板

为连结STM32 Nucleo扩充板,STM32 Nucleo-64开发板配备两种连接器:


—相容Arduino标准的Arduino连接器(微控制器的32个针脚都在这个连接器上)。


—Morpho 连接器,可以连接STM32微控制器的全部针脚(76个引脚都在这个连接器上)。


STM32 Nucleo扩充板让设计人员犹如搭积木一般,在主机板上插接多种不同功能的子板,创建一个完整的应用系统。目前意法半导体上有20余款扩充板(图4)贩售中,按功能划分,可以分为五类:


—感测:MEMS 9轴运动感测器;压力感测器、环境感测器、接近检测感测器;MEMS麦克风


—连接:低功耗蓝牙、Wi-Fi、NFC和Sub-GHz射频


—马达控制/致动:直流马达驱动器、步进马达驱动器、3相直流无刷马达驱动器


—输入/输出:I/O模组(家庭自动化和工业自动化)


—讯号调节:运算放大器



图4 : 各种型号的STM32 Nucleo扩充板
图4 : 各种型号的STM32 Nucleo扩充板

STM32 Nucleo板的功能扩充方法类似Arduino和Raspberry Pi解决方案,便于设计人员快速开发产品原型。透过这些连结工具,可以将扩充板堆叠插接在主机板上,为系统增添新的功能,唯一不足之处是,堆叠式连结方法受限于微控制器外部周边的使用方式,这个问题的解决方法是,使用I2C和SPI汇流排替代UART等速度慢的资料汇流排,这样可提升同一汇流排上所连结设备的数量。


此外,Arduino连接器不对称排列设计可有效防止STM32 Nucleo扩充板连接方向错误,降低电源连接错误损坏设备的风险。扩充板使用STM32 Nucleo开发板上LDO稳压器,透过板上5V电源生成的3.3V电源,使用者可以使用跳线(JP5),为开发板选择USB 5V电源或外部E5V电源。有些扩充板需要更高的电压,例如,马达驱动器和I/O扩充板,因此,开发板上还增加一个电源连接器,利用外部电源驱动负载,提供更高的电压Vbus(最高45V)。


为安全起见,多数扩充板是为低功率应用设计,50V以下电压在电源极性接反或短路时可以降低板子烧毁之风险,所以适合初学者和学生使用。


这些低功耗的扩充板还可以单独连结高压高功率的马达控制扩充板,但是,我们只建议马达控制专业人士选用这种配置。为了便于区分,我们将高功率STM32 Nucleo扩充板涂成绿色,其余的扩展板皆为蓝色。高功率马达控制扩充板兼具高压高功率扩充板和低压扩充板的双重优点,在马达控制应用中轻松增加资料通讯功能,例如:使用射频技术远端驱动高压马达,或使用低功耗蓝牙,又或Wi-Fi获取马达驱动资讯和远端记录失败资料。


STM32Cube扩充软体

STM32 Nucleo扩充板可以像搭积木一样插接到开发板上,几分钟就能组建一个硬体平台。不过,软体才是设计专案中最耗时的环节,通常占用研发周期70-80%的时间。 STM32Cube将积木式组装方法带到软体设计中。软硬体是STM32开放式开发环境的特性之一,因此,每个STM32Cube扩充套装软体都为使用者提供常式,其中包含各种软体库,例如:马达控制、低功耗蓝牙协议栈或NFC射频处理功能,全部都是开源软体。


STM32Cube扩充套装软体附加的常式十分实用,能够?明设计人员快速熟悉设备软体库。以下面的步进马达驱动软体展示专案为例,使用者可将其中所需功能复制到自己的软体专案:


//----- Init of the Motor control library


/* Start the L6474 library to use 1 device */


/* The L6474 registers are set with the predefined values */


/* from file l6474_target_config.h*/


BSP_MotorControl_Init(BSP_MOTOR_CONTROL_BOARD_ID_L6474, 1);


/* Attach the function MyFlagInterruptHandler (defined below) to the flag interrupt */


BSP_MotorControl_AttachFlagInterrupt(MyFlagInterruptHandler);


/* Attach the function Error_Handler (defined below) to the error Handler*/


BSP_MotorControl_AttachErrorHandler(Error_Handler);


//----- Move of 16000 steps in the FW direction


/* Move device 0 of 16000 steps in the FORWARD direction*/


BSP_MotorControl_Move(0, FORWARD, 16000);


/* Wait for the motor of device 0 ends moving */


BSP_MotorControl_WaitWhileActive(0);


/* Wait for 2 seconds */


HAL_Delay(2000);


//----- Move of 16000 steps in the BW direction


/* Move device 0 of 16000 steps in the BACKWARD direction*/


BSP_MotorControl_Move(0, BACKWARD, 16000);


/* Wait for the motor of device 0 ends moving */


BSP_MotorControl_WaitWhileActive(0);



因为采用STM32Cube软体库的模组化结构,每个扩充板软体模组都可以作为中介软体添加到使用者专案,增加操作可以在专案开发过程中随时进行,也可以新增到已经存在的复杂项目内(图5)。



图5 : STM32 Nucleo扩充板软体库作为中介软体增加到开发专案内
图5 : STM32 Nucleo扩充板软体库作为中介软体增加到开发专案内

功能包软体专案和附加软体库

当需要不只一个功能模组时,最快速的方式是使用功能包软体原始程式码专案,因为这个套装软体将不同的STM32 Nucleo扩充板的软体库整合成一个立即可用的完整项目。例如当STM32 Nucleo开发板连接NFC和低功耗蓝牙(BLE)扩充板时,可以下载功能套装软体,进行BLE与NFC配对。


除STM32开放式开发环境外,意法半导体还提供各种附加软体库(图6),让开发者在其应用专案内能够使用几年年不易实现的先进功能,例如感测器资料整合、运动识别、蓝牙语音、声学波束成形、声音定位等,因为这些软体库使用非常专业的IP技术,所以不提供完整的原始程式码(STM32开放式开发环境软体100%提供原始程式码)。但是,用户可以从意法半导体网站下载相关许可证,然后在几分钟启动软体后,即可正常使用这些软体。



图6 : 在STM32开放式开发环境之上的Open.X 软体库和Open.Framework
图6 : 在STM32开放式开发环境之上的Open.X 软体库和Open.Framework

同样地,开放式功能包也有常式,例如在BLUE MICROSYSTEM 1演示应用(图7)中,STM32F4读取MEMS加速度计/陀螺仪/磁强感测器资料(RAW格式和感测器资料整合演算法输出)、温湿感测器以及压力感测器的资料,通过低功耗蓝牙协定将资料发送到智慧型手机上的应用程式(图8)。只要将所需的程式码片段复制到自己的软体专案内,就可以在不同的应用中反复使用代码。同一个展示应用,假如软体设计人员想要从零开始创建,则需要从查看每个设备资料手册资讯开始,开发和调试可能需要几个月的时间。



图7 : BLUE MICROSYSTEM1 开源功能包展示应用使用了MEMS运动感测器、环境感测器(温度、湿度、压力感测器)和最新的低功耗蓝牙技术。
图7 : BLUE MICROSYSTEM1 开源功能包展示应用使用了MEMS运动感测器、环境感测器(温度、湿度、压力感测器)和最新的低功耗蓝牙技术。

图8 : 当使用蓝牙或低功耗蓝牙的展示板时,可以使用智慧型手机或平板电脑应用查看感测器资料。
图8 : 当使用蓝牙或低功耗蓝牙的展示板时,可以使用智慧型手机或平板电脑应用查看感测器资料。

应用专案范例

当使用STM32 Nucleo扩充板的软体专案示例或现有的开源功能包创建复杂的演示程式和系统时,建立速度快速且容易。下面是一个玩具小汽车的演示范例,3D遥控器通过低功耗蓝牙(图9)控制小汽车运动。基本软硬体模组包括:


STM32 Nucleo玩具小汽车(硬体):NUCLEO-F401RE、X-NUCLEO-IHM02A1(双步进马达驱动器)、X-NUCLEO-IDB04A1(低功耗蓝牙)


STM32 Nucleo玩具小汽车(软体):X-CUBE-SPN2 (步进马达驱动器软体库基础常式)、X-CUBE-BLE1(BLE软体库基础常式)


3D遥控器(硬体):NUCLEO-F401RE、X-NUCLEO-IKS01A1(MEMS感测器)、X-NUCLEO-IDB04A1(低功耗蓝牙)


3D遥控器(软体):BLUEMICROSYSTEM1(透过低功耗蓝牙发送感测器RAW资料和感测器整合资料的功能包)



图9 : STM32 Nucleo玩具小汽车:玩具小汽车展示板和3D遥控器都是采用STM32 Nucleo电路板
图9 : STM32 Nucleo玩具小汽车:玩具小汽车展示板和3D遥控器都是采用STM32 Nucleo电路板

对于穿戴式装置和物联网硬体等应用,评估板的外观尺寸有时候是一个不小的问题。为了满足物联网硬体开发者的需求,意法半导体产品阵容开始增加尺寸极其紧凑的小展示板(图10),板上的元器件与STM32 Nucleo电路板完全相同。这样,在STM32开放式开发环境内开发的软体工程专案可以100%移植到这些小板子上。



图10 : 功能包Blue Micro System1从STM32 Nucleo电路板移植到小评估板(用于物联网和穿戴式装置)
图10 : 功能包Blue Micro System1从STM32 Nucleo电路板移植到小评估板(用于物联网和穿戴式装置)

@中标不仅STM32开放式开发环境,还支援相容STM32 Nucleo的Arduino电路板


STM32 Nucleo扩充板中还有板载Arduino连接器的Arduino Shield 电路板。因为硬体介面相互相容,开发人员可以继续使用以前开发的电路板和设备驱动软体和固件库。在意法半导体官网和其它开源软体工程社群中,有一些Arduino电路板配合STM32 Nucleo扩充板,可直接使用现成项目:典型的Adafruit TFT触控shield板与STM32 Nucleo扩充板相连,STM32CubeF4套装软体会提供该软体专案。


释放使用者的创造力

五年来,软硬体开发环境变化巨大,市场需要更短的研发周期,越来越多的传统消费产品技术(例如:MEMS、NFC、低功耗蓝牙)被用于工业设备。从3D建模到PCB电路图,更完备的工程项目出现在开放原始码软体工程社区(无人机、3D印表机、感测器资料整合、复杂的音讯功能和USB供电等)。


STM32开放式开发环境让开发者的生活更轻松,提供易于定制基本的和复杂的软硬体功能模组。在系统设计内增加一个射频模组,用于遥控设备或传送资料,不再要求开发者有深厚的射频专业背景,只需将STM32 Nucleo扩充板连接到系统,依照系统要求设置软体专案,几分钟即可完成。


STM32开放式开发环境为软硬体开发平台,整合基于尖端商用产品的各种扩充板,模组化软体覆盖从驱动程式到应用层的全部软体,说明设计人员将创意快速变成产品原型,顺利转化成最终设计。


刊头图片(来源: thezoereport.com)


相关文章
智慧家居大步走 Matter实现更好体验与可靠连结
开启边缘智能新时代 ST引领AI开发潮流
模拟工具可预防各种车用情境中的严重问题
低功耗MCU释放物联网潜力 加速智慧家庭成形
车商和一级供应商为连网汽车保护资料安全
comments powered by Disqus
相关讨论
  相关新闻
» 意法半导体突破20奈米技术屏障 提升新一代微控制器成本竞争力
» 意法半导体先进高性能无线微控制器 符合将推出的网路安全保护法规
» ST推先进超低功耗STM32微控制器 布局工业、医疗、智慧量表和消费电子市场
» 意法半导体高性能微控制器加速智慧家庭和工业系统开发应用
» 意法半导体公告2024年股东大会决议提案


刊登廣告 新聞信箱 读者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 远播信息股份有限公司版权所有 Powered by O3  v3.20.1.HK83T2HG45GSTACUKX
地址:台北数位产业园区(digiBlock Taipei) 103台北市大同区承德路三段287-2号A栋204室
电话 (02)2585-5526 #0 转接至总机 /  E-Mail: webmaster@ctimes.com.tw