打印
[应用相关]

51单片机和STM32单片机的结构有什么不同

[复制链接]
427|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
                                    

        我们先普及一个概念,单片机(即Microcontroller Unit;MCU) 里面有什么。一个人最重要的是大脑,身体的各个部分都在大脑的指挥下工作。MCU跟人体很像,简单来说是由一个最重要的内核加其他外设组成,内核就相当于人的大脑,外设就如人体的各个功能器官。下面我们来简单介绍下51单片机和STM32单片机的结构。

        1. 51系统结构

       

        51系统结构框图

        我们说的51一般是指51系列的单片机,型号有很多,常见的有STC89C51、AT89S51,其中国内用的最多的是STC89C51/2,下面我们就以STC89C51来讲解,并以51简称。

        1. 内核

        51单片机由一个IP核和片上外设组成,IP核就是上图中的CPU,片上外设就是上图中的:时钟电路、SFR和RAMROM、定时/计数器、并行I/O口、串行I/O口、中断系统。IP核跟外设之间由系统总线连接,且是8bit的,速度有限。

        51内核是上个世纪70年代Intel公司设计的,速度只有12M,外设是IC厂商(STC)在内核的基础上添加的,不同的IC厂商会在内核上添加不同的外设,从而设计出各具特色的单片机。这里Intel属于IP核厂商,STC属于IC厂商。我们后面要讲的STM32也一样,ARM属于IP核厂商,ARM给ST授权,ST公司在Cortex-M3内核的基础上设计出STM32单片机。

        2. 外设

        我们在学习51的时候,关于内核部分接触的比较少,使用的最多的是片上外设,我们在编程的时候操作的也就是这些外设。

        编程的时候操作的寄存器位于SFR和RAM这个部分,其中SFR(特殊功能寄存器)占有 128字节(实际上只用了 26 个字节,只有 26 个寄存器,其他都属于保留区),RAM占有 128 字节,我们在程序中定义的变量就是放在RAM中。其中SFR和RAM在地址上是重合的,都是在80~FF地址区间,但在物理区间上是分开的,所以51的RAM是有256个字节。

        编写好的程序是烧写到ROM区。剩下的外设都是我们非常熟悉的IO口,串口、定时器、中断这几个外设。

        2. STM32系统结构

       

        STM32系统结构框图

        1. 内核

        在系统结构上,STM32和51都属于单片机,都是由内核和片上外设组成。只是STM32使用的Cortex-M3内核比51复杂得多,优秀得多,支持的外设也比51多得多,同时总线宽度也上升到32bit,无论速度、功耗、外设都强于51。

        从结构框图上看,对比51内核只有一种总线,取指和取数共用。Cortex-M3内部有若干个总线接口,以使CM3能同时取址和访内(访问内存),它们是:

        指令存储区总线(两条)、系统总线、私有外设总线。有两条代码存储区总线负责对代码存储区(即FLASH外设)的访问,分别是I-Code总线和D-Code总线。

        I-Code用于取指,D-Code用于查表等操作,它们按最佳执行速度进行优化。

        系统总线(System)用于访问内存和外设,覆盖的区域包括SRAM,片上外设,片外RAM,片外扩展设备,以及系统级存储区的部分空间。

        私有外设总线负责一部分私有外设的访问,主要就是访问调试组件。它们也在系统级存储区。

        还有一个DMA总线,从字面上看,DMA是data memory access的意思,是一种连接内核和外设的桥梁,它可以访问外设、内存,传输不受CPU的控制,并且是双向通信。简而言之,这个家伙就是一个速度很快的且不受老大控制的数据搬运工,这个在51里面是没有的。

        2. 外设

        从结构框图上看, STM32比51的外设多得多,51有的串口、定时器、IO口等外设 STM32 都有。STM32还多了很多特色外设:如FSMC、SDIO、SPII2C等,这些外设按照速度的不同,分别挂载到AHB、APB2、APB1这三条总线上。

               
            

使用特权

评论回复
沙发
一只眠羊| | 2023-1-16 11:44 | 只看该作者
它俩架构都不同,根本不能比较的呀

使用特权

评论回复
板凳
春日负喧| | 2023-1-16 12:16 | 只看该作者
我觉得就是STM3232位的MCU,这就不一样了

使用特权

评论回复
地板
温室雏菊| | 2023-1-16 12:48 | 只看该作者
分析的很有道理,就是这么回事儿

使用特权

评论回复
5
故意相遇| | 2023-1-16 13:20 | 只看该作者
运行频率也可以说说的,STM32的大部分MCU都是比51快的

使用特权

评论回复
6
白马过平川| | 2023-1-16 13:52 | 只看该作者
运行频率也可以说说的,STM32的大部分MCU都是比51快的

使用特权

评论回复
7
白马过平川| | 2023-1-16 14:24 | 只看该作者
外设STM32还带DMA51好像是不带

使用特权

评论回复
8
风凉| | 2023-1-16 14:56 | 只看该作者
引脚好像51也没有100引脚的吧,估计是没有

使用特权

评论回复
9
西洲| | 2023-1-16 15:28 | 只看该作者
感觉51的外设很少,虽然一般控制是够用的,但是实际还是很少

使用特权

评论回复
10
捧一束彼岸花| | 2023-1-16 16:01 | 只看该作者
51还是比较稳定的,照比STM32来比较

使用特权

评论回复
11
未说出口的像你| | 2023-1-16 16:34 | 只看该作者
DMA是个好东西,可惜51没有

使用特权

评论回复
12
在曼谷的春| | 2023-1-16 17:06 | 只看该作者
其实STM32的时钟树是比较复杂的,51就很简单

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

125

主题

201

帖子

0

粉丝