嵌入式系统架构浅谈:硬件的选型(一) -------主控芯片

这篇文章主要对嵌入式系统,单片机这块谈一下嵌入式系统的架构。因网上的资料较少,本人在学习的过程中,收集到的一些资料和见解,现记录下来。

该篇着重于列出同类的区别,对嵌入式硬件的一个选型。


1. 嵌入式的主控MCU选型

微控制单元(Microcontroller Unit;MCU) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机。就是我们常说的主控芯片。

1.1 操作处理数据位8位、16位、32位区别

按其基本操作处理的数据位数分类:分为1位、4位、8位、16位、32位甚至64位单片机。平时较多使用8位,16位和32位的单片机。这位数是指CPU处理的数据的宽度,参与运算的寄存器的数据长度。直观的说明,例如:C语言中定义一个int型变量,在8位的系统中,一次只能处理8位数据,int型变量占用两个字节,就需要两个寄存器来操作。对比32位的系统,一次能处理32位数据,int型变量占用4个字节,只需要一个寄存器操作。简单说32位的系统会比8位系统处理能力有显著的优势。

  1.  8位MCU工作频率在16~50MHz之间,强调简单效能、低成本应用,在目前MCU市场总值仍有一定地位,而不少MCU业者也持续为8bit MCU开发频率调节的节能设计,以因应绿色时代的产品开发需求。
  2.  16位MCU,则以16位运算、16/24位寻址能力及频率在24~100MHz为主流规格,部分16bit MCU额外提供32位加/减/乘/除的特殊指令。由于32bit MCU出现并持续降价及8bit MCU简单耐用又便宜的低价优势下,夹在中间的16bit MCU市场不断被挤压,成为出货比例中最低的产品。
  3.  32位MCU可说是MCU市场主流,单颗报价在1.5~4美元之间,工作频率大多在100~350MHz之间,执行效能更佳,应用类型也相当多元。但32位MCU会因为操作数与内存长度的增加,相同功能的程序代码长度较8/16bit MCU增加30~40%,这导致内嵌OTP/FlashROM内存容量不能太小,而芯片对外脚位数量暴增,进一步局限32bit MCU的成本缩减能力。

1.2 存储器类型

按其存储器类型可分为无片内ROM型和带片内ROM型两种。对于无片内ROM型的芯片,必须外接EPROM才能应用(典型芯片为8031)。带片内ROM型的芯片又分为片内EPROM型(典型芯片为87C51)、MASK片内掩模ROM型(典型芯片为8051)、片内FLASH型(典型芯片为89C51)等类型。

而存储器的结构可分为哈佛(Harvard)结构和冯.诺依曼(Von Neumann)结构。现在的单片机绝大多数都是基于冯·诺伊曼结构的,这种结构清楚地定义了嵌入式系统所必需的四个基本部分:一个中央处理器核心,程序存储器(只读存储器或者闪存)、数据存储器(随机存储器)、一个或者更多的定时/计时器,还有用来与外围设备以及扩展资源进行通信的输入/输出端口,所有这些都被集成在单个集成电路芯片上。

片内的存储器多用于可执行程序的存储。对存储器的要求,需要先对可执行程序的大小做个评估,如果使用BootLoader,则需要考虑两个程序的大小。Bootloader的程序设计一般使用一下两种:

  1.  在Bootloader程序里对应用程序的升级。
  2.  在应用程序先将待升级的程序放在备份区,然后系统重启后,把备份区的程序升级。相比第一种优势可以防止升级过程出现错误导致程序崩溃,但是需要多一个程序存储的空间。

(题外话:升级需要考虑升级过程的数据错误或使用不适应程序升级。)

另需要考虑产品是否需要对数据存储,存储的大小,然后考虑是否选择片内空间更大的芯片,或者使用空间小的芯片加外部存储器。


1.3  ARM7,ARM9和ARM11概念

我们常用的STM32F1系列其实是基于ARM的Cortex-M3内核,而Cortex-M3处理器采用的是ARMv7-M(增强型ARM7)架构。

这里有一文章,详细的写出了ARM内核的区别和各种内核的解析。

ARM内核全解析,从ARM7,ARM9到Cortex-A7,A8,A9,A12,A15到Cortex-A53,A57_sagane的专栏-CSDN博客

下面这个文章写的是Cortex-M家族的差异。

一文看懂ARM Cortex-M处理器

本文这里着重写的选型,我们在对MCU选型需要考虑到(不全):

  1. 是否需要linux系统,linux系统需要MMU(它主要包括两个功能:一是支持虚拟/物理地址映射,二是提供不同存储器地址空间的保护机制)的支持,所以不具备MMU的芯片是不支持linux系统。
  2. 是否支持浮点运算。
  3. 是否需要低功耗模式。
  4. 支持的中断。
  5. 芯片的面积大小。封装类型。
  6. .........(等等)

1.4  其他

其他需要考虑特定的情况,根据不同的外设,选择不同的接口。

  1. 串口的数量。
  2. 是否需要DMA。
  3. 是否需要CAN接口。
  4. 是否需要SDRAM。
  5. ........(这里根据不同情况考虑,因素太多无法全部列举)

本文只是个人的一些经验总结,若能够给您带来帮助,我也能感到欣慰。若您能发现文中的错误或不足之处,还请您指出。谢谢!

  • 19
    点赞
  • 88
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
嵌入式系统-硬件软件架构架构之美》这本书是一本介绍嵌入式系统架构的精彩之作。嵌入式系统是指被嵌入到其他设备或系统中的计算机系统,它具有特定的功能和任务。硬件软件架构嵌入式系统实现的基础,它关系到系统的性能、资源利用率和稳定性。 首先,嵌入式系统硬件架构是指系统硬件部分的设计和组织。硬件架构要考虑到系统的实时性、功耗和成本等因素。一种好的硬件架构可以提高系统的运行效率和响应速度,减少功耗,提高系统的可靠性和稳定性。而本书通过对硬件设计和组织的全面介绍,分析了各种硬件架构的优劣,帮助读者了解如何选择和设计适合嵌入式系统硬件架构。 其次,嵌入式系统软件架构是指系统中软件组件的设计和组织。软件架构要考虑到系统的可扩展性、可维护性和可重用性等方面。一个好的软件架构可以提高系统的灵活性和可靠性,降低软件开发的难度和成本。本书通过对软件设计原理和各种软件架构模式的深入讲解,帮助读者掌握嵌入式系统软件设计和组织方法。 通过硬件软件架构的完美结合,嵌入式系统可以充分发挥其特定的功能和任务。硬件架构提供了系统运行的基础,而软件架构则实现了系统的各种功能和任务。本书深入浅出地介绍了硬件软件架构的原理和技术,结合实际案例分析,让读者能够理解嵌入式系统架构的美妙之处。 总之,《嵌入式系统-硬件软件架构架构之美》这本书通过对硬件软件架构的详细介绍,帮助读者深入了解嵌入式系统的组成和工作原理,掌握嵌入式系统的设计和开发方法。无论是从理论还是实践的角度,都能够让读者对嵌入式系统架构有更深入的了解,并且能够应用到实际的项目中。这本书是嵌入式系统开发者和学习者的重要参考资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值