91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

第十四章 W55MH32 TFTP示例

W55MH32 ? 來源:W55MH32 ? 作者:W55MH32 ? 2025-07-24 10:37 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

單芯片解決方案,開啟全新體驗(yàn)——W55MH32 高性能以太網(wǎng)單片機(jī)

W55MH32是WIZnet重磅推出的高性能以太網(wǎng)單片機(jī),它為用戶帶來前所未有的集成化體驗(yàn)。這顆芯片將強(qiáng)大的組件集于一身,具體來說,一顆W55MH32內(nèi)置高性能Arm? Cortex-M3核心,其主頻最高可達(dá)216MHz;配備1024KB FLASH與96KB SRAM,滿足存儲(chǔ)與數(shù)據(jù)處理需求;集成TOE引擎,包含WIZnet全硬件TCP/IP協(xié)議棧、內(nèi)置MAC以及PHY,擁有獨(dú)立的32KB以太網(wǎng)收發(fā)緩存,可供8個(gè)獨(dú)立硬件socket使用。如此配置,真正實(shí)現(xiàn)了All-in-One解決方案,為開發(fā)者提供極大便利。

在封裝規(guī)格上,W55MH32提供了兩種選擇:QFN100和QFN68。

W55MH32L采用QFN100封裝版本,尺寸為12x12mm,其資源豐富,專為各種復(fù)雜工控場(chǎng)景設(shè)計(jì)。它擁有66個(gè)GPIO、3個(gè)ADC、12通道DMA、17個(gè)定時(shí)器、2個(gè)I2C、5個(gè)串口、2個(gè)SPI接口(其中1個(gè)帶I2S接口復(fù)用)、1個(gè)CAN、1個(gè)USB2.0以及1個(gè)SDIO接口。如此豐富的外設(shè)資源,能夠輕松應(yīng)對(duì)工業(yè)控制中多樣化的連接需求,無論是與各類傳感器、執(zhí)行器的通信,還是對(duì)復(fù)雜工業(yè)協(xié)議的支持,都能游刃有余,成為復(fù)雜工控領(lǐng)域的理想選擇。同系列還有QFN68封裝的W55MH32Q版本,該版本體積更小,僅為8x8mm,成本低,適合集成度高的網(wǎng)關(guān)模組等場(chǎng)景,軟件使用方法一致。更多信息和資料請(qǐng)進(jìn)入http://www.w5500.com/網(wǎng)站或者私信獲取。

此外,本W(wǎng)55MH32支持硬件加密算法單元,WIZnet還推出TOE+SSL應(yīng)用,涵蓋TCP SSL、HTTP SSL以及 MQTT SSL等,為網(wǎng)絡(luò)通信安全再添保障。

為助力開發(fā)者快速上手與深入開發(fā),基于W55MH32L這顆芯片,WIZnet精心打造了配套開發(fā)板。開發(fā)板集成WIZ-Link芯片,借助一根USB C口數(shù)據(jù)線,就能輕松實(shí)現(xiàn)調(diào)試、下載以及串口打印日志等功能。開發(fā)板將所有外設(shè)全部引出,拓展功能也大幅提升,便于開發(fā)者全面評(píng)估芯片性能。

若您想獲取芯片和開發(fā)板的更多詳細(xì)信息,包括產(chǎn)品特性、技術(shù)參數(shù)以及價(jià)格等,歡迎訪問官方網(wǎng)頁:http://www.w5500.com/,我們期待與您共同探索W55MH32的無限可能。

wKgZO2iBiBmAe3DyAACpGc5mWX8613.png

第十四章 W55MH32 TFTP示例

本篇文章,我們將詳細(xì)介紹如何在W55MH32芯片上面實(shí)現(xiàn)TFTP協(xié)議。并通過實(shí)戰(zhàn)例程,為大家講解如何使用TFTP客戶端模式向服務(wù)器獲取文本文件。

該例程用到的其他網(wǎng)絡(luò)協(xié)議,例如DHCP請(qǐng)參考相關(guān)章節(jié)。有關(guān)W55MH32的初始化過程,也請(qǐng)參考Network Install章節(jié),這里將不再贅述。

1 TFTP協(xié)議簡(jiǎn)介

TFTP(TrivialFileTransferProtocol)協(xié)議是一種輕量級(jí)的文件傳輸協(xié)議,它通常用于需要快速、簡(jiǎn)單的文件交換場(chǎng)景,尤其是在網(wǎng)絡(luò)設(shè)備啟動(dòng)和配置過程中。與FTP(文件傳輸協(xié)議)不同,TFTP設(shè)計(jì)得非常簡(jiǎn)單,僅提供基本的文件讀寫功能,并且使用UDP作為傳輸層協(xié)議,因而不具備TCP的復(fù)雜性和重傳機(jī)制。

