怎样解决W5200/W5500在TCP通信过程中意外断开?(Keepalive)

博客
在使用W5200和W5500的TCP通信过程中,有一个非常容易被问到的问题: (这里以W5200为例) W5200作为服务器,假如客户端的网线断开 或 瞬间停电,服务器该怎样判断? 那么当客户端由于这些原因忽然断开,该怎样解决? 今天给大家介绍解决以上问题的办法,即如何使用Keepalive。   什么是Keepalive? Keepalive即心跳检测,以下简称KA,之所以称之为心跳检测是因为它像心跳一样每隔一段时间发一次,以此来告诉对方自己是否存活。心跳检测用于TCP通讯过程中服务器检测客户端是处于长时间空闲(在线)还是已经断开,一般采用客户端定时发送简单的通讯包,一般是很小的包或者空包给服务器(W5200的心跳包为1字节),如果在指定时间内没有收到该心跳包,则服务器会判断客户端已经断开,此时程序中的Socket状态机会转到SOCKET_CLOSED并重新打开Socket去连接服务器/监听客户端。 KeepAlive怎么分类?        KA根据发出方不同可以分为两种,一种是由客户端发给服务器的心跳包,一种是服务器发给客户端的心跳包,选择哪一种方式需要看哪一方实现起来方便合理。需要注意的是,W5200根据合理的设计,其心跳包需要在Socket TCP连接建立之后,服务器和客户端至少进行一次数据交互,且在设定的时间内没有数据交互时发出。 W5200 KA程序说明        下面我以W5200的TCP Server官方例程为例,用PC建立TCP客户端来连接W5200,说明KA的实现方法。 定义和初始化部分: 程序中用到了定时器和中断函数,在w5200_config.c中做了定义: 在主程序中进行初始化: 程序中定义了ka_tick_flag(KA定时器开始计时标志位)、ka_send_flag(KA发送标志位)、ka_no_data_tick(KA无数据传输时间计时器)以及ka_send_tick(KA发送定时器)。在w5200_config.c中对以上定义进行了初始化:   主循环部分: 当程序烧录后,按Reset键重启W5200后服务器打开一个Socket,此时Socket由SOCK_CLOSED变为SOCK_INIT并处于监听状态。PC建立客户端成功连接W5200后,Socket处于SOCK_ESTABLISHED,下面是程序具体的操作过程: 例程下载:W5200: http://pan.baidu.com/s/1eQ3vkZo W5500: http://pan.baidu.com/s/1sj7ILBn 感谢阅读! 欢迎访问: WIZnet官方网站:http://www.iwiznet.co.kr WIZnet官方微博:http://weibo.com/wiznet2012 WIZnet微信公众平台:  
Read More

跟W5500学习SMTP协议

博客
SMTP简介 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。那我们来剖析一下平时发送电子邮件的整个过程,如图1所示: 图1 邮件发送过程示意图 我们可以看到SMTP协议是发送过程中所使用的协议,我们这次用W5500(全硬件TCP/IP协议栈以太网芯片)给大家模拟演示的仅是图中的第一部分,发信人向邮件服务器发送请求的过程。 SMTP在TCP协议25号端口监听连续请求。SMTP连接和发送过程: 1、建立TCP 连接。 2、客户端发送HELO命令以标识发件人自己的身份,然后客户端发送MAIL命令;服务器端正希望以OK作为响应,表明准备接收。 3、客户端发送RCPT命令,以标识该电子邮件的计划接收人,可以有多个RCPT行;服务器端则表示是否愿意为收件人接收邮件。 4、协商结束,发送邮件,用命令DATA发送。 5、以“.”号表示结束并将内容一起发出去,结束此次发送,用QUIT命令退出。 SMTP的实现 由于资源受限,在没有操作系统的支持下,通过单片机发送邮件与传统的电脑操作将有很大的不同。这里用W5500与126邮箱通信为例来具体分析邮件的发送过程。在本示例代码中,发件人邮箱名为:[email protected],邮箱密码为:hello123。收件人邮箱地址为:[email protected],邮件内容为:Hello!WIZnet!。如果想用别的邮箱做测试的话,请修改代码中收件人和发件人的邮箱名和密码。 具体过程很简单,先解析126邮箱的服务器域名smtp.126.com,成功以后就执行邮件发送函数,邮件发送成功以后就跳出循环或者等待。让程序进入了一个死循环,这样程序将不再跳到主循环,避免重复发送相同的邮件,这样使得在W5500的运行模式下,按一下Reset键或者上电一次,只发送一封邮件。 接下来介绍一下具体的测试过程,测试步骤如下: 1、SMTP例程采用默认的IP信息,所以在w5500_conf.c文件中设置ip_from为IP_FROM_DEFINE。 2、对代码进行编译,之后将程序烧录到野火开发板。 3、连接好网线,USB串口线。打开串口调试工具,复位野火开发板,从输出结果可以得到图2设置信息。 4、首先解析到smtp.126.com邮件服务器的IP,然后发送邮件,如果发送成功,会得到mail send OK的信息。 5、登陆串口提示的账号,查看邮件的收件箱可以找到刚才发送的邮件。 图2 邮件成功发送打印信息 示例程序下载:http://pan.baidu.com/s/1kTmVUHT 感谢阅读! 欢迎访问: WIZnet官方网站:http://www.iwiznet.co.kr WIZnet官方微博:http://weibo.com/wiznet2012 WIZnet微信公众平台:
Read More

