新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > TCP/IP協議在VRS51單片機上的實現

        TCP/IP協議在VRS51單片機上的實現

        作者: 時間:2013-09-10 來源:網絡 收藏
        引言

          隨著人們對信息化程度的要求不斷提高, 設備上網已經成為一個趨勢。32位機資源豐富,上網方案也較為成熟,但成本相對較高,因而價位偏低的8位機上網方案成為研究的熱點。但是,8位機資源有限,因此在實現8位機以太網連接時,一定要考慮周全。本文介紹在L3074上實現TCP/IP協議棧uIP的移植,成功實現了socket通信。


        硬件平臺

          本方案的硬件平臺主要由L3074和CS8900A組成,經網絡變壓器的隔離,CS8900A與網絡接口RJ-45連接上,這樣整個系統就可以連接到Ethernet。數據輸入可由串口傳遞給系統。

        L3074簡介

          VRS51L3074是Ramtron公司最新推出的單周期、基于8051內核、功能豐富的SOC,是全球第一款集成FRAM的高性能。CPU最高處理速度可達40MIPS,內置64kB Flash存儲器支持ISP、IAP功能、4kB+256B的SRAM以及8kB的FRAM,帶有完全可配置的I2C接口和SPI接口等片內外設,支持JTAG下載和非侵入式在線調試。VRS51系列和8051完全兼容,支持SDCC、Keil等C編譯器,編譯和下載時需要一些特殊的配置。Versa Ware JTAG軟件是VRS51系列單片機的下載工具,和Keil uVision配合使用時需要一些配置。

        CS8900A簡介

          CS8900A是CIRRUS LOGIC公司的一種低價位、高集成度、低功耗、全雙工的16bit以太網控制器,是一款專門為嵌入式系統設計優化的以太網控制器。該芯片的突出特點就是使用靈活,其物理層接口、數據傳輸模式、工作模式都能根據需要而進行動態配置,可通過內部寄存器的配置來適應不同的應用環境。CS8900A有三種工作模式:I/O模式、存儲器模式和DMA模式。

          CS8900A基本工作原理是:在收到由主機發來的數據報后,偵聽網絡線路。如果線路忙,它就等到線路空閑為止,否則立即發送該數據幀 。發送過程中,首先它添加以太網幀頭(包括先導字段和幀開始標志),然后生成CRC校驗碼,最后將此數據幀發送到以太網上。接收時,它將從以太網收到的數據幀在經過解碼、去掉幀頭和地址檢驗等步驟后緩存在片內。通過CRC校驗后,它會根據初始化配置情況,通知主機CS8900A收到了數據幀,最后用某種傳輸模式傳到主機的存儲區中。


        嵌入式TCP/IP協議棧uIP

          TCP/IP是一個協議族,它是一個四層協議模型,包括應用層、傳輸層、網絡層和網絡接口層。應用層定義清晰的會話過程,HTTP、FTP、Telnet和SMTP等都屬于應用層協議;傳輸層提供端到端的通信,該協議有傳輸控制協議(TCP)和用戶數據報協議(UDP);網絡層負責數據打包和邏輯尋址,IP、ICMP和ARP等協議都屬于網絡層;網絡接口層負責在源和目的節點間線路上進行無差錯的傳輸數據,具有流量控制等功能。

          TCP/IP協議較為復雜,實現起來非常困難,一般都采用現有的TCP/IP協議棧來實現。本系統就是采用源碼開放的免費嵌入式TCP/IP協議棧uIP來實現TCP/IP協議的。

          uIP是專門為8位和16位嵌入式微控制器設計的微型TCP/IP協議棧 , 它是由瑞典計算機學院的Adam Dunkels開發的免費開源軟件,最新版本為uIP1.0。uIP完全是由C語言編寫的,因此可移植到各種不同的CPU結構和操作系統上。uIP提供了網絡通信所必須的協議,本身代碼和占用的內存數都非常少,uIP的源代碼只有幾kB,RAM僅占用幾百字節。uIP具有如下特點:

          1)完整的說明文檔和公開的源代碼,全部由C編寫,并附有詳細的注釋,便于移植。

          2)極少的代碼占用量和RAM資源要求,尤其適合于8/16位單片機。

          3)支持IP、ARP、TCP、ICMP和UDP等基本功能。

          4)高度的可配置性以適應不同資源條件和應用場合。

          5)支持多個主動連接和被動連接并發,支持連接的動態分配和釋放。

          6)簡易的應用層接口和設備驅動層接口。

          7)完善的示例程序和協議實現范例。

          為了節省資源占用,簡化應用接口,uIP1.0在內部實現上做了特殊處理。

          1)注意各模塊的融合,減少處理函數的個數和調用次數,提高代碼復用率以減少ROM占用。

          2)基于單一全局數組的收發數據緩沖區,不支持內存動態分配,由應用負責處理收發的數據。

          3 )基于事件驅動的應用程序接口,各并發連接采用輪循處理,僅當網絡事件發生時,由uIP內核喚起應用程序處理,這樣uIP用戶只須關注特定應用就可以了。傳統的TCP/IP實現一般要基于多任務處理環境,而大多數8位機系統不具備這個條件。

          4)應用程序主動參與部分協議棧功能的實現(如TCP的重發機制,數據包分段和流量控制),由uIP內核設置重發事件,應用程序重新生成數據提交發送,免去了大量內部緩存的占用。基于事件驅動的應用接口使得這些實現較為簡單。

          uIP實現了TCP/IP協議族的四個基本協議:ARP(地址解析協議),IP(網際協議),ICMP(因特網信息控制協議)和TCP(傳輸控制協議),UDP協議是可選模塊。

          IP(Internet Protocol網際協議)是TCP/IP協議族中最為核心的協議,提供不可靠的無連接的數據報傳送服務。所有的TCP、UDP、ICMP及IGMP數據都是以IP數據報格式傳輸的。uIP的IP協議主要負責封裝TCP幀、驗證輸入包IP頭的正確性、接受IP數據報進行處理并向上層協議提交以及TCP與ICMP之間的復用數據包。為了節省占用空間,uIP1.0只支持一個數據報的分片和重組。

          TCP(Transmission Control Protocol)協議是傳輸層的協議之一,它提供高可靠性的數據通信。TCP的主要工作是把應用程序交給的數據分成適當的小塊交給下面的網絡層,確認收到的分組,設置發送最后確認分組的超時時鐘等。TCP是uIP重點實現的協議。為了減少存儲器空間占用,uIP沒有實現TCP發送和接收數據的窗口調整,且不會緩存收到的TCP段,而是立即交給應用程序處理。重發也是由應用程序實現的。在輸出數據時,每一個連接只能有一個正在傳輸的TCP段。

        51單片機相關文章:51單片機教程


        tcp/ip相關文章:tcp/ip是什么


        pos機相關文章:pos機原理



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 石狮市| 乌鲁木齐市| 岳池县| 循化| 武乡县| 宁强县| 寿光市| 乌苏市| 汪清县| 阳朔县| 龙陵县| 仙居县| 乳山市| 都匀市| 屯昌县| 渝中区| 清新县| 清镇市| 邵阳县| 东海县| 宁国市| 新泰市| 靖江市| 米脂县| 隆昌县| 安达市| 德令哈市| 沂南县| 荃湾区| 章丘市| 红河县| 桦川县| 甘孜县| 陈巴尔虎旗| 腾冲县| 收藏| 山西省| 磐安县| 南平市| 新邵县| 富宁县|