老兵传奇-8bit MCU和EFM8BB1LCK开发板评测
老兵传奇-8bit MCU和EFM8BB1LCK开发板评测板子图 板子前视图拿到这个板子, 可以说没有什么惊奇.这个板子从外观还是功能讲, 在笔者最近用过的板子中可以说非常普通. 不过评价一个板子并不能仅仅从外貌出发吧, 借着这次评测机会, 想跟大家聊聊嵌入式处理器的一些个人看法.近年来,随着工艺与IP的逐渐成熟, 32bit的MCU增长迅速, 风头之劲乃至于16bit的MCU基本上被跳过了. 现在说嵌入式MCU, 要么就是8bit, 要么就是32bit, 16bit的MCU产品型号屈指可数:1. Intel公司曾经想在8051上逐渐升级的80251, 现在市场上基本见不到踪影. 细心的程序员可能还会注意到Keil现在还有C251的开发工具出售. 某些过时的大学教材中也有过80251的痕迹. 但是至少在中国市场上, 80251没有存在感.2. TI的MSP430, 主打低功耗, 随着其他厂商也在低功耗上下功夫, MSP430的低功耗特性也不再是独门绝技.在市场上的份额也是逐渐萎缩.3. 还是TI的一些16bit的DSP, 主要是定点DSP. 在电机控制领域还有一些份额. 主要是厂商在垂直领域做了很多优化.从产品本身来讲, 这种非主流的DSP必要性也在慢慢降低.4. Microchip的dsp24系列, 跟TI的16bit定点DSP情形相似.5. 英飞凌的C166系列, 主打汽车市场. 也是着重于存量市场.6. 凌阳的一个16bit系列, 主打简单语音处理应用. 上大学我还学过一阵子, 但是现在连型号也不记得了.当然还有一些专攻垂直领域的产品, 这里不多说了.可以看出的是16bit的MCU并没有像人们曾经想象的那样, 替代8bit的市场份额, 在市场上唱主角若干年后再被32bit的MCU取代. 现代嵌入式处理器市场的现实是: 简单的任务还是基本上使用8bit的内核, 有一定复杂性的应用就会使用32bit的MCU. 16bit的MCU处理能力不及32bit, 成本功耗上不及8bit, 所以市场份额一直没有起来.那么8bit的MCU的情形又如何, 很多嵌入式工程师都有一些误解. 下面来简单分析下.关于8 bit的误解8位处理器正在被淘汰这是最常见的误解, 先说事实: 根据最新的Gartner的市场报告. 8bit的市场营收额和增长额跟32bit的相比都仅仅差几个百分点. 考虑到8bit的单个芯片比32bit芯片要便宜很多的事实, 8bit的出货量其实远高于32bit的.打个直观的比方, 现在我们有了高铁, 是不是所有传统的普快,特快火车都要立即淘汰呢. 显然事实并非如此, 至于原因就太多了.现实情况就是8bit的MCU曾经的应用领域并不能立即用32bit的MCU直接替代.8位处理器缺乏创新不少人会认为既然现在市场的宠儿是32bit的MCU, 厂商们是不是都没有投入研发资源在8bit产品上了. 这么想的人可能一想到8bit的MCU, 脑海中会浮现40DIP的”经典8051”的形象.事实上芯片厂商们并没有停止创新, Silicon labs这样的厂商同时有32bit与8bit的产品. 但是在8bit产品线上的创新一直没有停止. 比如CIP-51内核因为采用了一个时钟周期等同于一个指令周期的设计, 瞬间将同频率的8051性能提高了12倍. 国内的一些半导体厂商也有基于8051或其他8bit内核的创新.8位处理器难以使用C/C++语言编程如果你了解Arduino的设计原理, 这个误解就不攻自破. 当然坦白讲, 8bit的MCU使用高级语言编程确实比32bit的MCU要困难些. 主要障碍就是内存地址的不统一. 比如8051内核的内存地址就分为CODE, data, sfr, idata, xdata. 如果涉及到banking就更复杂了. 8bit的PIC还有硬件Stack这样更加”非主流”的设计. 但是这些障碍都可以通过工具的优化来缓解.8位处理器专为简单应用而生这个观点倒是有几分真实, 但是嵌入式应用本身就是简单应用居多. 嵌入式系统应用的本身特点决定了8bit依然有很多用武之地. 外设, 编译器的进化将慢慢拓展8bit处理器的应用范畴.8位处理器不能胜任IoT应用需求IoT应用不是一个单独的应用, 而是一个复合应用. 智能手表, 智能音箱, 主控制器, 网关这种当然需要复杂的处理器来实现. 但是IoT应用还包含大量的传感器节点, 执行节点, 转换节点. 这种节点用低功耗的8bit处理器来实现更加适合.8位处理器响应慢这个就是完全的误解了, 典型的嵌入式应用中, 响应速度主要跟中断响应和唤醒延迟相关. 8bit处理器有天然的优势(地址转换工作量小, IP单元实现门数少). 至少不输于32bit的处理器.8位处理器的能效低于32位处理器曾经看过ARM公司的权威工程师写的一本书, 书中观点是32bit处理器的能效比高于8bit的MCU. 理由是32bit处理器能快速处理完任务, 休眠时间的比例更大. 但是这个结论包含一个假设, 就是任务有一定复杂度, 如果任务本身非常简单, 唤醒过程的功耗也很大, 那么这个假设不成立. 针对不同应用场景, 不能简单说8bit, 32bit哪个能效比更高. 至少非常简单的应用中, 8bit的能效比要高. 如果再加上单独响应,无需CPU干预的一些任务, 8bit的能效比甚至能高出很多.相同价格的32位处理器功能远强于8位处理器这个也有一定程度的可信度. 但是不要忘记有相当大的一部分的应用, 使用8bit的MCU就足够的情况下, 非要购买平均价格高一点的32bit MCU, 成本是会上升的. 很多基本上标准化了的嵌入式产品有很大的量, 就会发现8bit的成本优势还是会高一点的.8位处理器设计的应用不能适应未来变化这是个思维角度问题, 作为嵌入式程序员, 更应该是考虑当前的任务. 不管是什么类型的MCU, 如果产品形态变化了或者需求本身变化了,就要重新设计. 未来谁都看不清, 何必考虑那么多没有实际意义的前瞻.8位处理器开发工作更繁重32bit处理器的处理更加以软件中心, 可以做更多的代码复用. 8bit处理器更多地利用硬件外设来完成任务. 综合而言, 没有绝对的差别.8位处理器没有升级路径只要是嵌入式处理器, 升级路径都不大明确. 如果你采用既有8bit, 又有32bit的产品的厂家, 你会发现很多外设都很相似. 考虑到现在图形化配置外设的趋势, 升级路径逐渐变得不那么重要, 反正都是图形化或者脚本化来生成基础驱动代码.EFM8BB1芯片图 芯片功能框图图 芯片结构框图芯片亮点:1. 内核是8051世界中的明星:CIP-51. EFM8BB系列中这个内核最高25MHz,相当于经典8051跑在300MHz. 使用内部时钟可以跑在24.5MHz, 相当于经典8051跑在294MHz.2. 内部低速时钟,80KHz与24.5MHz的内部高速时钟互为补充, 方便低功耗设计.3. 16-bit CRC硬件计算单元4. AEC-Q100认证, 套用一句广告语:“不是所有的MCU都能过AEC-Q100认证”. 通过这个认证表示可以使用在汽车级别的恶劣环境.5. 其余特点不用单独拿出来讲, 但是很多人会忽视的一个亮点就是Silicon Labs的图形配置开发工具界面, 能大大节省开发时间.软件开发-Simplicity Studio+图形化配置关于图形化配置式开发顾名思义, 所谓的图形化配置就是通过GUI方式来配置外设, 生成代码. 这一点很重要, 因为现代MCU的外设越来越多, 越来越复杂, 涉及到的初始化配置非常繁琐, 容易出错, 已经不适合工程师慢慢查阅动辄几百,几千页的参考手册来手动书写寄存器读写代码. 除了外设配置之外, 还有IO分配, 纯软件组件的配置,时钟树的配置, 这些重复机械的工作以前都是工程师手工完成的. 目前市场上领先的MCU厂家都有自己的图形化配置工具, 可以说图形化配置工具+优化过的编译链接工具链+图形化的调试工具是现代嵌入式开发的必不可少的三项标配. 笔者印象中,Silicon Labs公司是最早推出图形化配置工具的MCU厂家之一. 当然最初的工具只能配置Cross Bar, 解决IO口分配问题. 经过多年进化, Simplicity Studio内置的配置工具现在已经非常完善了, 很多功能笔者现在也还没有用到过. 下面以一个例子来演示一下子图形化配置的效率.从头到尾创建一个工程Simplicity Studio的下载安装这里不赘述了, 后文有参考连接.第一步, 新建工程, 注意选择Silicon Labs MCU Project, 相当于是一个模版:.....阅读完整内容:http://www.21ic.com/evm/evaluate/MCU/201910/919643.htm#
马克 分析不错。 21IC有你更精彩,讲的好,好样的。
关于8位、32位MCU的相对优缺点讲的很好、很客观,,感谢分享 曾记得Silicon Labs 的MCU安全性不好,航模电调上面很多用C8051F330,据说一两千块钱就能读出CODE.不知道现在改进了没有。 现在新唐出来的芯片,好像安全性有了改善 谢谢分享【老兵传奇-8bit MCU和EFM8BB1LCK开发板评测 】
页:
[1]