SMARC 2.1小型化载板设计实战:从布线到量产的五大经验
2026/8/30 16:08:17 网站建设 项目流程

去年给客户做一台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、GbE(TSN)这些高速接口整合进了同一条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载板,有的走的是“全功能大板”路线,有的和我们一样走“尺寸优化”路线。两种方向没有绝对优劣,关键看目标产品形态。如果机箱空间宽裕,全功能板更容易覆盖更多项目;如果客户对外壳尺寸和成本有硬约束,小型化载板的竞争力立刻就能体现出来。

我个人最大的体会是,小型化载板设计最难的并不是把板子画小,而是在“砍功能”和“留扩展”之间做取舍,在“省面积”和“信号完整性”之间找平衡。每一毫米的缩减,背后都是对规范、对模块特性、对生产工艺的反复权衡。这块板子改了五版才稳定下来,如果重新做一次,我会在动手画第一根走线之前,先花更多时间跟结构工程师和客户把需求边界确认清楚——那才是真正让项目少走弯路的起点。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询