如何使用无线模块WizFi210的HTTP功能?

博客
点击了解:无线模块WizFi210   1、HTTP和HTTPS简介 1.1 HTTP简介        HTTP即超文本传输协议(Hyper Text Transfer Protocol),客户端(User Agent)通过WEB浏览器或网络爬虫等工具向服务器(网站)上指定端口(默认为80)以URL(统一资源定位符,即网址)的形式发起一个HTTP请求(一般为GET、POST),服务器监听到这一请求后会回复一个状态行+响应消息的主体,从而形成了一个完整的HTTP“请求—响应”过程,而这一过程是建立在TCP连接之上的数据透明传输过程。 1.2 HTTPS简介        HTTPS全称Hyper Text Transfer Protocol over Secure Socket Layer,即经过SSL(Secure Socket Layer)加密的HTTP,简单地说就是HTTP的安全升级版。HTTPS的体系与HTTP大致相同,不同的是通过在HTTP和TCP层之间加入SSL层,达到数据加密和身份验证的目的。使用HTTPS需要申请CA证书(一般需要付费),采用443端口,现广泛用于www上安全敏感的通讯。 2、WizFi210实现HTTP请求的步骤 (1)设置WizFi210连接到一个可以登录远程HTTP服务器的AP并进入命令模式。        此时WizFi210需要运行在Station模式下,即AT+WM=0。可以有两种方式连接AP后进入命令模式的方式,一种是AT+WA=SSID直接进入到命令模式;一种是自动连接进入数据透传模式后键入“+++”进入命令模式。        (2)配置WizFi210的HTTP客户端:AT+HTTPCONF=<Param>,<Value>。 参数 含 义 参数值示例 2 HTTP授权的授权证书 Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== 3 表示是否需要持久连接。(HTTP 1.1默认进行持久连接) Connection: close 4 WEB服务器支持的返回内容压缩编码类型 Content-Encoding: gzip 5 响应体的长度 Content-Length: 348 6 在整个返回体中本部分的字节位置 Content-Range: bytes 21010-47021/47022 7 请求的与实体对应的MIME信息 Content-Type: application/x-www-form-urlencoded 8 请求发送的日期和时间 Date: Tue, 15 Nov 2010 08:12:31 GMT 9 响应过期的日期和时间 Expires: Thu, 01 Dec 2010 16:00:00 GMT 10 发出请求的用户的Email From: [email protected] 11 指定请求的服务器的域名和端口号 Host: www.zcmhi.com 12 如果请求的部分在指定时间之后被修改则请求成功,未被修改则返回304代码 If-Modified-Since: Sat, 29 Oct 2010 19:43:31 GMT 13 请求资源的最后修改时间 Last-Modified: Tue, 15 Nov 2010 12:45:26 GMT 14 用来重定向接收方到非请求URL的位置来完成请求或标识新的资源 Location: http://www.zcmhi.com/archives/94.html 15 包括实现特定的指令,它可应用到响应链上的任何接收方 Pragma: no-cache 16 只请求实体的一部分,指定范围 Range: bytes=500-999 17 先前网页的地址,当前请求网页紧随其后,即来路 Referer: http://www.zcmhi.com/archives/71.html 18 WEB软件名称 Server: Apache/1.3.27 (Unix) (Red-Hat/Linux) 19 文件传输编码 Transfer-Encoding:chunked…
Read More

浅谈单片机以太网接入方案

