高等学校信息技术类新方向新动能新形态系列规划教材

微型计算机原理及应用——基于Arm微处理器

微型计算机原理及应用——基于Arm微处理器
分享 推荐 3 收藏 32 阅读 4.4K
王宜怀 (作者) 978-7-115-53299-2

关于本书的内容有任何问题,请联系 祝智敏

(1)以Arm微处理器为蓝本,以简捷、可实践、透明见底的方式阐述微型计算机运行原理。
(2)以构件为基础的汇编语言设计,以全新的视角思考微机原理的教学。
(3)简明易用的集成开发环境及实验套件,丰富的程序实例及教学资源。

内容摘要

本书根据微处理器的最新发展,选择Arm内核作为教学蓝本,以简捷、透明见底、可实践的方式阐述微型计算机系统的基本原理,介绍微型计算机的基本结构、信息表示、硬件系统、指令系统、汇编语言框架和汇编程序设计方法,讲解微型计算机的存储器、串行通信接口、中断系统、定时器、模数与数模转换等。全书以全新的视角思考微机原理的教学,具有较强的理论性与实践性。本书配套给出了AHL-MCP微机原理实践平台与集成开发环境AHL-GEC-IDE,并有详细的实验指导。
本书提供了教学资源,内含所有源程序、辅助阅读资料、PPT课件、视频导引、开发环境下载导引、文档资料及常用软件工具等。教学资源下载请加入QQ群(微机原理—Arm):901549485。教师参考资料可通过人邮教育社区获得。

详情页

目录

第1章 微型计算机基本结构及信息表示...................................................................2
1.1 微型计算机概述.........................................2
1.1.1 初识微型计算机 ............................2
1.1.2 微型计算机发展简史..................3
1.1.3 微型计算机的冯·诺依曼结构框图........................................... 4
1.1.4 微型计算机中的三总线............5
1.1.5 计算机执行指令的简明过程 ......................................................7
1.2 微机原理的实践选型............................7
1.2.1 微机原理实践选型的困惑.......8
1.2.2 微机原理实践选型的基本原则 ......................................................8
1.2.3 AHL-MCP 微机原理实践平台概述............................................9
1.3 数制及数制之间的转换方法.......10
1.3.1 数制....................................................10
1.3.2 数制之间的转换方法...............12
1.4 计算机中信息的基本表示方式...................................................................14
1.4.1 计算机中信息表示的相关基本概念........................................ 14
1.4.2 整数在计算机中的补码表示方法.........................................15
1.4.3 实数在计算机中的浮点数表示方法 .........................................19
1.5 文字在计算机中的存储方式——字符编码.......................................................20
1.5.1 英文编码—ASCII.....................21
1.5.2 中文编码—GB2312 及 GBK....................................................22
1.6 习题...................................................................23

第2章 微型计算机的硬件系统.....25
2.1 微型计算机的硬件共性结构及基本性能指标.....................................26
2.1.1 微型计算机的硬件共性结构....................................................26
2.1.2 微型计算机基本性能指标....27
2.2 Arm Cortex-M 微处理器概述.................................................................28
2.2.1 Arm Cortex 系列微处理器系列概述 .........................................28
2.2.2 Arm Cortex-M4 微处理器..............................................29
2.3 CPU 内部寄存器与存储器映像..................................................................31
2.3.1 寄存器基础知识及相关基本概念.........................................31
2.3.2 Arm Cortex-M4 内部寄存器..............................................32
2.3.3 Arm Cortex-M4 存储器映像 ...................................................36
2.4 Arm Cortex-M4 内核的微型计算机芯片实例........................37
2.4.1 STM32L4 系列 MCU 简介....................................................37
2.4.2 STM32L4 存储映像与中断源...............................................37
2.4.3 STM32L4 的引脚功能...........41
2.4.4 STM32L4 硬件最小系统原理图...............................................42
2.5 由 STM32L431 构建的通用嵌入式计算机..............................45
2.6 习题..................................................................49

第3章 指令系统................................................................51
3.1 指令保留字与寻址方式...................52
3.1.1 指令保留字简表 .........................52
3.1.2 寻址方式..........................................53
3.2 基本指令系统..........................................54
3.2.1 数据传送类指令 .........................54
3.2.2 数据操作类指令..........................57
3.2.3 跳转控制类指令..........................60
3.2.4 其他基本指令...............................61
3.3 指令集与机器码对应表..................62
3.4 GUN 汇编器的基本语法.............65
3.4.1 汇编语言概述...............................65
3.4.2 GUN 汇编书写格式..................65
3.4.3 GUN 汇编常用伪指令............67
3.5 习题..................................................................70

