基于RTL8019AS的单片机网络通信接口设计
摘 要:网络数据传输技术具有传输速率高、传送距离远、通讯协议完善、信息共享程度高等优点,为嵌入式设备增加网络功能有着深远的意义。介绍以太网的帧协议和以太网控制芯片RTL8019AS的结构特性以及工作原理,设计STC89C54RD+单片机控制RTL8019AS实现以太网通讯的硬件设计方案和软件流程图;采用标准C语言实现ARP协议,所有程序在Keil c51环境下编译连接。最后并进行系统的调试与验证,取得了满意的效果。
关键词:以太网;RTL8019AS;网络数据传输技术;TCP/IP协议
中图分类号:TP393文献标识码:B
文章编号:1004373X(2008)2204703
Design of Single Chip Computer Network Communication Interface Based on RTL8019AS
WU Quanyu,CHEN Jie
(West Anhui University,Lu′an,237012,China)
Abstract:The data transmission of net has many virtues,such as high transmission speed and perfect communication protocol.It is important that the embedded devices have communicated with Ethernet.The frame of Ethernet protocol and the Ethernet microcontroller TL8019AS characteristics are presented,the principle diagram of hardware system that STC89C54RD+ single chip computer controlling RTL8019AS is designed,and the diagram of software is given.ARP protocol based on the standard C language is realized in the paper,and it is succeeded to compile and link them in keil c51 environment.Finally,the system debugging and the experiment results are also given,the result is satisfied.
Keywords:Ethernet;RTL8019AS;network data transmission technology;TCP/IP protocol
1 引 言
网络技术的飞速发展促使嵌入式设备的数据传输方式发生重大变化,如今嵌入式设备网络化已成为嵌入式技术发展的一个重要方向。网络数据传输技术具有传输速率高、传送距离远、通信协议完善、信息共享程度高等优点,为嵌入式设备增加网络功能有着深远的意义。在工业控制领域,应用嵌入式网络技术可实现仪器仪表的远程测控,使控制系统底层设备间数据传输协议统一,甚至有人认为以嵌入式网络技术为支持的工业以太网在将来会取代协议不统一的现场总线。而在家庭自动化应用领域引入嵌入式网络技术,则可实现水、电、气3表自动抄送,家用电器远程控制,住宅防盗、灾难报警等,真正实现智能化小区管理。但对于以单片机为核心的嵌入式设备而言,要利用有限的资源对数据和信息进行网络协议的处理具有一定的技术难度。本文通过设计一个实现串口设备接入Internet的网络模块,探讨利用低速单片机实现网络功能的方法。
2 系统硬件结构
系统硬件结构框图如图1所示。整个系统主要包括4个单元:主控制单元,以太网控制单元,外部扩展单元,串口通信单元。 硬件设计的关键是主控制芯片和以太网控制芯片的设计,考虑到实现TCP/IP协议对代码空间和处理速度的要求,选用的主芯片为宏晶科技推出的新一代超强抗干扰、高速、低功耗的单片机STC89C54RD+,该芯片集成了8 kB的FLASH ROM,无需专用编程器或仿真器,可通过串口(P3.0/P3.1)直接下载用户程序,8 kB程序只需3 s即可完成,工作频率选用22.118 4 MHz。本文选用的RTL8019AS是10 Mb/s的全双工以太网控制器,由于其优良的性能和低廉的价格而被广泛使用。另外,单片机还外扩了1片62256外部存储器,该RAM可存储32 kB的数据。使用外部RAM的目的是为了存放网络数据,提高数据传输的速度。同时62256还用作串口的输入输出缓冲,使单片机可以高速的吞吐数据。此外系统中还有电源、复位、指示灯等外围接口电路。
3 以太网络接口芯片RTL8019AS介绍
RTL8019AS:是台湾Realtek公司制造的一种高集成度的全双工10 Mb/s以太网控制芯片,可实现基于Ethernet协议的MAC层的全部功能,内置16 kB的SRAM、双DMA通道和FIFO,可完成数据包的接收和发送功能。
3.1 主要性能
(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尺寸。
3.2 以太网接口工作原理及实现
以太网控制芯片是以太网接口的核心器件,如何使用该芯片是设计以太网接口的关键,RTL8019AS是符合IEEE802.3和CDMA/CD标准的以太网控制芯片,实现以太网介质访问层(MAC)和物理层的功能,其内部划分为远程DMA和本地DMA两个通道,结构如图2所示。
远程DMA接口是指单片机对RTL8019AS内部RAM进行读写的总线,即ISA总线的接口部分。单片机收发数据只需对远程DMA操作。本地DMA接口是把RTL8019AS与网线的连接通道,完成控制器与网线的数据交换。当单片机要想网络发送数据时,先通过远程DMA通道将一帧数据发送到数据缓存区中,然后发出传送指令。发送控制器将字节在时钟控制下逐位移出,并送到CRC编码单元。CRC编码单元对帧数据产生校验序列,并附加的数据尾传送。当接收数据时,接收控制器在时钟控制下将串行数据拼成字节送到FIFO和CRC校验单元,CRC校验单元负责对送来的数据进行校验,如果校验码不同,则该帧被拒绝。地址识别单元对MAC地址进行比较,只有与本地物理地址相同或为广播地址的数据帧才被接收。以上校验通过后将数据接入数据缓存区,收满1帧以后,以中断或寄存器标志的方式通知单片机,单片机再通过远程DMA通道读取这一帧。
4 软件设计
4.1 TCP/IP协议
嵌入式设备网络化的关键是实现TCP/IP网络协议。众所周知,TCP/IP是一个数量庞大的协议体系,是几百种网络协议的集合,在嵌入式系统有限的资源中很难完全实现。且嵌入式系统作为以应用为中心,具有特定功能的专用计算机系统,也不需要实现如此多的协议。因此系统设计的第一步就是进行TCP/IP协议栈子集的选择。TCP/IP通常被认为是一个由链路层、网络层、传输层和应用层组成的四层协议系统,每一层都有相应的协议集合来实现不同的功能。
数据链路层主要处理与传输介质有关的物理接口细节,考虑到以太网数据流量大且通用性强,因此采用以太网(IEEE 802.3)协议,用RJ45接口将嵌入式设备连入网络。
网络层主要负责处理数据包在网络中的协议封装,该层选用TCP/IP协议栈的核心IP协议,同时选用ARP协议实现IP地址到MAC物理地址的转换。
传输层主要为两台主机上的应用程序提供端到端的通信,有UDP和TCP两种协议。UDP协议是不面向连接的,因而不能保证数据传输的可靠性。TCP是面向连接的,但其可靠性的保证是以许多复杂措施及由此而增加的开销为代价换来的。因此在此选择TCP为传输层协议,但针对应用进行简化以适应嵌入式要求。应用层负责处理特定的应用程序细节,应用层协议种类繁多,考虑到嵌入式应用的特殊性,不选取通用的应用层协议。以上对协议子集的选择是以满足实用为目的,并在不影响网络基本功能的原则下进行的。
4.2 以太网(Ethernet)协议
一个标准的以太网物理传输帧由7部分组成(如表1所示,单位为字节)。
PR:同步位,用于发送双方的同步时钟,同时也指明传输的速率;
SD:分隔位,用于表示下面跟着的是真正的数据,而不是同步时钟;
DA:目的地址。以太网的地址为6个字节的二进制地址,表明该帧传输给哪个网卡,如果为FFFF-FFFF-FFFF,则为广播地址,可被任何网卡接收;
SA:源地址,6个字节,表明该帧的数据是哪个网卡发出的;
TYPE:类型字段,表明该帧是什么类型的数据,不同协议的类型字段不同,IP为0800H,ARP包为0801H,SNMP为814CH;
DATA:数据段,该段数据不超过1 500B;
PAD:填充位。由于以太网帧传输的数据包最小不能小于60 B,除去DA,SA和TYPE共14 B,还必须传输46 B数据,当数据段数据不足46 B时,后补0。
除了数据段的长度不定外,其他部分的长度固定不变。数据段为46~1 500 B。以太网规定整个传输包的最大长度不能超过1 514 B(14 B为DA,SA,TYPE),最小不能小于60 B。除去DA,SA,TYPE14字节,还必须传输46 B的数据,当数据段的数据不足46 B时需填充,填充字符的个数不包括在长度字段里;超过1 500 B时,需拆成多个帧传送。事实上,发送数据时,PR,SD,FCS及填充字段这几个数据段由以太网控制器自动产生;而接收数据时,PR,SD被跳过,控制器一旦检测到有效的前序字段(即PR,SD),就认为接收数据开始。
4.3 软件设计流程图
软件设计分成3大部分:硬件初始化、数据发送、数据接收。所有程序在keil c51环境下编译连接,采用标准C语言编程,可读性强、移植性好、开发周期短等优越性。系统流程如图3所示。
试验调试环境主要包括3大部分,即RTL8019AS测试PCB板和一个基于单片机的温度数据采集系统,另外还有带网卡的PC机以及网线,特别要说明的是在PC机上安装有专门基于Web的监控软件系统,它能够完成IP地址站点浏览以及操作、用户维护、数据维护、系统通讯配置等功能。
在实验中,基于单片机的温度数据采集系统不停的采集室内温度,通过这里的RTL8019AS测试PCB板和300 m网线把数据传输到PC机上分时的进行刷新显示,取得了满意的效果。由以上分析可见,如果对RTL8019AS测试PCB板做进一步的完善,该系统接口应用于实际中将会产生很大的经济效益。
参考文献
[1]Richard Stevens W.TCP/IP详解卷1:协议\.北京:机械工业出版社,2000.
[2]Richard Stevens W.TCP/IP详解卷2:实现\.北京:机械工业出版社,2000.
[3]RTL8019AS 用户手册\.REALTEK 半导体公司, 2000.
[4][美] Kenneth D Reed.协议分析\.北京:电子工业出版社,2002.
[5][美] Kenneth D Reed.网络互联设备\.北京:电子工业出版社,2002.
[6]范逸之.VB与RS 232串行通信控制\.北京:中国青年出版社,2002.
[7]赵晶.电路设计与制版Protel高级应用\.北京:人民邮电出版社,2001.
作者简介 吴全玉 男,1977年出生,安徽砀山人,硕士。主要研究方向为信号处理与嵌入式系统的应用。