基于DSP的上网方案的软硬件设计与实现

发布者:MysticGarden最新更新时间:2009-01-09 来源: 电子技术应用关键字:DSP  网络 手机看文章 扫描二维码
随时随地手机看文章

  随着现代网络技术的发展,嵌放式系统如单片机、DSP等系统对接入网络的需求日益增加,例如具有远程抄表功能的电表系统、可以进行远程控制的信息电系统等.本文采用TI公司的TMS320VC33 DSP芯片设计与Realtek公司的RTL8019网卡的硬件接口电路,并在DSP中用软件实现TCP/IP协议,使DSP芯片具备上网功能,从而可以用计算机通过网卡与DSP电路板进行大量数据交换并对其进行控制.

  1 硬件设计

  DSP与网卡的硬件接口电路图如图1所示.

基于DSP的上网方案的软硬件设计与实现

  DSP的数据总线低16位接ISA网卡的16位数据线,ISA网卡的IOCS16线接高电平,设置网卡为16位的模式.

  网卡共有20根地址线.将A7~A8、A10~A19接地,A0~A6和A9分别接DSP的A0~A7,用到的网卡地址为0240H~025FH,映射到DSP的Page3空间,地址映射为C000C0H~C000DFH.

  DSP的Reset信号用于复位网卡,由于DSP的Reset信号低有效,而网卡的Reset信号高有效,故中间应接非门.

  DSP的Page3和R/W信号用于选能网卡的读写信号IOR、IOW,实现的逻辑关系如图2所示.

  IORQ是网卡的中断9,通过非门后接DSP的INT1引脚.

  RTL8019网卡有三种工作方式:

  第一种为跳线方式,网卡的I/O和中断由跳线决定;

  第二种为即插即用方式,由软件进行自动配置plug and play;

  第三种为免跳线方式,网卡的I/O和中断由外接的93C46里的内容决定.

  计算机上一是即插即用方式,为了降低软件偏置的复杂度,将网卡设置为跳线方式.

  上述所有的译码逻辑都在EPM7129中实现.

  74ALVC16425是总线驱动芯片,可实现3.3V到5V的电平转换.由于TMS320VC33和EPM7128是3.3V的器件,而ISA总线是5V的,所以信号线不能直接连接,需要通过74ALVC164245进行电平转换和隔离.[page]

  2 软件设计

基于DSP的上网方案的软硬件设计与实现

  2.1 网卡硬件驱动程序的设计

  网卡驱动程序主要包括以下几部分:

  (1)NIC的初始化

  NIC是网络接口控制芯片,它负责网络上数据的接收和发送.为了能够使NIC启动并处于准备接收或准备发送数据的状态,必须对相关的寄存器进行初始化.这些寄存器包括CR、DCR、RBCR、PSTART、PSTOP、ISR、IMR、PAR0~PAR5、MAR0~MAR7、CURR、TCP、RCR等.

  (2)中断服务程序

  中断服务程序一般完成两项任务:一是设置中断标志,以使相关程序能以此发现发生了中断;二取得中断状态寄存器的值,并将引起中断的具体原因提交给相应的程序,这一过程也是通过设置中断原因标志完成的.需要注意 的,中断服务程序开始的时候要保护中断现场,待程序处理完成后要恢复中断现场;中断服务程序应尽可能短小,以便在尽可能短的时间内执行完成,因此需要将一些不民要的工作交给其它程序来完成.

  (3)帧发送程序

  在网络中,帧传输的过程是:发送方将待发送的数据按帧格式要求封装成帧,然后通过网卡将帧发送到网络的传输线上;接收方根据接收到的帧的目的地址研究是否将该帧提交给上层应用程序.帧的发送是指将待发送的数据以帧的形式发送到网络传输线上,因此,帧 的发送过程应该包括以下几个步骤:

  ①装帧;

  ②将帧送入NIC的发送缓冲区;

  ③初始化发送控制寄存器;

  ④启动NIC将该帧发送到网络传输线上.

  (4)帧接收程序

  帧接收是指将网络上的数据帧接收并缓存于网卡的接收缓冲环中,然后由主机程序将缓存于接收缓冲环的帧读走并存入内存中以备程序使用.从中可以看出,帧的接收过程分成两卡;

  ①第一步由NIC通过本地DMA将帧存入接收缓冲环;

  ②第二卡是通过远程DMA并在主机的配合下将接收缓冲环中的帧读入内存.

  2.2 TCP/IP协议的实现

