×

选择微控制器的10个简单步骤资料下载

消耗积分:2 | 格式:pdf | 大小:128.85KB | 2021-04-17

张强

分享资料个

选择适合某个产品使用的微处理器是一项艰巨的任务。不仅要考虑许多技术因素,而且要考虑可能影响到项目成败的成本和交货时间等商业问题。    在项目刚启动时,人们经常压抑不住马上动手的欲望,在系统细节出台之前就准备微控制器选型了。这当然不是个好主意。 在微控制器方面做任何决策时,硬件和软件工程师首先应设计出系统的高层结构、框图和流程图,只有到那时才有足够的信息开始对微控制器选型进行合理的决策。此时遵循以下10个简单步骤可确保做出正确的选择。    步骤1:制作一份要求的硬件接口清单 利用大致的硬件框图制作出一份微控制器需要支持的所有外部接口清单。有两种常见的接口类型需要列出来。第一种是通信接口。   系统中一般会使用到USB、I2C、SPI、UART等外设。如果应用要求USB或某种形式的以太网,还需要做一个专门的备注。这些接口对微控制器需要支持多大的程序空间有很大的影响。 第二种接口是数字输入和输出、模拟到数字输入、PWM等。这两种类型接口将决定微控制器需要提供的引脚数量。图1显示了常见的框图例子,并列出了对I/O的要求。 步骤2:检查软件架构 软件架构和要求将显著影响微控制器的选择。处理负担是轻是重将决定是使用80MHz的DSP还是8MHz的8051。就像硬件一样,记录下所有要求非常重要。 例如,是否有算法要求浮点运算?有高频控制环路或传感器吗?并估计每个任务需要运行的时间和频度。然后推算出需要多少数量级的处理能力。运算能力的大小是确定微控制器架构和频率的最关键要求之一。 步骤3:选择架构 利用步骤1和步骤2得到的信息,一个工程师应该能够开始确定所需的架构想法。8位架构可以支撑这个应用吗?需要用16位的架构吗?或者要求32位的ARM内核?在应用和要求的软件算法之间经常推敲这些问题将最终得出一个解决方案。 不要忘了还有未来的可能要求和功能扩展。只是因为目前8位微控制器可以胜任当前应用并不意味着你不应为未来功能扩展甚至易用性考虑16位微控制器。 记住,微控制器选型是一个反复的过程。你可能在这个步骤中选择了一个16位的器件,但在后面的步骤中发现32位ARM器件会更好。这个步骤只是让工程师有一个正确的考虑方向。 步骤4:确定内存需求 闪存(flash)和RAM是任何微控制器的两个非常关键的组件。确保程序空间或变量空间的充足无疑具有最高优先级。选择一个远多于足够容量的闪存和RAM通常是很容易做到的。    不要等到设计末尾时才发现你需要110%的空间或者有些功能需要削减,这可不是闹着玩的。实际上,你可以在开始时选择一个具有较大空间的器件,后面再转到同一芯片系统中空间更小些的器件。 借助软件架构和应用中包含的通信外设,工程师可以估计出该应用需要多大的闪存和RAM空间。不要忘了预留足够空间给扩展功能和新的版本!这将解决未来可能遇到的许多头疼问题。   步骤5:开始寻找微控制器   既然对微控制器所需功能有了更好的想法,现在就可以开始寻找合适的微控制器了!像艾睿、安富利、富昌电子等微控制器供应商是寻找微控制器的一个很好的起点场所。 与这些供应商的现场应用工程师讨论你的应用和要求,通常他们会向你推荐一款技术领先又能满足要求的新器件。不过要记住,他们可能有推销某个系列微控制器的冲动! 第二个最佳场所是你已经熟悉的芯片供应商。例如,如果你过去用过Microchip的器件,并有丰富的使用经验,那就开启他们的网站吧。 大多数芯片供应商都有一个搜索引擎,允许输入你的外设组合、I/O和功耗要求,搜索引擎会逐渐缩小器件范围,最终找出匹配要求的器件清单来。工程师随即可以在这个清单中仔细选择出最合适的一款微控制器。  步骤6:检查价格和功耗约束   到这时,选型过程应该得出许多潜在的候选器件了。这时应认真检查它们的功耗要求和价格。如果器件需要从电池和移动设备供电,那么确保器件低功耗绝对是优先考虑的因素。 如果不能满足功耗要求,那就按清单逐一向下排查,直到你选出一些合适的来。同时不要忘了检查处理器的单价。虽然许多器件在大批量采购时会接近1美元,但如果它是极其专用或高端的处理机,那么价格可能很重要。千万不要忘了这一关键要素。 步骤7:检查器件的可用性   至此你手头就有了一份潜在器件清单,接下来需要开始检查各个器件的可用程度如何。一些重要事项需要记住,比如器件的交货期是多少?是否在多个分销商那里都有备货,或者需要6至12周的交货时间?你对可用性有什么要求?你不希望拿到一份大定单却必须干等3个月才能拿到货吧。   接下来的问题是器件有多新,是否能够满足你的产品生命周期需要。如果你的产品生命周期是10年,那么你需要找到一种制造商保证在10年后仍在生产的器件。 步骤8:选择开发套件 选择一种新的微控制器的一个重要步骤是找到一款配套的开发套件,并学习控制器的内部工作原理。一旦工程师热衷于某种器件,他们应寻找有什么可用的开发套件。 如果找不到能用的开发套件,那么这种器件很可能不是一个好选择,工程师应该重新退回去寻找一款更好的器件。目前大多数开发套件不到100美元。支付比这个价格高的费用(除非这种套件能适应多种处理器模块)实在有些冤枉。换一种器件也许是更好的选择。 步骤9:调查编译器和工具 开发套件的选择基本上限制死了微控制器的选型。最后一个需要考虑的因素是检查可用的编译器和工具。大多数微控制器在编译器、例程代码和调试工具方面有许多选择。 重要的是确保所有必要的工具都可用于这种器件。如果没有得心应手的工具,开发过程将变得异常艰苦且代价高昂。  步骤10:开始试验 即使选定了微控制器,事情也不是说一成不变了。通常拿到开发套件的时间远早于第一个硬件原型建立的时间。要充分利用开发套件搭建测试电路、并将它们连接到微控制器。 选择高风险的器件,设法让它们与开发套件一起工作。随后你可能会发现,你认为能很好工作的器件存在一些不可预见的问题,然后被迫选择另外一种微控制器。 在任何情况下,早期的试验将确保你做出正确的选择,如果有必要做出改变,影响将降至最小! 来源:网络 (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:'选择微控制器的10个简单步骤资料下载',//标题 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);