文档介绍:: .
51,其中国内用的最多的是 STC89C51/2,下面我们就以 STC89C51 来讲解,并以
51 简称。
内核
51 由一个 IP 核和片上外设组成,IP 核就是上图中的 CPU,片上外设就是上图中的:
时钟电路、SFR 和 RAM、ROM、定时/计数器、并行 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 单片机。
外设
我们在学习 51 的时候,关于内核部分接触的比较少,使用的最多的是片上外设,我们
在编程的时候操作的也就是这些外设。
《零死角玩转 STM32》— F1 系列
编程的时候操作的寄存器位于 SFR 和 RAM 这个部分,其中 SFR(特殊功能寄存器)
占有 128 字节(实际上只用了 26 个字节,只有 26 个寄存器,其他都属于保留区),RAM
占有 128 字节,我们在程序中定义的变量就是放在 RAM 中。其中 SFR 和 RAM 在地址上
是重合的,都是在 80~FF 这个地址区间,但在物理区间上是分开的,所以 51 的 RAM 是有
256 个字节。
编写好的程序是烧写到 ROM 区。剩下的外设都是我们非常熟悉的 IO 口,串口、定时
器、中断这几个外设。
2. STM32 系统结构
STM32 系统结构框图
图 2 STM32 系统结构框图
内核
在系统结构上,STM32 和 51 都属于单片机,都是由内核和片上外设组成。只是
STM32 使用的 Cortex-M3 内核比 51 复杂得多,优秀得多,支持的外设也比 51 多得多,同
时总线宽度也上升到 32bit,无论速度、功耗、外设都强与 51。
《零死角玩转 STM32》— F1 系列
从结构框图上看,对比 51 内核只有一种总线,取指和取数共用。Cortex-M3 内部有若
干个总线接口,以使 CM3 能同时取址和访内(访问内存),它们是:
指令存储区总线(两条)、系统总线、私有外设总线。有两条代码存储区总线负责对代
码存储区(即 FLASH 外设)的访问,分别是 I-Code 总线和 D-Code 总线。
I-Code 用于取指,D-Code 用于查表等操作,它们按最佳执行速度进行优化。
系统总线(System)用于访问内存和外设,覆盖的区域包括 SRAM,片上外设,片外
RAM,片外扩展设备,以及系统级存储区的部分空间。
私有外设总线负责一部分私有外设的访问,主要就是访问调试组件。它们也在系统级
存储区。
还有一个 MDA 总线,从字面上看,D