2 TFTP協(xié)議特點(diǎn)

簡(jiǎn)單性:TFTP協(xié)議設(shè)計(jì)簡(jiǎn)單,它的報(bào)頭格式簡(jiǎn)潔,操作命令種類少,這使得實(shí)現(xiàn)起來相對(duì)容易,對(duì)資源的需求也較低。

輕量級(jí):TFTP協(xié)議不需要復(fù)雜的連接建立和管理過程,開銷小,因此適合在一些對(duì)性能要求不高、資源有限的環(huán)境中使用。

基于UDP:TFTP使用UDP作為傳輸層協(xié)議,利用了UDP的快速傳輸和無連接特性,從而能夠快速地傳輸數(shù)據(jù)。不過,這也意味著TFTP本身不提供可靠的傳輸保證,需要在應(yīng)用層實(shí)現(xiàn)可靠性機(jī)制。

端口固定:TFTP使用固定的端口69來監(jiān)聽客戶端的請(qǐng)求。數(shù)據(jù)傳輸使用的端口是動(dòng)態(tài)分配的,每次傳輸會(huì)在此基礎(chǔ)上選擇一個(gè)臨時(shí)端口。

數(shù)據(jù)塊大小限制:每個(gè)數(shù)據(jù)報(bào)文最多只能傳輸512字節(jié)的數(shù)據(jù),如果文件較大,會(huì)分多次傳輸,每次發(fā)送一個(gè)512字節(jié)的數(shù)據(jù)塊。最后一個(gè)數(shù)據(jù)塊可能小于512字節(jié),表示文件的結(jié)束。

3 TFTP協(xié)議應(yīng)用場(chǎng)景

接下來,我們了解下在W55MH32上,可以使用TFTP協(xié)議完成哪些操作及應(yīng)用呢?

固件升級(jí):對(duì)于路由器、交換機(jī)等網(wǎng)絡(luò)設(shè)備,TFTP協(xié)議常用于將固件傳輸?shù)竭@些設(shè)備以進(jìn)行固件更新。TFTP協(xié)議能夠確保固件文件快速、準(zhǔn)確地傳輸?shù)侥繕?biāo)設(shè)備。

配置文件傳輸:TFTP協(xié)議也常用于管理網(wǎng)絡(luò)設(shè)備的配置文件。將配置文件傳輸?shù)骄W(wǎng)絡(luò)設(shè)備以進(jìn)行配置更新,或者從網(wǎng)絡(luò)設(shè)備下載配置文件進(jìn)行備份或分析。

IOT設(shè)備固件升級(jí):TFTP協(xié)議因其簡(jiǎn)單性和高效性,成為IOT設(shè)備固件升級(jí)的一種常用協(xié)議。

4 TFTP協(xié)議基本工作流程

請(qǐng)求發(fā)送:客戶端向服務(wù)器發(fā)送讀請(qǐng)求(RRQ,Read Request)或?qū)懻?qǐng)求(WRQ,Write Request)。這些請(qǐng)求包含了要讀取或?qū)懭氲奈募约皞鬏斈J剑ㄈ缍M(jìn)制或ASCII碼)。

建立連接:服務(wù)器接收到客戶端的請(qǐng)求后,根據(jù)請(qǐng)求中的文件名和傳輸模式,打開相應(yīng)的文件(對(duì)于寫請(qǐng)求)或準(zhǔn)備發(fā)送文件數(shù)據(jù)(對(duì)于讀請(qǐng)求),并向客戶端發(fā)送確認(rèn)信息,從而建立連接。

數(shù)據(jù)傳輸:在寫請(qǐng)求的情況下,客戶端開始發(fā)送文件數(shù)據(jù)到服務(wù)器,服務(wù)器接收并寫入文件。數(shù)據(jù)以數(shù)據(jù)塊的形式發(fā)送,每個(gè)數(shù)據(jù)塊的大小通常為512字節(jié)(但可以根據(jù)網(wǎng)絡(luò)狀況調(diào)整)。

在讀請(qǐng)求的情況下,服務(wù)器開始發(fā)送文件數(shù)據(jù)到客戶端,客戶端接收并保存文件。同樣,數(shù)據(jù)也是以數(shù)據(jù)塊的形式發(fā)送的。

