64
51 系列单片机与 ARM 处理器的比较
51 系列单片机与 ARM 处理器的比较
Comp aris on Between 51 Series Sing le Chip Comp uter and ARM Microp roces s or
罗 佳 孙运强 ( 中北大学信息与通信工程学院, 山西 太原 030051)
目前 ARM 微处理器在国内逐步推广使用, 且在 32 位市场上, ARM 扮演着 8 位市场上 8051 的角色。从 51 系列单片
机基础知识出发, 将 ARM 处理器和 51 系列单片机进行综合对比, 使读者更好的理解和学习 ARM 处理器的基础知识。
摘 要
关键词: ARM 微处理器, 51 系列单片机 基础知识
Abs tract
Currently,the ARM microproces s ors have extens ive us age gradually in the domes tic country.In 32 bits markets ,ARM
play thee role of 8051 in 8 bits markets .This paper embarks on bas ic knowledge of 51 s eries s ingle chip computer.ARM
microproces s or and 51 s eries s ingle chip computer are compared comprehens ively to make the reader better to compre-
hend and learn the bas ic knowledge of the ARM microproces s or.
Keywords :ARM microproces s or,51 s eries s ingle chip computer,bas ic knowledge
从 20 世纪 80 年 代 到 现 在, 单 片 机 始 终 在 8 位 机 的 档 次 上
徘徊, 8 位的单片机始终主导着应用的潮流。16 位单片机虽然也
曾经掀起过波浪, 但很快就销声匿迹了。随着科技的发展, 人们
对 单 片 机 的 性 能 、速 度 、存 储 量 、通 信 能 力 、功 能 的 多 样 性 、开 发
的方便程度及耗电的多少等不断提出更高的要求。32 位单片机
应用的高潮正悄悄到来。ARM 处理器就是近年来发展十分迅猛
的一种体系结构。
从 51 系列单片机到 ARM 处理器是一个很大的跨度。原因
是 ARM 处理器完全不同与 51 系列单片机, 其结构十分复杂。
1 ARM 不是单片机
一般称 51 系列为单片机, 单片机就是把中央处理器( Cen-
ter Proces s ing Unite ) 、存 储 器 ( RAM/ROM) 和 输 入 / 输 出 设 备
( Input /Output) 集 成 在 一 个 芯 片 内 的 芯 片 。 它 具 有 微 型 计 算 机
的最基本的功能, 是一个可以独立运行的最小的智能系统。一般
称其为 Single Microcomputer, 也 可 以 称 为 微 型 控 制 器( Micro-
controller) 。 把 单 片 机 作 为 一 个 控 制 系 统 的 核 心 进 行 产 品 的 设
计, 使产品的性能得到提高。随着科技的发展, 更大规模的集成
电路在芯片设计方面得到了进一步的推广和应用, 单片机的功
能变得更加强大, 这时人们把这些功能更加强大的单片机成为
微处理器( Microproces s or) 。因此微处理器 与 单 片 机 一 般 并 没
有多大区别, 只不过微处理器功能更强大, 特别是数据处理能力
更加强大。
综 上 所 述 , ARM 不 是 单 片 机 , 而 只 是 一 个 单 片 机 的 内 核 。
ARM 是 Advanced RISC Machines 的缩写。其 中 RISC 原 文
是 Reduced Ins truction Set Computer, 意 为 精 简 指 令 集 计 算
机。单片机最主要的特征就是本身能组成最小系统, 可独立运
行, 并具有完整的功能, 而 ARM 则不能。ARM 和单片机不同, 它
仅仅是单片机中的中央处理器。一般称其为 ARM 处理器结构。
也 就 是 说 以 ARM 为 核 , 把 ARM 作 为 中 央 处 理 器 , 根 据 需 要 设
计出外围功能模块, 用总线把这些功能模块和 ARM 核连接在一
起, 组成一个单片机。这个单片机由 ARM 核控制, ARM 核执行
指令, 并根据指令对外围设备发出各种控制命令。
现在, 也有以 51 系列为核的单片机, 其设计主要基于 51 系
列具有广泛应用这样一个背景。在这样的设计中, 把使用 51 系
列 指 令 、具 备 51 系 列 结 构 的 单 片 机 设 计 得 功 能 更 加 强 大, 内 部
存储区更多, 输入 /输出口线增加几倍, 速度可达 40Mb /s 。但这
种单片机仍然是一个 8 位机, 功能仍然受到 51 系列的局限。
2 以 ARM 为核的单片机
2.1 51 系列单片机
在 单 片 机 内, 通 过 总 线 与 内 核( 中 央 处 理 器 ) 连 接 在 一 起 的
有 各 种 外 围( 片 内) 设 备, 如 定 时 器 / 计 数 器 、数 据 存 储 器 和 串 行
通信模块等。对中央处理器而言, 一般可以把这些统称为外围设
备( 片内) 。对中央处理器来说, 这些外围设备和外部设备并没有
太大区别, 中央处理器对片内外围设备的操作是通过对寄存器
的读 /写来完成的, 而对片外的外部设备的操作是通过对存储器
的读 /写来完成的。无论片内还是片外, 对中央处理器来说, 其操
作都是对某一地址的操作。
2.2 ARM 怎样组成一个单片机
像 51 系列的中央处理器( 内核) 一样, ARM 不是单片机, 是
一个只能够做单片机的内核的中央处理器。它的任何功能实现
都离不开外围设备。由于它仅仅是一个单片机的内核, 因此, 由
它所构成的单片机因侧重不同而性能相差很大。
在 这 种 单 片 机 中 , 可 以 设 计 出 各 种 功 能 模 块, 比 如 51 系 列
中所包含的串行通信模块、定时器 / 计数器模块等。由于这种模
块设计相对 简 单, 又 很 灵 活, 移 植 比 较 容 易, 因 此, 以 ARM 为 核
的单片机在同一家族中兼容性好。同时, 由于模块是连接在总线
上的, 模块的多少对 ARM 本身没有影响, 因此, 在一个片内可以
设计出很多不同功能的模块。正因为如此, 以 ARM 为核才容易
设计出功能强大的单片机。
在图 1 中, 模块也可以是完全相同的或是几个是相同的, 这
对系统并没影响。同 51 系列相似, ARM 处理器对外部模块的操
作仅仅是对不同地址的操作。每个模块都有自己的功能寄存器,
例如可能有命令寄存器、状态寄存器和中断屏蔽寄存器等。每个
图 1 以 ARM 为核的单片机结构
《工业控制计算机》2007 年 20 卷第 5 期
65
模块的寄存器在总线上都有固定的地址, ARM 通过对这些地 址
的操作来实现对这些寄存器的控制和检测, 也就是实现对这些
模块控制和检测, 从而实现各种功能。
在这种设计中, ARM 核只是把外部模块作为不同的地 址 对
象, 各个模块的不同对 ARM 处理器来说, 仅仅是地址不同而已。
3
51 系列单片机和 ARM 处理器的比较
下 面 以 89C52 和 ARM7 为 例 比 较 , ARM 处 理 器 作 为 单 片
机的内核和 51 系列单片机内核的相近和差异, 如表 1 所列。
表 1
51 系列和 ARM 处理器的比较
图 2 ARM7 3 级流水线结构的指令执行示意图
机 的 经 验 出 发, 我 们 知 道, 有 些 中 断 是 可 屏 蔽 的 ; 中 断 处 理 程 序
应 该 有 合 适 的 入 口, 成 为 中 断 向 量; 中 断 应 该 有 优 先 权 限 , 以 解
决多个中断同时发生等。这些对于 ARM 处理器同样适用。在处
理 中 断 的 过 程 时 , 51 系 列 单 片 机 和 ARM 处 理 器 本 质 上 是 一 致
的。尽管 ARM 的每一种中断都是一种模式, 但这和处理中断们
的过程无关。表 2 是 51 系列和 ARM 处理器中断响应的对比。
表 2
51 系列和 ARM 处理器中断响应的对比
其实这种比较没有多大意义, 我们只是想把它们联系起来,
便 于 今 后 学 习 51 系 列 单 片 机 和 ARM 处 理 器 时 会 发 现 它 们 之
间的差异。
举例来说, 51 系列单片机只有 6 个中断源, 而 ARM 系列单
片机可多达上百 个 中 断 源, 虽 然 ARM 处 理 器 只 有 7 个 中 断 源 。
有的以 ARM 为核的单片机复位中断也是可以屏蔽的, 这可能是
在 ARM 中也把复位作为 中 断 处 理 的 原 因, 但 从 51 系 列 的 结 构
出发, 这是一个很难理解的事情。
51 系 列 单 片 机 在 退 出 中 断 时 , 程 序 要 做 到 : 把 保 护 的 寄 存
器( 如 果 有 的 话) 从 堆 栈 中 弹 出 来 ( POP) 来 ; 重 新 开 启 进 入 中 断
时关闭的中断( 如果曾关闭过) ; 执行返回指令( RET1) 。ARM 处
理 器 在 退 出 异 常 中 断 时, 程 序 要 做 到: 把 保 护 的 寄 存 器 恢 复 ; 把
SPSR 恢 复 到 CPSR; 重 新 开 启 中 断( 如 果 需 要 的 话 ) ; 把 返 回 地
址赋给 PC。
3) 指令的种类和指令的含义是相近的, 比如数据传送、数据
虽然 ARM 处理器 要 比 51 系 列 强 大 得 多, 但 它 们 仍 有 很 多
相加 /减等。
相似之处:
1) 指令的处理———取指、译码和执行过程是一样的。一般地
说, 计算机在执行程序时, 要分 3 个步骤。第一步是要把指令从
程序存储器中取出来, 称为取指。第二步是把读到内核的指令进
行译码, 也就是把二进制的指令变换成电路的动作( 打开哪些门
电路, 关闭哪些门电路) 。第三步是指令的执行, 把门电路的动作
送到指定的目标地址。但应该注意的是, 51 系列 单 片 机 指 令 是
顺序读取和执行 的, 而 ARM 处 理 器 的 3 个 步 骤 是 同 时 进 行 的,
如图 2 所示( 以 ARM7 为例) 。从图中可以看出, ARM 执行指令
过 程 是: 第 1 条 指 令 译 码 的 同 时, 第 2 条 指 令 已 经 开 始 取 指; 在
第 1 条指令执行的时候, 第 2 条指令已经开始译码, 第 3 条指令
已经开始取指。由于取指总是提前进行, 所以叫做预取指。这种
指令的执行过程称为 3 级流水线结构。在 ARM 系列中, 流水线
级数越多, 说明单位时间内执行指令的条数就越多。正由于这种
结构, 所以 ARM 处理器指令吞吐量要大, 运算速度要快。
51 系列顺序进行如下:
ARM7 的 3 级流水线如图 2。
2) 中断的处理过程———响应中断、分配向量、保护现场和退
出中断是一样的。ARM 处理器的所有异常都会引起中断。尽管
引起中断的起因和 51 系列单片机大不相同, 但从 51 系列单片
4) 程序的编程方法是相同的, 比如程序分支、子程序调用等。
5) 寄存器的使用是相近的, 比如堆栈指针、程序计数器(PC)
和程序状态寄存器等。
寄存器是处理器内部用于数据运算、传输和存储的地址单
元。在 ARM 处理器中, 共有 37 个寄存器, 其中, 31 个通用寄存
器和 6 个状态寄存器。如表 3 所列。
表 3
51 系列单片机和 ARM 处理器的寄存器比较
如表 3 所列, 计算机指令的运行是需要记录的, 这个记录是
由 程 序 计 数 器 PC 来 完 成 的 , PC 内 存 储 的 是 程 序 运 行 的 地 址 。
在 51 系列单片机和 ARM 处 理 器 中, 这 一 点 是 完 全 相 同 的 。 程
序运行的状态由状态寄存器来记录, 这一点也是相 同 的 。 在 51
系 列 中 , 程 序 状 态 一 般 是 由 累 加 器 A 决 定 的 , 因 为 A 参 与 操 作
并保存 操 作 结 果, 而 在 ARM 处 理 器 中, 则 是 由 参 与 操 作 的 目 标
寄存器决定的。
ARM 处理器中一般可使用的通用寄存器是 R0~R12, 而 51
66
系列中共有 4 组 R0~R7; 但 ARM 中所有的寄存器都有累加器
的功能和间 接 寻 址 功 能 ( 类 似 51 系 列 中 的 R0、R1 和 DPTR) ,
可见 ARM 处理器中通用寄存器功能比 51 系列强大一些。在 51
系列中, 所有重要功能的指令都要用到累加器 A, 因此要不停地
保护累加器 A 中的数据; 而在 ARM 中完全不会出现这种情况。
另 外, 在 51 系 列 内 部 的 RAM 存 储 区 不 是 寄 存 器 , 只 是 作 为 存
储单元参与指令操作。51 系列内的定时器 /计数器, 串行通信控
制寄存器和口线控制寄存器等都不是 CPU 核内的部件, 而是核
外围的部件。
6) 程序的处理是相近的, 主要是指程序的编辑、编译、连接、
目标代码的生成和程序的调试等。
7) 一些通用概念是相同的, 不如复位、复位后的状态、中断、
地址、指令代码和数据等。
ARM 和 51 系列最主要的区别在于:
1) ARM 只是一个单片机内核; 上面我们已经阐述过了。
2) ARM 是 一 个 32 位 处 理 器, 而 51 系 列 只 是 8 位, 在 数 据
访问的处理方式上相差很大。我们说 51 系列单片机采用 8 位结
构, 这种叙述包含两种含义。一种含义是它的指令采用 8 位的指
令代码; 另一种含义是它也进行 8 位的数据处理。ARM 处理器
采用 32 位结构和 51 系列不 同, 它 的 指 令 既 可 以 运 行 32 位 的
ARM 指 令 系 统, 也 可 以 运 行 16 位 的 Thumb 指 令 系 统 ; 另 一 方
面 , 它 既 可 以 处 理 32 位 数 据 , 也 可 以 处 理 16 位 数 据 和 8 位 数
据, 比如, 在 51 系列单片机中, 进行一个 32 位的加法或一个 16
位数的乘法就不是一件容易的事。因此, ARM 处理器采用 32 位
数据结构, 所表达的信息量比 51 系列要强大得多。
3) ARM 处 理 器 有 多 种 工 作 模 式 , 而 51 系 列 只 有 一 种 。
ARM 处理器结构支持 7 种处理器模式, 如表 4 所示。在 ARM 处
理器中, 用户模式是最基本的处理器模式, 大多数用户程序都是
在用户模式下进行, 除了用户模式外, 其他模式均称为特权模
式。在特权模式中, 管理模式也是常常用到的模式, SVC 可以用
来 设 计 操 作 系 统 的 保 护 模 式 ; FIQ 模 式 可 以 用 来 设 计 支 持 快 速
的数据传输和通道处理; IRQ 模式可以用于通用中断处理; 特权
模式可以获得比用户模式更高的权限。在特权模式下, 程序可以
访问更多的系统资源。
51 系列只有一种模式。这在有些情况下使用受到限制。在
51 系列中, 所有的资源在所有的情况下都可以利用。因为 51 系
列是一个比较简单的系统, 所以有这样的结构。51 系 列 也 有 中
51 系列单片机与 ARM 处理器的比较
表 4 处理器模式
断, 但这并不产生其他模式。因为中断并没有特权, 所有资源在
所有情况下都是共享的。
4) ARM 处理器内寄存器只有一种, 而 51 系列有多种。比如在
Thumb 状态下, CPRS 程序状态寄存器只有 1 个, 各种模式共用。
5) ARM 不但有 32 位指令集, 还包含 16 位的 Thumb 指令
集。51 系列单片机是一个 8 位的单片机, 因而只能执行 8 位宽的
指 令 。ARM 是 一 个 32 位 的 结 构, 不 但 可 以 执 行 32 位 的 指 令
( ARM 指令集) , 也可以执行 16 位的指令( 称为 Thumb 指令集) 。
4 结束语
现 在, 由 于 网 络 与 通 信 的 发 展, 我 们 无 法 把 51 系 列 和 一 个
技术先进的产品相提并论, 同时越来越多的产品需要具有联网
功能, 这需要智能产品具有一个更强劲的“芯”, 这是 8 位机很难
做 到 的, 所 以 我 们 必 须 适 应 时 代 的 需 求, 充 分 利 用 已 有 知 识 , 由
此及彼地去学习 ARM, 理解 51 系列和 ARM 中相似和不同的部
分, 将会收到事半功倍的效果。
[ 1] 周立功.ARM 微处理器基础与实战[M].北京: 北京航空航天大学出版
参考文献
社, 2003
[2] 李驹光, 聂雪媛, 江泽明, 等.ARM 应用系统开发详解———基于 S3C4510B
的系统设计[M].北京: 清华大学出版社, 2003
[ 3] 求 是 科 技. 单 片 机 通 信 技 术 与 工 程 实 践[M]. 北 京 : 人 民 邮 电 出 版 社 ,
2005
[ 收稿日期: 2006.12.3]
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
然 后 在 PC2 上 , 用 同 样 的 方 法 打 开 OPC SCOUT, 但 要 注
( 上接第 87 页)
MOO_Q 对应从站的输入输出缓冲区, 根据需要添加其 下 的 变
意, 在双击“CP5611_DP”后, 在弹出的界面中选 DP2( 代表二类
量, 确认后, 若“Quality”显示“good ”, 则表示硬 件 连 接 和 组 态 完
主 站 ) , 将 “Slave2_I”和 “Slave2_Q”添 加 即 可 。 确 认 后 , OPC
全正确, OPC 开始运行读写数据。结果如图 6。
SCOUT 就开始运行了, 数据的变化与 PC1 中数据变化同步。
5 结束语
该通信网络主要应用于现场的小型自动化监控系统, 如水电
站的辅助设备自动化监控系统, 泵站的监控等。PROFIBUS- DP
网络也可挂接以太网, 成为企业级的综合监控系统的一部分。
参考文献
[ 1] 李建行.可编程控制器应用技术[ M] .北京: 机械工业出版社, 2004
[ 2] 张万忠.可 编 程 控 制 器 入 门 与 应 用 实 例( 西 门 子 S7- 200 系 列) [ M] .
北京: 中国电力出版社, 2005
[ 3] 李正军.现场总线与工业以太网及其应用系统设计[ M] .北京: 人民邮
电出版社, 2006
[ 收稿日期: 2006.9.22]
图 6 数据界面