一、嵌入式系统开发的资源

本文介绍了在嵌入式系统开发过程中评估板、开发板以及实时操作系统的选择要点。文章还提及了扩充板和模块系统,这些工具能够提升开发效率和扩充功能。文章重点讨论了实时操作系统的选择要素,介绍了两个热门的实时操作系统:Zephyr和FreeRTOS,并比较了它们的优缺点。

当您确定了嵌入式系统的指令集架构之后,便可以开始选择与该指令集架构相对应的评估板、开发板,并选择合适的实时操作系统(RTOS)来展开系统的开发工作。本文将为您介绍评估板、开发板与实时操作系统的特性与选择的考虑要素。

加快新产品开发速度的评估板与开发板

在展开任何新产品的开发时,工程师会先开始思考系统的原型制作、功能改进和生产设计等阶段,为了帮助设计师完成此设计过程,便有一系列可供实验、开发和生产使用的电路板,来协助工程师进行开发工作。

电子产品设计中的评估板(Evaluation Board)和开发板(Development Board)是两个常见的工具,用于协助工程师评估和开发新的电子产品。此外,还有扩充板与模块系统(SoM)可用于提升开发的效率与扩充功能。

在电子产品设计的过程中,评估板和开发板可以一起使用,评估板用于快速评估硬件性能,而开发板则用于进行软件开发和集成,这样的组合有助于加快产品上市的速度,同时提高总体设计的可靠性和效能。

评估板

评估板是用于进行第一个原型或进行实验时采用的电路板,是供工程师评估特定芯片或器件性能的硬件平台,评估板上会有重点关注的相关芯片的基本电路,以及具有形成可执行电路所需的最少数量器件。

工程师可以使用评估板来快速评估目标器件的性能、测试其功能,并了解如何集成这些器件到最终的电子产品中其设计虽然简单,但它们的面积通常会较大,可以提供空间来划分芯片的每条线路,从而使设计人员能够准确挑选启用或连接的电路。评估板通常提供了一个友好的接口,以方便工程师进行实验和评估。

Sparkfun开发板

开发板

开发板是用于原型开发和软件编写的硬件平台,通常会将正在试验的芯片与所有外部通信线路断开,以便于存取可用的接口和程序选项。电源由板上稳压器或其他功率器件控制,使开发人员能够专注于试验核心芯片功能,而不是其他的支持电路。开发板通常包含目标处理器、内存、端口和其他必要的硬件,使开发人员能够进行软件开发、测试和调试。

最受欢迎的开发板系列通常在制造商或产品线之间具有一定的交互兼容性,以便扩充板可以在多个设备上重复使用。Arduino系列就是这样的例子,其插头/插座的排列规范,已经成为许多开发板的标准。

Arduino开发板

扩充板

在大多数情况下,为了轻松集成传感器、显示器、电机驱动器或其他芯片,大多数制造商已经将外部芯片和所需器件放置在兼容的即插即用板上,称为扩充板。扩充板可以简单地安装在开发板的顶部,并提供可供下载的开发环境软件库。

Microchip的模块系统

模块系统

除了评估板与开发板之外,还有一种模块系统(SoM)是用于将项目从工作台转移到生产线的最后一步。SoM是电路板最重要的部分,被压缩到尽可能小的空间中,将可非常方便的直接集成到应用电路板上。

通常,SoM的占地面积非常小,最大的总体面积通常只有几平方英寸,并由表面贴装器件制成,大多数SoM都有一个开发平台,将SoM直接放置在分线板上,以供大规模使用和实验。

可以按需求选择的多样化扩充板

扩充板用于扩充系统的功能,通常这些扩充板会有一个系列名称或主题功能来将它们与主板联系起来,这里列出一些最受欢迎的开发板系列和扩充板的一小部分清单。

Arduino 是一个开源电子原型平台,用于简化硬件和软件的原型开发。其扩充板有常规UNO R3格式或更大的MEGA R3格式,Arduino R3电路板布局已成为事实上的标准,许多公司和第三方制造商都使用相同的标准格式来生产电路板。

Beaglebone是一款由德州仪器与DigiKey和Newark element14合作生产的低能耗开源的单片机(Single Board Computer, SBC)。它也是为运行开源软件而构建的一个系统,其主板是以开源硬件/软件能力为导向而设计。

