TFTP以太网通讯实验.ppt_第1页
TFTP以太网通讯实验.ppt_第2页
TFTP以太网通讯实验.ppt_第3页
TFTP以太网通讯实验.ppt_第4页
TFTP以太网通讯实验.ppt_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JX44B0实验系统教案 TFTP以太网通讯实验,武汉创维特信息技术有限公司,2019/9/18,2,提纲,1,3,2,4,5,基础知识,实验目的,实验内容,预备知识,实验设备,6,实验过程,7,实验报告要求,3,一 实验目的,实验目的,了解在嵌入式系统中网络通讯的实现 了解TFPT协议的功能和作用,4,二 实验内容,实验内容,通过TFTP协议实现文件的下载,5,三 预备知识,预备知识,了解TFTP协议 熟悉网卡芯片CS8900A的操作,6,四 实验设备,实验设备,JX44B0教学实验箱 ADT1000仿真器和ADT IDE集成开发环境 串口连接线 网线(若有交换机则需要两根,没有可以使用1根对接网线代替)。,7,五 基础知识,TFTP协议,TFTP是一个传输文件的简单协议,它基于UDP协议实现,它不具备通常的FTP的全部功能,它只能从文件服务器上获得或写入文件,不能列出目录,不进行认证等。 传输中有三种模式:netascii,这是8位的ASCII码形式,另一种是octet,这是8位源数据类型;最后一种mail已经不再支持,它将返回的数据直接返回给用户而不是保存为文件。,8,五 基础知识,TFTP协议,任何传输起自一个读取或写入文件的请求,这个请求也是连接请求。如果服务器批准此请求,则服务器打开连接,数据以定长512字节传输。每个数据包包括一块数据,服务器发出下一个数据包以前必须得到客户对上一个数据包的确认。如果一个数据包小于512字节,则表示传输结束。如果数据包在传输过程中丢失,发出方会在超时后重新传输最后一个未被确认的数据包。通信的双方都是数据的发出者与接收者,一方传输数据接收应答,另一方发出应答接收数据。大部分的错误会导致连接中断,错误由一个错误的数据包引起,这个包不会被确认,也不会被重新发送,因此另一方无法接收到。如果错误包丢失,则使用超时机制。,9,五 基础知识,TFTP协议,TFTP使用UDP协议,而UDP使用IP,IP可以还使用其它本地通信方法。 一个TFTP包中会有以下几段:本地媒介头,IP头,数据报头,TFTP头,剩下的就是TFTP数据了。 TFTP在IP头中不指定任何数据,但是它使用UDP中的源和目标端口以及包长度域,由TFTP使用的包标记(TID)在这里被用做端口,TID必须介于0到65,535之间。,10,五 基础知识,初始连接的建立,初始连接时需要发出WRQ(请求写入远程系统)或RRQ(请求读取远程系统),收到一个确定应答,一个确定可以写出的包或应该读取的第一块数据。 创建连接时,通信双方随机选择一个TID。每个包包括两个TID,发送者ID和接收者ID。 下例是一个写入的例子,其中WRQ,ACK和DATA代表写入请求,确认和数据。 主机A向主机B发出WRQ,其中端口为69 B机向A机发出ACK,块号为0,包括B和A的TID,11,五 基础知识,I2C总线的基本结构,采用I2C总线标准的单片机或IC器件,其内部不仅有I2C接口电路,而且将内部各单元电路按功能划分为若干相对独立的模块,通过软件寻址实现片选,减少了器件片选线的连接。CPU不仅能通过指令将某个功能单元挂靠或摘离总线,还可对该单元的工作状况进行检测,从而实现对硬件系统简单而灵活的扩展与控制。I2C总线接口电路结构如下图所示。,12,五 基础知识,TFTP包的类型,Read request (RRQ) Write request (WRQ) Data (DATA) Acknowledgment (ACK) Error (ERROR),13,五 基础知识,连结正常终止,传输的结束由DATA数据标记,其包括0-511个字符。这个包可以被其它数据包确认。接收方在发出对最后数据包的确认后可以断开连接,当然,适当的等待是比较好的,如果最后的确定包丢失可以再次传输。如果发出确认后仍然收到最后数据包,可以确定最后的确认丢失。 发送最后一个DATA包的主机必须等待对此包的确认或超时。如果响应是ACK,传输完成。如果发送方超时并不准备重新发送并且接收方有问题或网络有问题时,发送也正常结束。,14,五 基础知识,CS8900A网卡芯片,JX44B0使用CS8900A芯片来用于网络通讯,它的传输速率为10M。CS8900与处理器按照16位方式连接,网卡芯片复位后默认工作方式为I/O连接,寄存器的默认基址是300H。 1)LINECTL(0112H):LINECTL决定CS8900的基本配置和物理接口 2)RXCTL(0104H):RXCTL控制CS8900接收特定数据报 3)RXCFG(0102H):RXCFG控制CS8900接收到特定数据报后会引发接收中断 4)BUSCT(0116H):BUSCT可控制芯片的I/O接口的一些操作 5)ISQ(0120H):ISQ是网卡芯片的中断状态寄存器,内部映射接收中断状态寄存器和发送中断状态寄存器的内容。 6)PORT0(0000H):发送和接收数据时,CPU通过PORT0传递数据。 7)TXCMD(0004H):发送控制寄存器,如果写入数据00C0H,那么网卡芯片在全部数据写入后开始发送数据。 8)TXLENG(0006H):发送数据长度寄存器,发送数据时,首先写入发送数据长度,然后将数据通过PORT0写入芯片。,15,五 基础知识,实验函数说明,CS8900A初始化函数:用于设置CS8900A的MAC地址、工作模式。 void cs8900a_eth_init(bd_t * bd); CS8900A接收数据函数:用于接收数据,并将该数据包上传给IP层。 int cs8900a_eth_rx (unsigned char *data, int *len) CS8900A发送数据函数。 int cs8900a_eth_send (unsigned char *data, int len) IP包处理函数:当从网卡上接收到一个IP协议数据包时,需调用该函数进行处理。 int ip_rcv_packet(struct sk_buff *skb),16,五 基础知识,实验函数说明,UDP包处理函数:当一个IP包中封装的数据为UDP时,调用该函数。在本次实验中TFTP数据包都是基于UDP的。 int udp_rcv_packet(struct sk_buff *skb) TFTP包处理函数:TFTP包有五种类型,调用该函数进行分析,并作出相应的处理。 int tftp_rcv_packet(struct sk_buff *skb) TFTP写请求包处理函数:当一个TFTP包是WRQ类型时调用该函数。该函数首先发送一个ACK确认,然后系统将进入接收数据状态。 int tftp_rcv_ wrq (struct sk_buff *skb) TFTP数据包处理函数:当一个TFTP包是DATA类型时调用该函数。该函数要检查IP地址以及端口是否正确,随后发送一个ACK确认,并将接收的数据保存下来,如果数据长度小于512字节,表示本次传输过程结束。 int tftp_rcv_data(struct sk_buff *

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论