回應(yīng)與確認(rèn):每當(dāng)客戶端或服務(wù)器發(fā)送一個(gè)數(shù)據(jù)塊后,接收方會(huì)發(fā)送一個(gè)回應(yīng)包(ACK,Acknowledgment)來確認(rèn)接收到了該數(shù)據(jù)塊。這個(gè)回應(yīng)包包含了接收到的數(shù)據(jù)塊的編號(hào),以確保數(shù)據(jù)的順序和完整性。

繼續(xù)傳輸或結(jié)束:根據(jù)回應(yīng)包,發(fā)送方會(huì)繼續(xù)發(fā)送下一個(gè)數(shù)據(jù)塊,直到整個(gè)文件傳輸完成。如果傳輸過程中出現(xiàn)錯(cuò)誤,服務(wù)器會(huì)向客戶端發(fā)送錯(cuò)誤信息包(ERROR),中斷傳輸過程。

關(guān)閉連接:文件傳輸完成后,客戶端和服務(wù)器會(huì)關(guān)閉連接。

5 TFTP協(xié)議報(bào)文解析

常見的操作碼:

1:讀請(qǐng)求(RRQ),用于請(qǐng)求讀取服務(wù)器上的文件。

2:寫請(qǐng)求(WRQ),用于請(qǐng)求向服務(wù)器上寫入文件。

3:數(shù)據(jù)(DATA),用于傳輸文件數(shù)據(jù)。

4:回應(yīng)(ACK),用于確認(rèn)接收到的數(shù)據(jù)塊。

5:錯(cuò)誤信息(ERROR),用于報(bào)告?zhèn)鬏斶^程中發(fā)生的錯(cuò)誤。

常見操作碼的報(bào)文格式如下:

報(bào)文類型 報(bào)文格式 操作碼 其他關(guān)鍵字段及說明
讀請(qǐng)求(RRQ) 總長(zhǎng)可變,由2字節(jié)操作碼、可變長(zhǎng)文件名(以1字節(jié)0結(jié)尾)、可變長(zhǎng)傳輸模式(以1字節(jié) 0結(jié)尾)組成 1 文件名:明確要讀取的文件名稱
傳輸模式:“netascii”表示ASCI碼模式,“octet”表示二進(jìn)制模式
寫請(qǐng)求(WRQ) 總長(zhǎng)可變,由2字節(jié)操作碼、可變長(zhǎng)文件名(以1字節(jié)0結(jié)尾)、可變長(zhǎng)傳輸模式(以1字節(jié) 0結(jié)尾)組成 2 文件名:明確要讀取的文件名稱
傳輸模式:“netascii”表示ASCII碼模式,“octet”表示二進(jìn)制模式
數(shù)據(jù)(DATA) 由2字節(jié)操作碼、2字節(jié)數(shù)據(jù)塊編號(hào)、最多512字節(jié)數(shù)據(jù)組成 3 數(shù)據(jù)塊編號(hào):從1開始,用于標(biāo)識(shí)數(shù)據(jù)塊順序
數(shù)據(jù):實(shí)際傳輸?shù)奈募?nèi)容
確認(rèn)(ACK) 由2字節(jié)操作碼和2字節(jié)確認(rèn)的數(shù)據(jù)塊編號(hào)組成 4 數(shù)據(jù)塊編號(hào):與接收到的數(shù)據(jù)塊編號(hào)一致,用于確認(rèn)接收
錯(cuò)誤(ERROR) 由2字節(jié)操作碼、2字節(jié)錯(cuò)誤碼、可變長(zhǎng)錯(cuò)誤信息(以 1字節(jié)0結(jié)尾)組成 5 錯(cuò)誤碼:明確錯(cuò)誤類型
錯(cuò)誤信息:具體描述錯(cuò)誤情況

報(bào)文示例:

客戶端讀請(qǐng)求報(bào)文:

|報(bào)文解析|
Trivial File Transfer Protocol
    Opcode: Read Request (1) (操作碼為01,讀請(qǐng)求報(bào)文)
    Source File: tftp_test_file.txt (明確要讀取的文件名為tftp_test_file.txt)
    Type: octet (傳輸模式為octet)
    Option: timeout = 5

|報(bào)文原文|
00 01 74 66 74 70 5f 74 65 73 74 5f 66 69 6c 65 2e 74 78 74 00 6f 63 74 65 74 00 74 69 6d 65 6f 75 74 00 35 00

服務(wù)器響應(yīng)報(bào)文:

|報(bào)文解析|
Trivial File Transfer Protocol
    Opcode: Option Acknowledgement (6) (操作碼為06,擴(kuò)展操作碼)
    [Destination File: tftp_test_file.txt]
    [Read Request in frame 125]
Option: timeout = 5

