在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

TCP/IP嵌入式以太網控制器連接騰訊云

嵌入式技術 ? 來源:嵌入式技術 ? 作者:嵌入式技術 ? 2022-05-31 17:56 ? 次閱讀

1.W5500簡介

W5500 是一款全硬件 TCP/IP 嵌入式以太網控制器,為嵌入式系統提供了更加簡易的互聯網連接方案。 W5500 集成了 TCP/IP 協議棧, 10/100M 以太網數據鏈路層(MAC)及物理層(PHY) ,使得用戶使用單芯片就能夠在他們的應用中拓展網絡連接。
久經市場考驗的 WIZnet 全硬件 TCP/IP 協議棧支TCP,UDP,IPv4,ICMP,ARP,IGMP 以及 PPPoE 協議。 W5500 內嵌 32K 字節片上緩存以供以太網包處理。如果你使用 W5500,你只需要一些簡單的 Socket 編程就能實現以太網應用。這將會比其他嵌入式以太網方案更加快捷、簡便。用戶可以同時使用 8 個硬件 Socket 獨立通訊。
W5500 提供了 SPI(外設串行接口)從而能夠更加容易與外設 MCU 整合。而且,W5500 的使用了新的高效 SPI 協議支持 80MHz 速率,從而能夠更好的實現高速網絡通訊。為了減少系統能耗, W5500 提供了網絡喚醒模式(WOL)及掉電模式供客戶選擇使用。

2.W5500底層驅動編寫與移植

W5500底層底層驅動移植參考示例:http://www.xsypw.cn/d/1843264.html?track_id=myCenter&mod=article&share
STM32連接騰訊云參考示例:http://www.xsypw.cn/d/1842055.html?track_id=myCenter&mod=article&share

騰訊物聯網絡平臺連接

#include "stm32f10x.h"
#include "usart.h"
#include "timer.h"
#include "aliyun_mqtt.h"

/*w5500相關頭文件*/
#include "w5500api.h"
#include "dhcp.h"
#include "dns.h"
#define SERVER_IP "LA57WTHWL6.iotcloud.tencentdevices.com"http://服務器IP
#define SERVER_PORT 1883 //端口號
//客戶端ID:{產品ID}{設備名}
#define ClientID "LA57WTHWL6Smart_home"
//用戶名和密碼可使用密碼生成工具完成
#define Username "LA57WTHWL2Smart_home;120310126;HK8V9;1635948714"
#define Password "2a915cae4489b591ce556e71f4e9f1ka21c354a37d12fee7c46f56abee1f048a;hmacsha256"http://密文 

//訂閱題:$thing/down/property/{ProductID}/{DeviceName} ---{ProductID}產品ID,{DeviceName}設備名
#define SET_TOPIC  "$thing/down/property/Lb57WTHWL3/Smart_home"http://訂閱
//發布主題:$thing/up/property/{ProductID}/{DeviceName}
#define POST_TOPIC "$thing/up/property/Lb57WTHWL3/Smart_home"http://發布

