学士学位论文_基于 MCU 的以太网接入模块设计.doc_第1页
学士学位论文_基于 MCU 的以太网接入模块设计.doc_第2页
学士学位论文_基于 MCU 的以太网接入模块设计.doc_第3页
学士学位论文_基于 MCU 的以太网接入模块设计.doc_第4页
学士学位论文_基于 MCU 的以太网接入模块设计.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1 11 11 1 学 士 学 位 论 文 基于 MCU 的以太网接入模块设计 姓姓 名 名 学学 号 号 指指导导教教师师 院院系系 部部所所 专专 业 业 完完成成日日期期 2013 年 05 月 15 日 摘 要 给出了单片机控制RTL8019AS实现以太网通讯的软硬件设计方案 首先设计 了系统的硬件电路 并对接口电路的设计进行了详细的阐述 然后设计了 RTL8019AS的以太网驱动程序 最后通过一个简单的数据收发试验验证了设计的 正确性 关键词 RTL8019AS 51 单片机 TCP IP 协议 传感器 AbstractAbstract Given SCM RTL8019AS Ethernet communications hardware and software design Design the hardware circuit the interface circuit design in detail and then design RTL8019AS Ethernet driver Send and receive data through a simple test to verify the correctness of the design Key words The RTL8019AS 51 microcontroller TCP IP protocol sensor 目 录 第 1 章 绪论 7 1 1 本设计的背景 7 1 2 以太网络接口芯片 RTL8019AS 介绍 7 第 2 章 系统总体结构设计 10 2 1 系统控制模块的硬件设计 10 2 11 控制系统的主要硬件电路 10 2 2 系统控制模块的软件设计 10 2 21 TCP IP 协议 10 2 22 软件设计流程 11 2 3 程序部分 11 2 31 主程序 11 2 32 发送控制过程 13 2 33 接收控制过程 14 第 3 章 总结 16 第 4 章 参考文献 17 第 5 章 设计总结 18 第 6 章 致谢 19 第 1 章 绪论 1 1 本设计的背景 随着互联网技术的飞速发展 Internet 网络日益成为人们日常生活中必不可 少的工具 人们在使用互联网学习 娱乐的同时 各种家电设备 仪器仪表以 及工业生产中的数据采集与控制设备在逐步地走向网络化 以便共享网络中庞 大的信息资源 给人们的工作学习带来更大的便利 就目前来看 利用 8 位的 微处理器 实现与 Internet 网络的通信 具有十分重要的意义 本设计主要为了 解决利用单片机控制网卡芯片实现以太网的链接 已达到最大程度的利用网络 资源 方便人们生活学习的目的 1 2 以太网络接口芯片 RTL8019AS 介绍 RTL8019AS 是台湾 Realtek 公司制造的一种高集成度的 10 Mb s 以太网 控制芯片 可实现基于以太网协议的 MAC 层的全部功能 内置 16 kB SRAM 双 DMA 通道和 FIFO 可完成数据包的接收和发送功能 主要性能 1 符号 Ethernet 与 IEEE802 3 10Base5 10Base2 10BaseT 标准 2 全双工 收发可同时达到 10 Mb s 的速率 3 内置 16 kB 的 SRAM 用于收发缓冲 降低对主处理器的速度要求 4 支持 8 16 位数据总线 8 个中断申请线以及 16 个 I O 基地址选择 5 支持 UTP AUI BNC 自动检测还支持对 10BaseT 拓扑结构的自动修复 6 允许 4 个诊断 LED 引脚可编程输出 7 100 脚的 PQFP 封装 缩小了 PCB 尺寸 内部结构 RTL80l9AS 内部可分为远程 DMA 接口 本地 DMA 接口 MAC 介质访问控制 逻辑 数据编码解码逻辑和其他端口 内部结构如图 l 所示 ISA 总线接口 ENA 编码译码 逻辑 即插即用 PnP Boot ROM 端口 EEPROM 端口 AUI 接口双绞线接口 8K 16 SROM MAC 逻辑 图一 远程 DMA 接口是指单片机对 RTL80l9AS 内部 RAM 进行读写的总线 即 ISA 总线的接口部分 单片机收发数据只需对远程 DMA 操作 本地 DMA 接口 是指 RTL80l9AS 与网线的连接通道 完成控制器与网线的数据交换 MAC 介质访问控制 逻辑完成以下功能 当单片机向网上发送数据时 先将 一帧数据通过远程 DMA 通道送到 RTL80l9AS 中的发送缓存区 然后发出传送 命令 当 RTL80l9AS 完成了上一帧的发送后 再开始此帧的发送 RTL80l9AS 接收到的数据通过 MAC 比较 CRC 校验后 由 FIFO 存到接收缓冲区 收满 一帧后 以中断或寄存器标志的方式通知主处理器 FIFO 逻辑对收发数据作 l6 字节的缓冲 以减少对本地 DMA 请求的频率 2 3 内部 RAM 地址空间分配 RTL8Ol9AS 内部有两块 RAM 区 一块 l6K 字节 地址为 OX4OOO OX7fff 一块 32 字节 地址为 OXOOOO OXOOlf RAM 按页存储 每 256 字节为一 页 一般将 RAM 的前 l2 页 即 OX4OOO OX4bff 存储区用作发送缓冲区 后 52 页 即 OX4cOO OX7fff 存储区用作接收缓冲区 第 O 页叫 Prom 页 有 32 字节 地址为 OXOOOO OXOOlf 存放以太网物理地址 要接收和发送 数据包就须通过 DMA 读写 RTL8Ol9AS 内部的 l6KBRAM 实际上它是双端口 的 RAM 是指它有两套总线连接到此 RAM 一套总线是 RTL8Ol9AS 读或写 此 RAM 即本地 DMA 另一套总线是单片机读或写该 RAM 即远程 DMA 第 2 章 系统总体结构设计 2 1 系统控制模块的硬件设计 系统控制单元以单片机主控模块为核心 其他外围电路主要包括 ISP下载线模 块 系统供电模块 硬件时钟模块 网络接口卡模块 外部数据采集模块 2 11 控制系统的主要硬件电路 本系统的主控模块主要采用STC公司的89C52作为主控芯片 其中具体包括在线编 程模块电路 系统复位电路 系统供电电路 网卡驱动电路 外部数据采集电 路 要实现8位微处理器的上网首先要解决的就是与以太网的连接问题 即如何 将通用处理器的网络装置应用于嵌入式网络的开发与应用 目前市面上有许多 型号的以太网控制芯片 多数功耗较高 功能复杂 不适合用于价格低廉的嵌 入式系统 还需要考虑的一点是网络接口芯片 RTL8019AS 与单片机的接口不 能太复杂 要尽量少占用单片机的系统资源 根据上面的原则 选用RTL 8019AS作为网络接口芯片 网络接口卡设计方案如图二所示 单 片 机 外部 RAM 存 存储器 网络控制 器 隔离滤波 器 RJ45 串口电平转 换芯片 Pc 机 网络 接口 串口 EEPROM 图二 2 2 系统控制模块的软件设计 2 21 TCP IP 协议 嵌入式设备网络化的关键是实现TCP IP 网络协议 众所周知 TCP IP 是一 个数量庞大的协议体系 是由几百种网络协议组成的集合 在嵌入式系统有限的 资源中难以完全实现 且嵌入式系统以应用为中心 即使具有特定功能的计算 机系统 也不需要实现那么多的协议 因此系统设计的首先就是进行TCP IP 协议栈子集的选择 TCP IP常被认为是一个由链路层 网络层 传输层和应用 层组成的四层协议系统 且每一层都有相应的协议集合用以实现不同的功能 数据链路层主要处理和传输介质相关的物理接口部分 考虑到以太网数据流量 大并且通用性强 因此采用以太网协议 用RJ45接口把嵌入式设备连入网络 网络层主要作用是处理数据包在网络中的协议封装 该层选用TCP IP 协议栈的 核心IP 协议 同时选用ARP 协议实现IP 地址到MAC 物理地址的转换 传输层 主要为两台主机上的应用程序提供端到端的通信 有UDP和TCP两种协议 UDP协 议是不面向连接的 因此不能保证数据传输的可靠性 TCP是面向连接的 但是 其可靠性的保证是以许多复杂措施以及由此而增加的开销为代价换来的 因此 在此选择TCP为传输层协议 但是针对应用进行简化以适应嵌入式应用的要求 应用层负责处理特定的应用程序部分 应用层协议种类很多 考虑到嵌入式应 用的特殊性 不选取通用的应用层协议 2 22 软件设计流程 对网卡编程就是对网络接口控制器 NIC RTL8019AS 中各寄存器进行编写 程序控制 进而完成数据分组的正确发送及接收 2 3 程序部分 2 31 主程序 主程序可分为网络通讯和串行通讯这两部分 网络通讯又可分为网卡初始化 发送控制和接收控制三部分 主程序框图如图三 所示 初始化串口 初始化网卡 接收串口数据 装入以太网帧 接收以太网帧 收到确认帧 N 图三 网卡初始化过程如下 RTL8019AS的初始化主要是设置一些工作参数 如RAM的分配 中断初始化 MAC 地址设置 接收设置 发送设置等 具体在以下程序中注释 void rtl8019Init void RTL8019 RESET PORT H delayms 50 RTL8019 RESET PORT L RTL8019AS复位管脚置0 RTL8019WRITE ISR rtl8019Read ISR 软件复位 delayms 50 RTL8019WRITE CR 0 xE1 选择第3页 配置寄存器 RTL8019WRITE 0 x01 0 xC0 EEM1 EEM0 1 RTL8019WRITE CONFIG2 0 x20 设置网卡为10M自动检测模式 RTL8019WRITE CONFIG3 0 设置LED工作模式 delayms 255 RTL8019WRITE 0 x01 0 EEM1 EEM0 0 RTL8019WRITE CR 0 x21 第0页 delayms 2 RTL8019WRITE DCR DCR INIT define DCR INIT 0 x58 RTL8019WRITE RBCR0 0 x00 RTL8019WRITE RBCR1 0 x00 RTL8019WRITE RCR 0 x04 接收结构寄存器 RTL8019WRITE TCR 0 x02 传送配置寄存器 RTL8019WRITE TPSR TXSTART INIT define TXSTART INIT 0 x40 RTL8019WRITE PSTART RXSTART INIT define RXSTART INIT 0 x47 RTL8019WRITE BNRY RXSTART INIT define RXSTART INIT 0 x47 RTL8019WRITE PSTOP RXSTOP INIT define RXSTOP INIT 0 x60 RTL8019WRITE ISR 0 xFF 清除中断标志 RTL8019WRITE IMR IMR INIT 中断屏蔽 RTL8019WRITE CR 0 x61 第1页 delayms 2 RTL8019WRITE CURR RXSTART INIT define RXSTART INIT 0 x47 设置MAC地址 RTL8019WRITE PAR0 0 MYMAC 0 RTL8019WRITE PAR0 1 MYMAC 1 RTL8019WRITE PAR0 2 MYMAC 2 RTL8019WRITE PAR0 3 MYMAC 3 RTL8019WRITE PAR0 4 MYMAC 4 RTL8019WRITE PAR0 5 MYMAC 5 RTL8019WRITE CR 0 x22 start the NIC end rtl8019as init 2 32 发送控制过程 在网络中 帧传输的过程就是发送方将待发送的数据按帧格式要求封装成帧 然后通过网卡发送到网络的传输线上 发送程序框图如图4所示 数据长度 46 数据长度 14 初始化远程字节 计算器 RBCR 启动远程 DMA 数据写入缓冲区 启动本地 DMA 发送字节计数器 赋值 初始化发送页起 始地址寄存器 TTTPSR 发送缓冲区数据 到网上 初始化 数据长度小于 46 度 444444646 发送完毕 发送完毕 返回 N N N 图四 首先设置网卡发送数据包的RAM首地址 用以存放要发送的数据 和上两节写 RAM相同 然后设置远程读此数据包的长度 RBCR1 0在读数据包的时候作用为 要读数据包的长度 在发送数据包的时候作用为远程接收此包时 此包的有效 字节长度 相当于RTL8019AS接收数据包的Byte3 4 详细请看第二章的3 9节 然后设置发送数据包的长度 发送数据包的长度与远程读此数据包的长度是 一样的吧 然后把要发送的数据包写入RAM 启动发送数据包命令 发送数据 包 程序如下 RTL8019WRITE CR 0 x22 第0页 开始命令 while rtl8019Read CR 有数据包发送则等发送完毕 RTL8019WRITE TPSR 0 x40 加载发送RAM页的首地址 RTL8019WRITE RSAR0 0 x00 写RAM地址 低8位 RTL8019WRITE RSAR1 0 x40 写RAM地址 高8位 RTL8019WRITE ISR 1 8 远程读数据包长度的高8位 RTL8019WRITE TBCR0 unsigned char sendPacketLength 发送数据包长度的低8位 RTL8019WRITE TBCR1 unsigned char sendPacketLength 8 发送数据包长度的高8位 RTL8019WRITE CR 0 x12 启动写RAM命令 for unsigned int i 0 i length i RTL8019WRITE RDMAPORT Buffer i 写数据到RAM RTL8019WRITE CR 0 x24 发送数据包 CR的TXP 1 RTL8019WRITE ISR 1 ISR RDC 清除RAM操作完成标志 2 33 接收控制过程 读数据包之前 可通过读BNRY和CURR来判断有无数据包的接收 BNRY CURR 的时候说明没有数据包接收 当BNRY不等于CURR时 说明有数据包收到 此时 可从以BNRY为首地址的RAM中读出4个字节来判断收到数据包的长度 从而设置 RBCR1 0 再从接收RAM中读出以太网数据包 需要注意的是 设置完RBCR1 0后 再从RAM读数据包的时候 首地址为BNRY 4 因为前4个字节已经读过了 如果 不加4 读到的数据将不完整 同时 读之前还要判断是否有内存溢出 如果溢 出 则做相应的处理 rtl8019ProcessInterrupt 检测RAM是否溢出 RTL8019WRITE CR 0 x62 第1页 读CURR curr rtl8019Read CURR 读CURR RTL8019WRITE CR 0 x22 第0页 读BNRY bnry rtl8019Read BNRY 读BNRY if bnry curr return 没有包 返回 RTL8019WRITE ISR 1 ISR PRX 清除接收中断标志 RTL8019WRITE RBCR0 4 RTL8019WRITE RBCR1 0 RTL8019WRITE RSAR0 0 RTL8019WRITE RSAR1 bnry RTL8019WRITE CR 0 x0A 启动读RAM命令 for i 0 i 4 i buffer i rtl8019Read RDMAPORT RTL8019WRITE CR 0 x22 终止RAM操作 等待RAM操作完成 for i 0 i 20 i if rtl8019Read ISR RTL8019WRITE ISR 1 6 清除RAM操作完成中断标志 rxlen buffer 3 8 buffer 2 数据包实际长度 nextPage buffer 1 下一数据包页的首地址 ReadAddress bnry 8 RTL8019WRITE RSAR0 unsigned char ReadAddress RTL8019WRITE RSAR1 unsigned char ReadAddress 8 RTL8019WRITE CR 0 x0A 启动读RAM命令 for i 0 i rxlen 4 i DataBuffer i rtl8019Read RDMAPORT RTL8019WRITE CR 0 x22 终止RAM操作 等待RAM操作完成 for i 0 i 20 i if rtl8019Read ISR RTL8019WRITE ISR 1 6 清除RAM操作完成中断标志 RTL8019WRITE BNRY nextPage 设置下一个数据包的页地址址 第 3 章 总结 RTL 8019AS芯片具有性价比高 连接方便等特点 是进行嵌入式以太网设计 时首选的控制芯片 本文利用单片机控制RTI 8019AS来实现网络通信 主要解 决了硬件电路连接和以太网驱动程序设计的问题 该方法在工业自动化系统 远程分散式设备控制 网络家电等方面具有广阔的应用前景 第 4 章 参考文献 1 李华 MCS 51 系列单片机实用接口技术 M 北京 北京航空大学出版社 2002 2 杨延双 张建标 王全民 TCP IP 协议分析及应用 M 北京 机械工业出版社 2007 3 Behrouz A Forouzan TCP IP 协议族 第四版 王海等译 M 北京 清华大 学出版社 2011 4 韩毅刚 计算机网络技术 M 北京 机械工业出版社 2010 5 RTL8019AS 数据手册 6 D Gaponstev Quasi single mode fiber laser nears 2kW output with high quality beam J Laser Focus World 2005 7 谭浩强 C 语言程序设计 第二版 M 北京 清华大学出版社 2003 8 罗军周 钱松荣 杨明等 TCP IP 协议及网络编程技术 M 北京 清华大学 出版社 2004 9 徐爱钧 彭秀华 单片机高级语言 C51 应用程序设计 M 北京 电子工业出 版社 1998 10 严天峰 单片机开发 M 成都 科学出版社 2007 11 任清珍 黄天戍 多路数据采集内存使用及存盘法 J 计算机应用研究 1991 年 03 期 12 张家喜 用 PC 1500 构成的多路数据采集系统 J 工业仪表与自动化装置 1992 年 04 期 13 章公器 8051 单片机开发的几点经验 J 电子与自动化 1994 年 01 期 14 章公器 8051 单片机开发的几点经验 J 电子技术应用 1994 年 03 期 15 汪家铭

温馨提示

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

评论

0/150

提交评论