×

基于TMS320C6205的信号采集处理系统的实现方法

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

分享资料个

 典型的DSP(数字信号处理器)内部采用改进的哈佛结构和流水线技术,可以在单指令周期内完成乘加运算,具有较高的处理能力。
  一个典型的基于DSP的信号采集处理系统,通常由DSP、A/D转换器、存储器和相应的接口威廉希尔官方网站 组成,大都做成PCI(外设部件互连)接口插卡形式和主控计算机一起工作。各种控制信息通过PCI发送给DSP,采集处理后的结果再通过PCI接口发送回主控计算机。PCI接口部分一般需要采用接口芯片来完成,这样会显著增加系统的设计调试难度,并使成本增加。而选用本身带有PCI接口的DSP处理芯片就可以省去这一部分额外的威廉希尔官方网站 ,不但降低了开发难度,也降低了设备成本。TMS320C6205就是这样一种带有PCI接口的DSP芯片,本文重点讨论基于这种芯片的信号采集处理系统的实现方法。
  1 TMS320C6205芯片的技术特点
  TMS320C6205是基于TMS320C6000平台的高性能DSP,TMS320C6205源自TMS320C6201 B,一种有新的PCI接口且性能提高的DSP芯片。TMS320C6205工作在200 MHz时的最大处理能力达到了1 600 MIPS(百万条指令每秒)。所有TMS320C6000系列DSP芯片在代码上都有兼容性,TMS320C62x定点DSP都基于相同的CPU核心设计,通过指令的并行性获得了较强的处理能力。该系列DSP芯片具有8个处理单元,包括2个乘法器和6个ALU(算术逻辑单元),所有的处理单元都可以并行工作,因此在每一个时钟周期内最多可以同时执行8条指令。
  TMS320C6205和TMS320C6201及TMS320C6201B具有高度的兼容性,这几种DSP芯片在以下几个方面完全相同:TMS320C6205的CPU与TMS320C6201B完全相同,因此为TMS320C6201所写的代码可以不加修改地在TMS320C6205上运行;多通道缓冲串口(McBSP)、时钟、中断选择也完全相同;TMS320C6201与TMS320C6205的内部存储空间也相同,都具有64kB的程序和数据存储区。与TMS320C6201相比,TMS320C6205通过升级具有了更强的处理能力,升级后的TMS320C6205和TMS320C6201有以下不同:
  a)EMIF(扩展存储器接口总线)做了简单修改,减少了芯片的引脚数。SDRAM(同步DRAM)和SB-SRAM(同步猝发SRAM)在EMIF上共用了相同的控制信号。这两种信号是互斥的,因此在系统中只能在两种类型的存储器中任选一种。
  b)为提高DMA(直接存储器访问)的数据吞吐量,4通道的DMA控制器为每一个通道都配备了专用的FIFO,这样就无需对FIFO信号进行仲裁。
  c)用PCI模块代替了TMS320C6201B的HPI(主机接口),PCI模块具有高性能的32 bit主/从PCI即插即用功能,支持33 MHz的桌上电脑PCI接口,与PCI本地总线规格2.2版兼容,该接口模块可作为具有33 MHz、32 bit宽度地址数据的PCI主从对象使用,该模块包含配置寄存器、校验生成、校验和系统错误检测和报告(PERR#,SERR#)以及电源管理能力。
  d)具备4线EEPROM串行接口,这样,PCI的控制空间寄存器就可以从外部的串行EEPROM加载配置,PCI模块无需DSP的干涉就可以实现自动初始化。
  e)TMS320C6205的PLL有x1、x4、x6、x7、x8、x9、x10和x11等模式,这些模式可以通过CLKMODE0引脚和EMIF数据引脚的上推和下拉电阻来选择。
  f)TMS320C6205使用15C05(0.15μm)处理技术,通过电池处理技术提供更低的核电压和功耗。
  g)用上推和下拉电阻实现了自举模式配置。
  2 信号采集处理系统硬件设计
  该系统硬件部分主要由DSP、FPGA(现场可编程门阵列)和存储器构成,具体的硬件结构如图1所示。
  基于TMS320C6205的信号采集处理系统的实现方法
  从图中可以看出,信号采集处理系统的核心部分是TMS320C6205的DSP处理器,该DSP除了担负信号处理任务外,还担负着接收数据和输出处理结果两项任务。信号采集处理系统中的FPGA主要担负数据采集和控制信号生成两项任务。该系统的设计针对的是接收机解调后输出的TCL电平的数字信号,因此数据采集部分比较简单,就是将数据的时钟作为触发信号,根据触发时刻的数据电平值来确定输入数据是“0”还是“1”,采集后的数据在FPGA内按照McBSP的数据规格成帧,然后通过McBSP写入SDRAM中。
  该系统可以同时采集两路数字信号,在采集威廉希尔官方网站 与DSP之间通过DMA方式交换数据,由于DSP中有专门的DMA控制器,因此在数据交换时无需DSP干预,具有较高的处理效率。DSP所需的摔制信号也由FPGA产生,由于数据采集部分比较简单,控制信号产生和数据采集可以共用同一片FPCA。DSP通过PC接口模块与主机之间进行数据交换,由于PCI接口模块具有完整的PCI接口功能,无需额外添加外部威廉希尔官方网站 ,因此接口部分的威廉希尔官方网站 设计相对来说比较简单。DSP与工控机进行数据交换时采用主从方式,DSP为主设备,工控机为从设备,两者之间利用中断响应进行数据通信,当DSP内部的输出数据缓冲区被写满后,会发送一个中断请求到主机的PCI总线上,PCI总线驱动程序响应该中断并通过Windows的事件(Event)通知主机软件读出数据。
  为了扩充DSP的存储空间,使DSP能满足大速率信号的处理要求,信号采集处弹系统上集成了一片大容量存储器,即SDRAM,具有较高的数据存取速度。信号采集处理系统上的Flash存储器主要用来存储DSP软件,可通过PCI总线在主机端动态加载,这样该信号采集处理系统就可根据不同的输人数据进行不同处理,大大增加了系统使用时的灵活性。该系统还包括时钟威廉希尔官方网站 和电源威廉希尔官方网站 ,这些威廉希尔官方网站 可以参照技术手册的要求进行设计,电源威廉希尔官方网站 可选用现成的电源模块,这样就可进一步降低威廉希尔官方网站 设计难度。从总体上看,采用TMS320C6205构成的信号采集处理系统由于省去了额外的PCI接口威廉希尔官方网站 ,整个系统设计较简洁,开发难度低,开发周期短,是一种较理想的硬件设计方法。
  3基于DSP/BIOSⅡ的实时信号处理技术
  信号采集处理系统中的DSP不但要实现高速信号处理,还需要处理数据的输入输出和中断请求,这都要用到基本的任务调度和输入输出服务,DSP/BIOS实时基础软件提供了一个小的具有基小运行服务的固件核,开发者可以把这个核嵌入目标DSP中。DSP/BIOSⅡ是性能得到提升的第2代实时基础软件,利用该软件可以缩短实时信号处理软件的开发时间,并且可以显著提高代码的可重用性。
  基于DSP/BIOSⅡ使信号处理技术实现起来比较简单,整个配置过程都可以利用一个图形化的界面来实现。首先,新建一个DSP/BIOS的配置文件,然后在“Syetem”文件夹下选择“MEM”,也就是存储区管理模块,在该模块增加两个新的MEM项,分别对应信号采集处理系统的SDRAM和Flash存储器,设置好SDRAM和Flash存储器的基地址和长度,至此片外存储区的设置就全部完成了。由于DSP和数据采集部分通过McBSP交换数据,因此还需要对McBSP行设置。找到“CSL”也就是芯片支持库文件夹,在McBSP选项下的McBSP配置管理(MsBSP ConfigurationManager)增加两个新的McBSP的配置控制项,这两个控制项分别对应McBSP0和McBSP1,然后设定这两个配置项的参数,最关键的是接收模式和输出模式的设置,接收和输出均采用无压扩的LSB方式,对于有压扩的话音数据,可以根据需要选择μ律或A律压扩,这样在数据读写的同时,利用DSP硬件也就完成了μ律或A律压扩。McBSP可以实现数据的双向传输,在本系统中只是从数据采集部分读人数据,没有用到其双向数据传输功能。实际上,利用其双向数据传输功能,结合μ律或A律可以很方便地实现话音的实时处理。所有配置都设置完后,将配置文件存盘加入当前工程,整个基于DSP/BIOS的配置便完成,在中断响应函数配合下,就可实现整个实时处理软件的开发。
  实时处理软件的数据流如图2所示。从图中可以看出,数据从McBSP通过DMA方式写入SDRAM输入缓冲区,整个输入缓冲区划分成若干片,数据处理部分按片进行处理,由于McBSP写入的数据片与DSP处理的数据片不是同一个数据片,数据处理和数据写入就可以同时进行,这是保证数据实时处理的一个关键。显然,所分数据片数越多,可以有越长的处理时间,越适合进行一些复杂的算法,这样要付出的代价就是输出延时比较长,同时需要大的DSP片外存储空间。数据处理后的结果存放在输出缓冲区,输出缓冲区的大小与输入相同,当输出缓冲区写满后,触发PCI总线中断处理函数,把处理后的结果通过PCI总线写到主机缓冲区,主机程序从该缓冲区将数据读出,存储到计算机硬盘上的制定文件中。

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

评论(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:'基于TMS320C6205的信号采集处理系统的实现方法',//标题 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);