第三章 网络芯片的驱动

合集下载

网卡驱动——精选推荐

网卡驱动——精选推荐

⽹卡驱动⼀、配置菜单Device Drivers[*] Network device support --->⽹络设备驱动、⽹卡驱动< > Bonding driver support功能:多⽹卡绑定具体操作为:将多个以太⽹通道绑定为⼀个,也就是两块⽹卡具有相同的IP地址并且聚合成⼀个逻辑链路⼯作,可以⽤来实现负载均衡或硬件冗余< > Dummy net driver support功能:哑接⼝⽹络使⽤环境:使⽤SLIP或PPP传输协议(如ADSL⽤户)的需要它具体操作:设置⼀个虚拟⽹络。

虚拟⽹络(dummy network)就像⽹络中的/dev/null。

任何发送给虚拟⽹络的数据都会永久消失,因为它会发往/dev/null。

IP地址没有设置。

⽤户可以定义他们的⽹络相当于/dev/null)< > EQL (serial line load balancing) support功能:串⾏线路的负载均衡具体操作:如果有两个MODEM和两条电话线⽽且⽤SLIP或PPP协议,该选项可以让您同时使⽤这两个MODEM以达到双倍速度(在⽹络的另⼀端也要有同样的设备)< > Generic Media Independent Interface device support功能:通⽤媒体独⽴接⼝设备⽀持背景介绍:MII是⼀种⽤于最⾼速度为100Mbit/s以太⽹的接⼝。

以太⽹线缆⽤于连接到PHY ceiver,是⼀种以太⽹收发器< > Ethernet team driver support (EXPERIMENTAL) --->功能:team⽹卡组⽀持背景介绍:通过虚拟接⼝组织许多以太⽹设备< > MAC-VLAN support (EXPERIMENTAL)功能:允许⽤户在特定的MAC地址和某个接⼝上映射数据包具体操作:基于MAC地址的VLAN,⼀种根据报⽂的源MAC地址来确定untagged报⽂所属VLAN的划分⽅法< > Network console logging support⽹络远程命令⽀持,远程登录⽤注意:内核发送给⽹络的消息可任意通过这个特性记录下来。

以太网Phy的驱动概念(最新整理)

以太网Phy的驱动概念(最新整理)

我想很多人都考虑过,当同一块板卡上的两块网口PHY芯片对连的时候,能不能省略两个网络变压器而直接对连呢,答案当然是肯定的。

不过我实际操作过后,发现里面还是有很多陷阱,现在给大家一一道来。

首先我们必须知道一件事情,网口PHY芯片对于TX与RX的驱动方式有电压驱动和电流驱动之分。

最简单的一个识别方式就是看其推荐原理图,如果网络变压器的中心抽头需要提供一个VCC(3.3V、2.5V等等,下同)电源的就是电压驱动,如果是直接加一个对地电容就可以的就是电流驱动。

现在我们来精简电路。

(由于两块PHY芯片靠的很近,故在此不考虑阻抗匹配的问题,如果情况不同,请自行考虑,下同)最原始的情形就是使用两个网络变压器,然后TX与TX交叉连接,也就是正常的连接方式。

再精简成最实用的情况,如上图所示,使用电容隔离,加入偏置电流。

其中连接千兆PHY时,电容取值0.01uF,百兆PHY时,电容取值0.1uF,网上有一个图使用的是10uF的电容,我觉得太大了。

其中电阻我实测时使用的是49.9ohm,取值的原则应该是考虑其驱动能力以及阻抗匹配的要求。

(我认为此处应该使用电感更为合理,但是我没有合适的,所以没有测过,我实测了一个60ohm 500mA的磁珠,不通,示波器观察波形发现信号幅度过小,网上有一个图使用的是30ohm的电阻,我觉得还是49.9ohm更为合理,有兴趣的朋友可以试试不同的方案)有人可能会问,能再精简一下么?我的答案是看情况。