char mqtt_message[200];//上報數據緩存區
u8 rx_buff[200];
void init_Net(void)
{
	u8 try_times=0;
	init_W5500();/*W5500初始化*/
	init_dhcp_client();//動態分配IP
	while(check_DHCP_state(SOCK_DHCP)!=DHCP_RET_UPDATE)
  {
			try_times++;
			if(try_times==255)//超時 重啟芯片
      {							
				Reset_W5500();
				init_dhcp_client();
				try_times=0;
			}
			delay_ms(10);
		}
    while(!set_Network());
  /*判斷數據是否寫入成功*/
  u8 ipaddr[4];//ip地址
  u8 subnet[4];//子網掩碼
  u8 gateway[4];//網關
	getSIPR (ipaddr);			
	printf(" W5500 IP地址   : %d.%d.%d.%d\r\n", ipaddr[0],ipaddr[1],ipaddr[2],ipaddr[3]);
	getSUBR(subnet);
	printf(" W5500 子網掩碼 : %d.%d.%d.%d\r\n", subnet[0],subnet[1],subnet[2],subnet[3]);
	getGAR(gateway);
	printf(" W5500 網關     : %d.%d.%d.%d\r\n", gateway[0],gateway[1],gateway[2],gateway[3]);  
}
/*連接服務器*/
uint8 TCP_Connect(SOCKET Socket,uint8 *sip,uint16 sport,uint16 lport)
{
  static uint8 CONNECT_FLAG = 0;
  switch(getSn_SR(Socket))
  {
    case SOCK_INIT:
			 CONNECT_FLAG=connect(Socket,sip,sport);/*連接服務器*/
       break;
    case SOCK_CLOSE_WAIT:
      disconnect(Socket);
      close(Socket);
      break;
    case SOCK_CLOSED:
			 CONNECT_FLAG=0;
			 socket(Socket,Sn_MR_TCP,lport,Sn_MR_ND);
			 break;
  }
  return CONNECT_FLAG;
}
int main()
{
  u16 i=0;
  u8 stat=0;
  u16 time=0,cnt=0;
  float temp=10;
  u16 rlen;
  USART1_Init(115200);
  printf("W5500 SPI模擬時序寄存器版,連接騰訊云VER1.0 \r\n");
  init_Net();/*W5500硬件初始化,動態分配IP*/
  printf("W5500 硬件初始化成功\r\n");
  while(!do_dns((u8 *)SERVER_IP)){}/*域名解析*/
  while(1)
  {
    stat=TCP_Connect(MQTT_SOCK,NET_CONFIG.rip,1883,5500);/*連接服務器*/
    printf("stat=%d\r\n",stat);
    if(stat)break;
    delay_ms(1000);
  } 
  printf("騰訊物聯網平臺連接中....\n");
  while(1)
  {
    if(getSn_SR(MQTT_SOCK)==SOCK_ESTABLISHED)
    {
       if(getSn_IR(MQTT_SOCK)&Sn_IR_CON)
       {
         setSn_IR(MQTT_SOCK,Sn_IR_CON);
       }
       MQTT_Init();
       if(MQTT_Connect(ClientID,Username,Password)==0)
       {
          printf("騰訊云平臺連接成功\r\n");
         break;
       }
    }
  }
  stat=MQTT_SubscribeTopic(SET_TOPIC,0,1);
  if(stat)printf("訂閱失敗\r\n"); 
  while(1)
  {
    /*接收數據*/
    rlen=getSn_RX_RSR(MQTT_SOCK);
    if(rlen>0)
    {
      rlen=recv(MQTT_SOCK,rx_buff,rlen);
      printf("len=%d\r\n",rlen);
      for(i=0;i=5000)
    {
      time=0;
      MQTT_SentHeart();//發送心跳包
    }
    if(cnt>=2000)
    {
      temp+=1.5;
      if(temp>=85)temp=-15;
      cnt=0;
      sprintf(mqtt_message,"{"method":"report","clientToken":"123","params":{"LED1":1,"temp":%.2f,"L":356}}",temp);//溫度
      MQTT_PublishData(POST_TOPIC,mqtt_message,0);
    }    
  }
}

;i++)>

3.運行效果

在這里插入圖片描述pYYBAGKV5dqARxLmAAFgecWP9iw664.pngpoYBAGKV5euAbEYzAAHmv-GPGTk926.png

審核編輯:符乾江
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 物聯網
    +關注

    關注

    2911

    文章

    44803

    瀏覽量

    375013
  • 騰訊云
    +關注

    關注

    0

    文章

    214

    瀏覽量

    16820
