1、 51单片机; TCP/IP协议;传感器AbstractGiven 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.Ke
2、y words The RTL8019AS; 51 microcontroller; TCP / IP protocol; sensor目 录第1章 绪论 71.1本设计的背景 71.2以太网络接口芯片RTL8019AS 介绍 7第2章、系统总体结构设计 102.1系统控制模块的硬件设计 102.11控制系统的主要硬件电路 102.2系统控制模块的软件设计 102.21 TCP/ IP 协议 102.22 软件设计流程 112.3程序部分 112.31主程序 112.32发送控制过程 132.33接收控制过程 14第3章 总结 16第4章 参考文献 17第5章 设计总结 18第6章 致谢 19
3、第1章 绪论1.1本设计的背景随着互联网技术的飞速发展,Internet网络日益成为人们日常生活中必不可少的工具。人们在使用互联网学习、娱乐的同时,各种家电设备、仪器仪表以及工业生产中的数据采集与控制设备在逐步地走向网络化,以便共享网络中庞大的信息资源,给人们的工作学习带来更大的便利。就目前来看,利用 8位的微处理器,实现与Internet网络的通信,具有十分重要的意义。本设计主要为了解决利用单片机控制网卡芯片实现以太网的链接,已达到最大程度的利用网络资源,方便人们生活学习的目的。1.2以太网络接口芯片RTL8019AS 介绍RTL8019AS: 是台湾Realtek 公司制造的一种高集成度的
4、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 拓扑结构的自动修复
5、;( 6) 允许4个诊断LED 引脚可编程输出;( 7) 100 脚的PQFP 封装,缩小了PCB 尺寸。内部结构:RTL80l9AS内部可分为远程DMA接口、本地DMA接口、MAC(介质访问控制)逻辑、数据编码解码逻辑和其他端口。内部结构如图l所示图一 远程DMA接口是指单片机对RTL80l9AS内部RAM进行读写的总线,即ISA总线的接口部分。单片机收发数据只需对远程DMA操作。本地DMA接口是指RTL80l9AS与网线的连接通道,完成控制器与网线的数据交换。MAC(介质访问控制)逻辑完成以下功能:当单片机向网上发送数据时,先将一帧数据通过远程DMA通道送到RTL80l9AS中的发送缓存区
6、,然后发出传送命令;当RTL80l9AS完成了上一帧的发送后,再开始此帧的发送。RTL80l9AS接收到的数据通过MAC比较、CRC校验后,由FIFO存到接收缓冲区;收满一帧后,以中断或寄存器标志的方式通知主处理器。FIFO逻辑对收发数据作l6字节的缓冲,以减少对本地DMA请求的频率。2.3内部RAM地址空间分配RTL8Ol9AS内部有两块RAM区。一块l6K字节,地址为OX4OOOOX7fff;一块32字节,地址为OXOOOOOXOOlf。RAM按页存储,每256字节为一页。一般将RAM的前l2页(即OX4OOOOX4bff)存储区用作发送缓冲区;后52页(即OX4cOOOX7fff)存储区
7、用作接收缓冲区。第O页叫Prom页,有32字节,地址为OXOOOOOXOOlf,存放以太网物理地址。要接收和发送数据包就须通过DMA读写RTL8Ol9AS内部的l6KBRAM。实际上它是双端口的RAM,是指它有两套总线连接到此RAM,一套总线是RTL8Ol9AS读或写此RAM,即本地DMA;另一套总线是单片机读或写该RAM,即远程DMA第2章、系统总体结构设计2.1系统控制模块的硬件设计系统控制单元以单片机主控模块为核心其他外围电路主要包括:ISP下载线模块、系统供电模块、硬件时钟模块、网络接口卡模块、外部数据采集模块。2.11控制系统的主要硬件电路本系统的主控模块主要采用STC公司的89C5
8、2作为主控芯片 其中具体包括在线编程模块电路、系统复位电路、系统供电电路、网卡驱动电路、外部数据采集电路。要实现8位微处理器的上网首先要解决的就是与以太网的连接问题,即如何将通用处理器的网络装置应用于嵌入式网络的开发与应用。目前市面上有许多型号的以太网控制芯片,多数功耗较高、功能复杂,不适合用于价格低廉的嵌入式系统。还需要考虑的一点是网络接口芯片(RTL8019AS)与单片机的接口不能太复杂,要尽量少占用单片机的系统资源。根据上面的原则,选用RTL 8019AS作为网络接口芯片,网络接口卡设计方案如图二所示。图二2.2系统控制模块的软件设计2.21 TCP/ IP 协议嵌入式设备网络化的关键是
9、实现TCP/ IP 网络协议。众所周知, TCP/ IP 是一个数量庞大的协议体系,是由几百种网络协议组成的集合, 在嵌入式系统有限的资源中难以完全实现。且嵌入式系统以应用为中心, 即使具有特定功能的计算机系统, 也不需要实现那么多的协议。因此系统设计的首先就是进行TCP/ IP 协议栈子集的选择。TCP/ IP常被认为是一个由链路层、网络层、传输层和应用层组成的四层协议系统, 且每一层都有相应的协议集合用以实现不同的功能。数据链路层主要处理和传输介质相关的物理接口部分, 考虑到以太网数据流量大并且通用性强, 因此采用以太网协议, 用RJ45接口把嵌入式设备连入网络。网络层主要作用是处理数据包
10、在网络中的协议封装,该层选用TCP/ IP 协议栈的核心IP 协议, 同时选用ARP 协议实现IP 地址到MAC 物理地址的转换。传输层主要为两台主机上的应用程序提供端到端的通信,有UDP和TCP两种协议。UDP协议是不面向连接的, 因此不能保证数据传输的可靠性。TCP是面向连接的,但是其可靠性的保证是以许多复杂措施以及由此而增加的开销为代价换来的。因此在此选择TCP为传输层协议,但是针对应用进行简化以适应嵌入式应用的要求。应用层负责处理特定的应用程序部分, 应用层协议种类很多, 考虑到嵌入式应用的特殊性,不选取通用的应用层协议。2.22 软件设计流程对网卡编程就是对网络接口控制器(NIC)R
11、TL8019AS 中各寄存器进行编写程序控制,进而完成数据分组的正确发送及接收。2.3程序部分2.31主程序主程序可分为网络通讯和串行通讯这两部分。网络通讯又可分为网卡初始化、发送控制和接收控制三部分。主程序框图如图三 所示。图三网卡初始化过程如下:RTL8019AS的初始化主要是设置一些工作参数,如RAM的分配,中断初始化,MAC地址设置,接收设置,发送设置等,具体在以下程序中注释。void rtl8019Init(void) RTL8019_RESET_PORT_H(); delayms(50); RTL8019_RESET_PORT_L(); /RTL8019AS复位管脚置0 RTL80
12、19WRITE( ISR, rtl8019Read(ISR) ) ; / 软件复位 RTL8019WRITE(CR, 0xE1); / 选择第3页,配置寄存器 RTL8019WRITE(0x01, 0xC0); /EEM1=EEM0=1 RTL8019WRITE(CONFIG2, 0x20);/设置网卡为10M自动检测模式 RTL8019WRITE(CONFIG3, 0); /设置LED工作模式 delayms(255); RTL8019WRITE(0x01, 0); /EEM1=EEM0=0 RTL8019WRITE(CR, 0x21); /第0页 delayms(2);RTL8019WRI
13、TE(DCR, DCR_INIT); / #define DCR_INIT 0x58 RTL8019WRITE(RBCR0,0x00); RTL8019WRITE(RBCR1,0x00); RTL8019WRITE(RCR,0x04); /接收结构寄存器 RTL8019WRITE(TCR,0x02); /传送配置寄存器RTL8019WRITE(TPSR, TXSTART_INIT); /#define TXSTART_INIT 0x40 RTL8019WRITE(PSTART, RXSTART_INIT); /#define RXSTART_INIT 0x47 RTL8019WRITE(BNR
14、Y, RXSTART_INIT); RTL8019WRITE(PSTOP, RXSTOP_INIT); /#define RXSTOP_INIT 0x60 RTL8019WRITE(ISR,0xFF); /清除中断标志 RTL8019WRITE(IMR, IMR_INIT); /中断屏蔽 RTL8019WRITE(CR, 0x61); /第1页 RTL8019WRITE(CURR, RXSTART_INIT); /设置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);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1