← 返回 Siami 首頁

樂鑫 ESP32-S31 正式亮相:搭載 Sv32 MMU 與 Gigabit 乙太網路,微控制器與 SBC 界線加速模糊

▲ 138 💬 55
樂鑫 ESP32-S31 正式亮相:搭載 Sv32 MMU 與 Gigabit 乙太網路,微控制器與 SBC 界線加速模糊

樂鑫(Espressif)推出全新 ESP32 型號「ESP32-S31」,搭載 Gigabit 乙太網路 MAC、USB 2.0 High-Speed 主控、雙 SD 卡槽以及相機輸入。對 Linux 單板電腦(SBC)來說,這些規格算是標配,但出現在一顆微控制器上就顯得相當罕見。長年與微控制器打交道,一般常見的配置是雙核心、少量 RAM、GPIO 接腳,可能再加個 Wi-Fi。若需要更強的功能,通常會升級到 Raspberry Pi。不過 ESP32-S31 提供的功能遠超過一般微控制器的範疇,樂鑫這次對 CPU 架構也做了大改,讓它比以往任何時候都更接近 SBC 的定位。


硬體周邊:早就超越一般微控制器的範疇(圖片來源:Espressif)

ESP32-S31 最受矚目的是其網路能力,搭載 1000 Mbps 乙太網路 MAC,比起 ESP32-P4 上的 100 Mbps 介面是大幅躍進。樂鑫的開發板透過外接 PHY 與 RJ45 接頭(業界俗稱的 8P8C 連接器)來實現這個介面,連接方式是透過 S31 的 RGMII 介面——RGMII 是達成 Gigabit 速率的關鍵,否則就只會用標準的 RMII。除了網路之外,USB 設計也與一般不同。S31 內建 USB 2.0 High-Speed OTG 控制器,官方開發板將其引出為標準 Type-A 插槽,在 OTG 主控模式下可提供 500 mA 電流。旁邊還有支援雙插槽的 SDIO 主控、可接收 8 至 16 位元的 DVP 相機介面,以及支援最高 24 位元 RGB(加 I8080 與 MOTO6800 面板)的平行 LCD 控制器。另外還有兩組 I2S 控制器(支援硬體藍牙音訊同步)、14 個電容觸控通道、一組 CAN FD 控制器,以及四組 MCPWM 單元。光看這份規格清單,就知道這是一款與以往截然不同的 ESP32。有線網路、USB 主控、相機、顯示器、音訊——這些功能更像是 SBC,而非微控制器,但事情還沒完。


CPU 與記憶體:開始接近 SBC 等級在 CPU 方面,S31 搭載兩顆 32 位元 RISC-V 核心,時脈最高 320 MHz,每顆核心都內建浮點單元(FPU),其中一顆還有 128 位元 SIMD 資料路徑,另外還有一顆獨立的 40 MHz 低功耗核心。每顆核心配備 32 KB L1 指令快取,並共享 64 KB 資料快取。記憶體方面更是值得玩味:S31 支援最高 64 MB 的 PSRAM,透過 250 MHz 的 8 位元 DDR 介面連接,flash 最高也支援 256 MB。相比之下,ESP32-S3 的 PSRAM 介面是與 flash 共用的,這次的改變可說是大幅升級。

一個真正的 MMU

樂鑫很長一段時間都在使用「MMU」這個詞,包括 ESP32-S3 與 ESP32-P4 都是。但這些舊款晶片的 MMU 只是用來把外部 flash 與 PSRAM 映射到定址空間,遠遠談不上現代 MMU 應有的功能——例如行程隔離與分頁表。因此,當樂鑫表示 S31 支援 MMU 時,外界原本以為又是同樣的設計。然而這次有了本質上的改變。在 S31 的 datasheet 中,樂鑫指出核心支援「Sv32 雙層分頁表位址轉譯」並實作了「Machine、Supervisor 與 User 特權等級」。Sv32 是真正的 RISC-V 分頁機制,而同時擁有這三個特權等級,正是讓一般作業系統核心能在 Supervisor 模式下執行、底層韌體在 Machine 模式下運作的關鍵——而這正是 RISC-V 架構 Linux 機器的工作方式。不同於過去在舊款 ESP32 上 hack Linux 的嘗試,S31 從設計之初就內建大量原生 Linux 支援。樂鑫早在八月就釋出了基於 Buildroot 與 U-Boot 的 Linux BSP,內含核心、device tree 與 rootfs。樂鑫雖表示「目前尚不建議用於生產環境」,但重點是:這東西能跑。社群也沒有停下腳步。其中一個移植專案已讓 Linux 6.18 在 Supervisor 模式下運作,並配備幾乎所有硬體的可用驅動程式;另一個基於 Linux 7.1 的版本則支援外接 800x480 LCD 面板,能顯示控制台畫面。能夠插上螢幕、使用有線網路、滑鼠與鍵盤——這些體驗與 SBC 已經相當接近,而非典型微控制器。


