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

正文內(nèi)容

基于tcp-ip協(xié)議的嵌入式系統(tǒng)設(shè)計(jì)(編輯修改稿)

2025-06-10 23:57 本頁面
 

【文章內(nèi)容簡介】 該位置1,則表示這個IP報文禁止分段,該位置0,則表示如果需要分段,則將這個IP報文分段,如果必須對這個IP報文分段,而該位置1,則丟棄這個IP報文;第3位標(biāo)識這個分段是否是最后一個分段,該位置0表示這個分段是最后一個分段;(7) 分段偏移量:標(biāo)識這個分段在整個IP報文中的位置,用于保證目標(biāo)主機(jī)能夠?qū)儆谕粋€IP報文的分段重組起來;(8) 生存時間:IP報文最多可以經(jīng)過多少個路由器,標(biāo)識IP報文最長生存時間,IP報文每經(jīng)過一個路由器,生存時間減1;(9) 協(xié)議:標(biāo)識IP報文載荷中上一層的協(xié)議類型;(10)首部校驗(yàn)和:IP報文首部CRC校驗(yàn)和;(11)源IP地址:發(fā)送主機(jī)的IP地址;(12)目的IP地址:目標(biāo)主機(jī)的IP地址;(13)選項(xiàng):不是一個必須的字段,略;(14)填充:如果有選項(xiàng)字段,填充字段保證IP報文首部以4字節(jié)對齊;因?yàn)楸驹O(shè)計(jì)中的數(shù)據(jù)包中包含的只是一些簡單控制命令和一些簡單數(shù)據(jù)并沒有大量的塊數(shù)據(jù)的傳送,因此不存在數(shù)據(jù)包分片、重組處理,所以IP處理函數(shù)的實(shí)現(xiàn)比較簡單,首先拆包然后判斷是哪種協(xié)議類型,如果是UDP數(shù)據(jù)包,則交給Process_Udp( );函數(shù)處理,如果是ICMP數(shù)據(jù)包,則交給Ping_Answer( )及Ping_Echo( )函數(shù)處理。由于TCP處理過程需要進(jìn)行三次握手信號的連接,它是一個有連接的數(shù)據(jù)傳輸過程,里面涉及到復(fù)雜的狀態(tài)轉(zhuǎn)換過程,因此代碼量比較大,這對芯片的內(nèi)存要求也比較高,而且在工業(yè)控制場合,更需要注意考慮的是數(shù)據(jù)信號、控制信號的及時性而不是可靠性,而且UDP協(xié)議雖不是可靠的傳輸協(xié)議,但也被證明正確率很高,因此本設(shè)計(jì)只能夠使用到UDP協(xié)議,作為傳輸層協(xié)議,而沒有實(shí)現(xiàn)TCP協(xié)議。 ICMP協(xié)議的設(shè)計(jì)與實(shí)現(xiàn)ICMP協(xié)議[12](Internet Contro Message Protoeol)是網(wǎng)絡(luò)層一個不可分割的組成部分。ICMP協(xié)議用于傳輸差錯報文和控制報文以及其它一些網(wǎng)絡(luò)信息,對通信過程中產(chǎn)生的問題提供信息反饋。目前,差錯報文的比重已經(jīng)大大低于控制報文的比重。ICMP協(xié)議最基本的功能是提供差錯報告,但是ICMP協(xié)議只給出了建議操作,并沒有嚴(yán)格規(guī)定具體操作。ICMP差錯報告并不享受特別的優(yōu)先權(quán)和可靠性,作為一般數(shù)據(jù)進(jìn)行傳輸,因此,ICMP差錯報告完全可能丟失或者損壞;另外,ICMP差錯報文中的數(shù)據(jù)域在包含故障報文的頭部之外,還要包含故障報文中的前64比特數(shù)據(jù),這樣可以使接收端更加準(zhǔn)確的確定故障。ICMP差錯報告包括:信宿不可達(dá)、超時等。ICMP控制報文包括:源抑制報文和重定向報文。其中,源抑制報文主要用于處理網(wǎng)絡(luò)擁塞,當(dāng)IP報文到達(dá)速度太快,無法及時處理時,目的主機(jī)或中繼主機(jī)就會發(fā)送一個ICMP源抑制報文(ICMP Source Quench Message)給信源主機(jī),通知信源主機(jī)暫停發(fā)送IP報文;重定向報文主要用于路徑控制。與ICMP差錯報文、ICMP控制報文單向傳輸不同,ICMP查詢報文是雙向傳輸?shù)?,主要用于獲取某些有用的信息,這樣可以更加方便地進(jìn)行故障診斷和網(wǎng)絡(luò)控制。常用的ICMP查詢報文包括:回送請求(Eeho Request),回送應(yīng)答(Eeho Reply)等?;厮驼埱蠛突厮蛻?yīng)答報文主要用于檢查網(wǎng)絡(luò)間的物理連接是否己經(jīng)建立。網(wǎng)絡(luò)管理程序,例如:簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)就是使用回送請求和回送應(yīng)答報文來監(jiān)控網(wǎng)絡(luò)故障,回送請求和回送應(yīng)答報文也被用來跟蹤路由。ICMP報文格式如圖36所示:類型代碼校驗(yàn)和標(biāo)識序列號數(shù)據(jù)圖36 ICMP報文格式(1) 類型:指出ICPM報文的類型,8表示回應(yīng)請求報文,0表示回應(yīng)應(yīng)答報文;(2) 代碼:提供ICMP報文類型的進(jìn)一步信息。本設(shè)計(jì)中的ICMP協(xié)議是為了實(shí)現(xiàn)ping程序。因?yàn)閯傞_始連接網(wǎng)絡(luò)是需要測試網(wǎng)絡(luò)是否連通,用發(fā)送數(shù)據(jù)包測試的方法,不太可能測試正確。而ping程序就是最基本的測試網(wǎng)絡(luò)連通的協(xié)議。用Ping_Request( )函數(shù)來發(fā)送ping請求報文,測試對方主機(jī)的可達(dá)性;Ping_Answer( )函數(shù)是ping應(yīng)答,與ping請求一起用來測試一個主機(jī)的可達(dá)性,ping的回答是將ping請求報文的源物理地址和目的物理地址互換,源IP地址和目的IP地址互換,將ICMP操作類型字段換為回答,并且將ping請求報文中的選項(xiàng)數(shù)據(jù)(32字節(jié))原封不動的發(fā)回;Ping_Echo( )是接收到ping應(yīng)答數(shù)據(jù)后,在本地機(jī)通過串口回顯數(shù)據(jù);process_Ping( )是對ping數(shù)據(jù)包的處理。Ping_Echo( )的代碼如下:void Ping_Echo( ){union Ip_Address_Type ip。[0] = [0]。[1] = [1]。Printf_String( \r\nReply From IP=)。Printf_IPStr(ip)。Printf_String( Bytes=32 )。Printf_String(TTL=)。Printf_Hex()。}Process_Ping( )的關(guān)鍵代碼如下: …… if((Ping_IP_TTL0)||(Gateway_IP_TTL0)) //ARP請求發(fā)送后,ARP回答會對請求分組中的IP地址進(jìn)//解析,并設(shè)置全局變量的值。 { //表示IP地址已經(jīng)解析 //Printf_String(\r\nSend Ping Request...)。 Ping_Request( )。 //發(fā)送PING請求 }else { //IP地址還沒有解析 //Printf_String(\r\nSend ARP Request...\r\n )。 Arp_Request()。 //發(fā)送ARP請求,對IP地址進(jìn)行解析 }if(==) //ping的是自己的ip地址 { Printf_String(\r\nReply From IP=)。 //顯示信息 Printf_IPStr(My_Ip_Address)。 Printf_String( Bytes=32 )。Printf_String(TTL=10)?!? UDP協(xié)議的設(shè)計(jì)與實(shí)現(xiàn)UDP協(xié)議(User Datagram Protoeol)建立在IP協(xié)議之上,同TCP一樣,位于傳輸層。提供一種無連接的低延時的傳輸服務(wù)。UDP和TCP的主要區(qū)別在于可靠性。UDP不提供應(yīng)答、重新排序、超時重傳、流量控制等機(jī)制,也就是說,UDP不能保證UDP數(shù)據(jù)報正確的到達(dá)宿端?;赨DP的上層應(yīng)用程序在不可靠的網(wǎng)絡(luò)上必須自己解決可靠性,以確保數(shù)據(jù)傳輸?shù)陌踩?。但是,UDP簡單高效,適于廣播。UDP數(shù)據(jù)報格式如圖37所示:源端口號目的端口號UDP長度校驗(yàn)和數(shù)據(jù)圖37 UDP數(shù)據(jù)報格式(1) 源端口號:標(biāo)識UDP數(shù)據(jù)報的源端應(yīng)用程序。它和源端IP地址共同標(biāo)識UDP數(shù)據(jù)報的發(fā)送者。當(dāng)不需要返回數(shù)據(jù)時,該域置0;(2) 目的端口號:標(biāo)識UDP數(shù)據(jù)報的目的端應(yīng)用程序。它和目的端IP地址共同標(biāo)識UDP數(shù)據(jù)報的接收者;(3) UDP長度:以字節(jié)為單位計(jì)算整個UDP數(shù)據(jù)報的長度,最小值為8;(4) UDP校驗(yàn)和:這是一個可選字段。UDP協(xié)議作為傳輸層,直接與應(yīng)用層交互信息,應(yīng)用層的所有數(shù)據(jù)都包含在UDP數(shù)據(jù)包中。Process_Udp( )對UDP數(shù)據(jù)進(jìn)行處理,本設(shè)計(jì)中僅接收1025端口的數(shù)據(jù)包;Udp_Request( )用于發(fā)送UDP請求,直接帶有數(shù)據(jù)而無需建立連接;Process_Udp_Command( )用于處理UDP請求。Process_Udp( )的代碼如下:void Process_Udp( ){union Ip_Address_Type ip。uint ii。if(VerifyUdpCrc( ))if(==1025)//僅接收1025端口的數(shù)據(jù)包 { Printf_String(\r\nUDP: SourceIP=)。 [0] = [0]。 [1] = [1]。 Printf_IPStr(ip)。 Printf_String( DestIP=)。 [0] = [0]。 [1] = [1]。 Printf_IPStr(ip)。 Printf_String(\r\nUDP: DestPort=)。 Printf_PortStr()。 Printf_String( SourcePort=)。 Printf_PortStr()。 Printf_String( Length=)。 Printf_PortStr()。 Printf_String(\r\nUDP: Data=)。 for(ii=0。ii。ii++)//8 bytes udp head { Printf_Char([ii])。//udp數(shù)據(jù)包的數(shù) } }}第4章 RTL8019AS驅(qū)動程序的設(shè)計(jì)RTL8019AS芯片是由Realtek公司生產(chǎn),廣泛用于10M的ISA總線接口的集成以太網(wǎng)控制芯片。它與NE2000標(biāo)準(zhǔn)相兼容,支持即插即用方式,具有全雙工和三級電源控制特性。全雙工特性使信道傳輸速率從10Mbps提高到20Mbps,RTL8019AS內(nèi)部帶有16KBRAM緩沖區(qū),可以支持UTP(雙絞線)、AUI(粗纜以太網(wǎng)連接器)和BNC(細(xì)纜以太網(wǎng))接口[13]。 RTL8019AS主要特性RTL8019AS是通用的網(wǎng)絡(luò)接口芯片,具有16位的數(shù)據(jù)線接口和20位的地址線接口。RTLS019AS在其典型應(yīng)用中,可以在發(fā)送的物理幀上自動添加幀頭、幀起始定界符和校驗(yàn)和;同時RTL8019AS還具有曼切斯特編碼、沖突檢測和重發(fā)的功能,避免了在以太網(wǎng)CSMA/CD協(xié)議下由于信道內(nèi)容沖突而引起的性能下降。它可以與很少的外圍電路一起完成效據(jù)的發(fā)送和接收功能。Realtek公司生產(chǎn)的RTL8019AS以太網(wǎng)控制器以優(yōu)良的性能、低廉的價格得到了廣泛的應(yīng)用。其主要性能如下[14]:(1)適用于Ethernet11,10Bases,10BaseT; (2)支持8位、16位數(shù)據(jù)總線;(3)全雙工,收發(fā)可同時達(dá)到10Mbps速率,睡眠模式以降低功耗;(4)內(nèi)置16K的SRAM,用于收發(fā)緩沖,降低對主處理器的速度要求;(5)可連接同軸電纜和雙絞線,并可自動檢測所連接的介質(zhì);(6)100腳的TQFP封裝,縮小PCB尺寸。 RTL8019AS內(nèi)部結(jié)構(gòu)RTL8019AS由接收邏輯控制器、接收CRC校驗(yàn)、接收計(jì)數(shù)器、地址識別邏輯、FIFO邏輯隊(duì)列、發(fā)送邏輯控制器、發(fā)送CRC校驗(yàn)、內(nèi)部總線、I/O緩沖區(qū)等組成。每個模塊都能由相應(yīng)的寄存器加以控制。其組成原理框圖如圖41所示。按數(shù)據(jù)鏈路的不同,可以將RTL8019AS內(nèi)部劃分為遠(yuǎn)程DMA(remote DMA)通道和本地DMA(local DMA)通道兩個部分。本地DMA通道負(fù)責(zé)本地緩沖區(qū)和FIFO之間的數(shù)據(jù)傳輸:一方面實(shí)現(xiàn)兩者之間在發(fā)送和接收幀時,字節(jié)或字的數(shù)據(jù)傳輸;另一方面在發(fā)生發(fā)送幀碰撞時,可在處理器不介入的情況下自動重發(fā)。遠(yuǎn)程DMA通道負(fù)責(zé)本地緩沖區(qū)和處理器內(nèi)存之間的以字或字節(jié)方式下的數(shù)據(jù)傳輸。其功能模塊包括:接收解串功能模塊、CRC產(chǎn)生校驗(yàn)功能模塊、發(fā)送串行化功能模塊、地址識別功能模塊、FIFO和FIFO控制邏輯、協(xié)議邏輯陣列、DMA和緩沖控制邏輯等。當(dāng)單片機(jī)向網(wǎng)上發(fā)送數(shù)據(jù)時,先將一幀數(shù)據(jù)通過遠(yuǎn)程DMA通道送到RTL8019AS的發(fā)送緩沖區(qū),然后發(fā)出傳送命令,當(dāng)RTL8019AS發(fā)送完成一幀數(shù)據(jù)后,再發(fā)送另外一幀數(shù)據(jù)。RTL8019AS接收到的數(shù)據(jù)通過MAC比較、CRC校驗(yàn)后,由FIFO存到接收FIFO緩沖區(qū),收滿一幀后,以中斷或者寄存器志的方式通知處理器。FIFO邏輯對收發(fā)數(shù)據(jù)作16字節(jié)的緩沖,以減少對本地DMA的請求[15]。RTL8019AS內(nèi)部有兩塊RAM區(qū)。一塊16K字節(jié),地址為0x40000x7fff;另一塊32K字節(jié),地址為0x00000x001f。RAM按頁存儲,每256字節(jié)為一頁。本設(shè)計(jì)將RAM的前6頁存儲區(qū)作為發(fā)送緩沖區(qū);后58頁存儲區(qū)為接收緩沖區(qū)。要接收和發(fā)送數(shù)據(jù)包就必須通過DMA讀寫RTL8019AS內(nèi)部的16KRAM。它實(shí)際上是雙口RAM,是指有兩套總線連接到該RAM,一套總線是RTL8019AS讀寫該RAM,即本地DMA;另一套總線是單片機(jī)讀寫該RAM,即遠(yuǎn)程DMA。RTL8019AS具有32個輸入輸出地址,地址偏移量為00H1FH。其中00H0FH共16個地址,為寄存器地址。遠(yuǎn)程DMA地址包括10H17H,都可以用來做遠(yuǎn)程DMA端口,只要用其中一個就可以了。復(fù)位端口包括18H1FH 8個地址,功能為RTL8019AS
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1