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

正文內(nèi)容

基于mcs-51單片機技術(shù)以太網(wǎng)接口設(shè)計-wenkub.com

2025-06-20 17:17 本頁面
   

【正文】 void main(void){/*省略部分代碼*//*設(shè)置TCP 超時處理時間和ARP 老化時間*/timer_set(amp。8.data為keil C的關(guān)鍵詞,代碼中所有出現(xiàn)data的地方(主要是參數(shù)、局部變量、結(jié)構(gòu)體成員)改為pucdata 或ucdata。(6)由于單片機是大端結(jié)構(gòu),因此宏定義需要修改define UIP_CONF_BYTE_ORDER UIP_BIG_ENDIAN(7)暫時不移植打印信息,先關(guān)閉define UIP_CONF_LOGGING 0(8)定義數(shù)據(jù)結(jié)構(gòu)類型typedef unsigned char u8_t。6.,用來設(shè)置本地的IP 地址、網(wǎng)關(guān)地址、MAC地址、全局緩沖區(qū)的大小、支持的最大連接數(shù)、偵聽數(shù)、ARP 表大小等。這樣,25次計數(shù)()滿了后可以調(diào)用TCP的定時處理程序。void etherdev_send(void):發(fā)包函數(shù)。這一步比較費點時間,不過好在大部分網(wǎng)卡芯片的驅(qū)動程序都有代碼借鑒或移植。 uIP協(xié)議棧提供的主要接口,為了減少函數(shù)調(diào)用造成的額外支出,大部分接口函數(shù)以宏命令實現(xiàn)的。uIP協(xié)議棧提供一系列接口函數(shù)供用戶程序調(diào)用,其中大部分函數(shù)是作為C的宏命令實現(xiàn)的,主要是為了速度、代碼大小、效率和堆棧的使用。uIP周期計時是用于驅(qū)動所有的uIP內(nèi)部時鐘事件。當(dāng)網(wǎng)卡驅(qū)動收到一個輸入包時,將放入全局緩沖區(qū)uip_buf中,包的大小由全局變量uip_len約束。 uIP在系統(tǒng)中的位置從上圖可以看出,uIP協(xié)議棧主要提供了三個函數(shù)供系統(tǒng)底層調(diào)用。通用性強,移植起來基本不用修改就可以通過。(2) 占用的內(nèi)存數(shù)非常少,RAM 占用僅幾百字節(jié)。 輕量級TCP/IP協(xié)議棧uIP的嵌入uIP由瑞典計算機科學(xué)學(xué)院(網(wǎng)絡(luò)嵌入式系統(tǒng)小組)的Adam Dunkels開發(fā)。接管在傳輸緩沖區(qū)中檢查空間的常規(guī)任務(wù),并發(fā)送下一個文件片段或下幾個目錄條目。根據(jù)所請求的文件名,查找匹配文件,配置應(yīng)答數(shù)據(jù)。當(dāng)瀏覽器有數(shù)據(jù)需要提交給服務(wù)器的時候,需要提交POST,所提交的表單或數(shù)據(jù)在請求的數(shù)據(jù)區(qū)發(fā)送[12]。開 始有無空閑的IP緩沖區(qū)?封裝TCP報文頭?有無數(shù)據(jù)?復(fù)制數(shù)據(jù)是起始連接幀?設(shè)置選項(MSS)計算校驗和清標(biāo)志發(fā)送數(shù)據(jù)到IP層結(jié) 束NNYYNY TCP報文發(fā)送流程 應(yīng)用層(HTTP協(xié)議)的實現(xiàn)超文本傳輸協(xié)議(HTTP)定義了一種請求/應(yīng)答機制來從Web服務(wù)器獲取文檔。4) 若有選項,寫入選項。系統(tǒng)的TCP/IP協(xié)議棧實現(xiàn)了模塊化的機制,在發(fā)送TCP報文時,TCP層把數(shù)據(jù)報文封裝好之后,交給IP層,即認為報文已發(fā)送,至于報文的發(fā)送任務(wù)就由IP層處理[11]。每次狀態(tài)變化都伴隨著一個函數(shù)的調(diào)用,使系統(tǒng)更新活動時鐘。3) 如果還沒有,就發(fā)送復(fù)位信息。而嵌入式系統(tǒng)的開發(fā)設(shè)計都是針對某個特定的應(yīng)用進行的,因而有必要對TCP協(xié)議的實現(xiàn)算法進行適當(dāng)?shù)暮喕?。TCP的實現(xiàn)過程可以用狀態(tài)機來描述。4) 發(fā)送帶有一些數(shù)據(jù)的ICMP應(yīng)答。3) 將數(shù)據(jù)幀放至發(fā)送數(shù)據(jù)幀緩沖區(qū)。接收到ICMP報文后,判斷報文是不是正確的ICMP報文,并且計算校驗和是否正確,再根據(jù)ICMP報文中類型和代碼字段判斷是什么類型的報文,并做相應(yīng)的應(yīng)答處理。若存在地址映射關(guān)系,則更新ARP緩存表,清除發(fā)送緩沖區(qū)標(biāo)志后即可發(fā)送報文,若沒有地址映射關(guān)系,則要保存該報文的發(fā)送狀態(tài),之后發(fā)送相應(yīng)的ARP請求。6) 判斷IP報文封裝的上層協(xié)議類型,調(diào)用相應(yīng)處理程序。因為收到IP數(shù)據(jù)報文就意味著本系統(tǒng)可能在短期內(nèi)會與此IP地址再次通訊。校驗時計算以字為單位的反碼和的反碼,將對方的校驗和計算在內(nèi),若校驗后的值為0則說明校驗正確,否則出錯,丟棄該報文。正確的IP報文?校驗和正確否?合法的IP報文?更新ARP表去掉IP選項ICMP報文?TCP報文開始結(jié)束ICMP處理程序TCP處理程序NYYNNNYYY IP報文處理流程圖其步驟如下:1) 判斷是否IP報文及報文是否正確。若為本網(wǎng)段內(nèi)主機,而且ARP緩存表中沒有該地址的映射關(guān)系,則在本網(wǎng)段內(nèi)發(fā)送ARP請求,請求該主機的物理地址與IP地址映射;若判斷出該主機不在本網(wǎng)段內(nèi),就要把目的物理地址設(shè)置為網(wǎng)關(guān)的物理地址來發(fā)送IP報文,相應(yīng)的ARP請求也是發(fā)送給網(wǎng)關(guān)的ARP請求。參數(shù)包括本機的IP地址、本機的物理地址、子網(wǎng)掩碼、網(wǎng)關(guān)的IP地址、自定義端口號、基于TCP應(yīng)用的目的IP地址與目的端口號以及協(xié)議類型的設(shè)置。4) ARP包處理函數(shù)完成對接收到的ARP應(yīng)答包的信息處理,主要是進行ARP表的學(xué)習(xí)和更新,以及喚醒IP層的等待發(fā)送報文調(diào)度函數(shù)。ARP協(xié)議要求程序根據(jù)子網(wǎng)掩碼判斷IP地址是否屬于同一子網(wǎng),如果在同一子網(wǎng)內(nèi),ARP請求目的MAC地址,否則請求默認網(wǎng)關(guān)的MAC地址。整個ARP處理過程,主要分為五個函數(shù),包括ARP初始化、ARP請求、ARP應(yīng)答、ARP包處理、IP包接收預(yù)處理。我們保留四個主要的協(xié)議,即ARP協(xié)議、IP協(xié)議、ICMP協(xié)議、TCP協(xié)議。3) 接收到正確的報文后,讀出報文到系統(tǒng)緩沖區(qū),否則丟棄。系統(tǒng)中接收數(shù)據(jù)報采用查詢方式,具體步驟如下:1) 由CURR和BNRY這兩個寄存器來判斷是否有新的報文到達。CURR是網(wǎng)卡寫緩沖區(qū)指針,指向此時要寫的頁(正在寫的頁的下一頁)。Length=60選定發(fā)送緩沖區(qū)起始地址NY寫入源物理地址更新發(fā)送緩沖區(qū)標(biāo)志N開 始 指定發(fā)送長度向發(fā)送緩沖區(qū)拷貝數(shù)據(jù)上次發(fā)送完畢?重 發(fā) 6 次發(fā)送數(shù)據(jù)結(jié) 束 以太網(wǎng)發(fā)送報文流程圖 報文的接收。將數(shù)據(jù)拷貝到RTL8019AS發(fā)送緩沖區(qū),即芯片內(nèi)部RAM中。由于系統(tǒng)定義了兩個發(fā)送緩沖區(qū),以便可以同時發(fā)送數(shù)據(jù)和向芯片拷貝數(shù)據(jù),所以在發(fā)送報文時要選定緩沖區(qū)。其步驟大致可分為:1) 長度判斷。這兩個發(fā)送緩沖區(qū)的作用是,用戶可以將數(shù)據(jù)包放在發(fā)送緩沖區(qū)1,然后啟動發(fā)送命令。系統(tǒng)中使用0x40~0x4B為發(fā)送緩沖區(qū),共12頁,剛好可以存儲2個最大的以太網(wǎng)包。然后開始RTL8019AS的初始化操作。驅(qū)動程序包括3個部分,用3個函數(shù)實現(xiàn)即:芯片初始化函數(shù)、報文發(fā)送函數(shù)、報文接收函數(shù)。 RTL8019AS驅(qū)動程序設(shè)計從程序員的角度看,8019工作流程非常簡單,驅(qū)動程序?qū)⒁l(fā)送的數(shù)據(jù)包按指定格式寫入芯片并啟動發(fā)送命令,8019會自動把數(shù)據(jù)包轉(zhuǎn)換成物理幀格式在物理信道上傳輸。數(shù)據(jù)可以從串口輸入到單片機,單片機再把數(shù)據(jù)傳到8019,然后在傳到以太網(wǎng)上。(3)電平轉(zhuǎn)換芯片MAX232 MAX232為串口電平轉(zhuǎn)換電路。復(fù)位功能對單片機和網(wǎng)卡控制器進行復(fù)位。外部RAM選用32K字8位高速CMOS靜態(tài)RAM芯片HM62256。單片機嵌入TCP/IP的硬件部分涉及到單片機與網(wǎng)卡控制器的接口,他也屬于TCP/IP協(xié)議鏈路層設(shè)計,是協(xié)議實現(xiàn)的硬件平臺;本課題選擇的方案硬件電路簡單,外圍器件也比較少,相對來說成本低廉[7]。0BH;類型:0頁寫)這兩個寄存器設(shè)置遠程DMA的數(shù)據(jù)字節(jié)數(shù)。9. CRDA0,l:當(dāng)前遠程DMA地址寄存器(08H和09H:類型:0頁讀)這兩個寄存器包含遠程DMA的當(dāng)前地址。6. TBCR0,1:發(fā)送字節(jié)數(shù)寄存器(05Hamp。3. PSTOP:終止頁寄存器(02H;類型:0頁寫,2頁讀)該寄存器設(shè)置接收環(huán)形緩存的終止頁地址。4MPA包丟失位。當(dāng)NIC處于監(jiān)控模式時置位且禁止接收。1AR置位時接受長度少于64字節(jié)的包,清零時拒絕接受長度少于64字節(jié)的包。PTX一表示發(fā)送完成無誤。4. DCR:數(shù)據(jù)配置寄存器(0EH;類型:0頁寫,2頁讀)5. TCR:發(fā)送配置寄存器(0DH;類型:0頁寫,2頁讀)位76543210符號111OFSTATDPB1PB0CRC其中:CRC禁止或允許發(fā)送時的CRC邏輯。位符號簡述7RST當(dāng)網(wǎng)絡(luò)接口控制器(NIC)進入復(fù)位狀態(tài)時置位,而向CR發(fā)出啟動命令時清零。寫零無效。0~2頁:NE2000兼容;3頁:RTL8019AS配置5~3RD2~0000——非法;001——遠程讀;010——遠程寫。0x18~0x1f是Reset寄存器,8個Reset口的作用是相同的。因為本設(shè)計不涉及即插即用功能,故PnP寄存器不予詳細敘述。這樣,微控制器通過讀寫端口0x10即可實現(xiàn)對RTL8019AS內(nèi)部緩沖區(qū)的訪問。(3)RTL8019AS具有32為I/O地址,地址偏移量為0x00~0x1f(本例中對應(yīng)于0x300~0x31f)。(2)另一塊只有32字節(jié),地址為0x0000~0x001f,稱為Prom頁,存儲有本網(wǎng)卡芯片的以太網(wǎng)物理地址,其中地址0x0000~0x000b共12個字節(jié)存放以太網(wǎng)物理地址,0x000b后面的地址存儲的是生產(chǎn)廠商的代碼和產(chǎn)品標(biāo)識代碼。后52頁(即地址為0x4c00~0x7fff)作為接收緩沖區(qū)。一塊容量為16KB,地址為0x4000~0x7fff,用于收發(fā)緩沖。(4) MAU與通訊媒介直接相關(guān),是DTE與網(wǎng)絡(luò)介質(zhì)之間的功能、電氣與機械的接口??蓪?0Mb/s以太網(wǎng)控制器的功能模塊劃分為介質(zhì)存取控制(MAC)子層、接入單元接口(AUI)、介質(zhì)接入單元(MAU)和物理信號規(guī)范(PLS)等4部分,:地址寄存器MACPLS緩沖存儲器網(wǎng)絡(luò)接口AUIMAU系統(tǒng)總線 RTL8019AS結(jié)構(gòu)框圖各單元的功能如下:(1) MAC子層負責(zé)執(zhí)行CSMA/CD協(xié)議,負責(zé)發(fā)送和接收數(shù)據(jù)封包以及通信媒體管理、完成數(shù)據(jù)幀同步、接收數(shù)據(jù)幀時給數(shù)據(jù)幀定界、檢測目的地址是否匹配以及沖突處理等功能。如果校驗后發(fā)現(xiàn)報文錯誤,則將收到的報文丟棄并發(fā)送一個NAK否定應(yīng)答幀。發(fā)送時,將發(fā)送來的數(shù)據(jù)按照特定的格式并加上前導(dǎo)碼、幀定界符燈裝配成幀,并進行CRC校驗。下面分別介紹物理層的接口實現(xiàn)。RTL8019AS是100腳、PQFP封裝、ISA接口的以太網(wǎng)接口芯片,接入速率10Mb/s。7) 應(yīng)用層。為了減少響應(yīng)時間,瀏覽器將它接收的每個Web頁的副本放入高速緩存。HTTP也允許從瀏覽器向服務(wù)器傳輸(如果用戶提交所謂“表單”的話)。2) 無狀態(tài)。,因此一個包含HTML內(nèi)容和圖片的頁面將需要建立多次的短期TCP連接。(2)一字節(jié)的選項類型,一字節(jié)的選項長度和實際選項值,選項長度的計算包括選項類型,選項長度和實際選項值。l 窗口大小字段長度為16比特,用于向?qū)Ψ酵ǜ娈?dāng)前本機的接收緩沖區(qū)的大小(以字節(jié)為單位)。這個序號表明該序號以前的數(shù)據(jù)已經(jīng)被正確接收。l 目的端口地址定義接收本TCP數(shù)據(jù)段的應(yīng)用程序的端口號。TCP是面向流的協(xié)議,發(fā)送方以字節(jié)流發(fā)送數(shù)據(jù),接收方以字節(jié)流接收數(shù)據(jù)??蛻艉头?wù)器進程通信之前,雙方先各自創(chuàng)建一個端點,構(gòu)成各自的半關(guān)聯(lián)。每個應(yīng)用進程之間的通信都是基于所謂的socket套接字。傳輸層以下各層只提供相鄰機器的點到點傳輸,而傳輸層提供了端到端的數(shù)據(jù)傳輸,這里的端到端不僅指源主機到目的主機的端到端通信,而且指源進程到目的進程的端到端通信。 TCP傳輸控制協(xié)議傳輸層是TCP/IP協(xié)議中的一個舉足輕重的層次,網(wǎng)絡(luò)層用IP數(shù)據(jù)報統(tǒng)一了數(shù)據(jù)鏈路層的數(shù)據(jù)幀,用IP地址統(tǒng)一了數(shù)據(jù)鏈路層的MAC地址,但網(wǎng)絡(luò)層沒有對服務(wù)進行統(tǒng)一。有些ICMP還使用代碼字段的值來進一步描述不同的條件。不使用時將不使用部分填“0” 。l 代碼(CODE):提供關(guān)于報文類型的進一步信息。經(jīng)常被認為是IP層的一個組成部分。 ICMP網(wǎng)際控制報文協(xié)議TCP/IP的IP層在完成無連接數(shù)據(jù)報傳輸?shù)耐瑫r,還實現(xiàn)一些基本的控制功能。l 源IP地址指發(fā)送方IP地址。如:1表示ICMP協(xié)議,6表示TCP協(xié)議,17表示UDP協(xié)議。l 標(biāo)識是數(shù)據(jù)包的ID號,用于識別不同的IP數(shù)據(jù)包。因此不討論服務(wù)類型、標(biāo)志和片偏移,只需填0即可。l IP目前的協(xié)議版本為4,因此有時IP也稱為IPV4。IP層向下要面對各種不同的物理網(wǎng)絡(luò),向上卻要提供一個統(tǒng)一的數(shù)據(jù)傳輸服務(wù)。(2)IP協(xié)議不保證傳輸?shù)目煽啃?,不對?shù)據(jù)進行差錯校驗和跟蹤,當(dāng)數(shù)據(jù)報發(fā)生損壞時不向發(fā)送方通告,如果要求數(shù)據(jù)傳輸具有可靠性,則要在IP的上面使用TCP協(xié)議加以保證。ARP和RARP報文沒有封裝在IP數(shù)據(jù)報中,而ICMP和IGMP的數(shù)據(jù)則要封裝在IP數(shù)據(jù)報中進行傳輸。 IP協(xié)議正像TCP/IP協(xié)議的名稱所表達的信息那樣,因特網(wǎng)的核心協(xié)議是IP和TCP兩大協(xié)議。l 發(fā)送方以太網(wǎng)地址:定義發(fā)送方的物理地址。以太網(wǎng)為6。物理網(wǎng)絡(luò)的類型用一個整數(shù)值以太網(wǎng)的硬件類型值為“1”。在這種情況下,IP只需要利用ARP確定路由器的物理地址就可以了,而路由器將逐級向前轉(zhuǎn)發(fā)數(shù)據(jù)報。ARP應(yīng)答幀是以單播方式發(fā)送的,因為應(yīng)答方從請求幀中可以得到對方的物理地址。 (6) ARP應(yīng)答幀直接發(fā)回給發(fā)送ARP請求的主機A(ARP應(yīng)答幀不以廣播方式發(fā)送)。(3) 主機A在本地網(wǎng)絡(luò)中廣播ARP請求幀,請求幀的目的地址為廣播地址(全為“1” )。 地址解析原理:當(dāng)主機A需要向同一物理網(wǎng)絡(luò)中的主機B發(fā)送IP數(shù)據(jù)報時,主機A的IP層要將IP數(shù)據(jù)報傳給數(shù)據(jù)鏈路層進行幀封裝, 封裝時要求給出目的主機的物理地址。從概念上講就是找到一個映射方法f,使得“物理地=f(網(wǎng)絡(luò)地址)”。除去DA、SA和Type共14字節(jié)以外,還
點擊復(fù)制文檔內(nèi)容
物理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1