如何通过ENC28J60以太网获取www网页数据

赤炎之瞳 2014-04-17 06:01:46
因为对速度和接收数据长度要求不高,所以主控芯片就用AVR的8位单片机,目前的情况是我可以理解ENC28J60的工作,但是对于如何上www网页,从以太网到www,这之间需要的步骤和流程在脑里现在还是一团浆糊,我的目的是将一个固定www网址上的数据抓取到ENC28J60的缓存中,然后根据数据对板子本身进行一些操作。有没有做过相关工作的帮我划分一下研究模块和顺序,具体内容我可以自己研究,求大仙解惑,可以让我少走一些弯路
...全文
183 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mangoalx 2014-04-22
  • 打赏
  • 举报
回复
ARP 是地址解析,ICMP 是实现ping之类的简单功能。这些都是最基本的。你要读网页,这类似一个浏览器的功能。不过你可以只读数据然后在里面搜索特定字符串,所以只要实现TCP 连接并申请http内容就可以了,应该不难。
赤炎之瞳 2014-04-18
  • 打赏
  • 举报
回复
引用 1 楼 u012586257 的回复:
一般操作方式是在你的单片机上做嵌入web服务器,然后通过网页控制单片机动作。你的做法是反过来,我想也可以。读入HTTP网页内容然后从里面搜索出你要的数据,不过不是主流模式。 实现TCP/IP协议可不是简单的事,最好找现成的工程来修改。如果AVR没有就试试PIC,它有8位机的TCPIP协议栈
我有找到一个类似的工程,内部有以太网驱动以及ARP和ICMP,但是因为我对协议这方面不怎么理解,所以这2部分可以实现到什么程度我还不懂,有空还请帮我分析一下。我现在去找本TCP/IP的书看看,我要先搞懂什么是协议。。。
mangoalx 2014-04-17
  • 打赏
  • 举报
回复
一般操作方式是在你的单片机上做嵌入web服务器,然后通过网页控制单片机动作。你的做法是反过来,我想也可以。读入HTTP网页内容然后从里面搜索出你要的数据,不过不是主流模式。 实现TCP/IP协议可不是简单的事,最好找现成的工程来修改。如果AVR没有就试试PIC,它有8位机的TCPIP协议栈
除了官方的W5100以太网模块,使用最广的就要数ENC28J60以太网控制器。使用enc28j60的同学越来越多,问题也越来越多,找了一个帮助最大的教程—如何在arduino上使用ENC28J60以太网控制器,在此借用电路城平台分享。 教程总共13篇,所有教程实验环境为arduino UNO+Arduino1.01 IDE。 教程目录如下: arduino上使用ENC28J60以太网控制器的教程(1)—ping通你的Arduino arduino上使用ENC28J60以太网控制器的教程(2)—自动获取IP地址 arduino上使用ENC28J60以太网控制器的教程(3)—作为客户端 arduino上使用ENC28J60以太网控制器的教程(4)—网络唤醒 arduino上使用ENC28J60以太网控制器的教程(5)—Web服务器 arduino上使用ENC28J60以太网控制器的教程(6)—自动更新动态域名 arduino上使用ENC28J60以太网控制器的教程(7)—浏览器控制小灯 arduino上使用ENC28J60以太网控制器的教程(8)—Arduino处理图片 arduino上使用ENC28J60以太网控制器的教程(9)—发送更大的图标 arduino上使用ENC28J60以太网控制器的教程(10)—如何改变Web服务器侦听的端口 arduino上使用ENC28J60以太网控制器的教程(11)—通过TL-WR702N wifi无线i联网 arduino上使用ENC28J60以太网控制器的教程(12)—用NTP获取Internet时间 arduino上使用ENC28J60以太网控制器的教程(13)—获取数据存储到服务器并显示图表
/********************************************************************/ 本程序仅供学习参考,未经作者允许,不得用于任何商业用途 FuIP专为单片机而定制的TCP/IP协议栈,适用于任何8,16,32位单片机 技术论坛:www.fuhome.net/bbs/ FuIP可用于,客户端,服务端,亦可接入fuhome.net 平台进行远程控制 版本:v2.1 2014年10月15日 龙剑奋斗 定期更新,敬请关注——开放,交流,深入,进步 Copyright fuhome.net 未来之家 实验室,让科技融入生活 /********************************************************************/ 键人是从51学习过来的,充分考虑了8位 16位 32位单片机平台特性,采用最易移植写法,因此特别适合任何有单片机基础的网友轻松控制家用电器等,其他扩展fuhome.net 平台会逐步完善。 V1.2版本支持与特性: 1,支持ARP请求、应答(获取目的IP的MAC) 2,支持ICMP_Ping请求,应答(ping命令) 3,支持TCP主动连接,断开,被动连接,断开,数据发送 4,支持UDP发送,接收数据 V1.3 改写了命令识别写法,使用更加简单,效率提高了。(网友yht7891984提出 ) v2.0 更新提示 1、由于单片机RAM完全够用,为了用来方便接入互联网,接收缓冲不再与发送缓冲公用 2、修复TCP连接过程的一些问题,更加兼容不同主机的数据格式。 3、增加了访问外网主机的功能,完善了TCP连接协议,这一点是重大改变。 4、命令识别,发送采用特殊函数,提升了执行效率。 (本demo直接下载到单片机,默认访问百度首页,可以从串口看到数据。 v2.1 更新日志 1、修复了ARP回应bug(网友林海雪原提出) 2、对于TCP/UDP数据不再限制于偶数长度了,奇数偶数均可。 PS.利用fuhome.net网站平台,互联网(电脑,手机)控制单片机,详情fuhome.net/bbs/演示视频教程) 灰常简单,目前实现了远程控制(手机APP和web网页控制,并且带返回信息),传感器数据上传显示,众多爱好者一起在努力开发更多好玩的有趣的扩展 IP采用固定IP, 本机IP:192.168.1.150 默认网关是家庭常用的:192.168.1.1 如果家里的路由器网关是其他如:192.168.0.1,请自行修改网关IP、本机IP 内存分配机制: 以太网首部: EN_Head[14] IP首部: IP_Head[20] UDP伪首部: UDP_False[12] UDP首部: UDP_Head[8] TCP伪首部: TCP_False[12] TCP首部: TCP_Head[20] ARP数据: ARP_Data[28] ICMP数据: ICMP[40] 发送数据缓冲,DATA数据: DATA[200](键人默认长度200,可改) 接收包缓冲(包含ETHERNET头,IP头,TCP/UDP首部) Re_DATA[200](默认长度200,可改,但是为了接收,长度至少TCP>=54,UDP>=42) (本demo占用RAM大约570Byte如果RAM有限可以合并一个使用,减少到360Byte左右,还是要看缓冲你的设定值 因为收发不同时发生)

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