跳到正文

PCIe 扩展设计:给 RK3588 挂 SATA、NVMe 与网卡

01M-M-RK3588S 核心板

RK3588 的原生 SATA 和网口数量有限,想把设备做成多盘位 NAS、多口网关或者带独立固态盘的高性能盒子,几乎都要靠 PCIe 扩展。而 PCIe 恰恰是最容易「设计对了但性能只有一半」的地方。

先搞清楚有哪些通道,以及它们不能随便分配

RK3588 提供多路 PCIe 控制器,但代数与宽度是芯片固定的组合,不是想怎么分就怎么分。常见的是几路高速加几路低速的搭配,具体哪几路、各自是第几代、几通道,必须逐条查数据手册。

这里有个直接后果:不同封装版本(比如 RK3588 与 RK3588S)的 PCIe 资源不同。做扩展需求较多的产品时,先确认所选型号的通道预算够不够,再谈其他设计。这也是 RK3588 与 RK3588S 选型时最实质的差别之一。

PCIe 上能挂什么

最常见的是四类。固态硬盘,需要 PCIe 三点零四通道才能跑满速度,接在单通道或者第二代链路上会明显受限。SATA 控制器,用一颗桥片就能扩出五到六个 SATA 口,是 NAS 方案的标准做法。网卡,二点五吉或万兆以太网控制器,用来做多口网关或者软路由。无线与蜂窝模块,无线网卡和四代五代通信模块很多走 PCIe 或 USB 接口。

关键在于总带宽是共享的。一条四通道三点零链路的理论带宽大约三十二吉比特每秒,而六块 SATA 硬盘每块六吉比特每秒,加起来三十六吉比特每秒已经超过链路能力。这意味着所有硬盘同时满速访问时,瓶颈在 PCIe 链路而不是硬盘本身。做多盘位产品时必须先算这个账,否则宣传的「六盘位满速」在现场是跑不出来的。

硬件设计上的几个要点

第一是参考时钟。PCIe 需要一百兆赫兹参考时钟,扇出到多个设备时往往需要时钟缓冲器,直接并联会带来信号质量问题。第二是复位时序,复位信号的释放顺序和电源上电顺序有要求,处理不当会导致设备枚举不到。第三是供电,固态硬盘的峰值电流不小,三伏三一路要给足,还要注意 M.2 接口的键位和长度规格。第四是信号完整性,三点零速率对阻抗控制和走线等长有明确要求,布局不当的典型表现是链路训练失败,或者悄悄退化到第一代速率运行。

第四点值得特别强调:链路速率降级是静默发生的。系统能正常认到硬盘,一切看起来都对,只是速度只有预期的几分之一。如果只做功能测试不做速率核对,这个问题会一直带到量产。

怎么验证链路真的跑在预期速率

在 Linux 下用命令行工具查看链路的协商速率和宽度,确认实际值而不是设备支持的最大值;再看内核日志里有没有链路训练相关的告警。这两步应该在样板阶段就做,并且写进硬件验收清单。

如果发现降级,排查顺序通常是:先看供电是否充足、参考时钟是否干净,再查走线阻抗与等长,最后才怀疑芯片配置。

典型方案:系统与数据分离

04A NAS-RK3588 网络存储开发板 这类方案的设计重点就是通过 PCIe 挂接 SATA 或 NVMe 控制器,并与板载存储分工:操作系统跑在板载存储上,数据盘走 PCIe。这样做有两个好处——系统盘和数据盘互不干扰,数据盘即使全部掉线,系统依然能起来并上报故障。

做核心板方案时,高速部分的设计难度可以转移给模块厂商。01M M-RK3588S 核心板 把主控、内存与存储集成在模块内,底板只处理相对低速的外围;01A RP01A-RK3588S-5D32 则是整板形态,适合需要直接投产的场景。选哪种,取决于团队的高速设计能力和量产规模。

结论

PCIe 扩展的设计顺序是:先查清所选型号的通道预算,再按目标外设算总带宽并确认链路不会成为瓶颈,然后处理参考时钟、复位时序、供电和信号完整性,最后在样板阶段实测协商速率。功能通了不等于性能达标,速率核对必须进验收清单。

延伸阅读

原厂工程师对接

需要选型建议、样品或批量报价?

告诉我们应用场景与预计用量,1 个工作日内给出选型建议、交期与报价。

  • 免费选型与方案评估
  • 样品与评估板支持
  • ODM / OEM 定制