基于DSP的网络通信接口设计方案

发布者:BlossomJoy最新更新时间:2014-08-11 来源: dzsc关键字:DSP  网络通信  接口设计 手机看文章 扫描二维码
随时随地手机看文章

  1 通信协议的制定

  协议是用来管理通信的法规,是网络系统功能实现的基础。由于DSP可以实现对网卡的直接操作,对应于OSI网络模型,网卡包含了物理层和数据链路层的全部内容,因此,规定了数据链路层上数据帧封装格式,就可以为基于DSP的局域网络中任意站点之间的通信提供具体规范。因为以太网是当今最受欢迎的局域网之一,在以太网中,网卡用于实现802.3规程,其典型代表是Novell公司的NE2000和3COM公司的3C503等网卡,所以研究工作中的具体试验平台是以DSP为核心构成的以太局域网,主要用于语音的实时通信,所使用的网卡为Novell公司的NE2000网卡。NE2000网卡的基本组成请见参考文献[2],其核心器件是网络接口控制器(NIC)DP8390.该器件有三部分功能:第一是IEEE802.3MAC(媒体访问控制)子层协议逻辑,实现数据帧的封装和解封,CSMA/CA(带碰撞检测功能的载波侦听多址接入)协议以及CRC校验等功能;第二是寄存器堆,用户对NE2000网卡通信过程的控制主要通过对这些寄存器堆中各种命令寄存器编程实现;第三是对网卡上缓冲RAM的读写控制逻辑。DP8390发送和接收采用标准的 IEEE802.3帧格式。IEEE802.3参考了以太网的协议和技术规范,但对数据包的基本结构进行了修改,主要是类型字段变成了长度字段。所以,以 DSP为核心的局域网内通信数据包基本格式如图1所示。

  DSP读出数据包和打包从目的地址开始。目的地址用来指明一个数据帧在网络中被传送的目的节点地址。NE2000支持3种目的地址:单地址、组地址及广播地址。单地址表示只有1个节点可以接收该帧信息;组地址表示最多可以有64个字节接收同一帧信息;而广播地址则表示它可以被同一网络中的所有节接收。源地址是发送帧节点的物理地址,它只能是单地址。目的地址和源地址指网卡的硬件地址,又称物理地址。 在源地址之后的2个字节表示该帧的数据长度,只表示数据部分的长度,由用户自己填入。数据字段由46~1500字节组成。大于1500字节的数据应分为多个帧来发送;小于46字节时,必须填充至46字节。原因有两个:一是保证从目的地址字段到帧校验字段长度为64字节的最短帧长,以便区分信道中的有效帧和无用信息;二是为了防止一个站发送短帧时,在第一个比特尚未到达总线的最远端时就完成帧发送,因而在可能发生碰撞时检测不到冲突信号。NE2000对接收到的从目的地址字段后小于64字节的帧均认为是“碎片”,并予以删除。在数据字段,根据系统的具体功能要求,用户可以预留出若干个字节以规定相应的协议,以便通信双方依据这些字节中包含的信息实现不同的功能。

  2 基于DSP的网络通信程序设计

  如果基于网络操作系统,用户可以利用一些软件对网络操作系统的支持,很容易地编写出优秀的网络通信程序,但这些程序必须依附于网络操作系统。而在DSP环境下,必须深入了解网络接口控制器(NIC)的工作原理[2],通过对网络直接编程,实现局域网内任意站点之间的通信而完全抛开网络操作系统。 DSP对网卡的通信过程控制就是DSP对DP8390中各种寄存器进行编程控制,完成数据分组的正确发送和接收。DP8390的所有内部寄存器都是8位,映像到4个页面。每个页面有16个可供读写的寄存器地址(RA=00H~0fH)。页面的选择由命令寄存器CA控制。第0页寄存器用于收发过程,第1页寄存器主要用于DP8390的初始化,第2页寄存器则用于环路诊断。DSP对寄存器的操作是将寄存器作为DSP的端口设备,其实际物理端口地址(PPA)为网卡基本I/O端口地址(BIOA)与寄存器地址(RA)之和(即PPA=BIOA+RA)。应注意的是,PPA与寄存器间并不存在一一对应关系,对 PPA的读操作与写操作并不一定是对同一寄存器进行的,这种情况在第0页尤其明显。用户数据分组在DSP和网卡交互是通过网卡的数据端口实现的,既可以用 DMA方式也可以用PIO方式读入数据分组或将数据分组送至网卡RAM缓冲区。在本系统中,DSP采用DMA方式对网卡进行数据读写。网卡的数据端口地址(NDPA)为网卡基本I/O地址(BIOA)加偏移地址10H(即NDPA=BIOA+10H)。 网卡通信过程控制可分为网卡初始化、接收控制和发送控制。下面分别予以讨论。

  2.1 网卡初始化

  网卡初始化的主要任务是设置所需的寄存器状态,确定发送和接收条件,并对网卡缓冲区RAM进行划分,建立接收和发送缓冲环。具体过程请参阅参考文献 [2].需要说明的是,每一块网卡被赋予一个物理地址,以便通信站点的标识。这个物理地址存在网卡的PROM(存储地址为0000~0005H)六个单元中,在网卡初始化时,通过远程DMA读入DSP内存中,并送入网卡物理地址寄存器。在一步的意义在于:一方面,如果能正确读出网卡的物理地址,则说明网卡硬件基本没有问题,网卡的上电复位和DSP对网卡的初始化顺利通过;另一方面,这个物理地址可以用于DSP网络系统中的点名、包的过滤丢弃等服务,也就是说,在链路层根据数据帧携带的源地址和目的地址确定数据报从哪里来,是否接收或丢弃。网卡初始化时另一个重要的工作就是接收缓冲环的设置,为了有效利用缓冲区,NIC将接收缓冲区RAM构成环形缓冲结构,如图2所示。

  接收缓冲区RAM分成多个256字节的缓冲区,N个(N最大为256)这样的缓冲区通过指针控制链接成一条逻辑上的缓冲环。缓冲环的开始页面地址存入 PSTART寄存器,环页面结束地址存入PSTOP寄存器。PSTART和PSTOP确定了接收缓冲环的大小和边界。为便于缓冲环读写操作,还需要2个指针:当前页面指针CURR和边界指针BNRY.CURR确定下一包放在何处,起着缓冲环写页面指针作用;BNRY指向未经DSP取走处理最早到达的数据包起始页面,新接收的数据包不可将其覆盖,起着缓冲环读页面指针的作用。也就是说,CURR可以告诉用户网卡接收的数据分组当前放到了什么位置,而BNRY 则用于确定DSP读缓冲环到了什么地方。由于接收缓冲区为环形结构,BNRY和CURR相等时,环缓冲区可能满也可能空。为了使NIC能辨别这两种状态,规定当BNRY等于CURR时,才认为环缓冲区满;当缓冲区空时,CURR比BNRY指针值大1.因此,初始化时设置:BNRY=PSTART,CURR=PSTART+1.这时读写指针不一致,为了保证正确的读写操作,引入一软件指针NEXTPK指示下一包起始页面。显然,初始化时NEXTPK=CURR.这时,缓冲环的读指针对NEXTPK,而BNRY只是存储分组缓冲区的起始页面边界指示,其值为 NEXTPK-1.

  2.2 接收控制过程

  DSP完成对DP8390的初始化后,网卡就处于接收状态,一旦收到分组,就自动执行本地DMA,将NIC中FIFO数据送入接收缓冲环,然后向主机申请 “数据分组接收到”中断请求。DSP如果响应中断,则启动网卡远程DMA读,将网卡缓冲区中的数据分组读入学生机存储区,然后对接收缓冲环CURR、 NEXTPK、BNRY指针内容进行修改,以便网卡能从网上正确接收后续分组。DSP响应网卡接收中断后,接收控制过程如下: ①设置远程DMA的起始地址;RSAR0=00H,RSAR1=Nextpk. ②设置远程DMA操作的字节数,这个长度在46~1500字节范围内根据具体要求自己确定。 ③0AH送命令寄存器CR,启动远程DMA读。 ④从网卡数据端口依序读入数据分组,注意,最先读入的4字节非数据分组内容,第1字节为接收状态,第2字节为下一包页地址指针,3与4字节为接收字节数。第2字节内容应该送入Nextpk,其它字节根据用户要求处理。 ⑤修改边界指针BNRY=Nextpk-1. ⑥清除远程DMA字节数寄存器RBCR0和RBCR1.

  2.3 发送控制过程

  DSP先执行远程DMA写操作,将内存中的数据分组传至网卡发送缓冲区,然后启动发送命令进行数据分组发送。发送控制过程如下: ①设置远程DMA的起始地址为网卡发送缓冲区起始地址; ②设置远程DMA操作的字节数; ③12H送命令寄存器CR,启动远程DMA写; ④依序送出数据分组至网卡发送缓冲区; ⑤清除远程DMA字节数寄存器; ⑥设置发送字节数寄存器TBCR0和TBCR1; ⑦12H送命令寄存器CR,启动数据分组发送。

  3 发送方发送频率的控制

  发送方发送频率的正确控制主要保护两点:一是有一个最小发送时间间隔,否则会因为接收方不能及时接收而导致系统瘫痪;二是发送频率能够足具体的功能实现要求。譬如在语音的实时通信中,发送频率就取决于声卡的采样频率。在8kHz采样频率时,声卡每秒钟采样8000字节,采用1024字节需用时128ms,如果通信协议规定发送1次传送1024字节有效数据,则必须每128ms发送一次才能保证缓冲区有新数据待发送,也才能保证接收方有新数据播放。 128ms是一个理论计算数值,在实际的操作中采样速度和发送频率之间总是不能完全匹配,而存放数据的缓冲区大小是有限的,如果没有良好的控制技巧来实现正确发送,就会造成声音抖动和延时。解决的办法是双缓冲技术和双指针控制,并且根据采样速度和发送频率之间的匹配情况送入不同的发送通信进行处理后发送。正确发送的含义有两方面,一是每次发送的都是新数据,二是能满足接收方总在播放新数据的需求。

  4 接收方防止数据包的丢失

  由于DSP通过中断请求判断是否有数据分组到来,如果中断繁忙而两个数据包到来时间相差非常短,DSP有可能只响应一次中断,从而导致丢包的发生。分析网卡接收数据过程,当网卡收到数据分组时,首先执行本地DMA,将NIC中FIFO数据送入接收缓冲环,并将本地DMA操作的起始地址存放在当前页寄存器(CURR)和当前本地DMA寄存器(CLDA0、CLDA1)中,DSP从网卡接收缓冲环读出数据到存储器则称远程DMA操作,用软件指针Nextpk 来指示远程DMA的起始页面。因此通过比较网卡本地DMA和远程DMA的当前地址,即在中断服务子程序中比较CURR和Nextpk指针,或比较 CLDA0、CLDA1和Nextpk指针,就可以保证当前数据分组放到了哪里就读出到哪里,从而防止丢包的发生。

  5 结论

  DSP芯片是专门为实现各种数字信号处理算法而设计的、具有特殊结构的微处理器,其卓越的性能、不断上升的性价比、日渐完善的开发方式使它的应用越来越广泛。将计算机网络技术引入以DSP为核心的嵌入式系统,使其成为数字化、网络化相结合,集通信、计算机和视听功能于一体的电子产品,必须大大提升DSP系统的应用价值和市场前景。将DSP技术与网络技术相结合,必须解决两个关键问题:一是实现DSP与网卡的硬件接口技术,二是基于DSP的网络通信程序设计。

