描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302661313
《嵌入式应用技术》本书旨在阐述嵌入式通用知识要素。以知识要素为基本立足点设计芯片底层驱动,努力使应用程序与芯片无关,具有通用嵌入式计算机(GEC)性质。
以嵌入式硬件构件及底层软件构件设计为主线,基于嵌入式软件工程的思想,按照“通用知识→驱动构件使用方法→测试实例→构件制作过程”的思路阐述电子系统智能化嵌入式应用的软件与硬件设计。
本书在《嵌入式基础与实践》(第6版)基础上进行编写,《嵌入式基础与实践》被评为普通高等教育“十二五”国家级规划教材、国家级一流本科课程教材。
随书配备的芯片选用TI公司的MSPM0L1306微控制器(ARM Cortex-M0 内核),可完成书中实验,为探索嵌入式教学模式赋能。
《嵌入式应用技术》以德州仪器(TI)公司于2023年推出的ARM CortexM0 内核MSPM0L1306微控制器为蓝本,以知识要素为核心,以构件化为基础阐述嵌入式应用技术,同时配有实践硬件系统AHLMSPM0L1306。全书共12章,第1章在运行一个嵌入式系统实例的基础上简要阐述嵌入式系统的知识体系、入门问题与学习建议;第2章给出ARM CortexM0 微处理器简介;第3章给出MCU存储器映像、中断源与硬件最小系统;第4章以GPIO为例给出规范的工程组织框架,阐述底层驱动应用方法;第5章阐述嵌入式硬件构件与底层驱动构件基本规范;第6章给出串行通信接口UART及第一个带中断的实例。第1~6章囊括了学习一个微控制器入门环节的完整要素。第7~10章分别讲解了SysTick、Timer、PWM、Flash在线编程、ADC、DAC、SPI、I2C、系统时钟、看门狗、复位模块及电源控制模块等内容;第11章概要介绍实时操作系统;第12章提供进一步学习指导。
本书提供了电子资源,内含芯片资料、使用文档、硬件说明、源程序等,还制作了课件及微课视频。
本书适用于高等学校嵌入式系统的教学或技术培训,也可供嵌入式系统与物联网应用技术人员作为研发参考。
第1章概述1
1.1初识嵌入式系统1
1.1.1运行硬件系统1
1.1.2实践体系简介3
1.1.3编译、下载与运行第一个嵌入式程序4
1.2嵌入式系统的定义、发展简史、分类及特点5
1.2.1嵌入式系统的定义5
1.2.2嵌入式系统的由来及发展简史6
1.2.3嵌入式系统的分类7
1.2.4嵌入式系统的特点8
1.3嵌入式系统的入门问题、知识体系及学习建议9
1.3.1嵌入式系统的入门问题9
1.3.2嵌入式系统的知识体系12
1.3.3基础阶段的学习建议13
1.4微控制器与应用处理器简介14
1.4.1MCU简介14
1.4.2以MCU为核心的嵌入式测控产品的基本组成15
1.4.3MAP简介16
1.5嵌入式系统常用术语17
1.5.1与硬件相关的术语17
1.5.2与通信相关的术语18
1.5.3与功能模块相关的术语19
1.6C语言概要20
1.6.1运算符20
1.6.2数据类型22
1.6.3流程控制28
1.6.4函数30嵌入式应用技术——基于TI的MSPM0L1306微控制器1.6.5编译预处理30
本章小结31
习题32
第2章ARM CortexM0 微处理器33
2.1ARM CortexM0 微处理器概述33
2.1.1ARM CortexM0 微处理器内部结构概要33
2.1.2ARM CortexM0 微处理器的内部寄存器35
2.2寻址方式与机器码的获取方法36
2.2.1指令保留字简表与寻址方式36
2.2.2指令的机器码38
2.3基本指令分类解析39
2.3.1数据传送类指令39
2.3.2数据操作类指令42
2.3.3跳转控制类指令45
2.3.4其他指令46
2.4汇编语言的基本语法48
2.4.1汇编语言的格式48
2.4.2常用伪指令简介50
本章小结51
习题52
第3章存储器映像、中断源与硬件最小系统53
3.1MSPM0系列MCU概述53
3.1.1MSPM0系列MCU命名规则53
3.1.2MSPM0存储器映像54
3.1.3MSPM0中断源55
3.2MSPM0L的引脚图与硬件最小系统56
3.2.1MSPM0L的引脚图56
3.2.2MSPM0L硬件最小系统原理图58
3.3由MCU构建通用嵌入式计算机59
3.3.1嵌入式终端开发方式存在的问题与解决办法59
3.3.2提出GEC概念的时机及GEC的定义与特点60
3.3.3由MSPM0L1306构成的GEC61
本章小结64
习题65
第4章GPIO及程序框架66
4.1GPIO通用基础知识66
4.1.1GPIO概念66
4.1.2输出引脚的基本接法66
4.1.3上拉下拉电阻与输入引脚的基本接法67
4.2软件干预硬件的方法67
4.2.1GPIO构件API67
4.2.2GPIO构件的输出测试方法70
4.3认识工程框架71
4.3.1工程框架及所含文件简介71
4.3.2机器码文件及芯片执行流程简析73
4.4GPIO构件的制作过程75
4.4.1端口与GPIO模块——对外引脚与内部寄存器76
4.4.2通过GPIO基本编程步骤点亮一盏小灯77
4.4.3GPIO构件的设计78
4.5第一个汇编语言工程: 控制小灯闪烁82
4.5.1汇编工程文件的组织82
4.5.2汇编语言小灯测试工程主程序83
4.6实验一熟悉实验开发环境及GPIO编程86
本章小结89
习题90
第5章嵌入式硬件构件与底层驱动构件基本规范91
5.1嵌入式硬件构件91
5.1.1嵌入式硬件构件概念与嵌入式硬件构件分类91
5.1.2基于嵌入式硬件构件的电路原理图设计简明规则92
5.2嵌入式底层驱动构件的概念与层次模型95
5.2.1嵌入式底层驱动构件的概念95
5.2.2嵌入式硬件构件与软件构件结合的层次模型96
5.2.3嵌入式软件构件分类96
5.2.4基础构件的基本特征与表现形式97
5.3底层驱动构件的封装规范99
5.3.1基础构件设计的基本原则99
5.3.2编码风格基本规范100
5.3.3头文件的设计规范103
5.3.4源程序文件的设计规范105
5.4硬件构件及其驱动构件的复用与移植方法106
5.4.1硬件构件的复用与移植106
5.4.2驱动构件的移植106
本章小结108
习题109
第6章串行通信模块及第一个中断程序结构110
6.1异步串行通信的通用基础知识110
6.1.1串行通信的基本概念110
6.1.2RS232和RS485总线标准112
6.1.3TTLUSB串口113
6.1.4串行通信编程模型114
6.2基于构件的串行通信编程方法115
6.2.1MSPM0L1306芯片UART对外引脚115
6.2.2UART构件API115
6.2.3UART构件API的发送测试方法116
6.2.4printf的设置方法与使用117
6.3UART构件的制作过程118
6.3.1UART寄存器概述118
6.3.2利用直接地址操作的串口发送打通程序118
6.3.3UART构件设计120
6.4中断机制及中断编程步骤124
6.4.1中断基本概念及处理过程124
6.4.2ARM CortexM0 非内核模块中断编程结构126
6.4.3MSPM0L1306中断编程步骤——以串口接收中断为例129
6.5实验二串口通信及中断实验131
本章小结133
习题134
第7章定时器相关模块135
7.1定时器通用基础知识135
7.2MSPM0L1306中的定时器136
7.2.1ARM CortexM0 内核定时器SysTick136
7.2.2Timer模块的基本定时功能141
7.3脉宽调制143
7.3.1脉宽调制通用基础知识143
7.3.2基于构件的PWM编程方法145
7.4输入捕捉与输出比较148
7.4.1输入捕捉与输出比较通用基础知识149
7.4.2基于构件的输入捕捉和输出比较编程方法149
7.5实验三定时器及PWM实验154
本章小结155
习题156
第8章Flash在线编程、ADC与DAC157
8.1Flash在线编程157
8.1.1Flash在线编程的通用基础知识157
8.1.2基于构件的Flash在线编程方法158
8.1.3Flash构件的制作过程161
8.2ADC165
8.2.1ADC的通用基础知识165
8.2.2基于构件的ADC编程方法169
8.2.3ADC构件的制作过程172
8.3DAC175
8.3.1DAC的通用基础知识175
8.3.2基于构件的DAC编程方法176
8.4实验四ADC实验177
本章小结178
习题179
第9章SPI、I2C与DMA180
9.1串行外设接口模块180
9.1.1串行外设接口的通用基础知识180
9.1.2基于构件的SPI通信编程方法183
9.2集成电路互联总线模块188
9.2.1集成电路互联总线的通用基础知识188
9.2.2基于构件的I2C通信编程方法193
9.3直接存储器存取198
9.3.1DMA的通用基础知识198
9.3.2基于构件的DMA编程方法199
9.4实验五SPI通信实验201
本章小结202
习题203
第10章系统时钟与其他功能模块204
10.1时钟系统204
10.1.1时钟系统概述204
10.1.2时钟模块寄存器及编程实例206
10.2复位与看门狗模块209
10.2.1复位209
10.2.2看门狗211
10.3电源控制模块与CRC校验模块211
10.3.1电源控制模块211
10.3.2CRC校验模块213
10.4比较器与运算放大器模块215
10.4.1比较器215
10.4.2运算放大器216
10.5实验六综合实验217
本章小结218
习题218
第11章实时操作系统初步219
11.1无操作系统与实时操作系统219
11.1.1无操作系统时的程序运行路线219
11.1.2实时操作系统下的程序运行路线220
11.1.3实时操作系统与非实时操作系统220
11.2RTOS中的常用基本概念及线程的三要素221
11.2.1与线程相关的基本概念221
11.2.2线程的三要素及四种状态222
11.2.3线程的三种基本形式225
11.3RTOS下编程框架227
11.3.1RTThread下基本要素模板列表227
11.3.2第一个样例程序功能及运行228
11.3.3RTThread工程框架229
11.4RTOS中同步与通信的编程方法233
11.4.1RTOS中同步与通信基本概念234
11.4.2事件235
11.4.3消息队列240
11.4.4信号量246
11.4.5互斥量250
本章小结254
习题255
第12章进一步学习指导256
12.1关于更为详细的技术资料256
12.2关于嵌入式系统稳定性问题256
参考文献258
嵌入式计算机系统简称嵌入式系统,其概念最初源于传统测控系统对计算机的需求。随着以微处理器(MPU)为内核的微控制器(MCU)制造技术的不断进步,计算机领域在通用计算机系统与嵌入式计算机系统这两大分支分别得以发展。通用计算机已经在科学计算、通信、日常生活等各个领域产生重要影响。在后PC时代,嵌入式系统的广泛应用是计算机发展的重要特征。一般来说,嵌入式系统的应用范围可以粗略分为两大类:一类是电子系统的智能化(如工业控制、汽车电子、数据采集、测控系统、家用电器、现代农业、嵌入式人工智能及物联网应用等),这类应用也被称为微控制器领域;另一类是计算机应用的延伸(如平板电脑、手机、电子图书等),这类应用也被称为应用处理器(MAP)领域。在ARM产品系列中,ARM CortexM系列与ARM CortexR系列适用于电子系统的智能化类应用,即微控制器领域;ARM CortexA系列适用于计算机应用的延伸,即应用处理器领域。不论如何分类,嵌入式系统的技术基础是不变的,即,要完成一个嵌入式系统产品的设计,需要硬件、软件及行业领域相关知识。但是,随着嵌入式系统中软件规模日益增大,业界对嵌入式底层驱动软件的封装提出了更高的要求,可复用性与可移植性受到特别关注,嵌入式软硬件构件化开发方法逐步被业界所重视。
本书在《嵌入式基础与实践》(第6版)基础上重新撰写,样本芯片使用TI公司于2023年推出的基于ARM CortexM0 内核的MSPM0L1306微控制器。《嵌入式基础与实践》(1~6版)先后获得江苏省高等学校重点教材、普通高等教育“十二五”国家级规划教材、国家级一流本科课程教材等荣誉。本书配有可以直接实践的硬件系统AHLMSPM0L1306,具备简洁、便利、边学边实践等优点,克服了实验箱模式的冗余、不方便带出实验室、不易升级等缺点,为探索嵌入式教学模式提供了一种新的尝试。
书中以嵌入式硬件构件及底层软件构件设计为主线,基于嵌入式软件工程的思想,按照通用知识—驱动构件使用方法—测试实例—构件制作过程的顺序,逐步阐述电子系统智能化嵌入式应用的软件与硬件设计。需要特别说明的是,虽然编写教材与教学必须以某一特定芯片为蓝本,但作为嵌入式技术基础,本书试图阐述嵌入式通用知识要素。因此,本书以知识要素为基本立足点设计芯片底层驱动,使得应用程序与芯片无关,具有通用嵌入式计算机(GEC)性质。书中将大部分驱动的使用方法提前阐述,而驱动构件的设计方法后置,目的是让学生先学会使用构件进行实际编程,后理解构件的设计方法。因构件设计方法部分有一定难度,对于有不同要求的教学场景,也可不要求学生理解全部构件的设计方法,讲解一两个构件即可。嵌入式应用技术——基于TI的MSPM0L1306微控制器本书具有以下特点。
(1) 把握了通用知识与芯片相关知识之间的平衡。书中针对嵌入式“通用知识”的基本原理,以应用为立足点,进行语言简洁、逻辑清晰的阐述,同时注意与芯片相关知识之间的衔接,使读者在更好地理解基本原理的基础上,理解芯片应用的设计;反过来也可加深对通用知识的理解。
(2) 把握了硬件与软件的关系。嵌入式系统是软件与硬件的综合体,嵌入式系统设计是一项软件、硬件协同设计的工程,不能像通用计算机那样,将软件、硬件完全分开来对待。特别对于电子系统智能化嵌入式应用来说,没有对硬件的理解就不可能写好嵌入式软件;同样,没有对软件的理解也不可能设计好嵌入式硬件。因此,本书注重把握硬件知识与软件知识之间的关系。
(3) 对底层驱动进行构件化封装。书中对每个模块均给出根据嵌入式软件工程基本原则和构件化封装要求编制的底层驱动程序,同时给出详细、规范的注释及对外接口,为实际应用提供底层构件,方便移植与复用,可以为读者进行实际项目开发节省大量时间。
(4) 设计了合理的测试用例。书中所有源程序均经测试通过,在本书的网上教学资源中也保留了测试用例,为读者验证与理解带来方便,也避免了因例程的书写或固有错误给读者带来烦恼。
(5) 网上教学资源提供了所有模块完整的底层驱动构件化封装程序与测试用例。对于需要使用PC的程序的测试用例,还提供了PC的C#源程序、芯片资料、使用文档、硬件说明等,并制作了课件及微课视频。网上教学资源的版本将会适时更新。
本书由王宜怀、黄河、王佳、王进、钱瑛撰写。苏州大学嵌入式人工智能与物联网实验室的研究生参与了程序开发、书稿整理及有关资源建设,他们卓有成效的工作使得本书更加充实。TI公司的王沁女士、谢胜祥先生为本书提供了许多支持,在此一并表示诚挚的感谢。
鉴于作者水平有限,书中难免存在不足和错误之处,恳望读者提出宝贵意见和建议,以便再版时改进。
苏州大学王宜怀2024年1月
评论
还没有评论。