Raspberry Pi 是一种廉价、小型、高性能的单片机,由英国的Raspberry Pi基金会开发。其HAT(Hardware Attached on Top)这个实体扩充模块可能有较旧的26引脚变体或较新的40引脚变体。pHAT(部分式HAT)是一种变体,旨在匹配Raspberry Pi Zero和Zero W板的形式。

Feather 是Adafruit Feather开发的一个开源硬件平台,用于制作轻量、小型的嵌入式系统和可积木化的电子原型。其开发板系统的附加板和扩展板,允许添加原型、传感和电机控制、有线和无线连接选项、音频和显示,旨在提供灵活、可扩展和易于使用的解决方案。

STM32 Nucleo 是由 STMicroelectronics推出的一个开发板平台,旨在简化STM32微控制器的原型开发和应用开发。这些扩充板允许为基本STM32 Nucleo板新增附加功能,可以添加的功能包括传感、控制、连接、电源和音频。

MikroE 的Click板(mikroBUS™ Click™)是MikroE的扩充板系列,具有超过1000种不同的选项,在添加传感器、通信、显示和数据存储时,可提供无可比拟的设计选择和速度。为了节省电路板更多空间,MikroE Shuttle 和Click Ribbon电缆系统允许将最多四个不同的Click板添加到相同数据总线上。

MicroMod 是一个由SparkFun Electronics推出的模块化嵌入式平台,旨在简化和加速嵌入式系统的原型开发,其中核心模块包含主要的处理器和基本外设,而功能扩展模块(Carrier Boards)则提供了额外的外设和连接选项,包含处理器、通信和传感器均可轻易的连接。

DigiKey的扩充板会根据功能进行分类,您通常可以在 附件(开发板、套件、编程器)以及评估板、扩充板、子卡 中找到这些电路板。具有无线通信功能的扩充板也可以在射频评估和开发工具包、电路板页面中找到。

NL-AB-BBCL扩充板                                 PRUCAPE扩充板                     103030035扩充板

实时操作系统满足计算资源有限系统的需求

实时操作系统(RTOS)是一种小型轻量级操作系统,通常设计为在计算资源有限的小型嵌入式系统上运行,是专门设计用于满足实时系统要求的操作系统。RTOS对任务的响应时间非常敏感,需要在规定的时间内完成任务的处理,因此RTOS被广泛应用于需要高度可靠性和确定性的领域,如航空航天、医疗设备、工业控制、汽车电子系统等。

RTOS注重任务的实时性,确保任务在规定的时间内完成,并要求能够提供任务执行的可预测性,即任务完成的时间可以在一定范围内被预测。RTOS使用一种特殊的调度算法,确保高优先级的任务能够在规定的时间内得到执行。由于实时系统需要对外部事件作出快速响应,RTOS通常具有高效率的中断处理机制

RTOS会提供有效的资源管理机制,确保各个任务能够按照优先级和时间要求存取系统资源,包括共享内存、设备存取等。由于实时系统通常应用于嵌入式系统和资源受限的环境,因此RTOS通常具有可裁剪性,可以根据应用需求进行精简。

一些知名的RTOS包括FreeRTOS、Zephyr、VxWorks、RTOS-32、QNX等。选择适当的RTOS取决于具体应用的需求,例如实时性要求、系统资源限制、开发成本、系统的复杂性,以及可用的硬件资源等。

免费开源的Zephyr与FreeRTOS实时操作系统

Zephyr与 FreeRTOS 是目前最热门的RTOS选择,两者均是完全开源的系统,专为嵌入式系统和物联网(IoT)设备所设计。Zephyr是由Linux基金会所支持,采用Apache License 2.0许可,FreeRTOS则是采用MIT许可,这使得开发者可以免费获取、自由查看、修改和分发原始码。Zephyr与FreeRTOS均支持多种处理器架构,Zephyr支持ARM、x86、RISC-V等,FreeRTOS则支持ARM、MIPS、RISC-V等,使其可以在不同的硬件平台上运行,适用于各种不同类型的嵌入式系统和IoT设备。

