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

正文內(nèi)容

基于單片機(jī)以太網(wǎng)通信模塊的軟件設(shè)計(jì)-預(yù)覽頁

2025-11-08 12:02 上一頁面

下一頁面
 

【正文】 部 32 位目的 IP 地址 0 8 位協(xié)議 16 位 UDP 長度 16 位源端口號(hào) 16 位目的端口號(hào) 16 位 UDP 長度 16 位 UDP 效驗(yàn)和 數(shù)據(jù) 填充字節(jié)( 0) 圖 UDP 首部格式 UDP 首部各字段的含義: ◆ 源、目的端口號(hào):端口號(hào)是用來區(qū)分同樣使用 UDP 協(xié)議的不同發(fā)送進(jìn)程和接收進(jìn)程的。首部的數(shù)據(jù)格式如下圖 所示,如果不計(jì)任選字段,它通常是 20個(gè)字節(jié)。序號(hào)是 32bit 的無符號(hào)數(shù),序號(hào)計(jì)滿后回繞到 0開始計(jì)數(shù)。 ◆ 今首部長度:該字段給出 TCP 首部中 32bit 字的數(shù)目。 3) PSH 接收方應(yīng)該盡快將這個(gè)報(bào)文段交給應(yīng)用層。 ◆ 窗口大?。涸撟侄?TCP 的滑動(dòng)窗口協(xié)議中用到。 TCP 的緊急方式是發(fā)送端向另一端發(fā)送緊急數(shù)據(jù)的一種方式。 由于 HTTP 協(xié)議是基于請求 /響應(yīng)模式的 (相當(dāng)于客戶機(jī) /服務(wù)器模式 )。驅(qū)動(dòng)程序封裝了網(wǎng)絡(luò)接口芯片的底層操作,為以后協(xié)議棧程序的編寫帶來了很大的方便。 D15 D0 0000H 001FH 4000H 7FFFH 8000H C000H 圖 RTL8019AS 的內(nèi)部 RAM 結(jié)構(gòu)圖 RTL8019AS 有兩塊 RAM,一塊 16k 字節(jié)的 RAM 的地址為 0x4000~ 0x7fff,一塊32 字節(jié)的 RAM 的地址為 0x0000~ 0x00lf。整個(gè) RAM 空間的利用情況如表 所示: PROM ALIASED PROM 8K*16 BUFFER RAM ALIASED PROM ALIASED BUFFER RAM [鍵入文字 ] 第 14 頁 表 RTL8019AS 內(nèi)部 RAM 的利用情況 頁碼 地主范圍 附注 0 0x00000x00ff 可以使用 0x010x3F 0x01000x3fff 空,不能使用 0x400x7F 0x40000x7fff 可以使用 0x800xFF 0x80000xffff 跟 0x00000x7fff 的內(nèi)容是一樣的(不要使用它) 其中,第 0 頁的內(nèi)存又叫 Prom,是 Ne2020 兼容的網(wǎng)絡(luò)接口芯片都有的。我們一般使用 8 位的數(shù)據(jù)總線,一次傳輸一個(gè)字節(jié),而16 位寬度的數(shù)據(jù)總線是一次傳輸 2 個(gè)字節(jié),適合使用 16位的單片機(jī)或 DSP 作為處理器。但是本地的 物理地址最終是由 RTL8019AS 中的寄存器 MARO, MARI,MAR2, MAR3, MAR4, MAR5 決定,而不是 93C46,也不是 prom。在本課題中,我雖然預(yù)留了 EEPROM(93C46)的位置,但為了節(jié)省資源沒有使用,而是將本地的物理地址放在了 RTL8019AS 的驅(qū)動(dòng)程序中,在其初始化的 時(shí)候予以配置。 圖 RTL8019AS 內(nèi)部 RAM 的總線仲裁邏輯 所謂 16kB 的雙端口 RAM 就是說有兩套總線連結(jié)到該 RAM,一套總線 A是網(wǎng)絡(luò)接口芯片的本地總線讀寫 16kB 的雙端口 raln,另一套總線 B 是主處理器用來讀寫這16k 雙端口 RAM 的。其中的地址總線沒有畫出[鍵入文字 ] 第 16 頁 來,只畫了數(shù)據(jù)總線 。 2.高優(yōu)先級(jí)的 Local DMA 可以中斷 Remote DMA,而 Remote DMA 不能中斷 Local DMA。 在本課題中,主處理器用的是單片機(jī),單片機(jī)的總線要比 RTL8019AS 的 DMA 總線慢很多。對 RTL8019AS的復(fù)位端口 (1FH)的讀或?qū)懚紝?fù)位 RTL8019AS,RTL8019AS 內(nèi)部將執(zhí)行復(fù)位過程,讀寫是隨意的。 [鍵入文字 ] 第 17 頁 5.設(shè)置接收狀態(tài)寄存器 RCR(0CH)為 1FH。 8.設(shè)置 RTL8019AS 的物理地址寄存器,把 PAR0(0lH)PARS(06H)設(shè)置為合適的物理地址。 12.清除中斷狀態(tài)寄存器 ISR(07H)為 OFFH。 驅(qū)動(dòng)程序提供給上層協(xié)議的復(fù)位及初始化函數(shù)是 Init8019( )?;蛘咭部梢圆皇褂媚敲炊嗟木彌_區(qū),比如只用 32 頁來作為緩沖區(qū),前面的 6 頁用來發(fā)送,接下來的 26 頁用來接收,而把空出來的 32 頁給單片機(jī)使用,用來存儲(chǔ)別的數(shù)據(jù)。 BNIW 是讀指針,指向用戶已經(jīng)讀走的頁。第二個(gè)字節(jié)表示下一個(gè)包的存放頁地址,讀取該數(shù)據(jù)包后要根據(jù)該值更新 BNRY 寄存[鍵入文字 ] 第 19 頁 器。 對于數(shù)據(jù)包的接收,驅(qū)動(dòng)程序提供給上層協(xié)議的接口函數(shù)有兩個(gè)。 [鍵入文字 ] 第 20 頁 8 0 1 9 收 到 數(shù) 據(jù) 包 ? 已由 P a c k e t A v a l a i b l e函 數(shù) 判 斷設(shè) 置 R S A R 1 = B N R Y + 1 ,R S A R 0 = 0 , R B A R 1 = 0 ,R B C R 0 = 0 4 H , 從 數(shù) 據(jù) 端 口讀 取 前 4 個(gè) 字 節(jié)包 正 確 ?據(jù) R e c e i v e B y t e C o u n t的 值 修 改 計(jì) 數(shù) 器 R B C R 1 ,R B C R 0 寄 存 器 讀 取 整 個(gè) 數(shù)據(jù) 包 ( 含 C R C )據(jù) N e x t P a c k e t P o i n t e r 修 改 B N R Y寄 存 器 的 值返 回 包 大 小函 數(shù) 返 回返 回 0NY 圖 數(shù)據(jù)包接收流程 在讀取數(shù)據(jù)包的時(shí)候可以根據(jù)編程的需要,讀出包末尾的 4 字節(jié) CRC 校驗(yàn)碼或者不讀出,而直接廢棄掉。發(fā)送的過程分兩步,首先將數(shù)據(jù)從系統(tǒng)內(nèi)存通過Remote DMA 傳到 RTL8019AS 的發(fā)送存儲(chǔ)區(qū),然后進(jìn)行 Local DMA 將數(shù)據(jù)傳到 FIFO 并發(fā)送出去,其流程如下。 TCP/IP 協(xié)議是一個(gè)由許多協(xié)議組成的協(xié)議族, TCP/IP 協(xié)議具有很強(qiáng)的靈活性、可擴(kuò)展性和適應(yīng)性,可以滿足各種網(wǎng)絡(luò)環(huán)境下的不同需求。 ◆ IP 協(xié)議: IP 協(xié)議是 TCP/IP 協(xié)議的基礎(chǔ)。 ◆ UDP 協(xié)議: UDP 協(xié)議提供不可靠的快速連接。 ◆ TCP 協(xié)議: TCP 協(xié)議提供一種可靠的數(shù)據(jù)通訊。 TCP/IP 參考模型 精簡 TCP/IP 協(xié)議結(jié)構(gòu) [鍵入文字 ] 第 23 頁 應(yīng) 用 層運(yùn) 輸 層I P 層數(shù) 據(jù) 鏈 路 層H T T P 協(xié) 議 ( W e b S e r v e r )S o c k e t A P IS t a c k T a s k 管 理 模塊T C P 協(xié) 議 U D P 協(xié) 議I C M P 協(xié) 議L L C + M A C 接 口 層A R P 協(xié) 議I P 協(xié) 議 圖 精簡 TCP/IP 協(xié)議結(jié)構(gòu)與 TCP/IP 參考模型的對比 從圖中可以看出, TCP/IP 協(xié)議中各個(gè)模塊分工明確,分別完 成各自的功能,所以在協(xié)議編程時(shí)可以有一個(gè)清晰的思路。在協(xié)議棧軟件的設(shè)計(jì)中,在縱向?qū)用嫔县灤┦冀K的有兩條主線:數(shù)據(jù)包的接收與協(xié)議解包過程,數(shù)據(jù)的協(xié)議打包與發(fā)送 過程。這些修改可以動(dòng)態(tài)的進(jìn)行,就是在協(xié)議運(yùn)行的過程中進(jìn)行動(dòng)態(tài)的設(shè)置。因?yàn)槲覀冊谙驅(qū)Ψ街鳈C(jī)發(fā)送數(shù)據(jù)的時(shí)候,知道對方的 IP 地址,但可能并不知道其以太網(wǎng)物理地址,而要想發(fā)送基于以太網(wǎng)的 IP 包就必須知道目的物理地址,這個(gè)任務(wù)就是由 ARP協(xié)議來完成的。如果在規(guī)定的時(shí)間內(nèi)收到對方的 ARP 應(yīng)答包的話,如果目的 IP地址跟本機(jī) IP 地址一致,則取出 ARP 應(yīng)答包的源物理地址填充到,等待發(fā)送包的目的物理地址字段。 //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ì)。如果收到的是ICMP 包則 IP 協(xié)議模塊會(huì)將之轉(zhuǎn)給 ICMP 模塊處理, ICMP 判斷如果是回顯請求包的話,則按要求構(gòu)造回顯應(yīng)答包,然后調(diào)用底層協(xié)議函數(shù)發(fā)送出去即可。 IP_Input 是用來從網(wǎng)絡(luò)接口芯片接收到 IP 數(shù)據(jù)包后, 首先驗(yàn)證 IP 包的正確性,如果無誤則根據(jù) IP 包頭部的協(xié)議字段進(jìn)行分發(fā),送到相應(yīng)的傳輸層協(xié)議進(jì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)比較簡單。 該算法稱為網(wǎng)際校驗(yàn)和算法,它是把被校驗(yàn)的數(shù)據(jù)每 16 位進(jìn)行累加,然后取反,若數(shù)據(jù)字節(jié)長度為奇數(shù),則數(shù)據(jù)尾部補(bǔ)一個(gè)字節(jié)的 0湊成偶數(shù)。 Count=2。 return sum。 TCP協(xié)議是面向連接的、端對端的可靠通信協(xié)議。 //設(shè)置 TCP 狀態(tài)標(biāo)志 TCP Flags amp。 //最后發(fā)送幀的類型 TCP Start Retry Timer()。 ARP 的測試 發(fā)送 ARP 請求報(bào)文,如果收到應(yīng)答報(bào)文,則說明 ARP 協(xié)議模塊在功能上是正確的。 ICMP 的測試 用 Ping 命令向模塊系統(tǒng)發(fā)出 ICMP 報(bào)文,用于引起對模塊系統(tǒng)請求報(bào)文的發(fā)送,模塊系統(tǒng)的 IP 設(shè)為 ,顯示結(jié)果如圖 所示。 UDP 的測試 UDP 協(xié)議測試。 圖 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é)議的
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1