文档介绍:RTL8019编程指南
(未完待续)
绪言
——单片机如何控制以太网网卡进行传输数据,如何加载TCP/IP协议连接到互联网,这些都是一些令人感兴趣的问题。
——可以说以太网和TCP/IP协议已经成为使用最广泛的协议,而其它总线协议如RS485、RS232,CAN,LANWORKS,都只是一些局部系统的总线。
-—围绕以太网而制造的集线器,交换机已进入大小公司,企业,,由于公司是搞电脑防火墙的,所以对网络的接触也越来越多,我研究的主要是网络的底层,并掌握了很多网络分析工具如(SNIFFER),对以太网和TCP/IP协议的研究就更加深入了。
——我比较熟悉的网卡是10M的网卡,100M的以太网卡还在研究之中。曾经用单片机(89C52)控制和驱动10M的NE2000兼容型以太网卡与电脑主机传输数据。
——现在将我的一些研究成果写成一系列的文单,提供给大家。也许有一天研究了100M的网卡之后,可以让单片机驱动它,那是可能的事,只不过接口可能会复杂一些.
——我所写的驱动程序并不是标准的,因为我没有学过UNIX,无法使用UNIX提供的原代码。如果能使用UNIX的原代码,++,DDK等方面的内容,希望有一天能够重写我现在所写的驱动程序。
—-我知道有很多人在了解单片机与以太网方面的东西,在BBS上也发现了很多这方面的内容,有些人的研究甚至比我还深入,我也希望能跟这些人交流交流,如果对我的文章感兴趣 ,当然可以给我发电子邮件啦。
-—在接下来的文章将介绍以太网协议,网卡驱动,IP协议,ICMP协议,ARP协议,TCP协议等 。
----为帮助读者开发该tcp/ip的应用,本站制作了以太网开发板,可以购买。
以太网协议
  -—--以太网协议(用于10MBPS的以太网,作者以下所说的以太网均指10M以太网,而不是100M,1000M的以太网)
——以太网协议有两种,一种是IEEE802。2/IEEE802。3,还有一种是以太网的封装格式.
——现代的操作系统均能同时支持这两种类型的协议格式。因此对我们来说只需要了解其中的一种就够了,特别是对单片机来说,不可能支持太多的协议格式。
—-以太网的物理传输帧:(仅介绍第二种格式)
PR
SD
DA
SA
TYPE
DATA
PAD
FCS
56位
8位
48位
48位
16位
不超过1500字节
可选
32位
——PR:同步位,用于收发双方的时钟同步,同时也指明了传输的速率(10M和100M的时钟频率不一样,所以100M网卡可以兼容10M网卡),是56位的二进制数1.。...
—-SD: 分隔位,表示下面跟着的是真正的数据,而不是同步时钟,为8位的10101011,跟同步位不同的是最后2位是11而不是10。
—-DA:目的地址,以太网的地址为48位(6个字节)二进制地址,,则是广播地址,广播地址的数据可以被任何网卡接收到。
——SA:源地址,48位,表明该帧的数据是哪个网卡发的,即发送端的网卡地址,同样是6个字节.
----TYPE:类型字段,表明该帧的数据是什么类型的数据,不同的协议的类型字段不同。如:0800H 表示数据为IP包,0806H 表示数据为ARP包,814CH是SNMP包,8137H为IPX/SPX包,(小于0600H的值是用于IEEE802的,表示数据包的长度.)
-—--DATA:数据段 ,该段数据不能超过1500字节。因为以太网规定整个传输包的最大长度不能超过1514字节。(14字节为DA,SA,TYPE)
——-—PAD:填充位。由于以太网帧传输的数据包最小不能小于60字节, 除去(DA,SA,TYPE 14字节),还必须传输46字节的数据,当数据段的数据不足46字节时,后面补000000.。.。.(当然也可以补其它值)
-———FCS:32位数据校验位。为32位的CRC校验,该校验由网卡自动计算,自动生成,自动校验,,我们无需了解.
----事实上,PR,SD,PAD,FCS这几个数据段我们不用理它 ,它是由网卡自动产生的,我们要理的是DA,SA,TYPE,DATA四个段的内容.
-—-—所有数据位的传输由低位开始(但传输的位流是用曼彻斯特编码的)
——--以太网的冲突退避算法就不介绍了,它是由硬件自动执行的。
DA+SA+TYPE+DATA+PAD最小为60字节,最大为1514字节。
—-—-以太网卡可以接收三种地址的数据,一个是广播地位,一个是多播地址(我们用不上),