账号: 密码:      免费注册  忘记密码?
2018年09月21日
HCSBDM_V2驱动安装视频
Codewarrior for HCS12 5.0
HCSBDM_V2驱动安装视频
  Codewarrior for HCS12 5.0
  HCSBDM_V2驱动安装视频
  Codewarrior for HCS12 5.0
飞司卡尔技术讨论QQ群现有
  1号群(25045936)、2号群(43055144)
  3号群(3641537)、4号群(67038575)
  5号群(59176620)
飞司卡尔技术讨论QQ群,都已满,要加入的人不一定能及时加入,忘见谅。
Add:北京市海淀区上地十街辉煌国际广场3号楼818室
Tel:010-62669831/62669931/62669293
FAX:010-62669293-612
E-mail:support@free-tech.com.cn
http//www.free-tech.com.cn
首页 >> 图书推荐

嵌入式系统——使用HCS12微控制器的设计与应用

定价:39 元 出版日期:20110110
作者:王宜怀 刘晓升 等著 开本:787 mm×960 mm 1/16开
书号: 字数:582千字
配盘:有 点击次数0
丛书名:  
内容简介

我谨代表Freescale(飞思卡尔)半导体公司祝贺《嵌入式系统——使用HCS12微控制器的设计与应用》一书的出版,并对本书作者和出版社同仁的辛勤劳动表示诚挚的感谢。

该书以Freescale 16位微控制器HCS12系列的带CAN总线接口的DG128和带USB 20接口的UF32为蓝本阐述嵌入式系统的软件与硬件设计,并在程序规范、面向硬件封装等方面下了不少功夫。作者给出的C语言子函数具有清晰的入口、出口及功能说明,不仅有利于教学,也可以方便地用于实际的嵌入式系统工程中。

Freescale半导体公司其前身为Motorola(摩托罗拉)半导体产品部,2004年从Motorola公司分拆上市。Motorola公司从1953年开始从事半导体业务,是世界半导体产业与技术的开拓者。Freescale半导体公司是全球最大的半导体公司之一,在微控制器领域长期居全球市场领先地位,如在2007年6月推出业内第一的针脚兼容的8位与32位微控制器——QE128系列。
Freescale公司的微控制器产品系列齐全,由位数(8位、16位、32位等)不同,封装形式(DIP、SOIC、QFP等)不同,温度范围不同,所含模块不同等构成了庞大的Freescale微控制器产品系列,应用于嵌入式系统的各个领域,以可靠性高、性价比高和应用方便引导微控制器的发展。

Freescale半导体公司秉承Motorola公司一贯重视与学界合作的传统,全力培育本地化的工程人才,通过“大学计划”开展与国内大学在教学与应用研究方面的合作,目前已与中国教育部合作在清华大学、上海交大、东北大学、北京航空航天大学、苏州大学、天津大学、电子科技大学等14所大学建立了示范教学实验室,在50多所大学建立了嵌入式处理器(MCU/DSP)开发应用研究中心或实验中心,持续举办了全国性的应用设计大奖赛和“飞思卡尔”杯全国大学生智能车竞赛。各相关学校在嵌入式系统科研和人才培养方面均取得了许多可喜的成绩,包括各种应用设计,有的已经产业化。本书的出版是苏州大学飞思卡尔嵌入式系统实验室各位老师工作的又一项成果,是他们多年来从事Freescale微控制器研究、开发与教学培训工作的总结,相信本书的出版将会大大推动这项技术的推广与发展。我期待有更多的大学加入到Freescale公司的“大学计划”中来,进一步推进中国嵌入式处理器应用技术的研发与教学工作,以推动嵌入式产业发展和人才培养。

前  言

嵌入式系统一词已经普及,其应用前景也得到普遍认可。关于嵌入式系统的书籍越来越多,要想在浩瀚的书海中找到对自己有用的嵌入式系统书籍则需要一番审视。本书以Freescale 16位微控制器HCS12系列的两个典型型号: 带CAN总线接口的DG128和带USB 2.0接口的UF32为蓝本阐述嵌入式系统的软件与硬件设计。其主要目标是帮助读者逐步掌握嵌入式系统的软件与硬件设计基础,引导读者如何进入嵌入式系统软件与硬件设计的大门。比本书稍早一些出版的还有我们撰写的另外一本书《嵌入式技术基础与实践》(清华大学出版社,2007年11月),是以Freescale 8位微控制器HC08/S08为蓝本阐述嵌入式软件与硬件设计的。两本书的结构相同,与芯片无关部分的内容是一致的。