第4章 汇编语言框架...........................................71
4.1 初识程序运行...........................................72
4.2 汇编工程框架及执行工程分析...................................................................79
4.2.1 汇编工程框架的基本内容....79
4.2.2 链接脚本文件的作用...............81
4.2.3 机器码解析....................................82
4.2.4 执行过程分析...............................83
4.3 认识工程框架中的 GPIO 构件.................................................................84
4.3.1 通常 I/O 接口基本概念及连接方法 .........................................84
4.3.2 GPIO 构件知识要素分析 .....86
4.3.3 GPIO 构件的使用方法...........87
4.4 实验一:理解汇编程序框架及运行............................................................88
4.5 习题..................................................................90

第5章 基于构件的汇编程序设计方法...........................................................................93
5.1 构件及其设计方法...............................94
5.1.1 软件构件基本概念....................94
5.1.2 构件设计基本原则....................95
5.1.3 三类构件..........................................96
5.1.4 基于构件的软件设计步骤....97
5.2 程序流程控制..........................................98
5.2.1 顺序结构..........................................98
5.2.2 分支结构...................................... 100
5.2.3 循环结构.......................................102
5.3 汇编程序设计实例...........................105
5.3.1 数制转换程序设计.................105
5.3.2 冒泡排序程序设计.................110
5.4 实验二:基于构件方法的汇编程序设计.......................................114
5.5 习题...............................................................115

第6章 存储器........................................................................117
6.1 存储器的功能与分类......................118
6.1.1 按存储介质分类......................118
6.1.2 按功能分类.................................118
6.1.3 按存取方式分类 ......................119
6.2 随机存储器与只读存储器.........119
6.2.1 RAM..............................................119
6.2.2 ROM...............................................121
6.3 SD 卡与高速缓存............................122
6.3.1 SD 卡..............................................122
6.3.2 高速缓存.......................................124
6.4 Flash 存储器.....................................128
6.4.1 Flash 在线编程的通用基础知识 ......................................128
6.4.2 Flash 驱动构件知识要素分析.................................................128
6.4.3 Flash 驱动构件的使用方法.................................................129
6.5 存储器实验设计举例.....................131
6.6 实验三:存储器实验.....................135
6.7 习题...............................................................136

第7章 串行通信接口........................................137
7.1 串行通信的基础知识......................138
7.1.1 串行通信的基本概念............138
7.1.2 串行通信编程模型.................139
7.1.3 RS232、RS485 总线标准................................................ 140
7.1.4 TTL 电平到 RS232 电平转换电路 ......................................141
7.2 UART 驱动构件及使用方法...............................................................142
7.2.1 UART 驱动构件要素分析.................................................142
7.2.2 UART 驱动构件使用方法.................................................143
7.3 串行通信的编程举例.....................145
7.3.1 例 1:发送和接收一个字节的数据.................................145
7.3.2 例 2:发送和接收一帧数据.................................................147
7.4 实验四:基于串行通信构件的汇编程序设计.......................................151
7.5 习题...............................................................153

第8章 中断系统及定时器...................155
8.1 中断系统....................................................156
8.1.1 中断的基本概念 ......................156
8.1.2 中断处理的基本过程............158
8.1.3 Arm Cortex-M4F 非内核模块中断.................................158
8.2 定时器.........................................................160
8.2.1 定时器的基本含义.................160
8.2.2 Arm Cortex-M4F 内核定时器 ......................................161
8.3 基于定时器的中断编程举例...164
8.4 实验五:理解中断与定时器...............................................................168
8.5 习题...............................................................169

第9章 模数转换与数模转换........171
9.1 模数转换器的基础知识................172
9.1.1 与 AD 转换编程直接相关的基本概念......................172
9.1.2 与 AD 转换编程关联度较弱的基本概念......................174
9.1.3 最简单的 AD 转换采样电路举例 ......................................175
9.2 ADC 驱动构件及使用方法.....176
9.2.1 ADC 驱动构件要素分析....176
9.2.2 ADC 驱动构件使用方法....178
9.2.3 ADC 驱动构件使用举例....179
9.3 数模转换...................................................181
9.3.1 DAC 的通用基本结构.........181
9.3.2 DAC 的主要技术指标.........182
9.4 DAC 驱动构件及使用方法要素分析...................................................183
9.4.1 DAC 驱动构件要素分析....183
9.4.2 DAC 驱动构件使用方法....184
9.4.3 DAC 驱动构件使用举例....184
9.5 实验六:AD 转换模块实验....186
9.6 习题...............................................................188

