freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機以太網(wǎng)通信模塊的軟件設(shè)計課題-資料下載頁

2025-06-30 21:39本頁面

【導(dǎo)讀】隨著信息技術(shù)的飛速發(fā)展,Inter應(yīng)用己經(jīng)深入到生活的方方面面。嵌入式系統(tǒng)己經(jīng)廣泛地滲透到航空、汽車電子、工業(yè)生產(chǎn)、通。信、消費電子以及人們?nèi)粘I畹姆椒矫婷妗I鯙榱餍?,這表明互聯(lián)網(wǎng)應(yīng)用進入嵌入式互聯(lián)網(wǎng)的時代己經(jīng)來臨。機工業(yè)中的地位及其網(wǎng)絡(luò)化問題,認為下一代網(wǎng)絡(luò)設(shè)備中嵌入式設(shè)備將大大增加,互聯(lián)網(wǎng)上傳輸信息的70%將會來自小型嵌入式系統(tǒng)。成為嵌入式系統(tǒng)應(yīng)用的一個重要方向和必然結(jié)果。把嵌入式系統(tǒng)作為Web服務(wù)器與Inter相連接很適合于。訪問嵌入式Web服務(wù)器就可以直接監(jiān)控現(xiàn)場設(shè)備的運行,提高生產(chǎn)效率和管理水平。的缺點,同時也為嵌入式系統(tǒng)的遠程應(yīng)用提供了一種人機可交互的方便的操作方式,從而使嵌入式MCU以WEB服務(wù)器的方式提供給客戶端。測、智能小區(qū)管理、網(wǎng)絡(luò)自動抄表等技術(shù)的應(yīng)用與發(fā)展提供技術(shù)保證。多家公司已獲許可使用iReady的硬件加速TCP/IP堆棧技術(shù),礎(chǔ)上推出IC芯片S7600A芯片,將TCP/IP協(xié)議棧用硬件方法予以實現(xiàn)。議,IP協(xié)議、ARP協(xié)議、UDP協(xié)議。

  