|報(bào)文原文|
00 06 74 69 6d 65 6f 75 74 00 35 00

客戶端響應(yīng)報(bào)文:

|報(bào)文解析|
Trivial File Transfer Protocol
    Opcode: Acknowledgement (4) (操作碼為04,回應(yīng)報(bào)文)
    [Destination File: tftp_test_file.txt]
    [Read Request in frame 125]
    Block: 0 (數(shù)據(jù)塊標(biāo)號(hào)為00 00)
    [Full Block Number: 0]

|報(bào)文原文|
00 04 00 00

服務(wù)器響應(yīng)報(bào)文:

|報(bào)文解析|
Trivial File Transfer Protocol
    Opcode: Data Packet (3) (操作碼為03,數(shù)據(jù)報(bào)文)
    [Destination File: tftp_test_file.txt]
    [Read Request in frame 125]
    Block: 1 (數(shù)據(jù)塊標(biāo)號(hào)為00 01)
    [Full Block Number: 1]
Data (36 bytes)
    Data: 736461666173646661736466617364666666666666666641617364666173666166736466 (數(shù)據(jù))
[Length: 36]

|報(bào)文原文|
00 03 00 01 73 64 61 66 61 73 64 66 61 73 64 66 61 73 64 66 66 66 66 66 66 66 66 41 61 73 64 66 61 73 66 61 66 73 64 66 

客戶端響應(yīng)報(bào)文:

|報(bào)文解析|
Trivial File Transfer Protocol
    Opcode: Acknowledgement (4) (操作碼為04,回應(yīng)報(bào)文)
    [Destination File: tftp_test_file.txt]
    [Read Request in frame 125]
    Block: 1 (數(shù)據(jù)塊標(biāo)號(hào)為00 01)
   [Full Block Number: 1]

|報(bào)文原文|
00 04 00 01

6實(shí)現(xiàn)過程

接下來,我們?cè)赪55MH32上實(shí)現(xiàn)TFTP協(xié)議讀取文件。

注意:測(cè)試實(shí)例需要PC端和W55MH32處于同一網(wǎng)段。

在主函數(shù)中調(diào)用do_tftp_client()函數(shù)不斷檢查和處理 TFTP客戶端的狀態(tài),并根據(jù)讀取的結(jié)果(成功或失敗)進(jìn)入相應(yīng)的處理狀態(tài)。

1.  do_tftp_client(SOCKET_ID, ethernet_buf);

do_tftp_client()函數(shù)如下:

 void do_tftp_client(uint8_t sn, uint8_t *buff)
{
   uint32_t tftp_server_ip       = inet_addr(TFTP_SERVER_IP);
   uint8_t  tftp_read_file_name[] = TFTP_SERVER_FILE_NAME;
   TFTP_init(sn, buff);
   
   while (1)
   {
       if (tftp_read_flag == 0)
       {
           printf("tftp server ip: %s, file name: %srn", TFTP_SERVER_IP, TFTP_SERVER_FILE_NAME);
           printf("send requestrn");
           TFTP_read_request(tftp_server_ip, TFTP_SERVER_FILE_NAME);
           tftp_read_flag = 1;
       }
       else
       {
           tftp_state = TFTP_run();
           
           if (tftp_state == TFTP_SUCCESS)
           {
               printf("tftp read success, file name: %srn", tftp_read_file_name);
               while (1)
               {
                   // 成功后進(jìn)入死循環(huán)
               }
           }
           else if (tftp_state == TFTP_FAIL)
           {
               printf("tftp read fail, file name: %srn", tftp_read_file_name);
               while (1)
               {
                   // 失敗后進(jìn)入死循環(huán)
               }
           }
       }
   }
}

進(jìn)入do_tftp_client()函數(shù)后開始進(jìn)行TFTP客戶端處理,步驟如下:

步驟一:TFTP初始化

調(diào)用TFTP_init()函數(shù)對(duì)TFTP客戶端進(jìn)行初始化,參數(shù)sn和buff分別是socket號(hào),socket緩存。

void TFTP_init(uint8_t socket, uint8_t *buf)
{
   init_tftp();
   g_tftp_socket = open_tftp_socket(socket);
   g_tftp_rcv_buf = buf;
}
static void init_tftp(void)
{
   g_filename[0] = 0;
   set_server_ip(0);
   set_server_port(0);
   set_local_port(0);
   set_tftp_state(STATE_NONE);
   set_block_number(0);
   // timeout flag
   g_resend_flag = 0;
   tftp_retry_cnt = tftp_time_cnt = 0;
   g_progress_state = TFTP_PROGRESS;
}
   

