0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

W5500以太網(wǎng)控制器的驅(qū)動(dòng)設(shè)計(jì)與實(shí)現(xiàn)

CHANBAEK ? 來源:木南創(chuàng)智 ? 作者:尹家軍 ? 2022-12-08 12:26 ? 次閱讀

以太網(wǎng)通訊是一種被廣泛使用的數(shù)據(jù)通訊方式。在嵌入式應(yīng)用中也經(jīng)常使用,但協(xié)議棧的實(shí)現(xiàn)并不是一件容易的事。不過有些以太網(wǎng)控制器就帶有協(xié)議棧,如W5500。在本篇中我們將討論如何設(shè)計(jì)并實(shí)現(xiàn)W5500以太網(wǎng)控制器的驅(qū)動(dòng)。

1、功能概述

W5500是WIZnet開發(fā)的單芯片硬件TCP/IP協(xié)議棧,能夠方便的實(shí)現(xiàn)網(wǎng)絡(luò)連接應(yīng)用。

1.1、硬件描述

W5500作為一款全硬件TCP/IP嵌入式以太網(wǎng)控制器,為嵌入式系統(tǒng)提供了更加簡易的互聯(lián)網(wǎng)連接方案。W5500 集成了 TCP/IP 協(xié)議棧,10/100M 以太網(wǎng)數(shù)據(jù)鏈路層(MAC)及物理層(PHY),使得用戶使用單芯片就能夠在他們的應(yīng)用中拓展網(wǎng)絡(luò)連接。 其引腳排布及分裝如下:

W5500全硬件 TCP/IP 協(xié)議棧支持 TCP,UDP,IPv4,ICMP,ARP,IGMP 以及 PPPoE 協(xié)議。W5500 內(nèi)嵌 32K 字節(jié)片上緩存以供以太網(wǎng)包處理。使用W5500,只需要一些簡單的Socket 編程就能實(shí)現(xiàn)以太網(wǎng)應(yīng)用。用戶可以同時(shí)使用8個(gè)硬件Socket 獨(dú)立通訊。

W5500提供了SPI(外設(shè)串行接口)從而能夠更加容易與外設(shè)MCU整合。而且,W5500的使用了新的高效SPI協(xié)議支持80MHz速率,從而能夠更好的實(shí)現(xiàn)高速網(wǎng)絡(luò)通訊。為了減少系統(tǒng)能耗,W5500提供了網(wǎng)絡(luò)喚醒模式(WOL)及掉電模式供客戶選擇使用。

1.2、通訊接口

W5500提供了SPI(串行外部接口)作為外設(shè)主機(jī)接口,有SCSn,SCLK,MOSI, MISO共4路信號,且作為SPI從機(jī)工作。W5500與MCU的連接方式如下圖所示。根據(jù)SCSn是否受主機(jī)控制,將其工作模式分為可變數(shù)據(jù)長度模式和固定數(shù)據(jù)長度模式。在可變數(shù)據(jù)長度模式中,W5500可以與其他SPI設(shè)備共用SPI接口。在固定數(shù)據(jù)長度模式,SPI將指定給W5500,不能與其他SPI設(shè)備共享。

SPI協(xié)議定義了四種工作模式(模式 0,1,2,3)。每種模式的區(qū)別是根據(jù)SCLK的極性及相位不同定義的。SPI 的模式 0 和模式 3 唯一不同的就是在非活動(dòng)狀態(tài)下,SCLK 信號的極性。SPI的模式0和3,數(shù)據(jù)都是在SCLK的上升沿鎖存,在下降沿輸出。W5500支持SPI模式0及模式3。MOSI和MISO信號無論是接收或發(fā)送,均遵從從最高標(biāo)志位(MSB)到最低標(biāo)志位(LSB)的傳輸序列。

1.3、內(nèi)部寄存器

W5500的SPI數(shù)據(jù)幀包括了16位地址段的偏移地址,8位控制段和N字節(jié)數(shù)據(jù)段。如圖下圖所示:

地址段為W5500的寄存器或TX/RX緩存區(qū)指定了16位的偏移地址。 這16 位偏移地址的值來自從最高標(biāo)志位到最低標(biāo)志位的順序傳輸。

控制段指定了地址段設(shè)定的偏移區(qū)域歸屬,讀/寫訪問模式及SPI工作模式。8位控制段可以通過修改區(qū)域選擇位(BSB[4:0]),讀/寫訪問模式位(RWB)以及SPI工作模式位(OM[1:0])來重新定義。區(qū)域選擇位選擇了歸屬于偏移地址的區(qū)域。

