五、嵌入式高手对技术的理解(含辛茹苦这么多年的精华体验)
有很多人认为:嵌入式系统性能的核心因素是软件功能,其实,如果按照这种逻辑,系统设计中存在的问题就应由软件人员来负责;其实这个观点实际上反映了设计嵌入式产品时如何考虑划分硬件和软件各自应实现的功能,也就是这个功能是软件实现,还是考虑用硬件来实现(硬件实现:需要购买处理该功能的硬件芯片,从而增加成本;软件实现:无需增加硬件成本,但会占用处理器以及内存的资源)。
例如:我们在这里设计的基于ARM的mp3嵌入式产品,我们可以使用专业的解码芯片来负责mp3音乐文件的解码和播放功能,也可以使用另一种方法来解码mp3语音文件,让ARM处理器利用软件控制寄存器来驱动耳机或音响,处理器通过对mp3语音文件解码之后再将解码后的数据流按照一定协议格式送给音频输出的硬件接口进行播放。
优点:这种方案在硬件方面节省了一个器件,降低了成本,并且该功能还方便调试(因为是软件实现的)。
缺点:从另一个角度来看,虽然节省了一块语音解码芯片,但同时要在三个方面增加成本。
首先,要在程序中增加语音协议解码的代码;
其次,可能要把增加ROM来存放语音解码的协议,这样可以增加速度;
最后,运行该程序将占用处理器的时间和资源。
其实,话又说回来,对于本案例来说,上述成本的节约并不会引发任何问题,包括驱动程序增加也只需少量的,我们讨论这个mp3产品的案例的目的在于说明如何对软件硬件的功能进行合理划分。
总的来说,交给软件实现的功能越多,则产品的成本就越低,当然这就要处理器必须有足够的处理速度和内存空间来实现设计指定的功能;常言说得好,天下没有免费的午餐;把功能分配给软件来实现,会增加软件的复杂性、开发时间、以及程序的调试时间;然而,随着处理器的处理能力的不断提高,可以预见,越来越多的功能将会由软件来实现。
虽然在软件中实现各种功能会增加开发成本,但如果把功能移植到硬件中实现,则会增加产品的成本,这类开销是在构造每个系统组件时不可避免的。在低成本设计方案中,增加任何额外的硬件都会对产品成本产生显著的影响,因此软硬件功能划分就是一个决定产品成本的大问题。在诸如大众消费产品这一类对成本非常敏感的设计方案中,一般都会把无法通过软件实现的功能排除在外的。
如何从零开始开发一款嵌入式产品(20年的嵌入式经验分享学习) (5)
内容版权声明:除非注明,否则皆为本站原创文章。