32位元MCU平台间的转移 智能应用 影音
Microchip Q1
ST Microsite

32位元MCU平台间的转移

过去数年间,关于微控制器平台标准化的讨论不计其数,其目的是为了让不同MCU供应商产品间的转移更为容易,且在设计上无需做重大更动。然而,周边设备才是移转的真正核心,但所有讨论并未涉及周边设备的部分。

工程师在着手新设计之前会先审视功能需求,依此来决定采用什麽电路以及控制这些电路所需的MCU内建周边。例如,工业级的人机界面设备需要支持LCD、按键、触控式屏幕与机器的通信、LED以及喇叭?蜂鸣器等,这些功能都需要MCU上的某些周边,例如用于通信的CAN控制器、用于触控式屏幕的ADC以及用于蜂鸣器的PWM计时器。

周边具备的功能越多所需的外部电路就越少,在某些情况下,还能减少需要撰写的程序码量。举例来说,在目的相同的情况下,采用PWM驱动方式较使用特殊蜂鸣器模式来得简单许多。

核心很重要,但对于设计人员来说却是抽象的。核心必须满足两个基本条件:速度上是否能执行为建立最佳用户体验所需的软件功能,以及是否能有效率地执行所有任务。只要能满足基本条件,核心类型并不那麽重要。

当然,核心还与韧体?软件相关。旧有程序码是工程师必须考虑到的问题,例如,使用现成程序码能节省多少工作量。然而,这个问题与核心并没有直接相关,而是与周边有关。大多数32位元MCU程序码采用C语言编写,能重新编译至任何核心,然而,每家MCU制造商的周边特性和程序设计模型均专属于自家产品,这是程序码难以转移的主要原因。

为了让工程师使用起来更方便,MCU制造商会提供一个韧体程序库,包含设置和使用各种MCU内建周边的程序码。不同制造商操作周边的方式并不相同,甚至特性上也有所不同,将应用程序从一MCU转移至另一MCU并非简单的事。

ARM一直以来都在为简化应用程序的移转而努力,定义了Cortex微控机软件界面标准(CMSIS)的韧体抽象化层标准,采用Cortex-M系列核心的MCU生产商其韧体程序库均已采纳了此一标准。遗憾的是,这个标准仍不能克服迁移周边遇到的困难,也就是说程序码的移植没有捷径。

由于MCU制造商不愿简化其产品到其他供应商产品的可携性,只能由设计工程师来达成此一目标。透过实现一个抽象化层,由该层创建硬件(即MCU周边)和应用程序码之间的标准程序设计界面来实现。

可使用的方法有两种:方法一为开发一个仲介层或封套数据,进而实现MCU制造商周边程序库和您的程序码间的转换。这是最快速的解决方案,但会在命令和数据路径中添加较多程序码。方法二为定义一个标准的函数和变量命名机制,并将其应用于所有周边程序库。此种方法不必添加程序码却很费时,取决于周边设备用法的复杂度。

实现可携性是件大工程,在开发过程的一开始就必须列入考量。除了韧体?软件兼容性,还有接脚兼容的问题。MCU供应商的产品转移往往要重新布置PCB,而且还需要电容和稳压器等不同的外部元件。无论使用何种核心,在32位元MCU供应商的产品间转移均都极为困难,这一切取决于周边和相关的韧体程序库,而MCU制造商透过提供韧体程序库和应用说明来使设计过程尽可能地简单。

此外,他们也努力减少元件在系列间的迁移工作,却不愿意让转移到竞争对手的解决方案变得过于容易。如此一来,这便成为设计工程师要解决的问题,应该要在每一个专案开始前即评估成本和益处。

更多Microchip产品信息及解决方案请进一步参考「Microchip视频及资源中心」:http://www.digitimes.com.tw/seminar/20130331_microchip_website/index.asp
(本文由Microchip Technology Inc. MCU32产品部产品行销经理Erlendur Kristjansson提供,周维棻整理。)