许多人希望学习嵌入式系统却不知道从哪里入门。有些人参加过几次嵌入式系统类培训班,或者看了几本嵌入式系统方面的书籍,也还是不会开发一个甚至是很小的嵌入式产品。于是提出这样的问题: 嵌入式系统涵盖哪些内容?如何能够在短时间内进入嵌入式系统的大门?实际上,要想掌握嵌入式系统,必须边学习、边进行应用实践。不进行应用实践,不可能学好嵌入式系统。

第一,嵌入式系统涵盖哪些内容?首先是嵌入式系统的软件和硬件基础,这是本书的目标。嵌入式系统与硬件紧密相关,没有对硬件的理解就不可能写好嵌入式软件,同样没有对软件的理解也不可能设计好嵌入式硬件。因此嵌入式系统基础应该包含软件与硬件两个方面。其次是理解与应用实时操作系统并在实时操作系统进行嵌入式软件的开发。再次是嵌入式测试与嵌入式系统软件工程等知识。

第二,如何能够在短时间内进入嵌入式系统的大门?嵌入式系统源于计算机在测量与控制系统(简称测控系统)中的应用,因此现代测控系统是典型嵌入式系统。几乎所有嵌入式系统都可以简化成一个测控系统模型。以测控系统模型为目标对象进入嵌入式系统的大门是合适的。其主要内容有通用输入/输出、键盘、液晶显示(LCD)、数码管(LED)、数/模与模/数转换(A/D与D/A)、串行通信接口(SCI)、串行外设接口(SPI)、集成电路互联总线(I2C或IIC、I2C)、定时器、PWM等。还可以包括USB、CAN、嵌入式以太网及各种具体应用等。这是嵌入式系统的软件和硬件基础中主要内容。至于实时操作系统、嵌入式测试与嵌入式系统软件工程等知识必须在此基础上进行。因此,选择合适的入门书,购买必要的硬件材料,进行各个模块或基本要素的规范编程实践,是进入嵌入式系统大门的重要途径。

本书特点:

(1) 配套光盘提供了大量按嵌入式软件工程规范编写的实例源程序。所有源程序,不仅给出了详细规范的中文注释,而且子函数的设计尽可能满足“面向硬件对象封装”的要求,按照面向“硬件对象”的规范进行定义。书中提供的所有工程均在MTIDE for HCS12集成开发环境与CodeWarrior for HCS12集成开发环境下调试通过,所有C语言子函数文件及主函数main.c文件均在两个开发环境下通用。光盘中所提供的实例源程序涵盖了S12系列中常用的3种芯片DG128、UF32及NE64的常用功能模块。

(2) 体现理论与实践的平衡、通用与具体对象的平衡。在原理阐述方面,主要为应用打基础,立足点在应用。为了体现“通用”,书中把一些基本原理,按照“芯片无关”的方式进行阐述或编程,然后再结合具体芯片进行分析,使读者能更好地理解基本原理。

(3) 以应用为主线,按照教学特点展开。在内容阐述上,突出如何应用、如何设计与编程,从应用角度理解基本原理。在内容的先后次序与组织形式、知识点安排等方面进行了细致的设计,将实例设计成最能体现基本知识点的形式。对于一时难以理解的细节,可以从整体上把握,直接使用书中给出的子函数,通过一些应用后逐步理解,以掌握嵌入式应用的设计方法。

如何寻找本书的软件与硬件:

本书配套的开发软件、硬件资料、实例源程序、芯片资料等可在随书所附光盘中找到,也可从http://sumcu.suda.edu.cn或http://www.szmcu.cn下载,相关的硬件环境信息及咨询方式也可从该网站获得。

作者分工与致谢:

本书由王宜怀负责编制提纲和统稿工作,郭芸撰写第3~5章,刘晓升撰写第6~8章,曹金华撰写第9、10章及附录,其余各章由王宜怀撰写。聂章龙和王林也参与了本书的撰写工作。

Freescale半导体公司一直关心、支持苏州大学Freescale嵌入式系统实验室的建设,为本书的撰写提供了硬件及软件资料,在此表示诚挚的谢意。苏州大学计算机科学与技术学院嵌入式应用方向2005~2007级研究生参与了书中程序编写与调试及书稿整理工作,在此一并致谢。

鉴于作者水平有限,书中难免存在不足和错误之处,恳望读者提出宝贵意见和建议,以便再版时改进。
目  录

第1章  嵌入式系统入门导引1

1.1  嵌入式系统的含义与发展历史1
 
1.1.1  嵌入式系统与单片机1

1.1.2  MCU的发展简史3

1.2  嵌入式系统常用术语4

1.2.1  与硬件相关的术语5

1.2.2  与通信相关的术语6