SPI數(shù)據(jù)幀的數(shù)據(jù)段通過偏移地址自增(每傳輸1字節(jié)偏移地址加1),支持連續(xù)數(shù)據(jù)讀/寫。

W5500有1個(gè)通用寄存器,8個(gè)Socket寄存器區(qū),以及對應(yīng)每個(gè)Socket的收發(fā)緩存區(qū)。每個(gè)區(qū)域均通過SPI數(shù)據(jù)幀的區(qū)域選擇位(BSB[4:0])來選取。每一個(gè)Socket的發(fā)送緩存區(qū)都在一個(gè)16KB的物理發(fā)送內(nèi)存中,初始化分配為2KB。每一個(gè)Socket的接收緩存區(qū)都在一個(gè)16KB 的物理接收內(nèi)存中,初始化分配為 2KB。無論給每個(gè)Socket 分配多大的收/發(fā)緩存,都必須在 16 位的偏移地址范圍內(nèi)(從 0x0000 到 0xFFFF)。

通用寄存器區(qū)配置了W5500的IP地址、MAC地址等基本信息。該區(qū)域可以通過SPI數(shù)據(jù)幀的區(qū)域選擇位(BSB[4:0])選定。

W5500支持8個(gè)Socket作為通訊信道。每一個(gè)Socket通過Socket n寄存器區(qū)控制(0≤n≤7)。Socket n寄存器可以通過SPI數(shù)據(jù)幀中的區(qū)域選擇寄存器(BSB[4:0])來選定對應(yīng)的寄存器n。

2、驅(qū)動(dòng)設(shè)計(jì)與實(shí)現(xiàn)

我們已經(jīng)對W5500以太網(wǎng)控制器的引腳封裝、接口方式、協(xié)議棧的操作流程以及基本操作庫有了比較詳細(xì)的了解。接下來我們將設(shè)計(jì)并實(shí)現(xiàn)W5500以太網(wǎng)控制器的驅(qū)動(dòng)程序。

2.1、對象定義

在使用一個(gè)對象之前我們需要獲得一個(gè)對象。同樣的我們想要W5500以太網(wǎng)控制器就需要先定義W5500以太網(wǎng)控制器的對象。

2.1.1、對象的抽象

我們要得到W5500以太網(wǎng)控制器對象,需要先分析其基本特性。一般來說,一個(gè)對象至少包含兩方面的特性:屬性與操作。接下來我們就來從這兩個(gè)方面思考一下W5500以太網(wǎng)控制器的對象。

先來考慮屬性,作為屬性肯定是用于標(biāo)識或記錄對象特征的東西。我們來考慮W5500以太網(wǎng)控制器對象屬性。作為以太網(wǎng)控制器,W5500對象顯然需要有網(wǎng)絡(luò)配置參數(shù)作為它的屬性,包括IP地址和MAC地址等。所以我們將網(wǎng)絡(luò)參數(shù)定義為對象的屬性。在這里我們以結(jié)構(gòu)體的方式來定義網(wǎng)絡(luò)參數(shù)。

接著我們還需要考慮W5500以太網(wǎng)控制器對象的操作問題。其實(shí)我們對W5500的操作就是對SPI接口的操作,這里我們因?yàn)槭褂昧藦S家的基礎(chǔ)庫,所以以函數(shù)注冊回調(diào)函數(shù)的方式傳遞了操作函數(shù)。我們不需要再將對SPI端口作為對象的操作,而是將他們以函數(shù)指針的方式在初始化函數(shù)中傳入。那么我們對對象的操作就是讀取和寫入信息的操作,而具體的數(shù)據(jù)處理總是依賴于具體應(yīng)用,所以我們將其作為對象的操作。

根據(jù)上述我們對W5500以太網(wǎng)控制器的分析,我們可以定義W5500以太網(wǎng)控制器的對象類型如下:

1 /* 定義W5500對象類型 */
2 typedef struct W5500Object {
3   wiz_NetInfo gWIZNETINFO;
4   uint16_t (*DataParsing)(uint8_t *rxBuffer,uint16_t rxSize,uint8_t *txBuffer);//接收消息解析及返回消息生成,返回值為返回消息的字節(jié)長度
5   uint16_t (*RequestData)(uint8_t *rqBuffer);   //得到請求命令,一般用于客戶端發(fā)起訪問
6 }W5500ObjectType;

