嵌入式单片机该如何选型?

嵌入式开发中的产品选型小知识

 作为一个嵌入式开发工作人员,当你在确定了一个项目的基本功能之后,那么你就要开始进行产品选型了,能否正确的选择一款合适的MCU作为你的项目的核心是一位开发者所毕备的技能。要选好一款处理器,要考虑的因素很多,不单单是纯粹的硬件接口,还需要考虑相关的操作系统、配套的开发工具、仿真器,以及工程师微处理器的经验和软件支持情况等。嵌入式微处理器选型的考虑因素在产品开发中,作为芯片的微处理器,其自身的功能、性能、可靠性被寄予厚望,因为它的资源越丰富、自带功能越强大,产品开发周期就越短,项目成功率就越高。但是,任何一款微处理器都不可能尽善尽美,满足每个用户的需要,所以这就涉及选型的问题。今天咱们就来聊一聊嵌入式相关硬件的的选型。

硬件选型基本原则

a)普遍性原则:所选的元器件要是被广泛使用验证过的,尽量少使用冷门、偏门芯片,减少开发风险。
b)高性价比原则:在功能、性能、使用率都相近的情况下,尽量选择价格比较好的元器件,降低成本。
c)采购方便原则:尽量选择容易买到、供货周期短的元器件。
d)持续发展原则:尽量选择在可预见的时间内不会停产的元器件。
e)可替代原则:尽量选择pin to pin兼容芯片品牌比较多的元器件。
f)向上兼容原则:尽量选择以前老产品用过的元器件。
g)资源节约原则:尽量用上元器件的全部功能和管脚。
芯片的选型过程是对各个维度考量的折衷。
嵌入式单片机该如何选型?_第1张图片

全流程关注芯片的属性

1、我们在选型的时候,需要考虑试产的情况、同时需要考虑批量生产时的情况。
 小批量采购的价格、供货周期、样片申请;同时需要关注,大批量之后的价格和供货周期。有可能批量变大之后,供货的
价格没有优势、或者批量大了之后,产能不足。
 另外,根据自己的实际采购情况,找对应的量级的供应商。例如,原厂往往不直接供货,需要通过代理商。有些代理商的
供货量级都是有要求的。
 之前,有一个选型,选择了ST的STM32F427IGT6,原厂很给力帮忙申请样片。但是在采购的过程中碰到的困难,虽然我
们希望整盘采购,但是由于其代理商出货量都有一定的要求,导致价格跟一开始通过原厂了解到的价格不一致。要高出很多。
同时由于整个行业使用该芯片的场景不是很多,所以导致淘宝价格非常贵,根本没法接受。同时,有做芯片销售的朋友说
是由于无人机厂家大量使用,导致有人在炒这颗芯片的价格,所以导致很难买到。
2、关注器件本身的生命周期与产品生命周期的匹配
 对于通信设备一般要求我们选用的器件要有5年以上的生命周期,并且有后续完整的产品发展路标。
 我们的当时的一个新硬件平台,产品规划的时候是用于替代发货量在百万级单板数量的成熟平台。由于切换周期比较长。
新产品在完成开发后1~2年之后,才逐步上量。其中一个DSP电路板,外设存储是SDRAM。正在产品准备铺量的时候,镁光
等几大 内存芯片厂家,宣布停产。导致产品刚上量,就大量囤积库存芯片,并且寻找台湾的小厂进行器件替代。
所以在器件选型的时候,充分体现了“人无远虑必有近忧”。
3、除了考虑功能和实验室环境,还需要考虑整个生命周期的场景。

具体的芯片选型

(1)应用领域
 一个产品的功能、性能一旦定制下来,其所在的应用领域也随之确定。应用领域的确定将缩小选型的范围,例如:工业控
制领域产品的工作条件通常比较苛刻,因此对芯片的工作温度通常是宽温的,这样就得选择工业级的芯片,民用级的就被排除
在外。目前,比较常见的应用领域分类有航天航空、通信、计算机、工业控制、医疗系统、消费电子、汽车电子等。
(2)自带资源
 经常会看到或听到这样的问题:主频是多少?有无内置的以太网MAC?有多少个I/O口?自带哪些接口?支持在线仿真吗?是