1.2.3  与功能模块相关的术语7

1.2.4  与嵌入式软件相关的术语8

 1.3  嵌入式系统开发方法导引8

1.3.1  嵌入式产品的一般构成9

1.3.2  嵌入式产品的一般开发方法10

1.4  嵌入式系统的特点与学习建议13

1.4.1  嵌入式系统的特点13

1.4.2  嵌入式系统的学习建议14

 练习题16

第2章  HCS12/HCS12X系列MCU简介与MC9S12DG128的最小系统17

2.1  HCS12系列MCU概述17

2.1.1  HCS12系列MCU的命名规则17

2.1.2  HCS12各子系列MCU简介18

2.2  HCS12X系列MCU概述20

2.2.1  HCS12X系列MCU与HCS12系列MCU的主要差异20

2.2.2  典型HCS12X系列MCU简介22

2.2.3  HCS12X系列MCU中的新增模块简介23

2.3  MC9S12DG128 MCU及其最小系统23

2.3.1  MCU性能概述24

2.3.2  运行模式24

2.3.3  内部结构简图、引脚图及引脚功能25

2.3.4  MC9S12DG128 MCU的最小系统设计30

2.4  MC9S12DG128的存储器映像33

2.5  MC9S12DG128 MCU的并行I/O接口35

2.5.1  I/O接口的基本概念35

2.5.2  A口、B口、E口和K口36

2.5.3  H口、J口、M口、P口、S口和T口37

2.5.4  其他I/O口41

练习题41

第3章  CPU12核42

3.1  CPU12基本构成42

 3.2  寻址方式45

 3.3  指令系统48

3.3.1  数据传送类指令50

3.3.2  算术运算类指令53

3.3.3  位操作类指令60

3.3.4  移位类指令61

3.3.5  程序控制类指令64

3.3.6  模糊指令66

3.3.7  其他指令67

3.4  CPU12与CPU08的比较70

3.5  CPU12汇编语言基础71

3.5.1  HCS12汇编源代码格式71

3.5.2  MTIDE for HCS12开发环境中的汇编伪指令73

3.5.3  CodeWarrior for HCS12开发环境中的汇编伪指令75

练习题77

第4章  HCS12工程组织及第一个样例程序78

4.1  HCS12开发环境78

4.1.1  MTIDE for HCS12集成开发环境78

4.1.2  CodeWarrior for HCS12集成开发环境80

4.2  嵌入式系统工程文件81

4.2.1  嵌入式系统工程文件组织81

4.2.2  列表文件(*.lis或*.lst)83

4.2.3  目标代码文件(*.s19文件)83

4.2.4  与链接相关的地址信息文件85

4.3  MT环境下的第一个汇编工程86

4.3.1  小灯闪烁汇编工程在MT环境下的文件组织86

4.3.2  MT环境下第一个汇编工程的链接信息文件93

4.3.3  MT环境下第一个汇编工程的执行过程95

4.4  MT环境下的第一个C工程95

4.4.1  小灯闪烁C工程在MT环境下的文件组织95

4.4.2  MT环境下第一个C工程的链接信息文件97

4.4.3  MT环境下第一个C工程的执行过程99

4.5  CW环境下的第一个汇编工程100

4.5.1  小灯闪烁汇编工程在CW环境下的文件组织100

4.5.2  CW环境下第一个汇编工程中的链接信息文件101

4.5.3  CW环境下第一个汇编工程的执行过程102

4.6  CW环境下的第一个C工程103

4.6.1  小灯闪烁C工程在CW环境下的文件组织103

4.6.2  CW环境下第一个C工程中的链接信息文件104

4.6.3  CW环境下第一个C工程的执行过程104

4.7  MT环境与CW环境的工程互移说明104

练习题105

第5章  串行通信接口SCI106

5.1  异步串行通信的基础知识106

5.1.1  基本概念106

5.1.2  RS232C总线标准108

5.2  电平转换电路与SCI通用编程原理109

5.2.1  SCI的外围硬件电路110

5.2.2  SCI的基本编程原理111

5.3  DG128 SCI模块寄存器112

5.3.1  SCI波特率寄存器113

5.3.2  SCI控制寄存器1113

5.3.3  SCI控制寄存器2114

5.3.4  SCI状态寄存器1115

5.3.5  SCI状态寄存器2116

5.3.6  SCI数据寄存器116

5.4  串行口初始化与收发编程的基本方法117

5.4.1  SCI初始化117

5.4.2  发送一个数据与接收一个数据118

5.5  串行通信通用函数与测试实例119

5.5.1  串行通信子函数119

5.5.2  查询方式收发测试工程122

