编程和可配置工具开始决定微控制器的选择
扫描二维码
随时随地手机看文章
今天半导体工艺几何尺寸的不断减小正在改变微控制器的经济学。新的嵌入式设计开发工具成本快速增长,但微控制器上的数字逻辑线路成本正不断下降。这使得提供具有更多外围的微控制器更具经济性,尤其是如果这些外围属于数字类电路、uart、can控制器和以太网mac等。目前市场上带有更复杂外围的微控制器正不断出现。如果我们将闪存和ram也看作是外围,那么今天许多微控制器的结构中90%以上的部分都是外围。 这里以目前销售的8051和许多衍生器件为例进行说明。10年前,8051几乎要被弃用,但是现在有许多新产品还在采用8051内核,为提高性能,其外围的数量和种类都有了显着增加。许多熟悉8051的工程师都在关注这些新产品。他们认为自己了解8051内核,所以采用基于8051的器件比采用基于其它内核的器件会更简单。但仅仅熟悉微控制器内核就足够了吗? 用c编译器编写控制器软件 在回答这个问题之前,先了解一下新微控制器发展的过程。大多数微控制器制造商都有许多不同的变种产品,某个厂商甚至拥有500多个不同的变种。这些变种对于设计者为特定应用充分选择外围提供了条件。 图1:cyanide集成开发环境。(点击看大图)一种更好的方式就是选择已经具备很多项目所需的所有外围和灵活输入输出排列的微控制器。因此,用户可以选择和配置每个项目要求的具体外围组合,显著降低了pcb重新设计所需的工作量。选择这类微控制器可以使硬件修改更加容易。这可使用户更加灵活地选取恰当的外围组合来满足设计要求。 此外,工程师通过降低不同零部件购买和库存的数量,将获得公司内的物料供应人员认同,因为在过去很长的一段时间内,我们看到制造商都以能提供各种各样的微控制器为荣,实际上,这对于客户和制造商本身来说都无异于一场物流供应方面的噩梦。事实上,供货商应更好地利用不断降低的硅成本制造更少变种、但功能更强大的微控制器。 大多数工程师会争辩说软件功能是他们不能放弃现有微控制器系列的原因之一,所以我们来谈谈软件问题。 考虑一款新的微控制器时,需要解决2个主要软件问题:1. 编写完全运行在内核中的算法,包括数学算法(如滤波算法)或主循环;2. 外围初始化和接口的软件。 首先来谈谈在微控制器内核中运行的软件。过去几年里,c编译器的使用不断普遍,并且效率也有所提高。这意味着,c编译器可节省的编程工作比所有应用程序中性能损失的程度更重要。仍有一些与时间精确性相关的软件功能需要用汇编程序编写,但是这些程序也可能打包在c编译器编写的主程序中。 除了编译器的效率外,微控制器总体性能也有了明显的提高。许多工程师都利用比以前性能强10倍的现代控制器并转变成用c编译器编写软件,而设计出的产品比前几代产品运行起来要快得多。 采用c编译器的另外一个驱动因素就是许多产品普遍都需要增加代码数量。在汇编程序中编写8k代码可能相当于100张a4纸的软件。编写和维护这种数量的代码需要耗费大量的工作量。一旦你开始着眼于需要32k或64k代码的应用程序,那么使用编译器自然而然就成了99%应用程序的唯一实际选择。 如果我们决定下一个要开发项目使用c编译器,那么就可以做出一个大胆得结论。包括c语言在内的高级语言可以使工程师避开微控制器内核的繁杂工作。如果我们编写: counter=counter+1; (or counter++;), 我们可以意识到其实我们不必在乎它在应用程序中究竟如何执行。这就是编译器的主要目的所在,所以也就不足为怪。只要变量counter增加,我们并不需要知道是否使用累加器或寄存器架构获得结果。 应对复杂外围电路编程挑战 现在来讨论外围电路编程的问题。在市场上许多新款微控制器中,外围数量迅速增长。越来越多的芯片面积都被外围电路占用,它们的复杂性和功率似乎也在不断增加。今天市场上的一些8051微控制器拥有300~400页的数据手册。其中,你会发现只有25页内容是介绍内核工作原理的,剩下的都是关于外围的,从复位控制器、复杂的adc到更复杂的通信控制器(如can、usb、以太网)。 这让我们得出一个结论,涉及外围的软件比完全在内核中运行的软件要花费更多得多的工作量。 进一步说就是,专门针对外围的datasheet越多,对熟悉这种控制器内核来说就越无益。 图2:赛恩的16位微控制器μcog1m集成了密集的外围电路作为面对复杂外围的工程师,为了避免淹没在那些外围实现所有预期用途的繁重任务时,你会怎样做呢?有些微控制器制造商提供能够生成源代码的工具