基于DSP的上网方案的软硬件设计与实现

  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运行速度相对较慢,缺乏多任务操作系统的平台,只能通过顺序执行加硬件中断的方式来实现,并且因其还要同时执行数据采集、串口中断等任务,所以中断程序应尽量短,只完成设置各种状态的标志位,而将相对较慢的网络数据包的处理放在主程序中执行,以减少各种任务之间的冲突.

  PC机的内存非常大,现在一般都可达到32~128M的存储容量,可以动态地分配和释放内存,很容易实现存储器缓存mbuf、网络控制块ncb等链状结构,且可随意增删;同时能维护多条网络连接,由于计算机处理速度快,几乎不用考虑缓冲区溢出的问题.而DSP内部RAM一般只有十几K,加上外部扩展的RAM也只能达到几十K的容量,一个最大的以太网数据包就有1.5K左右,如果也按PC机的内存管理方式和数据结构,使用mbuf链,RAM肯定不够用,因此只能在RAM中分配一个固定的1514字节的区段来存放接收到的以太网数据包,接收一包处理一包.

  PC机中TCP/IP协议都是分层次实现的,相互之间都是通过参数传递进行联系,这样有利于提高程序的模块化和独立性.而在DSP中,由于参数传递会占用过多的程序空间,且降低DSP的执行速度,所以应尽量减少参数传递,转而使用全局变量和外部变量等来达到值的传递,因此各程序间的依赖程度大,往往会共享某一些变量和数据.

  PC机上实现了比较完整的TCP/IP协议.而在DSP中,由于运算速度和内存的限制,不可能支持所有的协议,一般只实现需要的部分,不需要的协议一概都不支持;而且即使需要的协议也不用像在PC机上实现那么复杂,可以根据硬件的具体情况和实现的需求进行必要的简化.

  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的结构特点和所需要实现的功能,在DSP中实现了ARP(地址解析协议)、IP(网络协议)、ICMP(Internet控制报文协议)、UDP(用户数据报协议)和TCP(传输控制协议),并对它们进行了简化.

  在链路层中实现了ARP.每种网络都有自己的寻址机制,以太网通过以太网地址即通常所说的网卡硬件地址MAX进行寻址的,每个网卡出厂时都有一个唯一的MAC地址.IP地址则仅仅是对于TCP/IP簇有意义的地址,是一种虚拟地址.当赋予IP地址的IP包要在以太网中传播时,必须将IP地址转化为以太网地址才能进行正确的传输.ARP协议就是将32位的IP地址动态地映射为48位的以太网地址,从而保证网络的正确传输.ARP协议由两个文件arpin.c和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首部的协议类型字段的值交给相应的上层协议处理;ipout.c负责发送IP数据包,接收上层协议传递下来的数据,加上20字节的IP首部,正确设置源IP地址和目的IP地址、协议类型,计算检验和,交给下面的链路层发送.PC机上的IP数据包,当它的长度超过网络的MTU时,允许对它分段;在DSP中,则不支持IP数据包分段,也不支持IP选项字段.ICMP协议负责传递差错报文以及其它需要注意的信息,且由ICMP首部8位的类型字段和8位的代码字段决定信息的种类.在DSP中只实现了对回显请求(类型代码为80)报文的处理,从IP层收到ICMP包后,判断其类型代码段是否为80.如果是,将这两个字段设置为00(回显应答),计算检验和,再交给IP层发送;如果不是,则予以丢弃.从而实现了对ping功能的支持.

