教你如何通過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