1、如果你使用的PHY芯片的中心抽头电压VCC一致的话(对于电压驱动型PHY),可以省略电容,TX与RX直连即可,电阻也可以节省一半。

特别注意:万一VCC电压不一致的话,连接失败事小,烧芯片事大,所以注意确认。

2、如果你使用的是电流驱动型PHY的话,连接到中心抽头的电阻也可省略,因为本来就不需要嘛,呵呵。

最后总结一下:如果你使用的是电流驱动型PHY,TX与RX交叉连接即可,如果你使用的是电压驱动型PHY,必须给TX与RX提供一个偏置电压,如果两块PHY芯片的偏置电压不一致,中间需用电容隔开。

uip协议栈

uip协议栈

uIP协议栈分析uIP特性uIP协议栈往掉了完整的TCP/IP中不常用的功能,简化了通讯流程,但保存了网络通讯必须使用的协议,设计重点放在了IP/TCP/ICMP/UDP/ARP这些网络层和传输层协议上,保证了其代码的通用性和结构的稳定性。

由于uIP协议栈专门为嵌进式系统而设计,因此还具有如下优越功能:(1)代码非常少,其协议栈代码不到6K,很方便阅读和移植。

(2)占用的内存数非常少,RAM占用仅几百字节。

(3)其硬件处理层、协议栈层和应用层共用一个全局缓存区,不存在数据的拷贝,且发送和接收都是依靠这个缓存区,极大的节省空间和时间。

(4)支持多个主动连接和被动连接并发。

(5)其源代码中提供一套实例程序:web服务器,web客户端,电子邮件发送程序(SMTP 客户端),Telnet服务器,DNS主机名解析程序等。

通用性强,移植起来基本不用修改就可以通过。

(6)对数据的处理采用轮循机制,不需要操纵系统的支持。

由于uIP对资源的需求少和移植轻易,大部分的8位微控制器都使用过uIP协议栈, 而且很多的著名的嵌进式产品和项目(如卫星,Cisco路由器,无线传感器网络)中都在使用uIP协议栈。

uIP架构uIP相当于一个代码库,通过一系列的函数实现与底层硬件和高层应用程序的通讯,对于整个系统来说它内部的协议组是透明的,从而增加了协议的通用性。

uIP协议栈与系统底层和高层应用之间的关系如图2-1所示。

从上图可以看出,uIP协议栈主要提供了三个函数供系统底层调用。

即uip_init(), uip_input() 和uip_periodic()。

其与应用程序的主要接口是UIP_APPCALL( )。

uip_init()是系统初始化时调用的,主要初始化协议栈的侦听端口和默认所有连接是封闭的。

当网卡驱动收到一个输进包时,将放进全局缓冲区uip_buf中,包的大小由全局变量uip_len约束。

同时将调用uip_input()函数,这个函数将会根据包首部的协议处理这个包和需要时调用应用程序。

王道计算机网络第三章数据链路层思维导图

王道计算机网络第三章数据链路层思维导图
如果有冲突(一段时间内未收到肯定回复),则等待一个随机长的时间再监听, 重复上述过程
思想
1-坚持CSMA
只要媒体空闲,站点就马上发送,避免了媒体利用率的损失
优点
假如有两个或两个以上的站点有数据要发送,冲突就不可避免
缺点
非坚持指的是对于监听信道忙之后就不继续监听
信道空闲
CSMA协议
如果一个主机要发送消息,那么它先监听信道
相同点
1.传输介质不同:CSMA/CD用于总线以太网【有线】,而CSMA/CA用于无线局 域网【无线】
CSMA/CD与CSMA/CA对比
2.载波检测方式不同:因传输介质不同,CSMA/CD与CSMA/CA的检测方式也不 同。CSMA/CD迪过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电 压就会随着发生变化;而CSMA/CA采用能量检测(ED)、载波检测(CS)和能量 载波混合检测三种检测信道空闲的方式
粗同轴电缆
细同轴电缆
传输介质
双绞线+集线器 逻辑上总线型 物理上星型
拓扑结构
传输介质与拓扑结构的发展
10BASE-T是传送基带信号的双绞线以太网,T表示采用双绞线,现10BASE-T采 用的是无屏蔽双绞线(UTP),传输速率是10Mb/s
物理上采用星型拓扑,逻辑上总线型,每段双绞线最长为100m
10BASE-T以太网
隐蔽站
无线局域网
为什么会有CSMA/CA
发送数据前,先检测信道是否空闲
空闲则发出RTS(request to send),RTS包括发射端的地址、接收端的地址、 下一份数据将持续发送的时间等信息;信道忙则等待
接收端收到RTS后,则响应CTS(clear to send)

