《stm32嵌入式系统开发实战指南》一1.4 微控制器选型-阿里云开发者社区

开发者社区> 华章出版社> 正文

《stm32嵌入式系统开发实战指南》一1.4 微控制器选型

简介: 本节书摘来自华章出版社《stm32嵌入式系统开发实战指南》一书中的第1章,第1.4节,作者 李志明 檀永 徐石明,更多章节内容可以访问云栖社区“华章计算机”公众号查看

1.4 微控制器选型

在项目的最初阶段,首先需要解决的问题是选择适合工程需要的微控制器。通常,选择一款适合工程需求的微控制器,不仅需要考虑成本、主频、硬件接口,还需要考虑是否运行操作系统、配套的开发工具、仿真器,以及工程师对微控制器的经验和软件支持情况等。微控制器选型是否得当对项目开发的进度至关重要,甚至关系项目的成败。

1.4.1 选型因素

(1) 价格及供货保证
芯片的价格和供货是必须考虑的因素。由于许多芯片目前处于试用阶段,其价格和供货处于不稳定状态,所以选型时尽量选择有量产的芯片。
(2) 主频(核心频率)
芯片的主频很大程度上决定了系统的实时性能,选择合适的主频既能保证产品的实时性能,又能将系统硬件成本控制在合理的范围。
(3) 硬件接口
硬件接口通常包括片内外设和可扩展外设接口。芯片的片内外设越接近产品的需求,产品开发相对就越简单。在片内资源无法满足工程需求时,通常需要通过可扩展外设接口来满足某种工程需求。常见的片内外设有以太网MAC、I/O接口、在线仿真接口、外部存储接口等。若硬件平台要支持功能较为齐备的操作系统,往往对RAM和ROM资源的要求就比较高。虽然芯片一般都内置RAM和ROM,但其容量都很小,这就要求芯片可扩展存储器。
此外,若工程中存在浮点运算的需求,应尽量采用带有浮点运算系列的产品来减少工程开发的工作量。处理器的算法分为两大类别:浮点运算和定点运算。通常定点运算处理器运行速度更快,对功率和成本都更加敏感,而浮点运算处理器则可以在较宽的动态范围内提供高精确度运算。动态范围指的是数字格式所能表示的最大数与最小数的比值。而精确度指的是确定分度时的精细程度。
如今某些定点运算处理器能够在极高的时钟频率下运行,如果架构选取恰当的话,它有可能模拟出浮点运算处理器的操作,甚至某些芯片制造商提供的定点运算处理器或控制器的外围支持库能够模拟浮点运算。这种方法以牺牲浮点运算效率来保证低成本和低能耗工作。当然,对于需要进行密集浮点运算的应用来说这并不是最佳方案,但是在某种情况下也不失为一种低成本的好的解决方案。
(4) 操作系统
总体而言,对于需要运行操作系统的工程应用,往往需要更高的主频及容量更大的存储空间,以满足操作系统实时性和编译生成代码空间的需求。通常,对于无需MMU(存储器管理单元)支持的操作系统,其本身需要消耗一定的自身资源,因此工程师应根据操作系统编译后生成代码的大小选择合适存储空间的控制器即可满足要求。而对于运行功能齐备的操作系统(如需要MMU和GUI组件),通常片内存储空间难以满足其空间需求,必须选择具有存储扩展接口的控制器,并根据实际空间需求扩展其存储空间。
操作系统的选择应考虑如下因素:
1)支持的开发工具。某些实时操作系统(RTOS)的开发工具相对封闭,往往由该操作系统供应商提供,开发者往往需要向供应商获取编译器、调试器等,因而带来一些额外的费用;而某些操作系统的第三方工具相对广泛,可供开发者根据个人偏好及项目开发费用进行筛选。
2)操作系统移植。操作系统的移植是一个重要的问题,是关系到整个系统能否按期完工的一个关键因素。因此,要选择那些可移植性程度高的操作系统,最好操作系统供应商能够提供一些工程实例,帮助开发者加速系统的开发进度。
3)内存需求。一般而言,在充分考虑工程需求的基础上,操作系统需要均衡考虑不同操作系统的内存需求与扩展内存带来的额外开销。
4)开发人员对此操作系统及其API的熟悉程度。
5)硬件驱动及第三方工具或协议栈的支持,如网卡驱动、TCP/IP协议栈、SSL协议栈等。
6)可剪裁性。可剪裁的操作系统往往可根据工程的实际需求进行裁剪以最大程度地减小系统资源的额外开销,常见的可裁剪操作系统有嵌入式VxWorks、uCOS、FreeRTOS等。
7)操作系统的实时性能。
(5) 应用领域
常见的应用领域有航空航天、通信、计算机、工业控制、医疗系统、消费电子、汽车电子等。一般来讲,产品的功能和性能对应用领域具有约束作用,产品的功能和性能的确定将缩小选型的范围。同样,应用领域的确定也将缩小选型的范围。如工业控制领域和航空航天领域的产品通常要求工作温度范围较宽,一般应选择工业级或军工级的芯片。
(6) 功耗
手持设备、PDA、平板电脑、智能手机、GPS导航器、智能家电等消费类电子产品市场的快速增长使得对嵌入式微处理器的需求也不断提高。这些产品通常采用电池供电,系统的电池供电带来了一整套全新的应用需求。它们需要使用一个外形紧凑、节能的处理器解决方案。这种限制使得设计者必须在处理性能和功率或效率之间权衡利弊,做出折中。
低功耗的产品能减少对能源的消耗,从而减少环境污染。对个体而言,它能够减少人们的经济开销、提高用户体验的舒适度,因此低功耗也成为芯片选型时的一个重要指标。
(7) 封装
常见的微处理器芯片封装主要有DIP、QFN、QFP、BGA几大类型。BGA类型的封装焊接比较麻烦,焊接成本相对较高。但BGA封装的芯片体积相对较小,能有效减小产品的体积。开发人员应根据需求进行折中选择。如果对产品体积无特殊要求,选型时尽量选择DIP、QFN或QFP封装。
(8) 芯片的可延续性及技术的可继承性
产品更新换代给产品的维护带来一定的额外风险。因此,开发人员在选型时要考虑芯片在未来一段时间内供货的可靠性。在芯片选型时,需要考察制造商对该系列内核芯片开发的延续性和继承性。一般而言,首选知名半导体公司,并据上述原则对其产品进行考察,做出最终选择。
(9) 仿真器
仿真器是硬件和底层软件调试时要用到的工具,是开发工作赖以进行的必要工具,开发人员需要利用仿真器安装固件,调试、验证开发程序的正确性。选择适合的仿真器,将为开发带来诸多便利。对于已有仿真器,开发人员需要留意其对所选芯片的支持情况。
(10) 技术支持
若开发人员对待选的芯片或操作系统较为陌生,则应优选技术支持较为全面的制造商所提供的芯片。优质的技术支持能帮助开发人员快速开展开发工作,避免开发工作中的探索过程和意外的风险。所以选芯片时最好选择知名的半导体公司。此外,选择成熟度较高的芯片可以从网络获得较多的共享资源,在满足工程需求的情况下,也是规避开发风险的一种方法。
(11) 开发工具
好的软件开发工具是提高开发效率的必要条件,优秀的开发工具能有效提高开发人员的工作效率。不仅如此,选择合适的软件开发工具对系统的实现会起到很好的作用。
(12) 开发周期
如果工程的开发周期较为紧迫,开发人员应尽量选择相对熟悉或技术支持相对完善的制造商所提供的芯片。

