若你用Qt开发应用并采用状态机,很可能在用Qt状态机框架。可用纯C++或SCXML定义机器,或从状态图生成C++代码。本文从功能、适用性、性能三维评估这些选项。 作为软件开发者,你大概写过无数switch-case块。对许多人这是无高层工具时实现状态机最简方式。但随复杂度增长,维护成挑战,手工switch-case逻辑不再可持续。 实现状态机 使用C++等面向对象语言时,状态模式是验证策略。将每状态建模为类,迁移作可选单独类。通过创建这些类实例并连接它们构建状态机。框架可显著减少样板代码。 Qt状态机API让你用简洁代码配置机器,将执行语义留给框架。虽简化实现,但状态达数十上百时源码仍可能膨胀
数十年来,嵌入式工程师争论用C还是C++。虽多数厂商固件仍用C——2019嵌入式市场调查显示56%嵌入式代码用C——但C++稳步获青睐,约23%新项目选用。C 50周年将至,正是考虑转型良机。以下三大理由支持迁移C++。 理由1:卓越架构设计 虽C通过函数指针和基本多态提供封装,但本质是过程式。缺原生继承、组合等面向对象构造,迫使开发者设计变通方案。这增加系统架构复杂度、降低复用性、阻碍可维护性。 C++原生支持完整面向对象设计,让开发者实现促进复用、灵活、加速产品周期的设计模式。围绕类和接口构建代码,团队可模块化功能、缩短定制时间线、改善长期扩展性。 理由2:C++是持续演进的现代语言 快速
MQTT-Reactive是构建于LiamBindle MQTT-C库之上的轻量级、非阻塞MQTT v3.1.1客户端。专为响应式嵌入式系统设计,提供可移植、事件驱动通信栈,可集成进任何C基础应用。 本文先定义何为响应式系统,再勾勒拥抱并发和基于状态行为的软件架构。最后通过具体案例——铁路公司物联网设备——演示如何通过状态机和事件驱动范式使用MQTT-Reactive。 响应式系统响应内部或外部事件、处理事件、返回空闲状态等待下一触发。此事件驱动范式产出可预测、可维护代码,尤其当多个活动对象(并发单元)处理不同事件流时。 案例研究设备执行以下任务: 检测记录数字输入变化 采集、滤波、存储多路
由IEC 61508、ISO 26262、IEC 62304、MISRA C、CWE等标准驱动的验证与验证专业产业已涌现,确保软件可靠、安全、高质量。即使产品不受这些标准严格法规约束,采纳其经验证最佳实践流程也能大幅减少缺陷、缩短上市时间、降低维护成本。 错误类型及应对工具 软件缺陷分两大类,各需不同缓解技术: 编码错误——如数组越界访问——可用静态分析早期发现。 应用错误源于代码未满足规格;仅通过需求驱动测试发现。 编码错误与代码审查 静态分析是强大首道防线,尤其项目伊始集成时。它识别可能日后成难调试Bug的编码规则违规。静态分析互补的是严格代码审查,核查代码遵循选定编码标准,如MISR
状态机是许多嵌入式系统基石,却开发复杂。本文概述用测试驱动开发(TDD)构建状态机(SM)软件的验证策略,聚焦适合资源受限环境的C实现。 核心上,SM模型包含状态、迁移、动作。状态代表条件,迁移定义从一状态到另一状态路径——通常由事件触发,动作捕获进入、退出、迁移期间执行的行为。 UML状态机中,动作可附着于状态进入/退出、迁移本身、内部反应。所有状态机形式假设运行至完成(RTC)执行模型:每个事件完全处理——含退出动作、迁移动作、进入动作——后才处理下一事件。 深入TDD策略前,须理解TDD为何重要。TDD是增量开发法,强制在任何生产代码前写失败单元测试。测试小、自动化、作为期望行为规格。T
跨行业,功能安全对开发者施加严格要求:代码必须防御性工程化,防范内存损坏、宇宙射线干扰等意外事件。C、C++等高级语言含语言规范未完全定义行为的特性。这些未定义行为可能在安全关键系统产生意外、潜在灾难性结果。因此标准强制防御性编码、严格可测试性、全面代码覆盖、从需求到应用代码的可追溯性,确保安全功能完整唯一实现。 安全关键领域,尤其汽车,常需复杂外部诊断、标定、开发工具。防御性编码和外部数据访问非编译器固有概念。C、C++均不适配内存损坏,若防御措施非代码显式可达,编译器可能优化掉。防御因此必须在语法和语义上可达以幸存优化过程。 未定义行为极难发现。即使识别,也无保证编译二进制按预期行为。调试
科技世界充满惊喜,每次新发现都揭示认知缺口。 快速词联想:Seiko即联想手表,Epson唤起打印机。这种转变反映我对Epson更广能力的认知加深。 Seiko Epson株式会社,日本领先电子企业,跻身全球最大打印机和成像设备生产商行列——其名源自Son of Electronic Printer。 1942年起步于微型钟表制造,Epson面临微型化元件升级需求。为跟进,公司引入基础自动化,逐渐演进为先进机器人系统。 随时间,Epson自研机器人成其生产线核心。识别市场需求,公司开始向全球制造商提供机器人解决方案。 Epson广为人知的是投影仪、打印机、扫描仪,但其机器人部门已向全球出货超5
随可穿戴IoT设备尺寸缩减,印制电路板行业标准仍稀疏。在此期间,设计师须依赖成熟PCB开发制造实践,同时针对可穿戴独特需求裁剪。重点领域包括基板材料、射频/微波性能、传输线设计。 PCB基板材料 PCB层压结构由层压层组成——常见FR-4、聚酰亚胺、高频Rogers材料。层间绝缘材料称为预浸料。 可穿戴要求卓越可靠性。设计师常在廉价FR-4(行业标准)与提供卓越性能的高端高频材料间权衡。 高速或高频电路中,FR-4介电常数(Dk=4.5)可能引入不必要损耗。对比Rogers 4003(Dk=3.55)和Rogers 4350(Dk=3.66)提供更低Dk值,减少信号失真。 多层板层压结构展示
过去几周我与Makerarm.com团队讨论一款突破性机械臂,现已在Kickstarter上线。Makerarm不仅是个小工具;它是全集成个人制造平台,紧凑桌面占地,可配可互换工具头完成广泛任务——从3D打印、铣削到激光雕刻和PCB组装。 Makerarm脱颖而出在于其运动自由度。传统低成本3D打印机受限立方体框架,限制打印头行程和最大构建尺寸。Makerarm相比之下,立于直径4.72英寸圆形底座,高24英寸,双臂组件提供15.7英寸伸展。整机可绕底座旋转180°,总有效工作空间达31.4英寸——超多数桌面打印机两倍伸展。 错位打印是爱好者常见痛点。Makerarm自动自对齐和床面调平算法
商业硬件设计与爱好者电子的界限近年模糊。开源硬件、平价CAD工具、海量在线知识库,让曾属企业实验室的工作如今可在家庭车间完成。这种转变催生硬件初创企业复兴,也凸显持久供应链挑战。 白天我在制造企业工作;周末设计构建小型电子设备——多基于单片机,常含定制Arduino兼容硬件。这些项目植根现有开源设计,工程和组装阶段通常直观。真正阻碍进展的是元件易失性可用性。 无源器件在CAD中易建模,但备货是另码事。周一有货的零件周三可能缺货,高引脚数单片机在分销商间波动,让首次构建变成音乐椅子游戏。 供应链问题导致构建延期(来源:Screaming Circuits) 大型设计团队有专职采购专家确保元件可得
最新USB 3.1规范引入USB Type-C连接器,终于消除了困扰早期USB标准的方向性问题。虽非旧USB唯一缺点,但无法双向插入线缆一直是设计师和用户的持久痛点。 我个人经验:成功将USB线缆插入设备常需三次尝试。新Type-C连接器以机械对称设计解决此问题,任意方向均完美工作。 (来源:Duane Benson) USB 3.1带来显著升级:更高功率传输、更快数据率、能自检测角色并相应调整的智能线缆。增加的复杂性由线缆内微小嵌入式电子管理解决,两端协商功率等级和数据模式。 阅读完整规范令人望而生畏,尤其对比我们嵌入式项目熟悉的USB Micro-B和FTDI USB转UART方案。但US
近期可穿戴技术讨论中,The Osterhout Design Group CEO Ralph Osterhout指出:笨重设备让人疏离环境。若让你看似长锤头鲨满身导线?不行,不会奏效。(来源) 为保持板级占地小,微控制器持续向更小制程节点演进并增加更复杂功能。这不可避免地提高片上缓存内存需求。然而每个新节点因软错误率更高、良率更低、功耗增加,使集成额外嵌入式SRAM更困难。客户还需高度定制SRAM选项,MCU厂商不可能备齐所有可能缓存大小。因此许多设计师选择将缓存置于外部SRAM芯片。 但外部SRAM自带空间惩罚。六晶体管单元布局下,将SRAM芯片缩至新节点仍留下笨重封装,嵌入式SRAM的相
我在Control Data子公司工作时,每份原理图、机械图和PCB都分配唯一顺序标识符。虽在文档部门,我仍不记得将小型机组装在一起的确切流程。 那时所有图纸手绘。绘图员用标准符号和模板将原理图转描到硫酸纸(或描图纸)。PCB布局用点胶带,机械工程师在绘图桌上绘制封装图。沟通靠备忘录、报告和面对面会议。我后来写博客《从Rubylith到点胶带再到CAD的PCB布局史》记录那些记忆。 CAD兴起让图纸数字化,但工作流本质未变:原理图输出网表,PCB输出转.dxf供AutoCAD,生成文件可分组分类。新电子格式仅让纸质痕迹更易管理。 现代产品分阶段构建,创建子组件引入额外复杂性。多构建使用不同组件
成长时我看《星际迷航》原版,Spock的三录仪能瞬间扫描分析任何材料。数十年后,Si-Ware Systems的NeoSpectra手持光谱传感器系列让这愿景成真。 Si-Ware NeoSpectra模组融合先进半导体制造与MEMS技术,交付紧凑、低成本傅里叶变换近红外(FT-NIR)传感器。每模组约等于一大副扑克牌大小,可集成进嵌入式系统用于农业、医疗、石油天然气等。 例如,SoilCares土壤扫描仪用NeoSpectra核心测量土壤养分——氮、磷、钾——及pH、电导率、有机质。配套App据此推荐适配当地的作物、石灰和肥料。 (来源:SoilCares) 另一突破是NeoSpectra
物联网(IoT)长期霸占科技头条,承诺更高效流程、新增产品能力、全新商业模式。然而,近期与一家领先科技公司市场人员的交谈揭示出日益增长的担忧:IoT炒作或许已超越其就绪度。 (来源:pixabay.com) 催化这一疑虑的一个因素是针对KrebsOnSecurity.com的高调安全漏洞。该公司报告称攻击由僵尸网络驱动,攻陷大量IoT设备——路由器、IP摄像头、数字录像机——许多暴露于互联网且使用弱或硬编码密码。 类似破坏波及互联网服务提供商Dyn,导致Twitter、Spotify、PayPal等全球主要服务中断。该攻击大量流量源自网络摄像头、家庭网关等IoT设备。 当智能灯泡因ZigBee
当嵌入式系统仍是小众产品时,你可内部管控每步。但需求激增时,大批量制造通常转向合约制造商(CM)。CM的一项关键职责是将微控制器固件编程进每台设备。 此类场景下,保护知识产权和防止超量生产至关重要。全球约10%电子产品为假冒,相当份额源于CM未授权生产复制品。 嵌入式系统IP以两大形式呈现:硬件原理图和固件代码。即使CM能复制PCB布局,无专有固件设备也毫无用处。当CM不受限获取两者时,原开发者只能依赖CM的诚信和声誉。 近期纽伦堡Embedded World展会上,SEGGER发布Flasher SECURE,直击IP盗窃与超量生产风险的生产编程方案。 (来源:SEGGER) Flasher
生产数字化增长要求工业通信前所未有的开放性、韧性、确定性与灵活性。时间敏感网络(TSN)正抹平IT与OT网络长久界限,为当今自动化系统交付精准时序与同步。 Microchip发布专为工业自动化设计的SparX-5i以太网交换机家族。在接受Embedded采访时,Microchip产品营销经理Andy Ebert解释TSN如何提供可靠、基于标准的实时通信——以太网的未来。 “当前工厂存在分离的IT与OT网络。TSN允许合并这些网络。TSN结合以太网提供标准方式处理工厂自动化网络所需实时通信,区别于兼容性问题且不扩展至更多设备互联所需更高带宽的现有方法,” Ebert表示。 什么是时间敏感网络?
采用蒸汽室散热可带来显著收益,尤其对要求严格热控的嵌入式系统。 嵌入式设备设计师持续寻求有效散热方案。电子器件微缩、功率密度上升,除非集成内部冷却机制,过热风险与日俱增。 蒸汽室散热获青睐,因其使用扁平密封结构,内充工作流体受热蒸发。蒸汽横向扩散热量,微小内部支柱维持室形状并引导流体回热源。 不同于常规热管单轴传热,蒸汽室在二维分布热量。这种二维传热配合蒸汽空间厚度,驱动更高有效热导率:更厚蒸汽层降压降、提升散热效率。 许多台式机在蒸汽室顶装热管提性能,新设计将热管直接嵌入室内为更流线型方案。尺寸小至1×1英寸、厚度3–9 mm,蒸汽室贴合紧凑空间、可融入现有组装。 权衡利弊 传热效率是蒸汽室
环氧树脂是IoT制造商在PCB设计制造全过程中集成的多功能材料,以满足多元功能需求。 IoT市场快速扩张,工程师持续寻求实用方案增强现代IoT小工具供电PCB的性能与可靠性。 环氧树脂在IoT器件PCB生产中扮演多重关键角色。下文详述其核心贡献。 定制满足特定需求 制造商可选特种环氧或调整特定性质以满足性能或制造约束。添加剂可增加硬度、粘度、厚度,优化树脂用于共形涂层等角色。关键定制选项: 电与热导率 掺入银填料,单/双组分环氧成导电粘合剂可替代焊点。有向性形式——全向导电——或各向异性形式,仅单轴导电;后者常用于RFID系统天线元件粘接。 为改善传热,掺入铜、氮化硼、铝粉等热填料提升环氧在元
环保型LED固化共形PCB涂层在汽车、白色家电、工业控制等要求快速周转与稳健防护的行业中迅速成为首选。 凭借快速固化时间与对恶劣环境的卓越抵抗力,LED固化涂层为传统溶剂型与UV固化系统提供真正绿色替代。以下分析深入其优势、技术考量与实战应用。 展示UV-LED与汞蒸气对比图。(来源:Nazdar Ink Technologies) 传统UV固化 LED固化技术出现前,高强度汞蒸气灯是行业标准。相比旧式溶剂型涂层,UV固化提供若干优势: 极少或无挥发性有机化合物(VOC) 快速、按需固化 短周期潜力 优异化学与环境抵抗力 但缺点显著: 高能耗 灯管寿命短、频繁更换 有害气体排放需密封设计
嵌入式