記憶體:SBC 競爭中最大的弱點

S31 開始顯得吃力是在 RAM 規格上:晶片內建 512 KB SRAM,市售有兩種版本,分別內含 16 MB 或 32 MB 的封裝內 PSRAM。最高可達 64 MB,但晶片上完全找不到 DRAM 控制器。對比 Milk-V Duo S 動輒 512 MB RAM,S31 確實比較像微控制器多於 SBC。這也是為什麼這些 Linux 版本都選擇從 flash 直接執行核心,以免佔用寶貴的 PSRAM。此外晶片上也沒有 GPU 或 NPU——ESP32-P4 原本具備的影像編碼與 MIPI 介面,在 S31 上被換成了更多無線電。雖然仍有 JPEG 編解碼器、2D 像素處理加速器與 2D DMA,但要在 16 MB PSRAM 上跑完整的 Linux 桌面仍不夠用。至於 Gigabit 乙太網路 NIC 在 320 MHz 時脈下的表現也得打個問號。以最大幀來算,每個封包大約有 3,900 個 CPU 週期;最小幀則只剩約 215 個週期。理論上 PSRAM 最高可達 500 MB/s,或許在大檔案傳輸時能逼近 Gigabit,但若是有大量小封包的場景,要把頻寬跑到極限可能就要存疑了。


無線電:同價位 SBC 少見的配置無線電方面才是 S31 真正的強項,因為同價位的 SBC 通常都省略了內建無線通訊。S31 同時內建 2.4 GHz Wi-Fi 6、藍牙 5.4(含 LE 與 Classic BR/EDR)、以及支援 Thread 與 Zigbee 的 802.15.4 無線電,再加上 Gigabit MAC。Matter 協定可透過 Wi-Fi 與 Thread 運作,而回到藍牙 Classic——能在 ESP32 上看到這個功能其實相當少見,代表舊款音訊裝置也能完美相容。即便開啟這些無線電,功耗表現仍然相當優異:Wi-Fi 接收功耗在 110 至 117 mA 之間,802.11b 15 dBm 發射峰值為 265 mA,雙核心在 320 MHz 下的 modem-sleep 模式則為 91 mA(關閉周邊時脈)或 147 mA(開啟時脈)。這是微控制器等級的功耗曲線,卻搭載了 SBC 等級的周邊配置。


「S31」這個型號命名有點混亂事實上,把這顆晶片命名為「S31」有些奇怪:「S31」暗示是 S3 的改款,但實際上它與標準 S3 幾乎沒什麼關係。樂鑫將 S 系列定義為「高效能、功能豐富的 SoC」,與指令集無關,但兩個產品線最大的差異在於:C 系列使用 RISC-V 核心,S 系列則使用 Xtensa LX7 核心。在 Hackaday 的留言區中,樂鑫的技術行銷經理 Jeroen Domburg 表示:「我們從未打算把 CPU 架構放進型號名稱裡。」他也指出 S31 的核心衍生自 P4,速度接近 S3 的兩倍。可惜的是,S31 的 datasheet 還停留在 v0.5,封面還印著大大的「PRELIMINARY」(預覽版)浮水印。內容雖然詳細且大致一致,但舉例來說,PSRAM 的最高時脈寫成 80 MHz,與樂鑫公布的 250 MHz 直接牴觸。公平地說,文件稍微凌亂對樂鑫來說並不罕見,但這確實證明了 ESP32-S31 才剛進入生命週期的最初階段。Linux 那邊基本上還只是拿來把玩的玩具,這個狀態大概還會持續好一陣子。


結論:S31 不是 SBC,但差距正在縮小

S31 確實不是 SBC,但它是第一款在周邊、頻寬與 CPU 特權模型等多個層面都與現代 SBC 高度重疊的 ESP32。過去幾年,I/O 強的微控制器與 SBC 之間的差距一直在縮小,雖然現在還無法在 16 MB PSRAM 上跑桌面環境,但要跑起一個 Linux 終端機已經不難。而這正是長遠來看(搭配未來的新晶片)讓 ESP32 有機會成為 Raspberry Pi 之外的 SBC 替代方案的第一步。


