×

基于FPGA的电机智能驱动控制系统设计资料下载

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

479809

分享资料个

  智能驱动器以及许多汽车和 ISM 厂商正面临着满足新的市场需求和不断发展的标准要求所带来的重重挑战。在现代工业和汽车应用中,电机必须具有高效、低噪声、速度范围宽、可靠性高、成本合理等特性。在当今工厂里,电机驱动型设备占总耗电量的三分之二,因此开发能效更高的系统势在必行。由于在许多情况下驱动器只是大规模工艺的一个组件,因此互操作性也是一项关键的设计要求。而影响这种要求的关键因素是工业的宽度(即现场总线)和相关器件特性,因为它们用来标准化驱动器在网络中的表达。现场总线(比如 CAN 和 Profibus)自身千差万别,虽然都属于现场总线,但是实际上并不具有互换性。为了降低成本和改善器之间的通信,现场总线提供商已经开发出了基于以太网的工业网络解决方案和数种新的协议,比如 EtherCAT 和 Profinet 等。除此之外,EtherNET I/P 也在近年来开始大行其道。不过,这些都是自成体系的技术,迫使制造商不得不支持所有的提供商。   赛灵思设计服务部 (XDS) 已经为 ISM 领域的一家主要厂商开发出了一款基于 FPGA、支持CANopen 和 EtherCAT 接口的电机控制平台原型来解决这些问题。赛灵思设计服务部的工作是设计并实现一个功能齐备的模块化系统,以便在客户的新一代智能驱动器中重用。通过在模块化系统架构中集成赛灵思 Spartan-6 FPGA SP605 评估套件基础目标设计平台以及第三方 IP 核,提供先进的电机控制算法和工业网络支持,实现了一款高效、可扩展的设计方案。     1 选择 FPGA 的原因     客户现有的基于的解决方案不能提供客户最迫切需要的:一种可扩展平台。基于Spartan-6 FPGA 的智能驱动控制系统在单芯片上集成了所有必要的可扩展性、逻辑和计算功能,在降低成本的同时还能避免过时。该平台可以进行多年的升级,以满足最新工业网络标准的要求并使用最高效的电机控制算法。此外,由于 FPGA 的可重编程特性,因此可以根据客户的特定要求对单个基础电机控制系统进行定制,从而轻松地与现有工业网络集成。简言之,Spartan-6 FPGA 能够满足工业领域所有的严格要求。   赛灵思目标设计平台提供了一套开箱即用的高健硕性、高集成度、业经测试的元件,对就像我们的客户这样的 FPGA 系统设计新手来说,是一个理想的起点。您可以通过向基础平台添加领域专用和市场专用平台解决方案,让最终设计在更大程度上实现自动化。这些目标参考设计演示了真实世界 FPGA 实现的构想,让客户集成精力进行最终产品差异化特性的设计与开发,从而缩短学习时间。   我们的解决方案完美组合了 Spartan-6 SP605评估套件和第三方解决方案,其中包括 QdeSys 公司提供的 NetMot FMC 板,以及德国博世公司 (Bosch) 和倍福公司 (Beckhoff) 提供的工业网络 IP 核。这样不仅目标系统所有的基础构建块一开始就可以到位,而且我们无需定制FPGA 开发板就可以进行原型开发,从而让客户以最低的成本验证该新平台的可行性。为了进一步加快产品上市进程,减少初次 FPGA 系统设计的风险,客户要求我们不仅要交付原型,还要为在其新一代智能驱动器中使用 FPGA 提供支持。   最终,客户的工程师和管理人员都从该方案受益匪浅。工程师在赛灵思设计服务部精选的最佳实践方式的基础上,更快地掌握了基于 FPGA 的设计,而管理人员则缩短了产品交付时间,并降低了业务风险。     2 智能驱动控制系统原型     赛灵思设计服务部的产品组合覆盖了整个 FPGA 设计开发周期,从规范创建到编码、验证、时序收敛和系统集成。集多年嵌入式处理器系统和软件应用设计经验之大成,加上集成第三方 IP 核的能力、优秀的项目管理实践和全面认证的 ISO9001 开发流程,赛灵思设计服务部能够在客户的产品开发周期早期交付智能驱动控制系统原型。在此基础上开发出的定制目标设计平台能够让客户的工程师熟知 FPGA 设计流程,在新一代产品中优化该技术的功能。   该智能驱动控制系统原型的主要组件的详细情况,请参看图 1。       控制器 (PLC) 负责运行智能驱动器,实时连接至工业网络。为实现该原型,我们使用两个基于 PC 的 PLC 来处理该系统支持的两个工业网络标准:用于控制器区域网络的 miControl mPLC 和用于 EtherCAT 工业以太网现场总线系统的 TwinCAT。PLC 负责生成预定义的命令信息(例如启动和停止),通过分析收到的响应(当前速度、温度、电压等)验证电机的运行是否正常。   根据 PLC 的组合以及智能驱动器的类型(CAN 或 EtherCAT),工业网络或为串行总线,或为标准的100Mb 以太网接口。对这两种解决方案,该原型在 PLC 和电机之间均使用直接连接,或为用于 CAN 的双线串行接口,或为用于 EtherCAT 的标准 RJ45 100Base-TX 以太网连接。   电机控制 PCB 板一般是智能驱动器中众多 PCB 板之一,专门用于根据来自 PLC 的命令对电机进行控制。该电机控制 PCB 板可以让 FPGA 充分发挥其灵活性。与常规 ASIC/方案中采用的单接口、单电机控制算法解决方案不同,Spartan-6 FPGA 可以用专用网络和电机控制 IP 模块和控制软件重新编程,以满足客户的特定需要。采用这种方式,一块 FPGA PCB 板就可以实现多块 ASIC 板才能实现的功能。同时,它还提供了可以根据最新标准更新 IP核的机制,实现面向未来的智能驱动器。   该电机控制板的设计无需从头开始,赛灵思设计服务部采用目标设计平台概念,通过把赛灵思 Spartan-6 SP605 评估套件、NetMot FMC 板和工业网络和电机控制 IP 核结合在一起,集成了客户想要的所有元件,这样在客户完成新 PCB 板之前就交付了这款概念验证原型。图2 显示了如何把各个组件结合在一起,实现原型开发平台。最终,客户的集成工作大为简化,无需对最终设计进行重新工程设计,就能够探求最佳的设计选择。     图2:基于 Spartan-6 FPGA 的电机控制板原型     图2 中文字:     SP605 基础目标设计平台是一种通用 FPGA 平台,在业经验证的设计实现中集成了一个 Spartan-6 LX45T 和许多常用外设,比如 DDR3 RAM、程序/比特流存储用闪存、调试用 UART 以及 FPGA 编程用 JTAG。SP605 及所有最新赛灵思开发板的另一个关键元件是 FPGA 夹层卡 (FMC) 接插件,它可以让设计人员使用定制的功能和接口扩展基础开发板。   SP605 的这种特性使我们能够使用 QDeSys NetMot FMC(www.qdesys.com)的功能来扩展这个基本平台。QDeSys NetMot FMC 具有电机控制所需要的电力电子元件,比如电压逆变器,以及用于采集传感器数据的模数转换器 (ADC)。可以把电机直接与图 2 所示的输入/输出端相连。NetMot FMC 还通过添加两个 CAN 接口和两个以太网物理层接口,扩展了 SP605 的工业网络连接功能。它们通过 FMC 接插件和 PLC,通过标准接口访问FPGA。   测试用 PC 机一方面用作 PLC 软件的主机,另一方面通过 UART 和 JTAG 接口,用作 FPGA编程/调试平台。此外,我们还在这台测试用 PC 机上用赛灵思 ISE?12.1 设计套件为 SP605的 LX45T PFGA 开发 MicroBlazeTM 嵌入式处理器系统。该嵌入式系统负责处理来自 PLC 的命令并相应地对电机进行控制。   图 2 所示的 MicroBlaze 软件应用、网络和电机控制 IP 模块代表随接口(EtherCAT 或 CATopne)和选择的电机类型会发生变化的设计模块。赛灵思设计服务部面临的主要挑战之一是要确保这些选项之间的切换尽量简化,从而保证客户能够在将来把相同的方法重复用于诸如 Profinet 更先进的工业网络类型以及新型电机中。     3 实现细则     让我们来详细查看 Spartan-6 嵌入式系统的各个组成部分。如图 3 所示,我们使用的电机控制 IP 模块——赛灵思电机控制库 (XMCLIB) 在两个设计版本中是完全相同的。这个定制 IP 核可以直接插在赛灵思套件 (SDK) 上,让 FPGA 控制 NetMot FMC 的电机电力电子系统。这样我们就可以把 IP 核添加到 Xilinx Platform Studio (XPS) 项目的中,并对其进行配置,使之适用于通过 FMC 接插件连接到 FPGA 的电机。XMCLIB 软件驱动程序是一套底层功能,使电机控制应用能够访问 XMCLIB 寄存器接口。     图3:CAN/EtherCAT 嵌入式系统  

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

评论(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:'基于FPGA的电机智能驱动控制系统设计资料下载',//标题 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);