5.6  有关串行通信编程的进一步讨论127

5.6.1  将串口端用作电源127

5.6.2  握  手128

5.6.3  唤醒功能128

练习题129

第6章  键盘、LED与LCD130

6.1  DG128键盘技术概述130

6.1.1  键盘模型及接口130

6.1.2  键盘的基本问题132

6.2  HCS12 C语言键盘模块编程实例133

6.2.1  键盘函数定义头函数(KB.h)134

6.2.2  键盘函数定义(KB.c)134

6.2.3  测试工程的主函数(main.c)137

6.3  数码管编程实例138

6.3.1  扫描法LED显示编程原理138

6.3.2  接口实例140

6.3.3  数码管HCS12 C语言实例141

6.4  LCD技术概述144

6.4.1  LCD的特点144

6.4.2  LCD的分类145

6.5  点阵字符型LCD的接口特性146

6.5.1  点阵字符型液晶显示模块的基本特点146

6.5.2  HD44780的引脚与时序146

6.5.3  HD44780的编程结构148

6.5.4  HD44780的指令集151

6.6  点阵字符型LCD编程实例152

6.6.1  LCD函数定义头文件(LCD.h)153

6.6.2  LCD函数定义(LCD.c)153

6.6.3  测试工程的主函数(main.c)157

练习题158

第7章  SPI和I2C模块及其应用实例159

7.1  SPI的基本工作原理159

7.1.1  功能描述159

7.1.2  SPI模块的I/O引脚160

7.2  SPI模块的编程基础161

7.2.1  SPI模块的寄存器161

7.2.2  SPI编程基本方法165

7.3  SPI的进一步讨论167

7.4  I2C模块167

7.4.1  I2C总线的特点168

7.4.2  I2C总线标准的发展历史168

7.4.3  I2C总线的相关术语169

7.5  I2C总线工作原理169

7.5.1  I2C总线上的数据有效性170

7.5.2  I2C总线上的信号170

7.5.3  I2C总线上的数据传输格式172

7.5.4  I2C总线上的寻址约定172

7.5.5  主机向从机读/写1字节数据的过程173

7.6  I2C模块的编程基础174

7.6.1  DG128芯片的I2C模块174

7.6.2  I2C模块寄存器介绍174

7.6.3  I2C模块编程180

7.7  I2C模块的进一步讨论186

7.7.1  仲裁程序186

7.7.2  时钟同步186

7.7.3  握  手186

7.7.4  时钟周期延长187

练习题187

第8章  A/D转换和D/A转换188

8.1  A/D和D/A转换的基本问题188

8.1.1  A/D转换基本问题189

8.1.2  A/D转换器189

8.1.3  D/A转换基本问题190

8.1.4  D/A转换器191

8.2  DG128内部的A/D转换模块192

8.2.1  DG128内部A/D转换模块寄存器193

8.2.2  A/D转换模块的基本编程方法200

8.3  DG128内部A/D转换编程实例202

8.3.1  A/D转换的C语言头函数(ADC.h)202

8.3.2  A/D转换的C语言子函数(ADC.c)202

8.3.3  A/D转换测试实例主函数(main.c)205

8.4  高位A/D扩展接口206

8.4.1  A/D转换器TLC2543概述206

8.4.2  SPI模块与TLC2543的接口扩展208

8.5  扩展实现D/A转换212

8.5.1  D/A转换器TLV5608概述212

8.5.2  SPI模块与TLV5608的接口实现213

8.5.3  扩展D/A转换的程序实现214

8.6  常用传感器216

8.6.1  热敏电阻温度传感器216

8.6.2  灰度传感器217

8.6.3  超声波传感器218

8.6.4  红外线传感器218

练习题219

第9章  定时器接口模块220

9.1  计数器/定时器的基本工作原理220

9.1.1  实现计数与定时的基本方法220

9.1.2  MC9S12DG128B MCU的定时接口基本原理概述221

9.2  定时器模块的编程基础224

9.2.1  定时器模块的3类基本寄存器224

9.2.2  定时器模块的中断226

9.2.3  定时溢出中断编程C语言程序实例(MCU方程序)226

9.3  定时器模块的输入捕捉功能228

9.3.1  输入捕捉的基本含义228

9.3.2  输入捕捉寄存器229

9.3.3  带缓冲和不带缓冲的输入捕捉通道234

9.3.4  输入捕捉中断编程C语言程序实例235

9.4  定时器模块的输出比较功能236

9.4.1  输出比较的基本含义236

9.4.2  输出比较寄存器237

9.5  定时器模块的脉冲累加功能240

9.5.1  脉冲累加的基本含义240

9.5.2  脉冲累加寄存器240