2.1.2、對象初始化

我們知道,一個(gè)對象僅作聲明是不能使用的,我們需要先對其進(jìn)行初始化,所以這里我們來考慮W5500以太網(wǎng)控制器對象的初始化函數(shù)。一般來說,初始化函數(shù)需要處理幾個(gè)方面的問題。一是檢查輸入?yún)?shù)是否合理;二是為對象的屬性賦初值;三是對對象作必要的初始化配置。據(jù)此我們設(shè)計(jì)W5500以太網(wǎng)控制器對象的初始化函數(shù)如下:

1 /*W5500對象初始化*/
 2 void W5500Initialization(W5500ObjectType *w5500,
 3                     uint8_t mac[6],        //本地Mac地址
 4                     uint8_t ip[4],         //本地IP地址
 5                     uint8_t sn[4],         //子網(wǎng)掩碼
 6                     uint8_t gw[4],         //網(wǎng)關(guān)地址
 7                     uint8_t dns[4],        //DNS服務(wù)器地址
 8                     dhcp_mode dhcp,        //DHCP類型
 9                     W5500CSCrisType cris_en,
10                     W5500CSCrisType cris_ex,
11                     W5500CSCrisType cs_sel,
12                     W5500CSCrisType cs_desel,
13                     W5500SPIReadByteTYpe spi_rb,
14                     W5500SPIWriteByteTYpe spi_wb,
15                     W5500DataParsingType dataParse,
16                     W5500RequestDataType requst
17                    )
18 {
19   if((w5500==NULL)||(cris_en==NULL)||(cris_ex==NULL)||(cs_sel==NULL)||(cs_desel==NULL)||(spi_rb==NULL)||(spi_wb==NULL))
20   {
21     return;
22   }
23  
24   for(int i=0;i<6;i++)
25   {
26     w5500->gWIZNETINFO.mac[i]=mac[i];
27   }
28  
29   for(int i=0;i<4;i++)
30   {
31     w5500->gWIZNETINFO.ip[i]=ip[i];
32     w5500->gWIZNETINFO.sn[i]=sn[i];
33     w5500->gWIZNETINFO.gw[i]=gw[i];
34     w5500->gWIZNETINFO.dns[i]=dns[i];
35   }
36       
37   w5500->gWIZNETINFO.dhcp=dhcp;
38  
39   /*注冊TCP通訊相關(guān)的回調(diào)函數(shù)*/
40   RegisterFunction(cris_en,cris_ex,cs_sel,cs_desel,spi_rb,spi_wb);
41  
42   /*初始化芯片參數(shù)*/
43   ChipParametersConfiguration();
44  
45   /*初始化網(wǎng)絡(luò)通訊參數(shù)*/
46   NetworkParameterConfiguration(w5500->gWIZNETINFO);
47  
48   if(dataParse!=NULL)
49   {
50     w5500->DataParsing=dataParse;
51   }
52   else
53   {
54     w5500->DataParsing=LoopBackDataHandle;
55   }
56  
57   if(requst!=NULL)
58   {
59     w5500->RequestData=requst;
60   }
61   else
62   {
63     w5500->RequestData=DefaultRequest;
64   }
65 }

2.2、對象操作

我們已經(jīng)完成了W5500以太網(wǎng)控制器對象類型的定義和對象初始化函數(shù)的設(shè)計(jì)。但我們的主要目標(biāo)是獲取對象的信息,接下來我們還要實(shí)現(xiàn)面向W5500以太網(wǎng)控制器的各類操作。

W5500以太網(wǎng)控制器有哪些操作呢?作為通訊接口,最主要的就是數(shù)據(jù)的發(fā)送于接收。這些函數(shù)我們當(dāng)然可以實(shí)現(xiàn)它,不過在廠商提供的基礎(chǔ)庫中已經(jīng)提供了這些函數(shù),我們直接實(shí)用就好了,這里就不再列出了。

3、驅(qū)動(dòng)的使用

我們已經(jīng)設(shè)計(jì)了W5500以太網(wǎng)控制器的驅(qū)動(dòng),接下來我們設(shè)計(jì)一個(gè)簡單的應(yīng)用驗(yàn)證這一驅(qū)動(dòng)。

3.1、聲明并初始化對象

