你的mcu价格涨了,这还不是最坏的结果。在过去的20年里,芯片的价格上涨基本会在半年后有所缓解。今年不一样。快到年底了。没有迹象表明明年何时恢复供应。许多企业损失惨重。
现在的情况是,很多型号的单片机,原厂直接告诉你一个字“断货”,有钱也买不到。资本也是逐利的,唯一的产能肯定会转移到更赚钱的芯片上。可以买一些替换芯片,虽然不完全兼容,但是功能上可以100%替换,切换平台基本相当于重新开发测试。
利空消息越来越多,市场传言不一。改装后的mcu产品已经成为企业最大的危机。不仅无法有工作人员开发新产品,而且很有可能原产品的软件工程师已经离职。那么如何才能迭代维护升级呢?老板想哭没人管,危机却让人更懂得珍惜人才。从某种意义上说,关键是创始人能否从危机中看到未来的机会。
这次大荒的教训让很多创始人意识到了供应链的重要性,深刻体会到了一个简单的道理,如何让代码高度复用?这是降低开发成本、快速应对危机的最有效的软件开发管理策略。虽然看起来都是软件,但是开发嵌入式软件和开发计算机软件还是有巨大的区别。尽管IT技术飞速发展了30多年,软件开发技术取得了长足的进步,但是电子领域的专家和计算机软件专家仍然没有很好的跨界融合,导致企业普遍缺乏科学的软件工程技术管理方法。软件不仅难以复用,而且难以扩展和维护,开发成本长期居高不下。
从软件开发的角度来看,软件工程和计算机科学(从电子技术的角度来看,可以归为嵌入式计算机科学)是完全不同的知识领域。主要区别在于人,因为软件开发是一个以人为中心的过程。如果考虑到人的因素,软件工程比计算机科学更接近经济学,所以不改变思维方式很难开发出销售成本低的好产品。那么如何才能实现软件的高复用呢?其实计算的本质和共性是数据流,明显是数据存储和数据传输……所以我们可以把各类软件按照分类抽象成节点(代码块),通过AWFlow Design Designer实现拖拽式编程。如下图所示,程序块之间的通信就像一条输水管道,各个程序块之间的关系一目了然。尤其是虚拟设备接口,不再是单个设备的业务逻辑软件开发,而是设备之间的软件开发,整个系统和网络的软件开发,真正实现事物之间的流程开发。节点的连接软件,通常称为业务逻辑软件,可以使用广州致远电子定义的fscript进行编程,更方便的是使用AWBlock block图形卡盒设计器,像儿童编程软件Google的Blockly和微软的MakeCode。AWBlock是广州致远电子用C语言设计的软件设计器,可以直接运行在各种mcu上,所以AWBlock的开发方式结束了用户需求的千变万化。
说实话,节点和组件的资源再丰富,也不可能满足所有的应用场景和用户需求,必然会有定制化的内容。无休止地花费RD资源来定制开发成本是不现实的。但是二次开发都是用户自己进行的,不管是底层的C/C++开发,还是Lua,JS,Python等。通过脚本语言,甚至是业务承包,只保留行业相关的配置,比如AT命令,运动控制命令。学习这些知识总是有门槛的,需要很强的专业背景。AWBlock拼图软件开发,在不了解相关软件知识的情况下,开发者自然可以通过AWBlock描述自己想要表达的内容和想法。当所有这些软件整合在一起时,它就是EsDA嵌入式软件设计自动化工具,它还包括AWorksLP(或Linux等操作系统)、AWTK图形用户界面和ZWS PaaS物联网云服务。EsDA可以使应用框架非常清晰,彻底解决块间通信容易混淆的现象,也解决了状态机复杂的状态管理和事件处理。下面的示例流程图实现了Modbus-RTU和MQTT之间的一个协议转换应用,主要分为两个数据流。Modbus至MQTT
Modbus _ master _ poll:Modbus _ master _ poll:Modbus节点,运行Modbus主堆栈功能,可以添加多个目标从设备,以及每个从设备需要轮询和读取的寄存器。根据配置参数,节点会定期读取托管从机寄存器值,并将它们发送到fscript处理节点。script: script节点,将modbus寄存器数据转换为MQTT数据,用于定制边缘计算(相关计算和数据封装)。MQTT _ OUT: MQTT向节点报告,并将数据上传到用户指定的云服务器。MQTT至Modbus
mqtt _ in:mqtt的下游节点监听并接收云请求,并将请求消息发送给fscript处理节点。脚本:脚本节点将MQTT命令转换成对应Modbus从寄存器值的定制业务逻辑(比如可以组合多个命令触发系统事件等。).Modbus _ master _ out:Modbus _ master _ out的从寄存器修改节点:Modbus负责将上级节点发送的寄存器值写入对应的从设备。Modbus_master_out和modbus_master_poll是本地定义的节点,不在云库中,紫色代表本地加载节点。Aw-flow节点库已经有可用的Modbus主堆栈节点。由于现有的节点设计适用于从设备和寄存器数量固定的情况,当从设备或对应寄存器的数量发生变化时,需要重新拖动相关节点。但在这种应用中,每个从机的从机器件和寄存器数量是可变的,所以当前节点并不合适,需要一个能支持器件和寄存器数量动态变化的节点。基于此,需要将这样的Modbus应用场景重新抽象成一个新的节点,但这个节点与原节点不冲突,适合对应场景的另一种形式,也是通用的Modbus应用节点。它可以在以后被标准化并添加到节点库中。
EsDA的开发始于2006年,自始至终围绕“帮助用户解决非核心领域的问题,让用户专注于自己产品核心领域的算法、行业需求、用户体验、营销、工艺创新、制造”的思路展开,因为所有与底层相关的差异化软件,以及各种通信协议等软件的开发,都是我们的核心领域。
在产品开发中,如果你是一个有很多好主意并热衷于创造的人。但是由于缺乏更专业的软件开发功能,可能一时半会很难写出复杂的软件代码,最终无法将自己的想法变成现实,所以选择EsDA是最好的捷径。回头看看硬件设计中的问题,一个简单的电路器件通常来自几个不同的厂商。焊接到pcb上不仅占用加工时间,而且多个器件组成的电路可靠性非常离散,所以用分立器件设计电路比用模块好。
显然,一旦确定了要求,在几个小时内焊接出原型是很容易的。如果空之间没有限制,可以立即批量制造。我们设计了两种背板,都是8/12扩展槽,一种插电源模块,一种插通信模块。其他扩展槽可以随意插入数字I/O和模拟数据采集模块。需要编程吗?不需要!这是一个独立的边缘计算控制器。边缘计算芯片预置有通用代码,需要的功能可以通过配置实现。第一种方法是烧录功能配置文件,第二种方法是上位机发送命令绑定数据,可以配置成任意功能的控制器,如三路输入,五路输出,两路热电偶温度采集通道,一路4-20mA接口通道,可以实现灵活的硬件设计和任意的电路扩展,大大降低了设计成本。