W5100S——SOCKET - less PING功能解析

版权声明:未经许可,禁止转载。 https://blog.csdn.net/qq_41528102/article/details/82178804

上篇文章已经简单介绍了W5100S,并且和W5500进行了对比分析。

上篇文章链接 - W5100S--全新一代高性能全硬件TCP / IP协议栈以太网芯片(可以了解下W5100S的基本参数情况)

本篇则主要讲解W5100S特有的新功能——SOCKET - less功能。通过对其相关寄存器进行配置,完成W5100S硬件主动PING外部设备。


首先我们需要了解关于SOCKET - less中与PING功能相关的寄存器。

1.SLRTR(SOCKET - less 重传超时时间寄存器)

重传超时时间寄存器:配置PING的超时重传时间基本单位是100us的的的,当过了时间则会启动重传机制。

2.SLRCR(SOCKET - less 重传次数寄存器)

重传次数寄存器:设定重传次数,若当前重传次数 >= 重传次数 + 1时,则判定为TIMEOUT。

3.SLPIPR(SOCKET - less 目标IP地址寄存器)

SOCKET - less 目标IP地址寄存器:硬件PING的目标IP。

4.PINGSEQR(PING序列号寄存器)

PING序列号寄存器:PING请求数据包的报头序列号。

5.PINGIDR(PING ID寄存器)

PING ID寄存器:PING请求数据包的报头数据包ID。

6.SLIMR(SOCKET - less 中断屏蔽寄存器)

SOCKET - less 中断屏蔽寄存器:选择开启/关闭PING与TIMEOUT中断

7.SLCR(SOCKET-less控制寄存器)

SOCKET - less 控制寄存器:发送相关请求的使能寄存器。


SOCKET - less 相关的寄存器还有很多,这里仅介绍几个关于硬件PING的寄存器。

详细W5100S信息欢迎前往www.w5100s.com浏览下载。

上述寄存器功能描述还是很直白的,我们使用硬件PING时也仅需要设置这几个相关寄存器即可。具体流程如下代码:

void hw_ping_init(void)
{
    setSLRTR(0x03E8);       // 重传超时时间设置:1000 * 100us
    setSLRCR(3);            // 重传次数设置:3次
    /* 使用中断时可开启该配置 */	
    setSLIMR(0x05);         // 中断开启 PING & TIMEOUT

    setPINGSEQR(0x03E8);    // 请求数据包序列号设置:1000
    setPINGIDR(0x0100);     // 请求数据包ID:100
}

上述代码相当于使用硬件PING时无特殊要求可设置一次即可。先后顺序不作要求。

void hw_ping(void)
{
    setSLPIPR(hw_ping_ip);            // 目标IP设置:PING对象IP
    setSLCR(0x01);                    // 发送PING请求
}

这部分代码在需要使用一次硬件PING时,进行一次调用即可。

而我们判断PING的结果,我使用了中断进行判断,超时还是响应都会发生次中断,具体如下:

void EXTI9_5_IRQHandler(void)			
{
	uint8 temp;
	if(EXTI_GetITStatus(EXTI_Line9) != RESET)	
	{
		EXTI_ClearITPendingBit(EXTI_Line9);		
		temp = getSLIR();
		switch(temp)
		{
			case 0x01:
				setSLIR(0x01);
				printf("\r\n收到对端PING回应.");
			break;
			case 0x04:
				setSLIR(0x04);
				printf("\r\n对端PING回应超时.");
			break;
			default:break;
		}
	}
}

W5100S 中断是管脚电平触发外部中断,再判断具体哪种中断进行处理。


上述的代码,均是www.w5100s.com内16.HW_PING例程内的,该例程已经过实测,硬件PING功能正常使用。

例程是中断方式判断结果,也可写成轮询形式均可。


W5100S目前已经到货,炜世已经正式调通并将配套的资料例程补充完毕。

相关资料炜世已经整理上传至www.w5100s.com网址内,欢迎各位前往浏览。

WIZnet W5100S技术交流群:579842114,群内有“大神”为大家答疑解惑。

后续我将会陆续发布关于W5100S各类功能测试博文,有兴趣的朋友欢迎关注。

炜世是WIZnet的的的官方代理商,W5100S可提供模块/评估板供客户测试。

如需详细资料/样品申请/技术支持等,欢迎与我们联系。

炜世为客户提供全程的技术支持与优异的价格优势。

网址:深圳炜世科技 - 物联网系统解决方案提供商&WIZnet授权代理商

电话:0755-86568556

QQ:2571856470

邮箱:[email protected]

猜你喜欢

转载自blog.csdn.net/qq_41528102/article/details/82178804