微控制器原理及应用——基于TI C2000实时微控制器
定 价:59.8 元
丛书名:普通高等教育电子信息类系列教材
- 作者:蔡逢煌 王武 江加辉
- 出版时间:2022/12/1
- ISBN:9787111714828
- 出 版 社:机械工业出版社
- 中图法分类:TP332.3
- 页码:
- 纸张:胶版纸
- 版次:
- 开本:16开
- 字数:(单位:千字)
本书以TI公司C2000系列TMS320F28027PT微控制器为载体,介绍微控制器的基本原理和应用方法。本书以学生认知过程为导向组织内容,从简单到复杂,从模块到系统,按照项目驱动的思路展开教学,着重培养学生的实践应用能力。
全书共14章,分为3部分:第1部分(第1~4章)为系统平台模块,介绍嵌入式系统定义、开发板硬件平台、嵌入式C语言、软件架构和CCS集成开发环境;第2部分(第5~13章)为基本外设模块,分别介绍TMS320F28027PT的*常用外设模块,包括GPIO、中断、定时器、eCAP、ePWM、ADC、SCI、SPI、I2C等,每个模块先介绍通用知识,再介绍TMS320F28027PT相应模块的工作原理、寄存器驱动函数、软件思维导图和应用实例;第3部分(第14章)为综合案例,介绍C2000系列微控制器在电力电子控制系统中的应用,为后续从事微控制器系统的复杂工程设计奠定基础。
本书可作为普通高校电气工程、自动化等专业本科生或研究生的教材,也可供从事电力电子、机电一体化、自动控制等系统开发的工程技术人员参考。
从大学学生时期接触MCS51单片机开始,在学习单片机、使用单片机进行科研工作期间,编者研读了不少优秀的单片机教材和芯片参考手册。近十几年来一直从事单片机的教学工作,时常参加单片机大学计划教学研讨会,聆听了同行们的新教学理念和新想法,因此就有了撰写本书的最初计划。
单片机芯片种类繁多,包括MCS51、摩托罗拉、英飞凌、瑞萨、德州仪器等厂家的单片机,以及最近的ARM系列。编程语言从汇编语言到现在的C语言,芯片内部存储资源不断丰富,C语言的结构化,表明单片机已进入工具化的时代。从2014年起,编者在福州大学自动化专业进行试点,弱化硬件寄存器的讲授,引入软件工程理念,重新构建软件架构,从原理转向应用。理论上任何一种型号的单片机都可以作为案例来讲授这种新观念。
本书选用TI公司的TMS320F28027为研究对象,原因有以下两方面:其一,2002年编者涉足电力电子系统的数字化研究工作,对TI公司不同时期的C2000系列MCU芯片,诸如240、2407、2812、28335、28377D等,都有较好的项目应用经验;其二,得益于TI公司中国大学计划,基于他们无偿提供的几百套LaunchPad开发板,我们建立了移动的单片机实验室。本书选择F28027为脚本,借助它来阐述外设模块的工作原理,读者要跳出这个局限,真正去读懂并领会软件的架构,才是本书真正的“用”意。
简单回忆一下以F28027为脚本的教学历程。2012年,编者开始在电气工程及其自动化专业针对大四学生开设F28027的选修课,参考教材是英文版芯片手册,为学生提供LaunchPad 28027作为实验器材。2014年,“嵌入式系统原理”课程,成为自动化专业学生的专业基础课,2017年该课程更名为“单片机原理及应用”,授课的内容没有变化。为了配合课程建设,课题组在福州大学课程中心建立了“嵌入式系统原理”网络课程,课程的讲稿发布于网络课程上。2014年,编者把课程教案整理汇编成为“嵌入式系统技术基础与实践”,各种原因导致未正式出版。2019年,我们在中国大学MOOC平台上开设了“嵌入式系统原理”课程,自编内容作为线上课程的文本资源。本书成稿时增补了不少内容,如软件思维导图和综合案例介绍等。需要特别说明的是,本书中不管是单片机系统还是嵌入式系统,都是指微控制器(MCU)。
本书提出了一种统一的软件和硬件架构。现有的嵌入式系统课程大多数在外设模块教学时是孤立的,只注重外设模块的功能。该架构设置软件接口实现对外设模块的平行化,不管是功能复杂还是功能简单的外设模块,都是一样的模式。在软件架构上,基于编者多年的教学实践,本书提出了四层架构模型,即主程序层、应用模块层、用户模块层、MCU驱动模块层。该软件架构的特点是上层可以调用下层的模块函数,同一层模块不能互相调用,从而利用分层技术实现软件的“高内聚,低耦合”这一软件工程思想,实现了软件开发和维护的高度灵活性,以及功能模块的复用度。
使用本书时,可以选用德州仪器公司开发的LaunchPad口袋实验室。该口袋实验室集成了编程器、仿真器、28027运行系统、按键和LED显示,功能简单够用,具有小型化和低成本化的特点,可以很好地解决嵌入式类课程的实践问题。借助口袋实验室,学生不需要进入实验室就可以进行实验,打破了传统实验室使用的空间限制,为泛在学习的实践活动提供技术保障。
福州大学科华恒盛电力电子研究中心的研究生陈伟东、雷文浩、石安邦、詹铭松、谢鸿彪、林俊腾、杨富阳、廖淑滢、梁鑫钊、张家翔、龚兴阳和沈明杰等参与了本书的资料整理、硬件设计和代码验证等工作。本书编写过程中,还得到了TI中国大学计划的鼎力支持,在此向他们表示衷心的感谢!
由于时间仓促和水平有限,虽尽力完善,但书中难免有疏漏和不足之处,恳请读者批评指正,以便持续改进。
编者
前言
电子资源一览表
第1章嵌入式系统概述1
1.1嵌入式系统简介1
1.1.1什么是嵌入式系统1
1.1.2嵌入式系统和通用计算机系统的比较1
1.1.3嵌入式系统的特点2
1.1.4嵌入式系统的分类3
1.2MCU简介5
1.2.1MCU的基本组成5
1.2.2MCU的特点7
1.2.3MCU的发展7
1.2.4MCU的应用7
1.3TI C2000系列实时微控制器8
1.3.1C2000系列实时微控制器简介8
1.3.2芯片命名规则9
1.3.3芯片特性9
1.3.4芯片封装12
思考与练习13
第2章C2000系列微控制器及硬件平台14
2.1MCU硬件资源14
2.1.1资源概览14
2.1.2引脚说明15
2.2MCU硬件功能概述19
2.3内存映射23
2.4时钟27
2.5看门狗电路29
2.6低功耗模式30
2.7片内电压调节器/欠电压复位/上电复位31
2.8硬件平台32
2.8.1MCU小系统32
2.8.2LaunchPad实验板32
思考与练习36
第3章微控制器程序设计基础38
3.1编程语言38
3.2汇编语言简介40
3.2.1TMS320C28x汇编指令40
3.2.2CPU 执行指令的过程41
3.3嵌入式C语言简介43
3.3.1数据及其处理43
3.3.2程序流控制46
3.3.3函数49
3.3.4构造型数据类型50
3.3.5指针52
3.3.6编译预处理53
3.3.7C28x IQ数学库介绍54
3.4软件开发工具概述57
思考与练习59
第4章软件架构与CCS集成开发环境60
4.1寄存器的C语言访问60
4.1.1了解GPIO寄存器60
4.1.2使用结构体指针操作寄存器62
4.2软件架构64
4.2.1MCU模块层——固件函数库65
4.2.2用户模块层66
4.2.3应用层67
4.2.4主程序层67
4.3文件管理68
4.4CCS集成开发环境77
4.4.1CCS安装注意事项77
4.4.2创建工作区77
4.4.3导入项目和编译项目78
4.4.4仿真调试82
4.5CMD文件83
4.5.1COFF格式和段的概念83
4.5.2CMD文件简介85
4.6软件的启动引导过程89
4.7将函数从Flash复制到RAM运行91
思考与练习92
第5章通用输入输出口93
5.1GPIO的基础知识93
5.1.1GPIO输出驱动器93
5.1.2GPIO输入驱动器95
5.1.3GPIO引脚管理96
5.2C2000的GPIO模块96
5.2.1GPIO概述96
5.2.2GPIO内部结构97
5.2.3GPIO功能描述97
5.2.4GPIO输入滤波98
5.3GPIO的软件架构99
5.3.1寄存器及驱动函数99
5.3.2软件思维导图102
5.4应用实例——“我的灯,我做主”103
思考与练习106
第6章中断系统107
6.1中断的基础知识107
6.1.1什么是中断107
6.1.2中断的名词术语108
6.1.3中断处理过程108
6.2C2000的中断系统109
6.2.1中断系统概述109
6.2.2PIE内部结构111
6.3中断系统的软件架构121
6.3.1寄存器及驱动函数121
6.3.2软件思维导图123
6.4应用实例——“等待触发,轻松
应对”124
思考与练习128
第7章CPU定时器129
7.1定时器的基础知识129
7.2C2000的定时器130
7.2.1定时器概述130
7.2.2定时器内部结构130
7.2.3定时器功能描述131
7.3定时器的软件架构131
7.3.1寄存器及驱动函数131
7.3.2软件思维导图132
7.4应用实例——“我的时间准”133
思考与练习135
第8章增强型捕获模块137
8.1捕获模块的基础知识137
8.2C2000的eCAP138
8.2.1eCAP概述138
8.2.2eCAP内部结构138
8.2.3eCAP功能描述138
8.3eCAP的软件架构142
8.3.1寄存器及驱动函数142
8.3.2软件思维导图143
8.4应用实例——“捕捉瞬息万变”144
思考与练习147
第9章增强型脉宽调制模块148
9.1PWM的基础知识148
9.1.1PWM概述148
9.1.2PWM信号的产生148
9.2C2000的ePWM149
9.2.1ePWM概述149
9.2.2时基(TB)子模块150
9.2.3计数比较(CC)子模块155
9.2.4动作限定(AQ)子模块157
9.2.5死区(DB)子模块162
9.2.6PWM斩波(PC)子模块165
9.2.7故障联防(TZ)子模块168
9.2.8事件触发与中断管理(ET)
子模块169
9.2.9软件思维导图173
9.3应用实例——“PWM,时间宠儿”175
思考与练习177
第10章模/数转换器179
10.1ADC的基础知识179
10.1.1ADC转换步骤179
10.1.2ADC主要性能参数180
10.1.3ADC主要类型181
10.1.4ADC工作流程182
10.1.5ADC应用注意事项182
10.2C2000的ADC模块183
10.2.1ADC概述183
10.2.2ADC功能框图183
10.2.3ADC功能描述184
10.3ADC的软件架构193
10.3.1寄存器及驱动函数193
10.3.2软件思维导图194
10.4应用实例——“模拟数字两个
世界”196
思考与练习199
第11章串行通信接口200
11.1串行通信的基础知识200
11.1.1串行通信与并行通信200
11.1.2数据位的表示201
11.1.3异步串行通信的帧格式201
11.1.4串行通信的波特率202
11.1.5奇偶校验202
11.1.6串行通信的传输方式202
11.1.7RS-232串口203
11.2C2000的SCI模块203
11.2.1SCI概述203
11.2.2SCI内部结构204
11.2.3SCI功能描述204
11.2.4SCI多机通信模式210
11.3SCI的软件架构212
11.3.1寄存器及驱动函数212
11.3.2软件思维导图213
11.4应用实例——“一定要把数据送
出去”215
思考与练习220
第12章串行外设接口221
12.1SPI的基础知识221
12.1.1SPI总线接口221
12.1.2SPI的工作原理222
12.2C2000的SPI模块223
12.2.1SPI概述223
12.2.2SPI内部结构224
12.2.3SPI功能描述224
12.3SPI的软件架构230
12.3.1寄存器及驱动函数230
12.3.2软件思