步驟二:發(fā)送 TFTP讀請(qǐng)求

當(dāng)tftp_read_flag為 0時(shí),表示尚未發(fā)送讀取請(qǐng)求。此時(shí),打印 TFTP服務(wù)器的 IP地址和要讀取的文件名,然后調(diào)用TFTP_read_request()函數(shù)向服務(wù)器發(fā)送讀取請(qǐng)求。發(fā)送請(qǐng)求后,將tftp_read_flag設(shè)置為 1,表示已發(fā)送請(qǐng)求。

void TFTP_read_request(uint32_t server_ip, uint8_t *filename)
{
   set_server_ip(server_ip);
   
#ifdef __TFTP_DEBUG__
   DBG_PRINT(INFO_DBG, "[%s] Set Tftp Server : %xrn", __func__, server_ip);
#endif
   g_progress_state = TFTP_PROGRESS;
   send_tftp_rrq(filename, (uint8_t *)TRANS_BINARY, &default_tftp_opt, 1);
}
   

步驟三:運(yùn)行 TFTP協(xié)議并處理結(jié)果

當(dāng) tftp_read_flag為 1時(shí)調(diào)用 TFTP_run()函數(shù)處理 TFTP協(xié)議操作,依據(jù)其返回的 tftp_state判斷結(jié)果:若為 TFTP_SUCCESS則打印成功信息并進(jìn)入無限循環(huán),若為 TFTP_FAIL則打印失敗信息并進(jìn)入無限循環(huán)。

TFTP_run()函數(shù)如下:

int TFTP_run(void)
{
   int      len;
   uint16_t from_port;
   uint32_t from_ip;
   /* Timeout Process */
   if (g_resend_flag)
   {
       if (tftp_time_cnt >= g_timeout)
       {
           switch (get_tftp_state())
           {
               case STATE_WRQ:
                   break;
               case STATE_RRQ:
                   send_tftp_rrq(g_filename, (uint8_t *)TRANS_BINARY, &default_tftp_opt, 1);
                   break;
               case STATE_OACK:
               case STATE_DATA:
                   send_tftp_ack(get_block_number());
                   break;
               case STATE_ACK:
                   break;
               default:
                   break;
           }
           tftp_time_cnt = 0;
           tftp_retry_cnt++;
           if (tftp_retry_cnt >= 5)
           {
               init_tftp();
               g_progress_state = TFTP_FAIL;
           }
       }
   }
   /* Receive Packet Process */
   len = recv_udp_packet(g_tftp_socket, g_tftp_rcv_buf, MAX_MTU_SIZE, &from_ip, &from_port);
   if (len < 0)
   {
#ifdef __TFTP_DEBUG__
       DBG_PRINT(ERROR_DBG, "[%s] recv_udp_packet errorrn", __func__);
#endif
       return g_progress_state;
   }
   recv_tftp_packet(g_tftp_rcv_buf, len, from_ip, from_port);
   return g_progress_state;
}
   

在處理接收到的TFTP數(shù)據(jù)包時(shí),首先調(diào)用recv_tftp_packet()函數(shù)。

recv_tftp_packet()函數(shù)如下:

static void recv_tftp_packet(uint8_t *packet, uint32_t packet_len, uint32_t from_ip, uint16_t from_port)
{
   uint16_t opcode;
   /* Verify Server IP */
   if (from_ip != get_server_ip())
   {
#ifdef __TFTP_DEBUG__
       DBG_PRINT(ERROR_DBG, "[%s] Server IP faultsrn", __func__);
       DBG_PRINT(ERROR_DBG, "from IP : %08x, Server IP : %08xrn", from_ip, get_server_ip());
#endif
       return;
   }
   opcode = ntohs(*((uint16_t *)packet));
   /* Set Server Port */
   if ((get_tftp_state() == STATE_WRQ) || (get_tftp_state() == STATE_RRQ))
   {
       set_server_port(from_port);
#ifdef __TFTP_DEBUG__
       DBG_PRINT(INFO_DBG, "[%s] Set Server Port : %drn", __func__, from_port);
#endif
   }
   switch (opcode)
   {
       case TFTP_RRQ:  /* When Server */
           recv_tftp_rrq(packet, packet_len);
           break;
       case TFTP_WRQ:  /* When Server */
           recv_tftp_wrq(packet, packet_len);
           break;
       case TFTP_DATA:
           recv_tftp_data(packet, packet_len);
           break;
       case TFTP_ACK:
           recv_tftp_ack(packet, packet_len);
           break;
       case TFTP_OACK:
           recv_tftp_oack(packet, packet_len);
           break;
       case TFTP_ERROR:
           recv_tftp_error(packet, packet_len);
           break;
       default:
           // Unknown Message
           break;
   }
}
   

