嵌入式系统实验10 以太网传输程序编写实验-hgx.docxVIP

嵌入式系统实验10 以太网传输程序编写实验-hgx.docx

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

实验10:以太网传输程序编写实验

一、实验目的

1.通过实验了解以太网通讯原理和驱动程序开发方法。

2.通过实验了解TCP和UDP协议的功能和作用。

3.通过实验了解基于TCP/UDP的socket编程。

二、实验内容

1.学习KSZ8001L网卡驱动程序。

2.测试网卡功能,编写基于TFP/UDP协议网络聊天程序,并且能够接受键盘输入和彼 此之间相互发数据。

三、实验设备

1.硬件:PC机,基于ARM9系统教学实验系统实验箱1台;网线;串口线,电压表。

2.软件:PC机操作系统;Putty;服务器Linux操作系统;arm-v5t_le-gcc交叉编译环境。

3.环境:ubuntu12.04.4;文件系统版本为filesys_test;烧写的内核版本为uImage_mceb。源码及参考文档见附件I2C驱动实验文件夹。

四、预备知识

1.C语言的基础知识。

2.软件调试的基础知识和方法。

3.Linux基本操作。

4.Linux应用程序的编写。

五、实验说明

1.1以太网的工作原理

以太网采用带冲突检测的载波帧听多路访问(CSMA/CD)机制。以太网中节点都可以看到在网络中发送的所有信息,因此,我们说以太网是一种广播网络。

以太网的工作过程如下:

当以太网中的一台主机要传输数据时,它将按如下步骤进行:?

1、帧听信道上收否有信号在传输。如果有的话,表明信道处于忙状态,就继续帧听,直到信道空闲为止。

2、若没有帧听到任何信号,就传输数据。

3、传输的时候继续帧听,如发现冲突则执行退避算法,随机等待一段时间后,重新执行步骤1(当冲突发生时,涉及冲突的计算机会发送会返回到帧听信道状态。

注意:每台计算机一次只允许发送一个包,一个拥塞序列,以警告所有的节点)?

4、若未发现冲突则发送成功,所有计算机在试图再一次发送数据之前,必须在最近一次发送后等待9.6微秒(以10Mbps运行)。

1.2以太网帧传输原理

使用KSZ8001L网卡做为以太网的物理层接口。它的基本工作原理是:在收到主机发送的数据后(如图1帧格式所示,从目的地址域到数据域),先侦听并判断网络线路。若网络线路繁忙,等到网络线路空闲为止,否则,立即发送数据帧。在其过程中,先填加以太网帧头(如图1帧格式所示,包括前导码和帧开始标志),接着生成CRC校验码,最后将以数据帧形式将其发送到以太网上去。

图1802.3帧格式

以太网的数据帧规定,以太网包头为14byte,IP包头为20byte,TCP包头为20byte,有些以太网的最大帧长为1514字节。

在网卡接收数据过程中,将先把从以太网收到的数据帧通过解码、去帧头和地址检验等相关步骤后缓存在片内;再经过CRC校验后,通知网卡KSZ8001L接收已经到了数据帧;最后,用某种传输模式传送ARM的存储器中。大多数嵌入式系统内嵌一个以太网控制器,用来支持媒体独立接口(MII)和带缓冲的DMA接口(BDI)。可在半双工或全双工模式下提供10M/100Mbps的以太网接入。在半双工模式下,控制器支持CSMA/CD协议,在全双工模式下控制器能够支持IEEE802.3MAC的控制层协议。

以太网内部控制器内部结构图如下所示

图2MAC控制器的结构框图

由图可以看出模块的组成以及模块中各组成部分的连接方式。MAC控制器各组成部分的特征或功能有:

1.AHB_MASTER同时支持大端和小端模式,可以根据需要自行设定。一旦决定其模式,AHB_SLAVE也将按这种模式工作。

2.TXDMA主要有读取发送状态描述符或将发送状态写入描述符、将要发送的数据包从发送缓存区中传送到TXFIFO中、控制TXFIFO的读写状态等三个功能。

3.RXDMA也有三个作用,分别是:读取接收状态描述符或将接收状态写入描述符、将要发送的数据包从TXFIFO中传送到接收缓存区中、控制RXFIFO的读写状态。

4.TXMAC的作用是将数据包从TXFIFO中传送到网卡,RXMAC的作用是将数据包从网卡接收到RXFIFO中。不论是接收到的还是要发送出去的数据都包括前缀、校验、发送状态等。

1.2.1以太网发送和接收的流程

当TXMAC去发送一个数据包时,它首先会检测网卡的状态,挂起发送装置直到网卡空闲。然后,TXMAC给数据包加上前缀和校验信息,将数据包发送到网卡。如果在发送过程中TXMAC探测到冲突,就向网卡发送阻塞信号,然后检测冲突源是否是外来的,如果不是,在等待休止时间后,继续发送该数据包。发送的流程如图3所示。

图3MAC发送流程

当网络上有数据包到达,RXDMA会将数据包从RXMAC中拿出来,并传送到

文档评论(0)

t_github + 关注
实名认证
文档贡献者

计算机研究者

1亿VIP精品文档

相关文档