SMARC 2.1小型化载板设计实战:从布线到量产的五大经验

发布时间:2026/8/30 16:08:28
SMARC 2.1小型化载板设计实战:从布线到量产的五大经验 去年给客户做一台DIN导轨安装的边缘控制器对方开口就提了一个让人头疼的要求整个主控板必须塞进一个“比巴掌略大”的密封铝壳里同时还要保留双网口、USB 3.0、CAN、DP显示和几个隔离串口。当时对比了几种主流计算机模块方案——Qseven布局紧凑但载板连接器的信号定义比较老COM Express Mini性能够可板对板连接器的体积和高度对薄壳结构太不友好。最后我们的落点选在了SMARC 2.1短模块上围绕它自研了一块100mm×72mm的小型化载板也就是这块“Size-Optimized SMARC 2.1 Carrier Board”。这块载板做出来之后前前后后改了五版踩了高速信号、电源、低温稳定性等一堆坑。这篇东西不是产品介绍而是把我从选型、布局、布线到调试量产这整个链路里觉得最值得说的经验整理出来。如果你正在评估SMARC方案或者准备画一块小尺寸载板应该能从里面找到不少能直接用的判断标准。1. 为什么要做一块小型化载板从客户需求到规范取舍1.1 SMARC 2.1规范里藏着哪些“省面积”的信号变化SMARC 2.1是2019年前后更新的版本相比2.0它在信号定义上做了不少扩展最重要的是把PCIe从Gen2带宽吃到了Gen3同时把eDP/LVDS双通道、USB 3.1、GbETSN这些高速接口整合进了同一条314pin的板对板连接器。很多工程师对“2.1”的印象停留在“更新了引脚表”但实际做载板设计时影响最大的是信号带宽上限变了这对走线阻抗、等长、回流地孔的要求全都上了一个台阶。我建议任何想基于SMARC 2.1做载板的人第一步都要去下载SGET的SMARC 2.1规范文档把X1和X2两条连接器的引脚定义表完整过一遍。尤其要注意那些“Reserved”引脚很多模块厂商会把私有信号比如额外的I2C、UART或深睡眠唤醒线放在保留引脚上载板如果直接悬空不管后面调试时碰到功能缺失会非常难查。与传统COM Express载板动不动就是170mm×170mm的Mini-ITX板型不同SMARC模块本身的物理尺寸只有82mm×50mm短模块或82mm×80mm长模块模块上的连接器是扣在载板正面的。也就是说载板的核心面积其实被模块占掉了一大块真正留给外围电路的空间非常有限。想要做到尺寸优化必须在规范允许的范围内砍掉用不到的I/O并且在局促的面积里安排好连接器、电源、EEPROM、启动配置电阻和保护电路。1.2 板型面积分配先画模块占位再谈其他我最初犯的一个错误是拿到模块的机械图之后习惯性地先把电源、接口这些“自己熟悉的东西”放了进去结果模块落位之后才发现连接器周边全是高速走线区根本没法布线。后面换了一个顺序先在KiCad里放模块占位符和314pin连接器的封装锁定连接器中心坐标然后以连接器为圆心把所有高速信号的BGA扇出区域、GND过孔区域标记出来再做外围划分。以100mm×72mm这个板型为例模块占了大约一半面积剩下的空间大致可以分成三个区域板边接口区、电源区和逻辑配置区。板边接口区放RJ45、USB、DP这类对外连接器电源区放宽压输入保护、DC-DC、滤波电容逻辑配置区放启动配置电阻、系统EEPROM、看门狗和状态指示灯。这里有一个关键点连接器必须放在靠近模块边缘的位置而不是正中央。因为模块插入后自带的连接器是跨在载板上的如果连接器中心远离载板边缘模块的前端会悬空机械上不稳定震动环境下很容易接触不良。工业设备用户把设备装在导轨上天天被机械震动考验这个看起来不大的细节往往决定了产品的长期可靠性。2. 布局篇把每一平方毫米花在刀刃上2.1 314pin连接器与I/O按需保留SMARC 2.1的模块连接器由两条0.5mm间距的板对板连接器组成合计314pin一套对应的连接器焊在载板上通常选用JAE的TX24/TX25系列或Hirose同类产品。这个连接器本身占的面积和高度都不小而且需要额外的定位柱和封装焊盘所以载板布局的第一步就是把连接器封装精确放好绝对不要等布局到一半再挪位置那会导致所有走线全部重来。I/O按需保留是小型化载板最重要的原则。很多方案公司喜欢把所有信号都引出来体现“功能完整”但尺寸优化的板子根本没这个余地。我当时拿着客户的需求清单把用不到的信号全部砍掉不需要MIPI-CSI那整组摄像头信号不引不需要SDIO那组引脚直接空着不需要TDM音频那几根线也不走。只保留双GbE、USB 3.0 Host、DP、CAN、两路隔离串口、GPIO和I2C。这样做的好处非常直接高速信号对布线资源的需求是按组记的少一组USB 3.0就少三个差分对和对应的等长约束少一组MIPI就少四条差分对的绕线空间。在100mm×72mm的板子上这些小空间最终决定了你能不能在不加层的前提下把线走完。2.2 电源树从简宽压输入到5V的单级方案SMARC模块的电源输入范围很宽规范允许3.4V到5.25V大多数模块厂商建议用稳定的5V供电。这意味着载板不一定要做复杂的多路电源树而是可以根据输入来源做单级转换这对小型化非常有利。我在这块载板上用的是9V到36V宽压输入经一颗同步Buck降到5V给模块供电另外单独用一颗低功耗LDO给EEPROM和逻辑配置电路供3.3V。Buck选的是TI的TPS54302额定3A峰值可以到4A以上对小尺寸方案来说是一种非常节省面积的选型。搭配一个功率电感、输入输出电容和反馈电阻网络整组电源电路只占了大概600mm²的面积。这里必须提醒一个实战经验很多模块的数据手册都写了典型功耗5W到15W但实际启动瞬间会有电流尖峰尤其是模块上有多个外设同时枚举时5V电源必须留足余量。我最早一版只按20W设计结果插上双网口加NVMe固态盘开机瞬间电压跌落到了4.3V系统直接反复重启。后面把Buck的电感从4.7µH换到10µH输出电容加大并把输入端的浪涌吸收电容补齐问题才算解决。在载板电源入口我还加了防反接MOS和TVS管。防反接用一颗P-MOS串在输入端即可注意栅极到地之间要放一个几十nF的小电容这个电容在后面第三轮调试中帮我们解决了一个低温掉电的疑难问题后面第四章会细说。2.3 固定、散热与结构件的联动设计小型化载板最大的误区之一是只盯着电气设计把安装孔和散热当PCB投板前的“最后一步”。实际上安装孔的位置直接影响走线通道散热结构则影响元件的布局密度。SMARC模块的发热核心是处理器和周边的电源管理芯片发热量集中在模块背面正中。载板上对应区域应该打散热过孔阵列从顶层到内层或底层形成一个低热阻通道再通过导热垫与铝制外壳接触。对于5W到15W功耗的模块来说这种无风扇散热方案的实测温度比裸板要低20℃以上完全够用。安装孔我建议至少留四个并且要避开连接器底部的定位柱区域和高速走线密集区。开孔的时候要考虑外壳的螺栓头高度否则会顶到模块背面。做过几个项目之后我养成了一个习惯先向结构工程师要到外壳的三维模型把外壳导入PCB设计工具和PCB叠在一起看确认所有元件高度低于壳内空间、安装孔和对外接口一一对齐再开始正式布局。这一步虽然前期多花半天时间却能省掉后期改板的大麻烦。3. 布线篇小尺寸下的高速信号完整性实践3.1 叠层选择4层还是6层关键看SI对于一块100mm×72mm的小板子最常被问到的问题是“4层够不够”。我的回答是如果只跑低速I/O、USB 2.0和百兆网4层没问题但只要涉及PCIe Gen3、USB 3.1、GbE或双通道LVDS/eDP强烈建议上6层。4层板常见的叠层是SIG-GND-PWR-SIG中间的地和电源面虽然完整但高速信号层都在表层对于差分对换层、串扰和阻抗控制来说可操作空间非常有限。6层板我采用的叠层是SIG-GND-SIG-PWR-GND-SIG三个信号层都有完整的参考平面而且两个靠近表层的GND层让高速信号可以很方便地通过过孔回流。代价是成本相同面积6层板比4层板的PCB单价比大概是1.6到1.8倍如果小批量做上千片这个差价会被放大。但对我们这块板而言PCIe Gen3链路是从模块直接到M.2 NVMe插槽的眼图余量本来就不大如果为了省成本用4层板最后调不出来再重新投板时间和工程成本远高于省下的PCB差价。所以最终选了6层并且坚持在信号完整性仿真结果出来之前不降层。3.2 差分对与等长PCIe/USB3/GbE的走线纪律布高速信号时我给自己定了三条硬性纪律第一差分对优先从连接器扇出优先走表层第二换层时每一对必须配至少两个回流地孔第三等长约束以模块连接器焊盘为起点另一端到连接器/插槽焊盘为终点计算出的长度要控制在组内±5mil以内。具体的阻抗目标在SMARC 2.1规范里有明确参考PCIe差分阻抗85ΩUSB 3.0/3.1差分阻抗90ΩGbE差分阻抗100Ω。6层叠层下表层差分对的线宽/线距可以按5mil/7mil这种经验值起步然后根据板厂实际叠层参数微调。千万别直接照抄模块参考设计里的走线宽度因为参考设计是按板厂自己的叠层算的换一家打样可能完全不一样。这里说一个细节差分对等长不是“够长就行”而是要考虑模块连接器的引脚排列。因为连接器引脚不是按信号组顺序排布的PCIe的一条数据差分对可能分布在相邻引脚也可能中间夹着其他信号所以从模块连接器出来的走线很容易形成“长短腿”。我用的方法是先做扇出把连接器引脚通过短走线引到最近的过孔或表层通道然后再统一做等长绕线避免在外面绕了一大圈最后发现起点就错了。3.3 地平面连续性小板最容易踩的坑小板和中大板最大的区别在于空间紧张很多设计者为了走线方便会在内层的地平面上随便开槽或者在高速走线下方挖空铺铜结果造成回流路径断裂信号质量严重劣化。我在这块载板上就吃过这样的亏。第一版USB 3.0走线从连接器出来后为了避开旁边一组电源在内层GND平面上开了一条窄槽结果USB 3.0设备连上后经常掉线示波器看眼图信号幅值低而且抖动明显。后来把这条槽彻底消除重新布线眼图才恢复干净。检查地平面连续性的方法很简单在PCB设计工具里打开内层铜箔显示沿着每条高速信号的回流路径通常是走线正下方的参考平面走一遍看有没有被切断或收窄到小于走线宽度的位置。对于小板来说这一步必须人工检查一遍不能只依赖DRC因为DRC默认不检查这类问题。另外在连接器下方、M.2插座下方和电源输入处放一圈密集的GND过孔能有效降低回流路径的电感。4. 调试篇五轮改板的坑与教训4.1 USB3识别不稳回流过孔不足引起的眼图劣化第一版板卡回来最先暴露的问题就是USB 3.0。具体现象是插U盘大多数时候能识别成USB 3.0但偶尔会掉到USB 2.0换了一根质量更好的线情况稍好但跑大文件传输时还是不稳定。我用示波器加上USB 3.0眼图模板去测发现TX差分对的上升沿有明显振铃眼宽眼高都接近模板下限。查看布线问题出在两组USB 3.0差分对在换层时只放了两个回流地孔而且地孔位置离走线换层点较远。高速信号换层时回流电流需要就近的地孔过渡距离远了就会形成一个大的电流环路辐射和反射都会恶化信号。修改方法把换层点附近的地过孔加到六个左右尽量贴着过孔排列回流路径越短越好。此外我还把TC耦合电容从靠近连接器侧挪到了靠近模块侧保证电容两侧的阻抗参考一致。修改后的版本眼图测试完全通过无论在什么线缆条件下都稳定识别USB 3.0。4.2 PCIe链路降速启动配置引脚和参考时钟的陷阱第二版的主要问题是NVMe SSD明明插在M.2接口上跑AS SSD Benchmark却一直只有Gen2的速度偶尔启动时干脆认不到盘。一开始我怀疑是PCIe走线阻抗偏了但量完特征阻抗85Ω±5%在正常范围内。后来把问题缩小到参考时钟。翻SMARC模块的载板设计参考Carrier Board Design Guide里面明确写着参考时钟差分对的启动配置和展频SSC相关引脚需要通过载板上的上下拉电阻来设定。我仔细检查后傻眼了那组启动配置电阻有一处连错了本来应该下拉28.6MHz/100MHz的100MHz选择结果被悬空或误配上拉成另一档模块默认使能了展频PCIe时钟的抖动超标链路协商直接降速。这个问题非常隐蔽因为默认情况下很多模块会“自动协商”到一个可用状态表面看起来能工作实际性能大打折扣。解决办法是把启动配置电阻按模块厂商要求重连然后进系统用lspci确认链路状态变成正常的Gen3 x4。从那之后我再画载板时都会把启动配置引脚列成一张独立表格逐项核对上下拉状态绝不依赖默认值。4.3 低温掉电防反接电路在低温下的隐性失效第三版改完之后我们做环境试验在-20℃低温箱里跑老化测试系统偶发重启重启间隔完全没有规律有时候几个小时没事有时候连续重启好几次。刚开始以为是模块本身低温问题但把模块拆下来单独用稳压电源供电低温下怎么跑都稳定。问题被拽回到载板的电源部分。排查过程很费劲。用示波器挂在5V输出上在低温箱里观察发现系统重启前5V电压会有一个几百毫秒的跌落深度超过500mV。跌落前输入端VIN电压也有瞬间毛刺。反复对比后怀疑是输入端的防反接P-MOS在低温下工作不稳。查这颗P-MOS的datasheet发现它的栅极阈值电压在-40℃时比25℃时高了不少而我的栅极驱动电路是用一个简单的分压电阻加稳压管实现的低温下驱动余量不足导致MOS管压降增大、输入电压跌落到Buck的欠压关断点。解决方法在栅极到地之间并一颗22nF电容缓解低温下栅极电容变化和分压点波动同时把稳压管换成低温漂移型号。改完之后-30℃连续跑72小时再没出现掉电重启。4.4 改板前的自查清单踩完这些坑我整理了一张自查清单每次改板投出去之前按顺序逐项过类别检查项问题出现的典型症状机械结构安装孔、连接器高度、外壳干涉装壳不进去、模块被顶起电源启动电流余量、低温驱动余量、输入浪涌开机重启、低温掉电时钟配置启动配置引脚上下拉、展频开关PCIe/USB链路降速信号完整性差分等长、回流地孔、参考平面连续眼图劣化、偶发丢包逻辑配置I2C地址冲突、EEPROM在位检测模块无法启动或配置丢失散热散热过孔阵列、导热垫位置长时间运行高温降频这张表我打印出来贴在工位上每次新项目都从第一项开始核对。看起来简单但能拦住大多数“低级但致命”的问题。5. 量产与交付之外这版载板教给我的几件事5.1 DFM审查小批量生产最容易被挑刺的几处到了小批量阶段PCB板厂和贴片厂反馈回来的问题很多是设计阶段可以避免的。比如连接器下面的过孔如果没做塞孔处理回流焊时锡膏会从过孔渗到背面造成短路又比如M.2插座的焊盘间距较小板厂会要求钢网开窗方式和普通IC不一样。费用上100mm×72mm六层板加沉金工艺每片PCB打样价在几十元到上百元之间贴片费用按焊点数算314pin连接器的贴装会比普通芯片贵因为它需要更精准的定位和可能的X-Ray检测。如果产品定位是几千片一年的小批量这些钱值得花但设计时要注意不要为了尺寸优化把元件焊盘设计到极限值留出贴片裕量良率反而更高。5.2 下一版的扩展方向这版载板做完之后我留给下一版的两个扩展方向一是增加M.2 Key E插槽可以挂WiFi 6和蓝牙模块适合做工业无线网关二是预留FPC排线接口把多余的UART、SPI和GPIO转接到扩展板上这样既保持主载板尺寸不变又能满足定制化需求。我看过其他团队做过的SMARC 2.1载板有的走的是“全功能大板”路线有的和我们一样走“尺寸优化”路线。两种方向没有绝对优劣关键看目标产品形态。如果机箱空间宽裕全功能板更容易覆盖更多项目如果客户对外壳尺寸和成本有硬约束小型化载板的竞争力立刻就能体现出来。我个人最大的体会是小型化载板设计最难的并不是把板子画小而是在“砍功能”和“留扩展”之间做取舍在“省面积”和“信号完整性”之间找平衡。每一毫米的缩减背后都是对规范、对模块特性、对生产工艺的反复权衡。这块板子改了五版才稳定下来如果重新做一次我会在动手画第一根走线之前先花更多时间跟结构工程师和客户把需求边界确认清楚——那才是真正让项目少走弯路的起点。