新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于DM9000A的以太網接口設計與實現

        基于DM9000A的以太網接口設計與實現

        作者: 時間:2014-03-19 來源:網絡 收藏

         

        本文引用地址:http://www.104case.com/article/234974.htm

        3.1.3 數據幀接收

        數據接收使能后,就會自動接收數據。接收到的數據先保存在地址從0x0C00~0x3FFF的13 KB內部SRAM緩存空間中,它是一個環形結構。

        利用寄存器MRCMDX(FOH)和寄存器MRCMD(F2H)可獲取緩存中的數據幀信息。接收到的數據幀格式如圖6所示。

         

         

        其中第1個字節是接收數據標志字節,表征接收到數據幀是否有效。第2個字節是接收數據幀的狀態字節,其中的內容與接收狀態寄存器RSR中的內容相同,可以用來判斷所接收的數據幀是否正常。第3,4個字節是接收到數據的長度字節,其中低位在前,高位在后。從第5個字節開始的數據才是真正數據幀內容。

        數據接收過程如下:

        (1)檢查中斷狀態寄存器:ISR(FEH),若PRS位為1,說明有新的數據幀接收,寫1清除PRS位;若為0,說明無數據,直接返回。

        (2)讀取第1個字節,即接收數據標志字節。如果該字節為01,則表示接收下來的是有效數據幀;如果該位為00則表示沒有數據到達,或數據已經接收完成;如果既不是01又不是00,則認為有異常發生,這時就要將DM9000A芯片重啟以使芯片恢復到正常狀態。

        (3)讀取第2個字節,即接收狀態字節。根據接收狀態字節判斷所接收的數據幀是否正常。

        (4)讀取第3,4字節,即數據幀長度字節。

        (5)讀取真正的數據幀內容。

        (6)根據獲取的長度信息,判斷是否讀完一幀。如果讀完,接著讀下一幀,直到遇到首字節是00H的幀,說明接收數據已讀完。

        數據幀接收流程如圖7所示。

         

         

        3.2 上層通信協議程序設計

        TCP/IP協議模型可以分為四個層次,從下到上依次為:鏈路層、網絡層、傳輸層和應用層。每一層都有不同的功能,低一層為高一層提供服務。

        標準的TCP/IP協議棧對處理器的計算、存儲要求比較高,然而,DSP系統的計算資源和存儲資源通常是非常有限,在DSP中實現標準的TCP/IP協議棧將占用大量系統資源,不利于DSP其他方面的應用,因此必須對它進行簡化并優化,盡可能做到代碼精簡,降低存儲開銷。本系統設計和實現了TCP/IP通信協議的必要部分,包括:ARP,IP,ICMP,TCP,UDP等協議。

        ARP(地址解析協議)為IP地址到對應的硬件地址之間提供動態映射。IP協議是TCP/IP協議的核心,所有的TCP,UDP,ICMP的數據都是以IP數據格式傳輸的。ICMP(網絡控制報文)是用來傳遞差錯報文以及其他需要注意的信息,有各種類型的ICMP報文,本文只用到ICMP的請求回顯(類型字段為8、代碼字段為0)。TCP提供一種面向連接的、可靠的字節流服務,交換數據之前必須先建立一個TCP連接,即“三次握手”UDP是一個簡單的面向數據報的傳輸層協議,它把應用程序傳給IP層的數據發送出去,但是并不保證他們能到達目的地。在鏈路層,當DM9000A完成一個以太網數據幀接收后,將其讀入暫存數組,檢查以太網幀類型字段,該字段值為0x0806,表示數據幀為ARP幀;該字段的值為0x0800,表示數據幀為IP幀。接著,分別交由ARP協議處理模塊或IP協議處理模塊。編程時使用框架如下:

        if(完成以太網數據幀接收)

        { if(以太網類型字段==0x0806)

        {ARP處理模塊}

        if(以太網類型字段==0x0800)

        {IP處理模塊}

        }

        網絡層收到的為ARP數據報,ARP根據操作字段(ARP請求為1,ARP應答為2),或者發送ARP應答或者更新ARP地址映射表。若為IP數據報,IP協議處理模塊對數據包解析后,IP首部協議字段若為1就將數據交給ICMP協議處理模塊,若為6則交給TCP處理模塊,若為17則交給UDP處理模塊。傳輸層得到UDP的報文后,按照UDP協議中的端口,分別送給不同的應用層序。若傳輸層得到的是TCP報文,則要根據TCP的狀態轉換圖進行處理。在TCP或UDP的處理模塊中,根據目的端口號,分別將數據送往不同的用戶應用程序。其工作流程如圖8所示。

         

         

        4 結語

        本文把高度集成、低成本的快速以太網控制器DM9000A與數據處理能力強大、高運行速度的DSP()相結合,設計出了一種DSP的以太網接口。實驗結果表明,DSP系統可以通過該接口實現以太網數據通信,經自行裁剪的TCP/IP協議棧,不僅實現了IP,ARP,ICM P,TCP和UDP協議,而且提高了數據傳輸效率。該接口具有硬件接口簡單、外圍器件少、運行穩定可靠、性價比高等特點,同時也能夠滿足測試、采集等高速數據傳輸系統的要求,符合當今DSP設備趨于網絡化發展的方向。

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


        雙絞線傳輸器相關文章:雙絞線傳輸器原理

        上一頁 1 2 下一頁

        關鍵詞: DM9000A DSP

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 旌德县| 阿图什市| 麦盖提县| 辛集市| 高陵县| 咸丰县| 兴义市| 陈巴尔虎旗| 盖州市| 长丰县| 江津市| 个旧市| 武功县| 河间市| 满城县| 宣武区| 高陵县| 开平市| 新蔡县| 齐齐哈尔市| 海林市| 鄂托克前旗| 长海县| 临泽县| 盐亭县| 汪清县| 息烽县| 铜山县| 红河县| 阿拉善盟| 万盛区| 环江| 余干县| 修文县| 且末县| 滦平县| 肃宁县| 克什克腾旗| 横峰县| 湘乡市| 菏泽市|