教你如何通过MCU配置S2E为TCP Client的工作模式

串口转以太网, 博客, 物聯網
在上两篇文章中分别讲述了通过MCU配置S2E为UDP、TCP Server的工作模式”,相信小伙伴们已经对S2E的基本功能了解了一些,现在就让我们再接再厉、更上一层楼吧: 首先我们先了解一下MCU与S2E的接线方式: 1、接线方式: 2、例程说明: 打开“通过MCU配置S2E为TCP Client例程”,主程序中第一部分TIM3_Init();是设定一个帧中断的时间定时器,这是因为该例程MCU的串口是通过帧中断来接收AT命令配置S2E后返回的数据的。 第二部分USARTX_Init();初始化MCU用到的串口,这里用USART1_Config();是printf功能,用于查看调试信息。USART2_Config();用于配置S2E,需要注意的是该串口的配置参数需要同S2E的串口配置参数一致,否则配置失败。 第三部分主循环中的TCP_Client_Mode();用于配置S2E为TCP Client模式。S2E的AT命令列表详见各个S2E型号的用户手册AT命令章节介绍。配置成功,串口打印“TCP Client Config Success!”,配置失败串口打印“TCP Client Config Fail!”。 /**************************************************** 函数名:TCP_Client_Mode 形参:无 返回值:无 函数功能:通过串口发送AT命令配置S2E模块 ****************************************************/ volatile uint8_t SendFlag = 0; void TCP_Client_Mode(void) { uint8_t RecvFlag = 1; char *state; switch (SendFlag) { case 0: { Usart_Send(USART2, "AT\r\n"); //终端检测命令 while (RecvFlag) { if (RX2_Point & FRAME_LEN) { //如果接收到数据 state = strstr((char*) RecvBuff, "OK"); //判断回复的数据中是否有“OK” if (state != NULL) { //有 RX2_Point = 0; //接收缓冲区指针置零 RecvFlag = 0; //接收标致位置零 SendFlag = 1; //发送标志位置零 printf("Recv:%s\r\n", RecvBuff); memset(RecvBuff, 0, RECV_LEN); //接收缓存清零 } else { //无 SendFlag = 100; //配置失败 RecvFlag = 0; } } } } break; case 1: { Usart_Send(USART2, "AT+ECHO=0\r\n"); //开启(1)/关闭(0)回显命令 RecvFlag = 1; while (RecvFlag) { if (RX2_Point & FRAME_LEN) { state = strstr((char*) RecvBuff, "OK"); if (state != NULL) { RX2_Point = 0;…
Read More

教你如何通过MCU配置S2E为TCP Server的工作模式

串口转以太网, 博客, 物聯網
在上一篇文章中讲了“如何通过MCU配置S2E为UDP模式”,相信小伙伴们已经了解了S2E的基本功能,在这一篇中,我们再接再厉,继续学习一下“如何通过MCU配置S2E为TCP Server的工作模式”,无论是配置UDP模式还是配置TCP模式,都是通过串口转以太网的方式实现的: 1、接线方式 2、例程说明 打开“通过MCU配置S2E为TCP Server例程”,主程序中第一部分TIM3_Init();是设定一个帧中断的时间定时器,这是因为该例程MCU的串口是通过帧中断来接收AT命令配置S2E后返回的数据的。 第二部分USARTX_Init();初始化MCU用到的串口,这里用USART1_Config();是printf功能,用于查看调试信息。USART2_Config();用于配置S2E,需要注意的是该串口的配置参数需要同S2E的串口配置参数一致,否则配置失败。 第三部分主循环中的TCP_Server_Mode();用于配置S2E为TCP Server模式。S2E的AT命令列表详见各个S2E型号的用户手册AT命令章节介绍。配置成功,串口打印“TCP Server Config Success!”,配置失败串口打印“TCP Server Config Fail!”。 /**************************************************** 函数名: TCP_Server_Mode 形参: 无 返回值: 无 函数功能: 通过串口发送AT命令配置S2E模块 ****************************************************/ volatile uint8_t SendFlag = 0; void TCP_Server_Mode(void) { uint8_t RecvFlag = 1; char * state; switch (SendFlag) { case 0: { Usart_Send(USART2, "AT\r\n"); //终端检测命令 while (RecvFlag) { if (RX2_Point & amp; FRAME_LEN) { //如果接收到数据 state = strstr((char * ) RecvBuff, "OK"); //判断回复的数据中是否有“OK” if (state != NULL) { //有 RX2_Point = 0; //接收缓冲区指针置零 RecvFlag = 0; //接收标致位置零 SendFlag = 1; //发送标志位置零 printf("Recv:%s\r\n", RecvBuff); memset(RecvBuff, 0, RECV_LEN); //接收缓存清零 } else { //无 SendFlag = 100; //配置失败 RecvFlag = 0; } } } } break; case 1: { Usart_Send(USART2, "AT+ECHO=0\r\n"); //开启(1)/关闭(0)回显命令 RecvFlag = 1; while (RecvFlag) { if (RX2_Point & amp; FRAME_LEN) { //如果接收到数据 state = strstr((char *…
Read More

教你如何通过MCU将S2E配置为UDP的工作模式

串口转以太网, 博客, 物聯網
W5500S2E-S1是一款工业级串口转以太网模块,支持TCP Server,TCP Client和UDP三种工作模式,串口波特率最高可达1.152Mbps,并提供配套的上位机配置软件,也可通过网页或AT命令等方式轻松配置。 W5500S2E-S1模块集成了全硬件TCP / IP协议栈以太网接口芯片W5500,网络通信更加快速,稳定,安全。用户只需根据手册中推荐的参考设计原理图,即可快速完成硬件电路的设计,降低开发难度,节省开发时间。 今天我们就实际的来了解一下W5500S2E-S1基于UDP工作模式的具体操作流程是什么样的,下面我们就来看看吧: 具体操作流程 (1),接线方式: (2)、例程说明: 打开“通过MCU配置S2E为UDP例程”,主程序中第一部分TIM3_Init();是设定一个帧中断的时间定时器,这是因为该例程MCU的串口是通过帧中断来接收AT命令配置S2E后返回的数据的。 第二部分USARTX_Init();初始化MCU用到的串口,这里用USART1_Config();是printf功能,用于查看调试信息。USART2_Config();用于配置S2E,需要注意的是该串口的配置参数需要同S2E的串口配置参数一致,否则配置失败。 第二部分USARTX_Init();初始化MCU用到的串口,这里用USART1_Config();是printf功能,用于查看调试信息。USART2_Config();用于配置S2E,需要注意的是该串口的配置参数需要同S2E的串口配置参数一致,否则配置失败。 /**************************************************** 函数名: UDP_Mode 形参: 无 返回值: 无 函数功能: 配置S2E为UDP模式 ****************************************************/ volatile uint8_t SendFlag = 0; void UDP_Mode(void) { uint8_t RecvFlag = 1; char *state; switch (SendFlag) { case 0: { Usart_Send(USART2, "AT\r\n"); //终端检测命令 while (RecvFlag) { if (RX2_Point & FRAME_LEN) //如果接收到数据 { state = strstr((char*) RecvBuff, "OK"); if (state != NULL) { RX2_Point = 0; //接收标志位置零 RecvFlag = 0; //状态标志位置零 SendFlag = 1; printf("Recv:%s\r\n", RecvBuff); memset(RecvBuff, 0, RECV_LEN); } else { SendFlag = 100; RecvFlag = 0; } } } } break; case 1: { Usart_Send(USART2, "AT+ECHO=0\r\n"); //开启(1)/关闭(0)回显命令 RecvFlag = 1; while (RecvFlag) { if (RX2_Point & FRAME_LEN) //如果接收到数据 { state = strstr((char*) RecvBuff, "OK"); if (state != NULL) { RX2_Point = 0; RecvFlag = 0; SendFlag…
Read More
直击WIZnet 2016代理商年会

直击WIZnet 2016代理商年会

新闻
2016年12月9日,WIZnet中国区代理商年会在深圳万德诺富特酒店成功举办!会议由WIZnet大中华区总经理陈海峰博士主持,WIZnet中国区代理商代表、大韩贸易投资振兴公社代表以及合作企业Quopin一行参加了本次年会,以下是年会概况。 首先,陈博士以“机遇与挑战”为主题,深入分析了2016年WIZnet产品在中国市场的表现。在搜索引擎对WIZnet产品及同行业竞争产品进行搜索方面,百度和谷歌的搜索结果显示2006年发布的W5100的搜索量依然高居榜首,W5500作为后起之秀,搜索量也在不断攀升;从百度趋势和谷歌趋势的大数据分析来看,W5500在2014年年初的趋势首次超越W5100,以其高性价比成为业界的新宠。 接下来,陈博士用WIZnet中国区的销量实际表现来进行详细说明。在即将过去的2016年大陆市场存在诸多不稳定因素的情况下,WIZnet芯片的销量增长幅度达到25%左右,其中W5100表现稳定,W5300稳步增长,W5500增长较为强势。 应用领域方面,工业控制、智能电网、金融机具、安防门禁、通信模块等传统领域仍然占据较大销售份额,智能电网在充电桩这一新兴市场的带动下在2016年实现较大幅度增长。而智能家居和网络打印机等新兴领域也逐渐占据较大的销量,有望在未来今年成为硬件协议栈芯片的佼佼者。 新增客户方面,由于WIZnet产品在中国市场上的推广普及,2016年新增报备客户再创新高,但代理商们面对的现实问题是量产客户比重一直在低位徘徊。籍此,陈总通过以上数据分析号召大家利用WIZnet产品的知名度优势、产品技术优势、客户数量优势、应用领域优势、技术支持优势以及客户忠诚度优势继续加强开拓市场,面对高性能ARM的竞争压力及金融货币市场下行等因素,可谓机遇与挑战并存,在2017年实现预期目标! 会议后半程,由WIZnet北京办公室资深工程师常席正给大家分享了大家较为关心的WIZnet技术相关的几项议题。 首先,常工向各位代理商宣布发布2017年WIZnet最新产品:W5100S。W5100S是一款低成本的以太网解决方案,其与W5100软件兼容,只需硬件做些许改动。跟W5100类似,W5100S同样具有SPI/8位总线,4个独立Socket,16KB缓存,10/100M全双工自适应,支持自动机性转换,不同的是采用了0.13um CMOS工艺,使得成本大幅降低。 Wi-Fi方面,即将推出低成本的WizFi310模块,它的特点是在20M带宽下PHY可以跑到72.2Mbps,在40M带宽下能跑到150Mbps,接口为UART,串口最高波特率可以达到921600bps,支持Soft AP模式,支持WEP, WPA/WPA2PSK等加密及L2 Switching。 模块方面,2017年年初将会推出W5500S2E-Z1串口转以太网模块,该模块与2016年年中发布的W5500S2E-S1软件兼容,而尺寸方面与目前市场上的S2E模块兼容,成本较W5500S2E-S1有所降低。 2017年还将发布MQTT模块:W5500S2E-T1,该模块集成当下流行的消息队列传输协议(MQTT)及传输层安全协议(TLS),敬请期待! 随后,常席正给大家带来了一大批干货:WIZnet技术问题TOP10。这引起了大家的激烈讨论,大家各抒己见,同是技术出身的成都浩然黎总与上海本宏周总给大家分享了在WIZnet产品推广中遇到的案例,将会议推向高潮。 最后是晚宴环节~
Read More