RL-TCPNet的移植與使用簡介

來源:互聯網
上載者:User

標籤:end   要求   軟體   frame   中斷處理   操作   改進   any   rds   

  在互連網/物聯網時代,嵌入式產品接入網路已經不是什麼新鮮概念或高端技術了。 通過網路對產品進行遠端管理是一種流行而又高效的方法,常見的方法有Telnet(TCP)、SNMP(UDP)和HTTP,這些要求產品擁有網卡(硬體)和支援TCP/IP協議(軟體)。

  基於嵌入式Linux的產品先天就擁有了TCP/IP的協議棧支援,而一些傳統的不帶OS或基於小型RTX作業系統(uCos-ii)也藉助於LWIP,uIP等開源TCP/IP協議棧實現了網路應用。

  Keil公司的MDK是最流行ARM開發工具,作為MDK的RL庫一部分的RL-TCPnet自然值得關注,雖然在MDK早期版本就已經布RL-TCPnet,但據江湖http://www.sansewa.com/tuofa_yuanyin/813.html傳言有協議支援不全和bug多等問題。但經過多次改進和升級,目前(MDK v4.7)已經相當穩定和好用了,MDK v5.0更是對其進行了大幅度升級(名字都變了)。在MDK下使用RL-RTX+RL-TCPNet構建應用有著得天獨厚的優勢。RL-TCPnet唯一的不好,可能就是不開源吧。

  根據筆者經驗,移植TCP/IP做網路應用,痛點不在傳輸層/網路層或是應用程式層而是在物理層(網卡/PHY晶片提供)和MAC層(ARM晶片提供)。理由如下:

  1.很多TCP/IP庫應用程式層都提供了大家熟悉的BSD Socket介面,可以像Linux上那樣方便開發網路應用。

  2.傳輸層和網路層都是封裝在TCP/IP庫內部,如果不是要去研究tcp/ip協議過程不需要太關心其內部細節。

  3.MAC層和物理層都是由硬體提供的,各個案例使用的晶片各不相同,需要針對不同的晶片實現其驅動以及供TCP/IP庫調用的介面。

  以NXP的LPC1768和NS的DP83848C(PHY)為例,簡單說下RL-TCPnet的使用吧,其實標題說移植有些牽強,因為RL-TCPnet是不開源的,所以MDK針對不同的硬體運行平台提供了不同的RL-TCPnet的庫檔案。大概步驟如下:

  一.加入RL-TCPnet庫到工程

  針對Cortex-M3的RL-TCPnet庫“TCP_CM3.lib”可以在MDK安裝目錄“Keil\ARM\RV31\LIB\”下找到。添加到你的工程就可以了,沒有特殊情況盡http://www.chinamaofa.com/量給TCP/IP庫使用內部RAM以提高效率。

  二.實現LPC1768的MAC驅動和PHY晶片DP83848C的驅動

  需要提供如下功能:

  1.實現LPC1768的MAC初始化,以及MII/RMII介面的配置

  2.通過MDIO對PHY進行初始化配置,完成物理串連link以及介面模式速率的管理(一般配置成自適應模式Auto Nigotiation)。

  針對1和2,RL-TCPnet庫要求以函數“void init_ethernet (void)"來提供。

  3.實現為TCP/IP庫提供服務的介面函數(OSI網路分層定義下層實體為上層提供服務)

  有兩種方式:查詢和中斷。

  3.1查詢模式(指MAC主動去查詢是否收到PHY發來的以太幀)

  實現收幀和發幀兩個介面函數:

  void poll_ethernet (void)

  void send_frame (OS_FRAME *frame)

  3.2 中斷模式 (MAC中斷,不是PHY的中斷)

  需要實現發幀、開啟/關閉MAC使能以及收幀(在中斷處理中進行)函數

  void send_frame (OS_FRAME *frame)

  void int_enable_eth ()

  void int_disable_eth ()

  - interrupt function void ENET_IRQHandler (void)

  以上實現代碼可以參考MDK提供的”EMAC_LPC17xx.c“(位於MDK安裝目錄\Keil\ARM\Boards\Keil\MCB1700\RL\TCPnet\Library下)。

  三.使用RL-TCPnet開發應用

  RL-TCPnet既可以在RTOS上應用也可以”單獨“運行,因為RL-TCPnet本身就被設計成一個單獨的TCP/IP OS。使用RL-TCPnet可以開發DNS、FTP、HTTP、SNMP、Telnet等各類網路應用。

RL-TCPNet的移植與使用簡介

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.