單芯片解決方案,開啟全新體驗——W55MH32 高性能以太網(wǎng)單片機
W55MH32是WIZnet重磅推出的高性能以太網(wǎng)單片機,它為用戶帶來前所未有的集成化體驗。這顆芯片將強大的組件集于一身,具體來說,一顆W55MH32內(nèi)置高性能Arm? Cortex-M3核心,其主頻最高可達216MHz;配備1024KB FLASH與96KB SRAM,滿足存儲與數(shù)據(jù)處理需求;集成TOE引擎,包含WIZnet全硬件TCP/IP協(xié)議棧、內(nèi)置MAC以及PHY,擁有獨立的32KB以太網(wǎng)收發(fā)緩存,可供8個獨立硬件socket使用。如此配置,真正實現(xiàn)了All-in-One解決方案,為開發(fā)者提供極大便利。
在封裝規(guī)格上,W55MH32 提供了兩種選擇:QFN100和QFN68。
W55MH32L采用QFN100封裝版本,尺寸為12x12mm,其資源豐富,專為各種復(fù)雜工控場景設(shè)計。它擁有66個GPIO、3個ADC、12通道DMA、17個定時器、2個I2C、5個串口、2個SPI接口(其中1個帶I2S接口復(fù)用)、1個CAN、1個USB2.0以及1個SDIO接口。如此豐富的外設(shè)資源,能夠輕松應(yīng)對工業(yè)控制中多樣化的連接需求,無論是與各類傳感器、執(zhí)行器的通信,還是對復(fù)雜工業(yè)協(xié)議的支持,都能游刃有余,成為復(fù)雜工控領(lǐng)域的理想選擇。同系列還有QFN68封裝的W55MH32Q版本,該版本體積更小,僅為8x8mm,成本低,適合集成度高的網(wǎng)關(guān)模組等場景,軟件使用方法一致。更多信息和資料請進入http://www.w5500.com/網(wǎng)站或者私信獲取。
此外,本W(wǎng)55MH32支持硬件加密算法單元,WIZnet還推出TOE+SSL應(yīng)用,涵蓋TCP SSL、HTTP SSL以及 MQTT SSL等,為網(wǎng)絡(luò)通信安全再添保障。
為助力開發(fā)者快速上手與深入開發(fā),基于W55MH32L這顆芯片,WIZnet精心打造了配套開發(fā)板。開發(fā)板集成WIZ-Link芯片,借助一根USB C口數(shù)據(jù)線,就能輕松實現(xiàn)調(diào)試、下載以及串口打印日志等功能。開發(fā)板將所有外設(shè)全部引出,拓展功能也大幅提升,便于開發(fā)者全面評估芯片性能。
若您想獲取芯片和開發(fā)板的更多詳細信息,包括產(chǎn)品特性、技術(shù)參數(shù)以及價格等,歡迎訪問官方網(wǎng)頁:http://www.w5500.com/,我們期待與您共同探索W55MH32的無限可能。