关键字:DSP  网络通信  接口设计 引用地址:基于DSP的网络通信接口设计方案

上一篇:基于DSP的以太网通信接口设计方案
下一篇:基于Modelsim FLI接口的FPGA仿真技术

推荐阅读最新更新时间:2024-05-02 23:06

基于瞬时无功电流理论三相谐波提取的DSP实现
摘要:首先回顾和总结了目前谐波提取的方法并比较了各种方法的特点;详细地讨论了一种基于瞬时无功电流理论三相谐波提取的方法并讨论了这种方法的低通数字滤波器设计,具体分析研究了滤波器的种类、截止频率和采样频率对三相谐波提取效果的影响。最后仿真和实验研究了基于瞬时无功电流理论dq变换方法。 关键词:有源滤波器;谐波提取;瞬时无功功率理论 引言 有源滤波器是目前国内外谐波抑制技术的一个重要研究方向,在国外APF技术已得到了大量应用。APF技术的原理就是把三相畸变电流的谐波提取出来作为指令电流,控制PWM主电路产生一反向的谐波电流以补偿电网中的谐波电流,因此,三相谐波电流提取的效果直接决定了APF谐波补偿的效果。 图1 1 现有三
[应用]
基于TMS320F2808 DSP最小系统设计及应用
      TMS320F2808是德州仪器(TI)公司推出的C2000平台上的定点DSP芯片,具有低成本、低功耗和高性能处理能力,特别适用于大量数据处理的测控领域和复杂运算的电机控制领域。本文在介绍TMS320F2808的性能基础上设计了以TMS320F2808 DSP为核心的最小应用系统,并给出了各部分具体硬件电路的设计和典型扩展应用。 1 TMS320F2808特点     TMS320F2808是美国TI公司推出的C2000平台上的32位定点DSP芯片,具有低成本、低功耗和高性能处理能力,外设功能增强且极具价格优势,采用100引脚封装,所有产品引脚兼容,具有高达64 kB的闪存和100MIPS的性能。片上集成了丰富而又先进