否支持OS,能支持哪些OS?是否有外部存储接口?……以上都涉及芯片资源的问题,微处理器自带什么样的资源是选型的一个
重要考虑因素。芯片自带资源越接近产品的需求,产品开发相对就越简单。
(3)可扩展资源
 硬件平台要支持OS、RAM和ROM,对资源的要求就比较高。芯片一般都有内置RAM和ROM,但其容量一般都很小,内
置512KB就算很大了,但是运行OS一般都是兆级以上。这就要求芯片可扩展存储器。
(4)功 耗
 单看“功耗”是一个较为抽象的名词。低功耗的产品即节能又节财,甚至可以减少环境污染,还能增加可靠性,它有如此多
的优点,因此低功耗也成了芯片选型时的一个重要指标。
(5)封 装
 常见的微处理器芯片封装主要有QFP、BGA两大类型。BGA类型的封装焊接比较麻烦,一般的小公司都不会焊,但BGA
封装的芯片体积会小很多。如果产品对芯片体积要求不严格,选型时选择QFP封装。
(6)芯片的可延续性及技术的可继承性
 目前,产品更新换代的速度很快,所以在选型时要考虑芯片的可升级性。如果是同一厂家同一内核系列的芯片,其技术可
继承性就较好。应该考虑知名半导体公司,然后查询其相关产品,再作出判断。
(7)价格及供货保证
 芯片的价格和供货也是必须考虑的因素。许多芯片目前处于试用阶段(sampling),其价格和供货就会处于不稳定状态,所
以选型时尽量选择有量产的芯片。
(8)仿真器
 仿真器是硬件和底层软件调试时要用到的工具,开发初期如果没有它基本上会寸步难行。选择配套适合的仿真器,将会给
开发带来许多便利。对于已经有仿真器的人们,在选型过程中要考虑它是否支持所选的芯片。
(9)OS及开发工具
 作为产品开发,在选型芯片时必须考虑其对软件的支持情况,如支持什么样的OS等。对于已有OS的人们,在选型过程中
要考虑所选的芯片是否支持该OS,也可以反过来说,即这种OS是否支持该芯片。
(10)技术支持
 现在的趋势是买服务,也就是买技术支持。一个好的公司的技术支持能力相对比较有保证,所以选芯片时选择知名的半导
体公司。
 另外,芯片的成熟度取决于用户的使用规模及使用情况。选择市面上使用较广的芯片,将会有比较多的共享资源,给开发
带来许多便利。
 这里再说一点,有些厂家善于做MCU的简单应用,有的厂家善于做工控或者更复杂的MCU和CPU的应用,所以会各有优
劣。
 CPU按指令集架构体系分主流的有PowerPC、X86、MIPS、ARM四种,X86采用CISC指令集,POWERPC、MIPS、
ARM采用RISC指令集,RISC的CPU多应用于嵌入式。
 业界PowerPC主要用于网络通信市场,X86重点在PC、服务器市场,MIPS的目标市场为网络、通信等嵌入式应用以及数
字消费类应用,ARM的目标市场为便携及手持计算设备、多媒体、数字消费类产品。
 高端处理器中x86架构双核处理器和MIPS架构多核处理器业务定位不一样,MIPS处理器容易实现多核和多线程运算,在
进行数据平面报文转发时表现出色,但单个处理器内核结构简单,进行复杂运算和报文深度处理时明显不如x86和PowerPC。
数据处理选用多核MIPS或NP,控制应用选用PowerPC或嵌入式x86。
 ARM器件的业界生态环境比较好,有多家芯片供应商可以提供ARM器件,选型必须经过多家对比分析和竞争评性评估

STM32和GD32的区别

基本介绍

 目前市面上的32位芯片有很多,最常见的就意法半导体公司生产的STM32系列芯片,同样国产芯片也在不断崛起,常见的有海思,乐鑫,兆易等厂家,其中目前做的比较好的国内的芯片厂家在工业控制领域以兆易创新也就是常见的GD32为主,在无线通信领域则已乐鑫为主,常见的有esp8266和esp32等芯片,价格不高但是性能强大,其中GD32的芯片更是有部分能够直接替换STM32的产品。下面两张图是两个厂家的芯片选型手册,可以看到ST的产品种类是远比GD的多的,不过毕竟国内企业刚起步,还是有很潜力的。有朋友可能会觉得是不是GD抄袭之类的,据说GD的开发人员是来自于ST公司的,GD也确实是以ST为模板开发出来的,但是和芯片相关的的外围设计是不能够申请专利的,所以也不存在什么抄袭的说法。