博客
单片机的种类繁多,从低端到高端,有以51单片机为代表的8位单片机和以ARM为代表的32位单片机,不同档次的单片机实现网络接口的方法不同。对于像ARM等高端处理器一般都可以运行嵌入式操作系统,例如嵌入式Linux。对于无操作系统要求的单片机如何实现网络接入,我下面将这些方案按TCP/IP协议栈的不同归结为两大类:第一类是传统的软件TCP/IP协议栈方案;第二类是最新的硬件TCP/IP协议栈方案。下面我就这两类方案的实现方式进行分析。 1. MAC+PHY方案 所谓的TCP/IP协议栈是一系列网络协议的统称,不仅包括我们熟知的TCP协议和IP协议,还有网络层的ICMP(Internet控制报文)协议、IGMP(Internet 组管理)协议、ARP(地址解析)协议,传输层的UDP(用户数据包)协议,应用层的HTTP(超文本传输)协议、DNS(域名解析)协议、FTP(文件传送)协议、SMTP(简单邮件管理)协议等等。 传统的以太网接入方案如下图,由MCU+MAC+PHY再加入网络接口实现以太网的物理连接,通过在主控芯片中植入TCP/IP协议代码实现通信及上层应用。 图3-1-1 MAC+PHY以太网方案 应用这种软件TCP/IP协议栈方式实现的比较成熟方案有ENC28J60, CS8900A,DM9000,当然也有像STM32F107这类(内部自带MAC)+PHY等方案。        由于软件协议栈操作需要主控MCU不断地响应中断,这在很大程度上占用了MCU的运算/时钟资源。经过测试发现,单线程操作的情况下,MCU的运行速度和数据的处理速度仅能满足需要,但随着线程增多,MCU的工作效率直线下降,会严重影响通信质量。 代码量方面,即便是采用轻量级的TCP/IP协议栈LWIP协议,也会为主控芯片带来超过40KB的代码量,这对于本身内存资源匮乏的单片机来说负荷过重。 再从安全性的角度,设备并入互联网之后必须考虑网络安全问题,这种软件协议栈的方式系统一旦受到复杂的恶意攻击,单片机很有可能瘫痪掉,这对系统就是致命性打击,虽然目前网络技术不断发展,各类新的加密技术试图让通信变得更加安全,但是还会出现各种各样的漏洞。   2. 硬件协议栈芯片方案        硬件协议栈芯片方案如下图所示。由MCU+硬件协议栈芯片(内含MAC和PHY)直接加网络接口,便可方便的实现单片机联网,所有的处理TCP/IP协议的工作都是通过这位MCU的“小秘书”——硬件协议栈芯片来完成。   图3-2-1 硬件协议栈芯片方案        这套方案是由WIZnet首次提出,并成功推出以太网系列芯片:W5100、W5200、W5300和W5500。       所谓硬件协议栈是指通过将传统的软件TCP/IP协议栈用硬件化的逻辑门电路来实现,如下图所示。   图3-2-2 TCP/IP硬件协议栈内核原理简图 以太网芯片的内核由传输层的TCP、UDP、ICMP、IGMP等协议、网络层的IP、ARP、PPPoE等协议以及链路层的MAC构成,再加上物理层的PHY和外围的寄存器、内存、SPI接口组成了这一整套硬件化的以太网解决方案。 这套硬件TCP/IP协议栈代替了以往的MCU来处理这些中断请求,即MCU只需要处理面向用户的应用层数据即可,传输层、网络层、链路层及物理层全部由外围WIZnet的芯片完成。这套方案从硬件开销和软件开发两个方面来简化前面所述的五层网络模型,简化产品开发方案。这样一来,工程师们就不必再面对繁琐的通信协议代码,只需要了解简单的寄存器功能以及Socket编程便能完成产品开发工作的的网络功能开发部分。       由于硬件协议栈的加入协助单片机处理了几乎所有的TCP/IP协议工作,不仅极大地减少了单片机的中断次数,让单片机腾出更多资源去完成其他工作,而且硬件化的电路处理协议会更加快速、稳定。经试验测试,单线程下,该方案的通信速度是软件协议方案的10倍左右;随着线程的增加,因为硬件协议栈是通过独立的Socket进行通信,因而通信速度实现累加,而且单片机工作效率仍然会维持在高位。       代码量方面,因为这套方案主要是完成对Socket的编程以及寄存器的调用,因此仅有10K左右的代码量,远小于软件协议方案,对51以及STM32等内存很有限的单片机来说非常适用。       从成本角度来讲,硬件协议栈芯片的价格跟用MAC+PHY比起来基本差不多。而前者简单易用,用很短时间便能完成产品的开发过程。另外,官方例程库及上位机程序丰富,也缩短了测试过程,后期基本免于维护。       最后安全性方面,硬件化的逻辑门电路来处理TCP/IP协议是不可攻击的,也就是说网络攻击和病毒对它无效,这也充分弥补了网络协议安全性不足的短板。也正是因为这一优势,硬件协议栈技术在未来物联网以及智能家居领域有着广泛的发展前景,让人们尽情享受现代科技带来的乐趣的同时,免受安全问题的困扰。 当然,不可避免的硬件化的协议栈相对来说失去了软件协议栈那样的灵活性。目前只支持4个/8个Socket,不能随时开启更多Socket。但是,在嵌入式应用中8个Socket已经足够应对超过大部分的应用。
Read More