网卡驱动原理

网卡驱动原理

网卡驱动原理
网卡驱动是一种软件程序,它充当操作系统和计算机网络之间的桥梁,使得计算机可以与网络进行通信。

网卡驱动的主要功能是控制和管理网卡硬件,并提供相应的接口,使操作系统能够利用网卡进行数据的发送和接收。

网卡驱动的工作原理可以分为以下几个步骤:
1. 硬件识别:当计算机启动时,操作系统会进行硬件检测和识别,其中也会包括网卡硬件。

通过与网卡进行交互,操作系统可以获取网卡的型号和特性等信息。

2. 驱动加载:一旦操作系统成功识别了网卡硬件,它会自动加载相应的网卡驱动。

这个过程中,操作系统会根据网卡的型号和特性选择合适的驱动程序,并将其加载到内存中。

3. 驱动初始化:一旦驱动程序被加载到内存中,操作系统会调用驱动中的初始化函数,对网卡进行初始化设置。

这些设置可能包括网卡的工作模式、传输速率、MAC地址等。

4. 数据传输:一旦网卡经过初始化设置,就可以开始进行数据的收发工作了。

当操作系统需要发送数据时,它会将数据传递给网卡驱动,驱动会负责将数据打包成网络数据包,并通过网卡硬件发送到网络上。

当网卡接收到其他设备发送的数据包时,驱动会接收到数据包,并将其解析成操作系统可识别的格式,然后将数据传递给操作系统。

5. 错误处理:在数据传输过程中,可能会出现一些错误,比如传输中断、丢包等情况。

网卡驱动会监测这些错误,并根据情况采取相应的处理措施,比如重新发送数据、请求重传等。

综上所述,网卡驱动是连接操作系统和网卡硬件之间的桥梁,它通过控制和管理网卡硬件,使得计算机可以与网络进行通信。

通过驱动程序的加载和初始化,数据的传输和错误处理等步骤,网卡驱动能够实现数据在计算机和网络之间的传输和交换。

芯片驱动原理

芯片驱动原理

芯片驱动原理芯片驱动原理芯片驱动是指通过软件控制硬件芯片的工作,实现对设备的控制和管理。

芯片驱动是计算机系统中非常重要的一部分,它直接影响着设备的性能和稳定性。

芯片驱动的原理主要包括以下几个方面:1. 硬件接口芯片驱动需要通过硬件接口与设备进行通信。

硬件接口包括物理接口和逻辑接口两部分。

物理接口是指芯片与设备之间的物理连接方式,例如USB、PCI、SATA等接口。

逻辑接口是指芯片与设备之间的通信协议,例如SPI、I2C、UART等协议。

2. 软件控制芯片驱动需要通过软件控制芯片的工作。

软件控制包括驱动程序的编写和操作系统的支持。

驱动程序是指控制芯片工作的软件程序,它需要与操作系统进行交互,通过操作系统提供的接口实现对芯片的控制。

操作系统的支持是指操作系统提供的芯片驱动框架,包括设备管理、中断处理、内存管理等功能。

3. 芯片寄存器芯片驱动需要通过访问芯片寄存器来控制芯片的工作。

芯片寄存器是指芯片内部的寄存器,用于存储芯片的状态和控制信息。

芯片驱动需要通过读写芯片寄存器来实现对芯片的控制。

