
最近嵌入式板卡圈子里“暴雷”这个词越来越高频经常能在技术群看到有人吐槽某家SBC项目延期半年、某块板子点不亮查了两周结果是电源时序问题、BIOS适配地狱卡了三个月。说实话这类项目翻车大多不是栽在某个高深技术上而是栽在选型和验证流程上。我这次分享的项目也一样踩了不少坑但整体走下来还算顺利——一套基于Tiger Lake平台的Thin Mini-ITX单板计算机和COMe模块同步设计核心板按COMe Type 6标准做载板按Thin Mini-ITX规范做同一个CPU平台输出两种交付形态覆盖了模块客户和整板客户两类需求。这篇就把整个从选型、架构、PCB到调试的过程完整记录下来给打算做x86嵌入式板卡的工程师一个参考。1. 选型逻辑为什么是Tiger Lake为什么是薄型SBC和COMe双形态1.1 嵌入式x86平台对比Tiger Lake所处的生态位在做这个项目之前我们团队花了两周时间对比主流平台。你可能觉得选型没什么好纠结的但嵌入式产品和消费级产品不一样电源、散热、接口形态、供货周期、软件生态全部要考虑选错一个就是至少半年的返工。先说ARM阵营。瑞芯微、RK3588等芯片在边缘AI盒子领域确实很火软件生态也在快速补齐但x86的PCIe生态和对现有工业软件的兼容性ARM短期追不上。很多客户现有代码跑在Windows或特定x86工业软件上迁移成本高得吓人。AMD嵌入式平台在性能上有优势但工业级供货周期和长生命周期承诺不如Intel成熟核显驱动稳定性在一些场景下也差点意思。Atom和赛扬J系列的功耗低、成本低但核显编解码能力不够看跑多路视频分析或OpenVINO推理时差异很明显。Tiger Lake-UUP3正好卡在一个甜点位CPU是Willow Cove架构、最高4核8线程核显是Xe-LP架构、96EU支持AV1硬件解码这对边缘视觉计算非常重要内存支持双通道DDR4-3200存储可以走CPU直出的PCIe Gen4 x4NVMe速度能跑满更重要的是它集成了Thunderbolt 4控制器这意味着板卡可以原生支持真正意义上的高性能扩展。功耗方面TDP 12W到28W可调配合被动散热或薄型散热器整体系统可以做到很紧凑。1.2 应用场景倒推硬件设计我手头这个项目的实际需求来自一个边缘AI网关项目要求整机在低温到高温环境长期运行同时要外接多路工业相机、触摸屏、千兆/万兆网络。倒推下来需要明确支持这些接口至少两个DP/HDMI显示输出最好带eDP给HMI用的LVDS屏留接口PCIe通道要能拆分分别接NVMe、2.5G网卡、视觉加速卡USB端口数量不低于6个。Tiger Lake平台对这些需求的覆盖度很完整。显示方面它带三个DDI和一条eDP可以在COMe模块上做DP/eDP全生命周期支持PCIe方面CPU有一条Gen4 x4直连NVMe、PCH提供多条Gen3通道可配置为x1/x2/x4Thunderbolt 4通过内部集成控制器实现只需在载板端做retimer和Type-C物理层。这些都是传统Atom平台给不了的。1.3 Thin Mini-ITX和COMe的组合策略一鱼两吃为什么非要同时做两种形态这是我做这个项目最核心的产品逻辑。Thin Mini-ITX面向的是系统集成商和整机厂商他们需要一块标准板型、插上内存和SSD、接上19V电源就能工作的SBC直接放进他们的超薄外壳或一体机支架里。COMe Type 6模块面向的是另一类客户他们有自己的载板设计能力需要的是把CPU核心做成“可插拔芯片”方便未来升级硬件而不改载板布局。这两种形态本质上是同一颗CPU、同一套PCB设计资产只是一块直接布线引出外设另一块把外设信号定义到440pin连接器上。与其做两个独立项目不如一次设计、共享核心。我们当时的主要工作就是先把COMe模块做出来并验证然后按Type 6的引脚定义重新画载板。载板相对简单大部分功夫花在Thin Mini-ITX的板型和接口分配上。1.4 生命周期与供货风险嵌入式项目选型还有一个隐性指标生命周期。工业客户最怕芯片停产所以必须选Intel明确承诺长生命周期的平台。Tiger Lake-U在工业嵌入式领域有多个SKU支持7年甚至更长的供货周期这比消费级芯片靠谱得多。另外COMe模块化设计本身也降低了供货风险无论CPU停产还是淘汰未来可以在模块上换新一代核心板载板不用改。2. 核心硬件架构从BGA到功能接口2.1 芯片封装与PCH集成Tiger Lake-U是BGA1449封装市面上常见的型号是i5-1145G7、i7-1185G7这些。一个重要变化是这一代把PCH芯片组集成到了CPU封装内也就是说不需要外部南桥了。这对板卡设计是好消息省掉了PCH的供电、晶振和连到CPU的DMI走线整体BOM成本下降PCB面积也宽松不少。但代价是PCH集成的IO控制器SATA、USB、PCIe、GbE都走CPU内部的互连实际上通道数量还是要按PCH的数据手册来配置。固件侧Tiger Lake支持Intel FSPFirmware Support Package可以用EDK2定制UEFI。我们在COMe模块上跑的是精简版UEFI/BIOS启动到Linux内核非常快没有那些消费级主板的营销动画和多余选项对工业场景更友好。2.2 电源树设计与VRM配置Tiger Lake的电源轨相当多我大致梳理一下当时的设计表。信号轨电压用途来源VCCIN0.6V~1.4V动态CPU核心与核显主供电多相VRM来自12VVCCSA0.9V~1.2VSystem Agent、内存控制器DC-DC来自12VVCCIO0.8V~1.05V内存IO、PCIe IO等DC-DC来自5VVCCST0.8V~1.0V待机维持电源DC-DC来自5VSBVNN0.75V~1.0V低功耗常开电源域DC-DCVCC12/5/3.3固定外设总线和接口载板/模块DC-DCTiger Lake的SVIDSerial Voltage Identification协议比较特殊VRM控制器需要和CPU上的Power Management Controller通信动态调节VCCIN电压。我们用的是英飞凌XDPE132G5多相数字控制器搭配6相DrMOS给VCCIN供电开关频率设在500kHz左右兼顾瞬态响应和效率。这里有个很重要的点上电时序不能像老平台那样随便用电阻分压延迟控制必须由EC或者PCH按照严格的顺序打开各路电源VCCST先起之后VCCIO/VCCSA最后VCCIN任何一路顺序反了都可能直接锁死CPU。Thin Mini-ITX载板输入是19V DC载板先做一级DC-DC降到12V给COMe模块供电同时用一级Buck生成5V/3.3V/5VSB给外设和EC。COMe模块上自己再做窄压方案的降级这样模块既支持12V直接输入也兼容19V/24V输入载板。电源树设计时还有个容易踩的坑就是5VSB与5V之间的隔离COMe规范要求5VSB单独供电在S3/S5状态下5V和3.3V可以关闭但5VSB和VCC_RTC必须保持。2.3 内存与存储DDR4 SO-DIMM和PCIe Gen4 NVMeCOMe模块上我们做了两条SO-DIMM插槽支持DDR4-3200双通道。SO-DIMM和板载DDR4颗粒相比好处是客户可以自己配内存、甚至可以升级这在Thin Mini-ITX上特别重要——它本身就是给系统集成商灵活配置用的。内存布线是整块板子信号完整性要求最高的一环后面第4章我会展开讲。存储方面NVMe走的是CPU直出的PCIe Gen4 x4通道。Thin Mini-ITX上我做了M.2 2280插槽实测读取速度能到6.8GB/s这个性能在嵌入式板卡里相当可观。PCIe Gen4对走线损耗非常敏感所以在布局时我把M.2插槽尽量贴近COMe连接器或CPU缩短走线长度并严格控制过孔数量。另外还保留了2个SATA III接口给需要机械硬盘的场景用。SATA由PCH引出走线要求比PCIe Gen4低得多但我还是在SATA差分对上做了耦合电容方便未来接热插拔背板。2.4 显示、USB和2.5G网络显示输出这层Thin Mini-ITX的规范要求支持LVDS/eDP给内置屏幕桌面级则走DP/HDMI。Tiger Lake的DDI通道都是DP 1.4协议可以做协议转换出HDMI也可以直接做DP。我们在COMe模块上引出两个DP口在Thin Mini-ITX载板上通过DP转HDMI芯片出HDMI同时保留了eDP直接到载板上的eDP连接器可接LVDS转换小板。这个设计比较灵活客户不用改主板就能适配不同屏幕。USB方面PCH内部集成USB 3.2控制器我们引出两个USB 3.2 Gen2 Type-C其中一个复用Thunderbolt 4、两个USB 3.2 Gen2 Type-A和四个USB 2.0排针。对工业相机、数据采集卡这些外设来说USB带宽和供电能力都很关键Type-C 20V/5A供电能力可以做PD协商我们为此在载板上增加了PD控制器支持最高100W输出。网络这块项目选用了Intel I225-V做2.5GbE走PCIe x1通道。Tiger Lake平台没有内置MAC到PHY的1000M方案GbE走PCH内部的LAN控制器但PHY还是外置I225-V功耗不算高但发热明显我特意在PCB上留了足够大的铜皮散热区域不然长时间跑大流量时网卡温度会到80℃以上。2.5 Thunderbolt 4/USB4外部扩展Tiger Lake-U内部集成了Thunderbolt 4控制器但要在板卡上真正跑起来还需要配套的retimer电路和完整的固件配置。我们在Thin Mini-ITX载板上做了两个Type-C口其中一个带Thunderbolt 4认证。这里需要特别注意TBT4的固件在COMe模块上就要烧录好因为它是挂在CPU内部控制器上的载板只负责提供retimer和供电。实测外接雷电显卡坞或万兆网卡都能正常枚举带宽跑满约32Gbps这个扩展能力在SBC产品里很有竞争力。3. Thin Mini-ITX载板与COMe模块分工同源设计的两套物理形态3.1 COMe Type 6电气定义与模块化设计COM Express Type 6的连接器是440pin定义了电源、PCIe、SATA、USB、显示、GPIO等几乎所有信号。设计COMe模块时最关键的是严格按照Type 6的引脚定义把CPU和PCH的信号分配出去不能随意挪动因为载板是全行业通用的。Type 6的供电架构是载板给模块提供12V主电源和5VSB待机电源模块内部再生成CPU所需的各种低压电源。也就是说电源树的分界点在模块边缘载板上的电压转换要提前规划好12V承担主负载VRM输入、外设供电5VSB承担所有待机功耗EC、网卡唤醒、USB唤醒VCC_RTC由电池供。我们做的COMe模块是Compact尺寸95×95mm板厚1.6mm四层板在这个尺寸下不够用最终是8层板。模块上的核心区域包括CPU本体、VRM、内存插槽、eMMC可选、SPI Flash、EC和连接器。由于尺寸限制元件密度非常高布局时我优先保证CPU电源和内存的布局合理性降温铜皮优先供给VRM的DrMOS区域。3.2 Thin Mini-ITX规范的关键约束Thin Mini-ITX的板型尺寸还是170×170mm和标准Mini-ITX一样但规范里有两个硬性约束第一必须用SO-DIMM内存插槽因为立式DIMM太高不满足薄型机箱的空间要求第二19V DC输入优先内部产生的5V/3.3V由板载DC-DC承担而且散热器高度限制在65mm以内方便一体机散热结构设计。这两个约束直接决定了载板布局的优先级。我把COMe连接器放在板子中央靠近CPU散热器位置内存SO-DIMM放在连接器两侧这样的好处是COMe模块和内存之间走线距离最短DDR4信号质量更容易保证。M.2 NVMe插槽放在板子边缘PCIe Gen4走线短且远离电源干扰区。Thin Mini-ITX另一个容易被忽略的点是散热器孔位Intel规范对CPU周围的四个安装孔位置有明确定义这决定了散热器能否直接安装所以孔位必须和热解决方案供应商的安装图一一对应。3.3 一板两用的引脚映射策略Thin Mini-ITX载板本质上是一块按COMe Type 6引脚定义的“应用载板”但比一般载板更强调板型标准化。我们在引脚映射时做了详细的分配表把COMe连接器上的每个引脚和Thin Mini-ITX板载接口一一对应PCIe x16引脚拆分为x4给M.2 NVMex1给I225-V网卡x1给WiFi/BT模块x1备用DDI0 - DP0Type-C口DDI1 - DP转HDMIDDI2 - 预留eDP - 板载eDP连接器可选LVDS板SATA0/SATA1 - 板载SATA 7pin座USB3.0/2.0 - Type-C、Type-A、排针SMBUS和GPIO - 连接到EC实现看门狗、面板按键、电池管理等引脚映射不光是拿一张表填数字还要考虑实际走线可行性和信号分组。比如PCIe信号尽量集中在一个区域避免跨大电流电源区域USB3.0信号要做阻抗控制最好放在内层走线LAN的MDI差分对要远离时钟和电源走线。我们在第一版载板就踩过一次坑LAN信号初始布局绕了远路做了近半米等效长度信号质量报告里眼图直接不合格后来调整布局才解决。4. PCB设计与信号完整性最容易翻车的几个环节4.1 层叠设计和材料选择Tiger Lake这种级别的CPUIO密度高、接口速度高PCB层叠不能省。第一版COMe模块我用的是8层板层叠结构是L1信号、L2地、L3信号、L4电源、L5地、L6信号、L7电源、L8信号。电源层做了分割VCCIN单独占L4一块大面积区域VCCIO/VCCSA共用一个区域但中间留了隔离带。板材方面普通FR4在PCIe Gen4速率下的损耗有点吃紧我选用了国产低损耗板材Df控制在0.004左右这比普通FR4Df约0.018到0.02低了一个数量级。整板成本大概上升15%到20%但为了16GT/s信号的完整性这笔投入值。如果你做第一版打样预算紧张可以只在PCIe Gen4走线层和DDR4走线层用低损耗板材其余层用普通FR4这叫混合层叠成本能省不少。4.2 DDR4走线的实操约束DDR4-3200的布线我用的约束规则可以给你直接抄数据线DQS/DQ组内等长控制在±5mil以内各组DQ到CLK的等长控制在±20mil以内地址/命令/控制线到CLK的等长控制在±10mil以内差分CLK对内长度差控制在±2mil以内实际画板时我将内存数据线分成两组放在不同层保证每层走线数量均衡减少串扰。GND过孔我习惯在内存颗粒周围和SO-DIMM插槽引脚附近密集打一排给信号回流提供低阻抗路径。投板前我打印出所有等长报告逐条复核特别是CLK差分对因为它在内存系统里是基准信号差一点就可能让内存训练失败。这里特别提醒一个坑内存走线时要保持连续的参考平面不能在DDR4走线下方的电源层开大洞尤其是SO-DIMM插座的电源滤波区容易放太多过孔导致参考平面破损。我见过一个案例一条DQ线下方正好是电源分割区导致某组数据信号质量异常内存无法跑到3200MT/s降频到2666才能稳定。4.3 PCIe Gen4信号完整性处理PCIe Gen4速率16GT/s允许的插入损耗预算非常紧张通常不超过12dB16GHz视连接器、走线、过孔而定。我的经验是把CPU到M.2的走线长度控制在8英寸以内过孔不超过2对。COMe连接器本身对信号损耗很大所以我在COMe模块和Thin Mini-ITX载板两个方向上分别加了Diodes PI3EQX1601作为PCIe Gen4 redriver它可以把信号再均衡增强一截实测眼图余量改善明显。过孔处理上PCIe Gen4的过孔残桩stub影响很大我用了背钻工艺把过孔内部未使用的金属段钻掉减少反射。这也是Tiger Lake平台和普通DDR3平台设计上一个明显的成本增加点。PCIe差分阻抗按85Ω设计因为PCIe标准规定板内差分阻抗是85Ω±10%不是常见的100Ω。这一点很多从传统网络设计转过来的工程师容易搞错差别会直接影响眼图质量。4.4 电源去耦和纹波控制CPU电源的去耦不能光靠软件仿真实测更重要。我们的VCORE满载纹波控制在12mV左右这个数据是怎么做到的呢一个是在CPU背面放置高频MLCC我放的是0402和0603规格混合容值从0.1uF到10uF都有覆盖宽频段去耦另一个是VRM的环路补偿参数XDPE132G5可以配置寄存器调节开关频率和死区时间我们最终调到500kHz配合低ESR的聚合物电容瞬态压降控制在规范以内。电源完整性的一个容易忽略点VCCIN回路的测温。DrMOS的发热比CPU本身还猛我们在VRM区域布了大面积铜皮并在DrMOS下面放过孔阵导到内层散热。如果你做的是工业级产品建议在散热器设计时把VRM器件也纳入散热范围不然长时间满载运行DrMOS会热降额严重影响可靠性。5. 固件与调试从点不亮到稳定跑系统5.1 固件环境准备FSP、ME和ECTiger Lake的固件复杂度和老平台完全不是一个量级。你需要几块东西才能让CPU正常工作BIOS/UEFI主体我用EDK2裁剪、Intel FSP负责内存初始化和CPU初始化、MEManagement Engine固件、CMCCSME Configuration、EC固件负责上电时序、风扇、看门狗。ME固件可以在Intel的FIT工具里烧录到SPI Flash中。Flash容量我用的是32MB因为Tiger Lake的ME和BIOS体积都不小还要留出恢复分区。第一次烧录时务必用编程器连Flash芯片备份原始固件万一后面改BIOS改坏了还能用备份恢复。EC这里用了ITE IT8625E它负责开机时序、风扇PWM、系统温度监控和看门狗。EC固件的调试一般是接串口EC代码里加打印观察上电过程中各个电源轨的使能状态。嵌入式开发时串口真的是最靠谱的调试手段没有之一。5.2 先点亮COMe模块再验收载板我做整个项目的顺序是先做COMe模块在模块上完成CPU、内存、VRM、EC、BIOS的基本验证然后再把模块插到Thin Mini-ITX载板上。这样能把问题分层——如果载板点不亮先怀疑载板设计如果模块本身点不亮那问题大概率在模块。COMe模块单独调试时需要一个转接板把连接器信号转成ATX电源和串口排针我用了定制的COMe转ATX载板上面有ATX电源座、串口、PCIe x16插槽和USB/网口方便快速验证。第一次上电时用示波器探针盯住VCCST、VCCIO、VCCSA、VCCIN的时序。电压必须依次出现任何一路超过规范电压范围都会让CPU进入保护状态。我们第一次点不亮的问题出在VNN上。VNN是低功耗常开电源域给CPU内部唤醒逻辑供电纹波要求非常高。我们的DC-DC输出电容少放了一颗大容量MLCC导致VNN在CPU初始化拉载瞬间跌落到阈值以下CPU直接hang住现象是上电后串口无任何输出。补上电容后问题消失。这类问题就是典型的“看起来能点实际点不亮”排查时先把各路电压的跌落都抓下来比猜测快得多。5.3 一次完整的S3挂死排查过程这是我这次项目里耗时最长的一个问题记录一下排查链路帮助大家少走弯路。现象COMe模块跑Linux从S3挂起到内存唤醒后系统随机死机有时几分钟有时几小时日志里看不到明显报错。排查步骤第一步看串口日志。唤醒后内核日志里有PCIe总线错误提示某个PCIe端口link down。怀疑是PCIe位置上的I225-V网卡或WiFi网卡唤醒后未重新初始化但换了网卡还是一样。第二步关掉BIOS里的PCIe ASPM电源管理链路状态功能问题依旧。第三步加长唤醒后延迟在EC固件里把主电源稳定的确认时间从10ms改成30ms问题不再频繁出现但偶发。第四步抓S3唤醒时的电源时序。用示波器同时抓5V、PCH的SUSCLK、PCIe时钟发现唤醒过程中某个PCIe时钟的使能信号比PCIe电源晚出现了约15ms——这个时间段PCIe设备可能已经进入错误状态。后来查载板原理图发现PCIe时钟发生器的OE引脚被连到EC的GPIO而EC在S3期间把该GPIO配置成了输入模式没有保持输出高电平。唤醒流程中EC重新上电时GPIO输出一个短暂的“L”导致PCIe时钟被切断了一会儿。找到根因后修EC固件把该GPIO始终配置为输出高时钟芯片保持常开。重新编译烧录连做1000次S3唤醒循环测试没有一次死机。这个案例给我的教训是S3唤醒挂在PCIe设备上的问题不要只盯着BIOS的电源管理选项EC固件里GPIO状态也是重灾区尤其是那些挂在EC上控制外设时钟使能的引脚在低功耗状态下很容易出现状态漂移。5.4 散热设计和老化验证Thin Mini-ITX的散热器高度限制65mmCPU TDP我们设到28W。实测在环境50℃、满负荷运行时用6热管薄型散热器可以把CPU封装温度压在85℃以内功耗墙不触发降频。如果环境温度更高比如工业现场75℃就必须把TDP功耗墙调到15W或22W或者改用更大的散热器。老化测试我跑了两轮每轮12小时。第一轮用stress-ng压CPU和内存同时循环跑GLmark2给核显加压。第二轮用连续NVMe读写加点网络流量模拟真实业务负载。这期间通过IPMI/看门狗监控CPU温度、主板温度和VRM温度。测试完检查MCEMachine Check Exception错误计数这个很关键——如果MCE为非零说明硬件层面存在不稳定因素哪怕是偶发性错误也必须追根溯源。还有振动测试针对COMe模块的插座连接可靠性。模块插在载板上时如果只靠连接器固定长期振动可能导致信号接触不良。我在模块的四个角落增加了金属螺柱固定载板对应位置留了螺纹孔。这个设计在后续客户应用里证明非常必要有几个客户把板子用在了车载边缘计算场景几个月下来没出现松动问题。6. 实测数据与几个值得直接抄作业的优化6.1 功耗与环境温度实测测试场景输入电压整机电流整机功耗CPU温度室温25℃待机桌面19V0.55A10.5W45℃S3挂起19V0.05A0.95W32℃CPU满载19V2.9A55.1W82℃CPUGPU同时满载19V3.4A64.6W89℃待机功耗0.95W这个数据在Thin Mini-ITX里已经算不错了载板上的EC、网卡、USB控制器在S3下还都通电这是主要耗电来源。如果你需要更低的待机功耗可以考虑在S3时切断2.5G网卡的PHY供电只保留WOL唤醒引脚的电源原理图上预留一个MOS管做控电就能搞定。6.2 电压纹波和接口速率的实际表现VCORE满载纹波约12mVCPU Pin侧测试点DDR4双通道读带宽42GB/smemtester和STREAM实测PCIe Gen4 NVMe读取6.8GB/s2.5G以太网满速吞吐2.37GbpsThunderbolt 4外接NVMe写入2.1GB/s这几个数据基本都在理论值范围内说明信号完整性设计和电源完整性的余量是够的。说实话DDR4的42GB/s比理论峰值51.2GB/s低了不少但这在实际系统中很正常软件栈、内存控制器开销都会影响有效带宽。6.3 后续可以扩展的方向这个平台做完之后我梳理了几个可以继续做的方向供你参考升级平台Tiger Lake后续可以横向迁移到Alder Lake-P或Raptor Lake-PCOMe Type 6的电气定义在Intel移动平台间很接近主要改动集中在VRM、内存训练和FSP版本载板设计原则基本复用。加万兆和网安功能Thin Mini-ITX载板上有富余PCIe通道可以预留一个PCIe x4插槽放万兆网卡或智能网卡适合做边缘防火墙/入侵检测设备。板载LPDDR5版本如果某些客户对内存可靠性要求极高比如不想用插槽可以考虑直接把LPDDR4x/5颗粒贴在模块上去掉SO-DIMM还能进一步压低模块高度。做这类嵌入式板卡最怕的不是技术难题而是在前期选型和流程验证上省时间。选型阶段把平台、形态、接口全部定义清楚PCB阶段把信号完整性和电源完整性做透调试阶段先模块后载板、逐级验证这套方法论走下来你也能避开大多数“暴雷点”。我这次实际过程中最大的体会就是分阶段验证的价值永远高于一次性追求完美设计。先让模块亮起来再谈载板适配比两个同时开工、到交付时才发现问题要节省至少一倍时间。