【正文】 以太幀的數(shù)據(jù)段相對偏移量。 //ARP 頭部定義 define ARP_HARDW_OFS ETH_DATA_OFS+0 //硬件類型 define ARP_PROT_OFS ETH_DATA_OFS+2 //協(xié)議類型 define ARP_HLEN_PLEN_OFS ETH_DATA_OFS+4 //硬件地址長度 define ARP_OPCODE_OFS ETH_DATA_OFS+6 //協(xié)議地址長度 define ARP_SENDER_HA_OFS ETH_DATA_OFS+8 //發(fā)送端硬件地址 define ARP_SENDER_IP_OFS ETH_DATA_OFS+14 //發(fā)送端 IP 地址 define ARP_TARGET_HA_OFS ETH_DATA_OFS+18 //目的硬件地址 define ARP_TARGET_IP_OFS ETH_DATA_OFS+24 //目的 IP 地址 在 ARP 協(xié)議模塊的設(shè)計中比較關(guān)鍵的一塊是 ARP 高速緩存的設(shè)計。在通用計算機系統(tǒng)中, ARP 高速緩存一般設(shè)計成雙向數(shù)據(jù)鏈的形式,這樣整個緩存可以方便的動態(tài)增減。 ICMP 協(xié)議的實現(xiàn) 我們這里要實現(xiàn) ICMP 協(xié)議,主要是為了響應(yīng)對方主機使用的 PING 命令發(fā)出的回顯請求,這主要是為對方提供一個測試本地的 Web 服務(wù)器是否可達的一個手段。本系統(tǒng)的 ICMP 只要求實現(xiàn)很簡單的功能,所以編程很簡單。如果收到的是ICMP 包則 IP 協(xié)議模塊會將之轉(zhuǎn)給 ICMP 模塊處理, ICMP 判斷如果是回顯請求包的話,則按要求構(gòu)造回顯應(yīng)答包,然后調(diào)用底層協(xié)議函數(shù)發(fā)送出去即可。下面是ICMP 包的定義: //ICMP definitions define ICMP_TYPE_CODE_OFS IP_DATA_OFS+0 //type of message define ICMP_CHKSUM_OFS IP_DATA_OFS+2 //check sum define ICMP_DATA_OFS IP_DATA_OFS+4 //data define ICMP_HEADER_SIZE 4 IP 協(xié)議的實現(xiàn) 針對嵌入式應(yīng)用的特點,本系統(tǒng)的 TCP/IP 協(xié)議棧的 IP 模塊不支持路由器對IP 模塊要求的功能,從而省去了 IP_Forward 程序的實現(xiàn)過程。該 IP 模塊也不支持多 IP 地址,也無需實現(xiàn) IP 包的分組與重裝,這樣 IP 模塊部分實現(xiàn)起來就比較簡單了。它主要由處理 IP輸入的 IP_Input 程序和處理 IP 輸出的 IP_Output兩部 分組成。 第 27 頁 IP_Input 是用來從網(wǎng)絡(luò)接口芯片接收到 IP 數(shù)據(jù)包后,首先驗證 IP 包的正確性,如果無誤則根據(jù) IP 包頭部的協(xié)議字段進行分發(fā),送到相應(yīng)的傳輸層協(xié)議進行處理。 NY收 到 I P 包驗 證 I P 包 正 確 性 ?是 否 U D P 包是 否 T C P 包是 否 I C M P 包 將 包 丟 棄退 出NNYYNY送 到 U D P 模 塊送 到 I C M P 模 塊送 到 T C P 模 塊 圖 IP_Input 的處理流程圖 IP_Input 中驗證 IP 包的正確性是要驗證 IP 的版本號是否為 IPv4 和 IP 包的長度是否不小于 IP 包的最小長度,如果不滿足則說明是無效數(shù)據(jù)包,應(yīng)該丟棄。 IP協(xié)議字段用于 IP 包分發(fā),定義如下: define PROT_ICMP 1 //ICMP 包 define PROT_TCP 6 //TCP 包 define PROT_UDP 17 //UDP 包 IP_Output 的工作是將上層協(xié)議送來的數(shù)據(jù)包加上 IP 頭部信息,選路并發(fā)送出去。這里說的 IP 選路是指主機選路而不是路由器的選路,發(fā)送 IP 包前查看發(fā)送的目的 IP 地址是否和本機處在同一個子網(wǎng)中,如果是則直接發(fā)送,否則需要將 IP 包發(fā)送到默認的路由器上。 IP數(shù)據(jù)包格式定義如下: //IPv4 layer definitions define IP_VER_IHL_TOS_OFS ETH_DATA_OFS+0 define IP_TOTAL_LENGTH_OFS ETH_DATA_OFS+2 define IP_IDENT_OFS ETH_DATA_OFS+4 第 28 頁 define IP_FLAGS_FRAG_OFS ETH_DATA_OFS+6 define IP_TTL_PROT_OFS ETH_DATA_OFS+8 define IP_HEAD_CHKSUM_OFS ETH_DATA_OFS+10 define IP_SOURCE_OFS ETH_DATA_OFS+12 define IP_DESTINATION_OFS ETH_DATA_OFS+1 define IP_DATA_OFS ETH_DATA_OFS+20 define IP_HEADER_SIZE 20 UDP 協(xié)議的實現(xiàn) UDP 協(xié)議的實現(xiàn)比較簡單。 UDP 協(xié)議模塊把上層應(yīng)用程序傳來的數(shù)據(jù)包加上源端口和目的端口號,計算校驗和并填充,然后發(fā)給 IP 模塊即可。 DP 如果接收到 IP 模塊送來的數(shù)據(jù)包只需進行校驗,無誤后根據(jù)端口號送給上層應(yīng)用程序即可。這里邊比較重要的一塊就是 UDP 校驗和的計算問題。 該算法稱為網(wǎng)際校驗和算法,它是把被校驗的數(shù)據(jù)每 16 位進行累加,然后取反,若數(shù)據(jù)字節(jié)長度為奇數(shù),則數(shù)據(jù)尾部補一個字節(jié)的 0 湊成偶數(shù)。此算法適用于 Ipv ICMPv IMPV ICMPv UDP 和 TCP 校驗和,更詳細的信息可以參考 RFC1071。下面是 Cheek sum 的程序 : unsigned int Calc Cheek sum(void*add, unsigned int count) { register long sum=0。 while(count1) //以 16bit 為單位求累加和 {sum += * (unsigned short) add++。 Count=2。 } /*如果整個 UDP 首部為奇數(shù)字節(jié),則加上剩余的字節(jié) */ If’(count 0) Sum+=* (unsigned char*)add 。/*如果為 32 位,則壓縮為 16位的和 */ While (sum16) sum=(sum amp。 Oxffff)+(sum16)。 return sum。 //取反 } 需要說明的是該算法是以 UDP 的偽首部 (包括校驗和字段 )和數(shù)據(jù)區(qū)為對象進行的,這和 IP 的校驗不同。如果是 UDP 的發(fā)送程序,則先將首部校驗和字段置為 O,求出校驗和后賦給校驗和字段;如果是 UDP 的接收程序,則由于校驗和字段是發(fā)送端計算后填充好的,所以如果傳輸無誤的話執(zhí)行該算法后應(yīng)得 0,如果不為 0 則說明傳輸有誤。 TCP 協(xié)議的實現(xiàn) TCP協(xié)議的實現(xiàn)是整個 TCP/IP協(xié)議中最復(fù)雜的一個。 TCP協(xié)議是面向連接的、端對端的可靠通信協(xié)議。 TCP 采取了很多機制來保證它的可靠性,比如 TCP 連接 第 29 頁 的建立與關(guān)閉機制、超時重傳機制、數(shù)據(jù)包確認機制、流量控制機制等等。在嵌入式系統(tǒng)中實現(xiàn) TCP 協(xié)議所要做的就是實現(xiàn)這些機制,當(dāng)然要在不影響協(xié)議功能的前提下適當(dāng)?shù)淖鲆幌潞喕? TCP/IP 協(xié)議中 TCP 連接主動打開的函數(shù)是 TCP Active Open,說明如下: Void TCP Active Open (void) { if(TCP State Ma Chine==CLOSED) //如果是在 TCP 的關(guān)閉狀態(tài) { TCP Flags 1=TCP_ACTIVE_OPEN。 //設(shè)置 TCP 狀態(tài)標(biāo)志 TCP Flags amp。=~IP_ADDR_RESOLVED。 //IP 地址解析標(biāo)志 Prepare ARP_REQUEST()。 //廣播方式發(fā) A即請求 Last Frame Sent=ARP_REQUEST。 //最后發(fā)送幀的類型 TCP Start Retry Timer()。 //啟動超時重發(fā)定時器 Seoket status=SOCK_ACTIVE。 //更新 Seoket status 狀態(tài)量 } } 聯(lián)機調(diào)試 給硬件系統(tǒng)上電,用雙絞線連接 PC 機進行聯(lián)機調(diào)試。由于網(wǎng)絡(luò)底層驅(qū)動在各層協(xié)議測試的過程中就可以檢測出底層協(xié)議是否有誤,因此,僅需對 ARP、 IP、ICMP、 UDP 進行測試。 ARP 的測試 發(fā)送 ARP 請求報文,如果收到應(yīng)答報文,則說明 ARP 協(xié)議模塊在功能上是正確的 。最簡單的測試方法是發(fā)送一個 ICMP 報文,即在 Ping 試驗板上的 IP 地址,由于 ARP 協(xié)議是介于鏈路層與網(wǎng)絡(luò)層之間,更趨于底層,所以將先引起 ARP 報文。測試步驟如下:打開 Windows 命令窗口,在窗口中輸入 arpa命令,顯示如圖 所示。 圖 PC 端顯示響應(yīng) ARP 協(xié)議 由所輸入命令可以得到模塊系統(tǒng)的 IP 地址和硬件物理地址,顯示結(jié)果如圖 第 30 頁 所示。 ICMP 的測試 用 Ping 命令向模塊系統(tǒng)發(fā)出 ICMP 報文,用于引起對模塊系統(tǒng)請求報文的發(fā)送,模塊系統(tǒng)的 IP 設(shè)為 ,顯示結(jié)果如圖 所示。 圖 PC Ping 模塊系統(tǒng)的響應(yīng) 由于 ICMP 是封裝在 IP 報文中作為 IP 數(shù)據(jù)發(fā)送的,因此向協(xié)議發(fā)送 ICMP查詢報文時,如果能成功收到 ICMP 的應(yīng)答報文,則 IP 協(xié)議在功能上是正確的。采用 Ping 目標(biāo)板上的 IP 地址, Ping 命令將引起回送請求報文。如果 Ping 命令有響應(yīng),則說明己收到了 ICMP 回送請求報文。 UDP 的測試 UDP 協(xié)議測試。課題中 UDP 支持 TCP/UDP Socket 調(diào)試工具,在接收到 UDP數(shù)據(jù)報并判斷其正確之后,就將接到的數(shù)據(jù)原封不動按照 UDP 數(shù)據(jù)報格式打包,然后回送給原發(fā)送端。 測試時,首先要將 PC與開發(fā)板連接,在 Socket 調(diào)試工具界面上點擊“發(fā)送文件”下的“連接”命令驗證,輸入對方的 IP 地址、對方的端口號,然后點擊“確認”,運行結(jié)果如下圖 所示。 第 31 頁 圖 PC 機與開發(fā)板連接圖 連接成功后,在 Socket 調(diào)試工具界面上點擊“發(fā)送文件”下的“發(fā)送”命令,將準(zhǔn)備好的測試文件發(fā)送到開發(fā)板,并利用 Sniffer 軟件進行監(jiān)控,監(jiān)測結(jié)果如圖 所示。 圖 Sniffer 監(jiān)測結(jié)果 聯(lián)機調(diào)試結(jié)果:調(diào)試中,首先在 PC 機 DOS 環(huán)境下輸 入 ARP A 命令用 PC機給模塊系統(tǒng)發(fā)送 ARP 請求報文,模塊系統(tǒng)收到發(fā)送報文,再向 PC機發(fā)送應(yīng)答報文,得到模塊系統(tǒng)的 IP 地址和硬件物理地址,與事先設(shè)置的一樣,得到 ARP 協(xié)議的 第 32 頁 驗證。繼續(xù)用 PING 命令給模塊系統(tǒng)發(fā)送 ICMP 的應(yīng)答報文,結(jié)果顯示與模塊系統(tǒng)IP 連接正常,且數(shù)據(jù)沒有丟失, IP 和 ICMP 協(xié)議得以驗證。用 TCP/UDP 調(diào)試軟件向模塊系統(tǒng) IP發(fā)送數(shù)據(jù),接收窗口正常顯示輸入數(shù)據(jù), TCP/UDP 協(xié)議得以驗證。
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1