4. 中断处理芯片驱动需要通过中断处理来响应设备的事件。

中断是指设备向芯片发出的信号,用于通知芯片设备的状态发生了变化。

芯片驱动需要通过中断处理程序来响应设备的事件,并进行相应的处理。

5. DMA传输芯片驱动需要通过DMA传输来实现高速数据传输。

DMA是指直接内存访问,它可以实现芯片与内存之间的高速数据传输,提高数据传输效率。

总之,芯片驱动是计算机系统中非常重要的一部分,它直接影响着设备的性能和稳定性。

芯片驱动的原理包括硬件接口、软件控制、芯片寄存器、中断处理和DMA传输等方面。

只有深入理解芯片驱动的原理,才能编写出高效、稳定的芯片驱动程序,提高设备的性能和稳定性。

七彩虹Colorful C.945PL 主板说明书1说明书

C.945P-MVP Ver2.1C.945P-MVP Ver2.1C.945P-MVP Ver2.1硬件设定请依据下列步骤,完成电脑的安装:步骤1.安装中央处理器(C PU)步骤2.安装内存步骤3.装入机箱步骤4.安装所有扩展卡步骤5.连接所有信号线、排线、电源线及面板控制线步骤1. 安装中央处理器(CPU)C.945P-MVP Ver2.1主板采用支持Intel P4处理器的Socket-775插座,支持最新Intel Socket LGA775 架构的Prescott 核心处理器和Celeron D CPU为了保证PC可靠性,请确认你的处理器带散热片和风扇。

注意:请不要尝试安装Socket-478/Socket-A处理器在SOCKET775插座上,比如:PPGA Celeron,FCPGA Pentium-III,Pentium-MMX,或AMD K5/K6 CPU等。

硬件设定C.945P-MVP Ver2.1b.安装CPU,将插座拐角标记对准锁杆顶部最近的插座拐角,确定针角1的方向正确。

不要用力插CPU,确信CPU完全插入插槽中。

确认CPU插座和CPU的第一脚,将CPU放入CPU插座上将锁定杆从未锁定状态拔到锁定状态。

c.将CPU风扇盖上,电源线接到CPUFAN插座上,上好保险夹注意:正确安装好系统后,请你仔细检查并正确设置C P U时钟频率。

硬件设定C.945P-MVP Ver2.1硬件设定C.945P-MVP Ver2.1硬件设定C.945P-MVP Ver2.1硬件设定C.945P-MVP Ver2.1CD-in 输入接口的连接:CN_IN1经由 CD-in (J1)音频输入接头可接收来自光驱、电视谐调器或MPEG 卡的音频信号。

USB 接口的连接:USB1/USB2可以通过此接口连接2个额外的USB 2.0/1.1接口前端音频接口的连接:F_AUDIO该音频接口包含两个部份,一个是前置音频,一个是后置音频。

驱动芯片原理

驱动芯片原理
驱动芯片是一种电子元件,用于控制外部设备的操作。

它通过接收来自主控芯片或其他信号源的指令,将信号转换成适合外部设备使用的形式,并通过与设备之间的接口进行传输,使设备按照要求进行工作。

驱动芯片的主要原理是将输入信号转换为输出信号。

它通常包括信号转换、电流放大和电压级转换等功能。

首先,输入的信号经过信号转换电路,将其转换为芯片内部电路能够理解和处理的信号形式。

然后,经过电流放大电路的放大作用,将信号的强度增加到适合驱动外部设备的水平。

最后,经过电压级转换电路的处理,将信号转换为外部设备需要的电压和频率。

驱动芯片的设计和功能取决于要驱动的外部设备的特点和要求。

不同的设备可能需要不同的电压和电流,因此驱动芯片的输出能力、电压范围和功率消耗等方面需要根据实际情况进行调整和优化。

此外,驱动芯片还可能包括保护电路,用于保护外部设备免受过电流、过压和过热等问题的影响。

总的来说,驱动芯片通过将输入信号转换为适合驱动外部设备的电压和频率,实现对设备的控制和操作。

