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

最新文章

  1. (视频)Erich Gamma 与 Visual Studio Online 的一点野史
  2. css 去除点击之后的虚线
  3. CSS中如何实现未知尺寸图片垂直居中
  4. Android监听Home键
  5. 最短路(Bellman_Ford) POJ 1860 Currency Exchange
  6. CSS3实现的渐变按钮,在IE7、IE6下的滤镜使用。
  7. Hibernate HQL和原生SQL查询的一点区别
  8. 刷票 变 IP
  9. Got error creating database manager: java.io.IOException解决方法
  10. list的三种遍历方法
  11. [置顶] Java启动命令大观
  12. wildcard
  13. pythonl练习
  14. Sun 与 Oracle 合并的未来
  15. python转义字符——重点解释:\b,\n和\r区别
  16. python_flask 基础巩固(自定义URL转换器)
  17. python读取xml文件示例
  18. Spring点滴五:Spring中的后置处理器BeanPostProcessor讲解
  19. Oracle_SQL(5) 连接和子查询
  20. agc007D - Shik and Game(dp 单调性)

热门文章

  1. JSP隐含变量和Spring中Model在EL表达式中的读取顺序
  2. Servlet与JSP版本历史以及Tomcat支持的版本
  3. eclipse各版本代号
  4. C++实现类似飞鸽的内网聊天工具,采用多播的协议实现
  5. lua的corroutine学习
  6. 分布式存储数据库的Key的随机分布(RP)和顺序分布(OPP)
  7. A.Kaw矩阵代数初步学习笔记 6. Gaussian Elimination
  8. 【Alpha阶段】第六次Scrum例会
  9. js实现身份证号码验证
  10. iOS - 如何自动播放H5中的音频