相较之下,Zephyr RTOS支持较为完整的网络协议栈,内置了完整的TCP/IP网络协议栈,是方便实现网络连接的嵌入式系统。Zephyr注重安全性,提供了安全相关的特性,如TrustZone支持、加密库等,满足对物联网设备的安全需求,并提供了丰富的外设和驱动支持,包括传感器、通信总线等,使其更容易与各种硬件和外设设备集成。

不过由于Zephyr RTOS的功能较为丰富,Zephyr可能对初学者具有一定难度的学习曲线,且相较于一些轻量级RTOS,Zephyr的内核可能相对较大,可能不适用于资源极为有限的系统。

相关的Zephyr实时操作系统包括SparkFun WRL-17354、NXP MIMXRT1060-EVKB、Nordic半导体THINGY53、Raspberry Pi SC0915,Zephyr RTOS相容板的完整列表:https://docs.zephyrproject.org/latest/boards/index.html

FreeRTOS的设计注重轻量级,适用于资源受限的嵌入式系统,具有较小的存储空间和内存占用。FreeRTOS拥有广泛的硬件支持,可以运行在多种处理器架构上,使其在不同的硬件平台上具有通用性。FreeRTOS拥有庞大的群落支持,丰富的文件、示例程序代码和论坛资源,使得开发者能够轻松入手并解决问题。

不过,相对于Zephyr,FreeRTOS的网络支持相对较为有限,可能需要额外的工作来实现复杂的网络连接,且对于一些对功能要求较为复杂的应用,FreeRTOS可能在一些高级功能上不如一些更为全面的RTOS。

相关的FreeRTOS还包括STMicroelectronics NUCLEO-L476RG、Microchip Technology DM320003-3、Infineon KITXMC13BOOT001TOBO1,完整的FreeRTOS兼容产品线列表:https://www.freertos.org/RTOS_ports.html

选择使用Zephyr还是FreeRTOS取决于具体的应用需求、硬件平台以及开发者的经验和偏好。如果对网络支持、安全性和多架构支持有较高要求,Zephyr可能是更好的选择。如果注重轻量级、广泛硬件支持和简单的学习曲线,FreeRTOS可能更适合一些资源有限的应用。

实时操作系统

优点

缺点

选择建议

Zephyr

多架构支持,具有完整的网络协议栈,提供安全性功能与外设和驱动支持。

学习曲线较陡峭,具有相对较大的内核。

适合对网络支持、安全性和多架构支持有较高要求的应用。

FreeRTOS

轻量级内核,具有广泛的硬件支持和成熟的群落和生态系统。

网络支持较为有限,相对简化的功能。

轻量级与较轻易的学习曲线,适合一些资源有限的应用。

结语

嵌入式系统与微控制器的开发过程中需要通过评估板、开发板的协助来加快产品的开发速度,选择合适的实时操作系统也是系统开发过程的要素。DigiKey提供了多种评估板与开发板供客户选择,并提供实时操作系统的支持,设计师可以到DigiKey的应用与技术网页参考更详细的信息,若有更多需求,也可与DigiKey联系以获得更多详细的信息。

二、单端、推挽、桥式拓扑结构变压器对比

单端正激式

    单端:通过一只开关器件单向驱动脉冲变压器。

    正激:脉冲变压器的原/付边相位关系,确保在开关管导通,驱动脉冲变压器原边时,变压器付边同时对负载供电。

   该电路的最大问题是:开关管T交替工作于通/断两种状态,当开关管关断时,脉冲变压器处于“空载”状态,其中储存的磁能将被积累到下一个周期,直至电感器饱和,使开关器件烧毁。图中的D3与N3构成的磁通复位电路,提供了泄放多余磁能的渠道。

单端反激式

    反激式电路与正激式电路相反,脉冲变压器的原/付边相位关系,确保当开关管导通,驱动脉冲变压器原边时,变压器付边不对负载供电,即原/付边交错通断。

    脉冲变压器磁能被积累的问题容易解决,但是,由于变压器存在漏感,将在原边形成电压尖峰,可能击穿开关器件,需要设置电压钳位电路予以保护D3、N3构成的回路。

    从电路原理图上看,反激式与正激式很相象,表面上只是变压器同名端的区别,但电路的工作方式不同,D3、N3的作用也不同。

