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

正文內(nèi)容

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

2025-09-29 12:02本頁面

【導(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 模塊也不[鍵入文字 ] 第 28 頁 支持多 IP地址,也無需實現(xiàn) IP 包的分組與重裝,這樣 IP模塊部分實現(xiàn)起來就比較簡單了。它主要由處理 IP 輸入的 IP_Input 程序和處理 IP 輸出的 IP_Output兩部分組成。 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 [鍵入文字 ] 第 29 頁 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 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’( count0) 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則說明 傳輸有誤。 [鍵入文字 ] 第 30 頁 TCP 協(xié)議的 實現(xiàn) TCP協(xié)議的實現(xiàn)是整個 TCP/IP協(xié)議中最復(fù)雜的一個。 TCP協(xié)議是面向連接的、端對端的可靠通信協(xié)議。 TCP 采取了很多機制來保證它的可靠性,比如 TCP 連接的建立與關(guān)閉機制、超時重傳機制、數(shù)據(jù)包確認機制、流量控制機制等等。在嵌入式系統(tǒng)中實現(xiàn) TCP 協(xié)議所要做的就是實現(xiàn)這些機制,當然要在不影響協(xié)議功能的前提下適當?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)標志 TCP Flags amp。=~IP_ADDR_RESOLVED。 //IP 地址解析標志 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命令,顯示如圖 所示。 [鍵入文字 ] 第 31 頁 圖 PC 端顯示響應(yīng) ARP 協(xié)議 由所輸入命令可以得到模塊系統(tǒng)的 IP 地址和硬件物理地址,顯示結(jié)果如圖 所示。 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 目標板上的 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 地址、對方的端口號,然后點擊[鍵入文字 ] 第 32 頁 “確認”,運行結(jié)果如下圖 所示。 圖 PC 機與開發(fā)板連接圖 連接成功后,在 Socket 調(diào)試工具界面上點擊“發(fā)送文件”下的“發(fā)送”命令,將準備好的測試文件發(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)答報文,[鍵入文字 ] 第 33 頁 得到模塊系統(tǒng)的 IP 地址和硬件物理地址,與事先設(shè)置的一樣,得到 ARP 協(xié)議的驗證 。 繼續(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