标签: ESP32-P4

  • 车载 HMI 的 30 FPS:SPI 与 MIPI-DSI 显示链路差在哪

    结论:三块 ESP32-P4 板上的「30 FPS」是验收目标,不是已达成的硬件事实。3.5 寸走 SPI(ST7796),4.3 与 5 寸走 MIPI-DSI 2-lane,显示链路不同;按 16 位色深计算,30 FPS 的裸像素带宽需求依次约为 9.22、23.04、55.30 MB/s。三块板必须分别实测满屏与局部刷新,不能用同一套 HMI 代码推断性能相同。

    先把「30 FPS」定性:它是验收目标,不是硬件事实

    很多方案文档会把 30 FPS 直接写进规格,仿佛它已经实现。在这三块板上不能这么写:30 FPS 是验收目标,尚非硬件事实。3.5 寸的 SPI 显示链路与另外两块 MIPI-DSI 板子不同,需要分别测量满屏刷新、局部刷新、PSRAM 和总线占用。结论很直接——不能因为三块板跑的是同一套 HMI 代码,就推断三者的性能相同。

    三条链路的物理差异在哪

    SPI 是一条同步串行总线:时钟由主控产生,数据按位依次发送,通常还要和同一总线上的其他外设分时共享。MIPI-DSI 是显示专用的高速差分接口,用 1 条或多条 lane 并行传像素数据,天生为刷屏设计。这里的差别不在「谁更快」,而在它是共享总线还是专用通道。

    三块板的分工正好卡在这条线上:3.5 寸用 ST7796 走 SPI 并带 FT6336 触摸;4.3 寸和 5 寸用 MIPI-DSI 2-lane。把它写成一句话:3.5 寸是在一条通用总线上刷屏,另外两块是在专用通道上刷屏,后者的理论余量更大,但这只是起点,不是结论。

    裸带宽算一遍:每块板每帧要搬多少字节

    先算清楚工作量,再谈能不能做到。下表按 16 位色深(RGB565)与 30 FPS 上限计算,给出的是裸像素带宽需求——是推导值,不等于实测帧率,也不包含触摸、音频、网络占用的余量。

    板卡 原生像素 横屏 UI 目标 显示接口 每帧字节(16 位) 30 FPS 裸带宽需求
    ESP32-P4-WIFI6-Touch-LCD-3.5-EN 320×480 原生竖屏 SPI,ST7796 307,200 B(约 300 KiB) 约 9.22 MB/s
    ESP32-P4-WIFI6-Touch-LCD-4.3 480×800 800×480 MIPI-DSI 2-lane 768,000 B(约 750 KiB) 约 23.04 MB/s
    ESP32-P4-WIFI6-Touch-LCD-5-C 720×1280 1280×720 MIPI-DSI 2-lane 1,843,200 B(约 1.76 MiB) 约 55.30 MB/s

    这张表已经说明了为什么不能一把尺子量三块板:5 寸屏每帧要搬的字节是 3.5 寸的 6 倍。同样的动画效果,在 3.5 寸上可能宽裕,在 5 寸上就是六倍的搬运量。反过来说,「屏小就好做」也不成立——3.5 寸的接口是三者中最受限的一条。

    带宽够了仍然可能掉帧:PSRAM 与总线占用

    像素带宽只是必要条件,不是充分条件。真正决定帧率的是数据从哪来、经过谁、在哪里排队:如果帧缓冲放在 PSRAM,每一次刷屏都要从 PSRAM 读一遍再送到屏上,而 PSRAM 的访问带宽同时还要被其他任务分享。这就是为什么测量清单里必须包含 PSRAM 占用和总线占用,而不只是看屏的接口型号。

    局部刷新是另一条关键路径。赛道仪表上大量区域是静态的,只有转速、速度、G 值在变。只重绘变化区域,可以把每帧的搬运量降到远低于全屏的值;这一点对 SPI 链路尤其重要,因为它本来就没有多少余量。要求「满屏 30 FPS」和「界面 30 FPS 感受」是两件不同的事,验收时必须分开定义。

    尺寸不是唯一变量:三块板的其它差异

    把三块板当成「除了屏大小都一样」是常见误判。至少 Flash、触摸 IC 和板载传感器的记载就不同。

    项目 P4-3.5-EN P4-4.3 P4-5-C
    主控 ESP32-P4NRW32 + ESP32-C6 ESP32-P4NRW32 + C6-MINI-1 ESP32-P4NRW32 + C6-MINI-1
    PSRAM 32MB 32MB 32MB
    Flash 16MB 32MB 32MB
    触摸 IC FT6336(I2C) 概览页未列 概览页未列
    板载 IMU Wiki 未列 Wiki 未列 Wiki 未列
    资料完整度 概览页未列板载 IMU 概览页未列触摸 IC 概览页未列触摸 IC;采购记录为带摄像头版

    三点提示:其一,4.3 与 5 寸的触摸 IC 在概览页里没有列出,需要从官方资料继续查,不能凭经验填;其二,三块 P4 板 Wiki 均未列板载 IMU,G 值这类数据要外接传感器并单独核实;其三,外接传感器与车源同样要单独设计——芯片的 TWAI 外设不等于可直接接车载 CAN,车电保护、隔离收发器、车型信号和接插件都要另做。

    该测什么:四项,缺一不可

    1. 满屏刷新——全屏一次性重绘,记录实测帧时间与掉帧情况。
    2. 局部刷新——只重绘变化区域,观察帧率与画面一致性。
    3. PSRAM 占用——帧缓冲与素材常驻后的可用余量,以及刷屏期间的峰值占用。
    4. 总线占用——SPI 链路要单独看总线在刷屏、触摸、SD 之间的分时表现。

    四项都要在完整功能固件下测量,不能用只点屏的最小 demo 代替。现有 P4 共用工程目前只有模拟速度、转速和失联首屏,趋势、行程、诊断和真实 OBD 网关尚未开发,因此当下的帧率数据不代表整机表现。

    常见问题

    三块 P4 板现在能做到 30 FPS 吗?

    不能下这个结论。30 FPS 是验收目标而非硬件事实,需要按满屏刷新、局部刷新、PSRAM 和总线占用四项分别在完整功能固件下实测,目前没有可引用的实测数据。

    MIPI-DSI 的 4.3 和 5 寸一定比 SPI 的 3.5 寸流畅吗?

    不能直接比较。接口只是起点,实际帧率还取决于 PSRAM 访问带宽、DMA 配置、局部刷新策略与总线占用。5 寸每帧搬运量是 3.5 寸的 6 倍,接口更宽不代表结果更好,必须各自实测。

    为什么 3.5 寸的 SPI 链路更受关注?

    因为 SPI 是共享总线,刷屏要和同一总线上的其它外设分时,且每帧 307,200 字节的搬运量没有多少余量。局部刷新对它的价值最大,也最需要验证。

    外接 OBD 会占用显示带宽吗?

    不会直接占用显示接口,但会通过 CPU 与内存访问间接竞争。芯片的 TWAI 外设不等于可直接接车载 CAN,车电保护与隔离收发器要另做;总线占用必须在完整功能固件下测量才能反映真实竞争。

    本文数据来自星核火花赛车科技内部车载仪表研究项目的《五块赛道产品候选板硬件事实表》(核查日期 2026-10-03)。表中带宽为按 16 位色深与 30 FPS 推导的裸像素需求,非实测帧率;「30 FPS」保留为待验证的验收目标。