《嵌入式系统 使用HCS12微控制器的设计与应用》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:王宜怀,刘晓升等著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2008
  • ISBN:7811242613
  • 页数:397 页
图书介绍:本书共15章,其中1~4章为导引,主要以DG128微控制器为蓝本介绍嵌入式应用的硬件与软件基础;第5~12章,为嵌入式系统的基本应用;第13~15章,分别给出μC/OS-Ⅱ在S12上的移植与应用、基于UF32的USB 2.0应用、基于NE64的嵌入式以太网。

第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 MT-IDE for HCS12开发环境中的汇编伪指令 73

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

练习题 77

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

4.1 HCS12开发环境 78

4.1.1 MT-IDE 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章 串行通信接口SCI 106

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

5.1.1 基本概念 106

5.1.2 RS-232C总线标准 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控制寄存器1 113

5.3.3 SCI控制寄存器2 114

5.3.4 SCI状态寄存器1 115

5.3.5 SCI状态寄存器2 116

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与LCD 130

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 MC9S12DG128BMCU的定时接口基本原理概述 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

练习题 388

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

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

B.1 扩展板MT-Extend Board 391

B.2 核心板MT-Core 393

B.3 HCS12写入调试器MT-Programmer 393

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

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

参考文献 398