如何使用W5300实现ADSL连接(一)
在介绍W5300连接ADSL之前,先给大家简单介绍一下WIZnet W5300这款芯片。

W5300是WIZnet公司的一款单芯片器件,采用0.18μmCMOS工艺,内部集成10/100M以太网控制器、MAC层协议和TCP/IP协议栈,主要应用于高集成、高稳定、高性能和低成本的嵌入式系统中。其主要性能特点如下:
1)支持硬件TCP/IP协议栈:TCP、UDP、ICMP、IPv4、ARP,IGMP、PPPoE;
2)支持8路独立的网络连接端口SOCKETs同时工作;
3)内部拥有128 k字节TX/RX存储器用于数据通信,并可根据端口数据吞吐量灵活分配TX/RX存储器空间大小;
4)支持2种主机接口模式(直接寻址模式和间接寻址模式);
5)支持16/8 bit数据总线,传输速率高达50 Mbps;
6)支持第三方物理(PHY)接口。
简介
W5300支持在ADSL上的PPP/PPPoE协议通信。ADSL是使用电话线提供多种服务的通信方式。PPP是数据链路层协议,通过使用ADSL调制解调器和发送IP数据包,与ISP设备建立起点对点连接。PPPoE是使用基于以太网的PPP帧进行通信的数据链路层协议。

图 1. ADSL
该应用笔记详述了W5300的PPP/PPPoE功能,描述了ADSL连接的具体步骤。
PPP/PPPoE功能寄存器
与PPP/PPPoE相关的寄存器列表如下。了解更多详细信息,请参考W5300数据手册。
MR (模式寄存器) [R/W] [0x08000/----][0x3800 or 0xB800]

PPP/PPPoE模式使能位
1: 启用PPP/PPPoE
0: 禁用PPP/PPPoE
IR (中断寄存器) [R/W] [0x08002/0x002] [0x0000]

PPP/PPPoE终止中断位
1: PPP/PPPoE连接关闭
IMR (中断屏蔽寄存器) [R/W] [0x08004/0x004] [0x0000]

IR(PPPT)中断屏蔽位
PATR (PPPoE认证类型寄存器) [R] [0x08032/0x032] [0x0000]
它通知与PPPoE服务器协商的认证方法。
W5300支持2种认证方法。

例) PATR = ‘CHAP’

PTIMER(PPP连接控制协议请求计数器寄存器)[R/W][0x08036/0x036][0x--28]
它设置连接控制协议(LCP)的发送计数器应答请求,值1约为25ms。
例) PTIMER = 200 (200 * 25ms = 5000ms = 5s)

PMAGICR(PPP LCP Magic number 寄存器)[R/W][0x08038/0x038][0x--00]
它设置了与PPPoE服务器协商过程中将会用到的4字节的Magic number值。
例) PMAGICR = 0×01

Magic number = 0×01010101
PSIDR(PPPoE会话ID寄存器)[R][0x0803C/0x03C][0x0000]
它通知通过W5300的PPPoE过程获得的PPP会话ID,用于与PPPoE服务器之间的通信。
例) PSIDR = 0×0017

PDHAR(PPPoE目的硬件地址寄存器)[R][0x08040/0x040][00.00.00.00.00.00]
它通知通过W5300的PPPoE过程获得的PPPoE服务器的硬件地址。
例) PDHAR = 00.01.02.03.04.05

Sn_MR (SOCKETn模式寄存器) [R/W] [0x08200+0x40n/0x200+0x40n] [0x0000]
它设置端口n的协议类型或者选项。

S0_MR_PPPoE只有在端口0有效。它暂时用于PPPoE服务器的连接/中断。在连接建立之后,它可以用于其他协议。
S0_CR (SOCKET0指令寄存器) [R/W] [0x08202/0x202]
对于端口0的指令寄存器,PPP/PPPoE指令,如PCON、PDISCON、PCR、PCN、PCJ可以与通用指令,如Open、Close、Connect、Listen、Send或者Recv,一同配置。

S0_IMR (SOCKET0中断屏蔽寄存器)[R/W] [0x08204/0x204] [0x--FF]

S0_IR (SOCKET0中断寄存器) [R/W] [0x08206/0x206] [0x--00]
S0_IR是通知端口0中断类型的寄存器,例如建立,终止,接收数据,或者超时。特别是在端口0,它会在PPP/PPPoE工作期间通知中断类型发生。

S0_SSR (SOCKET0端口状态寄存器) [R] [0x08208/0x208] [0x--00]
它通知端口0的端口状态。在端口0的情况下,它通知PPP的连接状态。

Sn_SSR(15:8)/Sn_SSR0(7:0) : 全部保留
Sn_SSR(7:0)/Sn_SSR1(7:0)

S0_DHAR (SOCKET0目的硬件地址寄存器) [R/W]
[0x0820C/0x20C] [FF.FF.FF.FF.FF.FF]
在PPPoE模式下, PPPoE服务器的硬件地址被设置到S0_DHAR。
例) S0_DHAR = 00.08.DC.01.02.10

S0_DPORTR (SOCKET0目的端口寄存器) [R/W] [0x08212/0x212] [0x0000]
在PPPoE模式下,PPP会话ID设置到S0_DPORTR.
OPEN指令之后,在S0_DPORTR中设置的PPP会话ID将被应用到PSODR。
例) S0_DPORTR = 5000(0×1388)

