第1章 绪论 1
1.1英飞凌嵌入式微控制器的类型 1
1.2英飞凌XC2000家族汽车嵌入式微控制器的主要特点及应用领域 2
1.2.1基本特性 2
1.2.2功能延展性 4
1.2.3开发工具 6
1.2.4应用领域 7
1.3英飞凌TriCoreTM系列汽车嵌入式微控制器的特性简介 12
1.3.1 TriCoreTM TC1.6内核 13
1.3.2外设控制处理器(PCP2) 14
1.3.3存储器及其保护 14
1.3.4一般外设模块 14
1.3.5新型外设模块 15
第2章 系统架构和中央处理单元 17
2.1体系结构 17
2.1.1系统架构 17
2.1.2系统内核 18
2.1.3资源接口 18
2.2中央处理单元(CPU) 19
2.2.2标准特殊功能寄存器(CSFR) 21
2.2.3通用寄存器(GPR)及其使用 30
2.2.4指令读取与流水线处理 32
2.2.5标准数据处理 33
2.3 DSP数据处理单元MAC 36
2.3.1 MAC单元概述 36
2.3.2 MAC单元的功能模块 37
2.3.3 MAC单元状态字MSW 38
第3章 存储器组织与保护 40
3.1存储器概述 40
3.2数据及代码的存储方式 41
3.2.1寄存器区 41
3.2.2 SFR区 42
3.2.3全局GPR组区 42
3.2.4 IMB寄存器区 43
3.2.5 PEC指针 43
3.3 I/O区 43
3.4数据存储区 44
3.4.1 DRPAM 44
3.4.2 DSRAM 44
3.4.3数据保持存储器 44
3.4.4系统堆栈 44
3.5内部程序存储器区 45
3.5.1 PSRAM 45
3.5.2非易失性程序存储器(Flash/ROM) 46
3.5.3 Flash程序存储器 46
3.6外部存储空间及其接口控制 49
3.6.1外部存储器概述 49
3.6.2外部总线控制器 49
3.6.3外部总线访问接口 50
3.6.4地址窗 50
3.6.5 LxBUS访问 52
3.6.6 EBC的关闭 52
3.6.7存储器边界越界 52
3.7存储器保护与校验 53
3.7.1存储器的数据保护 53
3.7.2存储器的数据校验 54
3.7.3 RAM保护 54
3.7.4寄存器保护 55
3.8存储器寄存器 55
3.8.1 IMB寄存器 55
3.8.2 SBRAM寄存器 61
第4章 系统中断与事件控制 66
4.1中断类型与结构 66
4.1.1中断系统的类型 66
4.1.2中断系统的结构 66
4.2中断与事件寄存器 67
4.2.1中断控制寄存器 67
4.2.2 PEC寄存器 70
4.3中断仲裁 72
4.4中断控制 73
4.4.1中断优先级与组优先级 74
4.4.2全局中断控制功能 74
4.4.3中断类管理 75
4.4.4中断向量表 75
4.4.5快速中断 75
4.4.6 CPU状态保存 76
4.4.7 CPU上下文切换 76
4.4.8软件强制中断 77
4.4.9硬件强制中断 77
4.5 PEC 79
4.5.1 PEC介绍 79
4.5.2 PEC源和目的指针 80
4.5.3 PEC通道控制 81
4.5.4 PEC中断 81
4.6外部中断及OCDS请求 82
4.6.1外部中断 82
4.6.2 OCDS请求 82
第5章 系统控制单元 83
5.1 SCU寄存器 83
5.1.1时钟配置寄存器 83
5.1.2 PLL寄存器 84
5.1.3系统时钟控制寄存器 87
5.1.4 STM寄存器 89
5.1.5 WUT寄存器 89
5.1.6复位控制器寄存器 90
5.1.7 ESR寄存器 93
5.1.8电源电压寄存器 96
5.1.9 GSC寄存器 100
5.1.10启动寄存器 103
5.1.11 ERU寄存器 103
5.1.12中断及强制中断控制寄存器 105
5.1.13 WDT内核寄存器 114
5.1.14存储器保护寄存器 115
5.1.15寄存器保护寄存器 119
5.1.16其他寄存器 119
5.2时钟产生 122
5.2.1结构与功能 122
5.2.2振荡器输入 123
5.2.3锁相环 124
5.2.4时钟输出控制 127
5.2.5系统时钟紧急处理 128
5.3定时控制 128
5.3.1系统定时器 128
5.3.2唤醒定时器 128
5.3.3看门狗定时器 129
5.4电源管理 131
5.4.1电源域 131
5.4.2电源电压及控制功能 131
5.4.3电压看门狗 131
5.4.4省电机制 132
5.5系统复位 132
5.5.1复位架构 132
5.5.2复位类型 132
5.5.3一般复位操作 133
5.5.4复位寄存器 134
5.5.5复位请求触发源 134
5.5.6 ESR引脚的复位功能 134
5.6外设模式控制 134
5.6.1 GSC控制流 135
5.6.2请求源仲裁 135
5.6.3命令的使用 135
5.6.4挂起控制流 135
5.7外部请求控制 136
5.7.1概述 136
5.7.2输入连接 137
5.7.3功能模块 137
5.7.4触发组合及其中断产生 138
5.7.5序列检测及其中断产生 139
5.8 SCU中断 139
5.8.1一般中断 139
5.8.2强制中断 140
第6章 输入/输出端口、系统调试与启动配置 141
6.1通用输入/输出端口 141
6.1.1 GPIO概述 141
6.1.2 GPIO的寄存器 141
6.1.3端口描述 144
6.2片上调试系统 145
6.2.1 OCDS概述 145
6.2.2调试接口 146
6.3启动配置和引导程序加载 148
6.3.1启动模式配置与选择 148
6.3.2存储器启动模式 150
6.3.3引导程序加载 150
第7章 实时时钟 152
7.1 RTC功能描述 152
7.2 RTC寄存器 152
7.2.1 RTC控制寄存器 152
7.2.2 RTC中断寄存器 154
7.2.3 RTC计数寄存器及其重载寄存器 154
7.3 RTC工作原理 156
7.3.1概述 156
7.3.2时钟模式 156
7.3.3复位状态 156
7.3.4运行控制 157
7.3.5 RTC中断 157
7.3.6 48位定时器 157
7.3.7 RTC定时器校准 157
7.3.8 RTC寄存器读写访问 158
第8章 通用定时器 159
8.1 GPT的基本功能 159
8.2 GPT的寄存器 159
8.2.1 GPT控制寄存器 159
8.3定时器模块GPT1的工作原理 164
8.3.1 GPT1定时器模块结构与功能描述 164
8.3.2运行控制 165
8.3.3计数方向控制 165
8.3.4定时器T3输出翻转锁存 166
8.3.5工作模式 166
8.4定时器模块GPT2的工作原理 170
8.4.1 GPT2的结构与功能描述 170
8.4.2寄存器CAPREL的工作模式 171
8.4.3组合捕获模式 173
8.4.4 GPT12的中断控制 173
8.5 GPT12的时钟信号控制 173
8.5.1 GPT1定时器模块的时钟信号控制 173
8.5.2 GPT2定时器模块的时钟信号控制 174
第9章 模数转换器 175
9.1 ADC的结构与功能 175
9.1.1 ADC结构 175
9.1.2基本功能 176
9.2 ADC寄存器 177
9.2.1 ADC的一般寄存器 177
9.2.2 ADC的仲裁器寄存器 179
9.2.3 ADC的通道寄存器 180
9.2.4 ADC的结果寄存器 182
9.2.5 ADC的请求源寄存器 185
9.2.6队列寄存器 186
9.2.7 ADC的附加特性寄存器 189
9.3 ADC的工作原理 191
9.3.1模式控制 191
9.3.2模块激活和省电模式 192
9.3.3 ADC模块时钟 193
9.3.4请求源 193
9.3.5请求源仲裁器 194
9.3.6扫描请求源处理 196
9.3.7通道转换控制 199
9.3.8转换结果处理 201
9.3.9 ADC事件中断 205
9.3.10外部复用器控制 208
9.3.11同步转换 209
9.3.12等间隔采样 210
9.3.13断线检测 211
第10章 捕获与比较单元2 212
10.1 CAPCOM2的结构与功能 212
10.1.1 CAPCOM2的结构 212
10.1.2 CAPCOM2的基本功能 213
10.2 CAPCOM2的寄存器 213
10.2.1 CAPCOM2的控制寄存器 213
10.2.2 CAPCOM2的中断控制寄存器 216
10.2.3 CAPCOM2的数据寄存器 216
10.3 CAPCOM2的工作原理 217
10.3.1比较输出的时序工作模式 217
10.3.2定时器的工作模式 217
10.3.3捕获/比较通道 218
10.3.4捕获模式操作 219
10.3.5比较模式操作 219
10.3.6双寄存器比较模式操作 223
10.3.7比较输出信号的产生 225
10.3.8单次事件操作 225
10.3.9对外部输入信号的要求 226
10.3.10 CAPCOM2模块的中断 226
第11章 捕获与比较单元6 227
11.1 CCU6的结构与功能 227
11.1.1 CCU6的结构 227
11.1.2 CCU6的基本功能 228
11.1.3模式控制 228
11.2 CCU6的寄存器 230
11.2.1通用控制寄存器 230
11.2.2捕获/比较控制寄存器 231
11.2.3调制功能寄存器 235
11.2.4多通道模式输出映射寄存器 237
11.2.5中断控制/状态寄存器 238
11.2.6 T12数据寄存器 243
11.2.7 T13数据寄存器 244
11.3定时器T12的工作原理 245
11.3.1结构和功能 245
11.3.2工作模式 247
11.3.3比较模式输出路径 253
11.3.4捕获模式 256
11.3.5映射寄存器传送 258
11.4定时器T13的工作原理 259
11.4.1结构与功能 259
11.4.2计数操作 261
11.4.3比较模式 262
11.4.4比较模式输出路径 264
11.4.5映射寄存器传送 265
11.5霍尔传感器模式 265
11.5.1功能描述 266
11.5.2霍尔序列评估 266
11.5.3霍尔序列比较逻辑 267
11.5.4霍尔模式标志位 268
11.5.5实现无刷直流电机控制的霍尔模式 268
11.6中断处理 269
11.6.1中断结构 269
11.6.2中断请求源和中断事件 270
第12章 通用串行接口 271
12.1结构与功能 271
12.1.1 USIC功能 271
12.1.2 USIC结构 272
12.2 USIC的寄存器 276
12.2.1模块寄存器 276
12.2.2通道寄存器 277
12.2.3波特率发生器寄存器 279
12.2.4输入控制寄存器 280
12.2.5传送控制和状态寄存器 281
12.2.6协议相关寄存器 284
12.2.7数据缓存寄存器 285
12.2.8 FIFO缓存寄存器 288
12.3 USIC的工作原理 295
12.3.1 USIC通道的操作 295
12.3.2通道事件和中断 296
12.3.3 USIC的输入级 298
12.3.4波特率发生器 299
12.3.5发送数据通路 302
12.3.6接收数据通路 305
12.3.7 FIFO数据缓存 305
12.3.8 FIFO缓存事件和中断 309
12.4异步串行通道(UART)及其USIC操作 310
12.4.1信号描述 310
12.4.2 UART帧格式 311
12.4.3 UART协议寄存器 313
12.4.4 UART协议的USIC操作 315
12.4.5 LIN的硬件支持 319
12.5同步串行通道(SPI/SSC)及其USIC操作 320
12.5.1信号描述 320
12.5.2 SPI/SSC协议寄存器 323
12.5.3 SPI/SSC协议的USIC操作 325
12.5.4 SPI/SSC的主控模式 327
12.5.5 SPI/SSC的从控模式 330
12.5.6 SPI/SSC协议事件中断 330
12.6 I2C总线协议及其USIC操作 331
12.6.1信号描述 331
12.6.2帧格式及符号时序 332
12.6.3 I2C协议寄存器 335
12.6.4 I2C协议的USIC操作 337
12.6.5数据流处理 340
12.6.6 I2C协议中断事件 342
第13章 局域网控制器(MultiCAN) 343
13.1结构与功能 343
13.1.1 MultiCAN特性 343
13.1.2模块结构与频率控制 344
13.1.3模式控制 346
13.1.4中断结构 348
13.2 MultiCAN的寄存器 348
13.2.1寄存器类型及其相对地址 348
13.2.2通用模块控制寄存器 350
13.2.3面板命令控制寄存器 352
13.2.4模块设置寄存器 353
13.2.5节点寄存器 356
13.2.6报文对象寄存器 361
13.3 MultiCAN模块的操作 368
13.3.1 CAN节点控制 368
13.3.2报文对象列表结构 370
13.3.3 CAN节点分析模式 373
13.3.4报文后处理接口 375
13.3.5报文对象数据处理 376
13.3.6报文对象功能 380
第14章 汇编指令系统 385
14.1寻址模式 385
14.1.1寻址模式概述 385
14.1.2操作数类型 385
14.2指令的数据类型及条件码 385
14.2.1数据类型 385
14.2.2数字的表示和舍入 386
14.2.3条件码 386
14.3汇编指令 386
14.3.1指令格式 386
14.3.2算术运算指令 387
14.3.3逻辑运算指令 388
14.3.4比较和循环控制指令 388
14.3.5布尔位操作指令 388
14.3.6移位指令 389
14.3.7数据传送指令 389
14.3.8系统堆栈指令 389
14.3.9跳转指令 390
14.3.10子程序调用指令 390
14.3.11子程序返回指令 390
14.3.12系统控制指令 391
14.3.13优化指令 391
第15章 最小系统的硬件设计 392
15.1 XC2238N微控制器概述 392
15.1.1基本特性 392
15.1.2 XC2238N的芯片引脚 393
15.1.3电气特性 394
15.2电源、复位与时钟电路设计 396
15.2.1电源电路 396
15.2.2复位电路 397
15.2.3外部振荡器电路 397
15.3调试系统电路接口与配置 398
15.3.1 JTAG调试接口 398
15.3.2 DAP调试接口 399
15.3.3启动模式接口电路配置 400
15.4 SCH和PCB设计概要 401
15.4.1 XC2238N最小系统原理图 401
15.4.2空引脚处理 401
15.4.3电源和晶振PCB布置 403
第16章 嵌入式C程序开发方法 404
16.1开发流程 404
16.2数字应用虚拟工程师(DAvE) 405
16.2.1 DAvE的安装 405
16.2.2 DAvE的应用简介 406
16.2.3目标系统扫描 409
16.3集成开发环境(IDE) 410
16.3.1 TASKING编译器简介 410
16.3.2 TASKING VX-toolset的安装与应用简介 411
16.3.3 KEIL编译器 414
16.4调试器/仿真器 414
16.4.1 iSYSTEM 415
16.4.2 LAUTERBACH 424
16.4.3其他调试开发工具 426
16.5编程工具 427
16.5.1 Memtool 427
16.5.2 SMH 427
16.5.3 Xeltek 427
16.5.4 HiLo 428
第17章 嵌入式C语言代码设计 429
17.1数据类型与变量 429
17.1.1数据类型 429
17.1.2常量与变量 430
17.2存储器的使用规则 431
17.2.1存储器类型修饰符 431
17.2.2带存储器类型修饰符的指针 432
17.2.3存储器模式 432
17.2.4绝对地址的分配 433
17.2.5位访问 433
17.3函数的使用规则 435
17.3.1函数的调用声明 435
17.3.2函数的返回地址声明 435
17.3.3函数的参数传递规则 435
17.3.4函数的返回值规则 436
17.3.5堆栈的使用 436
17.3.6通用寄存器的使用 437
17.3.7中断函数 438
17.4修饰符及pragma预处理命令 438
17.4.1 auto修饰符 438
17.4.2 static修饰符 439
17.4.3 register修饰符 439
17.4.4 extern修饰符 439
17.4.5 void修饰符 440
17.4.6 volatile修饰符 440
17.4.7 pragma预处理命令 441
17.5工程 442
17.5.1 DAvE创建的工程文件结构 442
17.5.2 TASKING VX-toolset中生成的工程文件 443
17.6汽车嵌入式系统C语言设计的MISRA规则 444
17.6.1环境 444
17.6.2编程语言扩展 444
17.6.3文件 444
17.6.4字符集 445
17.6.5标识符 445
17.6.6类型 445
17.6.7常数 445
17.6.8声明和定义 445
17.6.9初始化 446
17.6.10算术类型转换 446
17.6.11指针类型转换 446
17.6.12表达式 446
17.6.13控制语句表达式 447
17.6.14控制流程 447
17.6.15开关语句 448
17.6.16函数 448
17.6.17指针和数组 448
17.6.18结构和联合 448
17.6.19预处理命令 449
17.6.20标准库 449
17.6.21运行时间失败 450
第18章 汽车嵌入式实时系统应用 451
18.1系统概述 451
18.2功能实现 452
18.2.1 GPT1/CAN/ADC/USIC模块功能 452
18.2.2 CCU6模块 453
18.3 DAvE配置方法 454
18.3.1配置GPT1模块 454
18.3.2配置MultiCAN模块 456
18.3.3配置USIC模块 460
18.3.4配置ADC模块 462
18.3.5配置CCU60模块 463
18.3.6配置中断优先级 469
18.4代码编译 470
18.4.1添加用户代码到GPT模块5ms中断函数 470
18.4.2添加用户代码到CAN接收中断函数 470
18.4.3添加用户代码到USIC0 CH0接收中断函数 470
18.4.4添加用户代码到ADC0结果寄存器0中断函数 471
18.4.5添加用户代码到CCU60中断函数 471
附录A 缩略语 473
参考文献 476