基于W500+STM32的SNMP协议应用

2019-12-13 18:23发布

概述
工具: PC  W5500EVB Net-SNMP软件包
编译环境:Keil4 &IAR
功能:通过网络管理协议SNMP及基本的控制命令实现简单的LED控制

一、W5500简介
    韩国WIZnet公司生产的以太网控制芯片W5500整合了五层结构中的前四层,即物理层、数据链路层、网络层和传输层,并在内部利用硬件实现了TCP/IP协议栈。开发者无需专业的网络知识,使用W5500如同控制外部存储器一样简单,为用户提供了最简单的网络接入方法。全硬件TCP/IP协议栈完全独立于主控芯片,可以降低主芯片负载且无需移植繁琐的TCP/IP协议栈,便于产品实现网络化更新。以太网控制芯片W5500具有以下特点:
1、W5500支持硬件TCP/IP协议,包括TCP、UDP、ICMP、IPv4、ARP、IGMP、PPPoE和以太网的PHY和MAC层,TCP/IP协议的硬件实现
2、支持8个独立的SOCKET同时工作,可同时工作在不同的工作模式;
3、支持高速SPI接口(SPI MODE 0,3),SPI的时钟最高可达到80MHz,极大地提高了网络通信的数据传输速率;
4、内部集成32KB存储器用于发送/接收缓存;
5、内嵌10BaseT/100BaseTX以太网物理层(PHY);
6、支持自动协商(10/100-Based全双工/半双工);
7、工作电压为3.3V,但I/O信号口可承受5V电压;

二、SNMP协议简介
SNMP:“简单网络管理协议”,用于网络管理的协议。
SNMP定义在IP协议上,使用无连接的UDP进行通信,SNMP支持5个基本的操作,分别是:GetRequest、GetNextRequest、SetRequest、GetResponse和Trap,这 5个操作来自各自的PDU结构。SNMP采用的是一个请求---应答的通信方式,Trap除外,Trap不需要应答。
    在具体实现上,SNMP为管理员提供了一个网管平台(NMS),又称为管理站,负责网管命令的发出、数据存储、及数据分析。被监管的设备上运行一个SNMP代理(Agent),代理实现设备与管理站的SNMP通信。管理站与代理端通过MIB进行接口统一,MIB定义了设备中的被管理对象。管理站和代理都实现了相应的MIB对象,使得双方可以识别对方的数据,实现通信。管理站向代理申请MIB中定义的数据,代理识别后,将管理设备提供的相关状态或参数等数据转换为MIB定义的格式,应答给管理站,完成一次管理操作。Agent在161端口监听传来的GetRequest、GetNextRequest和SetRequest命令,NMS在162端口监听传来的Trap。SNMP操作请求被封装成一个简单的UDP分组,接收端处理完请求后应答一个UDP的SNMP消息报文;一个请求对应一个应答就完成了一次操作。
    SNMP的工作方式:管理员需要向设备获取数据,所以SNMP提供了读操作;管理员需要向设备执行设置操作,所以SNMP提供了写操作;设备需要在重要状况改变的时候,向管理员通报事件的发生,所以SNMP提供了Trap操作。对于网络管理,我们面对的数据是设备的配置、参数、状态等信息,面对的操作是读取和设置;同时,因为网络设备众多,为了能及时得到设备的重要状态,还要求设备能主动地汇报重要状态,这就是报警功能。
Get:读取网络设备的状态信息。
Set:远程配置设备参数。
Trap:管理站及时获取设备的重要信息。
15.png (2.93 KB, 下载次数: 0) 下载附件 2014-12-11 10:49 上传

2.注意问题
1.最基本的要注意保持程序和串口工具波特率一致,否则无法正常观察操作信息,以免引起误导
2.切记如果是EVB和电脑通过网线直接,需修改电脑IP为静态IP且和W5500EVB设置IP在同一个网段,否则不能实现测试效果,如果是通过路由器测试则不需修改
3.如果大家需要在自己的调试板测试,需要将所有LED灯修改为和自己的调试版对应,以免产生错误
4.输入测试指令时要注意不同指令之间的空格以及点,Public后面的IP地址正是你在程序中给调试板设置IP地址;后面的OID信息跟snmpdemo子函数下定义的数组中信息对应,对照看也可以帮助大家理解
5.Net-SNMP软件一定要安装,安装哪个盘不限制,但是安装在C盘最好,更方便SNMP协议启动


SNMP.zip (355.15 KB, 下载次数: 149) 2014-12-11 10:52 上传 点击文件名下载附件
Keill版本
W5500SNMPiar.zip (5.01 MB, 下载次数: 154) 2014-12-11 10:53 上传 点击文件名下载附件
IAR版本
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
58条回答
zhunyan1
1楼-- · 2019-12-20 21:48
你这个是不按照NET-SNMP移植的吧?
zhunyan1
2楼-- · 2019-12-21 03:32
有V2C的例程吗?最近在搞SNMP v2c 版本的
My_Skity
3楼-- · 2019-12-21 09:26
 精彩回答 2  元偷偷看……
youkebing
4楼-- · 2019-12-21 14:57
zhunyan1 发表于 2019-2-13 14:14
有V2C的例程吗?最近在搞SNMP v2c 版本的

论坛我写的支持v2,但是有bug,没有bug的已经商用了,所以不能公开了

一周热门 更多>