原创 STC90LE58AD ENC28J60 WEB

2010-12-10 19:53 3679 10 14 分类: MCU/ 嵌入式

拜读了某前辈的文章,看来我找到移植UIP0.9问题的关键了。


通常ENC28J60的驱动程序只考虑发送参数packet指针指向的数据区,在HTTP需要回应的数据的时候,没有将需要的数据(UIP处理后放在uip_appdata指针指向的数据区)发送出去,而是原样发送了接收时候的数据(网上有RTL8019AS驱动实现的UIP协议栈应用的有这个关键的处理)。


 741ae9cb-05b5-49ec-8b3a-b165eb4681ba.JPG


这是PC机发送的GET数据包


a42a5887-1139-4fbc-aebf-4852eb60872e.jpg


这是web实验板返回的数据包,可见数据部分和上一次接收到的数据包重复。


我想这也许是大多数想在ENC28J60上应用UIP的编程人员所遇到的问题,而在函数enc28j60WriteBuffer(len, packet);中当缓冲区字节数为40 + UIP_LLH_LEN时,将指针pda指向uip_appdata。



void enc28j60WriteBuffer(uint16_t len, uint8_t* pda)
{
  uint16_t i=0;     
        CSACTIVE;
        // issue write command
        //SPDR = ENC28J60_WRITE_BUF_MEM;
        //waitspi();


  SPI_RW(ENC28J60_WRITE_BUF_MEM);


        while(i<len)
        {
                // write data
    if(i == 40 + UIP_LLH_LEN)
    pda=uip_appdata;//从54字节开始填充需要返回的数据内容


    SPI_RW(*pda);
    pda++;i++;
        }
  /*
        while(len)
        {
                len--;
                // write data
    SPI_RW(*pda);
    pda++;
        }
  */
        CSPASSIVE;
}


结果能够正常访问UIP的前两个默认网页about和connections,而files和statistics的时候还是打不开。还请先驱指点啊!!!


3071b4cf-db82-46d4-be8d-9a460e709c4c.JPG


ca11a939-ee3c-40dd-95f4-2bb986d5a4c3.JPG


这是网页截图。


ebbd8eb6-bef2-4818-b180-32c9daba0c42.JPG


这是ping包,速度比较慢。


这是晕来晕去整理的有关移植UIP0.9到51单片机的资料,里面有电路原理,源程序和说明文档。


这是做好的单片机以太网实验板:


eefc31f2-fbbe-4a9a-9deb-deba6dc6f057.jpg71725789-1192-42d6-b0e8-d7f87aefb576.jpg

文章评论4条评论)

登录后参与讨论

用户439616 2013-6-28 08:57

那个压缩包哩没有原理图是怎么回事呢

用户439616 2013-6-28 08:48

学习下

用户274014 2011-9-1 21:22

问题解决了吗? 我移植的也是打不开后面两个网页,只能打开前面两个网页,不知道是什么原因。 有谁知道的麻烦告诉下,谢谢。

用户1589960 2010-12-10 10:11

进来学习下
相关推荐阅读
用户1270731 2011-03-22 09:41
模拟外调制器偏置电压自动控制实现之软件部分
attachment download   模拟外调制器偏置电压自动控制实现之软件部分  三、偏置电压自动控制的实现 两路导频信号1.硬件组成部分单片机外调制器高精度DA转换正负电压调节电路CSO分量...
用户1270731 2010-12-10 19:29
ENC28J60提供的超小协议栈
ENC28J60提供的超小协议栈,它用一个全局的数组来做接收和发送缓冲。部分发送数据包从接收包中更改标志和校验和得到,最大化的减少内存拷贝。实现TCP/IP协议收发数据包的各个子功能,如校验和计算,标...
用户1270731 2010-12-03 07:58
单片机以太网-web网页问题
uip协议栈,STC12LE58AD单片机。问题是得不到网页数据,10延迟后退出,发送无数据。调试httpd部分串口输出如下:ip: version4 header.ip: POSSIBLE TCP ...
用户1270731 2010-06-13 15:03
VC++6.0做的 RS232 数据帧类
// ZBL232Frame1.h: interface for the CZBL232Frame class.////////////////////////////////////////////...
用户1270731 2010-06-03 16:34
铌酸锂晶体横向电光调制实验
实验六 铌酸锂晶体横向电光调制实验<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> ...
我要评论
4
10
关闭 站长推荐上一条 /2 下一条