為什麼這件事重要

ESP32-S31 的出現,標誌著 IoT 微控制器與單板電腦(SBC)之間的界線正在快速模糊。過去這兩類產品涇渭分明:微控制器負責感測器讀取、低功耗通訊、馬達控制等簡單任務;SBC 則負責需要完整作業系統的場景,例如媒體播放、視訊串流、本地 LLM 推論等。但 ESP32-S31 搭載了真正的 Sv32 RISC-V MMU、三個特權等級、以及 Gigabit 乙太網路——這些規格過去只在 SBC 上看到。對開發者社群而言,這意味著幾件事:

  • 整合度更高:未來 IoT 閘道器(gateway)可以把感測器收發、邊緣運算、本地儀表板整合在一顆晶片上,不需要再用 Pi + ESP32 的雙晶片架構
  • 功耗更低:相較於 Raspberry Pi 動輒 5-15W 的待機功耗,ESP32-S31 在 modem-sleep 模式下僅需 91 mA,對電池供電的場景是巨大的優勢
  • 成本更低:ESP32 系列一貫的價格策略,通常落在 SBC 的三分之一到五分之一
  • 學習曲線平緩:既有 ESP32 生態系(Arduino、ESP-IDF、PlatformIO)累積的程式碼、函式庫、教學資源都可以無縫轉移樂鑫早在八月就釋出官方 Linux BSP,加上社群快速跟進的 Linux 6.18 / 7.1 移植,代表這個生態系不是紙上談兵,而是真的可以拿來做 side project 或概念驗證。

數據解讀與質疑雖然 S31 規格亮眼,但仍有幾個值得冷靜看待的限制:

  • 記憶體上限 64 MB:對比 Raspberry Pi 4 的 1-8 GB,差了兩個數量級。這代表 S31 無法跑桌面環境、無法跑 Chrome、無法跑大多數現代開源軟體。能跑的應用大致會被限制在命令列工具、嵌入式服務、低階 IoT 閘道
  • CPU 時脈 320 MHz:與 Raspberry Pi 4 的 1.5 GHz 相比仍有一大段差距。文章原文也提到,在處理小封包的 Gigabit 乙太網路流量時,CPU 週期可能成為瓶頸
  • 無 DRAM 控制器:晶片只能依賴 PSRAM,這在大量記憶體存取的場景下會受限
  • datasheet 仍為 v0.5 預覽版:規格可能有變,正式量產時間未定;PSRAM 80 MHz vs 250 MHz 的不一致就是證據
  • Linux 端尚未生產就緒:樂鑫自己都說「不建議用於生產」,社群移植也仍在早期階段把這些限制看清楚,就不會把 S31 誤認為 Raspberry Pi 殺手。但若把它定位為「SBC 化程度最高的微控制器」或「可跑 Linux shell 的進階 IoT 控制器」,那它的產品定位就完全站得住腳。

編按:本文綜合整理自 XDA Developers 與 Hacker News 討論串,並加入 Siami 編輯部觀點與分析。

網友熱門留言 (5)

#1 Hacker News 網友 @jameshart 0
掛著 ESP32 招牌的開發板之間能力差距越來越大。當有人說「這東西可以在 ESP32 上跑」的時候,要搞清楚需要什麼等級的硬體投資變得很麻煩。
#2 Hacker News 網友 @JulioFerrero 0
我很樂見新的 ESP32 推出,但老實說不太懂它怎麼跑 Linux?ESP32 或任何微控制器的優勢就在於完全掌控——管理記憶體、用很少的資源完成很多事情,我覺得反向操作這個邏輯說不通。
#3 Hacker News 網友 @mstaoru 0
老天爺給了又拿走。P4 的原始速度不夠跑相機應用,但有 MIPI CSI;S31 的原始速度夠了,卻沒有 CSI。
#4 Hacker News 網友 @ValdikSS 0
可惜 Linux 自 7.1 起移除了 RISC-V 的 Execute-in-place(XIP)支援。XIP 允許直接從 NOR flash 執行核心(與應用程式),不用先複製到 RAM。應該有人把它加回來。樂鑫的移植因此只能用 6.18;還有另一個基於 7.1 的移植,不確定是否支援 XIP。
#5 Hacker News 網友 @hwh 0
這篇文章似乎把 MCU(微控制器)和某種尚未揭露的 SBC 搞混了。