《UIP在NIOS上的移植》

來源:互聯網
上載者:User

標籤:c   style   blog   http   a   int   

      移植環境:Cyclone IV 開發板,網卡晶片為ENC28J60,瀏覽器(Firefox_24.0.0.5001a)

      首先,需要瞭解網卡晶片ENC28J60,有中文版的說明書:http://wenku.baidu.com/link?url=79r8JOHiGAyAG9kX9-fOYIRh41jfSyRkxPIdAW9XIzdPjIT5Jbh8gjIobjcsIekhYm-4TiSqnXFd74e2tF1bE2WxUPUiEws0RfrDIw9pRKS

      ENC28J60並不是一款標準的乙太網路PHY,它使用SPI協議,只支援10Mbps乙太網路速率。首先搭建NIOS的SOPC系統如:

      系統時鐘100MHz,程式運行在SDRAM中,跟ENC28J60相關的硬體串連,LAN其實是一個SPI,另外還有LAN_CS(片選),LAN_NINT(接收中斷)。

      時鐘為TIMER,定時Period為1ms。

      

      是系統的BDF原理圖串連情況,PLL提供時鐘,C0為系統時鐘,C1為SDRAM時鐘(有相位偏轉-73度)

      

      

      系統編譯後,下載對應的SOF檔案。

      其次,我們要下載UIP的原始碼,地址為:http://www.dunkels.com/adam/uip,現在UIP已經是ThingSqure(Contiki)的一部分。

      下面對UIP進行移植,測試程式為uip提供的web_server程式在UIP的APP檔案夾中。enc28j60的驅動程式為enc28j60.c和enc28j60.h

      

      NIOS II 中主要修改這幾個檔案

      tapdev.c:添加網路卡驅動程式,別忘了初始化MAC地址(tapdev_init函數中)

      uip-confi.h 對UIP的功能進行配置(使能#include "webserver.h")

      clock_arch.c 裡面有個UIP系統時間函數,全域變數g_runtime管理系統時間

      下面開一個定時器來對g_rumtime進行計時。

      

      編譯器後,run as nios ii hardware

      程式運行後,用抓包工具(wireshark)NetAnalyzer查看資料包。

       TCP三向交握,串連請求如下:

      

         

           

       

       

                

      

      程式的為:

      http://download.csdn.net/detail/wangyue2725/7423141

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.