当前位置:首页 > 物联网 > 物联网技术文库
[导读] 8048的面世标志着控制专用CPU MCU(Microcontroller Unit)的延生,而作为互联网基石的PC,其CPU8088却是在3年以后的1979年才出现。自1979年以后,PC的C

8048的面世标志着控制专用CPU MCU(Microcontroller Unit)的延生,而作为互联网基石的PC,其CPU8088却是在3年以后的1979年才出现。自1979年以后,PC的CPU从16位、4.77MHz时钟、单核发展到了今天的64位、常见的3GHz时钟和多核。而比PC的CPU历史悠久的MCU,其字节停止在32位已有10多年了。相对于芯片,MCU软件技术进展更慢,在PC机软件开发已由工厂化发展到全社会协同的今天,MCU软件技术仍停留在单打独斗的个人英雄时代。

尽管MCU的应用领域和市场规模都要比PC大得多,其MCU软件技术进展仍然十分缓慢,其中原因包括应用领域的碎片化导致公有技术抽象困难,开发力量难以聚焦。软件技术进展缓慢直接影响MCU芯片技术的发展,芯片的性能又反过来阻碍软件技术的发展。随着物联网(IOT)在人们生活中的渗透,高性能MPU的价格已下降接近MCU的价格区间,互联网软件技术不断向MCU领域浸入,加速MCU软件技术发展的时机已到来。

由无规则向OOA及OOD转化

MCU软件的前期分析设计将由无规则向OOA及OOD转化。传统的MCU软件开发,其分析设计和实施通常是由封闭的团队,甚至一个人独立完成。尽管团队内部成员理念一致、配合默契,项目实施敏捷。但整个开发过程都在同一团队进行,几乎不涉及团队外的协同开发,因此分析设计简陋,甚至只停留在口头上。随着IOT时代的到来,其封闭单一的团队难以适应今天的发展,团队外的协同是MCU软件开发的必然趋势,但前期分析设计的不足,会使问题变得更复杂。

将PC软件开发成熟的方法论引入MCU软件领域,则是促进MCU软件技术发展的捷径。OOA(Object OrientedAnalyzing)和OOD(Object Oriented Design)是系统工程理论在PC软件技术中的体现,它们是支撑软件技术工厂化和社会化的重要理论基础。OOA及其OOD通过对应用进行分层、分类抽象处理,将部分层与类从应用中剥离出来,从而使协同者不需要了解应用就能进行软件开发。从1997年开始,作者以系统工程理论为基础开始探索OOA及OOD在MCU软件开发中的应用,并于2005年将初步成果应用于继电保护装置开发。其方法是将继电保护装置分层分类封装在4个不同的MCU之中,在不具备独立开发继电保护装置的团队中实施,其开发时间和开发投入远低于当时同行业经验丰富的开发团队。该系列继电保护装置已经应用10多年了,不仅维护升级方便,而且至今竞争力不减。

编程方法由FP向OOP融合

编程方法由FP向OOP融合是另一个发展趋势。在编程方法上,FP(FuncTIonal programming)与OOP(Object Oriented Programming)之间的战争从来没有停止过。作者认为脱离应用背景,讨论FP与OOP是毫无意义的,因为FP强调的是精英技术,它是开发人员的综合个人能力的体现,是一门精致而美的艺术,艺术的特点就是难以复制;OOP则是实施软件开发工厂化与社会化的一门技术,其不足在于CPU及其资源利用率低,但高速发展的芯片产业弥补了它的不足。MCU软件技术是FP的代表者之一,但它实在是无奈之举。因为直到2000年,主流MCU还停止8位、256Byte内部RAM和12MHz的时钟,在这样低的资源下进行软件开发,不仅仅是FP编程方法,更有C与汇编的交融,它已超越技术,升华为一门艺术。

2000年以后,OOP己成为PC软件开发的主流技术,现在主流MCU内核ARM cortexM3/M4与2000年时PC的资源配置接近,在MCU软件开发中实施OOP的条件已具备。PC软件开发成功的经验证明:实施OOP,是降低软件研发的门槛,是将软件开发从精英模式走向工厂化和社会化的有效措施。同时也是解决软件开发人员短缺的唯一手段。作者于两年前通过对OOP编程语言JAVA的归零学习,已感悟OOP之真谛。然后亲自编程将OOP技术应用于MCU软件开发中,并向同行、同事介绍OOP在MCU软件开发中的体会,让目前的MCU软件开发人员拓展思路,使他们从封闭的思维方式中解脱出来,走向社会化,其效果也是非常明显的。

软件开发的分离与成熟

中间件成熟,推动驱动软件与应用软件开发分离。过去因MCU性能和资源的限制,MCU软件开发与硬件开发是密不可分的,驱动软件是联接MCU硬件与软件之间的桥梁,它是MCU开发最重要的环节。因为驱动软件涉及软件和硬件技术,要求开发人员同时具备硬件和软件知识,所以驱动软件开发是MCU开发中最难的一个环节,它是MCU开发的主要成本。

2010年与ARM cortex M系列MCU先后出现的还有CMSIS(Cortex Microcontroller Software InterfaceStandard)。CMSIS是ARM公司制定的ARM Cortex-M系列MCU软件接口标准,它将MCU外设与软件无关抽象化。自此,MCU驱动软件由MCU制造商或MCU开发软件商提供,从而降低了MCU开发的难度,提高了MCU软件的重用性。

Ethernet、WiFi和Bluetooth是主要通信标准。作为IOT前端的MCU也必需具备信息交互功能。Ethernet、WiFi和Bluetooth等协议软件经过多年发展,已成熟、规范和专业,作为MCU的公有技术把它们植入到MCU软件之中是十分必要的。将它们封装成中间件,MCU软件开发时,在硬件的支持下只需要将这些中间件集成到MCU软件之中就能使MCU与互联网实现灵活的信息交互。例如ucTCPIP、CMX-TCP/IP、IwIP等是MCU软件开发常用的Ethernet中间件。在MCU开发时,不需要了解TCP/IP的细节,仅需将这些中间件集成到MCU软件中就能实现Ethernet功能。目前除了上述互联网信息功能外,还有大量的其他中间件,如MCU图形中间件emWin、USB中间件ecc-USB等。同时,MCU软件开发主流平台KEIL将自己的和第三方提供的中间件集成在同一开发平台上。MCU软件开发时,只需要将这些中间件集成到自己的软件中,就可实现相应的功能。

总之,MCU中间件的广泛应用,标志作MCU软件开发由封闭走向开放。在原生市场本来就广阔的MCU应用领域,借助IOT的推动,MCU软件技术必将迎来新的发展浪潮。作为经历了电子管时代,并且电路设计和代码编写己成为人生一大爱好的作者,将激情满怀地迎接MCU软件技术的又一次变革。

【相关推荐文章】华为正在力挺的NB-IoT是什么鬼!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