[嵌入式]
新一代数字信号处理器TMS320C55X
    摘要: TMS320C55X是美国德州仪器公司生产的一种低功耗高性能数字信号处理器,它的每个MIPS功耗只需0.05mW,因而可使网络音频播放器在两节AA电池作电源时工作200小时。文中介绍了TMS320C55X的主要特性,并详细分析了TMS320C55X的CPU结构。 关键词: 数字信号处理器  低功耗  CPU结构  TMS320C55X 1 概述 TMS320C55X是德州仪器公司(TI)数字信号处理器产品TMS320CC5000系列中最新的一种。它极大地降低了功耗,每个MIPS只需要0.05mW,与目前市场上的主流产品TMS320C54X相比,TMS320C55X的功耗降低了6倍。由于TMS3
[应用]
建立桥路:描述并改善接口设计
实际上,每个产品设计必须经历数字提取和真实模拟世界。设计前期的一些考虑将焦点放在接口设计上。   20世纪后半叶的技术创新达到空前的速度。不像以前,这个时期的许多进步很快应用到广泛的消费市场。直到那个时候,因为我们的社会趋向于从消费者利益中榨取全部价值和寿命,商人需要对新产品产生足够兴趣,引起顾客转变进一步需要:这是可任意使用经济的起源。   19世纪50年代开始,广告使用例如“喷气时代”、“原子时代”和“空间时代”的习语,将产品连接到显现和快速 改变现代性的社会映像。讽刺地,这些习语也许都没有剩下的一个有力量:“数字时代”。19世纪70年代开始,时代恰好表明关联事物不是简单的现代,而与早期产品有明显不同。   确实,
[电源管理]
DSP的汇编程序优化
1 引言   数字信号处理器(DSP)相对于模拟信号处理器有很大的优越性,表现在精度高,灵活性大,可靠性好,易于大规模集成等方面。随着半导体制造工艺的发展和计算机体系结构的改进,数字信号处理器的功能越来越强大,对信号处理系统的研究重点又重新回到软件算法上,而不再像过去那样过多地考虑硬件的可实现性。随着DSP运算能力的不断提高,能够实时处理的信号带宽也大大增加,数字信号处理的研究重点也由最初的非实时性应用转向高速实时应用。   目前大多数DSP虽然都支持C语言编程,但是在实际工程应用中,最常用的方法是用C语言编写流程控制。搭建工程框架,具体的算法模块及比较耗时的功能模块还是采用汇编语言来编写。这是因为C语言虽然具有易读性、可
[嵌入式]
基于FPGA的嵌入式系统USB接口设计
设计基于 FPGA 的IP-BX电话应用系统,用于传统的电话网络(PSTN)与PC机之间的 接口 连接。USB2.0 接口 器件EZ-USB FX2 CY7C68013A-56工作在slave FIFO模式,为基于 FPGA 的 嵌入式 系统与PC机之间提供数据和命令通道,从而可满足PC机与FPGA之间数据与命令的高速传输,实现PSTN与PC机之间的电话通信。硬件调试结果表明系统工作稳定,通话质量满足要求。 关键词:接口;FPGA;USB2.0;slave FIFO 通用串行 总线 USB(Universal Serial Bus)是应用于PC领域的接口技术,已得到广泛应用。USB2.0已成为目前电脑中的标准扩展接口。本系统设
[模拟电子]
关于汽车音响是加装dsp好还是功放好
功放,是各类音响器材中最大的一个家族,其作用主要是将音源器材输入的较微弱信号进行放大后,产生足够大的电流去推动扬声器进行声音的重放。由于考虑功率、阻抗、失真、动态以及不同的使用范围和控制调节功能,不同的功放在内部的信号处理、线路设计和生产工艺上也各不相同。 关于汽车音响是加装dsp好还是功放好----DSP功放介绍 DSP功放可以理解成内置DSP微处理器的功放,是这几年的趋势,DSP功放优点很多,比如方便的分频,更直观的调节延时和音效,让普通人也能很容易调出自己喜欢的风格。一般体积都不大并配有专车专用线束。 带有DSP处理器功放是指采用DSP芯片,可以通过电脑调教,每个声道的参数(EQ延时分频点等),是可以通过电脑更好
[汽车电子]
使用DSP加速PCI接口产品的开发
    摘要: 一种基于PLX公司的PCI接口芯片的辅助开发工具,可极大地方便PCI产品的硬件调试,以及驱动程序和应用软件的开发。给出了一个以PCI9052为接口芯片的图形控制器的开发实例,以及在Windows操作系统下如何调用SDK中的API函数。     关键词: PCI桥 PCI9052芯片 SDK VC++6.0 1 PCI总线和PCI桥接芯片 PCI总线就一种目前较为流行的、先进的高速同步总线。它的历史较短,正式的2.2版本于1999年2月发布。其优点在于能够满足设备之间实现快速访问,因为PCI总线的全部读写传送都可以用突发方式进行,且总线速度可达33/66MHz,数据宽度为32/64bit。此外
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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