×

基于DSP的实时数据处理系统浅析

消耗积分:1 | 格式:rar | 大小:0.4 MB | 2017-10-25

分享资料个

 随着信息技术的飞速发展,人们更加迫切得需要准确、快速地获取大量数据,并能从中方便、准确地提取有用信息。随着对系统需求的增加,系统不但需要高速的数据处理能力,还需要具有良好的系统控制功能。因此,传统的单一DSP的架构已经不能完全满足人们的需求。
  1、DSP/MCU融合或者DSP+FPGA架构
  针对这一问题,现在比较流行的解决方案为:DSP/MCU融合或者DSP+FPGA架构。
  1.1 DSP特点
  DSP一般采用哈佛架构,超长指令字架构等,数据存取和指令分开,内部运算单元多,有专门的运算乘加结构,因此运算速度极高。其内部存储器(RAM和ROM)很大,并且可以扩展,外部接口丰富,配合流水线操作,特别适合进行大量数字信号的快速处理。尽管如此,DSP芯片的单机处理能力还是有限的。
  1.2 MCU特点
  MCU接口相当灵活,并集成了FLASH、DAC、ADC、SRAM、总线、定时器/计时器、I/O、串行口等功能单元,非常适合于各种控制应用。但是,MCU数据存取和指令没有分开,运算速度较低,运算单元较少,且内部存储器不大,对大量数字信号的快速处理无能为力。
  1.3 FPGA特点
  FPGA以强大的灵活性著称。FPGA可以反复地编程、擦除以及灵活的外围设备接口是它的最大的亮点。非常适合高性能运算密集型应用,可以以更大的并行度实现产品所需功能。
  1.4 DSP/MCU融合或者DSP+FPGA架构的优点和局限性
  面对大量数据处理并且需要许多控制功能的实时系统,将 DSP和 MCU的优缺点互补,不失为一个好的解决方案,也逐渐受到人们的青睐。
  而采用DSP+FPGA的数字硬件系统正显示出它的优越性,越来越受到人们的重视。
  SP+FPGA结构最大的特点是结构灵活,通用性强,同时其开发周期较短,系统易于维护和扩展,适合于实时数据采集和处理。传统DSP芯片的结构本质上是串行的,对于需要处理的数据量大、处理速度高,但是运算结构相对比较简单的底层信号处理算法来说,并没有优势可言,而这恰好是FPGA硬件的强项。而且针对DSP芯片不能直接与PC机进行异步串行通行的缺点,可以通过FPGA的相关通信协议转换来弥补。再结合FPGA的并行处理方式,使得DSP+FPGA非常适合超高速和实时信号处理领域。
  然而,虽然DSP/MCU融合或者DSP+FPGA架构的方案解决了单一处理器不能兼顾大数据量处理和大量控制功能并存的问题,但是鱼与熊掌不可得兼,不能否认,DSP/MCU融合或者DSP+FPGA架构的方案又引出了新的问题。随着系统处理器数量的增加,带来的,无疑将是系统体积的增大,功耗的提高。至于系统的抗干扰能力和稳定性更是问题,也更加要费一番苦心去解决。
  2、基于SOPC嵌入式系统的FPGA的架构
  针对需要良好控制能力的实时数据采集系统,从追求高性能、低成本的角度考虑,基于 SOPC技术和uClinux嵌入式操作系统的FPGA架构是个很好的解决方案。
  2.1 FPGA代替部分DSP功能
  随着工艺技术的进步,FPGA的功耗不断降低,速度逐渐提高,同时成本也越来越低。因此,在某些领域,代替DSP或者MCU,为许多需要功能复杂的应用提供了快速、低成本的解决方案。用FPGA来实现数字信号处理可以很好地解决并行性和速度问题,而且其灵活的可配置特性以及先进的开发工具使得FPGA构成的DSP系统弥补了传统方案的诸多不足。
  2.2 SOPC技术
  基于DSP的实时数据处理系统浅析
  图1 SOPC结构图
  SOPC技术是美国Altera公司于2000年最早提出的,并同时推出了相应的开发软件QuartusⅡ。通常,除常规的SRAM、DRAM、Flash外,系统还需要配置网络通信接口、串行通信接口、USB接口、VGA接口、PS/2接口或其他专用接口等。这样才能构成一个完整的系统,使系统更为完备,能适应多任务的要求。但同时带来了整个系统的体积、功耗增加的问题,并且降低了系统的可靠性。如果将ARM或其他知识产权以硬核方式植入FPGA中,则利用FPGA中的可编程逻辑块,就能很好地解决这些问题,这样就使得FPGA灵活的硬件设计和硬件实现与处理器的强大软件功能有机地结合,高效地实现SOPC系统。
  而且在构建SOPC系统的过程中,我们可以通过QuartusⅡ将系统模型方便地搭建在FPGA上,避免了专用配置和采用金属互连的走线。器件面积更小,开发周期更短,成本更低。在QuartusⅡ中构建系统模型的时候,还可以利用相关工具(DSP Builder)很方便地将各种DSP算法的IP核添加到工程中。实践证明,用FPGA实现的MPEG4压缩/解压缩速度比通用DSP快10倍以上。
  2.3 uClinux嵌入式操作系统
  uClinux是一种广泛应用于嵌入式设备中的操作系统,是针对微控制领域而设计的操作系统,适合不具备内存管理单元(MMU)的微处理器,它的特点是高稳定性、强大的网络功能和出色的文件系统支持等。基于uClinux操作系统的应用程序,其所有的硬件细节均对用户屏蔽,对硬件进行直接控制的底层驱动程序均封装在操作系统内,通过设备驱动程序接口来完成,用户只需在高层通过操作系统所提供的系统调用进行编程,像在PC机上一样,拥有完善的操作系统并提供应用程序接口(API),将开发好的应用程序直接在嵌入式系统上执行,不需要了解所有硬件部件的细节,并编写相应的驱动子程序,降低了软件设计难度和工作量,有很好的可移植性。而且,uClinux有一个完整的TCP/IP协议栈,对其他许多的网络协议也都提供支持;RTlinux模块可以对系统的实时性提供软件上的支持;而且,嵌入式操作系统uClinux可以作为一个模块,融合到SOPC系统,与SOPC系统一起,方便地嵌入到FPGA处理器中。最后,再结合FPGA的硬件并行处理架构,这种高灵活性、高集成度、高实时性嵌入式处理系统完全有能力应付要求实时性较高的场合。
  2.4 研究开发嵌入式数据采集系统的重要意义
  随着嵌入式技术的发展,嵌入式系统的开发成本逐渐降低,通用性日渐提高,更便于维护和移植,而且嵌入式系统体积小、功耗少、稳定性高,在工业控制和以太网的传输方面优势更加明显。所以,研究开发嵌入式数据采集系统对应付海量数据处理的实时系统有十分重要的意义。
  3、总结与展望
  采用DSP/MCU或者DSP+ARM的架构,可以很好的满足大量数据处理并且需要许多控制功能的实时系统,但是随着性能的提高,功耗和集成度问题显而易见。当需要处理的数据量不大的时候,基于SOPC技术的FPGA系统可以应付,而且灵活性好,集成度高,功耗小,但是无法解决海量数据的处理。随着技术的进步,也许在不久的未来,基于哈佛结构的DSP芯片会有更好的结构改善,或者FPGA会发展到能够独当一面的地步,或者DSP、FPGA、MCU会融合得更好,或者一种新的结构的芯片,异军突起……
  科研技术的快速发展与进步,各种新的方案也随之不断出现,这就使得人们在解决方案的选择上有了更多的自由与空间。然而,可以肯定的是,在选择解决方案的时候,追求高性能、不断降低成本的,将是我们始终不变的目标。
 

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.obk20.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'基于DSP的实时数据处理系统浅析',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.obk20.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);