基于DSP的上网方案的软硬件设计与实现[page]

  在运输层实现了UDP和TCP.

  UDP协议是一种面向无连接的不可靠的协议,用两个文件udpin.c和udpout.c来实现.udpin.c实现对udp包输入的处理,判断其端口号、检验和是否正确,正确则将其数据交给相应端口的应用程序,不正确则丢弃;udpout.c实现对udp包输出的处理,从应用程序接收数据,设置相应的源端口号和目的端口号,再交给IP层发送.值得注意的是,计算UDP包的检验和与计算IP包的检验和是不一样的,IP包的检验和只覆盖了IP包的首部,而UDP包的检验和则覆盖了UDP包的首部和所有的数据.UDP包计算检验和时还引入了一个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连接中进行搜索.tcptimer.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首部的各个标志位进行分支处理,将数据交给对应端口的上层应用程序,并调用其它函数实现对TCP包的响应和状态变迁.在PC机上往往可以同时维护多条TCP连接;但在DSP上,由于DSP速度和RAM容量的限制,只支持一条TCP连接;这样大大简化了程序的复杂度,同时也满足了实际需要,如果今后有需要,还可以进行扩展. 综上所述,TCP/IP协议的具体处理流程如图4所示.

  本文通过DSP与网卡的硬件接口的设计及编程,使DSP实现了基于以太网的TCP/IP通信,从而使DSP可以通过网线进行联网,并可以实时地与计算机进行通信,交换大量的数据和控制信息.本文所介绍的技术已经在作者参加的国家"973"项目"复杂自然环境时空定量信息的获取与融合处理的理论与应?quot;的硬件设计中得到应用,并运行良好

关键字:DSP  网络 引用地址:基于DSP的上网方案的软硬件设计与实现

上一篇:基于ADSP21161的比相测距雷达跟踪控制
下一篇:TMS320LF2407A在混合电压系统中的设计

推荐阅读最新更新时间:2024-05-02 20:45

AT&T 5G E 小游戏比其5G E网络还要好玩
由于Ookla 2019年第一季度的速度测试结果,AT&T最近被评为美国最快的网络。现在,该公司正以一款名为AT&T Data Drive的新网页游戏的形式庆祝这一成就。 这款游戏可以在www.stnetworkgame.com上玩。它是一款8比特风格的汽车游戏,似乎是仿造间谍猎人的,去掉了原游戏中所有真正有趣的部分,比如武器或小玩意。相反,玩家被安置在一辆AT&T品牌的汽车里,任务是尽快完成游戏,同时避开坑洼、水溢出等障碍,当然,还有速度较慢的汽车。 AT&T Data Drive也比间谍猎人要简单得多,它将玩家限制在左右移动,而不是加速或刹车等更具战略性的选择,这使得躲避汽车变得更加困难。 要想通关这款游戏,你需要“驾驶超过5
[手机便携]
点阵式在线激光打码技术的应用研究
点阵式在线激光打码技术能实现高速高精度在线编码,代表了当前在线编码技术的最新发展方向,能为企业提供高效可行的产品编码解决方案。本文主要对点阵式在线激光打码技术的应用进行了深入研究。 1点阵式在线激光打码技术原理介绍 点阵式在线激光打码技术采用振镜式扫描策略。如图1所示,打码系统通过X、Y两个振镜的角度偏转来控制激光的扫描路径。 图1振镜式扫描策略 点阵式在线激光打码技术采用点阵字符进行在线编码。点阵字符由一系列的点组成。图2所示为5×7的点阵字符“N”和“C”标记时的情况。当振镜扫描到红色位置时,激光器出光,物体被激光标记上一个点。当振镜扫描到白色位置时,激光器闭光,物体不会被标记。 图2点阵字符的激光标记 当被编码产
[嵌入式]
点阵式在线激光打码技术的应用研究
基于PROFIBUS总线技术的工业网络的设计与实现
  0、前言   现场总线技术是20世纪90年代迅速发展起来的一种用于各种现场自动化设备与其控制系统的网络通信技术,是一种用于各种现场仪表(包括变送器、执行器、记录仪、单回路调节器、可编程序控制器、流程分析器等)与基于计算机的控制系统之间进行的数据通信系统。PROFIBUS现场总线是用于一定数目的区域和单元级设备联网的国际标准,主要用于工厂自动化车间级监控和现场设备层数据通信与控制。可实现现场设备层到车间级监控的分散式数字控制和现场通信网络,为实现工厂综合自动化和现场设备智能化提供了可行的解决方案。   综合自动化是现代工业自动化的发展方向,在完整的企业网构架中,现场总线控制网络模型应涉及从底层现场设备网络到上层信息网络的数据传
