没有合适的资源?快使用搜索试试~ 我知道了~
TCP/IP in51单片机
需积分: 11 13 下载量 32 浏览量
2011-01-31
21:41:32
上传
评论 1
收藏 3.76MB PDF 举报
温馨提示
试读
46页
单片机如何控制以太网网卡进行传输数据,如何加载TCP/IP协议连接到互联网,这些都是一些令人感兴趣的问题。 ——可以说以太网和TCP/IP协议已经成为使用最广泛的协议,而其它总线协议如RS485、RS232,CAN,LANWORKS,都只是一些局部系统的总线。 ——围绕以太网而制造的集线器,交换机已进入大小公司,企业,家庭。我现在在众达天网公司,由于公司是搞电脑防火墙的,所以对网络的接触也越来越多,我研究的主要是网络的底层,并掌握了很多网络分析工具如(SNIFFER),对以太网和TCP/IP协议的研究就更加深入了。
资源推荐
资源详情
资源评论
单片机与TCP/IP网络
--版主 老古
(一)绪言
——单片机如何控制以太网网卡进行传输数据,如何加载 TCP/IP 协议连接到互联网,这些都是一些令
人感兴趣的问题。
——可以说以太网和 TCP/IP 协议已经成为使用最广泛的协议,而其它总线协议如 RS485、RS232,CAN,
LANWORKS,都只是一些局部系统的总线。
——围绕以太网而制造的集线器,交换机已进入大小公司,企业,家庭。我现在在众达天网公司,由于
公司是搞电脑防火墙的,所以对网络的接触也越来越多,我研究的主要是网络的底层,并掌握了很多网
络分析工具如(SNIFFER),对以太网和 TCP/IP 协议的研究就更加深入了。
——我比较熟悉的网卡是 10M 的网卡,100M 的以太网卡还在研究之中。曾经用单片机(89C52)控制和
驱动 10M 的 NE2000 兼容型以太网卡与电脑主机传输数据。
——现在将我的一些研究成果写成一系列的文单,提供给大家。也许有一天研究了 100M 的网卡之后,可
以让单片机驱动它,那是可能的事,只不过接口可能会复杂一些。
——我所写的驱动程序并不是标准的,因为我没有学过 UNIX,无法使用 UNIX 提供的原代码。如果能使
用 UNIX 的原代码,那将是很好的事。我也正在接触 UNIX 和 VC++,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 位的二进制数 101010101010.....
——SD: 分隔位,表示下面跟着的是真正的数据,而不是同步时钟,为 8 位的 10101011,跟同步位不同的是
最后 2 位是 11 而不是 10.
——DA:目的地址,以太网的地址为 48 位(6 个字节)二进制地址,表明该帧传输给哪个网卡.如果为
FFFFFFFFFFFF,则是广播地址,广播地址的数据可以被任何网卡接收到.
——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 字节.
----以太网卡可以接收三种地址的数据,一个是广播地位,一个是多播地址(我们用不上),一个是它自已
的地址.但网卡也可以设置为接收任何数据包(用于网络分析和监控).
----任何两个网卡的物理地址都是不一样的,是世界上唯一的,网卡地址由专门机构分配.不同厂家使用
不同地址段,同一厂家的任何两个网卡的地址也是唯一的.根据网卡的地址段(网卡地址的前三个字节),
可以知道网卡的生产厂家.有些网卡的地址也可以由用户去设定,但一般不需要.
(三)ISA 总线接口定义
ISA ISA=Industry Standard Architecture (isa 总线)
Pin Name Description
引脚 名称 含义
A1 /I/O CH CK I/O channel check; active low=parity error
A2 D7 Data bit 7
A3 D6 Data bit 6
A4 D5 Data bit 5
A5 D4 Data bit 4
A6 D3 Data bit 3
A7 D2 Data bit 2
A8 D1 Data bit 1
A9 D0 Data bit 0
A10 I/O CH RDY I/O Channel ready, pulled low to lengthen memory cycles
A11 AEN Address enable; active high when DMA controls bus
A12 A19 Address bit 19
A13 A18 Address bit 18
A14 A17 Address bit 17
A15 A16 Address bit 16
A16 A15 Address bit 15
A17 A14 Address bit 14
A18 A13 Address bit 13
A19 A12 Address bit 12
A20 A11 Address bit 11
A21 A10 Address bit 10
A22 A9 Address bit 9
A23 A8 Address bit 8
A24 A7 Address bit 7
A25 A6 Address bit 6
A26 A5 Address bit 5
A27 A4 Address bit 4
A28 A3 Address bit 3
A29 A2 Address bit 2
A30 A1 Address bit 1
A31 A0 Address bit 0
B1 GND Ground
B2 RESET Active high to reset or initialize system logic
B3 +5V +5 VDC
B4 IRQ2 Interrupt Request 2
B5 -5VDC -5 VDC
B6 DRQ2 DMA Request 2
B7 -12VDC -12 VDC
B8 /NOWS No WaitState
B9 +12VDC +12 VDC
B10 GND Ground
B11 /SMEMW System Memory Write
B12 /SMEMR System Memory Read
B13 /IOW I/O Write
B14 /IOR I/O Read
B15 /DACK3 DMA Acknowledge 3
B16 DRQ3 DMA Request 3
B17 /DACK1 DMA Acknowledge 1
B18 DRQ1 DMA Request 1
B19 /REFRESH Refresh
B20 CLOCK System Clock (67 ns, 8-8.33 MHz, 50% duty cycle)
B21 IRQ7 Interrupt Request 7
B22 IRQ6 Interrupt Request 6
B23 IRQ5 Interrupt Request 5
B24 IRQ4 Interrupt Request 4
B25 IRQ3 Interrupt Request 3
B26 /DACK2 DMA Acknowledge 2
B27 T/C Terminal count; pulses high when DMA term. count reached
B28 ALE Address Latch Enable
B29 +5V +5 VDC
B30 OSC High-speed Clock (70 ns, 14.31818 MHz, 50% duty cycle)
B31 GND Ground
C1 SBHE System bus high enable (data available on SD8-15)
C2 LA23 Address bit 23
C3 LA22 Address bit 22
C4 LA21 Address bit 21
C5 LA20 Address bit 20
C6 LA18 Address bit 19
C7 LA17 Address bit 18
C8 LA16 Address bit 17
C9 /MEMR Memory Read (Active on all memory read cycles)
C10 /MEMW Memory Write (Active on all memory write cycles)
C11 SD08 Data bit 8
C12 SD09 Data bit 9
C13 SD10 Data bit 10
C14 SD11 Data bit 11
C15 SD12 Data bit 12
C16 SD13 Data bit 13
C17 SD14 Data bit 14
C18 SD15 Data bit 15
D1 /MEMCS16 Memory 16-bit chip select (1 wait, 16-bit memory cycle)
D2 /IOCS16 I/O 16-bit chip select (1 wait, 16-bit I/O cycle)
D3 IRQ10 Interrupt Request 10
D4 IRQ11 Interrupt Request 11
D5 IRQ12 Interrupt Request 12
D6 IRQ15 Interrupt Request 15
D7 IRQ14 Interrupt Request 14
D8 /DACK0 DMA Acknowledge 0
D9 DRQ0 DMA Request 0
D10 /DACK5 DMA Acknowledge 5
D11 DRQ5 DMA Request 5
D12 /DACK6 DMA Acknowledge 6
D13 DRQ6 DMA Request 6
D14 /DACK7 DMA Acknowledge 7
D15 DRQ7 DMA Request 7
D16 +5 V
D17 /MASTER Used with DRQ to gain control of system
D18 GND Ground Note: Direction is Motherboard relative ISA-Cards.
(四)89C52 单片机与网卡接口电路图
——电路是由作者自己设计的,可能不是很标准,也可能不是理想的,但是它可以实现。网卡是ne2000
兼容型的网卡。作者所用的网卡是TP-LINK的TE-2008,接口为ISA接口,网卡的主芯片是RTL8019AS.此款
网卡在电脑城可以买到。价钱不超过 50 元。如果买不到,也可以使用别的ne2000 的兼容网卡,例如芯
片Davicom的
DM9008,NSI的DP8390,MXIC的MX98905,还有华邦的,dlink的。这些芯片的资料可以在本站
的硬件程序下载区下载。但推荐使用
RTL8019AS。为阅读以下的内容,请在本站下载RTL8019AS的芯片资
料。
这是缩小的图,
点击这里放大。
放大的图可能还不是很清楚,要看更为清楚的图,点击这里
下载SCH电路图。(可以用PROTEL 98 或PROTEL
99 打开。如果你没有protel98,可以在本站下载
protel98 安装程序(要下载几个小时)。
__电路用到的主要芯片有MAX232(串口的电平转换),24c02(IIC总线的eeprom),373(8 位锁存),62256
(32K的RAM).其中的 24C02 也可以不要,可以通过存取网卡上的 93C46 来实现,但我没有这样做。62256
为外部 32K的Ram,也可以不用,可以用网卡上的RAM来代替,但是网卡上的Ram的存取比较复杂,速度会
比加 62256 慢。为了编程的方便,和实现快的传输速度,以及为完成更为复杂的应用,推荐使用 62256,
用 77E58 单片机和外加 62256,可以实现 500KBPS以上的传输速度。电路图上方的两大块为ISA槽,网卡
剩余45页未读,继续阅读
资源评论
maruida111
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功