使用基于對象的操作我們需要先得到這個(gè)對象,所以我們先要使用前面定義的W5500以太網(wǎng)控制器對象類型聲明一個(gè)W5500以太網(wǎng)控制器對象變量,具體操作格式如下:

W5500ObjectType w5500;

聲明了這個(gè)對象變量并不能立即使用,我們還需要使用驅(qū)動(dòng)中定義的初始化函數(shù)對這個(gè)變量進(jìn)行初始化。這個(gè)初始化函數(shù)所需要的輸入?yún)?shù)如下:

W5500ObjectType *w5500,

uint8_t mac[6], //本地Mac地址

uint8_t ip[4], //本地IP地址

uint8_t sn[4], //子網(wǎng)掩碼

uint8_t gw[4], //網(wǎng)關(guān)地址

uint8_t dns[4], //DNS服務(wù)器地址

dhcp_mode dhcp, //DHCP類型

W5500CSCrisType cris_en,

W5500CSCrisType cris_ex,

W5500CSCrisType cs_sel,

W5500CSCrisType cs_desel,

W5500SPIReadByteTYpe spi_rb,

W5500SPIWriteByteTYpe spi_wb,

W5500DataParsingType dataParse,

W5500RequestDataType requst

對于這些參數(shù),對象變量我們已經(jīng)定義了。而IP地址這些參數(shù)我們只需要睡著時(shí)輸入就可以了。主要的是我們需要定義幾個(gè)函數(shù),并將函數(shù)指針作為參數(shù)。這幾個(gè)函數(shù)的類型如下:

1 /*解析接收到的數(shù)據(jù)*/
 2 typedef uint16_t (*W5500DataParsingType)(uint8_t *rxBuffer,uint16_t rxSize,uint8_t *txBuffer);
 3 
 4 /*得到請求命令,一般用于客戶端發(fā)起訪問*/
 5 typedef uint16_t (*W5500RequestDataType)(uint8_t *rqBuffer);  
 6 
 7 /*定義片選及臨界區(qū)操作函數(shù)類型*/
 8 typedef void (*W5500CSCrisType)(void);
 9 
10 /*定義SPI讀一個(gè)字節(jié)函數(shù)類型*/
11 typedef uint8_t (*W5500SPIReadByteTYpe)(void);
12 
13 /*定義SPI寫一個(gè)字節(jié)函數(shù)類型*/
14 typedef void (*W5500SPIWriteByteTYpe)(uint8_t wb);

對于這幾個(gè)函數(shù)我們根據(jù)樣式定義就可以了,具體的操作可能與使用的硬件平臺有關(guān)系。片選操作函數(shù)用于多設(shè)備需要軟件操作時(shí),如采用硬件片選可以傳入NULL即可。具體函數(shù)定義如下:

