ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Compact Computer-on-Module:嵌入式核心板选型与载板设计实战

Compact Computer-on-Module:嵌入式核心板选型与载板设计实战 最近在评估一个新的工业边缘计算方案接触了不少嵌入式硬件模块其中一个关键词反复出现Compact Computer-on-Module。很多刚接触这个领域的朋友一看到这个名字就懵觉得高不可攀其实它就是我常说的 CoM本质上是把处理器、内存、存储和核心接口统统集成到一块小尺寸板卡上然后通过通用接口插到底板上底板再去扩展对外连接。今天我就以这个项目为核心把我自己的选型经验、硬件设计心得、实际踩过的坑一次性整理出来希望能帮到正在做嵌入式方案选型或者准备自研载板的朋友。这类模块最大的价值是把最难搞的核心计算部分交给专业厂家搞定我们只需要专注于自己真正关心的外设和应用逻辑。换句话说CoM 把“造电脑”这件事拆成了“买核心”和“画底板”两步对绝大多数团队来说这是一条性价比极高、风险也低得多的路。1. 项目定位与设计思路拆解1.1 到底什么是 Computer-on-ModuleComputer-on-Module中文一般叫计算机模块也有人叫核心板、核心模块。它并不是一个新概念早在 PC/104 时代就有类似的形态只不过那时候集成度低尺寸大接口也简单。到了现在的 Compact Computer-on-Module尺寸可以做到很小常见的有 40mm × 40mm、55mm × 40mm甚至更小但里面集成的资源和性能已经是真正的“电脑级”水平了。一块典型的 CoM 上固定的东西包括CPU/SoC 处理器x86、ARM 都有内存颗粒LPDDR4/5或者 DDR4 SO-DIMM板载 eMMC/NVMe 存储网卡、音频 Codec、电源管理芯片基础的 PCIe、USB、SATA、GPIO 信号通过连接器引出它本身不带对外接口比如 HDMI、USB Type-A、RJ45 这些不是直接坐在模块上的这些要在底板上布置。这种分离的好处就是你换底板就能换整个产品形态而核心模块本身不用动。1.2 为什么“紧凑”是核心竞争力“Compact”这个词不是工程上的虚标它是实实在在的硬指标。我们做产品的时候体积往往决定整机结构、散热方案、电池容量甚至成本。越紧凑的模块给底板留出的设计空间越大你可以把更多的 PCB 面积分配给特殊功能也可以把整机做得更小更薄。以我自己经手的一个项目为例之前用的是某款标准尺寸 COM Express Basic 模块尺寸 125mm × 95mm底板面积必须做到 180mm × 150mm 才能放下所有功能电路。后来换了一款 Compact CoM核心板只有 55mm × 40mm底板直接压缩到 120mm × 100mm整机机箱体积几乎减了一半。对这个案子来说能塞进更小机箱直接决定了客户能不能下订单。紧凑还有一个隐藏优势——信号路径短。DDR、PCIe、USB 这些高速信号在核心板上走线极短信号完整性压力小稳定性反而容易保证。这在工业现场强电磁干扰环境下尤为重要。1.3 为什么选择模块化而不是直接画整板这个问题很多人问既然我有 PCB 设计能力为什么还要买现成的核心板我的回答是算一笔“全生命周期成本”的账。自研整板意味着从原理图就开始管 CPU 电源时序、DDR 布线、启动配置、固件烧录这些环节任何一个出问题都要花大量时间去查。如果你的产品批量不算很大一年几千片级别核心板厂商帮你分摊了绝大部分硬件风险你只需要集中在载板设计上综合成本反而更低。CoM 方案的另一个好处是“可迁移”。比如同一块核心板我用一版载板做成了工业网关换一版载板又做成了医疗监护仪的主控核心硬件不需要重新设计软件开发也可以复用 BSP 和驱动层产品线拉得非常快。2. 核心细节解析与实操要点2.1 处理器选型与功耗约束紧凑型 CoM 的处理器选型几乎决定了整个项目的性能上限和功耗预算。以实际项目为例如果做边缘视频分析ARM 架构里高性能一点的方案比如瑞芯微 RK3588、树莓派 CM4都够用如果做实时控制x86 方案比如赛扬 N5105、酷睿i5低功耗版通常兼容性更好。功耗方面要记得一个核心原则模块标注的典型功耗和峰值功耗之间差距可能非常大。一个 10W TDP 的处理器在 Turbo Boost 瞬间可能冲到 25W如果产品散热设计是按 10W 做的大概率会触发降频甚至宕机。我习惯的做法是选型阶段就给模块厂商要一份功耗曲线或者在开发板上用功率分析仪实际测一轮压力测试拿到真实数据再定散热方案。2.2 内存与存储的固有配置Compact CoM 大多是板载内存颗粒所以选型时一定得一次性把容量想清楚。不像 PC 主板能插拔核心板焊接上去的内存后期基本改不了。我见过太多项目前期为了省成本选 2GB 内存结果客户现场要跑一个容器化的应用内存不够只能推翻重选型浪费的时间比省下的几百块钱多得多。存储空间同样需要留余量系统镜像、日志文件、算法模型随便一放就几十 GB 了如果选 16GB eMMC 很容易顶满。我会建议存储容量至少按需求估算的 1.5 到 2 倍来选最好留一个可插拔的 TF 卡座或者 M.2 接口方便现场扩容。M.2 接口还牵扯到 PCIe 通道数选型的时候要确认模块引出的 PCIe Lane 数量和接口类型是否支持 NVMe SSD。2.3 接口资源盘点与载板信号梳理拿到一块 CoM 后第一件事不是急着画板而是把它的全部对外接口整理成一个表。下面是我通常用作模板的接口清单你可以直接抄走接口类型数量载板设计要点典型用途PCIe1~8 Lane差分对等长、参考层完整NVMe、采集卡、AI加速卡USB 3.0/2.04~8 路静电防护、D/D- 差分对等长摄像头、扫码枪、U盘千兆网口1~2 路PHY 可集成或外部引变压器工业以太网、设备联网HDMI/DP1~2 路高速视频信号ESD 就近放置本地显示、录播串口 UART2~6 路电平确认、隔离选型调试口、传感器GPIO若干上下拉状态确认继电器控制、状态灯I2C/SPI若干各挂设备地址冲突检查传感器、RTC、EEPROM这个表格看起来简单但它能帮你提前发现很多坑。比如某些模块的同一组引脚可以复用成 PCIe 或 USB 或 SATA如果你在载板上接错了外设类型就会很被动。所以画板之前务必把每个引脚的复用功能查清楚用表格落实到位。2.4 散热结构与结构件选配紧凑型 CoM 带来了散热挑战因为核心里 CPU 发热源就在那几十平方毫米上热量密度高必须高效导出去。市面上主流 CoM 都有配套的散热器无非是铝挤型、铜片、热管加风扇等组合。实际设计时我需要先确认模块的散热面在哪个方向有些 CoM 散热面朝底就要在底板上开风道有些散热面朝上结构件就要留出高度。如果做无风扇设计散热器面积通常要做到 CPU 面积的 30 到 50 倍以上整机外壳还要考虑导热垫来辅助散热。这个环节宁可算得保守一点也不要等过热降频了再改结构那个周期会让人崩溃。3. 实操过程与核心环节实现3.1 载板设计的具体流程载板也就是 Carrier Board是我们把 CoM 变成完整产品的关键一环。它的设计流程大概是这样的确定接口需求把产品要接的外设列成清单比对 CoM 引出的接口是否全部满足。原理图设计把模块连接器的每个引脚规划到对应的外设芯片或接口器件上这里建议用官方参考设计做底子改。PCB Layout特别留意高速信号的差分对等长、阻抗匹配和参考地平面。电源设计确认输入电源的电压范围和电流余量一般从外部 DC 输入到载板多路 DC/DC 转换。结构设计配合连接器位置、固定孔位、散热器高度都要考虑。打样与调试先小批量打样 5 到 10 片先做裸板电源测试再插 CoM 做系统启动测试。3.2 电源树设计与关键参数计算载板电源是新手最容易翻车的地方。CoM 工作电压往往不止一路比如核心供电是 5VIO 电平可能是 3.3V外设还有 12V 供电需求所以需要做电源树。我自己的习惯是从输入电源一步步算下去。举个例子如果模块最大功耗 15W外设功耗 5W总共 20W。如果外部输入是 12V那么输入端电流至少是 20W / 12V ≈ 1.67A加上 DC-DC 转换效率按 85% 估算实际输入电流约为 1.96A。那我选的电源适配器和输入保护器件至少要有 2.5A 以上的余量。多个 DC-DC 之间的时序也要处理好。有些 CoM 要求先有核心供电、再有 IO 供电、最后才是外设电源这个顺序错乱可能导致模块启动异常。为了简化我一般用电源时序控制芯片或者在每个 DC-DC 的使能脚上做 RC 延时这也是常见的做法。3.3 信号完整性与关键走线经验载板面积大布线自由度也大但高速信号还是要小心处理。PCIe Gen3 的信号速率高达 8GbpsUSB 3.0 也有 5Gbps这些信号要在载板上做 100 欧姆或 90 欧姆差分阻抗控制。如果是两层板阻抗控制难度比较大我建议至少做四层板并且保证高速信号有完整的参考地平面。实际操作中我会特别注意这几个点PCIe 和 USB 的差分对尽量走表层不在内层换层减少过孔带来的阻抗突变。每一对差分线等长误差控制在 5 mil 以内有条件就用软件走蛇形绕线。高速线下方不要有其他信号的参考层割裂否则参考平面不连续EMI 会爆表。晶振和时钟 buffer 供电要做磁珠加电容滤波时钟线远离电源开关节点。这些细节看起来繁琐但真到了 EMC 测试阶段省下来的时间和塞进去的磁珠都会变成回报。3.4 从烧录到启动的首次调试记录把 CoM 插上载板接上调试串口按下电源键这个时刻是最紧张的。我第一次点板的时候液晶屏没亮、串口也没输出检查了半天发现是载板上的 boot 配置引脚设置错了导致模块尝试从 eMMC 启动而 eMMC 里根本没有系统。所以我现在都会在载板上预留一组拨码开关用于设置启动模式比如从 eMMC、SD 卡、USB 启动这样即使系统出了问题也能通过拨码直接进入烧录模式。与此同时调试串口一定要引出来哪怕只是板边的 4Pin 排针也比没有强因为大部分启动日志都要从这里看。第一次点板时建议按这个顺序操作先用万用表量电源是否正常确认各路上电电压和时序。插上 USB 转串口工具打开串口终端波特率按模块 datasheet 里的设定常见 115200 或 1500000。上电后观察串口日志有输出说明模块已经在运行接下来再排查显示或网络。如果一点反应都没有优先查电源时序和 boot 配置而不是怀疑 CoM 坏了。至少要留一个 USB 烧录口很多厂商的 CoM 都支持用 USB 烧写 eMMC这个口在生产维修时是救命通道。4. 应用场景与选型要点4.1 工业自动化场景的核心诉求工业自动化产品比如 PLC、工业网关、机器视觉控制器对 CoM 的要求通常是有长时间稳定运行能力、宽温设计、丰富的串口和工业以太网接口。我在做这类项目时会重点考察模块支持的宽温范围工业级一般要求 -40℃ 到 85℃如果模块只支持 0℃ 到 60℃那基本就能一票否决了。其次是接口的隔离设计。工业现场有大量电机、变频器干扰非常大USB、串口、网口如果没有任何隔离很容易在使用中通讯中断甚至烧毁接口。很多 CoM 模块本身没有隔离功能这就要在载板上加隔离芯片、隔离电源模块这些成本要提前算进去。4.2 医疗设备与高可靠性要求医疗设备对可靠性的要求比工业还要严格比如监护仪、超声诊断仪、内窥镜主机这类产品不仅要长时间运行还需要低故障率。这类项目里我会特别关注 CoM 厂商有没有医疗级的认证材料比如 IEC 60601 相关的测试报告另外是供货周期医疗设备生命周期长一颗主芯片停产可能带来灾难性后果。医疗产品对 EMC 也很敏感载板设计上通常会加更多滤波器件、屏蔽罩和接地措施。紧凑型 CoM 的屏蔽罩如果和整体结构配合得当既能散热又能挡 EMI这个收益在认证测试时非常明显。4.3 边缘计算与 AI 推理场景现在边缘 AI 非常火很多 CoM 已经集成 NPU 或 GPU比如瑞芯微 RK3588 集成了 6 TOPS 的 NPU一些更高端的模块配了 NVIDIA Jetson Orin 系列。这类方案适合做视频结构化、人脸识别、工业质检等场景。选 AI 型 CoM 时除了看 TOPS 算力更要看软件生态。同样的 NPU厂商 SDK 是否齐全、模型转换工具是否好用直接关系到项目落地速度。我在一个边缘盒子项目里用过某 ARM 方案模型转换时折腾了整整两周后来换成生态更成熟的方案两天就搞定了这中间的差异完全超出芯片性能本身。4.4 选型自查清单下面这份清单是我每次选型都会过一遍的你可以打印出来贴在工位上[ ] CPU/SoC 是否满足算力和生态需求[ ] 内存容量是否留有 1.5 倍以上余量[ ] 存储接口是否支持产品后续扩展需求[ ] 模块工作温度范围是否符合环境要求[ ] 接口数量是否覆盖所有外设需求[ ] 电源方案能否支撑模块峰值功耗[ ] 有没有可靠的系统烧录和量产方案[ ] 厂商的长期供货承诺和生命周期策略如何[ ] 配套文档、BSP、示例代码是否完整[ ] 开发板、评估套件是否方便早期验证这些条目看着基础但每一条背后都有至少一个真实项目踩过的坑。比如供货周期我之前遇到过一个没有排产计划的型号做量产时等了三个多月差点丢单。5. 常见问题与排查技巧实录5.1 上电后完全没有输出的排查思路上电无输出是最常见、也最让人头大的问题。我现在的排查顺序已经形成了肌肉记忆电源灯亮不亮——不亮就查输入电源、保险丝、DC-DC。各关键电压是否到位——用示波器看核心供电的上升沿是否有震荡。boot 配置是否正确——查启动选择引脚和拨码开关。串口是否焊错或没打开——确认 TX/RX 没接反确认串口终端波特率正确。用热成像仪看看有没有局部过热——有短路的板子往往会有某个器件烫得离谱。如果以上都查完了还没结果我会把模块从载板拔下来接在厂商的官方评估板上跑一遍。如果官方评估板正常问题就在你的载板如果官方评估板也起不来那就是模块本身的问题直接走售后流程。5.2 系统跑着跑着重启或死机这个问题一般是电源不稳或散热不够引起的。系统重启先加负载测试电源看输入电压和模块供电电压是否在运行时出现跌落如果跌超过 5%就要考虑加大电容或换更大的 DC-DC。散热导致的死机往往来得更规律高负载跑十分钟左右就挂降温后又正常。这个现象几乎可以肯定是散热不足。我处理过一例客户反馈设备在 50℃ 环境里频繁重启后来发现是散热器装反了导热垫根本没接触 CPU 表面重新安装后问题消失。还有一个隐蔽原因是看门狗。很多 CoM 的 BIOS 或固件默认开启硬件看门狗如果系统启动过程中驱动没来得及喂狗就会被强制复位。这种问题在开发阶段特别容易踩到解决方法是先找 BIOS 设置把看门狗关掉或者提前在系统服务里写一个喂狗程序。5.3 高速接口偶尔丢包或识别失败PCIe、USB 这类高速接口如果出现偶发识别失败大概率是差分信号质量差。排查时先检查连接器座子有没有虚焊然后看差分对等长和控制阻抗最后确认差分对有没有跨分割。我印象最深的一个案例是一个 USB 3.0 摄像头偶尔无法枚举查了很久最后发现是 USB 3.0 的 Tx/Rx 差分对被一根地线从中间隔开了导致阻抗严重不连续。重新改板后问题彻底消失。所以画板时我总会给高速信号让路宁可把地线绕远也不能从差分对中间穿过去。5.4 常见问题速查表故障现象大概率原因优先排查动作上电无任何输出电源时序、boot 配置、短路量电源、查时序、看热成像反复重启散热、电源跌落、看门狗压测、查温度、关看门狗USB 设备偶发掉线差分走线质量、ESD 器件寄生电容量信号、查等长、换ESD网口不通或丢包PHY 配置、变压器接线、时钟不稳查网口绿灯、对比原理图串口乱码波特率不对、参考地不一致确认波特率、共地屏幕无显示HDMI 布线过长、ESD 器件影响信号查信号、缩短走线、换ESD这张速查表看着简单但全部来自真实项目的经验沉淀。我有一次在项目里卡了两天的“屏幕上偶尔无显示”问题最后发现是一个 ESD 防护芯片的寄生电容太大把 HDMI 信号边沿搞没了换了一个低电容型号后立竿见影。6. 从项目复盘中积累的设计心得6.1 前期把确定性问题做完后期才会轻松做了这么多 CoM 项目后我的最大体会是前期定型和选型的投入直接决定整个项目的走势。很多团队喜欢先急着画板结果到了调试阶段三天两头推倒重来。与其这样不如在启动前把 datasheet 读透把开发板的每个外设都点亮一遍确认软件环境能跑通再开始设计载板。另外要舍得花时间做“最小系统验证”。在载板还没画完的时候先用厂商的评估板把核心功能测一遍把启动镜像、外设驱动、通讯协议全部调通。这样的好处是等你的载板回来你手里的软件已经是一个可以跑的状态不会把硬件问题和软件问题混在一起排查起来清楚很多。6.2 文档和版本管理不是小事CoM 项目会涉及原理图、PCB、BOM、固件、驱动、底板结构图等一大堆文件版本管理做不好很容易在生产阶段出大乱子。我的习惯是给每个版本命一个明确的版本号比如载板原理图 v1.2然后在改动记录里写上改了什么、为什么改、谁改的。这个方法听起来老土但却是多次救场的救命稻草。固件的版本也很容易乱。同一个模块给不同客户可能跑了不同的固件分支此时必须保证每台设备都有办法读出固件版本最好再加一个远程 OTA 升级通道。这样就算产品已经铺到现场也能通过空中升级修复问题不用一台台拆机重烧。6.3 供应链保障和生产可制造性选 CoM 方案另一个绕不开的话题就是供应链。品牌厂商的 CoM 价格相对高一些但通常会承诺 5 到 10 年的供货周期而且有规范的变更通知流程不会突然停产让你措手不及这一点在工业、医疗等长生命周期产品里价值极高。生产可制造性方面我的建议是尽量选模块的官方连接器品牌和型号都别乱换。这种高密度板对连接器虽然不算难焊但一些杂牌连接器的插拔力和触点可靠性跟正品差距很大车间回流焊后不良率会明显上升。一个小连接器省下的几块钱可能在售后维修时几十倍还回去。6.4 后续的扩展思路Compact Computer-on-Module 这套架构未来还可以继续往两个方向延伸。一个是把多个 CoM 组合到一个底板上做成一个“模块化计算机集群”用软件做负载均衡和热备提升系统的可用性。另一个是往超低功耗方向走在电池供电的便携设备里用 CoM 作为主控依靠休眠唤醒策略延长待机时间。在具体项目里我建议在载板上预留一组 I2C 或 SPI 接口说不定哪个月就增加了一个传感器模块底板上留好接口位置板子不用重画直接飞线验证少动一块板子就少一轮打样周期和一次出错的概率。最后再提一点自己的经验就是拿到任何一款新 CoM先别急着量产花一周时间把规格书和原理图手册从头到尾读三遍把每一个引脚、每一组跳线、每一条时序都摸清楚。这个过程看似枯燥但它就是让你后面少熬夜的底子。很多工程师翻车翻的都是最基础的资料没读透。
返回列表