ENC28J60 以太網(wǎng)模塊(上)
ENC28J60 作為 Microchip 推出的單芯片 10Mbps 以太網(wǎng)控制器,憑借 SPI 接口的輕量化設(shè)計(jì)、超低功耗特性與高集成度,成為資源受限物聯(lián)網(wǎng)設(shè)備(如工業(yè)傳感器、智能電表、嵌入式網(wǎng)關(guān))實(shí)現(xiàn)有線聯(lián)網(wǎng)的核心選擇。其本質(zhì)是通過硬件集成 MAC 層協(xié)議與部分物理層功能,將復(fù)雜的以太網(wǎng)通信邏輯封裝為簡(jiǎn)單的 SPI 指令交互,讓無原生以太網(wǎng)接口的 MCU(如 STM32F103、ATmega328P)僅需 3-4 個(gè) GPIO 引腳即可接入有線網(wǎng)絡(luò),同時(shí)兼顧低功耗與成本控制 —— 相較于傳統(tǒng) PCI-E 以太網(wǎng)芯片,ENC28J60 的靜態(tài)工作電流僅 1.6mA(10Mbps 半雙工模式),休眠模式電流低至 200nA,完美適配電池供電或工業(yè)低功耗場(chǎng)景,這一特性使其在需長(zhǎng)期穩(wěn)定運(yùn)行且不便頻繁維護(hù)的設(shè)備中極具優(yōu)勢(shì)。
從硬件架構(gòu)來看,ENC28J60 采用高度集成化設(shè)計(jì),單芯片內(nèi)包含 MAC 控制器、10BASE-T 物理層收發(fā)器、8KB SRAM 緩沖區(qū)、硬件 CRC 校驗(yàn)?zāi)K與 SPI 接口控制器五大核心單元,無需外部額外元器件即可構(gòu)建完整以太網(wǎng)通信鏈路。其中 8KB SRAM 緩沖區(qū)的分區(qū)設(shè)計(jì)尤為關(guān)鍵,默認(rèn)劃分為 2KB 發(fā)送緩沖區(qū)與 6KB 接收緩沖區(qū),支持最大 1518 字節(jié)的以太網(wǎng)幀(符合 IEEE 802.3 標(biāo)準(zhǔn)),用戶可通過 SPI 指令配置緩沖區(qū)邊界寄存器(如 ERXST、ERXND)調(diào)整分區(qū)比例,以適配不同場(chǎng)景下的收發(fā)數(shù)據(jù)量需求 —— 例如在 HTTP OTA 固件下載場(chǎng)景中,可將接收緩沖區(qū)擴(kuò)容至 7KB,減少因緩沖區(qū)不足導(dǎo)致的幀丟失;而在僅需周期性上報(bào)數(shù)據(jù)的傳感器場(chǎng)景中,2KB 接收緩沖區(qū)即可滿足需求,剩余空間可降低 SRAM 功耗。硬件 CRC 校驗(yàn)?zāi)K則大幅減輕 MCU 負(fù)擔(dān),模塊會(huì)自動(dòng)對(duì)接收幀進(jìn)行 CRC32 計(jì)算并與幀尾校驗(yàn)值比對(duì),僅將校驗(yàn)通過的幀存入接收緩沖區(qū),同時(shí)在發(fā)送幀時(shí)自動(dòng)生成 CRC 校驗(yàn)字段,避免 MCU 因軟件計(jì)算校驗(yàn)值占用大量時(shí)鐘周期,這對(duì)主頻僅 8MHz 的 8 位 MCU 而言至關(guān)重要。
ENC28J60 與 MCU 的通信完全依賴 SPI 接口,其 SPI 交互遵循 “寄存器地址 + 操作指令 + 數(shù)據(jù)” 的三段式協(xié)議,支持最高 10MHz 的 SPI 時(shí)鐘頻率(實(shí)際應(yīng)用中常配置為 4-8MHz 以平衡穩(wěn)定性與速率)。MCU 通過拉低 CS(片選)引腳啟動(dòng)通信,先發(fā)送 8 位操作指令(如讀寄存器 0x00、寫緩沖區(qū) 0x20),再發(fā)送 8 位寄存器地址或緩沖區(qū)偏移量,最后完成數(shù)據(jù)讀寫 —— 例如讀取接收幀長(zhǎng)度時(shí),MCU 需先發(fā)送 “讀寄存器” 指令 0x03,再發(fā)送接收幀長(zhǎng)度寄存器地址 0x1A,隨后讀取 2 字節(jié)數(shù)據(jù)即為當(dāng)前接收幀的字節(jié)數(shù);寫入發(fā)送幀時(shí),則需先發(fā)送 “寫緩沖區(qū)” 指令 0x20,再發(fā)送發(fā)送緩沖區(qū)起始地址 0x00,隨后連續(xù)寫入以太網(wǎng)幀數(shù)據(jù)(從目的 MAC 地址到數(shù)據(jù)字段),最后通過寫入發(fā)送控制寄存器(ETXST)觸發(fā)幀發(fā)送。這種簡(jiǎn)潔的 SPI 交互邏輯,使得即使是資源有限的 8 位 MCU 也能輕松實(shí)現(xiàn)以太網(wǎng)通信,無需復(fù)雜的協(xié)議棧適配,僅需封裝 10-15 個(gè)基礎(chǔ) SPI 操作函數(shù)即可完成核心功能開發(fā)。