1.4.2 选型示例

  1. 需求
    1)工程需求:工业通信网关,实现网口和RS232通信接口报文的互发互收,报文长度不超过128B。

2)操作系统:FreeRTOS V7.1。
3)主频:60 MHz以上。
4)接口:带DMA控制的以太网控制器、2个以上RS232串口、1个USB 2.0接口、1个SPI接口、2个CAN总线接口。
5)时钟:实时时钟或实时定时器。
6)引脚封装:QFP。
7)价格:不超过80元。

  1. 选型需求分析
    需求1)将“应用领域”定位于工业通信领域。目前市场上生产较适合于工业控制的微处理器的半导体公司有 NXP、Atmel、ST公司。

需求2)所选操作系统是内存需求较小的FreeRTOS V7.1操作系统,其无需MMU的支持,所以把选型范围缩小到ARM7和Cortex-M3系列,Cortex-M3系列采用最新架构,其性能优势较ARM7明显,也是未来发展的趋势,因此暂将芯片定位在采用Cortex-M3内核的芯片。
结合需求3)、需求4)及工程应用需求,芯片必须带有DMA控制的以太网接口和CAN总线接口,而且芯片主频必须达到60MHz以上。在NXP、Atmel、ST公司生产的芯片中,具备此两种接口的有:NXP公司的LPC系列、Atmel公司的SAM3系列和ST公司的STM32FX07系列。
根据需求4)~7),综合考虑选型因素,由于ST公司是业内率先推出Cortex-M3内核的厂家,其产品系列相对丰富,技术也相对成熟,因此在ST公司的互联型产品中优先选择符合需求4)~7)的芯片。根据提供的选型表,可选择STM32F107VCT6。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

华章出版社

官方博客
官网链接