推挽(变压器中心抽头)式

    这种电路结构的特点是:对称性结构,脉冲变压器原边是两个对称线圈,两只开关管接成对称关系,轮流通断,工作过程类似于线性放大电路中的乙类推挽功率放大器。

   主要优点:高频变压器磁芯利用率高(与单端电路相比)、电源电压利用率高(与后面要叙述的半桥电路相比)、输出功率大、两管基极均为低电平,驱动电路简单。

    主要缺点:变压器绕组利用率低、对开关管的耐压要求比较高(至少是电源电压的两倍)。

全桥式

    这种电路结构的特点是:由四只相同的开关管接成电桥结构驱动脉冲变压器原边。

图中T1、T4为一对,由同一组信号驱动,同时导通/关端;T2、T3为另一对,由另一组信号驱动,同时导通/关端。两对开关管轮流通/断,在变压器原边线圈中形成正/负交变的脉冲电流。

    主要优点:与推挽结构相比,原边绕组减少了一半,开关管耐压降低一半。

    主要缺点:使用的开关管数量多,且要求参数一致性好,驱动电路复杂,实现同步比较困难。这种电路结构通常使用在1KW以上超大功率开关电源电路中。

半桥式

    电路的结构类似于全桥式,只是把其中的两只开关管(T3、T4)换成了两只等值大电容C1、C2。

 主要优点:

  • 具有一定的抗不平衡能力,对电路对称性要求不很严格

  • 适应的功率范围较大,从几十瓦到千瓦都可以

  • 开关管耐压要求较低

  • 电路成本比全桥电路低

    这种电路常常被用于各种非稳压输出的DC变换器,如电子荧光灯驱动电路中。

三、MCU厂商,都在重视IDE

看到这个我竟然emo了~~  为什么都在用eclipse呢.... 纳闷

国产MCU经历几年的大洗牌,格局基本稳定下来,很多厂商已经发力从兼容逐渐拓展自己的版图,IDE(Integrated Development Environment,集成开发环境)就是其中一环。