第二十章 W55MH32 WOL示例
本篇文章,我們將詳細介紹如何在W55MH32芯片上面實現(xiàn)網(wǎng)絡(luò)喚醒(Wake-on-LAN)功能。
該例程用到的其他網(wǎng)絡(luò)協(xié)議,例如 DHCP,請參考相關(guān)章節(jié)。有關(guān)W55MH32的初始化過程,也請參考Network Install章節(jié),這里將不再贅述。
1 WOL簡介
WOL即網(wǎng)絡(luò)喚醒(Wake-on-LAN)是一種用于通過網(wǎng)絡(luò)遠程喚醒計算機的網(wǎng)絡(luò)標準協(xié)議。它允許通過發(fā)送特定的網(wǎng)絡(luò)數(shù)據(jù)包(即“魔術(shù)包”)來喚醒處于休眠或關(guān)機狀態(tài)的設(shè)備。
2 WOL特點
簡單性:WOL的核心是魔術(shù)包(Magic Packet),其格式非常簡單且固定。魔術(shù)包由102個字節(jié)組成,前6
個字節(jié)固定為0xFF,后續(xù)是目標設(shè)備的MAC地址重復(fù)16次。
設(shè)備待機喚醒:WOL允許設(shè)備在不使用時進入低功耗狀態(tài),如待機、休眠或關(guān)機狀態(tài)。當(dāng)有遠程喚醒需求時
設(shè)備能夠通過接收魔術(shù)包快速恢復(fù)到正常運行狀態(tài),滿足用戶的使用需求。
廣播機制:魔術(shù)包通常是通過UDP廣播的形式發(fā)送,即使設(shè)備的IP地址未知或存在多臺設(shè)備,也能通過廣播包找到目標設(shè)備。
安全性高:WOL協(xié)議基于 MAC地址來識別目標設(shè)備,只有當(dāng)魔術(shù)包中包含的 MAC地址與網(wǎng)卡自身的 MAC地
址匹配時,設(shè)備才會被喚醒。
3 WOL應(yīng)用場景
接下來,我們了解下在W55MH32上,可以使用WOL協(xié)議完成哪些操作及應(yīng)用呢?
遠程喚醒嵌入式設(shè)備:設(shè)備在待機狀態(tài)時,通過網(wǎng)絡(luò)喚醒恢復(fù)工作狀態(tài),如工業(yè)設(shè)備和智能家居設(shè)備。
智能網(wǎng)關(guān)與家庭自動化:通過魔術(shù)包喚醒智能家居網(wǎng)關(guān)設(shè)備,實現(xiàn)控制和管理。
網(wǎng)絡(luò)設(shè)備批量喚醒:管理員通過 WOL技術(shù)批量喚醒多個設(shè)備進行維護和升級。
低功耗 IoT設(shè)備喚醒:IoT設(shè)備在低功耗模式下被喚醒執(zhí)行任務(wù),延長電池壽命。
嵌入式系統(tǒng)遠程管理:設(shè)備在遠程環(huán)境中被喚醒進行配置、管理或故障排除。目標設(shè)備匹配,則該設(shè)備將執(zhí)
行喚醒操作,恢復(fù)到活動狀態(tài)。
4 WOL協(xié)議基本工作流程
1.開啟 WOL功能:被喚醒設(shè)備需要在 BIOS中開啟 WOL功能,或者在操作系統(tǒng)中啟用此功能,確保網(wǎng)絡(luò)接口卡支持并啟用了 WOL。
2.開啟 UDP Socket:被喚醒設(shè)備通常需要開啟一個 UDP Socket監(jiān)聽端口,用于接收來自網(wǎng)絡(luò)的魔術(shù)包(Magic Packet)。
3.接收魔術(shù)包:當(dāng)設(shè)備接收到一個符合標準的魔術(shù)包時,魔術(shù)包中包含了目標設(shè)備的 MAC地址,設(shè)備通過比對 MAC地址來判斷是否應(yīng)該被喚醒。
4.喚醒操作:如果魔術(shù)包中的 MAC地址與目標設(shè)備匹配,則該設(shè)備將執(zhí)行喚醒操作,恢復(fù)到活動狀態(tài)。
5實現(xiàn)過程
接下來,我們在 W55MH32上實現(xiàn)WOL遠程喚醒測試。
注意:測試實例需要PC端和W55MH32處于同一網(wǎng)段。
wol_run()函數(shù)用于處理與UDP Socket相關(guān)的操作,以監(jiān)聽和處理網(wǎng)絡(luò)喚醒魔術(shù)包。這個函數(shù)需要主循環(huán)中調(diào)用,如下所示:
while (1)
{
wol_run(SOCKET_ID, ethernet_buf, local_port);
}
wol_run()函數(shù)內(nèi)容如下:
/** * @brief Wake on Lan run function * @param sn: Socket number * @param buf: ethernet buffer pointer * @param local_port: Local port * @return none **/ void wol_run(uint8_t sn, uint8_t *buf, uint16_t local_port) { switch (getSn_SR(sn)) { case SOCK_UDP: if (getSn_IR(sn) & Sn_IR_RECV) { setSn_IR(sn, Sn_IR_RECV); } if (getIR() & IR_MP) // Received WOL Magic packet based on UDP. { printf("get wake on linern"); setIR(0x10); } break; case SOCK_CLOSED: setIMR(IM_IR4); // Open WOL magic pack interrupt setMR(MR_WOL); // Receive WOL packets socket(sn, Sn_MR_UDP, local_port, 0); printf("%d:Opened, UDP WOL, port [%d]rn", sn, local_port); break; } }
wol_run需要傳入3個參數(shù),分別是socket號,socket緩存以及源端口號。
wol_run()函數(shù)通過不斷檢查socket狀態(tài),當(dāng)socket處于SOCK_CLOSED狀態(tài)時,會創(chuàng)建一個UDP模式的socket,并開啟WOL功能以及中斷,當(dāng)socket處于SOCK_UDP模式時,只需不斷的監(jiān)聽中斷寄存器,當(dāng)W55MH32收到魔法包時,IR寄存器的MP位(0x10)生效,此時可以進行喚醒操作。
6運行結(jié)果
燒錄例程運行后,首先進行了PHY鏈路檢測,然后通過DHCP設(shè)置網(wǎng)絡(luò)信息,通過網(wǎng)絡(luò)調(diào)試助手發(fā)送魔術(shù)包實現(xiàn)遠程喚醒。使用sockettest網(wǎng)絡(luò)助手發(fā)送hex格式數(shù)據(jù)需要勾選Enable $# command選項在每個數(shù)據(jù)前面加上$符號,注意不能有空格,空格會被轉(zhuǎn)換為0X20。
注:(若使用其他網(wǎng)絡(luò)調(diào)試助手發(fā)送HEX格式即可)
如下圖所示:


7總結(jié)
本文講解了如何在 W55MH32芯片上實現(xiàn)網(wǎng)絡(luò)喚醒(WOL)功能,通過實戰(zhàn)例程展示了從設(shè)置 UDP Socket監(jiān)聽魔術(shù)包到接收并處理魔術(shù)包實現(xiàn)設(shè)備喚醒的完整過程。文章詳細介紹了 WOL的概念、特點、應(yīng)用場景、基本工作流程,幫助讀者理解其在遠程設(shè)備管理和節(jié)能方面的實際應(yīng)用價值。
下一篇文章將聚焦 Low Power模式,解析調(diào)節(jié)PHY速率的方法,根據(jù)場景調(diào)節(jié)不同的 PHY速率以達成低功耗目標,敬請期待!
WIZnet是一家無晶圓廠半導(dǎo)體公司,成立于 1998年。產(chǎn)品包括互聯(lián)網(wǎng)處理器 iMCU?,它采用 TOE(TCP/IP卸載引擎)技術(shù),基于獨特的專利全硬連線 TCP/IP。iMCU?面向各種應(yīng)用中的嵌入式互聯(lián)網(wǎng)設(shè)備。
WIZnet在全球擁有 70多家分銷商,在香港、韓國、美國設(shè)有辦事處,提供技術(shù)支持和產(chǎn)品營銷。
香港辦事處管理的區(qū)域包括:澳大利亞、印度、土耳其、亞洲(韓國和日本除外)。
審核編輯 黃宇
-
嵌入式
+關(guān)注
關(guān)注
5198文章
20449瀏覽量
334043 -
以太網(wǎng)
+關(guān)注
關(guān)注
41文章
5998瀏覽量
180835
發(fā)布評論請先 登錄
第二十章 淺談BKP
第二章 W55MH32 DHCP示例
第五章 W55MH32 UDP示例
第九章 W55MH32 HTTP Server示例
第十章 W55MH32 SNTP示例
第十五章 W55MH32 SNMP示例
第十六章 W55MH32 PING示例
第二十一章 W55MH32 PHY配置示例
第二十二章 W55MH32 MQTT&Aliyun示例
第二十三章 W55MH32 MQTT_OneNET示例
第二十五章 W55MH32 TCP_Server_Multi_Socket示例
第二十六章 W55MH32?上位機搜索和配置示例
第二十七章 W55MH32?Interrupt示例
第二十九章 W55MH32 Modbus_TCP_Server示例
第三十章 W55MH32 HTTP_Server&NetBIOS示例
第二十章 W55MH32 WOL示例
評論