实现物联网–教你如何将mbed LPC114FN28连入AXEDA!

博客
项目描述 这个教程会告诉你如如何将 mbed LPC114FN28连入AXEDA服务,实现物联网! mbed LPC1114FN28 合作平台: Switch-Science mbed LPC1114FN28需要运行在48MHz的CPU主频下。LPC1114FN28拥有高达32KB的Flash存储空间,高达4KB的数据存储空间,一个快变模态I2C总线接口,一个RS-485/EIA-485 UART接口,一个带SSP的SPI接口,4个通用计数器/定时器,一个10位的ADC,还有22个通用I/O引脚。 注意:由于flash的大小限制,LPC1114FN28不支持RTOS。请不要把mbed-rtos库引入你的工程。 mbed LPC1114FN28已经非常限制了存储空间,而且无网络连接。另外,LPC114EN28不支持RTOS及以太网接口。 如果你先要把这个板子连接到AXEDA(一个物联网云服务),我们怎么办呢? 答案就是WIZ550io。 WIZ550io 是一个自动配置的以太网控制器模块,包含一个W5500(嵌入全硬件TCP/IP芯片TCP/IP及PHY),一个变压器及RJ45。支持SPI(主接口)。因此,即使主系统没有以太网接口或者TCP/IP软件协议栈(包含在RTOS中),主系统也可以轻松连接到网络。 http://developer.mbed.org/components/WIZ550io/ 软件连接:mbed LPC1114FN28 + WIZ550io WIZ550io: 以太网连接 引脚名称 LPC1114FN28 方向 WIZ550io miso dp1   J1:3 sck dp6 —> J1:5 scs dp26 —> J1:6 RSTn dp25 —> J2:3 电位计: 引脚名称 LPC1114FN28 方向 电位计 AnalogIn dp13 <— 2(OUT) 软件 – AxedaGo-mbedNXP + W5500Interface 1. 进入AxedaGo-mbedNXT 点击并进入这个程序 : AxedaGo-mbedNXP   将平台变为mbed LPC1114FN28。已经为LPC1768做了软件。因为我们要使用LPC1114FN28,所以你必须在编译器中选择LPC1114EN28。 2. 在AxedaGo-mbedNXP_WIZ550io上删除以太网及mbed-rtos接口 3. 入口W5500接口 点击并进入这个程序:W5500接口 4. 移植 main.cc: 用于WIZ550io,以太网接口初始化。需要做以下更改: #if defined(TARGET_LPC1114)     SPI spi(dp2, dp1, dp6); // mosi, miso, sclk     EthernetInterface eth(&spi, dp25, dp26); // spi, cs, reset     AnalogIn pot1(dp13); #else     EthernetInterface eth;     AnalogIn pot1(p19);     AnalogIn pot2(p20); #endif * AnalogIn端口也应该根据平台类型进行配置。   AXEDA 1. 参考:用于mbed NXP LPC1768原型版的Axeda Go套件/网站链接: http://developer.axeda.com/Instructions/axeda-go-kit-mbed-NXP-LPC176 2. Axeda上的仪表盘 点击"AXEDA READY" 选择mbed LPC1768并键入设备名称 复制串口号 在代码中输入串口号(main.cc) 1 char *SERIAL_NUM = "SerialNumber"; 尽享 LPC1114FN24 + WIZ550io在AXEDA的乐趣 点击页面顶部“编译”按钮并在你的平台上下载.bin文件 串口终端日志:检查你的DHCP IP地址,电位计值,通过串口终端发送调试信息。…
Read More