第10章 直接存储器存取DMA............................................................................189
10.1 DMA 的基本概念.........................190
10.1.1 DMA 的含义..........................190
10.1.2 DMA 控制器..........................190
10.2 DMA 的一般操作流程............190
10.3 DMA 构件头文件及使用方法................................................191
10.4 DMA 驱动构件要素分析......193
10.5 DMA 驱动构件的使用方法............................................................193
10.6 实验七:通过 DMA 实现内存间数据的搬运.........................194
10.7 习题............................................................194

第11章 外接组件综合实践...................195
11.1 开关量输出类实践..........................196
11.1.1 彩灯..............................................196
11.1.2 蜂鸣器.........................................198
11.1.3 马达..............................................202
11.1.4 LED..............................................205
11.2 开关量输入类实践.........................208
11.2.1 红外寻迹传感器....................208
11.2.2 人体红外传感器....................211
11.2.3 按钮..............................................214
11.3 声音与加速度传感器实践.......220
11.3.1 声音传感器..............................220
11.3.2 加速度传感器.........................223
11.4 习题............................................................226

第12章 通用计算机的基本结构及启动过程...................................................227
12.1 PC 系统的基本结构....................228
12.1.1 PC 的基本硬件组成 ...........228
12.1.2 USB 设备..................................231
12.2 PC 系统的启动流程...................233
12.2.1 启动固件....................................233
12.2.2 PC 系统中的硬盘.................236
12.2.3 从固件到硬盘的启动流程 ..............................................241
12.3 PC 的操作系统...............................242
12.4 习题............................................................245

第13章 微型计算机的发展方向...................................................................................247
13.1 CPU 的结构与速度....................248
13.1.1 通用计算机..............................248
13.1.2 嵌入式计算机.........................249
13.2 存储器的容量与速度..................249
13.2.1 磁存储器....................................250
13.2.2 阻变存储器..............................250
13.2.3 相变存储器..............................251
13.3 指令系统的发展方向..................252
13.4 编译技术的发展..............................253
13.4.1 并行编译技术.........................253
13.4.2 交叉编译技术.........................253
13.4.3 动态编译技术.........................253
13.5 微型计算机其他新技术............254
13.5.1 纳米计算机..............................254
13.5.2 激光计算机..............................254
13.5.3 量子计算机..............................254
13.6 习题............................................................255

附录 A: AHL-MCP 微机原理实践平台硬件资源...................257
A.1 概述...............................................................258
A.2 电子资源内容列表..........................258
A.3 硬件清单..................................................258
A.4 实验列表..................................................259
A.5 硬件快速测试方法..........................260

附录 B: AHL-GEC-IDE 安装及基本使用指南..............................261
B.1 安装 AHL-GEC-IDE 集成开发环境.......................................262
B.2 编译下载运行第一个程序.........264
B.3 外接软件功能的使用方法........265
B.4 常见错误及解决方法....................267
B.5 卸载 AHL-GEC-IDE 集成开发环境......................................272
B.6 技术咨询..................................................273

附录 C: 串行通信构件设计方法...................................................................................275
C.1 UART 模块编程结构..................276
C.2 UART 驱动构件汇编语言源码..............................................................278
C.3 UART 驱动构件 C 语言源码..............................................................282

参考文献..............................................................288

