Filter
0 Selected Content Type 0 Selected 全部 Software 0 Selected 全部 清除 ×
清除
0 Selected Content Type
0 Selected Software
产品生命周期管理(PLM)如何帮助供应链管理? 产品生命周期管理 (PLM) 如何帮助供应链管理? PLM是一种系统化的方法,用于管理产品从设计和开发到最终退役或处置经历的一系列变化。另一方面,SCM涉及积极管理供应链活动,以最大化客户价值并实现可持续的竞争优势。 PLM软件市场在2023年的估值为470.3亿美元,预计到2030年将达到803亿美元,复合年增长率为6.9%。这是一个现在和未来都非常重要的行业( 产品生命周期管理(PLM)- 全球战略商业报告(researchandmarkets.com)) 在复杂且高度规范的行业中,PLM和SCM的卓越表现是必要的。航空航天和国防工业占PLM总市场份额的最大比例(23%),这是可以预期的。北美是PLM市场的最大区域,2020年占市场的33%。全球PLM市场中的亚太地区预计将以最高速度增长。( PLM行业统计数据 • WorldMetrics) 框架 一个可视化PLM和SCM交互作用的方法是使用PLM的标准阶段(引入、增长、成熟、衰退)并与供应链运营参考(SCOR)模型叠加(图1) SCOR模型是由供应链委员会(SCC)开发并认可的过程参考模型,提供了一种标准化的衡量供应链绩效的方法,以及分析PLM增值点的有用框架。 图1:PLM与SCM SCOR模型的整合 计划 SCM中的计划阶段涉及预测未来需求并创建满足这些需求的战略计划。在PLM中,这涉及到构思,即基于竞争对手分析、市场空白或客户需求等因素定义产品需求。它还涉及预测增长、成熟和衰退阶段将会是什么样子。在SCM中,计划对应于开发一种策略来平衡需求和供应,对供应链网络进行对齐,并计划现在和将来的物流。 在计划阶段,组织定义其供应链战略,分配资源,并设定绩效目标。了解产品可能的潜力(PLM的增长和成熟阶段)是至关重要的,这样目标才现实,供应链设计才适合近期和未来的需求,资源配置才能适时进行。 PLM在计划中发挥了关键作用,确保产品设计与供应链能力相符,并告知组织需要开发或增加哪些能力。 想象一下,一家汽车制造商计划推出一款新的电动汽车(EV)。PLM确保EV的设计考虑到采购可持续材料、高效的制造过程和可回收性。它向供应链通报了采购什么、从哪里采购、需要什么样的制造足迹,以及回收供应链需要适应什么。 来源 供应链管理中的采购涉及识别、评估和采购运营业务所需的商品和服务。在PLM中,采购可以与引入阶段的设计和开发元素相连,此时识别并采购产品开发所需的资源。它也是PLM的增长和成熟阶段需要考虑的因素,因为从供应商那里获得的材料和服务的数量需要能够满足未来的需求,或者在定义的时间点将替代/额外的供应商引入供应链。
ATmega328P 基础:不使用 Arduino 的入门指南 Altium Designer Projects ATmega328P 基础知识:不使用 Arduino 的入门指南 我已经使用Arduino Uno板有一段时间了,包括作为我许多文章的示例。我一直想知道要让ATmega328P芯片(旧版Uno板上使用的原始芯片)完全独立工作需要做些什么。通过Arduino的引导程序、友好的GUI软件和C++抽象层,使其变得如此易于访问,你可能会想,为什么我甚至想尝试这样做。有时候,为了欣赏别人的成就,亲自尝试一下是很重要的。这个项目真正展示了Arduino团队投入了多少工作,并且用那个友好的小产品改变了世界。 在这篇文章中,我们将通过仅使用外部电源和 Atmel-ICE编程器来完全独立地启动芯片。我们将演示如何通过板载串行接口与芯片通信,以及如何让一个或两个LED闪烁。 环境设置 有几种配置ATmega328P的方法。正如标题所暗示的,一种方法,我们故意没有涉及,就是将你的ATmega328P芯片放入Arduino Uno中进行编程,然后将其移至面包板上。根据论坛上的反馈,有些人想跳过Arduino过程,使用如 Microchip的Atmel-ICE这样的更传统的编程器。开始使用Microchip(前身为Atmel)微处理器最直接的方法是安装 Microchip Studio。在撰写本文时,完整的Microchip Studio套件仅在Windows上得到支持。由于我喜欢让所有的构建环境在CI(持续集成)中运行,我选择了另一种方法。 GNU编译器集合(GCC)是目前最流行的C语言编译器之一。它可以编译特定的平台和架构,但不适用于AVR(ATmega)系列芯片。然而, 他们的网站上有一套针对AVR和其他Microchip系列的编译器。幸运的是,一些好心人甚至将这些编译器打包成了Debian包,可以很容易地在Debian或Ubuntu上安装,如下所示: $ apt-get install gcc-avr binutils-avr avr-libc avrdude
使用ATmega328P开始嵌入式系统的DevOps入门 使用ATmega328P开始嵌入式系统的DevOps入门 DevOps和敏捷方法论已经通过强调协作、自动化和持续改进,彻底改变了软件开发。将DevOps原则应用到我的设计和项目中,已经成为改变游戏规则的一步,提高了效率和可靠性。在这篇文章中,我们将介绍如何为一个使用 ATmega328P微控制器的 现有嵌入式系统项目设置持续集成(CI)工作流。通过本文,你将看到这些实践如何简化你的开发过程并交付更高质量的产品。 理解嵌入式系统的DevOps和敏捷 DevOps是一套实践,由软件界推广,它将软件开发(Dev)和IT运维(Ops)融合为一个持续的流程。在软件界,开发软件然后“扔过墙”给运维团队让他们部署给客户曾是常态。DevOps引入了一种方式,不仅拆除了这堵墙,还将整个过程自动化。在硬件界,我们发现产品开发和生产之间有相似之处,不断地将设计“扔过墙”给我们的制造工程团队,以确保一切都为生产做好了准备。 在嵌入式产品设计中,我们仍然需要将软件通过生产,但面临着比以往任何时候都要快的挑战,并且要以尽可能高的质量交付。通过DevOps原则,我们旨在解决其中的一些挑战。 硬件依赖性:嵌入式系统依赖于硬件和这些PCB的特定修订版。如果不简化为自动化和高度可扩展,测试和部署可能会变得复杂。DevOps实践通过使用相同的硬件和软件设置,并将其通过自动化的持续集成(CI)系统,帮助自动化这些过程。 长时间构建:构建嵌入式软件可能难以设置,并导致长时间的构建。CI通过将构建卸载到云端,利用开发者通常无法访问的更强大的实例,自动化并加速了这一过程。 手动测试:在实际硬件上进行测试是必不可少的,但通常是手动的、乏味的和耗时的。通过硬件在环(HIL)测试的自动化提高效率和准确性,并可以卸载到配置有CI系统的自动化测试设备的设置中。 通过应用DevOps原则,我们能够使用敏捷方法论在构建-测试-部署范式中快速迭代,为我们希望发布到生产的每个附加功能。 它是如何工作的 “构建、测试和部署”是你在讨论DevOps时经常会听到的一组常用词汇。在嵌入式系统中,我们做的事情也是一样的,因为我们的部署同样会进入生产环节(然后是最终客户)。在 项目的仓库中,我们使用Gitlab CI来驱动我们的端到端工作流程,以实现嵌入式DevOps。我们使用所谓的“管道”来创建完成特定任务的作业,例如编译软件、在目标上运行测试或将其作为官方包发布。在Gitlab中,管道是一系列按顺序流动的作业集合,如下所示: 图1:在Gitlab中使用的ATmega328P DevOps工作流程示例管道 这里是CI脚本(.gitlab-ci.yml文件)的细节分解,以给你一个如何工作的概念。 Docker:如 容器化构建和运行环境以进行硬件在环测试中所讨论的,这个阶段构建Docker镜像,以创建一个一致的环境来构建、测试和刷新代码。这确保了在不同的机器和架构(例如桌面PC与树莓派)上构建过程的可重现性。 测试:这个阶段运行单元测试,以验证你的代码是否按照你的意图进行操作。自动化测试在修改或重构现有代码时快速且重要。
嵌入式系统架构:当您的产品拥有多个PCB时 Altium Designer Projects 嵌入式系统架构:当您的产品拥有多个PCB时 在当今技术驱动的世界中,嵌入式系统无处不在。无论是联网的剃须刀还是复杂的汽车,嵌入式设备都是我们今天使用的大多数电子设备的核心。由一个或多个微处理器组成,嵌入式系统可以通过将复杂性卸载到软件来简化电子产品。随着嵌入式设备变得更大更复杂,印刷电路板(PCBs)也是如此。这些设备往往会发展成多个板并成为比最初预期更大的组装。 在本文中,我们将探讨由多个PCB组成的嵌入式系统的架构权衡和考虑因素。我们将讨论多PCB系统的好处、设计考虑因素和挑战。 为什么使用多个PCBs? 虽然将设备保持在单个PCB上是理想选择(无论是简单性还是成本),但有时我们必须将设计分成两个甚至更多的PCB,以实现我们的设计目标。我们想要将产品分成多个板的一些原因包括: 模块化:将组装分成多个板意味着如有必要,您只能更换产品的一部分。例如,如果单个PCB失败,可以更换它而不影响整个系统。如果正确执行,这可以减少制造商的成本和时间。 空间优化:通过在多个板上分配组件,设计师可以实现更紧凑、更高效的布局。想象一个非常长、狭窄的单板与几个短的、堆叠的板,由于包装的原因,高度并不重要。 热管理:可以在不同的PCB上分配产生大量热量的组件,以改善热量散发。通过在整个组装中均匀分配热量,您可以大大提高系统的可靠性。 可扩展性:使用多个PCB设计允许增量功能添加,可以通过单个板而不是整个组装来更换。想象一下,升级传感器或相机而不替换整个计算系统。 出于这些(以及更多)原因,我们考虑设计一个由多个PCB组成的组装,但嵌入式固件方面的挑战并非没有复杂性。 针对多PCB组装的嵌入式设计考虑因素 现在我们已经确定了使用多个PCB(在适用的情况下)的理由,理解在架构嵌入式系统时的设计考虑因素很重要。无论是从硬件还是软件的角度来看,当我们把一切都放在单个板上时,我们不倾向于仔细权衡的细微差别。 首先我们应该考虑的是板与板之间的通信问题。每块板如何相互通信?每块板上有什么样的处理能力(如果有的话)?或许其中一块板是大脑,而其他的是传感器?当我们仔细选择传输协议,无论是I2C、SPI、UART、以太网等,我们还必须考虑传输线、信号完整性,最重要的是,通过板与板之间的连接器进行信号传输。对设计师来说,最糟糕的事情(相信我,我经历过)就是设计完整个系统并从制造商那里收到你的PCB,只为了意识到你漏掉了一个或两个时钟信号。我们也倾向于忘记在我们的板与板连接器上保留备用引脚,试图将每个引脚数量最大化。这真的可能最终对我们不利。设计时要考虑到多板项目,如 Altium Designer中的多板组装功能,在PCB之间布线如此多的通信线时这是必须的。 我们还需要考虑如何分配电源,特别是如果我们将用我们的微处理器监控电源总线。我们希望能够访问“大脑”以便它能监控任何灾难性事件,但我们也需要考虑切换电源噪声、重负载的电源分配,以及我们的板与板连接器引脚是否能承受那种电力。 最后,虽然这与嵌入式系统的软件本身不直接相关,但机械设计也扮演着重要角色。按键、触摸屏和其他用户的物理接口仍然连接到微处理器,必须考虑在内。我们能否以这样的方式布线,以便微处理器可以访问它的输入?我们是否考虑了当我们从一块板传递到另一块板时高速数字输出的信号完整性?这些是我们在构建我们的嵌入式设备时必须考虑的事情。 挑战与解决方案 我一次又一次在规模扩大的初创公司(甚至是大公司)中看到的最被低估的挑战之一,就是软件和硬件之间版本控制方案的困扰。管理软件发布与PCB修订版之间的关系已成为一个永无止境的战斗,这经常导致混淆、延迟,甚至产品失败。 例如,在我参与的一个初创公司中,PCB的轻微修改需要重新旋转,因此,需要更新固件(尽管很小)。由于版本控制不善,工程团队在旧版PCB上部署了新固件,导致意外的电源下降和偶尔的烟雾。幸运的是,我们在产品发货前发现了这个问题,但这绝对是连续几天的噩梦。 为了避免这些陷阱,建立一个坚固的版本控制方案并确保硬件和软件团队之间的清晰沟通至关重要。即使是一个简单的版本控制方案,如固件的Git哈希(或语义版本)以及硬件修订版的基本支持查找表,也足以开始。随着时间的推移,更复杂的机制,如在固件中检测硬件修订版(从而检查兼容性),也大大减少了混淆。
Altium Need Help?