嵌入式单片机该如何选型?_第2张图片嵌入式单片机该如何选型?_第3张图片

区别之处

1 内核

 GD32采用二代的M3内核,STM32主要采用一代M3内核,下图是ARM公司的M3内核勘误表,GD使用的内核只有752419这一个BUG。
嵌入式单片机该如何选型?_第4张图片

2 主频

使用HSE(高速外部时钟):GD32的主频最大108M,STM32的主频最大72M
使用HSI(高速内部时钟):GD32的主频最大108M,STM32的主频最大64M
主频大意味着单片机代码运行的速度会更快,项目中如果需要进行刷屏,开方运算,电机控制等操作,GD是一个不错的选择。

3 供电

外部供电:GD32外部供电范围是2.63.6V,STM32外部供电范围是23.6V。GD的供电范围比STM32相对要窄一点。
内核电压:GD32内核电压是1.2V,STM32内核电压是1.8V。GD的内核电压比STM32的内核电压要低,所以GD的芯片在运行的时候运行功耗更低。

4 Flash差异

GD32的Flash是自主研发的,和STM32的不一样。
GD Flash执行速度:GD32 Flash中程序执行为0等待周期。
STM32 Flash执行速度:ST系统频率不访问flash等待时间关系:0等待周期,当0 Flash擦除时间:GD擦除的时间要久一点,官方给出的数据是这样的:GD32F103/101系列Flash 128KB 及以下的型号, Page Erase 典型值100ms, 实际测量60ms 左右。对应的ST 产品Page Erase 典型值 20~40ms。

5 功耗

从下面的表可以看出GD的产品在相同主频情况下,GD的运行功耗比STM32小,但是在相同的设置下GD的停机模式、待机模式、睡眠模式比STM32还是要高的。
嵌入式单片机该如何选型?_第5张图片

6 串口

GD在连续发送数据的时候每两个字节之间会有一个Bit的Idle,而STM32没有,如下图。
嵌入式单片机该如何选型?_第6张图片
GD的串口在发送的时候停止位只有1/2两种停止位模式。STM32有0.5/1/1.5/2四种停止位模式。
GD 和STM32 USART的这两个差异对通信基本没有影响,只是GD的通信时间会加长一点。

7 ADC差异

GD的输入阻抗和采样时间的设置和ST有一定差异,相同配置GD采样的输入阻抗相对来说要小。具体情况见下表这是跑在72M的主频下,ADC的采样时钟为14M的输入阻抗和采样周期的关系:
嵌入式单片机该如何选型?_第7张图片

8 FSMC

STM32只有100Pin以上的大容量(256K及以上)才有FSMC,GD32所有的100Pin或100Pin以上的都有FSMC。

9 103系列的RAM和FLASH大小不一样

GD103系列和ST103系列的ram和flash对比如下图:
嵌入式单片机该如何选型?_第8张图片

10 抗干扰能力

 关于这一点,官方没有给出,我也是在做项目的时候偶然发现的,项目原本是用STM32F103C8T6,后来换成GD F103C8T6,这两个芯片的引脚完全一致,然后单片机用了的两个邻近的引脚作为SPI的时钟引脚和数据输出引脚,然后发现STM32的SPI能正常通讯,GD的不行,经过检查发现PCB板SPI的铜线背面有两根IIC的铜线经过,信号应该是受到影响了。
 用示波器看了一下引脚的电平,发现确实是,STM32和GD的数据引脚波形都不正常,但是STM32的波形要好很多,波形虽然差了点,但是SPI通讯依然正常。
 而GD则不能正常通讯了。然后我又把SPI的通讯速率减慢,发现STM32的数据引脚很快就恢复正常波形了,而GD的依然差,直到速率降到很低才恢复正常。初步怀疑是STM32内部对引脚有做一些滤波的电路,而GD则没有。
 虽然我用的这个电路板本身布线有些不合理,但是在同样恶劣的环境下,STM32依然保证了通讯的正常,而GD不行,这在一定程度上说明了GD的抗干扰能力不如STM32。

你可能感兴趣的:(单片机,嵌入式硬件)