TFTP以太網(wǎng)通訊實(shí)驗(yàn).ppt_第1頁
TFTP以太網(wǎng)通訊實(shí)驗(yàn).ppt_第2頁
TFTP以太網(wǎng)通訊實(shí)驗(yàn).ppt_第3頁
TFTP以太網(wǎng)通訊實(shí)驗(yàn).ppt_第4頁
TFTP以太網(wǎng)通訊實(shí)驗(yàn).ppt_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

JX44B0實(shí)驗(yàn)系統(tǒng)教案 TFTP以太網(wǎng)通訊實(shí)驗(yàn),武漢創(chuàng)維特信息技術(shù)有限公司,2019/9/18,2,提綱,1,3,2,4,5,基礎(chǔ)知識,實(shí)驗(yàn)?zāi)康?實(shí)驗(yàn)內(nèi)容,預(yù)備知識,實(shí)驗(yàn)設(shè)備,6,實(shí)驗(yàn)過程,7,實(shí)驗(yàn)報(bào)告要求,3,一 實(shí)驗(yàn)?zāi)康?實(shí)驗(yàn)?zāi)康?了解在嵌入式系統(tǒng)中網(wǎng)絡(luò)通訊的實(shí)現(xiàn) 了解TFPT協(xié)議的功能和作用,4,二 實(shí)驗(yàn)內(nèi)容,實(shí)驗(yàn)內(nèi)容,通過TFTP協(xié)議實(shí)現(xiàn)文件的下載,5,三 預(yù)備知識,預(yù)備知識,了解TFTP協(xié)議 熟悉網(wǎng)卡芯片CS8900A的操作,6,四 實(shí)驗(yàn)設(shè)備,實(shí)驗(yàn)設(shè)備,JX44B0教學(xué)實(shí)驗(yàn)箱 ADT1000仿真器和ADT IDE集成開發(fā)環(huán)境 串口連接線 網(wǎng)線(若有交換機(jī)則需要兩根,沒有可以使用1根對接網(wǎng)線代替)。,7,五 基礎(chǔ)知識,TFTP協(xié)議,TFTP是一個(gè)傳輸文件的簡單協(xié)議,它基于UDP協(xié)議實(shí)現(xiàn),它不具備通常的FTP的全部功能,它只能從文件服務(wù)器上獲得或?qū)懭胛募?,不能列出目錄,不進(jìn)行認(rèn)證等。 傳輸中有三種模式:netascii,這是8位的ASCII碼形式,另一種是octet,這是8位源數(shù)據(jù)類型;最后一種mail已經(jīng)不再支持,它將返回的數(shù)據(jù)直接返回給用戶而不是保存為文件。,8,五 基礎(chǔ)知識,TFTP協(xié)議,任何傳輸起自一個(gè)讀取或?qū)懭胛募恼埱?,這個(gè)請求也是連接請求。如果服務(wù)器批準(zhǔn)此請求,則服務(wù)器打開連接,數(shù)據(jù)以定長512字節(jié)傳輸。每個(gè)數(shù)據(jù)包包括一塊數(shù)據(jù),服務(wù)器發(fā)出下一個(gè)數(shù)據(jù)包以前必須得到客戶對上一個(gè)數(shù)據(jù)包的確認(rèn)。如果一個(gè)數(shù)據(jù)包小于512字節(jié),則表示傳輸結(jié)束。如果數(shù)據(jù)包在傳輸過程中丟失,發(fā)出方會(huì)在超時(shí)后重新傳輸最后一個(gè)未被確認(rèn)的數(shù)據(jù)包。通信的雙方都是數(shù)據(jù)的發(fā)出者與接收者,一方傳輸數(shù)據(jù)接收應(yīng)答,另一方發(fā)出應(yīng)答接收數(shù)據(jù)。大部分的錯(cuò)誤會(huì)導(dǎo)致連接中斷,錯(cuò)誤由一個(gè)錯(cuò)誤的數(shù)據(jù)包引起,這個(gè)包不會(huì)被確認(rèn),也不會(huì)被重新發(fā)送,因此另一方無法接收到。如果錯(cuò)誤包丟失,則使用超時(shí)機(jī)制。,9,五 基礎(chǔ)知識,TFTP協(xié)議,TFTP使用UDP協(xié)議,而UDP使用IP,IP可以還使用其它本地通信方法。 一個(gè)TFTP包中會(huì)有以下幾段:本地媒介頭,IP頭,數(shù)據(jù)報(bào)頭,TFTP頭,剩下的就是TFTP數(shù)據(jù)了。 TFTP在IP頭中不指定任何數(shù)據(jù),但是它使用UDP中的源和目標(biāo)端口以及包長度域,由TFTP使用的包標(biāo)記(TID)在這里被用做端口,TID必須介于0到65,535之間。,10,五 基礎(chǔ)知識,初始連接的建立,初始連接時(shí)需要發(fā)出WRQ(請求寫入遠(yuǎn)程系統(tǒng))或RRQ(請求讀取遠(yuǎn)程系統(tǒng)),收到一個(gè)確定應(yīng)答,一個(gè)確定可以寫出的包或應(yīng)該讀取的第一塊數(shù)據(jù)。 創(chuàng)建連接時(shí),通信雙方隨機(jī)選擇一個(gè)TID。每個(gè)包包括兩個(gè)TID,發(fā)送者ID和接收者ID。 下例是一個(gè)寫入的例子,其中WRQ,ACK和DATA代表寫入請求,確認(rèn)和數(shù)據(jù)。 主機(jī)A向主機(jī)B發(fā)出WRQ,其中端口為69 B機(jī)向A機(jī)發(fā)出ACK,塊號為0,包括B和A的TID,11,五 基礎(chǔ)知識,I2C總線的基本結(jié)構(gòu),采用I2C總線標(biāo)準(zhǔn)的單片機(jī)或IC器件,其內(nèi)部不僅有I2C接口電路,而且將內(nèi)部各單元電路按功能劃分為若干相對獨(dú)立的模塊,通過軟件尋址實(shí)現(xiàn)片選,減少了器件片選線的連接。CPU不僅能通過指令將某個(gè)功能單元掛靠或摘離總線,還可對該單元的工作狀況進(jìn)行檢測,從而實(shí)現(xiàn)對硬件系統(tǒng)簡單而靈活的擴(kuò)展與控制。I2C總線接口電路結(jié)構(gòu)如下圖所示。,12,五 基礎(chǔ)知識,TFTP包的類型,Read request (RRQ) Write request (WRQ) Data (DATA) Acknowledgment (ACK) Error (ERROR),13,五 基礎(chǔ)知識,連結(jié)正常終止,傳輸?shù)慕Y(jié)束由DATA數(shù)據(jù)標(biāo)記,其包括0-511個(gè)字符。這個(gè)包可以被其它數(shù)據(jù)包確認(rèn)。接收方在發(fā)出對最后數(shù)據(jù)包的確認(rèn)后可以斷開連接,當(dāng)然,適當(dāng)?shù)牡却潜容^好的,如果最后的確定包丟失可以再次傳輸。如果發(fā)出確認(rèn)后仍然收到最后數(shù)據(jù)包,可以確定最后的確認(rèn)丟失。 發(fā)送最后一個(gè)DATA包的主機(jī)必須等待對此包的確認(rèn)或超時(shí)。如果響應(yīng)是ACK,傳輸完成。如果發(fā)送方超時(shí)并不準(zhǔn)備重新發(fā)送并且接收方有問題或網(wǎng)絡(luò)有問題時(shí),發(fā)送也正常結(jié)束。,14,五 基礎(chǔ)知識,CS8900A網(wǎng)卡芯片,JX44B0使用CS8900A芯片來用于網(wǎng)絡(luò)通訊,它的傳輸速率為10M。CS8900與處理器按照16位方式連接,網(wǎng)卡芯片復(fù)位后默認(rèn)工作方式為I/O連接,寄存器的默認(rèn)基址是300H。 1)LINECTL(0112H):LINECTL決定CS8900的基本配置和物理接口 2)RXCTL(0104H):RXCTL控制CS8900接收特定數(shù)據(jù)報(bào) 3)RXCFG(0102H):RXCFG控制CS8900接收到特定數(shù)據(jù)報(bào)后會(huì)引發(fā)接收中斷 4)BUSCT(0116H):BUSCT可控制芯片的I/O接口的一些操作 5)ISQ(0120H):ISQ是網(wǎng)卡芯片的中斷狀態(tài)寄存器,內(nèi)部映射接收中斷狀態(tài)寄存器和發(fā)送中斷狀態(tài)寄存器的內(nèi)容。 6)PORT0(0000H):發(fā)送和接收數(shù)據(jù)時(shí),CPU通過PORT0傳遞數(shù)據(jù)。 7)TXCMD(0004H):發(fā)送控制寄存器,如果寫入數(shù)據(jù)00C0H,那么網(wǎng)卡芯片在全部數(shù)據(jù)寫入后開始發(fā)送數(shù)據(jù)。 8)TXLENG(0006H):發(fā)送數(shù)據(jù)長度寄存器,發(fā)送數(shù)據(jù)時(shí),首先寫入發(fā)送數(shù)據(jù)長度,然后將數(shù)據(jù)通過PORT0寫入芯片。,15,五 基礎(chǔ)知識,實(shí)驗(yàn)函數(shù)說明,CS8900A初始化函數(shù):用于設(shè)置CS8900A的MAC地址、工作模式。 void cs8900a_eth_init(bd_t * bd); CS8900A接收數(shù)據(jù)函數(shù):用于接收數(shù)據(jù),并將該數(shù)據(jù)包上傳給IP層。 int cs8900a_eth_rx (unsigned char *data, int *len) CS8900A發(fā)送數(shù)據(jù)函數(shù)。 int cs8900a_eth_send (unsigned char *data, int len) IP包處理函數(shù):當(dāng)從網(wǎng)卡上接收到一個(gè)IP協(xié)議數(shù)據(jù)包時(shí),需調(diào)用該函數(shù)進(jìn)行處理。 int ip_rcv_packet(struct sk_buff *skb),16,五 基礎(chǔ)知識,實(shí)驗(yàn)函數(shù)說明,UDP包處理函數(shù):當(dāng)一個(gè)IP包中封裝的數(shù)據(jù)為UDP時(shí),調(diào)用該函數(shù)。在本次實(shí)驗(yàn)中TFTP數(shù)據(jù)包都是基于UDP的。 int udp_rcv_packet(struct sk_buff *skb) TFTP包處理函數(shù):TFTP包有五種類型,調(diào)用該函數(shù)進(jìn)行分析,并作出相應(yīng)的處理。 int tftp_rcv_packet(struct sk_buff *skb) TFTP寫請求包處理函數(shù):當(dāng)一個(gè)TFTP包是WRQ類型時(shí)調(diào)用該函數(shù)。該函數(shù)首先發(fā)送一個(gè)ACK確認(rèn),然后系統(tǒng)將進(jìn)入接收數(shù)據(jù)狀態(tài)。 int tftp_rcv_ wrq (struct sk_buff *skb) TFTP數(shù)據(jù)包處理函數(shù):當(dāng)一個(gè)TFTP包是DATA類型時(shí)調(diào)用該函數(shù)。該函數(shù)要檢查IP地址以及端口是否正確,隨后發(fā)送一個(gè)ACK確認(rèn),并將接收的數(shù)據(jù)保存下來,如果數(shù)據(jù)長度小于512字節(jié),表示本次傳輸過程結(jié)束。 int tftp_rcv_data(struct sk_buff *

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論