[嵌入式]
英特尔携手爱立信引领开放式网络转型
开放式移动网络将推动并加速未来关键领域的数字化转型 数字化和技术已经彻底改变了我们的世界,也改变了地球上几乎每个人的生活。随着无线数据需求的持续增长,移动连接和云技术在日益移动化的演进过程中发挥了重要作用。爱立信近期发布的移动报告预测,到2029年,数据流量将增长三倍,达到每月403 EB1。 如今,提升数字化转型需求的主要动能包括更高水平的AI和自动化需求、意在脱碳的可持续运营、弹性供应链,以及在企业和行业应用中追求效率、生产力和更佳客户体验。为满足这些需求,移动运营商必须提供无处不在的高性能移动网络。这些网络必须能够提供差异化价值主张,围绕特定应用和用例中最重要的方面进行优化。例如,在活动中根据媒体广播公司的需求
[网络通信]
英特尔携手爱立信引领开放式<font color='red'>网络</font>转型
基于单片机的以太网络接入系统的实现及网络性能分析
1 引 言     互联网络硬件、软件的迅猛发展,使得网络用户呈指数增长,在电子设备日趋网络化的背景下,越来越多的嵌入式应用需要支持网络功能。 TCP/IP是一套把因特网上的各种系统互连起来的协议组,成为事实上最常用的网络标准之一。在使用计算机进行网络互联的同时,各种家电设备、仪器仪表以及工业生产中的数据采集与控制设备在逐步地走向网络化,以便共享网络中庞大的信息资源。只要那些设备上实现了TCP/IP协议并增加一个网络接口,就可方便地接入到现有的网络中。考虑到单片机成本低廉,利用TCP/IP协议中的UDP(用户数据报协议)、IP(网络报文协议)、ARP(地址解析协议)及简单的应用层协议,根据应用的需要做相应的裁减,文中将介绍用AT9
[单片机]
基于单片机的以太<font color='red'>网络</font>接入系统的实现及<font color='red'>网络</font>性能分析
TMS320VC5402DSP与51单片机的接口设计技术
TMS320VC5402(VC5402)是德州仪器公司推出的具有较高性价比的定点数字信号处理器。VC5402增强外设由软件等待状态发生器、锁相环时钟发生器、6通道直接存储器访问(DMA)控制器、增强型8位并行主机接口(HPI)等组成。两个可编程的多通道缓冲串口(McBSP)能够全双工、快速地与其他同步串口进行数据交换,硬件连接简单,串口的工作模式和传送数据的格式可通过编程实现。DSP和单片机之间的通信一般利用双口RAM,通过串口或DSP的HPI接口实现。 利用双口RAM实现 CY7C026是CYPRESS公司生产的16k×16B高速双口静态RAM,存取速度小于25ns。他具有真正的双端口,可以同时进行数据存取,两个端口具有独立的
[嵌入式]
数字滤波器的MATLAB设计与DSP上的实现
引言 随着信息时代和数字世界的到来,数字信号处理已成为今一门极其重要的学科和技术领域。数字信号处理在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。在数字信号处理应用中,数字滤波器十分重要并已获得广泛应用。 1 数字滤波器的设计 1.1 数字滤波器设计的基本步骤 数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。IIR滤波器的特征是,具有无限持续时间冲激响应。种滤波器一般需要用递归模型来实现,因而有时也称之为递归滤波器。FIR滤波器的冲激响应只能延续一定时间,在工程实际中可以采用递归的方式实现,也可以采用非递归的
[单片机]
数字滤波器的MATLAB设计与<font color='red'>DSP</font>上的实现
矢量网络分析仪(矢网)的校准
一、误差分析 网络分析仪测试过程中的误差主要分为三类:系统误差、 随机误差、 漂移误差。 1、 系统误差是由于仪表内部测试装置的不理想引起,它是可预示和可重复出现的。 由于是不随时间变化的,从而可以定量进行描述。系统误差可在测试过程中通过校准消除。 2、 随机误差是不可预示的,因为它以随机形式存在,会随时间变化,因此不能通过校准消除。随机误差的主要来源为:仪表内部噪声(如:激励源相位噪声、 采样噪声、 中频接收机本振噪声等),仪表的开关动作重复性和连接器重复性也属于随机误差。 3、 漂移误差是仪表在校准后测试装置性能漂移。漂移误差主要是由于温度变化造成,可通过进一步校准消除。校准后仪表能够保持稳定精度的时间长短取决于测试环境中仪表
[测试测量]
矢量<font color='red'>网络</font>分析仪(矢网)的校准
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved