




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、目錄 TOC o 1-4 u 中文摘要1英文摘要 2第1章引言 31.1嵌入式系統 31.2研究項目的意義31.3項目的最終目標 3第2 章 TCP/IP協議(堆棧)簡介 5TCP/IP 協議的分層結構5TCP/IP協議6的封裝與分離2.2.1什么是封裝 62.2.2什么是拆分使用 62.2.3以太網幀格式 72.3 TCP/IP 8的子協議2.3.1 ARP協議82.3.2 IP協議102.3.3 ICMP Internet 控制消息協議 122.3.4 TCP傳輸控制協議142.3.5應用層協議(Protocol) 17第3章硬件實現 183.1物理層接口實現183.1.1 RTL8019
2、AS 20簡介3.1.2 RTL8019AS 20的部分結構3.1.3 RTL8019AS 20的寄存器介紹3.1.4與系統配置和操作相關的寄存器 213.1.5 DMA相關寄存器 233.2硬件設計253.2.1硬件接口框圖 253.2.2主要部件說明 25第4章軟件實現 274.1 RTL8019AS驅動設計274.1.1 RTL8019AS 27的初始化4.1.2消息傳輸 284.1.3 消息接收 304.2 TCP/IP棧的實現314.2.1地址解析協議ARP 31的實現4.2.2 IP 協議在網絡層的實現 3 IP包處理3發送IP包354.2.3錯誤控制消息ICMP 36的實現4.2
3、.4傳輸控制協議TCP 38的實現 TCP 消息的處理(接收) 3發送TCP數據包404.2.5應用層(協議)的實現 414.3輕量級TCP/IP協議棧uIP 42的嵌入4.3 . 1uIP 43的架構 uIP 在系統中的位置43協議棧提供的主接口444.3.2 uIP在MCS-51 MCU 44上的遷移遷移步驟4 uIP的主控制回路( main函數) 46結論 50至 51參考文獻 52附錄:硬件電路圖 54單片機與以太網的接口設計摘要:在現實生活中,許多嵌入式系統設備得到了廣泛的應用。由于目前硬件設計的問題,沒有嵌入網絡連接模塊,這使得這些嵌入式系統的使用受到限制,并且購買新設備需要很高的
4、成本。本文設計的網絡接入模塊解決了嵌入式設備與以太網的連接問題。在不改變嵌入式設備本身結構的情況下,用戶終端可以通過該模塊快速方便地訪問現有的各種串口設備。聯網,從而實現儀器的遠程控制和遠程數據終端的數據通信功能。本設計方案利用8位微控制器AT52提供的系統資源和處理能力,加上89C具有ISA接口的10 Mb / s網卡芯片RTL8019AS ,通過編寫一套簡化的協議棧,實現可靠的數據通信,實現了低成本。 . , 可靠連接網絡的目的1 。關鍵詞:以太網、MCU、RTL8019AS、AT 89C52第一章 簡介1.1 嵌入式系統嵌入式系統是指嵌入式計算機及其應用系統。它是指嵌入在各種設備和應用產
5、品中的計算機系統。主要完成信號控制的功能。它體積小,結構緊湊。在設備中提供用戶界面,管理相關信息的輸入和輸出,監控設備的工作,使設備和應用系統具有較高的智能化和性價比。嵌入式系統由嵌入式硬件和嵌入式軟件組成。硬件以芯片、模板、組件和控制器的形式埋在設備部。軟件是實時多任務操作系統和各種專用軟件,一般固化在ROM或閃存中。軟硬件可量身定制,適用于對功能、體積、成本、可靠性、功耗等有嚴格要求的計算機系統。嵌入式計算機系統最早出現在1960年代的武器控制中,后來被用于軍事指揮控制和通信系統,現在廣泛應用于民用機電一體化產品中。1.2 課題研究的意義隨著互聯網技術的普及,信息共享程度不斷提高。 TCP
6、/IP協議棧使嵌入式系統可以通過互聯網無限延長通信距離。以太網能夠快速傳輸大量數據。這樣,除了充分利用PC上的各種資源完成數據的存儲、分析和統計外,還可以實現測控系統之間的數據交換,為實現嵌入式設備智能化、模塊化提供了另一種解決方案。集群。離開。 PPP協議可以通過調制解調器實現遠程數據交換、狀態控制等功能,為嵌入式系統提供更靈活的控制和監控方式。因此,如何在基于單片機的嵌入式系統中控制以太網網卡控制器進行數據傳輸,以及如何嵌入TCP/IP協議連接到Internet,這些都具有深遠的意義2 。1.3 項目的最終目標本課題主要實現TCP/IP協議嵌入8位單片機。單片機接入Internet的研究最
7、多的方案之一是使用單片機驅動ISA總線網卡或驅動基于ISA總線的以太網(LAN網絡規劃)控制芯片。考慮到在實際網絡應用中,以太網在局域網中占據主導地位,本文采用后者。單片機上網的難點在于 TCP/IP 協議是一個龐大的協議集,而 8 位單片機資源有限,其存儲容量、運行速度和總線寬度都無法實現PC 通過標準的硬件和軟件接口。知識產權。本文將介紹愛特梅爾的51單片機芯片AT 89C52的使用,可以滿足需要,而且非常常用,便宜又容易獲得。網卡芯片采用Realtek公司生產的10Mbps ISA總線以太網控制芯片RTL8019AS,嵌入TCP協議,實現單片機上網。第 2 章 TCP/IP 協議(堆棧)
8、簡介2.1 TCP/IP協議的層次結構TCP協議和IP協議是一組使計算機能夠相互通信的協議中的兩個重要協議。通常使用 TCP/IP 來表示這組協議。協議是一種通信規則或標準,被計算機用來傳輸數據,以確保數據在互聯網上準確、快速地傳輸。本文采用 TCP/IP 的簡化四層模型,即:應用層、傳輸層、網絡層和鏈路層。如表 2.1 所示。表 2.1 TCP/IP 協議的層次結構地面主要協議應用層FTP、TELNET、SMTP、SNTP、傳輸層TCP、UDP網絡層IP、ARP、RARP、IGMP、ICMP鏈路層接口層協議鏈路層:有時也稱為數據鏈路層或網絡接口層,它定義了計算機如何連接到網絡,數據必須通過連
9、接傳輸到網絡。將數據轉換為上層可以識別的邏輯幀。網絡層:負責處理從原始發送者到目的地的消息地址和路由信息,使信息可以發送到相鄰的 TCP/IP 網絡上的任何主機。 IP協議是分層傳輸數據的機制。該層使用的主要協議有:地址轉換協議(ARP 協議)、反向地址解析協議(RARP 協議)、互聯網控制消息協議(ICMP 協議)和互聯網組管理協議(IGMP 協議)。傳輸層:主要為兩臺主機上的應用程序提供發送者和目的地之間的通信。該層有兩種協議,用于可靠傳輸的傳輸控制協議 (TCP) 和用于不可靠傳輸的用戶數據報協議 (UDP)。應用層:負責為接收到的數據提供解釋服務。對于嵌入式系統來說,有兩個協議非常重要
10、,即超文本協議(FTP 協議)和文件傳輸協議(FTP 協議)。超文本傳輸協議用于將文件從一臺主機傳輸到另一臺主機,并在請求主機上顯示文本、文件;文件傳輸協議用于將文件從一臺主機傳輸到另一臺所請求的主機。它只傳輸副本,而不傳輸原件。其他協議包括遠程登錄、簡單傳輸協議、簡單網絡管理協議等3 。2.2 TCP/IP協議的封裝與退役TCP/IP協議采用分層結構,實現也采用分層實現的方法。在實現的過程中,首先要了解封裝和退役的概念。2.2.1什么是封裝當應用程序使用 TCP 傳輸數據時,數據會被送入協議棧,然后一層一層地通過每一層,直到以比特流的形式發送到網絡。這些層中的每一層都在接收到的數據中添加一些
11、頭部信息(有時是尾部信息),這個過程稱為封裝。如圖2.1所示:appapp1首部數據IP首部TCP首部幀首部TCP數據IP數據以太網幀數據幀尾部TCP報文IP報文以太網幀圖 2.1 數據進入協議棧時的封裝過程2.2.2什么是分攤當目的主機接收到一個以太網數據幀時,數據開始從協議棧的最底層開始上升,同時各層協議添加的數據包的頭部被去除。以太網幀檢查標頭中的幀類型字段,IP 檢查標頭中的協議字段,TCP 和 UDP 檢查標頭中的端口號以確定數據屬于哪一層,這個過程稱為解復用。如圖2.2所示:ARPARPIPRARP以太網幀TCPIGMPUDPICMP應用程序應用程序應用程序應用程序根據首部中的協議
12、值分根據首部中的幀類型分根據首部中的端口號分圖 2.2 以太網數據幀退役流程2.2.3以太網幀格式各種通信協議都有自己的消息格式,TCP/IP也不例外,它也有自己獨立的消息格式。要對 TCP/IP 協議進行編程,我們首先要了解它的消息格式。由于 TCP/IP 協議采用分層結構,每一層都有自己的特殊用途。首先介紹以太網的物理幀格式,2.3節介紹TCP/IP其他層的幀格式。以太網協議不止一種。本項目采用802.3協議,物理信道上的收發操作采用該協議的幀格式。一個標準的以太網物理傳輸幀由前導PR、分隔位SD、目的地址DA、源地址SA、類型字段Type、數據段Data、填充位PAD和幀校驗序列FCS8
13、部分組成。幀結構如表 2.2 所示。表2.2 802.3協議以太網物理幀結構公關標清達南非類型數據軟墊FCS56 位8 位48位48位16 位461500字節DATA小于46字節時加032 位PR:同步位,用于同步發送端和接收端的時鐘,也表示傳輸速率(10M時鐘100M頻率和網卡不同,所以100M網卡可以兼容10M網卡),是一個56 位二進制數 0 SD :分隔位,表示后面是真實數據,不是同步時鐘,是8位10101011。與同步位不同的是,最后2位是11而不是10 。 DA :目的地址,以太網地址是一個48位(6字節)的二進制地址,表示幀被傳送到哪個網卡。如果是FFFFFFFFFFFF ,就是
14、廣播地址,任何網卡都可以接收到廣播地址的數據。 S A:源地址, 48位,表示該幀的數據是從哪個網卡發送過來的,即發送方的網卡地址,同這是 6 個字節。 TYPE:類型字段,表示該幀的數據是什么類型的數據,不同協議的類型字段不同。例如:0800H表示數據是IP包,0806H表示數據是ARP包,814CH是SNMP包, 8137H是IPX/SPX包。 (小于0600H的值用于IEEE802,表示數據包的長度。) DATA:數據段,段數據不能超過1500字節。因為以太網規定整個傳輸包的最大長度不能超過1514字節。 (14 個字節是 DA、SA、TYPE) PAD :填充位。由于以太網幀傳輸的數據
15、包至少不能小于60字節,除了(DA、SA、TYPE 14字節)外,還必須傳輸46字節的數據。當數據段的數據小于46字節時,后面跟著000000 (當然也可以加上其他值) FCS : 32位數據校驗位。是32位的CRC校驗,由網卡自動計算,自動生成,自動校驗,在數據段后面自動填寫。我們不需要知道數據驗證算法。傳輸數據幀時,除了數據段的長度不固定外,其他部分的長度都是固定的。數據段為 461500 字節。以太網規定整個傳輸包的最大長度不能超過1514字節(14字節分別是DA、SA、Type),最小不能小于60字節。除了 DA、SA 和 Type 的 14 個字節外,還必須傳輸至少 46 個字節的數
16、據。當數據段中的數據小于46字節時,需要填充。長度字段中不包含填充字符數,超過 1500 個字符。部分,需要拆分成多個幀進行傳輸。實際上,在發送數據時,PR、SD、FCS和填充字段該段由以太網控制器自動生成;接收數據時,跳過PR和SD,它們只被控制器檢測到,不作為接收數據接收,一旦控制器檢測到有效的前導字段(即PR和SD SD),則認為接收數據已經開始。2.3 TCP/IP 的子協議2.3.1 ARP協議 ARP是Address Resolution Protocol的縮寫,中文翻譯為“地址解析協議”。本質是完成網絡地址到物理地址的映射。從概念上講,就是找到一個映射方法 f 使得“物理grou
17、nd=f(network address)。物理地址有兩種基本類型:以太網類型和 ProNET 令牌類型,前者固定物理地址大,后者物理地址小便于配置,網絡地址具體指IP地址。地址解析協議 (ARP) 是 IP 獲取與給定 IP 地址關聯的主機的物理地址的能力。 ARP該功能分為兩部分:一部分發送數據包時請求目的主機的物理地址;另一部分將解析結果發送給請求物理地址的主機。地址解析原理:當主機A需要向同一物理網絡中的主機B發送IP數據報時,主機機器A的IP層需要將IP數據報傳遞給數據鏈路層進行幀封裝,封裝時需要給出目的主機。實際地址。因此,IP層發送IP數據報時通常會產生以下事件:IP調用ARP請
18、求IP地址為IB的目的主機B的物理地址為PA 。IB對應的物理地址。 ARP 請求將包括以下信息:主機的物理地址 PA ;主機的IP地址IA ;目的主機的IP地址IB 。主機A在本地網絡上廣播一個ARP請求幀,請求幀的目的地址就是廣播地址(全“1”)。網絡中的所有主機都可以接收到 ARP 請求幀,并將幀中的目的 IP 地址IB 與自己的 IP 地址進行比較。地址IB不匹配的主機將忽略該幀。如果主機發現請求中的目的主機 IP 地址 IB與自己的 IP 地址相同,則生成一個包含其物理地址PB 的 ARP 應答幀。(6) ARP回復幀直接回傳給發送ARP請求的主機A(ARP回復幀不是廣播發送的)。
19、ARP 回復幀包含以下信息:應答主機的物理地址 P B ;IP地址IB ;主機的物理地址 PA ;請求主機的 IP 地址 I A 。從響應幀中得到的目的主機的物理地址P B完成IP數據報的幀封裝,并將幀發送給主機B。這里有兩點需要注意:(1) ARP請求幀是在物理網絡中廣播發送的,所以此時目的主機的物理地址是未知的。 ARP回復幀以單播方式發送,因為響應者可以從請求幀中得到對方的物理地址。(2) 目的主機必須與源主機在同一個物理網絡中。由于ARP使用物理網絡中的廣播,IP路由器不會轉發廣播,所以遠程網絡中主機的物理地址無法通過ARP確定,也無需知道遠程地址的物理地址.如果目的主機在遠程網絡上,
20、IP會先把數據報發給路由器,然后路由器再轉發。這種情況下,IP只需要通過ARP來確定路由器的物理地址,路由器就會逐級轉發數據報。下面是ARP地址解析包的幀格式:表 2.3 地址解析報文幀格式場地以太網頭硬件類型協議類型硬件地址長度協議地址長度OP發送者以太網地址發件人 IP 地址目標以太網地址目標 IP 地址少量161616881648324832以太網頭:在幀封裝時添加到 ARP 數據包的頭中。 ARP 數據包作為以太網幀的數據部分發送。請參閱以太網幀結構部分2.2.3。硬件類型:16 位,定義物理網絡類型。物理網絡的類型為整數值以太網的硬件類型值為“1”。協議類型:16 位,定義了使用的
21、ARP 協議的類型。例如, 0 x0800 表示 IP V4 。硬件地址長度:8位,以字節為單位定義物理地址長度。以太網是 6。協議地址長度:8 位,以字節為單位定義物理地址長度。 IP V4為 4。操作類型:16位,定義報文的類型(“1”為ARP請求,“2”為ARP回復,“3”為RARP請求,“4”為RARP回復)。發送方以太網地址:定義發送方的物理地址。發件人 IP 地址:定義發件人的網絡地址。目標以太網地址:定義目標設備的物理地址。目標 IP 地址:定義目標設備的網絡地址。2.3.2IP協議就像 TCP/IP 協議名稱所表達的信息一樣,互聯網的核心協議是 IP 和 TCP。 IP協議作為
22、TCP/IP協議族中的核心協議,為網絡數據傳輸提供最基本的服務,也是實現網絡互聯互通編制依據協議。除了 ARP 和 RARP 數據包之外,幾乎所有的數據都是通過 IP 協議發送的。IP協議位于網絡層,位于同一層的協議是ARP和RARP,它們與上面的Internet控制消息協議ICMP和Internet組管理協議IGMP相連。 ARP 和 RARP 數據包不封裝在 IP 數據報中,而 ICMP 和 IGMP 數據封裝在 IP 數據報中進行傳輸。由于IP協議在網絡層中占有重要地位,人們將TCP/IP協議的網絡層稱為IP層。IP 是一種不可靠的無連接數據報協議,可提供盡力而為的傳輸服務。IP協議具有
23、以下特點:(1) 點對點協議。雖然IP數據報攜帶了源IP地址和目的IP地址,但是數據傳輸時的對端實體必須是相鄰設備(同一個網絡)中的對端實體。(2)IP協議不保證傳輸的可靠性,不對數據進行錯誤校驗和跟蹤。當數據報損壞時,它不會通知發送者。如果要求數據傳輸的可靠性,IP上應該使用TCP協議。得到保證。(3)IP協議提供無連接數據報服務。每個數據報都是獨立傳輸的,可能沿著不同的路徑到達目的地,也可能不按順序到達目的地。正因為IP協議采用了盡力傳輸的思想,所以IP協議的效率很高,實現也比較簡單。隨著底層網絡質量的日益提高,IP協議盡力傳輸的好處越來越明顯。IP層向下要面向各種物理網絡,向上要提供統一
24、的數據傳輸服務。為此, IP層通過IP地址實現物理地址的統一;通過IP數據報實現物理數據幀的統一。 IP層通過以上兩方面的統一達到向上屏蔽底層差異的目的。IP數據報的格式如下表所示:表 2.4 IP 數據報格式場地版本標頭長度服務類型總長度標識標識切片偏移生存時間協議標頭校驗和源 IP 地址目標 IP 地址選項數據少量448161631388163232正常的 IP 標頭長度為 20 個字節,如果包含選項字段,則最多為 60 個字節。IP 當前的協議版本是 4,所以 IP 有時被稱為 IP V4 。頭長度字段為 4 位長,以 32 位字長(4 字節)為單位表示數據報頭的長度。由于IP數據報頭包
25、含IP選項的變長字段,所以頭與數據的分界點需要由頭的長度來確定。用單片機實現 TCP/IP 協議需要一些簡化,無論數據分片和優先級如何。所以不討論服務類型、標志和分片偏移量,填0即可。數據報總長度字段的長度為16位,總長度表示整個IP數據報的長度,以字節為單位。 IP 數據報的最大長度可達(即65535)字節。數據部分的長度可以由頭的長度和總長度計算得出。ID是數據包的ID號,用來識別不同的IP數據包。生存時間 TTL 是一個數量級的概念,防止無用的數據包一直存在于網絡中。一般每經過一個路由器就減1,因此可以通過TTL計算出數據包到達目的地的路由器數量。協議字段指示創建數據包的高級協議的類型。
26、如:1代表ICMP協議,6代表TCP協議,17代表UDP協議。頭校驗和字段為 16 位。用于保證頭部數據的完整性。數據部分的正確性由高層協議保證。源 IP 地址是指發送方 IP 地址。目的IP地址是指接收者IP地址。選項字段是一個可變長度字段,它是傳輸數據報時可選的附加功能。用于控制數據在網絡中的傳輸路徑,記錄數據報經過的路由器,獲取數據報在途中經過的路由器的時間戳。 IP 選項的長度受標頭長度的限制4 。2.3.3ICMP Internet 控制消息協議TCP/IP的IP層在完成無連接數據報傳輸的同時還實現了一些基本的控制功能。這些控制功能包括:錯誤報告、擁塞控制、路徑控制以及對路由器和主機
27、信息的訪問。實現這些控制功能的協議是位于 IP 層的 Internet 控制消息協議 (ICMP)。ICMP 消息分為兩類,錯誤報告消息和查詢消息。通常被認為是 IP 層的一個組成部分。 ICMP 數據包首先被封裝成 IP 數據報,然后傳遞到下一層。消息格式如表 2.5 所示:表 2.5 ICMP 消息格式8位類型8位代碼16 位校驗和標題的其他部分數據數據首部ICMP 消息頭的一般部分由三個字段組成:類型、代碼和校驗和。數據首部類型(TYPE):表示ICMP消息的類型。CODE:提供有關消息類型的更多信息。校驗和(CHECKSUM):提供整個 ICMP 消息的校驗和。校驗和算法與 IP 數據
28、報頭的校驗和算法相同。與IP數據報頭的校驗和不同的是,ICMP校驗和是整個數據包的校驗和。另外,使用校驗和進行驗證的設備不是中間路由器,而是最終目的地。標頭的另一部分是 4 個字節。大多數錯誤報告消息不使用這部分。參數錯誤報告消息使用字節之一作為指針。請求響應消息使用這 4 個字節來匹配請求和請求。回復消息。不使用時,未使用的部分填“0”。報錯時,數據段部分攜帶原始錯誤數據報的頭部和數據的前8個字節。通常,這個信息包括數據報的關鍵信息(前8個字節一般是上層協議的頭信息);在請求和響應包中,攜帶與請求和響應相關的附加信息。所有數據包的前 4 個字節都相同,但其他字節的其余部分彼此不同。輸入單詞一
29、個段可以有 15 個不同的值來描述一種特定類型的 ICMP 消息。一些 ICMP 還使用代碼字段的值來進一步描述不同的條件。 ICMP錯誤報告消息的常見類型和含義如表2.6所示:表 2.6 ICMP 常用類型編號及其含義類型34511128 或 010 或 913 或 1417 或 18留言含義目的地無法到達源中斷重定向數據報超時數據報參數問題回顯請求和回復路由器查詢和通告時間戳請求或回復地址掩碼請求或應答本主題只考慮ICMP消息的目的站不可達,并回顯請求和響應消息,如表2.7和表2.7所示。2.8分別是這兩種消息的格式。表 2.7 目的站不可達報文格式類型 3代碼 0-15校驗和接收IP部分
30、,包括IP頭的前8個字節場地類型 8 或 0代碼校驗和標識符序列號可選數據少量88161616由請求消息發送,有重復的回復消息表 2.8 響應請求和響應消息的格式場地類型 8 和 0代碼校驗和標識符序列號可選數據少量88161616由請求消息發送,由響應消息重復注意:類型 0 是響應響應消息,類型 8 是響應請求消息。整個數據包都參與檢查。2.3.4TCP 傳輸控制協議傳輸層是 TCP/IP 協議中的關鍵層。網絡層將數據鏈路層的數據幀與IP數據報統一,將數據鏈路層的MAC地址與IP地址統一,但網絡層不進行業務處理。團結。傳輸層的目的是補充和增強通信子網服務。在TCP/IP協議的傳輸層,提供了面
31、向連接的傳輸控制協議TCP和無連接的用戶數據報協議UDP。就不同的底層網絡而言,TCP和UDP有不同的應用范圍。 TCP適用于可靠性較差的廣域網,UDP適用于可靠性高的廣域網。傳輸層以下的層只提供相鄰機器之間的點對點傳輸,而傳輸層提供端到端的數據傳輸。目標進程的端到端通信。TCP 使用協議端口來識別主機上的通信進程。為了保證信息能正確到達指定端進程,必須顯式給出宿端的全局唯一進程標識。一個主機可以通過一個IP地址來標識,這個IP地址是全局唯一的,并且給主機上的進程一個本地唯一的標識符(端口號)。兩者相加形成進程的全局唯一標識符。每個應用程序進程之間的通信都是基于所謂的套接字套接字。 Socke
32、t Socket是系統提供的進程通信編程接口,支持客戶端/服務器模型。它將應用程序和端口關聯起來,并為每個端口分配多個通信端點,這樣就可以實現同一個應用程序的多進程服務。套接字地址為進程通信提供端點。在客戶端和服務器進程通信之前,雙方首先創建一個端點,形成自己的半關聯。每個套接字都有一個由操作系統分配的本地唯一套接字號。客戶端然后根據服務器的眾所周知的地址建立一個套接字連接。一個套接字連接可以用一個完整的關聯來描述:(協議、本地主機地址、本地端口號、遠程主機地址、遠程端口號)Socket 支持不同的傳輸層協議。當使用 TCP 協議作為傳輸層協議時,一個套接字連接就是一個 TCP 連接。TCP是
33、面向流的協議,發送方以字節流的形式發送數據,接收方以字節流的形式接收數據。數據通過已建立的連接按順序發送,并按順序到達接收器。圖 2.3 給出了 TCP 端口和字節流的直觀描述。應用程序(應用程序( )應用程序( )臨時端口熟知端口TCPTCP主機A客戶主機B服務器IP地址:IP地址:字節流圖 2.3 進程識別和流式傳輸TCP 連接的建立需要客戶端和服務器之間的三次握手。 TCP 數據包格式如表 2.9 所示。表 2.9 TCP 數據包格式場地源端口地址目的端口地址序列號確認號碼標頭長度預訂敦促確認psh第一次同步鰭窗戶校驗和緊急指針選項填充數據少量16163232466161616TCP報文
34、段格式中各個字段的含義和作用如下:源端口地址定義了發送此 TCP 段的主機上的應用程序的端口號。目的端口地址定義了接收這個 TCP 數據段的應用程序的端口號。序號表示段的數據部分在發送方數據流中的位置。即傳輸數據部分的第一個字節的序號。確認號表示接收方希望在對方下次發送時接收到的數據的第一個字節的序號。該序號表示該序號之前的數據已被正確接收。報頭長度以 32 位字長(4 字節)為單位表示段報頭的長度。保留字段長度為 6 位,保留以供將來使用。控制字段的每一位都有特定的含義,表示段的用途和內容。窗口大小字段的長度為16位,用于通知對方當前本地接收緩沖區的大小(以字節為單位)。校驗和范圍包括段頭、
35、數據和偽頭。其計算方法與IP數據報頭校驗和的計算方法相同。TCP 選項是一個可變長度字段。它位于 TCP 報頭的末尾,由幾個 8 位字節組成。所有選項都參與校驗和的計算。選項可以從任何字節邊界開始。格式有兩個選項:(1) 只有選項類型的單字節選項。(2) 一字節期權類型、一字節期權長度和期權實際價值,期權長度的計算包括期權類型、期權長度和期權實際價值。2.3.5應用層協議(協議)超文本傳輸控制協議( )用于分發超文本媒體信息,相當靈活和快速,是目前通過 Internet 進行信息交換的最主要方式。該協議建立在請求/響應模型之上,每次發送請求都必須重新建立連接,即程序一次只處理一個請求。客戶端與
36、服務器建立 TCP 連接并向服務器發送請求。請求包含請求方法、URI(Uniform Resource Identifier)、協議版本和相關的MIME-style信息(包括服務器信息、資源實體信息等)。信息和可能的資源)。1.0 為每個請求/響應建立一個新的 TCP 連接,因此包含 HTML 內容和圖像的頁面將需要建立多個短期 TCP 連接。 1.1 提出了長連接的實現方法。 1.1 TCP連接將只建立一次,并重復用于傳輸一系列請求/響應消息,從而減少連接建立的次數和頻繁的連接開銷。但是嵌入式系統不需要連續連接,傳輸的數據量也不是很大,所以系統實現了1.0。具有以下特點:請求/響應,一旦建立
37、傳輸會話,一端(通常是瀏覽器)必須向響應的另一端發送請求。無狀態。每個請求都是自包含的,服務器不會保留先前請求或會話的歷史記錄。雙向傳輸。在大多數情況下,瀏覽器請求網頁,服務器將副本傳輸給瀏覽器。也允許從瀏覽器到服務器的傳輸(如果用戶提交所謂的“表單”)。談判能力。允許瀏覽器和服務器協商傳輸中使用的字符集等細節,發送方指定它提供的功能,接收方指定它接收的功能。支持緩存。為了減少響應時間,瀏覽器緩存它接收到的每個網頁的副本。如果用戶再次請求該頁面,則允許瀏覽器訪問服務器以確定該頁面的內容自緩存后是否發生了變化。支持中介。允許從瀏覽器到服務器的路徑上的機器充當代理服務器,緩存網頁并響應來自它的瀏覽
38、器請求。應用層。在應用層上運行。它使用穩定的、面向連接的傳輸協議,例如 TCP,但不提供可靠性或重傳機制5 。第三章硬件實現3.1 物理層接口實現系統采用基于Internet的訪問方式,實現串行通信協議和以太網協議的轉換。與局域網的接口由Realtek公司的網絡接口控制器RTL8019AS實現。 RTL8019AS是一款100引腳、PQFP封裝、ISA接口以太網接口芯片,訪問速率為10Mb/s。串行接口可以實現RS-232。 RS-232選用MAXM公司的MAX232(A)。系統通過RTL8019AS與以太網相連,利用現有的局域網線路實現RS-232信號數據的遠程傳輸。下面介紹物理層的接口實現
39、。3.1.1RTL8019AS簡介6RTL8019AS 是系統與以太網通信編制依據。用于實現系統與網絡上其他節點之間發送和接收消息的功能。它位于TCP/IP協議棧的數據鏈路層,是信息傳輸、控制和管理的功能。重要部分。其功能大致可分為以下兩種;通信數據的發送和接收。發送時,將發送的數據按照特定格式組裝成幀,加上前導碼、幀定界燈,并進行CRC校驗。驗證后,通過網線串行發送數據。接收時判斷報文的目的地址是否為本地地址,如果是則檢查報文。如果檢查無誤,則將消息發送到內存中,發送一個ACK響應幀。如果校驗后發現報文有誤,則丟棄接收到的報文,并發送NAK否定確認幀。載波信號的收發和控制。此功能包括載波偵聽
40、、傳輸時間等。準確地說,網絡控制器是一個DTE(數據終端設備)。根據IEEE802.3協議的模型功能劃分,10Mb/s以太網控制器的功能模塊可分為介質訪問控制(MAC)子層、訪問單元接口(AUI)、介質訪問單元(MAU)和物理信號計(PLS)等4個部分,一般結構框圖如圖3.1所示:地址寄存器地址寄存器MACPLS緩沖存儲器網絡接口AUIMAU系統總線圖 3.1 RTL8019AS 結構框圖各單元的功能如下:MAC子層負責實現CSMA/CD協議,發送和接收數據包管理通信媒體,完成數據幀同步,接收數據幀時對數據幀進行定界,檢測目的地址是否匹配處理沖突。PLS完成發送數據、接收數據、載波監聽、錯誤檢
41、測等功能,所有這些功能都與通信介質無關。 PLS將MAC傳輸的NRI(不歸零)編碼數據轉換成曼徹斯特編碼后通過AUI發送給MAU,或者通過AUI從MAU接收曼徹斯特編碼編碼的數據,對數據進行NRI翻譯后代碼發送,數據發送到MAC。AUI 為 PLS 功能和 MAU 之間的信號提供了一個通道。MAU與通信介質直接相關,是DTE與網絡介質之間的功能、電氣和機械功能。機械接口。它會隨著通信介質的不同而不同,用于完成發送數據、接收數據、環回和碰撞檢測、SQE(Signal Quality Error)測試等功能。網絡沖突檢測、沖突避免與重傳、接收報文目的地址是否匹配、報文CRC校驗檢測等均由硬件完成。
42、在該系統中,僅控制發送、接收、初始化、中斷處理、錯誤處理和I/O操作等。3.1.2RTL8019AS部分結構(1) RTL8019AS部門有兩個RAM區。一個塊的容量為16KB,地址為0 x40000 x7fff,用于發送和接收緩沖區。發送和接收緩沖區以頁為單位,每頁為256字節,共64頁,對應的頁碼為0 x400 x80。一般將前12頁(即地址為0 x40000 x4bff)作為發送緩沖區,分為兩個6頁。兩個發送緩沖區交替使用,以提高發送效率。最后52頁(即地址為0 x 4c000 x7fff)作為接收緩沖區。為了有效地使用接收緩沖區,接收緩沖區RAM形成了一個FIFO循環隊列結構。要接收和
43、發送數據包,需要通過 DMA 對 RTL8019AS 的 16KB RAM 進行讀寫。它實際上是一個雙口RAM,有兩組總線連接到Daao RAM:一組總線是RTL8019AS讀寫RAM,即本地DMA;(2) 另一個block只有32個字節,地址為0 x00000 x 001f,稱為Prom page,存儲網卡芯片的以太網物理地址,其中地址0 x00000 x000b共12個字節來存儲以太網物理地址,后跟0 x000b地址存儲廠商代碼和產品識別碼。以太網物理地址為6個字節,這里使用12個字節,因為這12個字節是重復存儲的。比如0 x00000 x000b中存儲的物理地址0 x 50584AC21
44、9DF就是50505859ACACC 2C21919DFDF,可以看到單雙地址存儲是一樣的。制造商和產品識別碼也重復存儲在單地址和雙地址中。值得一提的是,網卡地址是唯一的,而且一旦網卡生產出來,網卡芯片的物理地址是固定不變的,無法更改。(3) RTL8019AS的I/O地址為32,地址偏移為0 x000 x 1f(對應本例中的0 x3000 x 31f)。從 0 x00 到 0 x 的 16 個地址是寄存器地址。0f寄存器分為4個頁面:Page0Page3,要訪問的頁面由RTL8019AS的命令寄存器(CR)中的PS0和PS1決定。0 x100 x17為遠程DMA地址,都可以作為遠程DMA端口
45、,使用其中一個即可,本題選擇0 x10。這樣單片機就可以通過讀寫端口0 x10來訪問RTL8019AS的緩沖區。從 0 x18 到 0 x 的 8 個地址1f是復位端口。它們具有相同的功能,用于 RTL8019AS 的熱復位。只需使用其中之一。本主題選擇 0 x18。3.1.3RTL8019AS的寄存器介紹寄存器的設置和制作是RTL8019AS應用的關鍵。 RTL8019AS的寄存器大致可以分為兩組,一組稱為NE2000寄存器組,另一組稱為PnP組。由于本設計不涉及即插即用功能,因此PnP寄存器不再詳述。NE2000 寄存器組分為 4 頁,由寄存器 CR 中的 PS0 和 PS1 選擇。其中0
46、 x000 x1f為控制寄存器。 0 x100 x17 為遠程 DMA 控制寄存器。 0 x180 x1f為Reset寄存器,8個Reset端口功能相同。表3.1為RTL8019AS寄存器組及其地址分布表:表 3.1 RTL8019AS NE2000 寄存器組3.1.4與系統配置和操作相關的寄存器1、CR:命令寄存器(00H;類型:讀寫)該寄存器用于選擇寄存器頁、啟用或禁用遠程 DMA 以及發出各種命令。可能是編程中最常用的寄存器。少量象征簡要地7、6PS1、PS0代表一個注冊頁面。 02頁:兼容NE2000; 3 頁:RTL8019AS 配置53RD20000非法; 001遠程讀取; 010
47、遠程寫入; 011發送數據包; 1遠程DMA完成/退出。2TXP發送數據包時必須設置。發送完成或退出時部分重置。寫零沒有效果。1STA無控制功能,只反映該位寫入的值,上電時為00直通式該位是停止命令。既不發送也不接收帖子。2、ISR:中斷狀態寄存器(O7H;類型:0頁讀寫)該寄存器反映了網絡接口控制器(NIC)的狀態,主設備通過讀取其狀態來確定中斷的來源。少量象征簡要地7RST當網絡接口控制器 (NIC) 進入重置狀態時置位,并在向 CR 發出啟動命令時清除。當接收緩沖區溢出時也設置,當從緩沖區讀取一個或多個數據包時清除。6研發中心遠程 DMA 完成時設置5碳納米管當一個或多個計數計數器的最高
48、有效位為 1 時設置4OVW當接收緩沖區耗盡時置位3TXE發送錯誤位,當數據包由于太多沖突而被丟棄時設置2RXE當接收到包含 CRC、幀對齊或幀丟失等錯誤的數據包時設置1PTX表示數據包發送無誤0PRX表示接收到的數據包沒有錯誤3. IMR:中斷屏蔽寄存器(0FH;類型:0頁寫,2頁讀)每一個都對應于 ISR。上電時全為0,某個位置一個1打開對應的中斷。4. DCR:數據配置寄存器(0EH;類型:0頁寫,2頁讀)5. TCR:發送配置寄存器(0DH;類型:0頁寫,2頁讀)少量76543210象征111OFSTATDPB1PB0CRC其中: CRC 禁用或允許發送時的 CRC 邏輯。6. TSR
49、:發送狀態寄存器(04H;類型:0頁讀取)該寄存器指示數據包傳輸的狀態。少量76543210象征OWCCDH1CRSABTCOL1PTX其中:ABT-表示網絡接口控制器因沖突過多而退出發送;COL表示傳輸與網絡中的其他站發生沖突;PTX 1 表示傳輸完成,沒有錯誤。7. RCR:接收配置寄存器(0CH;類型:0頁寫,2頁讀)少量象征簡要地7總是 16總是 15星期一設置時為監控模式,只檢查接收到的數據包,不緩存:清除時,緩存。4專業版設置后,所有具有物理地址的數據包都被接受;清除后,僅接受與節點地址匹配的數據包3是設置時接受具有多個目標地址的數據包,清除時拒絕具有多個目標地址的數據包2AB設置
50、時,接受具有廣播目標地址的數據包,清除后,拒絕具有廣播目標地址的數據包。1增強現實設置時,接受長度小于 64 字節的數據包,清除時拒絕接受長度小于 64 字節的數據包。0九月設置時,接受接收錯誤的數據包,清除時,拒絕接收錯誤的數據包。8. RSR:接收狀態寄存器(0CH;類型:0頁讀取)少量象征簡要地7DFR延遲。當檢測到載波或碰撞時設置6DIS禁止接待。當 NIC 處于監視模式并且禁用接收時設置。允許退出監控接收時清除。 .5物理層當接收到的數據包是多播或廣播目的地址時設置;當它是物理目標地址時清除。4MPA丟包位。當由于緩沖或監控模式不足而無法接收傳入數據包時設置。3總是 12PAE幀對齊
51、錯誤,表示輸入包沒有終止于字節邊界,CRC與邊界字節不匹配1CRCCRC 錯誤0PRX收到的數據包沒有錯誤3.1.5DMA相關寄存器1、CLDA0、1:當前本地DMA寄存器(0lH和02H;類型:0頁讀取)當前本地 DMA 地址可以從這兩個寄存器中讀取。2. PSTART:起始頁寄存器(01H;類型:0頁寫,2頁讀)該寄存器設置接收環形緩沖區的起始頁地址。3. PSTOP:停止頁寄存器(02H;類型:0頁寫,2頁讀)該寄存器設置接收環形緩沖區的結束頁地址。4、BNRY:邊界寄存器(03H;類型:0頁讀寫)該寄存器用于防止環形緩沖區覆蓋。一般用作指針,表示主機有最后一個環形緩存頁面出局。5、TP
52、SR:發送起始頁寄存器(04H;類型:0頁寫)該寄存器設置發送數據包的起始頁地址。6 、TBCR0、1:發送字節數寄存器(05H&06H;類型:0頁寫)這兩個寄存器設置發送數據包的字節數。7. NCR:沖突數寄存器(05H;類型:0頁讀取)該寄存器記錄一個節點在數據包傳輸中遇到的沖突次數。8 、FIFO:先進先出寄存器(06H;類型:0頁讀取)該寄存器允許主機在發生環回后查看 FIFO 內容。9、CRDA0、l:當前遠程DMA地址寄存器(08H和09H:類型:0頁讀取)這兩個寄存器包含遠程 DMA 的當前地址。10、RSAR0,1:遠程起始地址寄存器(08H&09H;類型:0頁寫)這兩個寄存器
53、設置遠程 DMA 的起始地址。11. RBCR0,l:遠程字節數寄存器(0AH&0BH;類型:0頁寫)這兩個寄存器設置遠程 DMA 的數據字節數。12. CNTR0:幀對齊錯誤計數器(0DH;類型:0頁讀取)13. CNTR1:CRC錯誤計數器(0EH:類型:0頁讀取)14. CNTR2:丟包計數器(0FH;類型:0頁讀取)15、PAR05:物理地址寄存器(01H06H;類型:1頁讀寫)該寄存器保存該節點的地址,用于與接收到的數據包的目標地址進行比較,并決定接受或拒絕。16、CURR:當前頁寄存器(07H;類型:1頁讀寫)該寄存器指向第一個緩存頁面的頁面地址以接受數據包。17、MAR0-7:多
54、發地址寄存器(08H0FH;類型:1頁讀寫)這些寄存器為由 CRC 邏輯散列壓縮的多重地址提供過濾位。3.2 硬件設計3.2.1硬件接口框圖單片機嵌入式TCP/IP的硬件部分涉及到單片機與網卡控制器的接口。它也屬于TCP/IP協議鏈路層設計,是協議實現的硬件平臺。本課題選用的方案硬件電路簡單,外圍器件成本也相對較低7 。接口電路框圖如圖3.2所示(具體電路原理圖見附件1):X1 P2X1 P2X2單 片 機RXD P0TXD串行通信32KB RAM鎖存器網卡主芯片RTL8019AS網絡變壓器RJ-45接口以太網絡12MHZ22pF22pF圖 3.2 硬件接口框圖3.2.2主要成分:本例主要部件
55、包括:主處理器(51 MCU)、地址鎖存器、外部RAM、以太網控制芯片、EEPROM、隔離低通濾波器。主處理器采用愛特梅爾的51單片機芯片AT 89C52,可以滿足需要,而且非常常用,便宜又容易獲得。地址鎖存器用于實現單片機地址/數據總線的復用,選用常用的鎖存芯片74LS373。外部RAM選用32K字8位高速CMOS靜態RAM芯片HM62256。以太網芯片采用瑞昱公司的RTL8019AS,其功能和使用方法在3.1節中有詳細介紹。此外,以下組件也是必不可少的:(1) 網絡變壓器網卡控制器不能直接連接到以太網。它需要通過網絡變壓器。本項目采用漢仁HR61101G作為隔離濾芯。工作點;同時,高頻干擾
56、受限于變壓器本身的通帶。(2) 串行 E 2 PROMX5045本課題使用的X5045是一款帶串口E 2 PROM的CPU監視器,具有FLASH、復位、看門狗三個功能。復位函數復位微控制器和網卡控制器。存儲功能存儲用戶的一些設置,如MAC地址、IP地址等。SI、SO、SCK引腳分別與單片機的INT1、T0、T1相連。 RESET 是開漏輸出,所以需要一個上拉電阻。(3)電平轉換芯片MAX232MAX232是一個串行電平轉換電路。負責單片機和PC之間的電平轉換。 232的T1IN腳接單片機的TXD,232的R1O腳接單片機的RXD。 PCRXD 和 PCTXD 是 RS-2 電平,是標準的串口電
57、平。數據可以從串口輸入到單片機,單片機將數據傳送到8019,然后傳送到以太網。相反,從8019接收到的數據可以通過單片機從串口發送出去。第 4 章 軟件實現本課題的軟件部分分為兩部分:一是網卡芯片RTL8019AS驅動的設計;二是TCP/IP協議棧的嵌入。下面將分別介紹這兩個部分的設計思路。4.1 RTL8019AS驅動設計從程序員的角度來看,8019 的工作流程非常簡單。驅動程序將要發送的數據包以指定的格式寫入芯片,并啟動發送命令。 8019會自動將數據包轉換成物理幀格式,在物理信道上傳輸。反之,8019接收到物理信號后,將其恢復為數據,并按照規定的格式存儲在芯片RAM中,供主機程序訪問。總
58、之,8019完成了數據包與電信號的轉換:數據包電信號。以太網協議由芯片硬件自動完成,對程序員透明。驅動程序包括3個部分,分別由3個函數實現:芯片初始化函數、消息發送函數、消息接收函數。下面將分別介紹其功能和實現。4.1.1RTL8019AS的初始化8初始化函數用于初始化 RTL8019AS。在初始化操作之前需要RTL8019AS 執行熱復位操作和清除 ISR 寄存器。然后開始 RTL8019AS 的初始化操作。初始化步驟如下:CR=0 x21,選擇第0頁的寄存器;TPSR=0 x45,設置發送頁的起始頁地址,初始化為第一個發送緩沖區的頁,即0 x40;PSTART=0 x45,PSTOP=0
59、x80,構造緩沖環:0 x 4c0 x80;BNRY=0 x 4C,設置讀指針;RCR=0 xCC,設置接收配置寄存器,使用接收緩沖區,只接收有自己地址的數據包(有廣播地址的數據包)和組播地址的包,小于64字節的包被丟棄,有錯誤的數據包被檢查不接受。TCR=0 xE0,設置發送配置寄存器,使能自動CRC生成和自動校驗,工作在正常模式;DCR=0 x C8 ,設置數據配置寄存器,使用FIFO(Final Input Final Output)緩沖區,普通模式,8位數據傳輸,字節順序為高位字節在前,低位字節在后;IMR=0 x00,設置中斷屏蔽寄存器屏蔽所有中斷;CR=0 x61,選擇第1頁的寄存
60、器;CURR=0 x4D,CURR為RTL8019AS寫入的指針,指向當前正在寫入的頁的下一頁,初始化時指向0 x 4C+1=0 x4D;設置多地址寄存器MAR0MAR5,全部設置為0 x00;設置網卡地址寄存器PAR0PAR5;CR=0 x22,選擇第1頁的寄存器,進入正常工作狀態。4.1.2消息發送本3.1.2節介紹RTL8019AS的RAM結構:它有16K字節的RAM,地址為0 x40000 x7FFF,每256字節稱為一頁,頁碼為0 x400 x80。系統使用 0 x400 x4B 作為發送緩沖區,共 12 個頁面,可以存儲最大的 2 個以太網數據包。使用0 x4C0 x7F作為接收緩
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國變速齒輪泵數據監測報告
- 2025年中國雙門雙節柜市場調查研究報告
- 保護患者隱私權醫療機構的責任與行動
- 2025年中國雙葉輪攪拌槽市場調查研究報告
- 2025年利用溫度變化加工機械項目發展計劃
- 2025年中國單面瓦楞機市場調查研究報告
- 2025年中國凹版輪轉印刷機數據監測研究報告
- 2025年中國冰箱護板市場調查研究報告
- 2025年中國全自動洗衣機脫水桶市場調查研究報告
- 健康管理與醫療大數據的融合創新
- 基于模糊控制的移動機器人的外文翻譯
- 二年級下冊科學教案 第三單元1.《春夏秋冬》 大象版
- 低壓電工安全培訓課件-
- Oracle ERP系統建設實施方案
- TSG-R0005-2022《移動式壓力容器安全技術監察規程》(2022版)
- 廣東省教育廳關于規范化城市幼兒園的辦園標準
- 【推薦】大華“智慧消防”物聯網綜合管理解決方案
- 分層總和法計算地基沉降excel
- 2020 ACLS-PC-SA課前自我測試試題及答案
- 2022年CASEAR2簡易操作手冊
- 中醫方劑學歌訣大全(最全收藏版)
評論
0/150
提交評論