基于单片机的以太网接入设计毕业论文设计word格式内容摘要:

7 用的以太网控制器接入以太网的。 对于单片机系统,在选择以太网控制器时,要考虑一下几个因素: 首先,要求所选的以太网控制器必须支持 8 位工作模式。 实际上,只有部分基于ISA 总线的以太网控制器才能满足此条件,所以基于 PCI 总线的不在此考虑之列。 其次,要 考虑以太网控制器的片上缓存,最好选用具有足够片上缓存的以太网控制器以简化系统设计。 再次,应考虑以太网控制器与主机的数据交换形式,如有的可支持中断或只可支持查询,这势必对系统设计产生一定的影响。 最后,考虑其是否与NE2020 兼容。 根据上述分析,我们可以选择采用台湾 Realtek 公司生产的 10M 以太网接口芯片RTL8019AS。 RTL8019AS 控制器的介绍 RTL8019AS 是为了配合 PC 系统的 ISA 总线而设计的一款兼容 NE2020 的网络接口的 10M 全双工以太网控制器,性能优良,价格低廉,在 10M 网卡 市场上曾有极高的占有率。 虽然 10M 的以太网接入速率显得“很慢”,但是对于处理速度和运算能力都较弱的单片机而言,以这样的速率接入网络还是非常不错的 [14]。 RTL8019AS 的特点主要包括如下几个方面。 ( 1) 符合 EtherⅡ与 标准。 ( 2) 全双工,收发可同时达到 10Mb/s 的速率。 ( 3) 支持即插即用( PnP),用于计算机网卡时可减少系统配置的工作量。 ( 4) 内置 16KB 的 SRAM,用于收发缓冲,降低 对主处理器的速度要求。 ( 5) 支持 8/16 位数据总线,具有 8 个中断申请以及 16 个 I/O 基地址选择。 ( 6) 支持 UTP、 AUI 和 BNC 自动检测,还支持对 10BasT 拓扑结构的自动极性纠正。 ( 7) 允许 4 个诊断 LED 引脚可编程输出。 100 引脚的 PQFP 封装,缩小了 PCB 尺寸。 RTL8019AS 的工作原理 ( 1) RTL8019AS 的内部结构 RTL8019AS 内部可分为远程 DMA 接口、本地 DMA 接口、 MAC(介质访问控制)逻辑、线路数据编码解码逻辑和其他端口。 内部结构如图 23 所示。 黑龙江东方学院本科毕业论文(设计) 8 远程 DMA 接口是指 RT8019AS 提供给主控 CPU 对其内部 RAM 进行读写的总线接口。 因为 RTL8019AS 是为了配合 PC 系统的 ISA 总线设计的 ,因此远程 DMA 接口指的就是符合 ISA 总线接口规范要求的三总线系统。 单片机在控制 RTL8019AS 收发数据时只需提供符合 ISA 总线接口操作时序的总线信号就可对远程 DMA 操作。 本地DMA 接口指的是 RTL8019AS 与物理层数据的连接通道,完成控制器与传输介质之间的数据格式转换及传输。 MAC 介质访问控制逻辑完成以下功能:当单片机向网上发送数据时,先将一帧数据通过远程 DMA 通道传送到 RTL8019AS 中的发送缓存区,然后发出传送命令;当 RTL8019AS 完成了上帧的发送后,再次开始此帧的发送。 RTL8019AS 接 收到的数据通过 MAC 比较、 CRC 校验后,由 FIFO 存到接受缓冲区;收满一帧后,以中断或寄存器标志的方式通知 CPU。 FIFO 逻辑控制对收发数据的缓冲,以减少对本地 DMA 请求的频率。 本地 DMA 的操作优先级要高于远程 DMA,RTL8019AS 或会通过 IOCHRDY 信号申请延时。 不过对于单片机这样总线操作速率远低于网络数据字节接收速率的 CPU 而言,不用关心总线延时的问题。 I S A 总 线 接 口远 程 D M A 接 口即 插 即 用( P n P ) 控 制B o o t R O M控 制 接 口E E P R O M控 制 接 口M A C控 制 逻 辑1 6 K BS R A M本 地 D M A 接 口线 路 数 据 编 码 译 码 逻 辑A U I 接 口 双 绞 线 接 口 图 23 RTL8019AS 的内部结构 ( 2) RTL8019AS 内部 RAM 地址空间分 配 RTL8019AS 内部有两块 RAM 区:一块 16 字节,为数据缓冲 RAM。 地址为0x4000~ 0x7FFF;一块 32 字节,为配置寄存器区,地址为 0x0000~ 0x001F。 数据缓黑龙江东方学院本科毕业论文(设计) 9 冲 RAM 按页存储,每 256 字节为一页,共有 64 页。 一般将数据缓冲 RAM 的前 12 页(即 0x4000~ 0x4BFF)作为发送缓冲区;后 52 页(即 0x4C00~ 0x7FFF)存储区作为接收缓冲区。 它实际上是一个双端口的 RAM,有两套总线连接到该 RAM,一套是RTL8019AS 读 /写该 RAM 的总线,即本地 DMA;另一套是外部 CPU 单片机读 /写该RAM 的总线,即远程 DMA。 单片机要接收和发送数据报就必须通过远程 DMA 接口读 /写 RTL8019AS 内部 16KB 的数据缓冲 RAM。 ( 3) RTL8019AS 的 I/O 地址及寄存器地址分配 RTL8019AS 共有 32 位 I/O 地址,地址偏移量为 0x00~ 0x1F。 其中 0x00~ 0x0F 共16 个地址,对应 RTL8019AS 内部的 16 个寄存器。 RTL8019AS 内部寄存器共 4 页,编号分别为 PAGE0、 PAGE PAGE PAGE3,每页都有 16 个寄存器,它们的编址都是 0x00~ 0x1F,由 RTL8019AS 的 CR 中的 PS PS0 位来决定要访问的页,但与NE2020 兼容的寄存器只有前 3 页。 远程 DMA 地址共 8 个,从 0x10~ 0x17,功能相同,都可以用来做远程 DMA 端口。 实际上使用时只要读写其中的一个就可操作RTL8019AS 内部的数据缓冲 RAM。 复位端口包括 18H~ 1FH 共 8 个地址,功能一样,用于 RTL8019AS 复位。 TCP/IP 协议栈 TCP/IP 协议的分层结构 网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。 一个协议组件,例如 TCP/IP,是一组不同层次上的多个协议的组合 [15]。 如图 24 所示,图 24中同时列出了各层主要的协议名称。 协 议 分 层应 用 层运 输 层链 路 层网 络 层T e l n e t / F T P / F T T P 等T C P 和 U D PI P / I C M P / I G M P 等A R P / R A R P / 设 备 驱 动 程序 和 硬 件 接 口 程 序主 要 协 议 图 24 TCP/IP 协议的分层结构 ( 1)链路层。 也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动黑龙江东方学院本科毕业论文(设计) 10 程序和计算机中对应的网络接口卡。 它们一起处理与传输媒体(如电缆、光纤或其它任何传输媒介)的物理接口细节。 ( 2)网络层。 也称作互连网层,处理分组在网络中的活动,例如分组的路由选择。 在 TCP/IP 协议组件中,网络层协议包括 IP 协议(网际协议)、 ICMP 协议( Inter 控制报文 协议)以及 IGMP 协议( Inter 组管理协议)。 ( 3)运输层。 主要为两台主机上的应用程序提供端到端的通信。 有两个互不相同的传输协议: TCP 传输控制协议和 UDP 用户数据报协议。 前者为两个主机提供高可靠性的数据通信。 它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等,由于运输层提供了高可靠行的端到端通信,因此应用层可以忽略所有这些细节;后者则为应用层提供了一种非常简单的服务。 它只是把称作数据报的分组从一台主机发送到另一台主机,并不保证 该数据能到达另一端。 数据传输的可靠性必须由应用层保证。 ( 4)应用层。 其负责处理特定的应用程序细节。 TCP/IP 协议栈的实现一般都会提供一些通用的应用程序,例如 Tel 远程登录、 FTP 文件传输协议、 SMTP 简单邮件传输协议和 SNMP 简单网络管理协议等 [16]。 在 TCP/IP 协议组件中,网络层 IP 提供的是一种不可靠的服务,它只是尽可能快地把源端送到目的端,但是并不是提供任何可靠性服务。 但是, TCP 在不可靠的 IP 层上提供了一个可靠的运输层。 为了提供这样可靠的服务, TCP 采用了超时重发、发送方和接收方进行端 到端的分组确认等机制,由此可见,网络层和运输层分别负责不同功能的实现。 虽然 TCP 使用不可靠的 IP 服务,但它却提供可靠的运输服务,这些应用通常都是用户进程。 UDP 为应用程序发送和接收数据报。 一个数据报是指从发送方 传输到接收方的一个信息单元,但是与 TCP 不同的是 UDP 是不可靠的,它不能保证数据能安全无误地到达最终目的地 [17]。 IP 是网络层的主要协议,同时被 TCP 和 UDP 使用。 TCP 和 UDP 的每组数据都通过端系统和每个中间路由器中的 IP 层在因特网中进行传输。 ICMP 是 IP 协议的附属协议。 IP 层用它来与其他主 机或路由器交换错误报文和其他重要信息。 尽管 ICMP 主要被 IP 使用,但应用程序也有可能访问。 常用的诊断工具 Ping 和 Traceroute 使用的就是ICMP 协议。 IGMP 是 Inter 组管理协议。 它用来把一个 UDP 数据报多播到多个主机。 ARP 地址解析协议和 RARP 反向地址解析协议某些网络接口(如以太网和令牌环黑龙江东方学院本科毕业论文(设计) 11 网)使用的特殊协议,用来转换 IP 层和网络接口层使用的地址 [18]。 TCP/IP 协议数据的处理 ( 1)封装( Encapsulation) 当应用程序用 TCP 传送数据时,数据被送入协议栈中然后逐个通 过每一层直到被当作一串比特流送入网络。 其中每一层对收到的数据都要增加一些首部或尾部信息用于标记或控制,如图所示。 TCP 传给 IP 的数据单元称作 TCP 报文段或简称为 TCP 段( TCP Segment)。 IP 传给网络接口层的数据单元称作 IP 数据报( IP Datagram)。 通过以太网传输的比特流称作帧( Frame) [19]。 图 25 中帧头和帧尾下面所标注的数字是典型以太网帧首部的字节长度。 以太网数据帧的物理特性要求其长度必须在 46~ 1500 字节之间。 UDP 数据与 TCP 数据基本一致。 唯一不同的是 UDP 传给 IP 的信息 单元称作UDP 数据报,而且 UDP 的首部长为 8 字节。 由于 UDP、 TCP、 ICMP 和 IGMP 都要向 IP 传送数据,所以 IP 层必须在生成的IP 首部加入某种标识,以表明数据属于哪一层。 为此 IP 在首部中加入 1 字节的数据,成为协议域。 0x01 表示为 ICMP 协议, 0x02 表示为 IGMP 协议, 0x06 表示为 TCP 协议, 0x11 表示为 UDP 协议。 运输层协议在成报文首部时要存入一个应用程序的标识符。 TCP 和 UDP 都用一个 16 位的被称为端口号得二进制数来表示该数据报所属的应用程序。 发送方和接收方都有端口号,以此来表示发送数据报 和接受数据报的应用程序。 TCP 和 UDP 把源端口号和目的端口号分别存入报文首部中。 网络接口分别要发送和接受 IP、 ARP 和 RARP 数据,因此也必须在以太网的帧首部中加入某种形式的标识,以指明生成数据的网络层协议。 为此,以太网的帧首部也有一个 16 位的帧类型域。 黑龙江东方学院本科毕业论文(设计) 12 用 户 数 据应 用 首 部 用 户 数 据应 用 数 据应 用 数 据应 用 数 据U D P 首 部U D P 首 部U D P 首 部I P 首 部I P 首 部E 首 部 E 尾 部1 4 2 0 8以 太 网 帧 ( 4 6 1 5 0 0 字 节 )应 用 程 序 封 装 数 据I P 协 议 封 装 数 据U D P 协 议 封 装 数 据以 太 网 驱 动物 理 媒 介 图 25 数据进入协议栈的封装过程 ( 2)分用( Demultiplexing) 当目的主机接收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部。 每层协议都要 检查报文首部中由对方上层协议加入的协议标识,以确认将接收到数据送给哪个上层协议处理程序 ,这个过程称为分用。 相关协议报文的格式 ( 1)以太网帧格式 以太网是当今 TCP/IP 网络采用的主要局域网技术,采用了 CSMA/CD(载波侦听多路介入 /冲入检测)的媒体介入方法,每个通信节点物理接口的地址由 48 位二进制数表示。 在 TCP/IP 协议中,以太网 IP 数据报的封装是在 RFC894 中定义的。 所有的数据位的传输都以字节为单位,由低位开始,传输的位流采用曼切斯特编码,以太网的冲突检测及重发策略都是有硬件自动完成的 [20]。 如图 26 显示了以太网数据报的封装格式。 同 步 位7 B分 隔。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。