根据最终目标的不同,对问题的答案也有所不同。如果您只需要少量或更少的设备,则应使开发更容易,而不必担心零件成本。如果您要制造成千上万个,则有必要分析您的需求并降低设备硬件成本。
少量
如果您一次或少量使用这些设备,那么您的开发工作将淹没您的单项成本,而您应该关注的是最容易/最快的开发方式,而不是成本/微电子的大小。
通常,封装可以降低复杂性,从而提高生产率。如果您有一些严格的实时要求,例如BLDC控制,PID循环等,则可能会发现使用单独的控制器更快,专门用于那些与控制器通信的任务,在这些任务中您需要保留用户界面和其他非实时控制器。时间任务。
因此,在这种情况下,您的问题的答案是:
在必须执行大量多任务处理时,多合一方法是一个好主意吗?或者细分和隔离更好,并且
该天平略微趋向于分段和隔离。主要原因是调试实时系统会非常耗时,并且将此类任务保留在自己的处理器上会限制您在尝试查找无法正常运行的原因时必须测量或控制的变量。
如何根据任务列表直观地确定正在查看的微控制器是否具有足够的计算能力来执行所需的工作?
在这种情况下,具有大量资源的32位处理器与具有有限资源的8位处理器之间的成本差异相对于您要花在开发上的时间而言是很小的。几乎没有理由试图弄清楚您需要多少电量-只要获得您认为可以开发和使用的最大处理器即可。如果以后需要对设计进行成本优化,则测量实际处理器资源使用量相对容易,然后选择可以处理实际负载的出租处理器。在此之前,请使用最大的显示器,而不必担心找到“最佳选择”。
大量生产
如果您打算制造许多这样的设备,那么仔细的分析将节省大量成本。一般而言,一个较大的微控制器的成本低于能够取代单个微控制器的两个微控制器,尽管根据所需的特定任务当然会有例外。在这样的数量下,硬件的成本可能会比开发成本高得多,因此,与只进行少量生产相比,您应该期望花费更多的时间分析需求和执行开发。
当必须执行大量的多任务处理时,采用多合一的方法是一个好主意吗?还是进行细分和隔离比较好?
在整个项目的整个生命周期中,多合一方法通常比多个处理器便宜。要确保各种任务不会冲突,将需要更多的开发和调试时间,但是严格的软件设计将限制该功能几乎与使用单独的硬件一样多。
如何根据任务列表直观地确定正在查看的微控制器是否具有足够的计算能力来执行所需的工作?
您将需要了解要执行的任务以及它们占用了多少资源。假设满足以下条件:
您的BLDC PI例程每秒将消耗X个周期的处理器时间100次,每个例程需要约50字节的RAM进行操作,需要16字节的EEPROM进行调整,并需要1k闪存进行代码处理。他们每个人在微控制器中都需要3个16位PWM外设。您可能需要指定抖动,这将有特定的中断等待时间要求。
您的USB和串行例程将按需消耗Y个处理器时间周期,2k RAM,64字节EEPROM和8k闪存。需要USB和串行外围设备。
您的GUI将每秒消耗Z个周期的处理器功率30次,并且需要2k RAM,128字节EEPROM和10k闪存。它将使用19个I / O与LCD,按钮,旋钮等进行通信。
刚开始时,可能很难理解X,Y,Z的实际含义,这将根据处理器的体系结构而有所变化。但是,您应该能够在合理的范围内了解设计需要多少ram,eeprom和flash,以及需要哪些外围设备。您可以选择一个满足您的内存和外围设备要求并在该系列中具有多种性能选项的处理器系列。到那时,对于开发而言,您只需使用该系列中功能最强大的处理器即可。一旦实现了设计,就可以轻松地在功耗方面降低家族产品的成本,而无需更改设计或开发环境。
在完成足够多的这些设计之后,您将能够更好地估计X,Y和Z。您会知道,BLDC PI例程虽然经常运行,但却很小,并且需要很少的周期。USB和串行例程需要很多周期,但是很少发生。用户界面经常需要几个周期来查找更改,但是例如,不经常需要很多周期来更新显示。