以太网通信实验设计报告.docx
《以太网通信实验设计报告.docx》由会员分享,可在线阅读,更多相关《以太网通信实验设计报告.docx(10页珍藏版)》请在冰豆网上搜索。
![以太网通信实验设计报告.docx](https://file1.bdocx.com/fileroot1/2022-11/23/fca69780-e943-4c17-828f-3cd5405401f1/fca69780-e943-4c17-828f-3cd5405401f11.gif)
以太网通信实验设计报告
以太网通信实验
摘要
本次设计的目的是通过初始化RTL8019AS,读取RTL8019AS的ID以及通过RTL8019AS正确地发送数据包到PC机,实现以太网通信。
本设计在SOPC-NIOSIIEDA/SOPC开发平台模拟实现。
关键词:
以太网控制口;SOPC;RTL8019AS;NIOS
目录
1绪论1
1.1课程设计背景1
1.1.1以太网工作原理简介1
1.1.2SOPC简介1
2设计准备2
2.1实验目的2
2.2硬件需求2
2.3实验内容2
3实验原理2
4实验步骤6
5实验运行结果8
6设计总结9
参考文献10
附录A程序11
1绪论
1.1课程设计背景
1.1.1以太网工作原理简介
以太网采用带冲突检测的载波帧听多路访问(CSMA/CD)机制。
以太网中节点都可以看到在网络中发送的所有信息,因此,我们说以太网是一种广播网络。
以太网的工作过程如下:
当以太网中的一台主机要传输数据时,它将按如下步骤进行:
1、监听信道上收否有信号在传输。
如果有的话,表明信道处于忙状态,就继续监听,直到信道空闲为止。
2、若没有监听到任何信号,就传输数据
3、传输的时候继续监听,如发现冲突则执行退避算法,随机等待一段时间后,重新执行步骤1(当冲突发生时,涉及冲突的计算机会发送会返回到监听信道状态。
注意:
每台计算机一次只允许发送一个包,一个拥塞序列,以警告所有的节点)
4、若未发现冲突则发送成功,所有计算机在试图再一次发送数据之前,必须在最近一次发送后等待9.6微秒(以10Mbps运行)。
1.1.2SOPC简介
System-on-a-Programmable-Chip,即可编程片上系统。
用可编程逻辑技术把整个系统放到一块硅片上,称作SOPC。
可编程片上系统(SOPC)是一种特殊的嵌入式系统:
首先它是片上系统(SOC),即由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。
SOPC结合了SOC和PLD、FPGA各自的优点,一般具备以下基本特征:
至少包含一个嵌入式处理器内核;具有小容量片内高速RAM资源;丰富的IPCore资源可供选择;足够的片上可编程逻辑资源;处理器调试接口和FPGA编程接口;可能包含部分可编程模拟电路;单芯片、低功耗、微封装。
2设计准备
2.1实验目的
1.熟悉以太网协议。
2.掌握网络分析工具Sniffer的基本使用。
3.掌握RTL8019AS各寄存器的意义及其设置。
4.掌握RTL8019AS数据的发送和接收。
5.掌握自定义IP核-RTL8019AS核的使用方法。
2.2硬件需求
1.SOPC-NIOSIIEDA/SOPC开发平台一套。
2.并口/USB下载电缆一条。
2.3实验内容
本实验要完成的内容就是要正确的控制RTL8019AS,包括初始化RTL8019AS,读取RTL8019AS的ID以及通过RTL8019AS正确地发送数据包到PC机。
3实验原理
相信大家对PC上的TCP/IP协议都有一定的认识,而且在很多嵌入式系统中,都有必要实现TCP/IP协议的转换,如现在很多只能家电,它们都具备通过网络,实现远程监控的功能。
但是由于指令以及资源上的原因,在嵌入式的系统中并不能像PC上那样实现整套TCP/IP协议,其实也没有必要把它实现,很多嵌入式的系统往往都是只提供某一方面的功能而已。
RTL8019AS是台湾REALTEK公司生产的以太网控制器,该控制器具有如下特点:
●支持IEEE802.3
●支持8位或16位数据总线
●内置16KB的SRAM,用于收发缓冲
●全双工,收发同时达到10Mbps
●支持10Base5、10Base2、10BaseT,并能自动检测到所连接的介质
RTL8019AS在ISA总线网卡中占有相当的比例,它与主机有三种接口方式,第一种为跳线方式,网卡的I/O和中断由跳线决定;第二种为即插即用方式,由软件进行自动配置plugandplay;第三种为免跳线方式,网卡的I/O和中断由外接的93C46里面的内容决定。
市面上的网卡一般只支持第二种和第三种。
在嵌入式应用的场合,如果可以不使用93C46的话,可以降低成本,同时减少电路板连线。
那么如何使用第一种方式-跳线方式呢?
事实上网卡使用那种方式由RTL8019AS的第65脚JP决定。
该引脚是输入引脚,当它为低电平时,RTL8019AS工作在第二种或第三种方式,具体由93C46里的内容决定;当它为高电平时,则RTL8019AS工作在第一种方式。
其硬件连接如图13-1所示。
图3-1RTL8019AS与传输介质的连接图
RTL8019AS片内寄存器分为NE2000寄存器组和PnP寄存器组(本文不介绍PnP寄存器组)。
NE2000寄存器组地址如表13-1所示。
NE2000寄存器分为4页,都映射到16个I/O地址上。
主机通过命令寄存器(CR)中的PS0、PS1位来寻址不同的页,通过16个I/O口地址来寻址页内寄存器。
其中最重要的寄存器是CR寄存器,即CommandRegister,该寄存器的地址便宜量是00H,为一个字节宽度,其详细内容如表3-2所示。
表3-1RTL8019AS寄存器映射
地址(HEX)
PAGE0
PAGE1
PAGE2
PAGE3
[R]
[W]
[R/W]
[R]
[R]
[W]
00
CR
CR
CR
CR
CR
CR
01
CLDA0
PSTART
PAR0
PSTART
9346CR
9346CR
02
CLDA1
PSTOP
PAR1
PSTOP
BPAGE
BPAGE
03
BNRY
BNRY
PAR2
-
CONFIG0
-
04
TSR
TPSR
PAR3
TPSR
CONFIG1
CONFIG1
05
NCR
TBCR0
PAR4
-
CONFIG2
CONFIG2
06
FIFO
TBCR1
PAR5
-
CONFIG3
CONFIG3
07
ISR
ISR
CURR
-
-
-
08
CRDA0
RSAR0
MAR0
-
CSNSAV
-
09
CRDA1
RSAR1
MAR1
-
-
HLTCLK
0A
8019ID0
RBCR0
MAR2
-
-
-
0B
8019ID1
RBCR1
MAR3
-
INTR
-
0C
RSR
RCR
MAR4
CRC
-
-
0D
CNTR0
TCR
MAR5
TCR
-
-
0E
CNTR1
DCR
MAR6
DCR
-
-
0F
CNTR2
IMR
MAR7
IMR
-
-
10~17
RemoteDMAPorts
18~1F
ResetPort
表3-2命令寄存器
位
7
6
5
4
3
2
1
0
名称
PS1
PS0
RD2
RD1
RD0
TXP
STA
STP
CR寄存器中PS0和PS1这两个位用来选择寄存器的页,其对应关系如表13-3所示。
表3-3PS与寄存器页的对应关系
PS1
PS0
对应页
0
0
寄存器页1
0
1
寄存器页2
1
0
寄存器页3
1
1
寄存器页4
RD2、RD1和RD0代表要执行的功能,其对应关系如表13-4所示。
表3-4RD与执行功能对应关系
RD2
RD1
RD0
执行功能
0
0
1
读网卡内存
0
1
0
写网卡内存
0
1
1
发送网卡数据包
1
*
*
完成或结束DMA的读、写操作
TXP位用来启动数据包的发送,当写入‘1’时,启动TRL8019AS发送数据包,数据包发送完毕后自动清零。
STA和STP这两个位用来启动或停止命令。
当STA=1且STP=0时,启动命令;当STA=0且STP=1时停止命令。
TRL8019AS网卡中含有16KB的SRAM,地址为0x4000~0x7FFF(网卡内部的存储地址,不是ISA总线地址),每256个字节称为1页,共有64页。
页的地址就是地址的高8位,页地址为0x40~0x7f。
这16KB的SRAM的一部分用来存放接收的数据包,一部分用来存储待发送的数据包。
下面就寄存器组中的部分寄存器作简要介绍。
●PSTART为接收缓冲区的起始页地址。
●PSTOP为接收缓冲区的结束页地址(该页用于接收)。
●BNRY为指向最后一个已经读取的页(读指针)。
●CURR为当前的结束页地址(写指针指向当前正在写的下一页)。
●TPSR为发送页的起始页地址。
●RCR为接收配置寄存器,一般可设置为使用接收缓冲区,仅接收自己的地址的数据包(以及广播地址数据包)和多点播送数据包,小于64字节的包丢弃(这是协议的规定,设置成接收是用于网络分析),校验错误的数据包不接收。
●TCR为发送配置寄存器,一般可设置为使用FIFO缓冲区,普通模式,8位或16位数据传输模式,字节顺序为高位字节在前,低位字节在后。
●DCR为数据配置寄存器。
●IMR为中断屏蔽寄存器。
设置成0x00将屏蔽所有中断;设置成0xFF将允许所有中断。
●MAR7~MAR0为设置多点播送的参数。
●PAR5~PAR0这几个寄存器是网卡在工作时使用的地址,只要符合这个地址的数据包才接收,这个地址是可以设置为其它的值,不一定设置成网卡的物理地址,为了不跟别的网卡冲突,最好设置为网卡的地址(如果用户需要设置为其它值,也是可以的)。
●8019ID0和8019ID1为RTL8019AS的ID号,分别为50H和70H。
另外实验中还可以用一些网络系统监控分析软件,来统计和显示传输的包的数量、内容和使用的协议,可以显示活的TCP连接,显示UDP包,显示和记录ICMP包等等。
使用一些网络分析工具,对以太网和TCP/CP协议的实现都有很大的帮助。
4实验步骤
实验步骤如下:
1、将光盘中提供的自定义IP核文件夹(myIP文件夹)中的所有文件夹拷贝到“Nios安装目录\kits\nios2_51\components”下。
2、使用QuartusII建立一个工程文件和顶层文件,方法与实验一相同。
3、使用SOPCBuilder建立一个简单的NIOSII硬件系统。
1)启动SOPCBuilder。
2)指定目标FPGA及时钟。
3)添加NIOSII内核及其它外设。
本实验添加的IP核如下:
A、添加NIOSII、SRAM、JTAG-UART、Avalon总线的IP核,并重新命名。
B、添加自定义的RTL8019AS核。
单击选中SystemContents列表中的myIP类中的RTL8019AS,然后点击底部的【Add】按钮,直接在弹出的窗口中点击【Finish】按钮,添加该IP核,并将其重命名为NET。
至此,本实验所有的外设均添加完成,完成后,工作区如图4-2所示。
图4-2本实验中创建的系统
4)指定基地址和中断优先级。
5)设置NiosII复位和异常地址。
6)编译生成NiosII系统。
4、在QuartusII中编译这个简单的NIOSII硬件系统并生成其配置文件。
1)在QuartusII加入NiosII系统符号到顶层文件。
2)为顶层文件加入相应的其它电路,在本实验中为了防止SRAM和FLASH数据冲突,将FLASH的CS信号设定为高电平,即加入一个VCC信号给FLASH的CS信号。
3)为QuartusII内的各端口加入输入/输出引脚。
并将输入/输出的引脚进行重新命名。
添加完成后如图4-3所示。
图4-3本实验的顶层文件
4)设置编译过程的各种参数,如没有使用的引脚信号的定义等。
5)编译顶层文件,找出措误的原因并更正,直到编译正确。
6)根据后面的附表为输入/输出信号分配FPGA的管脚。
7)管脚分配正确后,再次编译以使公配的管脚生效。
5、在NiosIIIDE中建立用户C/C++工程,编写用户程序,用户可参考示例程序。
6、编写完用户后,编译用户程序,将提示的程序错误改正,直到编译正确。
7、用电缆连接开发平台与电脑,打开电源,先通用过下载电缆下载本实验生成的SOF文件至FPGA,在NiosIIIDE中设置硬件连接,运行用户程序。
观察运行结果。
5实验运行结果
程序运行后,查看NiosIIIDE窗口中的Console窗口中打印的芯片ID正确,此时网口的两个LED会周期性的闪烁。
6设计总结
时间过的好快,转眼间,为期两周的数字信号处理课程设计就结束了。
通过这两周的课程设计,我拓宽了知识面,锻炼了能力,综合素质得到较大提高。
课程设计使我对MATLAB语言和有了更加深入的了解,同时,对于数字信号处理这门技术的实际应用有了更加深入的认识。
课程设计的过程中,由于对理论掌握的不熟练,或者是操作过程中发生失误,都会导致最后结果出不来,但最后我们通过老师的指导、上网查阅资料等途径一一解决了这些问题,这使得我们的实践能力大为提高。
对我们电子信息专业的本科生来说,实践能力的培养至关重要,而这种实际能力的培养单靠课堂教学是远远不够的,必须从课堂走向实践。
这也是一次预演和准备毕业设计工作。
通过课程设计,让我们找出自身状况与实际需要的差距,并在以后的学习期间及时补充相关知识,为求职与正式工作做好充分的知识、能力准备,从而缩短从校园走向社会的心理转型期。
作为整个学习体系的有机组成部分,课程设计虽然安排在两周进行,但并不具有绝对独立的意义。
它的一个重要功能,在于运用学习成果,检验学习成果。
运用学习成果,把课堂上学到的系统化的理论知识,尝试性地应用于实际设计工作,并从理论的高度对设计工作的现代化提出一些有针对性的建议和设想。
检验学习成果,看一看课堂学习与实际工作到底有多大距离,并通过综合分析,找出学习中存在的不足,以便为完善学习计划,改变学习内容与方法提供实践依据。
课程设计达到了专业学习的预期目的。
在两个星期的课程设计之后,我们普遍感到不仅实际动手能力有所提高,更重要的是通过对设计过程的了解,进一步激发了我们对专业知识的兴趣,并能够结合实际存在的问题在专业领域内进行更深入的学习。
这次课程设计终于完成了,在设计中,老师的辛勤指导和同学的热情帮助都让我受益匪浅,学到了很多实用的知识,在此我表示衷心的感谢!
参考文献
(1)《数字信号处理(第二版)》,丁玉美等,西安电子科技大学出版社;
(2)《数字信号处理试验指导书》王创新、文卉编长沙理工大学印刷(内部使用)
(3)《数字信号处理及其MATLAB实现》,陈怀琛等译,电子工业出版社;
(4)《MATLAB及在电子信息课程中的应用》,陈怀琛等,电子工业出版社。
(5)《数字信号处理》A.V.奥本海姆,R.W.谢弗著,北京:
科学出版社
(6)《数字信号处理——理论、算法与实现(第二版)》胡广书编著,北京:
电子工业出版社
附录A程序