读者评论

  • 学习感悟  ——“一个学生的真情告白”

    实际上刚开始接触微机这门课,我是有点害怕的,担心自己学不好微机。因为涉及底层透明理解微型计算机的运行原理,所以这门课程是有一定难度的。但是在王老师的教导下,辅以良好的学习习惯与方法, 我渐渐地觉得微机这门课是可以被攻克的。每次课前我都会先预习下一节课要学的知识,并且把一些难点与疑问在书上标注出来,上课的时候可以重点听。在微机课上我专心地听王老师的讲解,并且适时的做一些笔记,俗话说好记性不如烂笔头。王老师有时会提到一些不了解的概念,我也会记下来,课后自己查阅资料并整理到札记当中。当然,学习新知识属于知识的扩张,光有扩张还不行,还需要知识的收拢。所以在课后,也要及时地完成习题,整理札记,巩固学习到的知识。不过,有时候我也会犯拖延的毛病,幸好札记中有学习备忘录记录了学习的时间。我把这作为对自己的监督,提醒自己一定要及时的进行知识的收拢。

    在微机课上学习相关知识的过程中,我也学到了一些有益的思想与方法。

    王老师布置了一些实验,让我明白了理论与实际相结合的思想。首先要理解清概念,打好扎实的基础,微机就是打基础的,千万不能急功近利。此外,也要认真的去完成实验。只有理论,就会很虚,无法落地实现。过于实际,只关注某一点,没有理论的指导,缺乏系统化的学习。一定要理论与实际相结合,才能学深入,学透彻。实验也体现了熟能生巧的思想。这里的意思有两层,一是反复,二是实践。从课前预习,上课学习,课后整理,完成习题,我们首先要掌握基本的记忆,然后在实践中反复运用,得到巩固和加深。比如汇编的指令,一开始我只是死记硬背,后来通过课后写札记总结复习加深了印象。接着又做了几道题目,进一步提高了熟练度。

    知识截断。在学习的不同阶段,我们可以对知识的深度主动画一个界限,为防止在一个细节上过于深究。比如微型计算机的各个元件,如果非要追根究底那肯定还要归结到化学方面的元素特性,但这就超出了微机研究的范畴。不能光有知识截断,学习也要向前推一步,追究一下为什么。仅仅停留在表面浅显的学习是不行的,我们需要多问自己几个为什么,善于思考表象背后的原理。比如为什么计算机要有时钟呢?为什么时钟可以协调电路中的元件呢?从而拓展一些相关的知识,让我受益匪浅。

    对于一个概念,既要掌握一般定义,又要掌握具体实例,比如中断与异常,异常是出现的错误,比如:除数为零;中断是人为设置的,比如:串口接收到一个数据。学习要有一定的知识面,要了解一些相关的知识,比如太阳能发电是基于光电效应。王老师在课上常常会延展一些相关的概念,令我的知识面得到了拓展。

    王老师说过责任重于兴趣,我深以为然。结合当今世界发生的各种事件,比如华为事件,再比如最近的禁用matlab事件,不难看出我们国家在高科技领域还是被美国捏住了命脉。这就在提醒我们,一定要自己掌握核心科技,不能握在别人手上。我们当代大学生是祖国的未来,肩负着未来的责任,更应该努力学习知识,日后成为国之栋梁,为国家发光发热。

    最后,感谢王老师一学期的教导,不仅让我学到了有用的微型计算机基础知识,还学到了许多终生受益的学习习惯与方法,能遇见老师我十分幸运。

    祝智敏发表于 2020/7/4 20:00:06

我要评论

作者介绍

王宜怀,苏州大学计算机科学与技术学院教授、博士生导师;苏州大学嵌入式系统与物联网研究所所长;苏州市政协常委;江苏省计算机学会嵌入式系统与物联网专业委员会主任。长期从事嵌入式系统、实时操作系统、微型计算机原理、物联网应用技术等方面的课程教学。主要研究方向为嵌入式系统与物联网、嵌入式人工智能系统。

推荐用户

同系列书

  • 人工智能导论

    莫宏伟

    ## 本书较全面地介绍了目前人工智能的主流概念、理论、方法、技术及应用等内容。全书共 12 章,首先介绍了智...

    ¥59.80
  • 数字图像处理与Python实现

    岳亚伟

    本书采用通俗易懂的语言对数字图像处理的相关概念进行阐述,同时穿插较为典型的Python小程序,使读...

    ¥49.80
  • Linux操作系统基础

    方元

    本书介绍Linux操作系统的基本组成、使用以及管理和开发的一些方法。全书共9章,第1章“Linux基本介绍”讲...

    ¥59.80
  • 计算智能

    毕晓君

    # 计算智能是人工智能领域较为前沿的研究方向,它是受“大自然智慧”启发而被设计出的一类算法的统称。计算智...

    ¥59.80
  • Python数据处理与挖掘

    吴振宇

    ## 本书以构建完整的知识体系为目标,按照从简单到复杂的思路,贯穿了数据处理与挖掘的各个环节,具体包括:...

    ¥49.80

购买本书用户

相关图书

人邮微信
本地服务
教师服务
教师服务
读者服务
读者服务
返回顶部
返回顶部