基于DSP和以太网的数据采集系统软件设计毕业设计 推荐.docx
《基于DSP和以太网的数据采集系统软件设计毕业设计 推荐.docx》由会员分享,可在线阅读,更多相关《基于DSP和以太网的数据采集系统软件设计毕业设计 推荐.docx(66页珍藏版)》请在冰豆网上搜索。
基于DSP和以太网的数据采集系统软件设计毕业设计推荐
西南科技大学
毕业设计(论文)
题目名称:
基于DSP和以太网的数据采集系统软件设计
西南科技大学教务处制
基于DSP和以太网的数据采集系统软件设计
摘要:
充分利用DSP的优良性能,将计算机网络技术引入以DSP为核心的嵌入式系统,已成为一个重要的研究课题。
本文设计了一种基于TI公司的DSP芯片TMS320VC5509A的以太网终端系统方案并给出了该方案的具体设计实现。
本论文对TCP/IP协议进行了分析,论述了基于DSP芯片和网卡接口控制芯片的以太网设计,讨论了在VB开发环境下PC机与终端系统的数据交互问题并编写了实际的PC机控制软件。
同时,讨论了在DSP开发环境下的主程序设计和C语言开发程序需要编写的辅助文件,包括头文件、中断向量文件和命令文件。
最后,对设计软件进行了测试。
验证了本课题研究的基于DSP和以太网的数据采集系统可以实现数据的以太网传输。
关键词:
DSP;以太网;VB;TCP/IP;AD转换
TheSoftwareDesignofDataSamplingSystem
BasedonDSPandEthernet
Abstract:
BasedontheexcellentperformanceofDSP,thispaperintroducestheembeddedsystemcoredwithDSPintocomputernetwork.Thisapplicationsystembecomesasignificantresearchproblem.
Inthispaper,wedesignanEthernetterminalsystembasedontheTICompany’sDSPofTMS320VC5509andpresentthescheme'ssoftware-realizationindetail.TCP/IPisstudiedandanalyzedfirstlyandchosenwhiletherealconditionisconsidered.AndthentheEthernetisdesignedwithDSPchipandnetworkinterfacecontroller(NIC)chip.WediscussthePC'sdataexchangewiththeEthernetterminalinVBdevelopmentenvironmentandcompilePCsoftwaretorealizationcontrollableprogram.Then,wediscussthemainprogramandtheinitializedprogramisdesignedinDSPdevelopmentenvironment.Atthesametime,theauxiliaryfilesarediscussedwhichisdemandedwhentheprotocolprogramisdesignedwithClanguageinDSPdevelopmentenvironment,includingheaderfileandinterruptvectorsfileandcommandfile.Intheend,thedesignedprogramistested.TheresultindicatesdatasamplingsystemthatwasresearchedinmysubjectcouldrealizethetransmissionofthedatathroughEthernetbasedonDSPandEthernet.
Keywords:
DSP,Ethernet,VB,TCP/IP,ADTransition
引言
随着计算机技术、电磁兼容技术、传感器技术和信息技术的飞速发展和普及,数据采集与处理系统也越来越得到了广泛的应用。
信息采集系统不断发展成熟并越来越多的应用到工业生产中,其应用范围也在不断的发展扩大,并对于企业生产经营决策起到越来越举足轻重的作用。
例如:
在生产过程中,应用这一系统可对生产现场的工艺参数进行采集、监视和记录,为提高产品质量、降低生产成本提供信息和手段;在科学研究中,应用这一系统可获得大量的动态信号,是研究瞬间物理过程的有力工具,也是获得科学奥秘的重要手段之一。
总之,不论在哪个应用领域,数据采集与处理越及时,工作效率、性能价格比就越高,取得的经济效益就越好。
以DSP为核心的嵌入式系统市场这几年发展一直很快。
而随着以太网接口控制器和DSP微处理器的价格不断下降,使得将以太网直接集成到基于DSP等嵌入式系统的测试、采集、工业I/O设备中成为越来越明显的趋势。
基于以太网的I/O设备是将以太网接口直接嵌入到设备内部,所以使得设备更简洁,体积更小,安装也更灵活。
和一些目前应用于工业的其它通信方案比较,以太网方式通常需要功能更强大的微处理器和更大的内存。
而网络和计算机技术的发展,特别是DSP技术的应用,可以大大降低这方面的成本。
从实际来看,设计基于DSP的以太网处理系统,可以很好地实现远程的数据传送和处理。
在此基础上,也可以将其作为其于DSP和以太网的网络测试平台开发过程中的调试工具,从而加速把以太网集成到测试、采集和工业I/O仪器中的开发进程。
从应用工业应用来看,以太网的应用可以大大提高劳动效率,能够让仪表在一些危险的环境下取代人力工作,而得到的数据与结果比人工现场工作的结果更加科学,精确。
通过毕业设计我们能够学到了很多东西,毕业设计其实就是对四年大学学习的一个综合,它要求把所学的知识灵活的运用。
并能够很好的利用各种资源来完成设计的需要。
对于我所选择的这个题目,有利于提高我的专业知识和实践能力,对于即将进入工作岗位的我来说,无疑是一次好的很好的锻炼机会,同时,本课题也具有非常强的实际价值和市场潜力。
第1章绪论
1.1概述
1.1.1本课题研究的背景及依据
随着PC市场已趋于稳定,嵌入式系统市场的发展速度却正在加快的现在,据有关统计数据表明,嵌入式系统产品的应用已超过整个计算机应用的40%。
全世界嵌入式系统产品潜在的市场将超过1万亿美元。
嵌入式系统产品隐含了巨大的商机。
而随着DSP微处理器的价格不断下降,低功耗、高性能的DSP逐渐取代了通用单片机在数据采集处理系统中的地位,而且已经有了很大的的市场和发展前景。
以DSP为核心的嵌入式系统市场这几年发展一直很快。
由于它具有小巧、低功耗、高性能等特性,所以非常适合那些运算量大,对外型有个性要求的嵌入式产品。
例如,在工业中的应用。
特别是在生产和科研领域对测试的要求越来越高,所需测试和处理的数据量也越来越巨大,有时需要多个测试仪器同时进行测试,各测试仪器之间又需要进行数据交换;而且测试领域也越来越广泛,有些现场不适合工作人员亲临,这时就需要通过网络进行控制。
因此基于DSP和以太网的数据处理系统的设计思想及实现有了很广泛的应用和发展前景。
而随着以太网接口控制器和DSP微处理器的价格不断下降,使得将以太网直接集成到基于DSP等嵌入式系统的测试、采集、工业I/O设备中成为越来越明显的趋势。
基于以太网的I/O设备是将以太网接口直接嵌入到设备内部,所以使得设备更简洁,体积更小,安装也更灵活。
和一些目前应用于工业的其它通信方案比较,以太网方式通常需要功能更强大的微处理器和更大的内存。
而网络和计算机技术的发展,特别是DSP技术的应用,可以大大降低这方面的成本。
1.1.2本课题研究的意义
从实际来看,设计基于DSP和以太网数据采集系统,可以很好地实现网络的传输。
在此基础上,也可以将其作为其于DSP和以太网的网络测试平台开发过程中的调试工具,从而加速把以太网集成到测试、采集和工业I/O仪器中的开发进程。
从应用工业应用来看,以太网的应用可以大大提高劳动效率,能够让仪表在一些危险的环境下取代人力工作,而得到的数据与结果比人工现场工作的结果更加科学,精确。
所以设计一个基于DSP和以太网数据采集系统是非常有实际的意义的。
1.1.3本课题研究的主要内容
1、根据所设计的以太网控制器与网络的接口硬件电路编写驱动控制程序。
2、根据所设计DSP与以太网控制器的连接电路编写DSP和以太网的初始化程序。
3、软件实现嵌入式TCP/IP协议。
使用C语言在DSP开发环境下编写程序实现经过选择优化的TCP/IP协议。
4、根据所设计子程序及设计要求编写网络传输主程序实现设计要求。
5、根据扩展需要实现AD转换,为多样信号采集和处理打下基础。
1.2本课题的关键问题及解决方案
1.2.1本课题的关键问题
在本系统的软件设计过程中,应该充分利用硬件资源及开发工具,使代码达到所期望的性能,并且在DSP嵌入式系统的基础上集成已经封装的TCP/IP协议栈,增加网络连接代码。
由于DSP系统硬件以及以太网协议的复杂性,本系统中的软件编程是一个难点。
1.2.2解决方案
针对关键问题我们提出了一些解决方案,由于在很多应用中要求DSP不停下来,而需要从主机中实时地读取数据或者向主机实时地输出数据。
同时因为本系统的软件结构较为复杂,故应采用模块化、由顶向下、逐步细化的结构化程序设计方法。
这一方法可节省软件工作量、提高工作效率。
下面对解决方案做简要的介绍。
1、控制程序:
利用VB来编写控制程序从而实现本系统与计算机的通信。
2、DSP和以太网的初始化程序:
基于DSP的以太网通信过程,实质就是DSP对RTL8019AS中各种寄存器进行编程控制,在实现程序功能之前必须对DSP和RTL8019AS进行初始化,只有初始化后才能够继续进行程序的连续运行。
其中RTL8019AS复位初始化后,应对其中的部分寄存器进一步初始化,然后才能发送数据或接收数据。
而DSP的初始化主要就是对其各种资源进行初始化,以实现资源的利用。
3、软件实现嵌入式TCP/IP协议:
网络协议是网络通信的基础,特别是TCP/IP协议簇已成为当今计算机间最常用的网络通信标准,是全球互联网(Internet)的基础。
很多不同型号的计算机,运行完全不同的操作系统,但TCP/IP协议簇却允许它们之间相互通信,TCP/IP协议簇的作用极其重要,在现代信息社会中的作用已经超出了原来期望成为网络通信的重要组成部分,发挥着越来越大的效能。
在这里程序的设计对于TCP/IP协议簇的应用时非常关键的,只有对TCP/IP协议簇有了较深的认识和了解,才能够很好的实现网络通信,从而实现DSP的以太网传输。
因此对于TCP/IP协议簇的认识和编程,对设计具有重要的意义
4、以太网接口驱动:
以太网接口驱动的开发包括RTL8019AS的初始化对RTL8019AS内部缓存区的读写操作两个方面。
初始化过程首先对RTL8019AS进行硬件复位和软件复位然后在0页寄存器中设置接收发送状态配置以及发送缓存区的启始页与接收缓存区启止页地址在1页寄存器中写入以太网接口的MAC地址和组播地址。
局域网与系统的数据交换利用RTL8019AS内部的双端口RAM作为缓存,局域网与内部RAM的数据交换通过本地来实现。
DSP系统对以太网帧的读写操作通过对内部RAM进行远程DMA操作来实现。
RTL8019AS工作流程非常简单,控制程序将要发送的数据包按指定格式写入芯片并启动发送命令,RTL8019AS会自动把数据包转换成物理帧格式在物理信道上传输。
反之,RTL8019AS收到物理信号后将其还原成数据,按指定格式存放在芯片RAM中以便DSP程序取用。
RTL8019AS在这里的主要功能是对运输层通信协议的实现。
5、AD转换:
AD转换实现了模拟信号的采样和信号的数字化,从而为实现各种信号的采集和处理打下了基础。
为设计能够运用到各个领域创造了条件。
在本次设计中我们仅对AD转换做一些介绍,而对于信号的处理这里就不再说明,针对以后具体信号再做具体的分析。
1.3国内外研究现状及趋势
在信息时代的今天,Internet技术将不会仅仅局限于人与人(或团体)之间信息的交流。
例如E-mail,WEB浏览等,或者仅仅停留在企业与企业及与个人在商务方面的信息交上,例如电子商务e-business等,Internet技术将会深入到人们日常生活和工作的电子设备中,而且势不可挡,随着IA(信息电器)的出现,嵌入式网络技术正逐步取代传统的以PC为中的应用,成为未来Internet发展中的主力军,将会广泛应用于智能家居系统、工业智能化站系统、LED网络控制显示屏系统、网络安全加密系统等各个领域的各个方面。
各国信息界仁都在密切关注并积极研究电子设备与Internet的连接问题。
DSP芯片是专门为实现各种数字信号处理算法而设计的、具有特殊结构的微处理器,其卓越的性能、不断上升的性价比、日渐完善的开发方式使其应用越来越广泛。
将计算机网络技术引入以DSP为核心的嵌入式系统,使其成为数字化、网络化相结合,集通信、计算机和视听功能于一体的电子产品,必将大大提升DSP系统的应用价值和市场前景。
“基于DSP和以太网数据采集系统”的研究工作解决了以DSP为核心的处理系统与Internet的连接问题,为DSP设备的应用开辟了更为广阔的前景。
1.4本章小结
在本章中,主绍介绍了基于DSP和以太网数据采集系统的毕业设计的背景和依据,同时结合设计的现实意义及设计中的关键问题做了一些简单分析,从而提出了简要的解决方案。
做了有意的探索。
此外,对所设计课题的现状和趋势也做了必要的调查和了解,看到了它的潜在价值、意义和巨大的市场。
第2章网络协议概述及规范
本章主要讨论我们将要实现的网络协议TCP/IP协议簇中一些相关协议的基本理论和概念,它们的具体实现形式这章不做进一步的说明,待后续章节中再讨论,本章是我们进行毕业设计网络传输的理论基础和行为规范,对设计圆满完成起着重要的作用。
2.1概述
2.1.1引言
网络协议是网络通信的基础,特别是TCP/IP协议簇已成为当今计算机间最常用的网络通信标准,是全球互联网(Internet)的基础。
很多不同型号的计算机,运行完全不同的操作系统,但TCP/IP协议簇却允许它们之间相互通信,TCP/IP协议簇的作用极其重要,在现代信息社会中的作用已经超出了原来期望成为网络通信的重要组成部分,发挥着越来越大的效能[4]。
2.1.2网络协议的分层
在计算机网络中要想做到有条不紊的交换数据,就必须遵守一些事先约定好的规则,这些规则或标准就是网络协议。
网络协议通常分不同层次,每一层分别负责不同的通信功能。
不同的协议簇就有不同的层次划分,我们这次设计采用TCP/IP协议簇。
TCP/IP协议通常被认为是一个四层协议系统。
每一层负责不同的功能:
1、链路层。
有时也称作数据链路层或网络接口,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。
在发送数据时,数据链路层的任务是将在网络层交下来的IP数据报组装成帧,在两个相邻接点间的链路上传送以帧为单位的数据。
2、网络层。
有时也称作互联网层,负责为分组交换网上的不同主机提供通信。
网络层在处理分组在网络中的各种活动,例如分组的选路。
在TCP/IP协议簇中,网络层协议包IP协议(网际协议),ICMP协议等。
3、运输层。
主要为两台主机上的应用程序提供端到端的通信。
在TCP/IP协议簇中,有两个互不相同的传输协议:
TCP(传输控制协议)和UDP(用户数据报协议)。
TCP为两台主机提供高可靠性的数据通信。
它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。
由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。
UDP则为应用层提供一种非常简单的服务。
它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。
任何必需的可靠性必须由应用层来提供。
本课程设计采用了UDP用户数据报协议。
4、应用层。
负责处理特定的应用程序细节。
几乎各种不同的TCP/IP实现都会提供下面这些通用的应用程序:
Telnet远程登录、FTP文件传输协议、SMTP简单邮件传送协议、SNMP简单网络管理协议[4]。
2.2协议规范
2.2.1地址解析协议(ARP)
以太网上数据的传输是采用网络的MAC地址来进行识别的,这就要求系统有实现IP地址到MAC地址的转换的功能,即ARP(地址解析协议)。
系统要同其它计算机通信,需要根据IP地址获得MAC地址,就必须要支持ARP协议。
在ARP背后有一个基本概念,那就是网络接口有一个硬件地址(一个48bit的值,标识不同的Ethernet或令牌环网络接口)。
在硬件层次上进行的数据帧交换必须有正确的接口地址。
但是,TCP/IP有自己的地址,即:
32bit的IP地址。
知道主机的IP地址并不能让内核发送一帧数据给主机。
内核(如Ethernet驱动程序)必须知道目的端的硬件地址才能发送数据。
ARP的功能是在32bit的IP地址和采用不同网络技术的硬件地址之间提供动态映射。
在ARP协议中,将检索的地址(MAC地址)作为硬件地址,将检索地址的原来地址(IP地址)作为协议地址。
在ARP协议中的操作,对于连接在同一个Ethernet段上的所有主机来讲,需要发送一个查询包,即ARP请求包。
对于指定地址的接口而言,要求通知其MAC地址。
在同一个Ethernet段上的所有主机都可以收到该ARP请求包,并且,ARP协议将接收端的IP地址与接口的IP地址作比较,若相同,则使用ARP应答包来通知其MAC地址。
我们还要检索对应于IP地址的MAC地址。
使用ARP协议检索到的信息都记录在一个ARP表中,ARP表作为高速缓存器进行操作,在发送同一个IP地址的时候,从该表中可以检索到MAC地址,值得注意的是,该标记录的信息,在写入数分钟后就会被删除,这是因为同一NIC可以设定任意的IP地址,在表中记录的信息删除后,同一IP若要发送数据,则需再次执行ARP协议的操作。
2.2.2网际协议(IP)
IP是TCP/IP协议簇中最为核心的协议。
所有的TCP,UDP,ICMP及IGMP数据都以IP数据报格式传输如图2-1。
IP提供不可靠、无连接的数据报传送服务[6]。
4位版本
4位首部长度
8位服务类型(TOS)
16位总长度(字节数)
16位标识
3位标识
13位片偏移
8位生存时间
8位协议
16位首部检验和
32位源IP地址
32位目的IP地址
选项
数据
图2-1IP数据报格式
IP协议中各字段的含意为:
版本:
目前的协议版本号是4,因此IP有时也称作IPv4。
新的协议版本号为Ipv6,但还没有广泛使用。
首部长度:
指的是首部占32bit字的数目包括任何选项。
由于它是一个4比特字段,因此首部最长为60个字节。
普通IP数据报(没有任何选择)项字段的值是5,即头部长度为20字节。
服务类型字段:
包括一个3bit的优先权子字段,现在已被忽略,4bit的TOS子字段和1bit未用位,但必须置0,4bit的TOS分别代表:
最小时延、最大吞吐量、最高可靠性和最小费用,4bit中只能置其中1bit,如果所有4bit均为0,那么就意味着是一般服务,现在大多数的TCP/IP实现都不支持TOS特性。
该项一般设为全0。
总长度字段:
是指整个IP数据报的长度以字节为单位。
利用首部长度字段和总长度字段,就可以知道IP数据报中数据内容的起始位置和长度。
由于该字段长16比特,所以IP数据报最长可达65535字节。
标识、标志、片偏移字段:
这3个字段用来控制数据报的分片与重组。
标识字段唯一地标识主机发送的每一份数据报,通常每发送一份报文它的值就会加1。
3bit的标志字段中的第一位决定是否进行分片,当该位置1时表示不分片,在该系统中传输只是在以太网中进行,其MTU(maximumtransferunit)为1500字节,而实际传输的数据量不会超过一个数据包,所以对IP数据报不分片。
所以,在系统中不必考虑数据报的分片与重组。
TTL(time-to-live):
生存时间字段设置了数据报可以经过的最多路由器数。
它指定了数据报的生存时间,TTL的初始值由源主机设置,通常为32bit或64bit,一旦经过一个处理它的路由器,它的值就减去1,当该字段的值为0时,数据报就被丢弃,并发送ICMP报文通知源主机。
协议字段:
该字段长度为8bit,标识IP包携带的是何种协议数据包。
1表示为ICMP协议,2表示为IGMP协议,6表示为TCP协议,17表示为UDP协议。
在本系统中,只用到了ICMP协议和UDP协议。
首部校验和:
为了计算一份数据报的IP检验和,首先把检验和字段置为0,然后对首部中每个16bit进行二进制反码求和,整个首部看成是由一串16bit的字组成,结果存在检验和字段中。
当收到一份IP数据报后,同样对首部中每个16bi进行二进制反码的求和,由于接收方在计算过程中包含了发送方存在首部中的检验和,因此,如果首部在传输过程中没有发生任何差错,那么接收方计算的结果应该为全1;如果结果不是全1,即检验和错误,那么IP就丢弃收到的数据报。
但是不生成差错报文,由上层去发现丢失的数据报并进行重传。
接下来是源IP地址与目的IP地址,长度都为32位。
系统只接收目的地址为本地IP的及广播地址的数据报。
目的地址为广播地址的数据报用于DHCP协议中,对系统IP地址的获得。
发送数据前,程序将高层协议传递过来的数据包封装成IP报文。
在发送一份IP数据报之前,首先要在ARP缓存表中查找目的IP地址对应的硬件地址(以太网地址),然后按照硬件地址进行以太网数据包封装。
如果不能查到目的IP地址对应的硬件地址,则发送查找该目的IP地址的ARP请求(如果该IP地址不是本地局域网内IP地址,则发送查找网关的IP地址的ARP请求),将待发送的IP数据包设置为等待发送状态,在收到对应的ARP响应并建立完整的地址映射之后再发送出去。
IP提供不可靠、无连接的数据报传送。
不可靠的就是它不保证IP数据报能成功地到达目的地。
无连接就是IP并不维护任何关于后续数据报的状态信息,每个数据报的处理是相互独立的,也就是IP数据报可以不按发送顺序接收。
接收到的每一个数据包,系统程序都根据首部检验和、版本号和分片标志等字段的内容检测数据是否正确,如果数据内容正确再根据协议字段的内容交给相应的协议处理。
2.2.3互联网控制报文协议(ICMP)
ICMP经常被认为是IP层的一个组成部分。
它传递差错报文以及其他需要注意的信息。
ICMP报文通常被IP层或更高层协议(TCP或UDP)使用。
一些ICMP报文把差错报文返回给用户进程。
ICMP报文的格式如图2-2所示。
所有报文的前4个字节都是一样的,但是剩下的其他字节则互不相同。
类型字段可以有巧个不同的值,以描述特定类型的ICMP报文,某些ICMP报文还使用代码字段的值来进一步描述不同的条件。
例如:
报文“ICMP不能到达目的地”为类型8,又可分为“由于网络原因不能到达目的地”(编码0),“由于主机原因无法到达目的地”(编码1),“由于协议原因无法到达目的地”(编码2).....,等等[6]。
8位类型
8位代码
16位检验和
不同类型和代码有不同的内容
图2-2ICM