進(jìn)入該函數(shù)后,第一步驗(yàn)證接收到的數(shù)據(jù)包的源IP地址,只有當(dāng)它與服務(wù)器IP地址一致時(shí)才繼續(xù)處理,若不一致則直接返回。接著,從數(shù)據(jù)包中獲取操作碼(opcode)。根據(jù)獲取到的操作碼,調(diào)用相應(yīng)的處理函數(shù):如果是TFTP讀請(qǐng)求(RRQ),則調(diào)用 recv_tftp_rrq()函數(shù);若是寫請(qǐng)求(WRQ),則調(diào)用recv_tftp_wrq()函數(shù);對(duì)于接收到的數(shù)據(jù)數(shù)據(jù)包,調(diào)用 recv_tftp_data()函數(shù);確認(rèn)數(shù)據(jù)包則由recv_tftp_ack()函數(shù)處理;OACK數(shù)據(jù)包由recv_tftp_oack()函數(shù)處理;若遇到錯(cuò)誤數(shù)據(jù)包,調(diào)用recv_tftp_error()函數(shù)來解析錯(cuò)誤代碼和錯(cuò)誤信息。最后,返回g_progress_state,以此表示當(dāng)前TFTP操作的狀態(tài)。

7運(yùn)行結(jié)果

燒錄例程運(yùn)行后,首先進(jìn)行了PHY鏈路檢測(cè),然后是DHCP獲取網(wǎng)絡(luò)地址結(jié)果,最后打印服務(wù)器IP和文本名稱,讀取文本內(nèi)容,如下圖所示:

wKgZO2iBmnGASbKnAADmAww0ocg224.png

8總結(jié)

本文講解了如何在 W55MH32芯片上實(shí)現(xiàn) TFTP協(xié)議,通過實(shí)戰(zhàn)例程詳細(xì)展示了使用 TFTP客戶端模式從服務(wù)器獲取文本文件的過程,涵蓋 TFTP初始化、發(fā)送讀請(qǐng)求、運(yùn)行協(xié)議并處理結(jié)果等核心步驟。文章還對(duì) TFTP協(xié)議的簡(jiǎn)介、特點(diǎn)、應(yīng)用場(chǎng)景、基本工作流程和報(bào)文解析進(jìn)行了分析,幫助讀者理解其在文件傳輸中的實(shí)際應(yīng)用價(jià)值。

下一篇文章將聚焦 SNMP協(xié)議,解析其核心原理及在網(wǎng)絡(luò)管理中的應(yīng)用,同時(shí)講解如何在相關(guān)設(shè)備上實(shí)現(xiàn) SNMP功能,敬請(qǐng)期待!

WIZnet是一家無晶圓廠半導(dǎo)體公司,成立于 1998年。產(chǎn)品包括互聯(lián)網(wǎng)處理器 iMCU?,它采用 TOE(TCP/IP卸載引擎)技術(shù),基于獨(dú)特的專利全硬連線 TCP/IP。iMCU?面向各種應(yīng)用中的嵌入式互聯(lián)網(wǎng)設(shè)備。

WIZnet在全球擁有 70多家分銷商,在香港、韓國、美國設(shè)有辦事處,提供技術(shù)支持和產(chǎn)品營(yíng)銷。

香港辦事處管理的區(qū)域包括:澳大利亞、印度、土耳其、亞洲(韓國和日本除外)。


