×

STM32的双路信号源及其配置平台设计资料下载

消耗积分:3 | 格式:pdf | 大小:454.16KB | 2021-04-14

贾飞世

分享资料个

引言随着雷达探测、仪表测量、化学分析等领域研究的不断深入,不仅要求定性地完成目标检测,而且需要往高精度、高分辨率成像的方向发展。一方面,产生频率、幅度灵活可控,尤其是低相位噪声、低杂散的频率源,对许多仪器设备起着关键的作用。另一方面,电子元器件实际性能参数并非理想加之外部、内部的干扰,大量的误差因素会严重影响系统的准确性。双路参数可调的信号源可有效地对系统误差、信号通道间不平衡进行校调,并且可以产生严格正交或相关的信号,这在弱信号检测中发挥重要作用。为此本文采用双通道DDS方法,利用STM32微控制器完成了一种高分辨率灵活可调的双路信号源电路设计。1 DDS原理及系统方案1.1 DDS工作原理直接数字合成(Direct Digital Synthesis,DDS)是一种以一个固定频率的精确时钟源为参考,使用数字数据处理模块产生频率和相位可调的输出信号的技术。本质上,DDS内部结构是通过可编程的二进制控制字所设置的尺度因子对参考时钟进行“分频”。控制字通常为24~48位长,使DDS实现卓越的输出频率分辨率。直接数字合成器可以通过精密参考时钟、地址计数器、可编程的只读存储器(PROM)和一个D/A转换器来实现,其结构如图1所示。通过在数字信号链路上引入相位累加功能,使这种架构成为一个数控振荡器,同时也是高度灵活DDS器件的核心。如图2所示,在正弦查找表之前用N位可变模的计数器和相位寄存器来替换地址计数器,形成一种具有“相位轮”的DDS结构,“相位轮”上的每一点恰好与正弦波周期波形上的每一点对应。DDS的输出频率为:其中,fout为输出频率,M为二进制控制字,fc为参考时钟源,N为相位累加器的位宽(决定频率分辨率)。DDS发展趋势是功能集成,在单芯片上增加数模模块实现更广泛的应用。这些模块主要有:① 可编程的输入时钟倍频模块。② 可编程幅度,相位控制模块。③ 多波形产生控制模块。④ 各种调制及扫描模块。1.2系统方案整个信号源系统主要由STM32微控制器、AD9958、输出驱动电路、滤波电路、外围显示电路和上位机配置软件等构成。系统框图如图3所示。上位机控制软件将需要配置(或读取)的参数以命令的方式发送到控制器,控制器解析命令后完成对芯片的配置或读取相应的参数回发到上位机。系统采用双通道DDS器件AD9958为频率发生器,该器件由两个DDS内核构成[1],频率、幅度、相位控制字位宽分别为32位、10位、14位,可满足高分辨率信号需求。每个通道可提供独立的频率、幅度和相位控制,具有卓越的通道隔离度(大于72 dB)。由于两个通道采用相同系统参考时钟,因此两个通道间具有内在的同步性,通过菊花链连接方式可实现图5直接输出频谱及时域波形多个器件间同步。AD9958另外一个突出的优点是低功耗,通过外部控制引脚(PWR_DWN_CTL)和内部可配置寄存器FR1[7:6]、CFR[7:6]实现多种低功耗工作模式。2 滤波器及AD9958输出电路设计2.1 LC椭圆低通滤波器的设计DDS数字式的结构特点也带来了输出杂散的问题[2]。杂散的来源有:① DAC输出非理想。② 参考时钟。③ 幅度量化误差。④ 相位截断。相位截断杂散以及与相位—幅度转换过程相关的杂散是DDS设计中的有限相位和幅度分辨率造成的结果,对于高性能DDS可以忽略,因而杂散的主要来源是DAC输出非理想和参考时钟。其中,DAC输出功率与量化噪声比可用下式计算:SQR=1.67+6.02B+20logFFS (dB) (2)式中,SQR为信噪比,B为DAC分辨率位宽,FFS为DAC输出满量程分数(常见值为1/2,1/4,1/8/,1/16)。在时钟为300 MHz,输出为80 MHz时,DAC采样输出幅度谱如图4所示。对AD9958器件模型进行仿真分析,在无输出滤波器条件下得到的仿真结果如图5所示。图中PPT表示相位截断杂散,DAC Images表示输出镜像频率造成的杂散,DH2、DH3分别是二、三次谐波引起杂散,可见杂散分量主要由镜像频率分量引起。杂散数据表如表1所列。表1 AD9958杂散数据从数据表中可知相位截断(PPT)杂散为(-70.017dBc),可以忽略。在DAC输出插入低通滤波器后,AD9958输出会明显改善,输出谱及波形如图6所示。根据AD9958性能参数,所需设计的低通滤波器指标如下[3]:类型:椭圆LC滤波器。通带截止频率:fc=200 MHz。通带纹波:ε=0.3。阻带及衰减:fs=230 MHz,50 dB。输入/输出匹配阻抗:100 Ω。最终设计出的滤波器结构参数及仿真结果如图7所示。2.2 信号源输出电路由于AD9958频率输出是一个电流型输出,等效模型为内阻为100 kΩ的电流源。DAC输出电流的满量程值由外部电阻RSET决定,计算公式如下:而需要设计的信号源是电压型输出并能提供一定的输出驱动能力,所以需要对ADC输出进行转换,并在滤波器后插入缓冲放大器。若采用中心抽头变压器进行电流电压变换,在低频时会造成插入损耗过大,故直接通过终端电阻来转换。输出驱动放大器采用高速放大器ADA4891。ADA4891是一款CMOS、高速、高性能、低成本放大器,具有单电源供电,输入电压范围可扩展至负电源轨300 mV以下,轨到轨输出级使输出摆幅可以达到各供电轨50 mV以内,以提供最大的动态范围,线性输出电流150 mA(-50 dBc时),-3 dB带宽为240 MHz,功耗仅为4.4 mA。最终设计的输出电路略——编者注。3 配置平台设计配置平台主要由控制器和上位机软件构建,二者之间通过配置接口实现命令数据交互,完成DDS的配置、控制,参数读取。控制器选用STM32F107,上位机软件以VC6.0为平台来设计[4],通过串口控件MSComm实现通信。STM32F107是以CortexM3为内核的一款32位处理器,采用该器件主要是基于以下几点原因:① 接口丰富,带USART、SPI(SCK时钟可达36 MHz,单线双线模式)。② 含内部FLASH,可以将配置数据保存,无需外加非易失存储器。③ 性能优异,功耗低。控制器软件流程图如图8所示。上位机软件提供一个良好的可视化界面,通过获取用户指定有效参数(无效则给出错误报告),完成下发命令、接收数据、处理下位机的回发报告等任务。设计的软件界面如图9所示。用户可通过界面完成一些常用的配置或直接对指定的AD9958寄存器进行读写,还可以将配置存入FLASH,以便控制器下次启动后可直接恢复输出。向AD9958内部地址0x04(CFTW0寄存器)写入0x01a80022配置的SPI帧格式(MSB first)如图10所示。结语实验结果表明信号源输出特性良好,具有集成度高、功耗低、配置灵活等优点。为了满足不同应用的需求,可调整滤波器参数或将滤波输出直接引出。由于采用了外设丰富的STM32控制器,系统具有良好的可扩展性。该信号源可应用于嵌入式仪表测量、相关弱信号检测等领域,也可作为激励源为电路调试带来极大方便。(mbbeetchina)

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

评论(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.lene-v.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:'STM32的双路信号源及其配置平台设计资料下载',//标题 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.lene-v.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);