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

正文內(nèi)容

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

2025-09-29 12:02本頁面

【導(dǎo)讀】隨著信息技術(shù)的飛速發(fā)展,Inter應(yīng)用己經(jīng)深入到生活的方方面面。嵌入式系統(tǒng)己經(jīng)廣泛地滲透到航空、汽車電子、工業(yè)生產(chǎn)、通。信、消費(fèi)電子以及人們?nèi)粘I畹姆椒矫婷?。甚為流行,這表明互聯(lián)網(wǎng)應(yīng)用進(jìn)入嵌入式互聯(lián)網(wǎng)的時(shí)代己經(jīng)來臨。機(jī)工業(yè)中的地位及其網(wǎng)絡(luò)化問題,認(rèn)為下一代網(wǎng)絡(luò)設(shè)備中嵌入式設(shè)備將大大增加,互聯(lián)網(wǎng)上傳輸信息的70%將會(huì)來自小型嵌入式系統(tǒng)。成為嵌入式系統(tǒng)應(yīng)用的一個(gè)重要方向和必然結(jié)果。把嵌入式系統(tǒng)作為Web服務(wù)器與Inter相連接很適合于。訪問嵌入式Web服務(wù)器就可以直接監(jiān)控現(xiàn)場設(shè)備的運(yùn)行,提高生產(chǎn)效率和管理水平。的缺點(diǎn),同時(shí)也為嵌入式系統(tǒng)的遠(yuǎn)程應(yīng)用提供了一種人機(jī)可交互的方便的操作方式,從而使嵌入式MCU以WEB服務(wù)器的方式提供給客戶端。測、智能小區(qū)管理、網(wǎng)絡(luò)自動(dòng)抄表等技術(shù)的應(yīng)用與發(fā)展提供技術(shù)保證。多家公司已獲許可使用iReady的硬件加速TCP/IP堆棧技術(shù),礎(chǔ)上推出IC芯片S7600A芯片,將TCP/IP協(xié)議棧用硬件方法予以實(shí)現(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è)計(jì)中比較關(guān)鍵的一塊是 ARP 高速緩存的設(shè)計(jì)。在通用計(jì)算機(jī)系統(tǒng)中, ARP 高速緩存一般設(shè)計(jì)成雙向數(shù)據(jù)鏈的形式,這樣整個(gè)緩存可以方便的動(dòng)態(tài)增減。 ICMP 協(xié)議的 實(shí)現(xiàn) 我們這里要實(shí)現(xiàn) ICMP 協(xié)議,主要是為了響應(yīng)對方主機(jī)使用的 PING 命令發(fā)出的回顯請求,這主要是為對方提供一個(gè)測試本地的 Web 服務(wù)器是否可達(dá)的一個(gè)手段。本系統(tǒng)的 ICMP 只要求實(shí)現(xiàn)很簡單的功能,所以編程很簡單。如果收到的是ICMP 包則 IP 協(xié)議模塊會(huì)將之轉(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é)議的 實(shí)現(xiàn) 針對嵌入式應(yīng)用的特點(diǎn),本系統(tǒng)的 TCP/IP 協(xié)議棧的 IP模塊不支持路由器對IP 模塊要求的功能,從而省去了 IP_Forward 程序的實(shí)現(xiàn)過程。該 IP 模塊也不[鍵入文字 ] 第 28 頁 支持多 IP地址,也無需實(shí)現(xiàn) IP 包的分組與重裝,這樣 IP模塊部分實(shí)現(xiàn)起來就比較簡單了。它主要由處理 IP 輸入的 IP_Input 程序和處理 IP 輸出的 IP_Output兩部分組成。 IP_Input 是用來從網(wǎng)絡(luò)接口芯片接收到 IP 數(shù)據(jù)包后, 首先驗(yàn)證 IP 包的正確性,如果無誤則根據(jù) IP 包頭部的協(xié)議字段進(jìn)行分發(fā),送到相應(yīng)的傳輸層協(xié)議進(jìn)行處理。 NY收 到 I P 包驗(yàn) 證 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 中驗(yàn)證 IP 包的正確性是要驗(yàn)證 IP 的版本號(hào)是否為 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選路是指主機(jī)選路而不是路由器的選路,發(fā)送 IP包前查看發(fā)送的目的 IP 地址是否和本機(jī)處在同一個(gè)子網(wǎng)中,如果是則直接發(fā)送,否則需要將 IP 包發(fā)送到默認(rèn)的路由器上。 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é)議的 實(shí)現(xiàn) UDP 協(xié)議的實(shí)現(xiàn)比較簡單。 UDP 協(xié)議模塊把上層應(yīng)用程序傳來的數(shù)據(jù)包加上源端口和目的端口號(hào),計(jì)算校驗(yàn)和并填充,然后發(fā)給 IP 模塊即可。 DP如果接收到 IP 模塊送來的數(shù)據(jù)包只需進(jìn)行校驗(yàn),無誤后根據(jù)端口號(hào)送給上層應(yīng)用程序即可。這里邊比較重要的一塊就是 UDP 校驗(yàn)和的計(jì)算問題。 該算法稱為網(wǎng)際校驗(yàn)和算法,它是把被校驗(yàn)的數(shù)據(jù)每 16 位進(jìn)行累加,然后取反,若數(shù)據(jù)字節(jié)長度為奇數(shù),則數(shù)據(jù)尾部補(bǔ)一個(gè)字節(jié)的 0湊成偶數(shù)。此算法適用于 Ipv ICMPv IMPV ICMPv UDP 和 TCP 校驗(yàn)和,更詳細(xì)的信息可以參考 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。 } /*如果整個(gè) UDP 首部為奇數(shù)字節(jié),則加上剩余的字節(jié) */ If’( count0) Sum+=* (unsigned char*)add 。/*如果為 32位,則壓縮為 16 位的和 */ While (sum16) sum=(sum amp。 Oxffff)+(sum16)。 return sum。 //取反 } 需要說明的是該算法是以 UDP 的偽首部 (包括校驗(yàn)和字段 )和數(shù)據(jù)區(qū)為對象進(jìn)行的,這和 IP 的校驗(yàn)不同。如果是 UDP 的發(fā)送程序,則先將首部校驗(yàn)和字段置為 O,求出校驗(yàn)和后賦給校驗(yàn)和字段;如果是 UDP 的接收程序,則由于校驗(yàn)和字段是發(fā)送端計(jì)算后填充好的,所以如果傳輸無誤的話執(zhí)行該算法后應(yīng)得 0,如果不為 0則說明 傳輸有誤。 [鍵入文字 ] 第 30 頁 TCP 協(xié)議的 實(shí)現(xiàn) TCP協(xié)議的實(shí)現(xiàn)是整個(gè) TCP/IP協(xié)議中最復(fù)雜的一個(gè)。 TCP協(xié)議是面向連接的、端對端的可靠通信協(xié)議。 TCP 采取了很多機(jī)制來保證它的可靠性,比如 TCP 連接的建立與關(guān)閉機(jī)制、超時(shí)重傳機(jī)制、數(shù)據(jù)包確認(rèn)機(jī)制、流量控制機(jī)制等等。在嵌入式系統(tǒng)中實(shí)現(xiàn) TCP 協(xié)議所要做的就是實(shí)現(xiàn)這些機(jī)制,當(dāng)然要在不影響協(xié)議功能的前提下適當(dāng)?shù)淖鲆幌潞喕? TCP/IP 協(xié)議中 TCP 連接主動(dòng)打開的函數(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()。 //啟動(dòng)超時(shí)重發(fā)定時(shí)器 Seoket status=SOCK_ACTIVE。 //更新 Seoket status 狀態(tài)量 } } 聯(lián)機(jī)調(diào)試 給硬件系統(tǒng)上電,用雙絞線連接 PC 機(jī)進(jìn)行聯(lián)機(jī)調(diào)試。由于網(wǎng)絡(luò)底層驅(qū)動(dòng)在各層協(xié)議測試的過程中就可以檢測出底層協(xié)議是否有誤,因此,僅需對 ARP、 IP、ICMP、 UDP 進(jìn)行測試。 ARP 的測試 發(fā)送 ARP 請求報(bào)文,如果收到應(yīng)答報(bào)文,則說明 ARP 協(xié)議模塊在功能上是正確的。最簡單的測試方法是發(fā)送一 個(gè) ICMP 報(bào)文,即在 Ping 試驗(yàn)板上的 IP 地址,由于 ARP協(xié)議是介于鏈路層與網(wǎng)絡(luò)層之間,更趨于底層,所以將先引起 ARP報(bào)文。測試步驟如下:打開 Windows 命令窗口,在窗口中輸入 arpa命令,顯示如圖 所示。 [鍵入文字 ] 第 31 頁 圖 PC 端顯示響應(yīng) ARP 協(xié)議 由所輸入命令可以得到模塊系統(tǒng)的 IP 地址和硬件物理地址,顯示結(jié)果如圖 所示。 ICMP 的測試 用 Ping 命令向模塊系統(tǒng)發(fā)出 ICMP 報(bào)文,用于引起對模塊系統(tǒng)請求報(bào)文的發(fā)送,模塊系統(tǒng)的 IP 設(shè)為 ,顯示結(jié)果如圖 所示。 圖 PC Ping 模塊系統(tǒng)的響應(yīng) 由于 ICMP 是封裝在 IP 報(bào)文中作為 IP 數(shù)據(jù)發(fā)送的,因此向協(xié)議發(fā)送 ICMP查詢報(bào)文時(shí),如果能成功收到 ICMP 的應(yīng)答報(bào)文,則 IP協(xié)議在功能上是正確的。采用 Ping 目標(biāo)板上的 IP地址, Ping 命令將引起回送請求報(bào)文。如果 Ping 命令有響應(yīng),則說明己收到了 ICMP 回送請求報(bào)文。 UDP 的測試 UDP 協(xié)議測試。課題中 UDP 支持 TCP/UDP Socket 調(diào)試工具,在接收到 UDP數(shù)據(jù)報(bào)并判斷其正確之后,就將接到的數(shù)據(jù)原封不動(dòng)按照 UDP 數(shù)據(jù)報(bào)格式打包,然后回送給原 發(fā)送端。 測試時(shí),首先要將 PC 與開發(fā)板連接,在 Socket 調(diào)試工具界面上點(diǎn)擊“發(fā)送文件”下的“連接”命令驗(yàn)證,輸入對方的 IP 地址、對方的端口號(hào),然后點(diǎn)擊[鍵入文字 ] 第 32 頁 “確認(rèn)”,運(yùn)行結(jié)果如下圖 所示。 圖 PC 機(jī)與開發(fā)板連接圖 連接成功后,在 Socket 調(diào)試工具界面上點(diǎn)擊“發(fā)送文件”下的“發(fā)送”命令,將準(zhǔn)備好的測試文件發(fā)送到開發(fā)板,并利用 Sniffer 軟件進(jìn)行監(jiān)控,監(jiān)測結(jié)果如圖 所示。 圖 Sniffer 監(jiān)測結(jié)果 聯(lián)機(jī)調(diào)試結(jié)果:調(diào)試 中, 首先在 PC 機(jī) DOS 環(huán)境下輸入 ARP A命令用 PC 機(jī)給 模塊系統(tǒng)發(fā)送 ARP 請求報(bào)文,模塊系統(tǒng)收到發(fā)送報(bào)文,再向 PC 機(jī)發(fā)送應(yīng)答報(bào)文,[鍵入文字 ] 第 33 頁 得到模塊系統(tǒng)的 IP 地址和硬件物理地址,與事先設(shè)置的一樣,得到 ARP 協(xié)議的驗(yàn)證 。 繼續(xù)用 PING 命令給模塊系統(tǒng)發(fā)送 ICMP 的應(yīng)答報(bào)文,結(jié)果顯示與模塊系統(tǒng)IP連接正常,且數(shù)據(jù)沒有丟失, IP 和 ICMP 協(xié)議得以驗(yàn)證。用 TCP/UDP 調(diào)試軟件向模塊系統(tǒng) IP 發(fā)送數(shù)據(jù),接收窗口正常顯示輸入數(shù)據(jù), TCP/UDP 協(xié)議得以驗(yàn)證。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1