基于dsp6678实现多任务以太网络数据传输

基于dsp6678实现多任务以太网络数据传输

ID:31359222

大小:103.50 KB

页数:4页

时间:2019-01-09

基于dsp6678实现多任务以太网络数据传输_第1页
基于dsp6678实现多任务以太网络数据传输_第2页
基于dsp6678实现多任务以太网络数据传输_第3页
基于dsp6678实现多任务以太网络数据传输_第4页
资源描述:

《基于dsp6678实现多任务以太网络数据传输》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、基于DSP6678实现多任务以太网络数据传输  摘要:文章基于DSPTMS320C6678和SYS/BIOS系统实现多进程以太网络收发功能。文章首先介绍了TMS320C6678的特性和架构,实现网络开发所需要的软件环境:CCSV5,SYS/BIOS6和NDK,最后重点介绍多任务以太网数据传输的实现方法。  关键词:DSP6678;以太网;SYS/BIOS;NDK;UDP  在某型号雷达系统中信号处理板与多个分系统进行通信采用以太网络进行数据传输,一般信处板上的可编程器件如DSP或者FPGA不易实现这种多线程功能,传统的解决方法是另配一

2、个单板机来完成此功能。这种方法缺点有2个:一是提高了近1倍的硬件成本;二是增加了系统复杂程度,降低了可调试性和可靠度。在本方案中使用TI公司最新推出的DSP处理器TMS320C6678,通过使用实时操作系统SYS/BIOS6和TI网络开发工具(NDK)可以很方便地实现多任务的网络通信功能,同时,作为新一代的多核DSP处理器,可以仅使用一个核来专门完成网络功能,而不影响其他的核完成信号处理功能。  1器件架构  DSP4TMS320C6678是一款超高性能支持定点和浮点运算的DSP处理器,它基于Ti公司的KeyStone多核架构,工作时

3、钟最高能达到1.25GHz。该DSP拥有8个独立的具有全处理功能的核(Core),每个核内包括的一级程序存储器(L1P)32KB和一级数据存储器(L2D)32KB以及512KB的二级缓存(SL2)。除此之外的8个核心共享4096KB的共享内部存储器(MSM)和最多配至2GB的外部DDR3存储器。整个芯片提供320GMAC定点计算或者160GFLOP浮点计算能力,与此同时,还具有丰富的外设接口,包括SerialRapidlO,PCIe,HyperLink,GigabitEthernet,EMIF,12C等接口用于数据传输。作为Ti公司新

4、一代主推的DSP,对多核的支持与运算能力的提高,使其能更好地实现复杂的并行运算能力,在未来高速信号处理应用中具有广泛的前景。  网络协处理器(NETCP)是一个主要处理以太网数据包的硬件加速器。它具有2个千兆网络模块(GbE)用来收发符合IEEE802.3协议的以太网数据,1个包加速器(PA)模块用来完成一些传统的操作例如字头匹配、包修正等功能,还有1个安全加速器(SA)用来对数据包加密。NETCP可以从以太网接收数据,也可以通过包DMA(PKTDMA)方式从DSP或其他外设传递包数据。NETCP功能模块如图1所示。  2软件开发环境

5、  SYS/BIOS是一款实时多线程操作系统。它的所有功能模块都可以选择加载以获得最小的内存和CPU开销。为了应对不同的应用,该系统提供了硬件中断、软件中断、任务和空闲4种类型的线程,可以根据需要的优先级和允许阻塞情况来使用这些线程类型。该系统可以很好地支持C/C++语言。  NDK是用来在KeyStone设备上实现以太网程序的一个开4发平台,其运行基于SYS/BIOS实时操作系统。它包括了所有以太网开发需要的硬件驱动和用户接口(Socket),以及各层协议实现:应用层HTTP,DNS;传输层UDP,TCP;网络层IP,ICMP;数据

6、链路层PPP,PPPOE等。  CCSV5.x是新一代的TIDSP开发环境,基于开源软件WorkBench设计。对DSP进行代码编译,在线调试均可以在CCS环境内完成。在编写代码前首先要进行工程配置,加载SYS/BIOS和NDK,以及对其必需的模块进行选择加载,对内存分配进行管理,设置主进程和中断。  3软件架构及实现  在本方案中要通过交换机实现对多个终端的以太网数据传输,每个终端具有不同的IP地址和端口号。按照终端的类型收发需求和传输协议可以将网络套接字(Socket)分为3类:(1)按照UDP协议发送数据。(2)按照组播协议发送

7、数据。(3)按照UDP协议接收/发送数据。每一种终端类型需要对Socket进行不同的配置,并且每个Socket能独占一个进程以致相互之间不受影响。由于一些器件的初始化程序只能在Core0上完成,所以使用Core0作为专门的网络数据处理核,Core0与其他核进行数据交换在约定的公共存储区上完成。由于项目对网络实时性要求不严格,故数据收发能采用循环查询的方式进行。基于以上要求设计了如图2所示的软件实现流程。  在NDK中通过函数DaemonNew()建立Socket进程,在该函数中定义了Socket类型、端口号和触发函数。当后台程序接收到

8、对应端口号的IP包后,会执行一次触发函数。对于只进行发送的Socket(1类、2类),由于不会接收任何IP包,也就不会进入到触发函数。为了解决这个问题,只能借用具有接收数据的Socket(3类)来完成触发动作。基于此设计

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。