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

第一章 W55MH32網絡初始化示例
W55MH32芯片展現出卓越的性能優勢。其內核選用 32位的 Arm? Cortex?-M3 Core,運行主頻能夠達到令人矚目的 216MHz,這為高效的數據處理提供了堅實保障。芯片配備了 1024KB的 FLASH以及 96KB的 SRAM,大容量的存儲配置足以滿足復雜程序和數據的存儲需求。同時,它對外設的支持能力強大,最高可支持 61個 GPIO,極大地拓展了其應用的多樣性和靈活性。
尤為值得一提的是,W55MH32芯片搭載了 WIZnet的 TCP/IP卸載引擎 (TOE),該引擎整合了全硬件 TCP/IP協議棧、MAC以及 PHY。這種高度集成化的設計使得僅需這一顆芯片,就能輕松實現嵌入式以太網應用,顯著降低了開發的復雜性和成本,為嵌入式以太網的應用開發帶來了極大的便利與高效性,是嵌入式以太網項目的首選芯片。
本篇文章我們將詳細介紹如何在W55MH32芯片上面使用TOE功能,初始TOE引擎并進行網絡初始化配置,開啟以太網章節教程。
關于TOE的寄存器信息請參考“W55MH32 參考手冊“的第9章”TCP/IP卸載引擎(TOE)“。
1 TCP/IP卸載引擎(TOE)簡介
TCP/IP卸載引擎(TOE)是一個嵌入式全硬件 TCP/IP以太網控制器,它可以提供更簡潔的嵌入式網絡接入方案。10/100M以太網數據鏈路層(MAC)及物理層(PHY),使得用戶使用單芯片就能夠在他們的應用中拓展網絡連接。
久經市場考驗的 WIZnet全硬件 TCP/IP協議棧支持 TCP, UDP, IPv4, ICMP,ARP,IGMP以及 PPPoE協議。 內嵌 32K字節片上緩存以供以太網包處理。使用 TCP/IP卸載引擎(TOE),只需要一些簡單的 Socket編程就能實現以太網應用。這將會比其他嵌入式以太網方案更加快捷、簡便。用戶可以同時使用 8個硬件 Socket獨立通訊。為了減少系統能耗, 提供了網絡喚醒模式(WOL)及掉電模式供客戶選擇使用。
2網絡地址信息簡介
網絡地址信息是計算機網絡中用于標識和定位設備、主機、網絡等資源的數字標識符,在網絡通信中起著至關重要的作用,它能幫助數據包在不同的網絡節點間傳遞并到達目標設備。網絡地址通常由IP地址、子網掩碼、網關地址及DNS地址等組成,在不同層級上起著不同的作用。
注意:本文及后續文章的IP地址皆為IPv4版本。
IP地址:IP地址是計算機網絡中用于唯一標識設備的地址。每臺連接到網絡上的設備都有一個IP地址,用于在網絡上進行通信。通常以四個點分十進制數表示,每個數值的范圍為0-255,例如:192.168.1.1。
子網掩碼:子網掩碼用于將一個IP地址劃分為網絡部分和主機部分。子網掩碼的1對應的IP地址部分為網絡地址,0對應的IP地址為主機地址,例如一個設備的IP地址為192.168.1.100,子網掩碼為255.255.255.0,使用IP地址和子網掩碼做與運算(AND運算)得出192.168.1.0,則說明該設備屬于192.168.1.0網段設備,如果他想與192.168.2.0網段的設備進行通訊,則需要將數據交給網關進行處理。
網關地址:網關地址是當設備需要訪問不同網絡時,數據包首先經過的設備的IP地址。這個設備通常是網絡邊緣的路由器或防火墻,幫助本地設備與外部網絡(如互聯網)通信。
DNS地址:DNS地址是域名系統的IP地址,DNS是用于將易于記憶的域名轉換為計算機能夠理解的IP地址。例如,當您在瀏覽器中鍵入www.example.com時,DNS服務器將把www.example.com這個域名解析為相應的IP地址(可能是192.168.1.1或其他)。一般我們的DNS地址設置為公共DNS服務器地址(例如中國電信提供的114.114.114.114),也可以設置為私有DNS服務器地址(例如在您自己的網絡中運行的服務器)。
除此之外,還有MAC地址,即硬件地址,也叫物理地址。
MAC地址:MAC地址是網絡接口卡在數據鏈路層(OSI模型第二層)使用的唯一標識符。每個網絡設備都應該被分配有一個唯一的MAC地址,用于在局域網中表示設備。它的長度為6字節,通常以16進制格式表示。前三個字節標識了設備制造商,例如WIZnet的設備的MAC地址前三個字節為00 08 DC,后三個字節表示該廠商的不同設備。需要注意的是,MAC地址的首字節必須為偶數,奇數則為組播地址。
注意:當IP地址沖突和MAC地址沖突時,都會導致網絡無法通信。
3實現過程
接下來,我們在W55MH32上實現網絡初始化的功能。
注意:測試實例需要PC端和W55MH32處于同一網段。
步驟一:定義網絡地址信息,并設置DHCP模式為靜態地址模式
/* network information */ wiz_NetInfo default_net_info = { .mac = {0x00, 0x08, 0xdc, 0x12, 0x22, 0x12}, .ip = {192, 168, 1, 30}, .gw = {192, 168, 1, 1}, .sn = {255, 255, 255, 0}, .dns = {8, 8, 8, 8}, .dhcp = NETINFO_STATIC };
步驟二:初始化硬件
/* hardware initialization */ rcc_clk_config(); delay_init(); console_usart_init(115200); tim3_init();
步驟三:初始化TOE引擎并檢測PHY狀態
1. /* wiztoe init */ 2. wiz_toe_init(); 3. 4. wiz_phy_link_check();
wiz_phy_link_check函數主要靠讀取PHY寄存器來檢測PHY連接狀態,函數內容如下:
/** * @brief Ethernet Link Detection */ void wiz_phy_link_check(void) { uint8_t phy_link_status; do { delay_ms(1000); ctlwizchip(CW_GET_PHYLINK, (void *)&phy_link_status); if (phy_link_status == PHY_LINK_ON) { printf("PHY linkrn"); wiz_print_phy_info(); } else { printf("PHY no linkrn"); } } while (phy_link_status == PHY_LINK_OFF); }
步驟四:設置網絡地址信息
network_init(ethernet_buf,&default_net_info);
network_init函數的作用則是將步驟1定義的網絡地址信息設置到TOE引擎中。
如果DHCP模式為NETINFO_DHCP,則執行DHCP進程去更新網絡地址信息為DHCP獲取的網絡地址信息。如果是NETINFO_STATIC模式則直接設置靜態網絡地址信息,并打印設置的網絡地址信息。
函數定義如下:
/** * @brief set network information * * First determine whether to use DHCP. If DHCP is used, first obtain the Internet Protocol Address through DHCP. * When DHCP fails, use static IP to configure network information. If static IP is used, configure network information directly * * @param sn: socketid * @param ethernet_buff: * @param net_info: network information struct * @return none */ void network_init(uint8_t *ethernet_buff, wiz_NetInfo *conf_info) { int ret; wizchip_setnetinfo(conf_info); // Configuring Network Information if (conf_info->dhcp == NETINFO_DHCP) { ret = wiz_dhcp_process(0, ethernet_buff); if (ret == 0) { conf_info->dhcp = NETINFO_STATIC; wizchip_setnetinfo(conf_info); } } print_network_information(); }
步驟五:回讀IP地址并打印PING提示信息
wizchip_getnetinfo(&net_info);
printf("please try ping %d.%d.%d.%drn", net_info.ip[0], net_info.ip[1], net_info.ip[2], net_info.ip[3]);
4運行結果
燒錄例程運行后,首先可以看到進行了PHY鏈路檢測,然后打印了設置的網絡地址信息以及PING提示信息。

使用PC端PING W55MH32的IP地址(192.168.1.30),可以PING通。

如果無法PING通,可以按照以下步驟進行排查。
檢查設置的地址是否能與PC端地址進行通信,一般建議設置為同一網段的地址
確認PC端與W55MH32網線連接正確,如果連接在交換機或路由器上,可以改成PC直連W55MH32的方式。
回讀IP,子網掩碼,默認網關,這幾個寄存器的值是否與設置一致。
關閉PC端防火墻。
5總結
本文介紹了 W55MH32芯片的性能,闡述網絡地址信息組成與作用,通過實戰展示該芯片網絡初始化過程,含定義地址信息、初始化硬件和 TOE、設置地址及回讀 IP等步驟。燒錄例程可完成相關檢測與信息打印,PC能 PING通設備,若失敗有排查方法。
下一篇文章將詳細講解DHCP協議,解析 DHCP協議的核心原理及在獲取 IP信息中的應用,同時通過實戰例程講解在W55MH32芯片上實現DHCP獲取網絡信息的具體實現步驟與要點,敬請期待!
WIZnet是一家無晶圓廠半導體公司,成立于 1998年。產品包括互聯網處理器 iMCU?,它采用 TOE(TCP/IP卸載引擎)技術,基于獨特的專利全硬連線 TCP/IP。iMCU?面向各種應用中的嵌入式互聯網設備。
WIZnet在全球擁有 70多家分銷商,在香港、韓國、美國設有辦事處,提供技術支持和產品營銷。
香港辦事處管理的區域包括:澳大利亞、印度、土耳其、亞洲(韓國和日本除外)。
審核編輯 黃宇
-
嵌入式
+關注
關注
5198文章
20449瀏覽量
334043
發布評論請先 登錄
第一章 W55MH32 高性能以太網單片機的學習方法概述
第二章 W55MH32 DHCP示例
第五章 W55MH32 UDP示例
第六章 W55MH32 UDP?Multicast示例
第九章 W55MH32 HTTP Server示例
第十一章 W55MH32 SMTP示例
第十四章 W55MH32 TFTP示例
第十五章 W55MH32 SNMP示例
第十八章 W55MH32 FTP_Server示例
第二十六章 W55MH32?上位機搜索和配置示例
第二十七章 W55MH32?Interrupt示例
第二十九章 W55MH32 Modbus_TCP_Server示例
第一章 W55MH32?網絡初始化示例
評論