1 /*寫1字節(jié)數(shù)據(jù)到SPI總線*/
 2 static void SPI_WriteByte(uint8_t TxData)
 3 {
 4   HAL_SPI_Transmit(&w5500hspi,&TxData,1,1000);
 5 }
 6  
 7 /*從SPI總線讀取1字節(jié)數(shù)據(jù)*/
 8 static uint8_t SPI_ReadByte(void)
 9 {
10   uint8_t rxData;
11   HAL_SPI_Receive(&w5500hspi,&rxData,1,1000);
12   return rxData;//返回接收的數(shù)據(jù)
13 }
14  
15 /*進(jìn)入臨界區(qū)*/
16 static void SPI_CrisEnter(void)
17 {
18   __set_PRIMASK(1);
19 }
20  
21 /*退出臨界區(qū)*/
22 static void SPI_CrisExit(void)
23 {
24   __set_PRIMASK(0);
25 }
26  
27 /*片選信號輸出低電平*/
28 static void SPI_CS_Select(void)
29 {
30   HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, GPIO_PIN_RESET);
31 }
32  
33 /*片選信號輸出高電平*/
34 static void SPI_CS_Deselect(void)
35 {
36   HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, GPIO_PIN_SET);
37 }
38 
39 /*數(shù)據(jù)回環(huán)處理*/
40 static uint16_t LoopBackDataHandle(uint8_t *rxBuffer,uint16_t rxSize,uint8_t *txBuffer)
41 {
42   uint16_t txSize = 0;
43  
44   txSize=(uint16_t)rxSize;
45  
46   for(int i=0;i47   {
48     txBuffer[i]=rxBuffer[i];
49   }
50  
51   return txSize;
52 }
53  
54 /*默認(rèn)測試請求*/
55 static uint16_t DefaultRequest(uint8_t *rqBuffer)
56 {
57   uint16_t rSize=0;
58  
59   char requstString[]="This is a new client connection.\\r\\n";
60  
61   rSize=strlen(requstString);
62  
63   for(int i=0;i64   {
65     rqBuffer[i]=requstString[i];
66   }
67  
68   return rSize;
69 }

對于延時(shí)函數(shù)我們可以采用各種方法實(shí)現(xiàn)。我們采用的STM32平臺和HAL庫則可以直接使用HAL_Delay()函數(shù)。于是我們可以調(diào)用初始化函數(shù)如下:

1 /* W5500初始化配置 */
 2 void W5500Configuration(void)
 3 {
 4   uint8_t mac[6]= {0x01, 0x08, 0xdc,0x00, 0xab, 0xcd};        //本地Mac地址
 5   uint8_t ip[4]= {192, 168, 1, 190};         //本地IP地址
 6   uint8_t sn[4]= {255,255,255,0};         //子網(wǎng)掩碼
 7   uint8_t gw[4]= {192, 168, 1, 1};         //網(wǎng)關(guān)地址
 8   uint8_t dns[4]= {0,0,0,0};        //DNS服務(wù)器地址
 9  
10   W5500_SPI_Configuration();
11   W5500Initialization(&w5500,mac,ip,sn,gw,dns,NETINFO_STATIC,SPI_CrisEnter,SPI_CrisExit,SPI_CS_Select,SPI_CS_Deselect,SPI_ReadByte,SPI_WriteByte,NULL,NULL);
12 }

3.2、基于對象進(jìn)行操作

我們定義了對象變量并使用初始化函數(shù)給其作了初始化。接著我們就來考慮操作這一對象獲取我們想要的數(shù)據(jù)。我們在驅(qū)動(dòng)中已經(jīng)將獲取數(shù)據(jù)并轉(zhuǎn)換為轉(zhuǎn)換值的比例值,接下來我們使用這一驅(qū)動(dòng)開發(fā)我們的應(yīng)用實(shí)例。我們實(shí)現(xiàn)以個(gè)TCP回環(huán)服務(wù)器。具體調(diào)用如下:

W5500TCPServer(&w5500,Socket0,502);
TCP服務(wù)器設(shè)計(jì)如下:
/*TCP服務(wù)器數(shù)據(jù)通訊*/
int32_tW5500TCPServer(W5500ObjectType *w5500,W5500SocketType sn,uint16_t lPort)
{
  int32_t ret;
 
  switch(getSn_SR(sn))
  {
  case SOCK_ESTABLISHED:
    {
      if(getSn_IR(sn) & Sn_IR_CON)
      {
        setSn_IR(sn,Sn_IR_CON);
      }
      uint16_t size=0;
      if((size = getSn_RX_RSR(sn)) > 0)
      {
        if(size > DATA_BUFFER_SIZE)
        {
          size = DATA_BUFFER_SIZE;
        }
       
        uint8_t rxBuffer[DATA_BUFFER_SIZE];
        ret = recv(sn,rxBuffer,size);
        if(ret <= 0)
        {
          return ret;
        }
         
        //添加數(shù)據(jù)解析及響應(yīng)的函數(shù)
        uint8_t txBuffer[DATA_BUFFER_SIZE];
        uint16_tlength=w5500->DataParsing(rxBuffer,ret,txBuffer);
         
        uint16_t sentsize=0;
        while(length != sentsize)
        {
          ret = send(sn,txBuffer+sentsize,length-sentsize);
          if(ret < 0)
          {
            close(sn);
            return ret;
          }
          sentsize += ret; // 不用管SOCKERR_BUSY, 因?yàn)樗橇?
        }
      }
      break;
    }
  case SOCK_CLOSE_WAIT:
    {
      if((ret=disconnect(sn)) != SOCK_OK)
      {
        return ret;
      }
      break;
    }
  case SOCK_INIT:
    {
      if( (ret = listen(sn)) != SOCK_OK)
      {
        return ret;
      }
      break;
    }
  case SOCK_CLOSED:
    {
      if((ret=socket(sn,Sn_MR_TCP,lPort,0x00))!= sn)
      {
        return ret;
      }
      break;
    }
  default:
    {
      break;
    }
  }
  return 1;
}

4、應(yīng)用總結(jié)

這一篇中我們設(shè)計(jì)并實(shí)現(xiàn)了W5500以太網(wǎng)控制器的驅(qū)動(dòng)程序,而且也設(shè)計(jì)了一個(gè)簡單的應(yīng)用來驗(yàn)證它。我們也在多個(gè)實(shí)際項(xiàng)目中使用W5500及驅(qū)動(dòng)程序,并在此基礎(chǔ)上實(shí)現(xiàn)過如Modbus TCP等數(shù)據(jù)傳輸協(xié)議,在實(shí)際使用中效果良好。

需要說明的是我們并沒有從最底層開始實(shí)現(xiàn)驅(qū)動(dòng)程序。當(dāng)然,我們完全可以同過操作寄存器實(shí)現(xiàn)最基礎(chǔ)的驅(qū)動(dòng)開發(fā),但在本篇中沒有這么做是因?yàn)橐延械尿?qū)動(dòng)底層已經(jīng)很完備了,不需要重復(fù)勞動(dòng)。另一方面,我們希望再次基礎(chǔ)上做更高層次的封裝,以便與使用驅(qū)動(dòng)的人能夠?qū)W⒂诰唧w的應(yīng)用邏輯,所以我們封裝了如TCP服務(wù)器及TCP客戶端等,使用者則可以專注于應(yīng)用協(xié)議本身。