它是各种电子设备中不可或缺的重要组成部分,为设备的正常工作提供稳定的驱动力。

网络驱动是什么啊?

网络驱动是指一种网络设备驱动程序,该程序使计算机与计算机网络进行通信,以支持数据传输和远程访问。

网络驱动通常作为操作系统的一部分,并在计算机系统启动时自动加载。

网络驱动的功能是为计算机的网络接口卡提供控制和管理,包括传输数据包、解析数据包、管理网络协议和路由、检测和处理错误等,以确保网络连接的稳定和高效性。

不同的网络驱动适用于不同的网络适配器,例如以太网卡、无线网卡、蓝牙和调制解调器等。

计算机系统可能需要安装更具体的驱动程序才能支持某些类型的网络硬件,否则可能会导致网络连接问题。

总的来说,网络驱动是计算机系统中一种必不可少的组件,它负责管理和控制计算机与网络之间的数据传输,确保网络连接的稳定与高效。

除了上述提到的基本功能,网络驱动还可以提供一些额外的功能和特性,包括:1. 网络协议支持:网络驱动程序可以实现各种网络协议的支持,例如TCP/IP、UDP、HTTP等。

这些协议是在计算机之间进行通信所必需的,网络驱动程序负责实现这些协议的功能,以确保数据能够正确地传输和接收。

2. IP地址和子网掩码配置:网络驱动程序可以通过动态主机配置协议(DHCP)或静态配置等方式获取或配置计算机的IP 地址和子网掩码。

这些信息是在局域网或互联网上定位和识别计算机的基础。

3. 虚拟专用网络(VPN)支持:一些网络驱动程序可以提供VPN功能,允许计算机通过加密隧道与远程网络进行安全通信。

这对于远程访问公司内部网络或保护在线隐私非常有用。

4. 多重网络适配器支持:一台计算机可能具有多个网络适配器,例如有线以太网和无线Wi-Fi。

网络驱动程序需要支持多个适配器,以便计算机可以同时与多个网络进行连接和通信。

5. 高级网络功能:某些网络驱动程序可能还提供一些高级的功能,如负载均衡、故障恢复、广播多播、网络防火墙等,以增强网络的性能、安全性和可靠性。

需要注意的是,具体的网络驱动功能和特性可能因操作系统和硬件设备的不同而有所差异。

uip在单片机上的移植精讲

第一章基于单片机的网络编程概述随着网络技术的迅猛发展,Internet已经走进千家万户,越来越多的人拥有了随时随地上网的条件,享受着网络带来的方便快捷的生活。

同时,随着嵌入式控制技术的成熟,网络也逐步与之结合,深入到工业、楼宇、家居智能化等领域,实现远程数据采集、远程控制等功能。

网络化已经成为新一代嵌入式系统发展的一个重要趋势。

试想不久的将来,坐在办公室的电脑前就能查看和控制家里的门窗和灯的状态,甚至可以在下班时把家里配好汤料的电饭煲打开,到家就能闻到扑鼻而来的香味了。

盛行全球的Internet网络是基于TCP/IP协议族为基础组建的,TCP/IP是网络通讯系统互联的事实标准。

研究嵌入式系统的网络化,就要先从TCP/IP的概念入手。

1.1 TCP/IP的概念及分层结构TCP/IP协议是传输控制协议的简称,它实际上是一个协议族,包括许多相关协议。

其中最核心的协议是IP(网际协议)和TCP(传输控制协议),其它还包括ARP(地址解析协议)、RARP(逆地址解析协议)、ICMP(Internet控制报文协议)、UDP(用户数据报协议)、IGMP(Internet组管理协议)、DNS(域名系统)、TFTP(简单文件传送协议)、BOOTP(引导程序协议)、SNMP(简单网络管理协议)、Telnet(远程控制协议)、FTP(文件传送协议)、SMTP(简单邮件传送协议)等重要协议。

并且,随着网络技术的发展,还会不断有新的协议加入到TCP/IP协议族。

