• 《UIP在NIOS上的移植》


          移植环境: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

  • 相关阅读:
    js获取当前时间
    jQuery动画
    label用js,jquery取值赋值,以及怎么在后台取值
    jquer 事件,选择器,dom操作
    linq分页组合查询
    linq的简单增删改查
    内置对象session ,cookic,Application,ViewState
    listview控件及其与数据库的连接
    Mybatis 学习
    UML类图的6中关系
  • 原文地址:https://www.cnblogs.com/fangying7/p/3760158.html
Copyright © 2020-2023  润新知