9.5.3  脉冲累加器编程C语言程序实例(MCU方程序)246

练习题248

第10章  CAN总线及其应用249

10.1  CAN技术规范249

10.1.1  CAN的基本概念249

10.1.2  CAN的分层结构252
 
10.1.3  报文传输和帧结构252

10.1.4  位定时与同步256

10.2  MSCAN12模块简介257

10.2.1  MSCAN12特性258

10.2.2  外部引脚258

10.2.3  报文存储结构258

10.2.4  标识符验收滤波260

10.3  MSCAN12模块的内存映射及寄存器定义263

10.3.1  MSCAN12模块内存映射263

10.3.2  MSCAN12模块寄存器264

10.4  MSCAN12模块的自环通信实例276

10.4.1  MSCAN12初始化276

10.4.2  MSCAN12自环通信方式测试工程282

练习题286

第11章  Flash存储器的在线编程287

11.1  Flash存储器概述287

11.2  Flash存储器分页机制288

11.3  DG128 Flash存储器编程方法290

11.3.1  DG128 Flash模块寄存器290

11.3.2  DG128 Flash存储器擦除与写入的步骤293

11.4  DG128 Flash擦/写函数的测试工程297

11.4.1  Flash测试工程的主函数及有关技术分析297

11.4.2  Flash测试工程的结构299

11.5  DG128 Flash存储器的保护特性和安全性300

11.5.1  DG128 Flash存储器的保护特性300

11.5.2  DG128 Flash存储器的安全性302

11.6  S12系列MCU的Flash存储器编程306

11.6.1  几款常用S12 MCU存储空间分配情况的对比306

11.6.2  几款常用S12 MCU Flash存储器的编程要点306

练习题307

第12章  系统时钟与其他功能模块308

12.1  时钟和复位产生模块概述308

12.1.1  锁相环技术308

12.1.2  CRG模块的结构框图310

12.2  CRG模块的编程方法311

12.2.1  CRG模块寄存器311
 
12.2.2  PLL编程实例315

12.3  CRG模块的其他功能317

12.3.1  工作模式317

12.3.2  CRG的复位信号产生功能318

12.3.3  中  断319

12.4  HCS12系列非常用特殊功能模块320

练习题321

第13章  μC/OSⅡ在S12上的移植与应用322

13.1  实时操作系统概述322

13.1.1  实时操作系统基本含义和要求322

13.1.2  任务和多任务323

13.1.3  RTOS的常用术语323

13.1.4  RTOS的现状325

13.2  嵌入式实时操作系统μC/OSⅡ326

13.2.1  μC/OSⅡ简介326

13.2.2  μC/OSⅡ与几种RTOS的比较327

13.2.3  μC/OSⅡ中的任务328

13.2.4  μC/OSⅡ用户应用程序的一般结构329

13.3  μC/OSⅡ的任务划分330

13.3.1  任务划分的目标331

13.3.2  任务划分的方法331

13.4  μC/OSⅡ在MC9S12DG128上的应用实例333

13.4.1  基于μC/OSⅡ的应用实例333

13.4.2  基于RTOS的与无RTOS实例的比较337

13.5  μC/OSⅡ在MC9S12DG128上的移植337

13.5.1  定义内核的大小和功能338

13.5.2  与硬件相关的代码340

练习题344

第14章  基于UF32的USB 2.0应用345

14.1  USB接口的基本知识345

14.1.1  USB概述345

14.1.2  USB 1.1与USB 2.0之间的差别346

14.1.3  USB主机347

14.1.4  USB设备348

14.2  USB物理特性350

14.2.1  USB接口350

14.2.2  USB信号351

14.2.3  检测设备连接与速度353

14.3  USB的通信协议353

14.3.1  包354

14.3.2  信息包格式356

14.3.3  事  务357

14.3.4  USB传输类型359

14.3.5  设备列举361

14.4  MC9S12UF32芯片介绍365

14.4.1  MC9S12UF32概述365

14.4.2  UF32 USB模块介绍367

14.5  USB 2.0模块编程方法368

14.5.1  USB 2.0模块寄存器介绍368

14.5.2  USB 2.0模块编程步骤及相关程序380

14.5.3  USB 2.0模块应用PC机方程序386

练习题38

附录A  Freescale公司MCU常用封装形式及实际尺寸389

附录B  实验开发HCS12 MCU的硬件平台391

B.1  扩展板MTExtend Board391

B.2  核心板MTCore393

B.3  HCS12写入调试器MTProgrammer393

附录C  本书配套教学资料目录结构395

附录D  苏州大学Freescale嵌入式系统实验室已有核心板及评估板396