S0_MSSR (SOCKET0最大段寄存器) [R/W] [0x08218/0x218] [0x0000]
它设置端口0的MTU(最大发送单元)或告知MTU的设置信息。
在使用PPPoE(MR(PPPoE=’1’))时,TCP或者UDP模式的MTU被限定在PPPoE的MTU的范围之内。在IPRAW或者MACRAW模式下,内部不处理MTU,而是使用默认MTU。所以,当发送数据大于默认MTU时,主机应该手动地将数据划分给默认的MTU。

感谢关注!明天为您继续介绍连接过程
如何使用W5300实现ADSL连接(一)的更多相关文章
- windows Server 2012/2016 路由和远程访问,PPPOE,ADSL,连接接口时出现一个错误,连接被远程计算机终止
经过查询资料,是由mprddm.dll的bug引起的. 修改位置: 将je修改为jmp. 查找修改位置,可参考 前面的RasGetPortUserData的调用,或者 后面的 字符串 64位dll可使 ...
- [转载]VMWare网络连接透析
http://blog.csdn.net/struggleyb/article/details/1102214 以前在学校,VMWare里面的Gentoo Linux是采用network bridge ...
- 以太网接口芯片W5300使用说明
一.芯片简介 引用百度百科对芯片的一个简介,我就不再赘述. W5300的目标是在高性能的嵌入式领域,如多媒体数据流服务.与WIZnet现有的芯片方案相比较,W5300在内存空间和数据处理能力等方面都有 ...
- Linux操作系统上ADSL拨号上网的方法详解
1.安装 yum install rp-pppoe.x86_64 2.配置PPPOE客户端软件 安装完软件包后,必须配置pppoe的配置文件/etc/ppp/pppoe.conf,从而让ADSL拨号时 ...
- archlinux安裝手记(Win10+Arch、GPT+UEFI、lvm)
准备工具和设置制作启动盘连接网络硬盘分区规划分区LVM方案创建文件系统分区挂载激活lvm2钩子基础安装和配置配置镜像源基础系统安装fstab进入系统initramfs引导程序网络搭建使用环境用户管理用 ...
- win7下利用VM8安装CentOS6.3配置静态IP上网
1 环境 宿主主机64位win7,利用VM8安装的64位CentOS6.3,64位的.在VM中配置CentOS的IP为静态,可上互联网.具体配置过程如下. 2 步骤 首先将VM的setting选项中, ...
- Install Debian note
environment: already install xp,win7 and win8PE, left 87G space to install Debian, this space not fo ...
- 新华龙电子推出最新网络开发板(W5100&W5500方案)
2014/12/16 | Filed under: TCP/IP芯片 and tagged with: C8051, W5100, W5500, 新华龙电子, 网络开发板 42 Views 深圳新华龙 ...
- LINUX命令总结 -------来自 水滴娃娃 的CSDN
LINUX命令总结 标签: LINUX命令总结 2014-01-27 15:54 41039人阅读 评论(1) 收藏 举报 分类: linux(1) 版权声明:本文为博主原创文章,未经博主允许不得 ...
随机推荐
- BestCoder Round #47
1001 Senior's Array 题目链接:1001 题意:给你一个长度为n的序列,你必须修改序列中的某个数为P,求修改后的最大连续子序列和. 思路:数据量比较小,可以直接暴力做, 枚举序列的每 ...
- Problem B The Blocks Problem(vector的使用)
题目链接:Problem B 题意:有n块木块,编号为0~n-1,要求模拟以下4种操作(下面的a和b都是木块编号) 1. move a onto b: 把a和b上方的木块全部归位,然后把a摞在b上面. ...
- thinkphp phpexcel导出
近期做一个项目涉及到商品信息的批量导出与导入,遂记录了下来,框架是tp框架3.2.3(tp5.0性质是一样的,无非是加载方法与所放目录不一样罢了),运用的是phpexcel,闲话不多说,上代码 1.首 ...
- poj 3273 Monthly Expence 简单二分
/** 大意: 有连续的n天,每一天有一定的花费,将其分成m份,每一份占一天或者连续的几天,求这m份中的最大值 思路: 二分其最大上限,看在此最大上线,能分成多少份,若大于m份,说明上限过小,需要扩大 ...
- Springmvc异步上传文件
<script src="js/jquery.js" type="text/javascript"></script><scrip ...
- ASP.NET jQuery 随笔 使用allValidator插件简单实现客户端验证功能
首先放出该插件的下载地址:http://pan.baidu.com/s/1Aa3yD,里面有帮助文档,详细了解可以自行下载学习,本章只讲解一些基本的验证功能,页面代码如下: <%@ Page L ...
- mget 同时获取
mget 同时获取: http://192.168.32.81:9200/ _mget POST { "docs" :[ { "_index":"li ...
- C++ 100款开源界面库 (10)
(声明:Alberl以后说到开源库,一般都是指著名的.或者不著名但维护至少3年以上的.那些把代码一扔就没下文的,Alberl不称之为开源库,只称为开源代码.这里并不是贬低,像Alberl前面那个系列的 ...
- 未能加载文件或程序集“DAL”或其他的某一个依赖项,系统找不到指定的文件
针对这个问题我在敲VB.NET机房收费系统的时候总共出现了两次,第一次是在使用反射+抽象工厂的时候出现的,第二次是在使用VS2012自带的打包工具生成可执行文件执行exe文件的时候出现的.具体看下图: ...
- invalid nib registered for identifier (重用符) - nib must contain exactly one top level object which must be a UITableViewCell instance'
通过xib创建cell的时候 一定要注意!!! 这个错误是在这个xib中在View同一层级出现了其他的控件,检查一下xib中左边的层级关系,让cell的view是唯一的控件就可以了,否则一执行 就会提 ...