单片机与以太网接口设计.docx
《单片机与以太网接口设计.docx》由会员分享,可在线阅读,更多相关《单片机与以太网接口设计.docx(63页珍藏版)》请在冰豆网上搜索。
单片机与以太网接口设计
湖南工业职业技术学院
HunanIndustryPolytechnic
项目承接与技术服务
(毕业实践)
类别设计类
题目基于MCS-51单片机技术以太网接口设计
系名称电气工程系
专业及班级电信S2008-4
学生姓名杨文武
学号20
指导教师王皑杨远宏
完成日期2010年12月28日
湖南工业职业技术学院
项目承接与技术服务(毕业实践)任务书
系名称电气工程系
专业及班级电信S2008-4
学生姓名杨文武
学号20
技术服务项目:
基于MCS-51单片机技术以太网接口设计
指导教师:
王皑杨远宏
教研室主任:
王皑
系主任:
李德尧
2010年7月8日
项目承接与技术服务(毕业实践)课题及任务
课题简介
本课题主要实现将TCP/IP协议嵌入8位单片机中,用单片机驱动ISA总线网卡或者是驱动基于ISA总线的以太网(局域网组网规范)控制芯片RTL8019AS,嵌入TCP协议以实现仪器的远程控制、远程数据终端的数据通信等功能。
课题任务
要求
设计单片机以太网接口的要求:
1.用8位单片机AT89C52提供的系统资源和处理能力,加上ISA接口的10Mb/s网卡芯片RTL8019AS,通过编写一套精简的协议栈,并实现可靠的数据通信,从而达到低成本、可靠连接网络的目的
2.毕业论文的格式和组成:
A、封面;B、毕业论文(设计)成绩评议;C、毕业论文(设计)任务书;D、毕业论文(设计)开题报告;E、中文摘要;G、目录;H、正文;I、参考文献;J、附录。
3.毕业论文(设计)统一用A4纸打印。
打印正文用宋或楷体小四号字,版面边距上2.5cm,下2cm,左2.5cm,右2cm。
进程安排
暑假7-8月:
通过书籍或上网的方式查阅相关资料,加深对设计课题的理解,确定主体设计方案,并撰写好开题报告。
第1-9周:
进行元器件的选型和硬件电路的设计。
第10-15周:
进行软件的设计。
第16-18周:
设计论文的撰写,对设计进行测试、调试并总结。
19周:
设计任务答辩,并根据答辩的要点和老师的意见修改设计。
参考资料
[1]李右军.嵌入式系统综述[J].现代电子技术.2003(6),1页.
[2]许海艳.嵌入式系统技术与应用[M].机械工业出版社.2002,5页.
[3]ForouzanBA,FeganSC.TCP/IP协议族[M].谢希仁等译.清华大学出版社,2006.
[4](美)史蒂文斯(W.Richard.Stevens).TCP/IP详解卷1:
协议[M].机械工业出版社.2000.
[5]EdTaylor.TCP/IP使用详解[M].王虎,邓宏涛,刘志刚等译.机械工业出版社.1999.
.
湖南工业职业技术学院项目承接与技术服务(毕业实践)开题报告书
电气工程系电子信息工程专业
学生姓名
杨文武
班级
4班
学号
20
课题名称
基于MCS-51单片机技术以太网接口设计
课题
准备
情况
首先设计之前,上网收集、整理、了解MCS-51单片机AT89C52内部结构及各位分功能和工作原理的资料。
以及以太网的认识与了解、收集以太网控制芯片RTL8019AS的详细资料。
最后是单片机控制以太网的连接的具体方案。
思路和方法
本次设计是基于MCS-51单片机技术的设计、用户终端可以通过这个设计将现有的各种串口设备快速方便地接入网络,从而实现仪器的远程控制、远程数据终端的数据通信等功能。
将TCP/IP协议嵌入8位单片机中,用单片机驱动ISA总线网卡或者是驱动基于ISA总线的以太网(局域网组网规范)控制芯片。
拟重点解决的问题
1.元器件的选型。
2.硬件电路的设计
3.软件设计,设计程序代码。
4.调试
计
划
进
度
暑假7-8月:
通过书籍或上网的方式查阅相关资料,加深对设计课题的理解,确定主体设计方案,并撰写好开题报告。
第1-9周:
进行元器件的选型和硬件电路的设计。
第10-15周:
进行软件的设计。
第16-18周:
设计论文的撰写,对设计进行测试、调试并总结。
19周:
设计任务答辩,并根据答辩的要点和老师的意见修改设计。
指导教师意见
签名:
年月日
湖南工业职业技术学院项目承接与技术服务(毕业实践)考核表
电气工程系电子信息工程专业
学生姓名
杨文武
班级
4
学号
20
课题名称
基于MCS-51单片机技术以太网接口设计
课题
完成
情况及自我评价
完成
通过本课题的设计让我学到了更多相关的专业知识,我的心智也有了一个质的飞跃,思想也变成熟了许多、锻炼了自我动手和分析问题的能力,受益非浅。
这对我的将来非常大的帮助!
指导教师评价
评语
评级
签名:
年月日
评阅教师评价
评语
评级
签名:
年月日
答辩小组评价
评语
评级
组长签名:
年月日
毕业实践评审组审核
经综合考核该学生毕业实践得分分,评定为
组长签名:
年月日
基于MCS-51单片机技术以太网接口设计
摘要
现实生活中,许多的嵌入式系统设备已被广泛地应用,由于当前硬件设计的问题,未嵌入网络连接模块,使得这些嵌入式系统在使用上受到限制,而添置新设备又需要很高的成本。
本文设计的网络接入模块解决了嵌入式设备与以太网络的连接问题,在不改变嵌入式设备本身结构的情况下,用户终端可以通过这个模块将现有的各种串口设备快速方便地接入网络,从而实现仪器的远程控制、远程数据终端的数据通信等功能。
本设计利用8位单片机AT89C52提供的系统资源和处理能力,加上ISA接口的10Mb/s网卡芯片RTL8019AS,通过编写一套精简的协议栈,并实现可靠的数据通信,从而达到低成本、可靠连接网络的目的。
本主设计共分四章,第一章介绍嵌入式系统、课题研究的意义、整体方案设计和课题最终实现目的,第二章介绍TCP/IP协议其包括:
TCP/IP协议的分层结构、封装、分用和子协议,第三章全面阐述硬件实现它包括:
物理层接口实现、RTL8019AS简介和硬件设计主要器件,第四章介绍RTL8019AS驱动程序设计、TCP/IP协议栈的实现与轻量级TCP/IP协议栈uIP的嵌入。
关键词:
以太网,单片机,RTL8019AS,AT89C52
第1章绪论
1.1嵌入式系统
嵌入式系统是指嵌入式计算机及其应用系统,是指嵌入于各种设备及应用产品内部的计算机系统,它主要完成信号控制的功能,体积小,结构紧凑,可作为一个部件埋藏于所控制的装置中,它提供用户接口、管理有关信息的输入输出、监控设备工作,使设备及应用系统有较高的智能和性价比。
嵌入式系统由嵌入式硬件与嵌入式软件组成,硬件以芯片、模板、组件、控制器形式埋藏于设备内部,软件是实时多任务操作系统和各种专用软件,一般固化在ROM或闪存中。
软硬件可裁剪,适用于对功能、体积、成本、可靠性、功耗有严格要求的计算机系统中。
嵌入式计算机系统,最早出现在60年代的武器控制中,后来用于军事指挥控制和通信系统,现在广泛应用于民用机电一体化产品中。
1.2课题研究的意义
随着Internet技术的普及,信息共享的程度越来越提高。
TCP/IP协议栈使得嵌入式系统可以通过Internet将通信距离无限扩展。
以太网使得大量数据的快速传输成为可能。
这样,除了可以充分利用PC机上各种资源,完成数据的存储、分析、统计工作外,还可以实现测控系统间的数据交换,对于智能化、模块化的嵌入式设备集群的实现提供了另一种途径。
PPP协议可以通过调制解调器实现远程的数据交换、状态控制等功能,为嵌入式系统提供了更为灵活的控制、监测方式。
因此,基于单片机的嵌入式系统如何控制以太网网卡控制器进行数据传输,如何嵌入TCP/IP协议连接到互联网,这些都具有深远的意义[2]。
1.3整体方案设计
方案的主要任务是采用单片机控制网络接口芯片实现以太网接口,以便宜控制系统通过以太网实现网络化。
在本文中最重要的是嵌入式TCP/IP协议在8位单片机上的实现,从而达到了实现嵌入式以太网接口的目的。
嵌入式以太网的实质是在嵌入式系统的基础上实现网络化,使嵌入式系统能够实现TCP/IP网络通信协议,接入以太网。
将嵌入式系统与TCP/IP协议融合到一起主要有两种方法:
一种是采用带有以太网接口的嵌入式处理器,即使用已有的TCP/IP芯片直接作为以太网口。
这种方法的优点是可靠性高,执行速度快,但往往硬件电路复杂、价格昂贵、硬件成本高。
另一种是采用嵌入式处理器+网卡芯片,即将TCP/IP协议以软件方式嵌入到嵌入式系统的ROM中。
一般来说,TCP/IP协议栈比较庞大,在嵌入式系统中很难支完整的TCP/IP协议,因此要根据嵌入式网络产品的特点,精简TCP/IP协议,实现与需要相关的部分,大幅度减少对于系统资源的需求。
本设计采用了第二种方式,使用通用高性能做51系统MCU,成本低、技术成熟,软硬件开发周期都很短,并且设计方案灵活多变,可适用于不同的对象。
1.4课题最终实现目的
本课题主要实现将TCP/IP协议嵌入8位单片机中,单片机上网研究最多的一种方案就是用单片机驱动ISA总线网卡或者是驱动基于ISA总线的以太网(局域网组网规范)控制芯片,考虑到在实际的网络应用中以太网在局域网中占有主导地位,本文采用后者。
单片机上网的困难在于TCP/IP协议是一组庞大的协议集,而8位单片机自身资源有限,其存储容量、运行速度和总线宽度等不能像PC机那样通过标准的硬件和软件接口实现TCP/IP。
本文将介绍利用Atmel公司的51单片机芯片AT89C52,它能够满足需求,而且极为常用,价格便宜,易于获取。
网卡芯片采用台湾Realtek公司生产的10MbpsISA总线的以太网控制芯片RTL8019AS,嵌入TCP协议以实现单片机上网。
第2章TCP/IP协议(栈)简介
2.1TCP/IP协议的分层结构
TCP协议和IP协议是使计算机能相互通信的一组协议中的两个重要协议,通常就用TCP/IP来代表这一组协议。
该协议是用于通信的一个规则或标准,由计算机传送数据时使用,保证Internet上数据的准确快速传输。
本文采用TCP/IP的一种简化的四层模型,分别为:
应用层、传输层、网络层、链路层。
如表2.1所示。
表2.1TCP/IP协议的分层结构
层
主要协议
应用层
FTP、TELNET、SMTP、SNTP、HTTP
传输层
TCP、UDP
网络层
IP、ARP、RARP、IGMP、ICMP
链路层
接口层协议
链路层:
有时也称作数据链路层或网络接口层,定义计算机怎样连接网络,数据必须通过对网络的连接才能传出去,它提供物理介质(如网卡芯片)与单片机的接口,将原始数据转换成上一层能识别的逻辑帧。
网络层:
负责处理从原发送方到目的地的报文地址和路由信息,以便让信息可以发送到相邻的TCP/IP网络上的任意主机上。
IP协议就是层中传送数据的机制。
这一层使用的主要协议还有:
地址转换协议(ARP协议)、反向地址解析协议(RARP协议)、网际控制报文协议(ICMP协议)和Internet组管理协议(IGMP协议)。
传输层:
主要为两台主机上的应用程序提供发送端到目的端的通信。
这一层的协议有两个,基于可靠传输的传输控制协议(TCP协议)和不可靠传输的用户数据报协议(UDP)。
应用层:
负责对接收的数据提供解释服务。
对嵌入式系统来说,有两个协议是非常重要的,即超文本协议(HTTP协议)和文件传输协议(FTP协议)。
超文本传输协议用于将文件从一个主机传送到另一个主机,并在请求方主机上显示文字、文件;文件传输协议用于将文件从一个主机传送到另一个主机,并将文件存储在发出请求的主机内。
它传送的只是一个拷贝,不是原文件。
其它的协议还有远程登录、简单邮件传输协议、简单网络管理协议等[3]。
2.2TCP/IP协议的封装和分用
TCP/IP协议采用分层结构,实现也采用分层实现的方法。
在实现的过程中首先要了解封装和分用的概念。
2.2.1什么是封装
当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层,直到被当作一串比特流送入网络。
其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息),这个过程称作封装。
如图2.1所示:
图2.1数据进入协议栈时的封装过程
2.2.2什么是分用
当目的主机收到一个以太网数据帧时,数据就开始从协议栈底层向上升,同时去掉各层协议加上的报文首部。
以太网帧要检查首部中的帧类型字段,IP要检查首部中的协议字段,TCP和UDP要检查首部中的端口号来确定数据属于哪一层,这个过程称作分用。
如图2.2所示:
图2.2以太网数据帧的分用过程
2.2.3以太网帧格式
各种通讯协议都有自己的报文格式,TCP/IP也不例外,它也有自己单独的报文格式。
对TCP/IP协议编程,首先要清楚其报文格式。
由于TCP/IP协议采用分层结构,各层都有专用的包头,下面先介绍以太网的物理帧格式,TCP/IP其它各层的帧格式讲座2.3节介绍。
以太网协议不止一种,本课题使用的是802.3协议,物理信道上的收发操作均使用此协议的帧格式。
一个标准的以太网物理传输帧由前导列PR、分隔位SD、目的地址DA、源地址SA、类型字段Type、数据段Data、填充位PAD和帧校验序列FCS共8部分组成。
帧结构如表2.2所示。
表2.2802.3协议以太网物理帧结构
PR
SD
DA
SA
Type
Data
PAD
FCS
56位
8位
48位
48位
16位
46~1500字节
DATA小于46字节时补0
32位
PR:
同步位,用于收发双方的时钟同步,同时也指明了传输的速率(10M和100M的时钟频率不一样,所以100M网卡可以兼容10M网卡),是56位的二进制数101010101010....。
SD:
分隔位,表示下面跟着的是真正的数据,而不是同步时钟,为8位的10101011,跟同步位不同的是最后2位是11而不是10。
DA:
目的地址,以太网的地址为48位(6个字节)二进制地址,表明该帧传输给
哪个网卡。
如果为FFFFFFFFFFFF,则是广播地址,广播地址的数据可以被任何网卡接收到。
SA:
源地址,48位,表明该帧的数据是哪个网卡发的,即发送端的网卡地址,同
样是6个字节。
TYPE:
类型字段,表明该帧的数据是什么类型的数据,不同的协议的类型字段不同。
如:
0800H表示数据为IP包,0806H表示数据为ARP包,814CH是SNMP包,8137H为IPX/SPX包,(小于0600H的值是用于IEEE802的,表示数据包的长度。
)
DATA:
数据段,该段数据不能超过1500字节。
因为以太网规定整个传输包的最大长度不能超过1514字节。
(14字节为DA,SA,TYPE)
PAD:
填充位。
由于以太网帧传输的数据包最小不能小于60字节,除去(DA,SA,TYPE14字节),还必须传输46字节的数据,当数据段的数据不足46字节时,后面补000000......(当然也可以补其它值)
FCS:
32位数据校验位.为32位的CRC校验,该校验由网卡自动计算,自动生成,自动校验,自动在数据段后面填入。
对于数据的校验算法,我们无需了解。
数据帧传输时,除了数据段的长度不定以外,其他部分的长度固定不变。
数据段为46~1500字节。
以太网规定整个传输包的最大长度不能超过1514字节(14字节为DA、SA、Type),最小不能小于60字节。
除去DA、SA和Type共14字节以外,还最少必须传输46字节的数据,当数据段的数据不足46字节时需填充,填充字符的个数不包括在长度字段里,超过1500字节,需要拆成多个帧传送。
事实上,发送数据时,PR、SD、FCS及填充字段这几个数据段由以太网控制器自动产生;而接收数据时,PR、SD被跳过,它们只被控制器检测,而不被作为接收数据接收,控制器一旦检测到有效的前序字段(即PR和SD),就认为接收数据开始。
2.3TCP/IP的子协议
2.3.1ARP协议
ARP是AddressResolutionProtocol的缩写,中文译作“地址解析协议”。
本质是
完成网络地址到物理地址的映射。
从概念上讲就是找到一个映射方法f,使得“物理
地=f(网络地址)”。
物理地址有两种基本类型:
以太网类型和ProNET令牌网类型,
前者有大型的固定的物理地址,后者有小型的易于配置的物理地址,网络地址特指
IP地址。
地址解析协议ARP是IP能够获得与某个给定IP地址相关的主机物理地址。
ARP
的功能分为两部分:
一部分在发送数据包时请求获得目的主机的物理地址;另一部
分向请求物理地址的主机发送解析结果。
地址解析原理:
当主机A需要向同一物理网络中的主机B发送IP数据报时,主
机A的IP层要将IP数据报传给数据链路层进行帧封装,封装时要求给出目的主机
的物理地址。
因此,IP层发送IP数据报时通常将产生以下事件:
(1)IP调用ARP,请求IP地址为IB的目的主机B的物理地址为PA。
(2)ARP创建一个ARP请求帧,请求IP地址IB对应的物理地址。
ARP请求
将包括如下信息:
●请求主机的物理地址PA;
●请求主机的IP地址IA;
●目的主机的IP地址IB。
(3)主机A在本地网络中广播ARP请求帧,请求帧的目的地址为广播地址(全为“1”)。
(4)该网络中的所有主机都能接收ARP请求帧,并将该帧中的目的地址IP地址IB和自己的IP地址进行比较。
其地址IB不匹配的主机将忽略这个帧。
(5)如果主机发现请求中的目的主机IP地址IB与自己的IP地址相同,就产生一个包含其物理地址PB的ARP应答帧。
(6)ARP应答帧直接发回给发送ARP请求的主机A(ARP应答帧不以广播方式发送)。
ARP应答帧包含以下信息:
●应答主机的物理地址PB;
●应答主机的IP地址IB;
●请求主机的物理地址PA;
●请求主机的IP地址IA。
(7)利用从应答帧中得到的目的主机的物理地址PB完成IP数据报的帧封装,并将该帧发送给主机B。
这里需要注意一下两点:
(1)ARP请求帧在物理网络中是以广播方式发送的,因此此时还不知道目的主机的物理地址。
ARP应答帧是以单播方式发送的,因为应答方从请求帧中可以得到对方的物理地址。
(2)目的主机必须与源主机位于同一物理网络中。
由于ARP采用的是物理网络中的广播,IP路由器不会对该广播进行转发,因而不能用ARP确定远程网络中主机的物理地址,而且也没有必要知道远程地址的物理地址。
如果目的主机位于远程网络中,IP会将数据报先发送给路由器,然后又路由器进行转发。
在这种情况下,IP只需要利用ARP确定路由器的物理地址就可以了,而路由器将逐级向前转发数据报。
以下是ARP地址解析报文的帧格式:
表2.3地址解析报文的帧格式
字段
以太网首部
硬件类型
协议类型
硬件地址长度
协议地址长度
OP
发送端以太网地址
发送端IP地址
目的以太网地址
目的IP地址
位
16
16
16
8
8
16
48
32
48
32
●以太网首部:
帧封装时加在ARP报文的首部。
ARP报文作为以太网帧的数据部分进行发送。
以太网帧结构参见2.2.3节。
●硬件类型:
16比特,定义物理网络类型。
物理网络的类型用一个整数值
以太网的硬件类型值为“1”。
●协议类型:
16比特,定义使用ARP协议的类型。
如0x0800表示IPV4。
●硬件地址长度:
8比特,以字节为单位定义物理地址长度。
以太网为6。
●协议地址长度:
8比特,以字节为单位定义物理地址长度。
IPV4为4。
●操作类型:
16比特,定义报文的类型(“1”为ARP请求,“2”为ARP应答,“3”为RARP请求,“4”为RARP应答)。
●发送方以太网地址:
定义发送方的物理地址。
●发送方IP地址:
定义发送方的网络地址。
●目的以太网地址:
定义目的设备的物理地址。
●目的IP地址:
定义目的设备的网络地址。
2.3.2IP协议
正像TCP/IP协议的名称所表达的信息那样,因特网的核心协议是IP和TCP两大协议。
IP协议作为TCP/IP协议簇中的核心协议,提供了网络数据传输的最基本的服务,同时也是实现网络互连的基本协议。
除了ARP和RARP报文以外的几乎所有的数据都要经过IP协议进行发送。
IP协议位于网络层,位于同一层次的协议还有ARP和RARP以及上面的因特网控制报文协议ICMP和因特网组管理协议IGMP。
ARP和RARP报文没有封装在IP数据报中,而ICMP和IGMP的数据则要封装在IP数据报中进行传输。
由于IP协议在网络层中具有重要的地位,人们又将TCP/IP协议的网络层称为IP层。
IP是不可靠的无连接数据报协议,提供尽力而为(best-effort)的传输服务。
IP协议具有以下特点:
(1)是点对点协议,虽然IP数据报携带源IP地址和目的IP地址,但进行数据传输时的对等实体一定是相邻设备(同一网络)中的对等实体。
(2)IP协议不保证传输的可靠性,不对数据进行差错校验和跟踪,当数据报发生损坏时不向发送方通告,如果要求数据传输具有可靠性,则要在IP的上面使用TCP协议加以保证。
(3)IP协议提供无连接数据报服务,各个数据报独立传输,可能沿着不同的路径到达目的地,也可能不会按序到达目的地。
正因为IP协议采用尽力传输的思想,所以使得IP协议的效率非常高,实现起来也比较简单。
随着底层网络质量的日益提高,IP协议的尽力传输的好处也体现得更加明显。
IP层向下要面对各种不同的物理网络,向上却要提供一个统一的数据传输服务。
为此,IP层通过IP地址实现物理地址的统一;通过IP数据报实现了物理数据帧的统一。
IP层通过对以上两个方面的统一达到了向上屏蔽底层差异的目的。
IP数据报文格式如下表所示:
表2.4IP数据报格式
字段
版本
首部长度
服务类型
总长度
标识
标志
片偏移
生存时间
协议
头校验和
源IP地址
目的IP地址
选项
数据
位
4
4
8
16
16
3
13
8
8
16
32
32
普通的IP首部长为20字节,如果包括选项字段可达60字节。
●IP目前的协议版本为4,因此有时IP也称为IPV4。
●首部长度字段长度为4比特,指出以32位字长(4字节)为单位的数据报首部长度。
由于IP数据报首部包含了IP选项这一变长的字段,所以需要通过首部长度确定首部和数据的分界点。
●用单片机实现TCP/IP协议要作一些简化,不考虑数据分片和优先权。
因此不讨论服务类型、标志和片偏移,只需填0即可。
●数据报总长度字段的长度为16比特,总长度以字节为单位指示整个IP数据报的长度。
IP数据报最大长度可达
(即65535)个字节。
根据