单芯片解决方案,开启全新体验——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 HTTP_Server&NetBIOS示例
本篇文章我们将详细介绍如何在W55MH32芯片上面实现HTTP_Server与NetBIOS功能,并通过实战例程,为大家讲解如何通过NetBIOS来访问HTTP服务器的网页内容。
该例程用到的其他网络协议,例如DHCP,请参考相关章节。有关W55MH32的初始化过程,也请参考相关章节,这里将不再赘述。
1 HTTP_Server&NetBIOS简介
通过 NetBIOS实现 HTTP_Server是将传统的 HTTP服务与 NetBIOS名称解析功能结合,允许基于局域网中的 NetBIOS名称进行 HTTP请求和响应。通常,NetBIOS被用于局域网中的设备发现与名称解析,因此,HTTP服务器可以通过 NetBIOS名称而非 IP地址来进行访问,简化了网络环境中设备的配置和通信。
2 HTTP_Server&NetBIOS特点
名称解析:利用 NetBIOS名称解析功能,客户端可以通过计算机名称而非 IP地址访问 HTTP服务器,简化了网络配置,尤其适用于没有 DNS服务器的环境。
局域网优化:适合局域网内部使用,能在没有互联网连接的情况下提供 HTTP服务,方便设备之间的通信和资源共享。
无需复杂配置:通过 NetBIOS提供自动的设备发现和名称解析,减少了对 IP地址配置的依赖,使得设备间互联更加便捷。
兼容性:适用于旧版系统或老旧硬件设备,尤其是在 Windows系统中,NetBIOS和 HTTP服务器可以平滑集成。
提高网络效率:通过 NetBIOS提供的轻量级通信机制,HTTP服务在局域网环境中能够提供快速且稳定的数据传输。
3 HTTP_Server&NetBIOS的基本工作流程
1.初始化:HTTP服务器启动,使用 NetBIOS over TCP/IP(NBT)协议在局域网内广播自己的名称。
2.名称解析:客户端通过 NetBIOS名称解析服务(NBNS)获取服务器的 IP地址。
3.客户端请求:客户端通过 TCP连接向 HTTP服务器发送 HTTP请求。
4.请求处理:服务器处理请求,生成相应的 HTTP响应并准备返回。
5.响应返回:服务器通过 TCP连接将响应数据(如网页或文件)发送回客户端。
6.会话关闭:请求完成后,服务器和客户端关闭连接或保持连接等待下次请求。
7.结束与清理:服务器释放资源,准备处理下一个请求。
HTTP的请求-响应模型通常由以下几个步骤组成
建立连接:客户端与服务器之间基于TCP/IP协议建立连接。
发送请求:客户端向服务器发送请求,请求中包含要访问的资源的 URL、请求方法(GET、POST、PUT、DELETE等)、请求头(例如,Accept、User-Agent)以及可选的请求体(对于 POST 或 PUT请求)。
处理请求:服务器接收到请求后,根据请求中的信息找到相应的资源,执行对应的处理操作。这可能涉及从数据库中检索数据、生成动态内容或者简单地返回静态文件。
发送响应:服务器将处理后的结果封装在响应中,并将其发送回客户端。响应包含状态码(用于指示请求的成功或失败)、响应头(例如,Content-Type、Content-Length)以及可选的响应体(例如,HTML页面、图像数据)。
关闭连接:在完成请求-响应周期后,客户端和服务器之间的连接将被关闭,除非使用了持久连接(如 HTTP/1.1中的 keep-alive)。
4 HTTP请求方法
在HTTP协议中,GET和POST是两种常用的请求方法,用于客户端向服务器发送数据和获取资源。
GET方法
GET方法通常用于从服务器获取资源。它有以下特点:
参数传递:请求参数通过URL中的查询字符串传递,形如?key1=value1&key2=value2。
数据大小限制:由于参数附加在URL后,长度可能受URL长度限制(取决于浏览器和服务器设置)。
安全性:数据在URL中明文显示,不适合传递敏感信息。
请求格式:
GET < Request-URI > HTTP/< Version > < Headers >
Request-URI:表示目标资源的路径,可能包含参数。
Version:HTTP协议版本。
Headers:包含元信息,例如客户端的属性、支持的格式等。
Blank Line:空行。
POST方法
POST方法通常用于向服务器提交数据。它有以下特点:
参数传递:数据放在请求体中,而不是URL中。
数据大小限制:POST请求的体积没有明显限制,可以传递大量数据。
安全性:数据在请求体中传输,相对来说更安全。
请求格式:
POST < Request-URI > HTTP/< Version > < Headers >
字段解释:
Request-URI:目标资源的路径,通常是API的端点。
Headers:元信息,例如内容类型和长度。
Blank Line:空行,区分头和主体。
Body:数据的主体,包含客户端发送到服务器的长度。
5 HTTP协议响应内容
HTTP协议响应内容包含状态行、响应头以及响应体三个部分。
状态行
HTTP状态行包含HTTP协议版本、状态码以及状态描述。
状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型。
状态码分为五类:
1xx(信息性状态码):表示接收的请求正在处理。
2xx(成功状态码):表示请求正常处理完毕。
3xx(重定向状态码):需要后续操作才能完成这一请求。
4xx(客户端错误状态码):表示请求包含语法错误或无法完成。
5xx(服务器错误状态码):服务器在处理请求的过程中发生了错误。
示例:
HTTP/1.1200 OK
响应头
响应头则会包含内容类型、长度、编码等信息。
常见的响应头字段有:
Content-Type:响应内容的MIME类型,例如 text/html、application/json。
Content-Length:响应内容的字节长度。
Server:服务器信息。
Set-Cookie:设置客户端的Cookie。
示例:
Content-Type: text/html; charset=UTF-8 Content-Length:3495 Server:Apache/2.4.41(Ubuntu)
响应体
响应体包含实际的数据内容,具体形式取决于响应的类型和请求内容。例如:HTML页面内容,JSON数据,文件的二进制数据等。
如果是状态码为204 No Content或 304 Not Modified的响应,则通常没有正文。
注意:响应体和响应头之间会添加一个空行来分隔内容。
6 Web页面的基本构成
HTML(超文本标记语言)
、、。
作用:定义网页的结构和内容。
内容:
结构标签:如
内容标签:如
、
、、。
表单标签:如 、、。
CSS(层叠样式表)
作用:控制网页的样式和布局。
内容:
字体设置:如 font-family、font-size。
颜色设置:如 color、background-color。
布局设计:如 margin、padding、display、flex。
响应式设计:如媒体查询(@media)。
JavaScript(脚本语言)
作用:增加网页的交互性和动态功能。
应用:
表单验证。
动画效果。
与服务器交互(如通过 AJAX请求)。
处理用户事件(如点击、悬停)。
Meta信息
中。
作用:提供页面的元数据,通常包含在
内容:
网页标题:
字符集:。
SEO信息:如 。
设备适配:如 。
示例:
< !DOCTYPE html > < htmllang="en" > < head > < meta charset="UTF-8" > < meta name="viewport" content="width=device-width, initial-scale=1.0" > < title >Simple Page< /title > < style > body{ font-family:Arial, sans-serif; text-align: center; padding:20px;} button{ padding:10px20px; cursor: pointer;} < /style > < /head >< h1 >Hello, Web!< /h1 > < p >Click the button for a surprise.< /p >
7 Web页面交互
Web页面实现HTTP请求的方式:
HTTP请求页面
描述:客户端通过 HTTP协议向服务器发送请求,服务器处理后返回响应。
特点:
最基础的交互方式。
包括常见的 HTTP方法:GET、POST、PUT、DELETE等。
示例:
GET请求:浏览器访问网页,获取静态资源(HTML、CSS、JavaScript等)。
POST请求:提交表单数据。
表单提交
描述:通过 HTML表单向服务器提交数据。
特点:
表单数据会被编码后随请求发送。
可使用 GET或 POST方法。
示例:
< formaction="/submit" method="post" > < input type="text" name="username" placeholder="Enter your name" > Submit< /button > < /form >
AJAX(Asynchronous JavaScript and XML)
描述:使用 JavaScript在后台与服务器通信,更新部分页面内容而无需刷新整个页面。
特点:
提高用户体验,减少页面加载时间。
现代开发中多用 JSON代替 XML。
示例:
fetch('/api/data',{ method:'GET' }) .then(response=> response.json()) .then(data=> console.log(data));
Web服务器响应处理
直接响应
定义:服务器直接处理请求,返回静态资源或简单的动态内容,而不调用外部脚本或程序。
特点
高效:直接处理请求,无需额外调用外部程序,适合静态内容。
适用场景:
静态资源(HTML、CSS、JavaScript、图像等)的分发。
轻量级动态内容生成。
工作流程
客户端发送 HTTP请求。
服务器解析请求 URL,查找相应的资源(如文件路径)。
直接读取资源内容并返回给客户端,附加适当的 HTTP响应头。
CGI响应
定义:服务器通过 CGI(Common Gateway Interface)调用外部程序或脚本,处理客户端请求并生成动态响应内容。
特点
灵活性:可以动态生成内容,支持复杂逻辑。
适用场景:
动态内容生成(如用户登录、数据查询)。
与数据库交互或其他后台服务的复杂逻辑处理。
工作流程
客户端发送 HTTP请求。
服务器解析请求并将请求数据(如 URL参数或表单数据)传递给 CGI程序。
CGI程序处理请求,生成响应内容并返回给服务器。
服务器将 CGI程序生成的内容包装为 HTTP响应发送给客户端。
8 HTTP_Server&NetBIOS应用场景
接下来,我们了解下在W55MH32上,可以使用HTTP_Server&NetBIOS完成哪些操作及应用呢?
1.简化设备互联:通过 NetBIOS名称解析,嵌入式设备无需依赖 DNS即可在局域网内互相发现和访问 HTTP服务,简化网络配置。
2.自动化配置与管理:NetBIOS使得设备可以通过名称自动发现并配置,提高设备部署和维护效率,尤其适用于大规模嵌入式设备部署。
3.无需 DNS的网络环境:适用于没有 DNS的小型局域网或开发环境,减少了 IP地址管理的复杂性,提供便捷的设备通信方式。
4.调试与维护工具:NetBIOS和 HTTP Server的结合使得开发人员能够快速调试嵌入式设备,监控系统性能并进行故障排查。
5.嵌入式Web服务:提供基于HTTP的控制接口或状态监控,方便远程管理和调试,适合嵌入式设备的配置和管理。
9实现过程
接下来,我们在W55MH32上实现HTTP_Server&NetBIOS功能。
注意:测试实例需要PC端和W55MH32处于同一网段。
在主循环中,程序并行处理 HTTP与 NetBIOS相关事务。有以下步骤:
1. while(1) 2. { 3. httpServer_run(SOCKET_ID); 4. do_netbios(SOCKET_ID); 5. } 6.
步骤一:HTTP服务器处理
httpServer_run()函数负责 HTTP服务器功能,根据socket状态进行监听、接收请求、处理并响应,如针对不同的 GET请求返回对应网页内容,处理 POST请求时更新配置并设置重启标志。
httpServer_run()函数如下:
1. void httpServer_run(uint8_t seqnum) 2. { 3. uint8_t s;// socket number 4. uint16_t len; 5. uint32_t gettime=0; 6. 7. #ifdef _HTTPSERVER_DEBUG_ 8. uint8_t destip[4]={ 9. 0, 10. }; 11. uint16_t destport=0; 12. #endif 13. 14. http_request =(st_http_request*)pHTTP_RX;// Structure of HTTP Request 15. parsed_http_request=(st_http_request*)pHTTP_TX; 16. 17. // Get the H/W socket number 18. s= getHTTPSocketNum(seqnum); 19. 20. /* HTTP Service Start */ 21. switch(getSn_SR(s)) 22. { 23. case SOCK_ESTABLISHED: 24. // Interrupt clear 25. if(getSn_IR(s)&Sn_IR_CON) 26. { 27. setSn_IR(s,Sn_IR_CON); 28. } 29. 30. // HTTP Process states 31. switch(HTTPSock_Status[seqnum].sock_status) 32. { 33. case STATE_HTTP_IDLE: 34. if((len= getSn_RX_RSR(s))>0) 35. { 36. if(len> DATA_BUF_SIZE) len= DATA_BUF_SIZE; 37. len = recv(s,(uint8_t*)http_request, len); 38. *(((uint8_t*)http_request)+ len)=''; 39. 40. parse_http_request(parsed_http_request,(uint8_t*)http_request); 41. #ifdef _HTTPSERVER_DEBUG_ 42. getSn_DIPR(s, destip); 43. destport= getSn_DPORT(s); 44. printf("rn"); 45. printf("> HTTPSocket[%d] : HTTP Request received ", s); 46. printf("from %d.%d.%d.%d : %drn", destip[0], destip[1], destip[2], destip[3], destport); 47. #endif 48. #ifdef _HTTPSERVER_DEBUG_ 49. printf("> HTTPSocket[%d] : [State] STATE_HTTP_REQ_DONErn", s); 50. #endif 51. // HTTP 'response' handler; includes send_http_response_header / body function 52. http_process_handler(s, parsed_http_request); 53. 54. gettime= get_httpServer_timecount(); 55. // Check the TX socket buffer for End of HTTP response sends 56. while(getSn_TX_FSR(s)!=(getSn_TxMAX(s))) 57. { 58. if((get_httpServer_timecount()- gettime)>3) 59. { 60. #ifdef _HTTPSERVER_DEBUG_ 61. printf("> HTTPSocket[%d] : [State] STATE_HTTP_REQ_DONE: TX Buffer clear timeoutrn", s); 62. #endif 63. break; 64. } 65. } 66. 67. if(HTTPSock_Status[seqnum].file_len>0) 68. HTTPSock_Status[seqnum].sock_status= STATE_HTTP_RES_INPROC; 69. else 70. HTTPSock_Status[seqnum].sock_status= STATE_HTTP_RES_DONE;// Send the 'HTTP response' end 71. } 72. break; 73. 74. case STATE_HTTP_RES_INPROC: 75. /* Repeat: Send the remain parts of HTTP responses */ 76. #ifdef _HTTPSERVER_DEBUG_ 77. printf("> HTTPSocket[%d] : [State] STATE_HTTP_RES_INPROCrn", s); 78. #endif 79. // Repeatedly send remaining data to client 80. send_http_response_body(s,0, http_response,0,0); 81. 82. if(HTTPSock_Status[seqnum].file_len==0)HTTPSock_Status[seqnum].sock_status= STATE_HTTP_RES_DONE; 83. break; 84. 85. case STATE_HTTP_RES_DONE: 86. #ifdef _HTTPSERVER_DEBUG_ 87. printf("> HTTPSocket[%d] : [State] STATE_HTTP_RES_DONErn", s); 88. #endif 89. // Socket file info structure re-initialize 90. HTTPSock_Status[seqnum].file_len =0; 91. HTTPSock_Status[seqnum].file_offset=0; 92. HTTPSock_Status[seqnum].file_start =0; 93. HTTPSock_Status[seqnum].sock_status= STATE_HTTP_IDLE; 94. 95. //#ifdef _USE_SDCARD_ 96. // f_close(&fs); 97. //#endif 98. #ifdef _USE_WATCHDOG_ 99. HTTPServer_WDT_Reset(); 100. #endif 101. http_disconnect(s); 102. break; 103. 104. default: 105. break; 106. } 107. break; 108. 109. case SOCK_CLOSE_WAIT: 110. #ifdef _HTTPSERVER_DEBUG_ 111. printf("> HTTPSocket[%d] : ClOSE_WAITrn", s);// if a peer requests to close the current connection 112. #endif 113. disconnect(s); 114. break; 115. 116. case SOCK_CLOSED: 117. #ifdef _HTTPSERVER_DEBUG_ 118. printf("> HTTPSocket[%d] : CLOSEDrn", s); 119. #endif 120. if(socket(s,Sn_MR_TCP, HTTP_SERVER_PORT,0x00)== s)/* Reinitialize the socket */ 121. { 122. #ifdef _HTTPSERVER_DEBUG_ 123. printf("> HTTPSocket[%d] : OPENrn", s); 124. #endif 125. } 126. break; 127. 128. case SOCK_INIT: 129. listen(s); 130. break; 131. 132. case SOCK_LISTEN: 133. break; 134. 135. default: 136. break; 137. 138. }// end of switch 139. 140. #ifdef _USE_WATCHDOG_ 141. HTTPServer_WDT_Reset(); 142. #endif 143. } 144.
该函数用于处理 HTTP服务器的运行逻辑。函数接受一个参数 seqnum,表示当前处理的套接字的序列号。进入该函数后,程序会执行一个状态机,根据Socket的状态来执行不同的操作。
当Socket处于SOCK_CLOSED时为关闭状态,程序会打开并重新初始化套接字;
为SOCK_ESTABLISHED时表示已建立连接,首先会清除中断标志,然后根据套接字的状态进行不同的处理,在空闲状态时,接收并解析数据,处理 HTTP请求后发送响应,并根据文件长度更新状态;在响应处理中状态时,发送剩余的响应数据,文件传输完成时切换到响应完成状态;响应完成后重置文件信息并关闭套接字,返回空闲状态;
SOCK_CLOSE_WAIT则为关闭等待状态,此时调用 disconnect()函数关闭套接字;
SOCK_INIT表示处于初始化状态,调用 listen()函数监听连接;
SOCK_LISTEN为处于监听状态,不进行任何操作。
步骤二:NetBIOS服务处理
do_netbios()函数实现 NetBIOS名称解析,当处于 SOCK_UDP 状态且接收到数据包,若为对本机 NetBIOS名称的查询,便构造并发送响应包,在 SOCK_CLOSED状态时则重新打开socket。通过这样的循环机制,程序持续提供 HTTP服务与 NetBIOS名称解析服务。
do_netbios()函数如下:
1. void do_netbios(uint8_t sn) 2. { 3. unsignedchar state; 4. unsignedint len; 5. state= getSn_SR(sn); 6. switch(state) 7. { 8. case SOCK_UDP: 9. if((len= getSn_RX_RSR(sn))>0) 10. { 11. unsignedchar rem_ip_addr[4]; 12. uint16_t rem_udp_port; 13. char netbios_name[NETBIOS_NAME_LEN+1]; 14. NETBIOS_HDR *netbios_hdr; 15. NETBIOS_NAME_HDR*netbios_name_hdr; 16. len= recvfrom(sn,(unsignedchar*)&netbios_rx_buf, len, rem_ip_addr,&rem_udp_port); 17. printf("rem_ip_addr=%d.%d.%d.%d:%drn", rem_ip_addr[0], rem_ip_addr[1], rem_ip_addr[2], rem_ip_addr[3], rem_udp_port); 18. netbios_hdr =(NETBIOS_HDR*)netbios_rx_buf; 19. netbios_name_hdr=(NETBIOS_NAME_HDR*)(netbios_hdr+1); 20. // If the packet is a NetBIOS query packet 21. if(((netbios_hdr->flags& ntohs(NETB_HFLAG_OPCODE))== ntohs(NETB_HFLAG_OPCODE_NAME_QUERY))&&((netbios_hdr->flags& ntohs(NETB_HFLAG_RESPONSE))==0)&&(netbios_hdr->questions== ntohs(1))) 22. { 23. printf("netbios name query questionrn"); 24. // Decode the NetBIOS package 25. netbios_name_decoding((char*)(netbios_name_hdr->encname), netbios_name,sizeof(netbios_name)); 26. printf("name is %srn", netbios_name); 27. // If the query is made against the native Netbios 28. if(strcmp(netbios_name, NETBIOS_W55MH32_NAME)==0) 29. { 30. uint8_t ip_addr[4]; 31. NETBIOS_RESP*resp=(NETBIOS_RESP*)netbios_tx_buf; 32. // Handle the header of the NetBIOS response packet 33. resp->resp_hdr.trans_id = netbios_hdr->trans_id; 34. resp->resp_hdr.flags = htons(NETB_HFLAG_RESPONSE| NETB_HFLAG_OPCODE_NAME_QUERY| NETB_HFLAG_AUTHORATIVE | NETB_HFLAG_RECURS_DESIRED); 35. resp->resp_hdr.questions =0; 36. resp->resp_hdr.answerRRs = htons(1); 37. resp->resp_hdr.authorityRRs =0; 38. resp->resp_hdr.additionalRRs=0; 39. // Process the header data of the NetBIOS response packet 40. memcpy(resp->resp_name.encname, netbios_name_hdr->encname,sizeof(netbios_name_hdr->encname)); 41. resp->resp_name.nametype= netbios_name_hdr->nametype; 42. resp->resp_name.type = netbios_name_hdr->type; 43. resp->resp_name.cls = netbios_name_hdr->cls; 44. resp->resp_name.ttl = htonl(NETBIOS_NAME_TTL); 45. resp->resp_name.datalen = htons(sizeof(resp->resp_name.flags)+sizeof(resp->resp_name.addr)); 46. resp->resp_name.flags = htons(NETB_NFLAG_NODETYPE_BNODE); 47. getSIPR(ip_addr); 48. memcpy(resp->resp_name.addr, ip_addr,4); 49. // Send a response packet 50. sendto(sn,(unsignedchar*)resp,sizeof(NETBIOS_RESP), rem_ip_addr, rem_udp_port); 51. printf("send responsern"); 52. } 53. } 54. } 55. break; 56. 57. case SOCK_CLOSED: 58. close(sn); 59. socket(sn,Sn_MR_UDP, NETBIOS_PORT,0); 60. break; 61. 62. default: 63. break; 64. } 65. } 66.
do_netbios()函数主要执行 NetBIOS相关操作。程序首先会执行一个状态机,根据套接字状态执行不同操作:在关闭状态(SOCK_CLOSED)时,关闭并重新创建套接字监听NetBIOS端口;在UDP状态时(SOCK_UDP),接收数据并解析 NetBIOS查询包,匹配本地名称时发送响应包;其他状态下不操作。
10运行结果
烧录例程运行后,首先进行了PHY链路检测,然后是通过DHCP获取网络地址并打印网络地址信息,通过NetBIOS名称解析打印提示解析名称,接着我们打开浏览器,输入W55MH32/进行即可访问网页信息:


11总结
本文讲解了如何在 W55MH32芯片上实现 HTTP_Server与 NetBIOS功能,并通过 NetBIOS访问 HTTP服务器网页内容,通过实战例程展示了在主循环中并行处理 HTTP与 NetBIOS相关事务的过程。感谢观看!
WIZnet是一家无晶圆厂半导体公司,成立于 1998年。产品包括互联网处理器 iMCU™,它采用 TOE(TCP/IP 卸载引擎)技术,基于独特的专利全硬连线 TCP/IP。iMCU™ 面向各种应用中的嵌入式互联网设备。
WIZnet在全球拥有 70多家分销商,在香港、韩国、美国设有办事处,提供技术支持和产品营销。
香港办事处管理的区域包括:澳大利亚、印度、土耳其、亚洲(韩国和日本除外)。
审核编辑 黄宇
-
芯片
+关注
关注
462文章
53550浏览量
459275 -
NETBIOS
+关注
关注
0文章
8浏览量
9589
发布评论请先 登录
第十章 W55MH32中断应用概览
第二章 W55MH32 DHCP示例
第三章 W55MH32 TCP Client示例
第五章 W55MH32 UDP示例
第六章 W55MH32 UDP Multicast示例
第九章 W55MH32 HTTP Server示例
第十章 W55MH32 SNTP示例
第十二章 W55MH32 NetBIOS示例
第十四章 W55MH32 TFTP示例
第十五章 W55MH32 SNMP示例
第十六章 W55MH32 PING示例
第十八章 W55MH32 FTP_Server示例
第二十二章 W55MH32 MQTT&amp;Aliyun示例
第二十六章 W55MH32 上位机搜索和配置示例
第二十九章 W55MH32 Modbus_TCP_Server示例

第三十章 W55MH32 HTTP_Server&NetBIOS示例
评论