最近,工程师发现雅特力搞了个IDE。可以说,对于MCU厂商而言,IDE似乎又是一个发力点。那么,国产的IDE到底怎么样,现在IDE的格局又如何?(原帖地址:https://www.eeworld.com.cn/aLCSanH)

IDE的三种类型 

所谓IDE,正如其名,其中囊括了编辑器、编译器、调试器和图形用户界面等工具,是一个集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套件。IDE主要分成三种类型。

第一种是通用IDE,也被称作是第三方IDE。顾名思义支持STM32、PIC32、GD32等各种不同厂家MCU的IDE,主要包括Keil、IAR、Embedded Studio、Arm Development Studio、Mbed Studio、QT Creator、CrossWorks、Embeetle、RT-Thread Studio、TASKING、Arduino IDE等。

通用IDE通常支持各种厂商的各种架构的MCU,也会与MCU不断加强合作,以支持更多MCU。

举几个常见IDE来说,Arm官方推出的Keil是大部分工程师接触最多的IDE。根据内核它分为MDK(微控制器开发工具套件)、C51、C166、C251,其中MDK分为社区版和商用版,Keil简单易用、功能强大,编译速度在大型项目上具备优势,编出来的代码大小较小且运行更为安全,而且官方出品兼容性最好,备受开发者青睐。

IAR Systems开发的IAR Embedded Workbench则支持多种单片机芯片和处理器架构,如Arm、RISC-V、Renesas MCU、STM MCU、NXP MCU、Microchip MCU、TI MSP430、Nuvoton。老工程师比较喜欢用它,在很多benchmark跑分测试中同颗芯片的运行结果效率都更高一些,编译的代码也比Keil占用内存空间更小一些。

Segger开发的Embedded Studio也支持Arm和RISC-V架构,合作厂商包括兆易创新、先楫半导体、NORDIC、芯驰等。该工具具有类似Visual Studio的外观,比较直观简单。

Qt Creator是跨平台的集成开发环境(IDE),专为最大限度地提高开发者的工作效率而定制。同时还支持在编程过程中使用GitHub Copilot等编码助手。

RT-Thread Studio是一站式的RT-Thread开发工具,主要推荐使用RT-Thread这款RTOS。主要包括工程创建和管理,代码编辑,SDK管理,RT-Thread配置,构建配置,调试配置,程序下载和调试等功能,结合图形化配置系统以及软件包和组件资源,减少重复工作,提高开发效率。

第二种是专用IDE。就是厂商针对自己旗下产品推出的IDE,基本上MCU厂商都会推出自己配套的IDE,同时不断在此基础上不断扩展工具链。主要包括STM32CubeIDE、MCUXpresso IDE、Code Composer Studio、e² studio、AURIX Development Studio、MPLAB IDE等。

这些IDE都针对自家MCU进行了全面的优化,能够发挥出MCU最大性能,也会与上面通用IDE的IAR、Segger进行合作,将功能全部集成到一起。

更重要的是,这些工具一般都是免费的,在用厂商的MCU时候一般都不用再申请License。可以说,这既算是MCU厂商对于自己产品的一种推广,也算是一种售后。

第三种是搭建IDE,也就是说工程师自己根据免费开源的工具搭建的IDE。主要组成包括Eclipse、VS Code、GCC等,因为需要一定基础,而且搭建出来的效果可能不如现成的产品,属于发烧友和个人习惯的一种选择。

VS Code可以说是最受欢迎的开发环境,无需多言。GCC拥有开源、免费、资料多等优势,更重要的是可以跨平台。尽管使用GCC对编译后造成的不良后果负全责,比如编译后代码量庞大,程序跑飞致使板级器件烧毁,系统死机崩溃导致关键数据丢失之类情况。

Eclipse则是很多个人开发者和小型企业的选择,如NXP、ST、TI的专用IDE,多数也开源基础上开发的,相当于IDE界的安卓。不过,虽然它很强大,但是搭建开发环境比较麻烦,开发环境也是看MCU是否支持,所以MCU厂商针对自己MCU做的IDE会更好用一些

 国外IDE已经很成熟 

IDE想要做好其实很费时间、人力和资金。国外的MCU厂商基本都有自己的IDE,这些IDE已经经历了很多年的迭代,同时也有很多与其它软件厂商的合作。以下列举几个最常见的国外IDE:

STM32CubeIDE是ST推出的官方IDE工具,适用于追求完整、免费STM32开发环境的用户,同时也适用已经拥有IDE(包括Keil、IAR)的用户,可以在其中轻松集成各种组件。有了它,开发STM32的MCU和MPU基本和“开挂”一样。

它基于 Eclipse/CDT框架和GCC工具链进行开发,并基于GDB进行调试,允许集成数百个插件,以完善了Eclipse IDE功能。

MCUXpresso IDE是NXP推出的官方IDE工具,适用于基于Cortex-M内核的恩智浦MCU,包括通用、跨界和无线MCU。MCUXpresso IDE提供高级编辑、编译和调试功能,增加了MCU专用的调试视图、代码跟踪和分析、多核调试和集成配置工具。

MCUXpresso IDE调试连接采用来自恩智浦、P&E Micro和SEGGER优化的开源和商用硬件调试器,支持Freedom、塔式系统、LPCXpresso、基于i.MX RT的EVK,以及定制开发板。

Code Composer Studio是TI推出的官方IDE工具,包含一整套用于开发和调试嵌入式应用的工具。

它将Eclipse和Theia框架的优势与TI先进的功能相结合,提供了一种功能丰富的优异开发环境。基于云的Code Composer Studio无需下载和安装大量软件即可在云中进行开发。

e² studio是瑞萨推出的官方IDE工具,它是面向瑞萨电子MCU的基于Eclipse的集成开发环境 (IDE),有点类似Keil MDK和STM32CubeIDE,可以图形化配置,只需要点点即可生成工程,是快速入门瑞萨的捷径。

除了Eclipse自身强大的代码编辑器外,e² studio还提供了丰富的扩展功能。E² Studio涵盖了从下载示例代码到调试的所有开发过程。

AURIX Development Studio是英飞凌2019年推出的官方IDE工具,支持英飞凌TriCore内核AURIX系列MCU,包括Eclipse IDE、C编译器、多核调试器、英飞凌低级驱动程序 (iLLD),它没有时间和代码大小限制,可以编辑、编译和调试应用程序代码。

MPLAB X IDE是Microchip推出的官方IDE工具,是一款可扩展、高度可配置的软件程序,集成了强大的工具,可帮助发现、配置、开发、调试和鉴定我们大多数微控制器和数字信号控制器的嵌入式设计。

MPLAB X IDE可与MPLAB软件和工具开发生态系统无缝协作,其中许多软件和工具是完全免费的。

国内正在加强IDE布局 

一颗MCU芯片,想要更好地开发,必然就要有更好的工具。国内MCU厂商也早已注意到这一点,并且逐步推出相关产品。

AT32 MCU是雅特力2022年左右推出的官方IDE工具,从系统开发阶段至量产烧录,及后续的硬件更新,都提供了全面性支持。通过易用的软硬件工具,提升设计人员开发体验和便利,降低入门使用门坎,并减少重复设置工作,加速开发效率。

雅特力AT32 IDE为跨平台ARM嵌入式系统的软件开发环境。包含一系列Eclipse插件和工具,使用者可在AT32 IDE开发环境下进行创建、建置和调试AT32 MCU。

MounRiver Studio(山河)是沁恒的官方推荐的IDE工具,名字取自“天圆地方,山河相依”。它基于Eclipse GNU版本开发,在保留原平台强大代码编辑功能、便捷组件框架的同时,针对嵌入式C /C++开发,进行了一系列界面、功能、操作方面的修改与优化,以及工具链的指令增添、定制工作。力求打造一款硬件工程师喜爱的、以RISC-V内核为主的嵌入式集成开发环境。

官网显示,MounRiver工作室由一群怀揣共同目标的“奋斗者”们组成:他们中有经验丰富的工具链开发工程师、有钻研插件开发的软件工程师、也有深谙嵌入式行业的需求分析、项目策划工程师……专注,是他们不变的名片;专业,是他们不懈的追求。

CSU-IDE是芯海推出的官方IDE工具,目前为5.0版本,该版本替换了CSU-IDE V4.0中的编译器、汇编器、链接器、调试器、以及新增lib制作工具,增强了IDE编译和调试过程的稳定性和准确性。

它支持芯海的混合信号处理器CSU系列产品的开发,并支持CSU C和ASM 编程语言。CSU-IDE V5.0 提供了强大的工程管理、编辑、设置、查找以及调试等功能,以及更加友好的界面。

除了自研IDE,国产厂商也正在不断加强与第三方IDE公司合作。其中,兆易创新的合作动作就非常多:

  • 2019年,卡姆派乐发布了国内首款自研RISC-V集成开发环境卡姆派乐IDE(COMPILER IDE),全面支持GD32V系列RISC-V MCU,同年继续加强在Arm开发领域的合作关系,2023年继续支持昭兆易创新车规级MCU和M7内核MCU;

  • 2020年,IAR Systems为兆易创新基于RISC-V内核的MCU产品提供性能强大的开发工具;

  • 2021年,比利时初创公司Embeetle与兆易创新联合推出IDE;

  • 2022年,兆易创新与Ashling旗下的RiscFree™工具链全面适配,包含集成开发环境(IDE)和软件开发支持。

 国产IDE,工程师怎么看 

事实上,对于国产IDE,工程师的意见并不统一。

有工程师指出,目前,现在几乎所有的编程语言及其工具链,主流的工业操作系统都是开放源码,所以其实本身就是自主可控的。所以做自主IDE更多还是为了提升自己MCU的开发体验和性能,这是好事,但也是一个很需要投入的事。

也有工程师认为,IDE本身比较复杂,做IDE不好赚钱,不能靠软件的销售实现开发和赚钱的正反馈,所以导致“做不如买,买不如租”,在软件方面似乎一直国内都有点落后。

有工程师指出,不赚钱的IDE是不存在的,但是小团队做不起,开发周期太长,大团队不屑于做,因为来钱慢。IDE算是一种企业工具,他们往往不喜欢做这种可以让对手可以受益的事,这算一种特色。

总之,一个好的IDE,才能让MCU产品拥有更好的开发体验,无论是从第三方支持,还是自我开发,最终目标一定是更好的工程师体验。

-------

mcu   ~~~ 天皓智联 whaosoft aiot http://143ai.com

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