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

第一章 W55MH32網(wǎng)絡(luò)初始化示例
W55MH32芯片展現(xiàn)出卓越的性能優(yōu)勢(shì)。其內(nèi)核選用 32位的 Arm? Cortex?-M3 Core,運(yùn)行主頻能夠達(dá)到令人矚目的 216MHz,這為高效的數(shù)據(jù)處理提供了堅(jiān)實(shí)保障。芯片配備了 1024KB的 FLASH以及 96KB的 SRAM,大容量的存儲(chǔ)配置足以滿(mǎn)足復(fù)雜程序和數(shù)據(jù)的存儲(chǔ)需求。同時(shí),它對(duì)外設(shè)的支持能力強(qiáng)大,最高可支持 61個(gè) GPIO,極大地拓展了其應(yīng)用的多樣性和靈活性。
尤為值得一提的是,W55MH32芯片搭載了 WIZnet的 TCP/IP卸載引擎 (TOE),該引擎整合了全硬件 TCP/IP協(xié)議棧、MAC以及 PHY。這種高度集成化的設(shè)計(jì)使得僅需這一顆芯片,就能輕松實(shí)現(xiàn)嵌入式以太網(wǎng)應(yīng)用,顯著降低了開(kāi)發(fā)的復(fù)雜性和成本,為嵌入式以太網(wǎng)的應(yīng)用開(kāi)發(fā)帶來(lái)了極大的便利與高效性,是嵌入式以太網(wǎng)項(xiàng)目的首選芯片。
本篇文章我們將詳細(xì)介紹如何在W55MH32芯片上面使用TOE功能,初始TOE引擎并進(jìn)行網(wǎng)絡(luò)初始化配置,開(kāi)啟以太網(wǎng)章節(jié)教程。
關(guān)于TOE的寄存器信息請(qǐng)參考“W55MH32 參考手冊(cè)“的第9章”TCP/IP卸載引擎(TOE)“。
1 TCP/IP卸載引擎(TOE)簡(jiǎn)介
TCP/IP卸載引擎(TOE)是一個(gè)嵌入式全硬件 TCP/IP以太網(wǎng)控制器,它可以提供更簡(jiǎn)潔的嵌入式網(wǎng)絡(luò)接入方案。10/100M以太網(wǎng)數(shù)據(jù)鏈路層(MAC)及物理層(PHY),使得用戶(hù)使用單芯片就能夠在他們的應(yīng)用中拓展網(wǎng)絡(luò)連接。
久經(jīng)市場(chǎng)考驗(yàn)的 WIZnet全硬件 TCP/IP協(xié)議棧支持 TCP, UDP, IPv4, ICMP,ARP,IGMP以及 PPPoE協(xié)議。 內(nèi)嵌 32K字節(jié)片上緩存以供以太網(wǎng)包處理。使用 TCP/IP卸載引擎(TOE),只需要一些簡(jiǎn)單的 Socket編程就能實(shí)現(xiàn)以太網(wǎng)應(yīng)用。這將會(huì)比其他嵌入式以太網(wǎng)方案更加快捷、簡(jiǎn)便。用戶(hù)可以同時(shí)使用 8個(gè)硬件 Socket獨(dú)立通訊。為了減少系統(tǒng)能耗, 提供了網(wǎng)絡(luò)喚醒模式(WOL)及掉電模式供客戶(hù)選擇使用。
2網(wǎng)絡(luò)地址信息簡(jiǎn)介
網(wǎng)絡(luò)地址信息是計(jì)算機(jī)網(wǎng)絡(luò)中用于標(biāo)識(shí)和定位設(shè)備、主機(jī)、網(wǎng)絡(luò)等資源的數(shù)字標(biāo)識(shí)符,在網(wǎng)絡(luò)通信中起著至關(guān)重要的作用,它能幫助數(shù)據(jù)包在不同的網(wǎng)絡(luò)節(jié)點(diǎn)間傳遞并到達(dá)目標(biāo)設(shè)備。網(wǎng)絡(luò)地址通常由IP地址、子網(wǎng)掩碼、網(wǎng)關(guān)地址及DNS地址等組成,在不同層級(jí)上起著不同的作用。
注意:本文及后續(xù)文章的IP地址皆為IPv4版本。
IP地址:IP地址是計(jì)算機(jī)網(wǎng)絡(luò)中用于唯一標(biāo)識(shí)設(shè)備的地址。每臺(tái)連接到網(wǎng)絡(luò)上的設(shè)備都有一個(gè)IP地址,用于在網(wǎng)絡(luò)上進(jìn)行通信。通常以四個(gè)點(diǎn)分十進(jìn)制數(shù)表示,每個(gè)數(shù)值的范圍為0-255,例如:192.168.1.1。
子網(wǎng)掩碼:子網(wǎng)掩碼用于將一個(gè)IP地址劃分為網(wǎng)絡(luò)部分和主機(jī)部分。子網(wǎng)掩碼的1對(duì)應(yīng)的IP地址部分為網(wǎng)絡(luò)地址,0對(duì)應(yīng)的IP地址為主機(jī)地址,例如一個(gè)設(shè)備的IP地址為192.168.1.100,子網(wǎng)掩碼為255.255.255.0,使用IP地址和子網(wǎng)掩碼做與運(yùn)算(AND運(yùn)算)得出192.168.1.0,則說(shuō)明該設(shè)備屬于192.168.1.0網(wǎng)段設(shè)備,如果他想與192.168.2.0網(wǎng)段的設(shè)備進(jìn)行通訊,則需要將數(shù)據(jù)交給網(wǎng)關(guān)進(jìn)行處理。
網(wǎng)關(guān)地址:網(wǎng)關(guān)地址是當(dāng)設(shè)備需要訪(fǎng)問(wèn)不同網(wǎng)絡(luò)時(shí),數(shù)據(jù)包首先經(jīng)過(guò)的設(shè)備的IP地址。這個(gè)設(shè)備通常是網(wǎng)絡(luò)邊緣的路由器或防火墻,幫助本地設(shè)備與外部網(wǎng)絡(luò)(如互聯(lián)網(wǎng))通信。
DNS地址:DNS地址是域名系統(tǒng)的IP地址,DNS是用于將易于記憶的域名轉(zhuǎn)換為計(jì)算機(jī)能夠理解的IP地址。例如,當(dāng)您在瀏覽器中鍵入www.example.com時(shí),DNS服務(wù)器將把www.example.com這個(gè)域名解析為相應(yīng)的IP地址(可能是192.168.1.1或其他)。一般我們的DNS地址設(shè)置為公共DNS服務(wù)器地址(例如中國(guó)電信提供的114.114.114.114),也可以設(shè)置為私有DNS服務(wù)器地址(例如在您自己的網(wǎng)絡(luò)中運(yùn)行的服務(wù)器)。
除此之外,還有MAC地址,即硬件地址,也叫物理地址。
MAC地址:MAC地址是網(wǎng)絡(luò)接口卡在數(shù)據(jù)鏈路層(OSI模型第二層)使用的唯一標(biāo)識(shí)符。每個(gè)網(wǎng)絡(luò)設(shè)備都應(yīng)該被分配有一個(gè)唯一的MAC地址,用于在局域網(wǎng)中表示設(shè)備。它的長(zhǎng)度為6字節(jié),通常以16進(jìn)制格式表示。前三個(gè)字節(jié)標(biāo)識(shí)了設(shè)備制造商,例如WIZnet的設(shè)備的MAC地址前三個(gè)字節(jié)為00 08 DC,后三個(gè)字節(jié)表示該廠(chǎng)商的不同設(shè)備。需要注意的是,MAC地址的首字節(jié)必須為偶數(shù),奇數(shù)則為組播地址。
注意:當(dāng)IP地址沖突和MAC地址沖突時(shí),都會(huì)導(dǎo)致網(wǎng)絡(luò)無(wú)法通信。
3實(shí)現(xiàn)過(guò)程
接下來(lái),我們?cè)赪55MH32上實(shí)現(xiàn)網(wǎng)絡(luò)初始化的功能。
注意:測(cè)試實(shí)例需要PC端和W55MH32處于同一網(wǎng)段。
步驟一:定義網(wǎng)絡(luò)地址信息,并設(shè)置DHCP模式為靜態(tài)地址模式
/* 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引擎并檢測(cè)PHY狀態(tài)
1. /* wiztoe init */ 2. wiz_toe_init(); 3. 4. wiz_phy_link_check();
wiz_phy_link_check函數(shù)主要靠讀取PHY寄存器來(lái)檢測(cè)PHY連接狀態(tài),函數(shù)內(nèi)容如下:
/** * @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); }
步驟四:設(shè)置網(wǎng)絡(luò)地址信息
network_init(ethernet_buf,&default_net_info);
network_init函數(shù)的作用則是將步驟1定義的網(wǎng)絡(luò)地址信息設(shè)置到TOE引擎中。
如果DHCP模式為NETINFO_DHCP,則執(zhí)行DHCP進(jìn)程去更新網(wǎng)絡(luò)地址信息為DHCP獲取的網(wǎng)絡(luò)地址信息。如果是NETINFO_STATIC模式則直接設(shè)置靜態(tài)網(wǎng)絡(luò)地址信息,并打印設(shè)置的網(wǎng)絡(luò)地址信息。
函數(shù)定義如下:
/** * @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運(yùn)行結(jié)果
燒錄例程運(yùn)行后,首先可以看到進(jìn)行了PHY鏈路檢測(cè),然后打印了設(shè)置的網(wǎng)絡(luò)地址信息以及PING提示信息。

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

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

第一章 W55MH32?網(wǎng)絡(luò)初始化示例
評(píng)論