以太网芯片应用:GPS公交车行驶记录仪

博客
项目描述   佛罗里达大学学生 Miles Moody 使用WIZnet W5200以太网插板及Arduino Nano剖析了来自一个当地网页服务的HTML代码,并讲述了他每天带着公交车实时GPS坐标仪上学的经历: 正如下图所示,系统告知公交车还离车站多远。黄灯亮时,主人就跑到车站及时赶上了公交车。 这是一个非常好的例子,是让我们生活变得更便捷的好点子。 更多详细内容,请访问作者博客: http://randomhacksofboredom.blogspot.kr/2010/04/most-useful-mess-of-wires-gps-bus.html 感谢阅读: WIZnet中文官方网站:http://www.iwiznet.cn WIZnet官方微博:http://weibo.com/wiznet2012 WIZnet微信号:iWIZnet
Read More

基于W5500的嵌入式SNMP代理端实现

博客
一 实验背景 最近一个做焊接设备的朋友想在焊机上添加监控的新功能,实时获取焊机的温度、功耗等参数,还可简单控制,实现对集群焊接设备的网络化管理。而这个朋友不想在开发管理系统上花太多精力,想找一个开源的管理软件来实现他的需求。这让我想到了简单邮件管理协议SNMP,它生来就是为搞网络管理服务的。能广泛兼容各网络设备,一经推出就得到了广泛的应用和支持,几乎所有的网络设备生产厂家都实现了对SNMP的支持,大多数网络管理系统和平台也都是基于SNMP的。事实上,目前SNMP已成为网络管理领域中的工业标准,我国国家广电总局就要求通信领域的标准网络设备都必须支持SNMP协议。SNMP代理端实际占用系统资源少,在单片机上运行是没有问题的。于是我想到用手头的WIZnet-W5500评估板实现了SNMP代理端,给他提供一个参考。 二 SNMP基础普及   在实现SNMP代理端之前,我们先了解一下SNMP的基本知识。管理系统中就要有管理者和被管理者,网管协议定义它为管理站和代理端,它们通过管理信息库MIB进行接口统一,实现数据的通信。 MIB可以认为是一个被管理对象的集合,每个对象规定了能够被管理进程查询和设置的信息,同时都有自己的名字我们称之为对象标识符,简称OID,它的命名方法跟DNS树形结构命名类似,通过OID就能知道这个设备所属的领域和厂家,如MIB中有一个节点{1.3.6.1.4.1},即enterprises,代表企业,它以下的节点都为企业型的。如IBM为{1.3.6.1.4.1.2},Cisco为{1.3.6.1.4.1.9}等。任何一个公司、学校只要用电子邮件发往[email protected]进行申请即可获得一个结点名。这样就可以定义自己的产品的OID,使它能用SNMP进行管理。 为了操作管理数据库MIB,如图1所示:SNMP规定了5种协议SNMP报文,用来在管理进程和代理之间的交换。1 get-request;2 get-next-request;3 set-request;4 get-response;5trap。前面的3种操作是由管理进程向代理进程发出的get/set操作,双方都使用UDP161端口。第4个是对前三种操作的回应,用UDP161端口,第5个代理进程主动发出的报文,通知管理进程有某些事情发生,使用UDP162端口。 图1 SNMP的5种报文操作 图2是封装成UDP数据报的5种操作的SNMP报文格式。可见一个SNMP报文共有三个部分组成,即公共SNMP首部、get/set首部或trap首部、变量绑定。 图2 SNMP报文格式 三 SNMP嵌入式系统实现方法   了解了SNMP协议之后,下面就让我们通过WIZnet W5500EVB做一个嵌入式SNMP代理端的简单实验。 1.实验目的:建立一个SNMP代理端 2.硬件环境 单片机:STM32F103RC,256K字节Flash,48K字节SRAM 以太网控制器:W5500,SPI接口与单片机相连 电源:USB供电 硬件外设:板载LED 3.开发工具: IAR V5.14(版本不一样,需要稍加改动) 4.测试软件:串口调试助手,Net-SNMP(可从网络下载) 软件部分是实现简单网络管理协议SNMP的关键,下面就以程序流程图的形式看看我们是如何实现的。 图3为主程序流程图,我们可以看出程序首先进行单片机系统软硬件初始化,然后初始化W5500,配置了IP地址、MAC地址、和网关。 图3主程序流程图 配置完毕后就是代理端主动发送SNMP Trap报文了,发送SNMP Trap报文的过程比较简单,主要就是安装Trap报文格式对发送数据进行打包即可,需要注意的是数据包要根据ASN.1中的BER编码方式(格式类型/长度/值)进行编码。打包完毕后,开启UDP Socket,本地端口为162,然后向管理的162端口发送Trap包。接下来就进入一个循环,等待解析SNMP管理站发来Request数据包,边解析,边准备要回复的数据包,下图为代理端解析管理站发来的GET/SET请求,并准备Response数据包的流程图。 图4代理端解析Request程序流程图 通过图4流程图我们可以看到,整个过程是严格按照SNMP协议一步步进行解析判断的。需要说明的是,也是先根据SNMP编码方式进行解码,再进行比较和判断。我们知道SNMP中MIB联系管理站和代理端的关键,解析程序到最后查询的便是MIB中的对象,在此我们给出定义MIB对象的结构体: typedef struct {    uint8 oidlen;    uint8 oid[MAX_OID];    uint8 dataType;    uint8 dataLen;    union {       uint8octetstring[MAX_STRING];       uint32 intval;    } u;    void(*getfunction)(void *, uint8 *);    void(*setfunction)(int32); } dataEntryType; 通过该结构体的定义我们可以知道MIB对象的几个部分:OID ,数据类型,数据长度,数据,get函数,set函数,本方案MIB中定义的一个控制LED动作的一个对象:{8, {0x2b, 6, 1, 4, 1, 0, 2, 0},SNMPDTYPE_INTEGER, 4,{""},  NULL, setWIZnetLed} 其中8为OID长度,0x2b是ASN.1中“1.3”的缩写,即:1*40+3=0x2b。整个OID其实为1.3.6.1.4.1.0.2.0。该对象的set函数为setWIZnetLed: void setWIZnetLed(int32 val){    wiznetLedStatus =val;// W5500-EVB    if (wiznetLedStatus==0 )GPIO_SetBits(GPIOA, LED3); // STM32    elseGPIO_ResetBits(GPIOA, LED3); } 此为函数名,同样也为函数的指针,在解析SET函数过程中有一句代码:snmpData[id].setfunction(snmpData[id].u.intval);就是执行了该函数,其中snmpData[id].u.intval为从set Request当中解析到的绑定变量值。 整个MIB就是由上述格式的对象组成,让可以自己定义对象的OID变量及对象的函数,当管理站向该对象发送请求时,就可以执行相应函数,从而完成你所需要让SNMP完成的管理和控制。 完整源程序下载:http://pan.baidu.com/s/1qWmHpTE 四 测试SNMP代理端   下面以PC机为SNMP管理站,讲述如何测试我们实现的SNMP代理端。 1.在电脑中安装Net-SNMP软件。Net-SNMP是一个免费的、开放源码的SNMP实现方式。按默认选型安装软件后,点击Windows开始——>运行 输入“ CMD ”,点击确认,进入DC命令环境,输入“ cd \usr\bin”,此路径即安装的Net—SNMP默认路径,在此路径下可执行SNMP命令。 2.修改PC本地连接IP地址。控制面板——>网络和Internet——>网络连接,点击本地连接选择属性,设置PC为静态IP(与W5500在同一网段),设置完成后点击确定,本例中我们设定PC机ip为192.168.1.110,SNMP代理端IP为192.168.1.111,默认网关都为192.168.1.1。 3.接着用网线把PC和W5500EVB连接,打开串口软件,选择正确的COM口并打开串口,以获取调试信息。 4.下载编译好的代码并复位W5500EVB,我们发现板子上有一排LED,最右边这个LED就是我们要查询并且控制的。如图5所示,现在这个LED是亮的。 图5最右边LED亮 5.在刚才打开的Net—SNMP默认路径下可以输入指令,如图所示输入“snmpget -v 1 -cpublic 192.168.1.111 .1.3.6.1.4.1.0.1.0 ”回车,查询到“LED On”,符合板子现在亮的情况。 6.再输入“snmpset -v 1 -cpublic 192.168.1.111 .1.3.6.1.4.1.0.2.0 i 0”回车,结合这个OID对象的set函数分析可知,该条命令是置STM32的LED3对应引脚为高,即关闭LED。如图6观察板子上的LED3,可见已灭。 图6最右边LED灭 7.如图7再次输入第5步的snmpget指令,可以查询到状态为“LED Off”。…
Read More