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

正文內(nèi)容

基于dm9000a的tcp通信設(shè)計畢業(yè)論文-在線瀏覽

2024-07-29 15:28本頁面
  

【正文】 2 以太網(wǎng)接口 硬件平臺描述ARM處理器FLASH網(wǎng)絡(luò)接口SRAM串行口LCD接口USB接口網(wǎng)絡(luò)驅(qū)動JTAG電源晶振USB接口 硬件平臺本課題實現(xiàn)TCP/。電源晶振是給ARM提供電源,ARM才能進行正常工作,ARM的晶振最大為66MHZ。SDRAM用來儲存數(shù)據(jù),它的地址范圍為0X0C000000~0X0E000000。LCD接口是連接LCD顯示器的,可以用來顯示ARM運行的結(jié)果,在調(diào)試仿真的時候很方便、直觀。網(wǎng)絡(luò)驅(qū)動中用的網(wǎng)卡是DM9000A,用于S3C44B0X和網(wǎng)絡(luò)間的數(shù)據(jù)接收和發(fā)送,DM9000A采用的晶振是25MHZ。通過這樣一個ARM平臺,就能很好地實現(xiàn)以太網(wǎng)通信。 DM9000A芯片的內(nèi)部結(jié)構(gòu)和工作原理 1. 總體介紹DM9000A是一款完全集成的和符合成本效益單芯片快速以太網(wǎng)MAC控制器與一般處理接口,一個10/100M自適應(yīng)的PHY和4K DWORD值的SRAM 。該DM9000A支持8位,16位接口訪問內(nèi)部存儲器,以支持不同的處理器。這是完全符合IEEE ,它的自動協(xié)調(diào)功能將自動完成配置以最大限度地適合其線路帶寬。 2. 特點(1)支持處理器讀寫內(nèi)部存儲器的數(shù)據(jù)操作命令以字節(jié)/字/雙字的長度進行 (2)集成10/100M自適應(yīng)收發(fā)器 (3)支持介質(zhì)無關(guān)接口 (4)支持背壓模式半雙工流量控制模式 (5) (6)支持喚醒幀,鏈路狀態(tài)改變和遠(yuǎn)程的喚醒 (7)支持自動加載EEPROM里面生產(chǎn)商ID和產(chǎn)品ID (8)支持4個通用輸入輸出口 (9)超低功耗模式,功率降低模式,電源故障模式 (10)支持100腳CMOS LQFP封裝工藝 (11) (12)支持4K雙字SRAM (13)可選擇1:1YL182050s YT371107S或5:4變壓比例的變壓器降低格外功率 3. DM9000A的硬件電路 網(wǎng)絡(luò)驅(qū)動中用到的網(wǎng)卡DM9000A,其硬件電路如下 DM9000A的硬件電路DM9000A的EECS引腳保持默認(rèn)的懸空狀態(tài),數(shù)據(jù)線SD0SD15直接與S3C44B0X、SST39VF160HY57V641620HG的數(shù)據(jù)線相連。讀寫信號與片選信號都是保持默認(rèn)設(shè)置的低電平有效。本文的設(shè)計中將CMD引腳與處理器的地址線ADR2相連,網(wǎng)絡(luò)控制器CMD引腳決定了處理器訪問的是哪個端口寄存器:當(dāng)CMD=0時,主機訪問的是INDEX(地址)端口寄存器,它的地址為0X06000000;當(dāng)CMD=1時,訪問的是DATA(數(shù)據(jù))端口寄存器,它的地址為0X06000004。 (2)通過DATA端口來讀/寫數(shù)據(jù)[4]。隨后,DM9000A進人數(shù)據(jù)收發(fā)等待狀態(tài),當(dāng)DM9000A接收到外部網(wǎng)絡(luò)送來的以太網(wǎng)數(shù)據(jù)時,首先檢測數(shù)據(jù)幀的合法性,如果幀頭標(biāo)志有誤或存在CRC校驗錯誤,則將該幀數(shù)據(jù)丟棄,否則將數(shù)據(jù)幀緩存到內(nèi)部RAM,并通過中斷標(biāo)志位通知處理器,處理器收到中斷后將DM9000A接收RAM的數(shù)據(jù)讀出進行處理。 DM9000A的驅(qū)動1. DM9000A按字節(jié)、半字、字方式讀寫數(shù)據(jù)define DM9000_outb(d,P) ( *(volatile UINT8 *)p = d ) define DM9000_outw(d,p) ( *(volatile UINT16*)p = d )define DM9000_outl(d,p) (*(volatile UINT32 *)p = d )define DM9000_inb(p) (*(volatile UINT8 *)p)define DM9000_inw(p) (*(volatile UINT16 *)p)define DM9000_inl(p) (*(volatile UINT32 *)p)其中*(volatile UINT8 *)p為強制類型轉(zhuǎn)換,即將P轉(zhuǎn)換為無符號八位,再將d賦給轉(zhuǎn)換后的p,后面幾個語句類似于此語句。即將寄存器NCR的第0位賦值為1,保持4ms,自動清零。當(dāng)CMD引腳拉高時,當(dāng)前命令周期訪問的是數(shù)據(jù)端口;當(dāng)CMD引腳拉低時,當(dāng)前命令周期訪問的是地址端口。4. DM9000A寄存器寫數(shù)據(jù) __inline void DM9000_iow(UINT8 reg,UINT8 value) { DM9000_outb(reg,DM9000_INDEX_PORT); DM9000_outb(value,DM9000_DATA_PORT); }函數(shù)功能實現(xiàn)將數(shù)據(jù)寫入寄存器中,首先由INDEXPORT寫入需要寫操作的寄存器地址 ,再由DATAPORT寫入寄存器內(nèi)數(shù)據(jù)。6. DM9000A的初始化處理 DM9000A的初始化處理基于DM9000A如何接收和發(fā)送數(shù)據(jù)的驅(qū)動程序設(shè)計,DM9000A是一個全雙工的低功耗快速以太網(wǎng)控制器,集成了MAC層和PHY層,同時具有16K字節(jié)的SRAM,支持多種雙絞線和光纖傳輸媒介,完全兼容IEEE802.3u協(xié)議標(biāo)準(zhǔn),10/100MB/s自適應(yīng)。 void DM9000_Init(UINT8* mac){ int i,oft; DM9000_reset(); If (DM9000_probe()==0){ return 1;} If (((DM9000_ior(DM9000_ISR)7)amp。 GPIO控制寄存器(GPCR),GPCR的1到3位表示GPIO的輸入輸出方向,1為輸出,0為輸入。 GPIO寄存器(GPR),它的第0位為0表示激活PHY,為1表示關(guān)閉PHY。在本課題將其設(shè)置為0x00,表示激活PHY。復(fù)位成功后,進行進一步初始化操作處理。它的Bit[0]代表發(fā)送請求,發(fā)送完成后自動清零該位;Bit[1]表示禁止為數(shù)據(jù)包指針1添加CRC校驗;Bit[2]表示禁止為數(shù)據(jù)包指針1添加PAD;Bit[3]表示禁止為數(shù)據(jù)包指針2添加CRC校驗;Bit[4]表示禁止為數(shù)據(jù)包指針2添加PAD;Bit[5]表示額外沖突模式控制,0代表當(dāng)額外的沖突計數(shù)多于15則終止本次數(shù)據(jù)包,1代表始終嘗試發(fā)發(fā)送本次數(shù)據(jù)包;Bit[6]表示Jabber傳輸使能,1代表使能Jabber傳輸定時器(2048字節(jié)),0代表禁止。 特殊模式控制寄存器(SMCR)賦值為0x00,它的0位表示強制最短“Backoff”時間,第1位表示強制最長“Backoff”時間,第2位表示強制沖突延遲,3到6位保留,第7位表示特殊模式使能。它Bit[0]表示數(shù)據(jù)包接收;Bit[1]表示數(shù)據(jù)包傳輸;Bit[2]表示接收溢出;Bit[3]表示接收溢出計數(shù)器溢出;Bit[4]表示傳輸“Underrun”Bit[5]表示連接狀態(tài)改變;Bit[7]表示處理器模式;0為16位模式,1為8位模式。0000為5us,0001為10us,0010為15us,0011為25us,0100為50us,0101為100us,0110為150us,0111為200us,1000為250us,1001為300us,1010為350us,1011為400us,1100為450us,1101為500us,1110為550us,1111為600us。本課題將其賦值為0x3f。當(dāng)接收SRAM空閑空間大于該門限值,則發(fā)送一個暫停時間(pause_time)為0000H的暫停包;當(dāng)溢出門限最高值的暫停包發(fā)送之后,溢出門限最低值的暫停包才有效,默認(rèn)值為8K字節(jié),不要超過SRAM大小。 對于接收/發(fā)送溢出控制寄存器(FCR),Bit[0]表示溢出控制使能,1設(shè)置使能溢出控制模式;Bit[1]表示接收暫停包當(dāng)前狀態(tài);Bit[2]表示接收暫停包狀態(tài),只讀清零允許;Bit[3]表示背壓模式,該模式僅在半雙工模式下有效,當(dāng)接收SRAM超過BPHW并數(shù)據(jù)包DA匹配時,產(chǎn)生一個擁擠狀態(tài);Bit[4]表示背壓模式,該模式僅在半雙工模式下有效,當(dāng)接收SRAM超過BPHW并且接收新數(shù)據(jù)包時,產(chǎn)生一個擁擠狀態(tài);Bit[5]表示強制發(fā)送暫停包使能,按溢出門限最高值使能發(fā)送暫停包;Bit[6]表示1發(fā)送暫停包,發(fā)送完成后自動清零,并設(shè)置TX暫停包時間為FFFFH;Bit[7]表示1發(fā)送暫停包,發(fā)送完成后自動清零,并設(shè)置TX暫停包時間為0000H。 還用到物理地址寄存器(PAR),多點發(fā)送地址寄存器(MAR)。賦值0x31。當(dāng)SRAM的讀、寫指針超過SRAM的大小時,指針自動跳回起始位置,需要驅(qū)動程序設(shè)置該位,若設(shè)置則MRRH將自動位0CH。 以太網(wǎng)接口設(shè)計1. 以太網(wǎng)的MAC幀格式 目的端的 MAC地址發(fā)送端的MAC地址類型數(shù) 據(jù)FCS 幀的傳輸方向66246~15004 以太網(wǎng)幀格式 以太網(wǎng)的MAC幀格式比較簡單,由5個字段組成。第三個為兩字節(jié)的類型字段,標(biāo)志上一層用的是什么協(xié)議,如上層使用的是IP數(shù)據(jù)報,則該類型字段值為ox0800。最后為4字節(jié)的幀檢驗序列FCS。第二個字段是幀開始定界符,定義為10101011。每臺計算機的網(wǎng)卡,可以接收傳過來的數(shù)據(jù),接收到數(shù)據(jù)后,網(wǎng)卡給CPU一個中斷信號,告訴它應(yīng)該接收數(shù)據(jù)了,收到中斷請求的CPU就中斷現(xiàn)在正在執(zhí)行的處理,開始準(zhǔn)備接收數(shù)據(jù)包。如果與自己主機NIC的MAC地址相同,就接著檢查類型的字段,以及是否有自己應(yīng)當(dāng)接受的協(xié)議。如果與自己主機NIC的MAC地址不同,沒有可接收的數(shù)據(jù),則刪除數(shù)據(jù)報。然后要讀取這四個字節(jié)來確定數(shù)據(jù)包的狀態(tài),若第一個字節(jié)是[01H]表示接收的是有效數(shù)據(jù)包,若為[00H]則表示沒有收到數(shù)據(jù)包,若為其它值則表示網(wǎng)卡沒有正確初始化,需要重新進行初始化。同時,在接收到的數(shù)據(jù)包后DM9000還會自動添加4個CRC校驗字節(jié),可以不予處理。接收到有效數(shù)據(jù)后,讀取并保存以太網(wǎng)協(xié)議頭,以太網(wǎng)協(xié)議頭長度14字節(jié),具體包括6個字節(jié)的以太網(wǎng)目的MAC地址,6個字節(jié)的以太網(wǎng)源MAC地址和2個字節(jié)的幀類型 [8]。寫入數(shù)據(jù)命令16位數(shù)據(jù)寫入數(shù)據(jù)發(fā)送緩存區(qū)寫入發(fā)送數(shù)據(jù)長度發(fā)送數(shù)據(jù)開始結(jié)束清除 DM9000A的發(fā)送處理流程圖3 TCP/IP通信協(xié)議的實現(xiàn) TCP/IP通信的設(shè)計思想 TCP/IP協(xié)議的介紹 TCP/IP協(xié)議起源于20世紀(jì)60年代末美國政府資助的一個分組交換網(wǎng)絡(luò)研究項目,到20世紀(jì)90年代已經(jīng)發(fā)展成為計算機之間最常用的通信協(xié)議。TCP/IP協(xié)議并不完全符合OSI的七層參考模型,它采用4層的層級結(jié)構(gòu),每一層都呼叫它的下一層所提供的網(wǎng)絡(luò)來完成自己的需求,該模型的目的是使各種硬件在相同的層次上相互通信。 TCP/IP參考模型由數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層構(gòu)成,它們是基于硬件層次的四個概念性層次。通信的雙方在相同層之間進行通話,通話規(guī)則和協(xié)定就是該層的協(xié)議。: TCP/IP協(xié)議參考模型應(yīng)用層HTTP,Telnet,FTP,SMTP,SNMP傳輸層TCP,UDP網(wǎng)絡(luò)層IP,ICMP,IGMP數(shù)據(jù)鏈路層Ethernet,SLIP,ARP,RARP ,它是TCP/IP參考模型的最底層,它負(fù)責(zé)將IP分組封裝成適合在物理網(wǎng)絡(luò)上傳輸?shù)膸袷竭M行傳輸,同時將物理網(wǎng)絡(luò)上接收到的數(shù)據(jù)幀進行解封裝,提取出IP分組交付給網(wǎng)絡(luò)層。 ,主要確定如何將分組從源端送達(dá)目的端。IP協(xié)議是網(wǎng)絡(luò)層的重要協(xié)議,它負(fù)責(zé)無連接的數(shù)據(jù)傳送、數(shù)據(jù)報尋徑和差錯處理。 ,主要為源端口和目的端口的應(yīng)用程序提供端到端的通信。 ,為用戶提供特定的應(yīng)用服務(wù)。 數(shù)據(jù)報的封裝 數(shù)據(jù)封裝體現(xiàn)協(xié)議層次模型的重要特征。數(shù)據(jù)發(fā)送時,各層在收到的上一層數(shù)據(jù)前面添加對應(yīng)的頭部信息,進行數(shù)據(jù)封裝,然后傳遞到下一層。:以太網(wǎng)首部IP首部TCP首部應(yīng)用數(shù)據(jù)IP首部TCP首部應(yīng)用數(shù)據(jù)以太網(wǎng)驅(qū)動程序TCP首部應(yīng)用數(shù)據(jù)APPL用戶數(shù)據(jù)用戶數(shù)據(jù)應(yīng)用程序TCPIP 數(shù)據(jù)報的封裝 主程序流程 當(dāng)以太網(wǎng)網(wǎng)卡接收到數(shù)據(jù)的時候,這些數(shù)據(jù)都是經(jīng)過了哪些協(xié)議?應(yīng)該做怎樣的處理才能被正確的接收呢?應(yīng)該如何編程實現(xiàn)呢?,展示了本課題設(shè)計的總體思想。其中網(wǎng)絡(luò)初始化包括本地的物理地址以及IP地址、時間的初始化、DM9000A的初始化、ARP、TCP和TCP協(xié)議應(yīng)用層的初始化等。當(dāng)以太網(wǎng)成功接收數(shù)據(jù)時,首先會分析是不是ARP包,是的話就調(diào)用ARP協(xié)議處理,不是的話就看看是不是IP數(shù)據(jù)包,如果不是的話就丟棄該幀。判斷IP數(shù)據(jù)報傳送的是哪種報文后,調(diào)用相應(yīng)協(xié)議的處理程序處理數(shù)據(jù),這樣就完成了數(shù)據(jù)的接收了。再重新檢測以太網(wǎng)網(wǎng)卡是否接收新的數(shù)據(jù),如此一直循環(huán)下去,實現(xiàn)數(shù)據(jù)的接收和發(fā)送。 ARP協(xié)議及其實現(xiàn)1. ARP的分組幀格式地址解析協(xié)議(ARP)是聯(lián)系IP協(xié)議和LAN協(xié)議的橋梁,該協(xié)議把節(jié)點的IP解析成對應(yīng)的MAC地址(也叫物理地址),它可以在局域網(wǎng)內(nèi)尋找IP所對應(yīng)的MAC地址,并保存起來以供發(fā)送使用。以太網(wǎng)目的地址幀類型硬件類型協(xié)議類型可選域發(fā)送端以太網(wǎng)地址目的以太網(wǎng)地址以太網(wǎng)源地址發(fā)送端IP地址硬件地址長度協(xié)議地址長度6612166222目的IP地
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1