这些协议规范了不同的场景下的网络互连,实际应用中可以根据系统的需要使用其中的一些协议。

从TCP/IP协议的数量就可以看出,Internet网络是一个比较复杂的系统,能适配多种应用场景,根据使用协议的不同而实现不同的功能。

为了降低网络设计的复杂性,设计者将以分层的方式组织TCP/IP协议,每一层可能包括不同通信服务的多种协议。

从最底层的硬件开始,每一层都建立在其下一层的基础上,并负责向其上一层提供服务。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第三章网络芯片的驱动从最底层驱动来看,单片机是怎么从物理线路上接收到数据?接收的又是什么样的数据?通过对本章以太网帧管理和网络芯片驱动的介绍,可以了解数据是怎样上送和下发的,从而了解物理层和数据链路层的工作原理。

3.1 以太网的帧结构现在是网络时代,大家都喜欢在网上冲冲浪。

但电脑能上网的前提条件是电脑硬件中必须有网卡,如板载网卡、独立网卡、或无线网卡等。

网卡是电脑与网络相互连接的必需设备。

单片机要上网,无疑也需要一个网卡。

网卡的功能主要有:一是将需要发送的数据封装成物理传输帧,并通过网线(或电磁波)发送到网络上去;二是识别和接收网络上其它设备传过来的物理传输帧,并组合成数据提供给本机CPU。

网线中传输的是电信号,因此网卡具备将数据转化为电信号发出去,并将网线上的电信号解析成数据的功能。

同时,要想电信号都能被其它网卡解析和接收,网卡必须满足网络传输规定的机械和电气规范。

从TCP/IP的协议分层的结构上看,网卡至少完成物理层的功能。

但为了方便控制器的使用,现在的网卡还将数据链路层的功能集成到芯片中。

网卡能起到过滤作用,只接受广播帧/组播帧或专门发往本机物理地址的数据帧,对本网络上的其余帧不予理会。

网卡接收到一帧完整的数据后,就可以将数据交给网络层处理。

对于使用网卡的开发者来说,对网卡的物理结构,硬件检测机制和冲突退避算法不需深究,主要要了解下相应的物理传输帧结构。

根据组建的网络类型不同(如以太网,令牌环网等)和使用的底层网络协议不同,帧结构也不相同。

就常用的以太网来说,也有Ethernet_II,IEEE 802.3,IEEE 802.2等协议。

我们以IEEE 802.3数据帧来分析数据链路层和网卡的工作内容。

IEEE 802.3是电气和电子工程师协会(IEEE)制定的一种描述物理层和数据链路层的实现方法的网络协议,主题是在多种物理媒体上以多种速率采用CSMA/CD访问方式。

其规定的帧结构如下:表3-1 以太网(802.3)帧结构PR SD DA SA LENGTH/TYPE DATA PAD FCS56位 8位 48位 48位 16位 n ≤1500(字节)可选 32位表一以太网(802.3)帧结构FR(前导码):包括了7个字节的二进制“1”、“0”间隔的代码,即1010 (10)共56位。

当帧在链路上传输时,接收方就能建立起同步,因为这种“1”、“0”间隔的传输波形为一个周期性方波。

同时也指明了传输的速率(10M和100M的方波频率不一样,所以100M网卡可以兼容10M网卡)。

SD(帧数据定界符):它是长度为1个字节的10101011二进制序列,此码表示表示下面跟着的是真正的数据。

DA(目的地址):目的以太网的物理地址,由48位二进制组成(6个字节),说明该帧传输给哪个网卡。

如果地址为FFFFFFFFFFFF(广播地址),则该网络上的所有网卡都能接收到本帧数据。

这个地址和下面的SA就是我们常说的网卡的MAC地址。

具体信息我们待会介绍。

SA(源地址):48位,说明该帧的数据是哪个网卡发的,即发送端的网卡物理地址(MAC)。

LENGTH/TYPE(长度/数据类型):指示后面的数据属于什么类型。

