課件ppt模板免費下載網(wǎng)站seo關(guān)鍵詞推廣案例
文章目錄
- 1. 前言
- 2. 相關(guān)網(wǎng)絡(luò)信息
- 2.1 簡介
- 2.2 優(yōu)點
- 2.3 應(yīng)用
- 3. WIZnet以太網(wǎng)芯片
- 4. 靜態(tài)IP網(wǎng)絡(luò)設(shè)置示例講解以及使用
- 4.1 程序流程圖
- 4.2 測試準(zhǔn)備
- 4.3 連接方式
- 4.4 相關(guān)代碼
- 4.5 編譯燒錄
- 5. 注意事項
- 6. 相關(guān)鏈接
1. 前言
??從本章開始我們將用WIZnet的W5100S/W5500以太網(wǎng)芯片結(jié)合RP2040樹莓派Pico,通過簡單講解和演示示例來讓大家快速上手且更好應(yīng)用WIZnet的產(chǎn)品,助力快速開發(fā)。
2. 相關(guān)網(wǎng)絡(luò)信息
2.1 簡介
- MAC地址(Media Access Control Address): MAC地址是網(wǎng)絡(luò)設(shè)備在局域網(wǎng)中的唯一標(biāo)識,它是由6組2個16進制數(shù)字組成的48位地址。例如:00:0A:95:9D:68:16。MAC地址通常由硬件制造商分配給每個網(wǎng)絡(luò)接口卡(NIC),用于在局域網(wǎng)內(nèi)進行唯一身份識別。MAC地址用于在數(shù)據(jù)鏈路層上定義通信,并且只能在同一局域網(wǎng)內(nèi)有效。
- IP地址(Internet Protocol Address): IP地址是網(wǎng)絡(luò)設(shè)備在全球互聯(lián)網(wǎng)中的唯一標(biāo)識,它是由四個0到255之間的數(shù)字組成,被分為網(wǎng)絡(luò)部分和主機部分。例如:192.168.1.1。IP地址用于在網(wǎng)絡(luò)層上定義通信,并且可以在互聯(lián)網(wǎng)中的任何位置有效。IP地址分為公網(wǎng)IP和私有IP,公網(wǎng)IP在全球范圍內(nèi)唯一,私有IP則是在內(nèi)部網(wǎng)絡(luò)中使用。
- 子網(wǎng)掩碼(Subnet Mask): 子網(wǎng)掩碼是用來劃分網(wǎng)絡(luò)地址和主機地址的。在IPv4中,子網(wǎng)掩碼通常由連續(xù)的1和0組成,其中連續(xù)的1表示網(wǎng)絡(luò)部分,連續(xù)的0表示主機部分。例如,常見的子網(wǎng)掩碼255.255.255.0表示前三個數(shù)字是網(wǎng)絡(luò)部分(即24位),最后一個數(shù)字是主機部分(即8位)。子網(wǎng)掩碼可以用于判斷兩個IP地址是否在同一網(wǎng)絡(luò)中。
- 網(wǎng)關(guān)(Gateway): 網(wǎng)關(guān)是連接不同網(wǎng)絡(luò)的設(shè)備,它可以將數(shù)據(jù)從一個網(wǎng)絡(luò)傳輸?shù)搅硪粋€網(wǎng)絡(luò)。在一個局域網(wǎng)中,網(wǎng)關(guān)通常是一個路由器或者一個具有路由功能的交換機。對于每個IP地址,都有一個默認(rèn)網(wǎng)關(guān),它是數(shù)據(jù)包離開當(dāng)前網(wǎng)絡(luò)時必須通過的設(shè)備。當(dāng)數(shù)據(jù)包到達目標(biāo)網(wǎng)絡(luò)時,目標(biāo)網(wǎng)絡(luò)的設(shè)備會將數(shù)據(jù)包發(fā)送回原始網(wǎng)絡(luò),通過原始網(wǎng)絡(luò)的網(wǎng)關(guān)返回原始設(shè)備。
- DNS(Domain Name System): DNS是域名系統(tǒng),它用于將易于記憶的域名轉(zhuǎn)換為計算機能夠理解的IP地址。例如,當(dāng)您在瀏覽器中鍵入www.example.com時,DNS將把www.example.com這個域名解析為相應(yīng)的IP地址(可能是192.168.1.1或其他)。DNS通常由DNS服務(wù)器提供,可以在公共DNS服務(wù)器(例如Google的8.8.8.8)上設(shè)置,也可以在私有DNS服務(wù)器(例如在您自己的網(wǎng)絡(luò)中運行的服務(wù)器)上設(shè)置。
2.2 優(yōu)點
- 方便遠程訪問:由于靜態(tài)IP地址固定不變,因此非常方便進行遠程訪問。
- 適合服務(wù)器:靜態(tài)IP地址適合用于服務(wù)器等需要長時間穩(wěn)定運行的場景。
- 易于管理:由于靜態(tài)IP地址固定不變,因此易于管理和維護。
2.3 應(yīng)用
??各大服務(wù)器,遠程辦公,安全監(jiān)控,VoIP電話和一些IP地址固定不需要頻繁變動的場合。
3. WIZnet以太網(wǎng)芯片
WIZnet 主流硬件協(xié)議棧以太網(wǎng)芯片參數(shù)對比
Model | Embedded Core | Host I/F | TX/RX Buffer | HW Socket | Network Performance |
---|---|---|---|---|---|
W5100S | TCP/IPv4, MAC & PHY | 8bit BUS, SPI | 16KB | 4 | Max 25Mbps |
W6100 | TCP/IPv4/IPv6, MAC & PHY | 8bit BUS, Fast SPI | 32KB | 8 | Max 25Mbps |
W5500 | TCP/IPv4, MAC & PHY | Fast SPI | 32KB | 8 | Max 15Mbps |
- W5100S/W6100 支持 8bit數(shù)據(jù)總線接口,網(wǎng)絡(luò)傳輸速度會優(yōu)于W5500。
- W6100 支持IPV6,與W5100S 硬件兼容,若已使用W5100S的用戶需要支持IPv6,可以Pin to Pin兼容。
- W5500 擁有比 W5100S更多的 Socket數(shù)量以及發(fā)送與接收緩存
4. 靜態(tài)IP網(wǎng)絡(luò)設(shè)置示例講解以及使用
4.1 程序流程圖
4.2 測試準(zhǔn)備
軟件:
- Visual Studio Code
- WIZnet UartTool
硬件:
- W5100SIO模塊 + RP2040 樹莓派Pico開發(fā)板 或者 WIZnet W5100S-EVB-Pico開發(fā)板
- Micro USB 接口的數(shù)據(jù)線
- TTL 轉(zhuǎn) USB
- 網(wǎng)線
4.3 連接方式
- 通過數(shù)據(jù)線連接PC的USB口(主要用于燒錄程序,也可以虛擬出串口使用)
- 通過TTL串口轉(zhuǎn)USB,連接UART0 的默認(rèn)引腳:
- RP2040 GPIO0(UART0 TX) <----> USB_TTL_RX
- RP2040 GPIO1(UART0 RX) <----> USB_TTL_TX
- 使用模塊連接RP2040進行連線時
- RP2040 GPIO 16 <----> W5100S MISO
- RP2040 GPIO 17 <----> W5100S CS
- RP2040 GPIO 18 <----> W5100S SCK
- RP2040 GPIO 19 <----> W5100S MOSI
- RP2040 GPIO 20 <----> W5100S RST
- 通過網(wǎng)線直接連接PC網(wǎng)口(或:PC和設(shè)備都通過網(wǎng)線連接交換機或路由器LAN口)
4.4 相關(guān)代碼
??我們直接打開network_install.c文件(路徑:examples/network_install/network_install.c)看下具體實現(xiàn):先是用一個結(jié)構(gòu)體變量初始化我們的網(wǎng)絡(luò)基本信息,分別有MAC地址、IP地址、子網(wǎng)掩碼、網(wǎng)關(guān)、DNS地址;然后又聲明了個結(jié)構(gòu)體變量用于回讀配置信息,并通過串口打印出來,方便通過串口看到我們的配置信息是否配置成功了。
??主函數(shù)即按照我們流程圖進行,首先系統(tǒng)初始化,然后初始化我們的芯片,寫入配置信息,回讀并通過串口打印出來,然后進行phy鏈路的檢測,注意在初始化芯片時已經(jīng)進行PHY檢測,這里在配置信息后有進行了一次,以保證接下來的測試正常;PHY檢測異常超時后會報錯然后進入while循環(huán)阻塞,正常的話會打印PHY的工作模式,10M/100M、半雙工/全雙工,并提示我們進行PING命令的操作,然后進入阻塞;整體比較簡單,如下所示:
/* Network information to be configured. */
wiz_NetInfo net_info = {.mac = {0x00, 0x08, 0xdc, 0x1e, 0xed, 0x2e}, // Configured MAC address.ip = {192, 168, 1, 10}, // Configured IP address.sn = {255, 255, 255, 0}, // Configured subnet mask.gw = {192, 168, 1, 1}, // Configured gateway.dns = {8, 8, 8, 8}, // Configured domain address
};/* This parameter is used to receive the configuration information read back. */
wiz_NetInfo get_info;int main()
{uint8_t link_status;wiz_PhyConf phyconf;uint32_t count = 0;stdio_init_all(); // Initialize the main control peripheralwizchip_initialize(); // Chip initializationprintf("wiznet chip network install example.\r\n");wizchip_setnetinfo(&net_info); // Write configuration informationprint_network_information(&get_info); // Read the configuration information and print itdo{link_status = wizphy_getphylink();if (link_status == PHY_LINK_OFF){count++;if (count > 10){printf("Link failed of Internal PHY.\r\n");break;}}sleep_ms(500);} while (link_status == PHY_LINK_OFF);if (link_status == PHY_LINK_ON){wizphy_getphyconf(&phyconf);printf("Link OK of Internal PHy.\r\n");printf("the %d Mbtis speed of Internal PHYrn.\r\n", phyconf.speed == PHY_SPEED_100 ? 100 : 10);printf("The %s Duplex Mode of the Internal PHy.\r\n", phyconf.duplex == PHY_DUPLEX_HALF ? "Half-Duplex" : "Full-Duplex");printf("\r\nTry ping the ip:%d.%d.%d.%d.\r\n", get_info.ip[0], get_info.ip[1], get_info.ip[2], get_info.ip[3]);}else{printf("\r\nPlease check whether the network cable is loose or disconnected.\r\n");}while (true){}
}
4.5 編譯燒錄
編譯、生成
-
點擊左邊的CMake
-
找到examples下面的對應(yīng)工程network_install
-
點擊右邊的生成即可開始編譯,如下圖所示:
燒錄
-
點擊左邊的資源管理器:編譯完成之后會在build文件夾下的examples文件夾里的對應(yīng)工程文件夾(路徑:build/examples/network_install)下面生成.uf2文件,這是我們燒錄所需要的二進制文件
-
找到對應(yīng)工程文件下的對應(yīng)的network_install.uf2文件
-
鼠標(biāo)右擊選擇在文件資源管理器中顯示,如下所示:
-
接下來燒錄,板子通過USB接口用數(shù)據(jù)線連接電腦后,按下boot鍵后,接著按下復(fù)位上電,進入程序燒錄模式
-
然后可以看到開發(fā)板虛擬出來的u盤,如果沒看到虛擬出來的u盤,重試第一步
-
緊接著將要燒錄的.uf2文件拖入復(fù)制到虛擬出來的u盤,即可完成燒錄,如下圖所示:
現(xiàn)象
-
打開WIZ UartTool,選擇對應(yīng)的COM口,填入?yún)?shù):波特率115200,8位數(shù)據(jù)位,1位停止位,無校驗位,無流控,填完參數(shù)后點擊open打開
-
按下復(fù)位鍵,可以看到回讀打印的配置信息等;我們按下“Windows + R”輸入“cmd”打開cmd終端后
-
根據(jù)串口打印的信息使用PING命令,來PING下配置的IP,可以看到成功PING通的PING回復(fù),如下所示:
5. 注意事項
-
靜態(tài)配置的IP設(shè)置應(yīng)避免IP重復(fù)導(dǎo)致IP沖突。
-
如果采用的是WIZnet的W5500來實現(xiàn)本章的示例,我們只需修改兩個地方即可
- 在library/ioLibrary_Driver/Ethernet/下找到wizchip_conf.h這個頭文件,將WIZCHIP 宏定義修改為W5500;
- 在library下找到CMakeLists.txt文件,將COMPILE_SEL設(shè)置為ON即可,OFF為W5100S,ON為W5500。
6. 相關(guān)鏈接
WIZnet官網(wǎng)
WIZnet官方庫鏈接
本章例程鏈接
想了解更多,評論留言哦!