在现在的单片机中,有8位单片机、16位单片机、32位单片机,数据总线宽度除了在执行计算和更快的数据传输方面具有更高的性能优势外,总线宽度更大的MCU还具有哪些优势?
数据总线宽度更大的MCU在更快的操作,通常更强大的开发工具,更多的功能以及更好的电源效率方面享有更高的性能。通常,较低的总线宽度会限制性能。在本文中,请考虑下面的所有讨论,以包括8位和32位之间的16位。但是,16位将在性能优势、编程、调试、成本、人工等方面,逐渐向32位倾斜。
随着总线宽度的减小,周期数会增加:较低的位宽度需要更多的周期才能完成更大的计算。与具有16位数据总线宽度的MCU相比,8位MCU完成大型计算所花费的周期更多。使用32位MCU可以进一步减少计算周期。除了加快计算速度和提高数据吞吐量外,32位MCU还可以在一个周期内处理操作,而8位MCU则需要许多周期才能完成。如果在传输过程中出现中断或故障,则与需要在一个周期内完成同一任务的32位MCU相比,8位MCU更有可能无法完成任务(需要几个周期)。如果计算速度和吞吐量很重要,则32位对于吞吐量更好。示例包括计算密集型应用程序,例如图像处理。
成本:8位MCU仍然很普遍,在某些应用中,就芯片成本而言,这是最便宜的计算选择。但是,32位MCU芯片可以和某些8位MCU芯片一样便宜。当要节省百分之一的钱很重要时(例如在大批量产品中),将根据最便宜的芯片满足的最低项目要求(无论位宽如何)做出决定。添加更多功能可能不是面向未来产品的考虑因素。关于技能,一旦工程师掌握了32位单片机的学习曲线,该值将扩展到更广泛的应用范围。8位MCU的范围相对于32位MCU受到很大限制。使用32位MCU的人工成本可能也更低,因为更多的选择,功能,工具,并且现有的大量代码围绕32位生态系统开发。尖端技术不再围绕8位发展。
代码大小:宽度越大,代码越密。代码大小减少30%是对32位代码所提供的代码优于8位代码所带来的好处的粗略估计。当然,用32位编程在汇编代码中要比8位编程更具挑战性,但是现代开发工具使工程师能够使用C/C++(一种通常可跨体系结构移植的语言)以及跨体系结构使用类似的工具链和IDE的方法。但是,对于需要花时间思考操作效率的工程师而言,可以使用汇编代码对8位MCU进行更有效的编码。
更多功能:更高的数据总线宽度架构可以利用更多功能。使用32位单片机时,功能的缩放比例可能会显着增加,而随着位宽的增加,外围设备的集成速度会大大提高。使用DMA完全跳过CPU的32位单片机更容易获得实时性能。
但是,与32位MCU相比,有更多的8位MCU供选择。造成这种情况的部分原因是,与16位和32位体系结构相比,8位体系结构存在的时间更长。
选择许多8位MCU的主要原因是,每个MCU的成本,对旧代码的重用以及对8位架构的个人熟悉程度。8位MCU可以以最低的要求完成工作,但是使用8位MCU开发产品所需的技能却有所不同,尤其是在最低编程级别(汇编代码)下工作时。汇编代码可以被比一个编译器可以从高级编程产生在C/C++,例如更有效地写入。如果时间很紧迫,那么与使用8位MCU相比,在开发工具上使用32位架构所需要的精力和技巧就更少。
有些人只是更喜欢使用8位MCU进行“bit-bang”的简单功能,这种功能更加透明,因为其遵循操作的复杂性更低,尤其是对于较低级别的调试而言。那些喜欢8位MCU的人可能会喜欢这样的事实,即他们对8位MCU拥有更多的控制权,这更加透明,因为它可以更轻松地跟踪最低级别的事件。但是使用8位MCU可能还需要更多的时间来了解MCU操作和内存管理知识。就可以在32位中创建的动作的复杂性与32位的更抽象的编程层之间的权衡而言,这是一个权衡取舍的问题。
选择8位、16位和32位单片机的决定取决于应用程序的要求,比如MCU开发的最终成本和开发周期等等。许多开发人员都是8位MCU的忠实拥护者,可以用它们做很多事情。如果是大批量产品,将倾向于使用成本最低的单片机。最后,选择取决于性价比。作为个人发展的决定,熟悉两者都是明智的。8位级别的MCU核心操作的可视性提供了一种教育经验,而这些经验通常被32位抽象层所隐藏。
以上就是英锐恩单片机开发工程师分享的英锐恩8脚单片机。英锐恩专注单片机应用方案设计与开发,提供8位单片机、16位单片机、32位单片机、运放芯片和模拟开关。