收藏 人收藏

    評論

    相關推薦

    以太網TCP/IP的關系解析

    在現代計算機網絡中,以太網TCP/IP協議棧是構建網絡通信的基礎。以太網定義了局域(LAN)中的數據鏈路層和物理層的技術標準,而
    的頭像 發表于 11-08 09:21 ?860次閱讀

    為何嵌入式控制器首選ARMxy?深度解析

    嵌入式ARM控制器是一種基于ARM架構的嵌入式系統控制器,廣泛應用于各種嵌入式系統中,包括工業物聯網關、邊緣計算網關、智慧城市、智能設備、工
    的頭像 發表于 09-21 10:09 ?339次閱讀
    為何<b class='flag-5'>嵌入式</b><b class='flag-5'>控制器</b>首選ARMxy?深度解析

    使用C2000 EtherCAT從站控制器的SMI進行以太網PHY配置

    電子發燒友網站提供《使用C2000 EtherCAT從站控制器的SMI進行以太網PHY配置.pdf》資料免費下載
    發表于 09-07 10:37 ?0次下載
    使用C2000 EtherCAT從站<b class='flag-5'>控制器</b>的SMI進行<b class='flag-5'>以太網</b>PHY配置

    利用TSN以太網特性改善工業以太網控制器的時序

    電子發燒友網站提供《利用TSN以太網特性改善工業以太網控制器的時序.pdf》資料免費下載
    發表于 08-30 10:53 ?0次下載
    利用TSN<b class='flag-5'>以太網</b>特性改善工業<b class='flag-5'>以太網</b><b class='flag-5'>控制器</b>的時序

    DM9000單芯片快速以太網MAC控制器英文手冊

    電子發燒友網站提供《DM9000單芯片快速以太網MAC控制器英文手冊.pdf》資料免費下載
    發表于 07-16 17:30 ?0次下載

    以太網要怎么連接

    以太網連接是現代計算機網絡通信中最為基礎和重要的環節之一。它利用以太網電纜和網卡等硬件設備,將計算機或其他設備連接到網絡交換機或路由上,從
    的頭像 發表于 07-09 10:28 ?1185次閱讀

    解讀工業以太網標準:Profinet與EtherNet/IP

    隨著工業自動化技術的飛速發展,工業以太網標準作為連接各種自動化設備、控制系統和信息系統的重要橋梁,其重要性日益凸顯。在眾多工業以太網標準中,Profinet和EtherNet/
    的頭像 發表于 06-28 16:34 ?2124次閱讀

    以太網無法連接外網IP,提示No route to host,為什么?

    調試以太網,創建socket后無法連接外網IP,提示錯誤No route to host。(用的示例protocolssocketstcp_client,以太網芯片選用的w5500)
    發表于 06-21 06:43

    RS485轉LoRa-以太網TCP轉LoRa

    可以實現以太網轉LoRa、Rj45轉LoRa、LoRa轉以太網、RS485轉以太網、TCP_IP轉LoRa、LoRa轉網口、RS485串口轉LoRa、LoRa中繼
    的頭像 發表于 06-19 10:39 ?608次閱讀
    RS485轉LoRa-<b class='flag-5'>以太網</b><b class='flag-5'>TCP</b>轉LoRa

    如何使用Vitis自帶的LWIP模板進行PS端千兆以太網TCP通信?

    開發板有兩路千兆以太網,通過RGMII接口連接,本實驗演示如何使用Vitis自帶的LWIP模板進行PS端千兆以太網TCP通信。
    的頭像 發表于 04-28 10:44 ?3616次閱讀
    如何使用Vitis自帶的LWIP模板進行PS端千兆<b class='flag-5'>以太網</b><b class='flag-5'>TCP</b>通信?

    PLC以太網開放通信概述

    以太網開放通信概述:   1、以太網開放通信,即就是通信協議是由用戶自由定義的;   2、以太網開放
    發表于 04-16 12:06 ?1131次閱讀
    PLC<b class='flag-5'>以太網</b>開放<b class='flag-5'>式</b>通信概述

    MX60千兆以太網非接觸連接解決方案簡析

    MX60千兆以太網非接觸連接解決方案是無線收發,可提供高速固態無線連接,以取代傳統的機械連接器
    的頭像 發表于 04-11 16:32 ?791次閱讀
    MX60千兆<b class='flag-5'>以太網</b>非接觸<b class='flag-5'>式</b><b class='flag-5'>連接</b>解決方案簡析

    Ethernet/IP 協議分布I/O系統

    Ethernet/IP BL203_Ethernet/IP專為工業實時以太網而設計,采用嵌入式Linux系統,配備實時以太網接口芯片和雙端口
    的頭像 發表于 04-03 14:17 ?673次閱讀
    Ethernet/<b class='flag-5'>IP</b> 協議分布<b class='flag-5'>式</b>I/O系統

    工業以太網的基本原理及優勢

    主要的工業以太網標準有以太網/IP、PROFINET、EtherCAT、Modbus/TCP等,這些標準實現了互操作性,應用于不同的工業控制
    的頭像 發表于 03-06 16:31 ?1296次閱讀
    工業<b class='flag-5'>以太網</b>的基本原理及優勢

    和共享以太網相比,交換以太網有什么不同的特點?

    和共享以太網相比,交換以太網有什么不同的特點? 交換以太網是一種通過交換機
    的頭像 發表于 02-21 11:25 ?4215次閱讀
    主站蜘蛛池模板: 黄色在线观看网址| 中国一级黄色毛片| www.日日爱| 久久六月丁香婷婷婷| 天堂中文在线www| 亚洲网站免费看| 亚洲综合校园春色| 视频在线视频免费观看| 看视频免费| 亚洲欧美日韩特级毛片| 久99热| 亚洲三级黄色| 深爱五月激情五月| 国产一级做a爰片久久毛片| 久操视频在线观看| 日本成片视频| 亚州国产精品精华液| 久久99久久精品国产只有| 国产a三级三级三级| 性夜影院午夜看片| 日韩乱轮| 国产特黄一级片| 午夜视频在线观看www中文| free 欧美| 天天网综合| 午夜精品久久久久| 91精品久久国产青草| 天天曰天天干| 国产精品美女久久久久网站| 国产最新网站| 日本19xxxxxxxxx69| 热re99久久精品国产99热| 亚洲精品aaa揭晓| 高清一区二区在线观看| 四虎最新网址在线观看| 亚洲色图 在线视频| 日韩黄色免费| 国产三级中文字幕| 天堂自拍| 美女被日出白浆| sesese在线播放|