如0800H 表示数据为IP包,0806H 表示数据为ARP包。

这样,交给网络层后就可以由相应的协议对后面的数据解析。

如果这个字段小于0600H的值,则表示数据包的长度,在单片机的网络编程中不考虑这种用法。

DATA(数据段):由网络层负责发送和解析的数据,因为以太网帧传输的数据包最小不能小于64字节,最大不能超过1518字节。

除去14字节为DA、SA、TYPE以及4字节的FCS,DATA不能超过1500字节。

如果不够46(64-18)字节,余下的由PAD填充。

PAD(填充位):当DATA的数据不足46字节时,缺少的字节需要补上(可补任意值)。

FCS(帧校验序列):由32位(4字节)循环冗余校检码(CRC)组成,其校验范围不包括前导码FR及帧数据定界符SD。

此序列由发送端网卡自动生成,自动填充到帧的最后。

一般情况下,接收端网卡对收到的数据校验后也不会将FCS放到数据中上报。

由于网卡的自动管理,并且前导码FR和帧数据定界符SD的值是固定的,也由网卡自动生成和插入。

所以,网络层向网卡发送的数据或者网络层接收到的数据一般是由DA、SA、TYPE和DATA组成(DATA不足46字节需要用PAD 补齐)。

如表二。

假如网络层的一个IP包要发送出去,首先要填充接收网卡的地址和本网卡的地址(MAC地址),同时将TYPE填充成0800H,紧跟着就是发送的数据。

网卡获取到这些数据后会组成物理传输帧发送出去。

表3-2 网络层管理的帧结构DA SA TYPE DATA PAD48位 48位 16位 n ≤1500(字节) 可选 由以太网的帧结构知道,在数据链路层就需要使用MAC地址(即物理地址)进行通讯,MAC地址是数据的第一道关卡,由硬件自动识别来接收。

因此,MAC地址就像是是网络设备的“身份证”一样,需要具有全球唯一性。

我们在实验室里做测试,可以修改MAC地址,但也应该保证本地网络里MAC的唯一性。

以太网的MAC地址由48bit (6字节)组成,如08:02:10:3A:85:23就是一个MAC地址。

前24位(08:02:10)是由生产网卡的厂商向IEEE申请的厂商地址,后24位(3A:85:23)是由厂家自己分配。

每个厂商必须确保它所制造的每个以太网设备都具有相同的前三个字节以及不同的后三个字节,这样就可保证世界上每个以太网设备都具有唯一的MAC地址。

网卡的MAC地址通常是由生产厂家烧入网卡的EPROM中(NE2000系列网卡常用93C46,在网卡上可以找到)。

MAC地址又可以分成3类:(1)广播地址:只能用作目的地址。

如果一个以太网帧的目的地址是广播地址,则网络中的所有设备都能接收和处理该帧。

广播地址的每一位都是1,即:FF:FF:FF:FF:FF:FF。

(2)组播地址:也只能用作目的地址。

如果一个帧的目的地址是组播地址,那么网络中预先定义的一组设备都能接收并处理该设备。

以太网网MAC的最高有效字节的最低位为1表示以太网帧是组播帧。

如01:03:52:3A:85:23就是组播地址。

101的最低位为1。

(3)单机地址:除了广播和组播的地址就是单机地址,非广播和组播数据包就要与这个地址匹配了才能被接收和处理。

3.2 以太网的芯片RTL8019介绍及编程网卡主要由网络芯片、数据汞、总线插槽接口、EEPROM、晶振、RJ45接口、指示灯、固定片等器件等组成,其核心是网络芯片。

这节我们重点介绍Realtek 公司生产RTL8019AS芯片,看看它是怎样实现上节提到的以太网的帧结构的。

图3-1 RTL8019硬件电路图3.2.1RTL8019的工作方式及与单片机的接口RTL8019是NE2000系列中一种,因此其它NE2000系列网卡编程思路也相符合的。

