版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于dsp的上网方案的软硬件设计与实现随着现代网络技术的进展,嵌放式系统如、等系统对接入网络的需求日益增强,例如具有远程抄表功能的电表系统、可以举行远程控制的信息电系统等.本文采纳ti公司的tms320vc33 dsp芯片设计与realtek公司的rtl8019网卡的硬件接口,并在dsp中用软件实现tcp/ip协议,使dsp芯片具备上网功能,从而可以用计算机通过网卡与dsp电路板举行大量数据交换并对其举行控制.1 硬件设计dsp与网卡的硬件接口1所示.dsp的数据低16位接isa网卡的16位数据线,isa网卡的iocs16线接高电平,设置网卡为16位的模式.网卡共有20根地址线.将a7a8、a
2、10a19接地,a0a6和a9分离接dsp的a0a7,用到的网卡地址为0240h025fh,映射到dsp的page3空间,地址映射为c000c0hc000dfh.dsp的reset信号用于复位网卡,因为dsp的reset信号低有效,而网卡的reset信号高有效,故中间应接非门.dsp的page3和r/w信号用于选能网卡的读写信号ior、iow,实现的规律关系2所示.iorq是网卡的中断9,通过非门后接dsp的int1引脚.rtl8019网卡有三种工作方式:第一种为跳线方式,网卡的i/o和中断由跳线打算;其次种为即插即用方式,由软件举行自动配置plug and play;第三种为免跳线方式,网卡
3、的i/o和中断由外接的93c46里的内容打算.计算机上一是即插即用方式,为了降低软件偏置的复杂度,将网卡设置为跳线方式.上述全部的译码规律都在epm7129中实现.74alvc16425是总线驱动芯片,可实现3.3v到5v的电平转换.因为tms320vc33和epm7128是3.3v的器件,而isa总线是5v的,所以信号线不能挺直衔接,需要通过74alvc164245举行电平转换和隔离.2 软件设计2.1 网卡硬件驱动程序的设计网卡驱动程序主要包括以下几部分:(1)nic的初始化nic是网络接口控制芯片,它负责网络上数据的接收和发送.为了能够使nic启动并处于预备接收或预备发送数据的状态,必需
4、对相关的寄存器举行初始化.这些寄存器包括cr、dcr、rbcr、pstart、pstop、isr、imr、par0par5、mar0mar7、curr、tcp、rcr等.(2)中断服务程序中断服务程序普通完成两项任务:一是设置中断标记,以使相关程序能以此发觉发生了中断;二取得中断状态寄存器的值,并将引起中断的详细缘由提交给相应的程序,这一过程也是通过设置中断缘由标记完成的.需要注重 的,中断服务程序开头的时候要庇护中断现场,待程序处理完成后要复原中断现场;中断服务程序应尽可能短小,以便在尽可能短的时光内执行完成,因此需要将一些不民要的工作交给其它程序来完成.(3)帧发送程序在网络中,帧传输的过
5、程是:发送方将待发送的数据按帧格式要求封装成帧,然后通过网卡将帧发送到网络的传输线上;接收方按照接收到的帧的目的地址讨论是否将该帧提交给上层应用程序.帧的发送是指将待发送的数据以帧的形式发送到网络传输线上,因此,帧 的发送过程应当包括以下几个步骤:装帧;将帧送入nic的发送缓冲区;初始化发送控制寄存器;启动nic将该帧发送到网络传输线上.(4)帧接收程序帧接收是指将网络上的数据帧接收并缓存于网卡的接收缓冲环中,然后由主机程序将缓存于接收缓冲环的帧读走并存入内存中以备程序用法.从中可以看出,帧的接收过程分成两卡;第一步由nic通过本地dma将帧存入接收缓冲环;其次卡是通过远程dma并在主机的协作
6、下将接收缓冲环中的帧读入内存.2.2 tcp/ip协议的实现2.2.1 dsp中与pc机中实现tcp/ip协议不同tcp/ip协议最先是在unix系统中实现的,后来在linux、dos和windows系统中也实现了tcp/ip.但是,在unix上实现的tcp/ip协议的源代码并不能挺直移植到dsp上来,这是由于pc机和dsp存在着巨大的差异.pc机的运算速度十分快,普通都有一个多任务的操作系统,可以多任务并行执行,通过硬中断与中断、消息队列和各种插口实现atcp/ip各协议层之间的通信和囫囵网络的通信.而dsp运行速度相对较慢,缺乏多任务操作系统的平台,只能通过挨次执行加硬件中断的方式来实现,
7、并且因其还要同时执行数据采集、串口中断等任务,所以中断程序应尽量短,只完成设置各种状态的标记位,而将相对较慢的网络数据包的处理放在主程序中执行,以削减各种任务之间的矛盾.pc机的内存十分大,现在普通都可达到32128m的存储容量,可以动态地分配和释放内存,很简单实现存储器缓存mbuf、网络控制块ncb等链状结构,且可任意增删;同时能维护多条网络衔接,因为计算机处理速度快,几乎不用考虑缓冲区溢出的问题.而dsp内部ram普通惟独十几k,加上外部扩展的ram也只能达到几十k的容量,一个最大的以太网数据包就有1.5k左右,假如也按pc机的内存管理方式和数据结构,用法mbuf链,ram绝对不够用,因此
8、只能在ram中分配一个固定的1514字节的区段来存放接收到的以太网数据包,接收一包处理一包.pc机中tcp/ip协议都是分层次实现的,互相之间都是通过参数传递举行联系,这样有利于提高程序的模块化和自立性.而在dsp中,因为参数传递会占用过多的程序空间,且降低dsp的执行速度,所以应尽量削减参数传递,转而用法全局变量和外部变量等来达到值的传递,因此各程序间的依靠程度大,往往会分享某一些变量和数据.pc机上实现了比较完整的tcp/ip协议.而在dsp中,因为运算速度和内存的限制,不行能支持全部的协议,普通只实现需要的部分,不需要的协议一概都不支持;而且即使需要的协议也不用像在pc机上实现那么复杂,
9、可以按照硬件的详细状况和实现的需求举行须要的简化.2.2.2 tcp/ip协议的详细实现tcp/ip协议是一个协议簇,包含了无数协议,在dsp上实现的全部协议3所示,通常可分为四层(不包括物理层).按照dsp的结构特点和所需要实现的功能,在dsp中实现了arp(地址解析协议)、ip(网际协议)、icmp(internet控制报文协议)、udp(用户数据报协议)和tcp(传输控制协议),并对它们举行了简化.2.2.2 tcp/ip协议的详细实现tcp/ip协议是一个协议簇,包含了无数协议,在dsp上实现的全部协议3所示,通常可分为四层(不包括物理层).按照dsp的结构特点和所需要实现的功能,在d
10、sp中实现了arp(地址解析协议)、ip(网络协议)、icmp(internet控制报文协议)、udp(用户数据报协议)和tcp(传输控制协议),并对它们举行了简化.在链路层中实现了arp.每种网络都有自己的寻址机制,以太网通过以太网地址即通常所说的网卡硬件地址max举行寻址的,每个网卡出厂时都有一个唯一的mac地址.ip地址则仅仅是对于tcp/ip簇故意义的地址,是一种虚拟地址.当给予ip地址的ip包要在以太网中传扬时,必需将ip地址转化为以太网地址才干举行正确的传输.arp协议就是将32位的ip地址动态地映射为48位的以太网地址,从而保证网络的正确传输.arp协议由两个文件arpin.c和
11、arpout.c实现.arpin.c负责接收网络上广播的arp包,推断arp包的类型是网络上其它机子的哀求包还是返回本机的响应包,推断其合法性并举行相应的处理;arpout.c负责主机向网络发送数据报时发送arp哀求包以及被arpin.c调用响应收到的arp哀求包.在网络层中实现了ip和icmp.ip协议是tcp/ip协议簇中最核心的协议,它提供无衔接的数据报传送服务,全部上层协议都要以ip数据包格式传输.ip协议由两个文件ipin.c和ipout.c实现.ipin.c负责接收ip数据包,收到ip包后,首先推断其版本号、数据长度、目的地址、检验和是否正确,再按照ip首部的协议类型字段的值交给相
12、应的上层协议处理;ipout.c负责发送ip数据包,接收上层协议传递下来的数据,加上20字节的ip首部,正确设置源ip地址和目的ip地址、协议类型,计算检验和,交给下面的链路层发送.pc机上的ip数据包,当它的长度超过网络的mtu时,允许对它分段;在dsp中,则不支持ip数据包分段,也不支持ip选项字段.icmp协议负责传递差错报文以及其它需要注重的信息,且由icmp首部8位的类型字段和8位的代码字段打算信息的种类.在dsp中只实现了对回显哀求(类型代码为80)报文的处理,从ip层收到icmp包后,推断其类型代码段是否为80.假如是,将这两个字段设置为00(回显应答),计算检验和,再交给ip层
13、发送;假如不是,则予以丢弃.从而实现了对ping功能的支持.在运送层实现了udp和tcp.udp协议是一种面对无衔接的不行靠的协议,用两个文件udpin.c和udpout.c来实现.udpin.c实现对udp包输入的处理,推断其端口号、检验和是否正确,正确则将其数据交给相应端口的应用程序,不正确则丢弃;udpout.c实现对udp包输出的处理,从应用程序接收数据,设置相应的源端口号和目的端口号,再交给ip层发送.值得注重的是,计算udp包的检验和与计算ip包的检验和是不一样的,ip包的检验和只笼罩了ip包的首部,而udp包的检验和则笼罩了udp包的首部和全部的数据.udp包计算检验和时还引入了
14、一个12字节的伪首部,包括4字节的源ip地址、4字节的目的ip地址、1字节的零段、1字节的协议段和两字节的检验和,其目的是让udp两次检查数据是否正确地到达了目的地. tcp协议与udp协议虽然同是运送层协议,但是它提供一种面对衔接的牢靠的字节流服务.tcp协议是全部协议中最复杂、也是最难实现的一块,主要由tcpin.c、tcpout.c、tcptimer.c和tcpstatem.c四个文件分块实现,并按照详细应用的需要举行简化.tcp的控制块tcb用结构体来实现,每一个tcb包含一条tcp衔接的全部控制和状态信息,所有的tcb形成了一个双向链表,有利于在全部tcp衔接中举行搜寻.tcptim
15、er.c负责管理tcp协议中的各种状态信息,它内含前向后向指针,使之形成定时器超时,pc机上的tcp协议包含快慢两个定时器,这里仅仅实现了一个500ms的慢速定时器,由于没有迅速定时器,所以不支持ack报文延迟,收到一帧即立刻发送ack;tcpstatem.c是tcp的状态机函数,按照tcp衔接所处的不同状态以及发生的大事来打算tcp衔接的状态变迁;tcpout.c负责tcp报文的发送,典型的发送过程是当接收到上层应用程序的数据时,首先发送syn帧,与目标节点三次握手建立衔接,之后加上tcp首部,交给下层ip模块发送,并通过重传定时器实现超时重发、持续定时器发送窗口探测帧等功能,待全部数据发送完毕并得到确认后发送fin帧,通过四次握手关闭衔接,tcpout.c还可在不同状态和大事下被其它程序调用发送ack帧、rst帧等其它tcp报文;tcpin.c负责接收从下层ip模块接收到的tcp数据包,并按照tcp衔接的状态信息以及tcp首部的各个标记位举行分支处理,将数据交给对应端口的上层应用程序,并调用其它函数实现对t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 某石材加工厂环保措施办法
- 公司的经营课件副本
- 国庆节爱国主题班会
- 压力传感器分类和选择
- 大学物理下册复习好不容易找到的
- 医药营销通路的系统分析与管理
- 堆肥微生物种类及特点
- 2026课件中国药品电子监管网介绍
- 基础教育课程改革的形势与任务
- 华信惠悦民生银行人力资源规划报告
- 冠脉介入医师进修汇报
- 陆上石油天然气开采(主要负责人)新版题库及答案
- 国际贸易出口业务成交证明书(8篇)
- 食品安全与卫生管理课件
- 2025陕西农业发展集团招聘200人笔试参考题库附带答案详解
- 2025年全国硕士研究生考试(心理学312)真题及答案
- 西方文化概论(第二版)课件 绪论 西方文化的渊源与流变
- DL-T5161.10-2018电气装置安装工程质量检验及评定规程第10部分:66kV及以下架空电力线路施工质量检验
- CCFCSP认证考试历年真题
- 新版人教版道德与法治六年级上册全册教案
- 软件项目交付内容清单
评论
0/150
提交评论