審核編輯 黃宇

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

    關(guān)注

    41

    文章

    5999

    瀏覽量

    180904
  • TFTP
    +關(guān)注

    關(guān)注

    0

    文章

    24

    瀏覽量

    14804
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    第十四章 USART——串口通訊

    本章介紹了USART串口通訊,含物理層(RS-232、TTL電平)、協(xié)議層(波特率、數(shù)據(jù)幀),及W55MH32的USART功能與應(yīng)用。
    的頭像 發(fā)表于 06-14 16:30 ?1803次閱讀
    <b class='flag-5'>第十四章</b> USART——串口通訊

    W55MH32高性能以太網(wǎng)單片機(jī)開發(fā)課件 第十四章 ADC(上篇)

    本章介紹了W55MH32的12位ADC(上篇),其有18通道,支持單次、連續(xù)等轉(zhuǎn)換模式,具有自校準(zhǔn)、模擬看門狗等功能。還含ADC_AnalogWatchdog 例程,可監(jiān)測(cè)電壓超閾值并觸發(fā)中斷。
    的頭像 發(fā)表于 05-28 13:52 ?855次閱讀
    <b class='flag-5'>W55MH32</b>高性能以太網(wǎng)單片機(jī)開發(fā)課件 <b class='flag-5'>第十四章</b> ADC(上篇)

    第十四章 ADC(下篇)

    文章介紹了基于W55MH32的三個(gè)ADC例程:ADC_Double雙模式同步采樣兩通道,ADC_Single單通道采樣,ADC_VrefintTemper采集內(nèi)部傳感器與參考電壓,均用DMA傳輸數(shù)據(jù)、串口輸出,介紹系統(tǒng)初始化等流程。
    的頭像 發(fā)表于 05-29 17:48 ?988次閱讀
    <b class='flag-5'>第十四章</b> ADC(下篇)

    第二章 W55MH32 DHCP示例

    本文介紹 DHCP?協(xié)議,包括其在 IP?網(wǎng)絡(luò)自動(dòng)分配參數(shù)的功能、便捷配置等特點(diǎn)、工作原理、報(bào)文格式和應(yīng)用場(chǎng)景。通過 W55MH32?實(shí)戰(zhàn)例程展示動(dòng)態(tài)獲取網(wǎng)絡(luò)地址信息過程,含注冊(cè)定時(shí)器中斷、啟用模式和獲取信息等步驟,燒錄后可完成檢測(cè)與信息打印,PC?端能 PING?通設(shè)備。
    的頭像 發(fā)表于 07-24 09:02 ?851次閱讀
    第二章 <b class='flag-5'>W55MH32</b> DHCP<b class='flag-5'>示例</b>

    第五章 W55MH32 UDP示例

    本文介紹了在 W55MH32?芯片上實(shí)現(xiàn) UDP?通信及數(shù)據(jù)回環(huán)測(cè)試的方法。闡述了 UDP?協(xié)議的概念、特點(diǎn)、應(yīng)用場(chǎng)景、報(bào)文傳輸流程和報(bào)文結(jié)構(gòu),展示了實(shí)現(xiàn)過程,借助網(wǎng)絡(luò)調(diào)試工具完成測(cè)試。
    的頭像 發(fā)表于 07-24 09:13 ?1108次閱讀
    第五章 <b class='flag-5'>W55MH32</b> UDP<b class='flag-5'>示例</b>

    第九章 W55MH32 HTTP Server示例

    本文介紹了在 W55MH32?芯片上實(shí)現(xiàn) HTTP Server?功能,并通過瀏覽器修改其網(wǎng)絡(luò)地址信息的方法。闡述了 HTTP?協(xié)議的概念、特點(diǎn)、應(yīng)用場(chǎng)景、工作流程、請(qǐng)求方法、響應(yīng)內(nèi)容,以及 Web?頁面構(gòu)成和交互方式。展示了在W55MH32上實(shí)現(xiàn)的過程。
    的頭像 發(fā)表于 07-24 09:35 ?1131次閱讀
    第九章 <b class='flag-5'>W55MH32</b> HTTP Server<b class='flag-5'>示例</b>

    第十W55MH32 SNTP示例

    本文講解了如何在W55MH32芯片上實(shí)現(xiàn)SNTP授時(shí)功能,通過實(shí)例詳細(xì)展示了從SNTP服務(wù)器同步時(shí)間的實(shí)現(xiàn)流程,包括時(shí)間請(qǐng)求、響應(yīng)解析和本地時(shí)間校準(zhǔn)等核心步驟。文章還對(duì)SNTP的應(yīng)用場(chǎng)景進(jìn)行了分析,幫助讀者理解其在時(shí)間同步中的實(shí)際應(yīng)用價(jià)值。
    的頭像 發(fā)表于 07-24 09:43 ?1269次閱讀
    <b class='flag-5'>第十</b>章 <b class='flag-5'>W55MH32</b> SNTP<b class='flag-5'>示例</b>

    第十一章 W55MH32 SMTP示例

    本文講解了如何在 W55MH32?芯片上實(shí)現(xiàn) SMTP?協(xié)議,通過實(shí)例詳細(xì)展示了在該芯片上使用 SMTP?協(xié)議發(fā)送電子郵件的實(shí)現(xiàn)流程,包括 SMTP?發(fā)送內(nèi)容初始化、使用 DNS?協(xié)議解析 SMTP
    的頭像 發(fā)表于 07-24 09:49 ?1400次閱讀
    <b class='flag-5'>第十</b>一章 <b class='flag-5'>W55MH32</b> SMTP<b class='flag-5'>示例</b>

    第十二章 W55MH32 NetBIOS示例

    本文講解了如何在 W55MH32?芯片上實(shí)現(xiàn) NetBIOS?功能,通過實(shí)戰(zhàn)例程展示了利用 NetBIOS?進(jìn)行名稱 PING?測(cè)試的具體過程,包括 NetBIOS?功能的調(diào)用、請(qǐng)求處理、名稱解析
    的頭像 發(fā)表于 07-24 09:58 ?827次閱讀
    <b class='flag-5'>第十</b>二章 <b class='flag-5'>W55MH32</b> NetBIOS<b class='flag-5'>示例</b>

    第十三章 W55MH32 UPnP端口轉(zhuǎn)發(fā)示例

    本文講解了如何在 W55MH32?芯片上實(shí)現(xiàn) UPnP?協(xié)議的端口轉(zhuǎn)發(fā)功能,通過實(shí)戰(zhàn)例程詳細(xì)展示了從設(shè)備搜索、獲取設(shè)備描述、訂閱事件到添加和刪除端口映射的完整流程,包括各步驟涉及的協(xié)議報(bào)文、函數(shù)實(shí)現(xiàn)
    的頭像 發(fā)表于 07-24 10:28 ?1318次閱讀
    <b class='flag-5'>第十</b>三章 <b class='flag-5'>W55MH32</b> UPnP端口轉(zhuǎn)發(fā)<b class='flag-5'>示例</b>

    第十五章 W55MH32 SNMP示例

    本文講解了如何在 W55MH32?芯片上實(shí)現(xiàn) SNMP?功能,通過實(shí)戰(zhàn)例程展示了使用 MIB Browser?管理 W55MH32?的具體過程,涵蓋在 MIB Browser?中創(chuàng)建分支、添加葉子
    的頭像 發(fā)表于 07-24 10:43 ?1058次閱讀
    <b class='flag-5'>第十</b>五章 <b class='flag-5'>W55MH32</b> SNMP<b class='flag-5'>示例</b>

    第十六章 W55MH32 PING示例

    本文講解了如何在 W55MH32?芯片上通過 IPRAW?模式實(shí)現(xiàn) ICMP?協(xié)議中的 PING?命令,以進(jìn)行網(wǎng)絡(luò)連通性測(cè)試,通過實(shí)戰(zhàn)例程展示了從發(fā)送 PING?請(qǐng)求、接收并解析回復(fù)到統(tǒng)計(jì)結(jié)果的完整
    的頭像 發(fā)表于 07-24 11:41 ?987次閱讀
    <b class='flag-5'>第十</b>六章 <b class='flag-5'>W55MH32</b> PING<b class='flag-5'>示例</b>

    第十七章 W55MH32 ARP示例

    文講解了如何在 W55MH32?芯片上通過 MAC RAW?模式實(shí)現(xiàn) ARP?協(xié)議,將 IP?地址解析為 MAC?地址,通過實(shí)戰(zhàn)例程展示了從發(fā)送 ARP?請(qǐng)求到接收并處理響應(yīng)的完整過程。文章詳細(xì)介紹
    的頭像 發(fā)表于 07-24 11:49 ?1139次閱讀
    <b class='flag-5'>第十</b>七章 <b class='flag-5'>W55MH32</b> ARP<b class='flag-5'>示例</b>

    第十八章 W55MH32 FTP_Server示例

    本文講解了如何在 W55MH32?芯片上實(shí)現(xiàn) FTP?協(xié)議的服務(wù)器模式,通過實(shí)戰(zhàn)例程展示了使用 W55MH32?作為 FTP?服務(wù)器與 PC?端進(jìn)行文件傳輸、目錄操作等功能的過程,涵蓋獲取網(wǎng)絡(luò)配置
    的頭像 發(fā)表于 07-24 11:55 ?795次閱讀
    <b class='flag-5'>第十</b>八章 <b class='flag-5'>W55MH32</b> FTP_Server<b class='flag-5'>示例</b>

    第二十六章 W55MH32?上位機(jī)搜索和配置示例

    本文講解了如何在 W55MH32?芯片上實(shí)現(xiàn)上位機(jī)搜索和配置功能,通過實(shí)戰(zhàn)例程展示了使用開源上位機(jī)配置工具 SmartConfigTool?搜索局域網(wǎng)中的 W55MH32?并進(jìn)行網(wǎng)絡(luò)地址配置的過程
    的頭像 發(fā)表于 07-24 16:13 ?912次閱讀
    第二十六章 <b class='flag-5'>W55MH32</b>?上位機(jī)搜索和配置<b class='flag-5'>示例</b>