(NE2000是一个由Novell公司所创立并且被业界广泛采用的网络卡的标准,大多数ISA网卡都与NE2000兼容,如Nat Semi的DP83902,Davicom 的DM9008,NSI的DP8390,MXIC的MX98905等)。

RTL8019是10M网卡芯片。

RTL8019有3种工作方式:(1)跳线方式,网卡的i/o和中断由跳线决定。

(2)免跳线方式,网卡的i/o和中断由外接的93c46里的内容决定。

(3)即插即用方式,由软件进行自动配置plug and play(PnP)。

电脑上常使用即插即用方式方式,单片机不予考虑。

对免跳线方式,需要在芯片外部接EEPROM 93c46(很多电脑用的网卡上能找到这芯片,大家有兴趣可以看下),用来保存网卡的MAC 地址等参数,同时,需要单片机操作RTL8019来控制93c46的读写,不仅费钱还费力,一般也不采用。

参数保存可放在单片机自身的EEPROM里,上电后写入网卡芯片就可以了。

因此,单片机比较适合使用跳线方式。

怎么才能让RTL8019工作在跳线方式下呢?这个由JP管脚(第65脚)决定。

当JP管脚为低电平时,RTL8019工作在即插即用方式或免跳线方式,高电平时处于跳线方式。

因此,我们将JP管脚接高电平(VCC),使用跳线方式,网卡的I/O和中断就不是由93C46的内容决定而是由跳线决定。

主要使用的跳线如下:IOS3,IOS2,IOS1,IOS0管脚(第85,84,82,81脚)决定了芯片的I/O 地址。

如下图,我们将IS03-IO0都悬空(内部下拉,即都为0),则芯片I/O的起始地址是300H。

芯片的中断线由IRQS2,IRQS1,IRQS0管脚(第80,79,78脚)决定。

我们可以使用默认配置,并将网卡的中断9,接到单片机的中断INT0(P3.2)上。

芯片的BTRM地址由BS4,BS3,BS2,BS1管脚(第72,71,69,68,67)决定, BTRM在电脑里用来做无盘工作站的时候用到,这样可以从网卡进行引导,而需要从硬盘的c盘等引导系统。

由于单片机里不需要使用,可以不管。

AUI管脚(第64脚),该管脚决定使用AUI还是BNC接口。

高电平时使用AUI接口,悬空(为内部下拉的低电平)时使用BNC接口。

网卡的接口一般是BNC的可以支持8线双绞或同轴电缆。

因此将该引脚悬空即可。

网络媒体类型由PL0,PL1(第74,77脚)决定。

PL1 PL0 网络媒体类型0 0 TP/CX自动检测(10BaseT 链环测试时激活的)链环测试是不可用0 1 10BASET的。

1 0 10BASE51 1 10BASE2其它重要管脚的连线:所有GND管脚接地,VCC管脚接+5V的电源。

RSTDRV(第33脚):用来复位网卡,我们一般将它连到单片机的管脚上,用来快速复位RTL8019,这个管脚拉高复位持续时间至少2ms,建议拉高100ms左右再拉低来达到复位效果。

IOCS16B管脚(第96脚)是16位/8位数据位的选择脚。

如果这个管脚下拉,则选择8位模式,如果这个管脚接高电平,将选择16位的模式。

由于单片机是8位的数据总线,因此这个管脚需要下拉。

IOWB(第30脚),IORB(第29脚)接到单片机的P3.6,P3.7(/WR ,/RD),用来控制读写时序。

X1和X2(第50,51脚)用来接20M的晶振。

TPIN+,TPIN-管脚(59,58)和HD,LD管脚(45,46)都接隔离变压器上,通过RJ45接口与网络相连。

由于使用8位数据位,SD0—SD7管脚接到单片机的P0.0-p0.7管脚,SD8-SD15不需要使用。

SA0—SA19为网卡的地址线,共20根,这个需要怎么接呢?前面说过,IOS3,IOS2,IOS1,IOS0管脚决定了芯片的I/O地址。

相关文档
最新文档