本篇中只是驗(yàn)證了TCP服務(wù)器,但在使用驅(qū)動(dòng)時(shí),如果向?qū)崿F(xiàn)如HTTP服務(wù)器只需要修改對象的DataParsing操作就可以了。

源碼下載:https://github.com/foxclever/ExPeriphDriver

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16028

    瀏覽量

    176636
  • 以太網(wǎng)
    +關(guān)注

    關(guān)注

    40

    文章

    5317

    瀏覽量

    170466
  • 驅(qū)動(dòng)設(shè)計(jì)

    關(guān)注

    1

    文章

    109

    瀏覽量

    15248
  • W5500
    +關(guān)注

    關(guān)注

    5

    文章

    45

    瀏覽量

    17476
收藏 人收藏

    評論

    相關(guān)推薦

    以太網(wǎng)控制器W5500晶振用25M有源晶振,為什么?

    以太網(wǎng)控制器W5500晶振用25M有源晶振,為什么?
    發(fā)表于 06-12 09:05

    基于FPGA和W5500以太網(wǎng)傳輸系統(tǒng)實(shí)現(xiàn)

    協(xié)議處理應(yīng)用越來越普遍。W5500是一款多功能的全硬件以太網(wǎng)接口芯片,內(nèi)部集成有10/100M以太網(wǎng)控制器,嵌入了TCP卸載引擎(TCP Offload Engine:TOE),且集成
    發(fā)表于 08-07 10:10

    以太網(wǎng)W5500模塊資料分享!

    W5500W5500是一款全硬件TCP/IP嵌入式以太網(wǎng)控制器,為嵌入式系統(tǒng)提供了更加簡易的互聯(lián)網(wǎng)連接方案。W5500集成了TCP/IP協(xié)議棧,10/100M
    發(fā)表于 11-01 00:04

    基于W5500以太網(wǎng)控制器的評估套件

    ETHWIZCLICK,基于W5500以太網(wǎng)控制器的評估套件。 ETH Wiz click帶有W5500,一個(gè)48針,10/100 BASE-TX獨(dú)立
    發(fā)表于 08-17 09:39

    硬件SPI外設(shè)與以W5500通信驅(qū)動(dòng)以太網(wǎng)模塊

    本篇詳細(xì)的記錄了如何使用STM32CubeMX配置STM32L431RCT6的硬件SPI外設(shè)與以W5500通信,驅(qū)動(dòng)以太網(wǎng)模塊。1. 準(zhǔn)備工作硬件準(zhǔn)備開發(fā)板首先需要準(zhǔn)備一個(gè)開發(fā)板,這里我準(zhǔn)備
    發(fā)表于 08-12 07:52

    基于stm32的w5500以太網(wǎng)有哪些應(yīng)用呢

    以太網(wǎng)模型是由哪些應(yīng)用層組成的?基于stm32的w5500以太網(wǎng)有哪些應(yīng)用呢?
    發(fā)表于 10-27 06:30

    以太網(wǎng)芯片W5500的移植過程

    W5500在單片機(jī)上的移植代碼的移植代碼的修改講解為W550做客戶端的例子,首先W5500作為一個(gè)以太網(wǎng)的芯片與單片機(jī)是通過SPI接口進(jìn)行通信的。代碼的移植首先我們要去
    發(fā)表于 01-19 06:39

    如何使用便宜的W5500以太網(wǎng)板作為MQTT網(wǎng)關(guān)?

    的 ESP-Now 演示,ESP8266 驅(qū)動(dòng) W5500通過 SPI 板(加上一個(gè)額外的引腳來控制 W5500 復(fù)位)。多個(gè)(電池供電)傳感
    發(fā)表于 05-22 07:32

    W5500 TCP IP嵌入式以太網(wǎng)控制器的數(shù)據(jù)手冊免費(fèi)下載

    W5500芯片是一個(gè)硬連接的TCP/IP嵌入式以太網(wǎng)控制器,它提供了與嵌入式系統(tǒng)更容易的互聯(lián)網(wǎng)連接。W5500使用戶只需使用嵌入TCP/IP堆棧、10/100
    發(fā)表于 07-08 08:00 ?1次下載
    <b class='flag-5'>W5500</b> TCP IP嵌入式<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>控制器</b>的數(shù)據(jù)手冊免費(fèi)下載

    高性能以太網(wǎng)芯片W5500的數(shù)據(jù)手冊免費(fèi)下載

     W5500 是一款全硬件 TCP/IP 嵌入式以太網(wǎng)控制器,為嵌入式系統(tǒng)提供了更加簡易的互聯(lián)網(wǎng)連接方案。W5500 集成了 TCP/IP 協(xié)議棧,10/100M
    發(fā)表于 08-14 16:56 ?16次下載
    高性能<b class='flag-5'>以太網(wǎng)</b>芯片<b class='flag-5'>W5500</b>的數(shù)據(jù)手冊免費(fèi)下載

    W5500以太網(wǎng)控制器的數(shù)據(jù)手冊和使用STM32F40實(shí)現(xiàn)W5500檢測ping通

    W5500 是一款全硬件 TCP/IP 嵌入式以太網(wǎng)控制器,為嵌入式系統(tǒng)提供了更加簡易互聯(lián)網(wǎng)連接的方案。W5500 集成了 TCP/IP 協(xié)議棧,10/100M
    發(fā)表于 09-09 08:00 ?47次下載
    <b class='flag-5'>W5500</b><b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>控制器</b>的數(shù)據(jù)手冊和使用STM32F40<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>W5500</b>檢測ping通

    W5500以太網(wǎng)控制器的數(shù)據(jù)手冊免費(fèi)下載

    W5500 是一款全硬件 TCP/IP 嵌入式以太網(wǎng)控制器,為嵌入式系統(tǒng)提供了更加簡易的互聯(lián)網(wǎng)連接方案。W5500 集成了 TCP/IP 協(xié)議棧,10/100M
    發(fā)表于 03-19 08:00 ?17次下載
    <b class='flag-5'>W5500</b><b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>控制器</b>的數(shù)據(jù)手冊免費(fèi)下載

    W5500數(shù)據(jù)手冊免費(fèi)下載

    W5500芯片是硬連線的TCP / IP嵌入式以太網(wǎng)控制器,可提供與嵌入式系統(tǒng)的Internet連接更加輕松。 W5500使用戶能夠擁有只需使用其中的單個(gè)芯片即可在其應(yīng)用程序中
    發(fā)表于 05-18 11:26 ?28次下載

    全硬件TCP/IP嵌入式以太網(wǎng)控制器w5500中文資料

    W5500 是一款全硬件 TCP/IP 嵌入式以太網(wǎng)控制器,為嵌入式系統(tǒng)提供了更加簡易的互聯(lián)網(wǎng)連接方案。W5500 集成了 TCP/IP 協(xié)議棧,10/100M
    發(fā)表于 04-21 15:47 ?23次下載

    如何利用HAL庫去驅(qū)動(dòng)W5500芯片呢

    W5500 芯片是一款集成全硬件 TCP/IP 協(xié)議棧的嵌入式以太網(wǎng)控制器,為單片機(jī)提供了更加簡單、快速、穩(wěn)定、安全的以太網(wǎng)接入方案。
    的頭像 發(fā)表于 09-16 18:04 ?3358次閱讀