單芯片解決方案,開啟全新體驗——W55MH32 高性能以太網(wǎng)單片機(jī)
W55MH32是WIZnet重磅推出的高性能以太網(wǎng)單片機(jī),它為用戶帶來前所未有的集成化體驗。這顆芯片將強(qiáng)大的組件集于一身,具體來說,一顆W55MH32內(nèi)置高性能Arm? Cortex-M3核心,其主頻最高可達(dá)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)模組等場景,軟件使用方法一致。更多信息和資料請進(jì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ā)板的更多詳細(xì)信息,包括產(chǎn)品特性、技術(shù)參數(shù)以及價格等,歡迎訪問官方網(wǎng)頁:http://www.w5500.com/,我們期待與您共同探索W55MH32的無限可能。

第二十章 W55MH32 WOL示例
本篇文章,我們將詳細(xì)介紹如何在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ò)遠(yuǎn)程喚醒計算機(jī)的網(wǎng)絡(luò)標(biāo)準(zhǔn)協(xié)議。它允許通過發(fā)送特定的網(wǎng)絡(luò)數(shù)據(jù)包(即“魔術(shù)包”)來喚醒處于休眠或關(guān)機(jī)狀態(tài)的設(shè)備。
2 WOL特點
簡單性:WOL的核心是魔術(shù)包(Magic Packet),其格式非常簡單且固定。魔術(shù)包由102個字節(jié)組成,前6
個字節(jié)固定為0xFF,后續(xù)是目標(biāo)設(shè)備的MAC地址重復(fù)16次。
設(shè)備待機(jī)喚醒:WOL允許設(shè)備在不使用時進(jìn)入低功耗狀態(tài),如待機(jī)、休眠或關(guān)機(jī)狀態(tài)。當(dāng)有遠(yuǎn)程喚醒需求時
設(shè)備能夠通過接收魔術(shù)包快速恢復(fù)到正常運行狀態(tài),滿足用戶的使用需求。
廣播機(jī)制:魔術(shù)包通常是通過UDP廣播的形式發(fā)送,即使設(shè)備的IP地址未知或存在多臺設(shè)備,也能通過廣播包找到目標(biāo)設(shè)備。
安全性高:WOL協(xié)議基于 MAC地址來識別目標(biāo)設(shè)備,只有當(dāng)魔術(shù)包中包含的 MAC地址與網(wǎng)卡自身的 MAC地
址匹配時,設(shè)備才會被喚醒。
3 WOL應(yīng)用場景
接下來,我們了解下在W55MH32上,可以使用WOL協(xié)議完成哪些操作及應(yīng)用呢?
遠(yuǎn)程喚醒嵌入式設(shè)備:設(shè)備在待機(jī)狀態(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è)備進(jìn)行維護(hù)和升級。
低功耗 IoT設(shè)備喚醒:IoT設(shè)備在低功耗模式下被喚醒執(zhí)行任務(wù),延長電池壽命。
嵌入式系統(tǒng)遠(yuǎn)程管理:設(shè)備在遠(yuǎn)程環(huán)境中被喚醒進(jìn)行配置、管理或故障排除。目標(biāo)設(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è)備接收到一個符合標(biāo)準(zhǔn)的魔術(shù)包時,魔術(shù)包中包含了目標(biāo)設(shè)備的 MAC地址,設(shè)備通過比對 MAC地址來判斷是否應(yīng)該被喚醒。
4.喚醒操作:如果魔術(shù)包中的 MAC地址與目標(biāo)設(shè)備匹配,則該設(shè)備將執(zhí)行喚醒操作,恢復(fù)到活動狀態(tài)。
5實現(xiàn)過程
接下來,我們在 W55MH32上實現(xiàn)WOL遠(yuǎn)程喚醒測試。
注意:測試實例需要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)生效,此時可以進(jìn)行喚醒操作。
6運行結(jié)果
燒錄例程運行后,首先進(jìn)行了PHY鏈路檢測,然后通過DHCP設(shè)置網(wǎng)絡(luò)信息,通過網(wǎng)絡(luò)調(diào)試助手發(fā)送魔術(shù)包實現(xiàn)遠(yuǎ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è)備喚醒的完整過程。文章詳細(xì)介紹了 WOL的概念、特點、應(yīng)用場景、基本工作流程,幫助讀者理解其在遠(yuǎn)程設(shè)備管理和節(jié)能方面的實際應(yīng)用價值。
下一篇文章將聚焦 Low Power模式,解析調(diào)節(jié)PHY速率的方法,根據(jù)場景調(diào)節(jié)不同的 PHY速率以達(dá)成低功耗目標(biāo),敬請期待!
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)注
5200文章
20475瀏覽量
334442 -
以太網(wǎng)
+關(guān)注
關(guān)注
41文章
6017瀏覽量
180953
發(fā)布評論請先 登錄
第二十章 淺談BKP
第二章 W55MH32 DHCP示例
第五章 W55MH32 UDP示例
第九章 W55MH32 HTTP Server示例
第十章 W55MH32 SNTP示例
第十五章 W55MH32 SNMP示例
第十八章 W55MH32 FTP_Server示例
第二十一章 W55MH32 PHY配置示例
第二十二章 W55MH32 MQTT&Aliyun示例
第二十三章 W55MH32 MQTT_OneNET示例
第二十五章 W55MH32 TCP_Server_Multi_Socket示例
第二十六章 W55MH32?上位機(jī)搜索和配置示例
第二十七章 W55MH32?Interrupt示例
第二十九章 W55MH32 Modbus_TCP_Server示例
第三十章 W55MH32 HTTP_Server&NetBIOS示例
第二十章 W55MH32 WOL示例
評論