1 概论 1
1.1 Motorola微处理器和单片机 1
1.2 MC68332主要特性及组成模块 2
1.2.1 MC68332主要特性 2
1.2.2 MC68332的组成模块 3
2 MC68332引脚信号和硬件配置 8
2.1 引脚信号 8
2.1.2 数据总线(Data Bus)D15~D0 9
2.1.1 地址总线(Address Bus)A23~A0 9
2.1.3 功能码(Function Code)FC2~FC0 10
2.1.4 芯片选择(Chip Selects)CS10~CS0,CSBOOT 11
2.1.5 总线控制信号(Bus Control Signals) 11
2.1.6 总线仲裁信号(Bus Arbitration Signals) 11
2.1.7 中断请求优先级(Interrupt Request Level)IRQ7~IRQ1 12
2.1.8 异常情况控制信号(Exception Control Signals) 12
2.1.9 时钟信号(Clock Signals) 12
2.1.10 测试信号(Test Signals) 13
2.1.12 队列串行模块信号(Queued Serial Module Signals) 14
2.1.11 定时处理器信号(Time Processing Unit Signals) 14
2.1.13 RAM后备电源(Standby RAM)VSTBY 15
2.1.14 合成器电源(Synthesizer Power)VDDSYN 15
2.1.15 系统电源和地(System Power and Ground)VDD,VSS 15
2.2 硬件配置 15
2.2.1 电源配置和引脚电特性 16
2.2.2 系统时钟 16
2.2.3 外部复位与低电压保护 17
3.1 CPU32结构 20
3 CPU和存储器 20
3.2 CPU32寄存器 21
3.2.1 数据类型 22
3.2.2 数据寄存器 22
3.2.3 地址寄存器 23
3.2.4 程序计数器 24
3.2.5 栈 24
3.2.6 变址寄存器 25
3.2.7 状态寄存器和条件码寄存器 25
3.2.8 向量基址寄存器 26
3.3 存储器 27
3.3.1 存储器寻址空间 27
3.2.9 辅助功能码寄存器 27
3.3.2 存储器的逻辑组织 28
3.4 CPU32的工作状态和特权级 30
3.4.1 CPU32的4种工作状态 30
3.4.2 特权级与其变换 32
3.4.3 MC68332地址空间 33
4.1.1 寄存器直接寻址 37
4.1.2 绝对寻址(短地址) 37
4 CPU32的寻址方式 37
4.1 寄存器直接寻址和绝对寻址 37
4.1.3 绝对寻址(长地址) 38
4.2 寄存器间接寻址 38
4.2.1 地址寄存器间接寻址 39
4.2.2 带偏移量的地址寄存器间接寻址 39
4.2.3 带变址和8位偏移量的地址寄存器间接寻址 40
4.2.4 带变址和基址偏移量的地址寄存器间接寻址 41
4.2.5 先置减量和后置增量地址寄存器间接寻址 42
4.3 程序计数器相对寻址 44
4.4 立即寻址 44
4.5 隐含寻址 45
4.6 寻址方式小结 45
5 指令系统 46
5.1 概述 46
5.1.1 指令格式 46
5.1.2 数据表示法与符号定义 48
5.1.3 条件码 49
5.2 数据传送类指令 50
5.2.1 传送指令(MOVE) 50
5.2.2 快速传送指令(MOVEQ) 51
5.2.3 多项传送指令(MOVEM) 51
5.2.4 地址传送指令(MOVEA) 52
5.2.5 外设数据传送指令(MOVEP) 52
5.2.6 数据交换指令(EXG和SWAP) 53
5.2.10 解除堆栈连接指令(UNLK) 54
5.2.9 连接堆栈指令(LINK) 54
5.2.8 有效地址压栈指令(PEA) 54
5.2.7 装入有效地址指令(LEA) 54
5.3 算术运算类指令 55
5.3.1 加法指令(ADD) 55
5.3.2 减法指令(SUB) 56
5.3.3 乘法指令(MUL) 57
5.3.4 除法指令(DIV) 57
5.3.5 符号扩展指令(EXT) 58
5.3.7 扩展精度的整数算术运算指令 59
5.3.6 取补指令(NEG) 59
5.3.8 十进制值算术运算指令 60
5.3.9 CLR指令 61
5.4 逻辑运算指令 61
5.5 移位和循环指令 62
5.6 位操作指令 64
5.7 程序控制指令 65
5.7.1 比较和测试指令 65
5.7.2 测试和置位指令(TAS) 66
5.7.4 条件转移指令(Bcc) 67
5.7.3 无条件转移指令 67
5.7.5 DBCC指令 68
5.7.6 条件设置指令(Scc) 68
5.7.7 子程序调用及返回指令 68
5.7.8 NOP指令 69
5.8 系统控制指令 69
5.8.1 特权指令 69
5.8.2 修改条件码寄存器的指令 70
5.8.3 陷阱生成指令 70
5.9 查表和插值指令 73
5.9.1 基本原理 73
5.9.2 指令格式 74
5.9.3 应用 75
5.10 CPU32汇编语言伪指令 76
6 异常情况处理 78
6.1 异常情况分类 78
6.2 异常情况处理过程 79
6.3.1 异常情况向量表 81
6.3 异常情况向量和优先级 81
6.3.2 异常情况优先级 82
6.4 异常情况栈帧 83
6.4.1 4字栈帧 84
6.4.2 6字栈帧 84
6.4.3 总线错误(BERR)栈帧 85
6.5 异常情况处理程序设计 85
6.6.1 TRAP指令 86
6.6 几种异常情况的处理 86
6.6.2 程序错误检测异常情况 89
6.6.3 调试用异常情况 91
6.6.4 中断异常情况 93
6.6.5 系统错误异常情况 97
6.7 异常情况处理返回 99
7 编程技术 100
7.1 数据结构 100
7.1 数组 100
7.1.3 队列 103
7.1.2 字符串 103
7.1.4 堆栈 104
7.1.5 链表 104
7.2 位置无关编程 105
7.2.1 使用PC相对寻址的位置无关编程 105
7.2.2 基址寄存器寻址 107
7.3 子程序的用法和参数传送 107
7.3.1 寄存器传送 107
7.3.3 内存参数区 108
7.3.2 堆栈传送 108
7.3.4 直接编码 109
7.4 管理方式和用户方式下的编程 109
8 总线操作 112
8.1 总线传送信号 112
8.1.1 总线控制信号 113
8.1.2 功能码(FC2~FCO) 113
8.1.3 地址总线(A23~AO) 113
8.1.4 地址选通(AS) 113
8.1.7 总线周期终止信号 114
8.1.5 数据总线(D15~DO) 114
8.1.6 数据选通(DS) 114
8.2 数据传送类型 115
8.3 数据传送周期 118
8.3.1 读周期 118
8.3.2 写周期 120
8.3.3 读-改-写周期 121
8.4 CPU空间周期 123
8.4.1 断点响应周期 123
8.4.2 LPSTOP周期 125
8.4.3 中断响应周期 126
8.5 总线异常情况控制周期 128
8.5.1 总线错误 129
8.5.2 再运行操作 129
8.5.3 暂停操作 131
8.5.4 双总线故障 132
8.6 总线仲裁 133
8.6.1 总线仲裁概述 133
8.6.3 总线允许 134
8.6.2 总线请求 134
8.6.4 总线允许响应 135
8.6.5 显露周期 135
9 系统集成模块SIM 139
9.1 系统配置和保护子模块 139
9.1.1 模块配置和测试 140
9.1.2 总线监视器 142
9.1.3 软件看门狗 142
9.1.4 系统保护控制寄存器SYPCR 143
9.1.5 周期性中断定时器 144
9.2 系统时钟 146
9.2.1 时钟合成器 146
9.2.2 时钟合成器控制寄存器SYNCR 148
9.2.3 时钟控制 149
9.3 片选子模块 150
9.3.1 片选逻辑 150
9.3.2 片选引脚分配 151
9.3.3 片选地址选择 153
9.3.4 片选选择寄存器CSORBT和CSOR(10:0) 154
9.3.5 片选操作 157
9.3.6 MC68332配置外围芯片的连接示例 159
9.4 外部总线接口 160
9.4.1 引脚分配寄存器PEPAR、PFPAR 161
9.4.2 E口、F口数据方向寄存器DDRE、DDRF 161
9.4.3 E口、F H数据寄存器PORTE、PORTF 162
9.4.4 C口数据寄存器PORTC 162
9.5 系统复位 163
9.5.1 复位操作 163
9.5.2 复位状态寄存器RSR 165
9.5.3 复位时SIM的引脚功能 165
9.6 系统的初始化 166
9.6.1 初始化过程 167
9.6.2 SIM初始化 168
10 片上RAM 170
10.1 编程模型 170
10.1.2 RAM模块寄存器 171
10.1.1 RAM区的寻址 171
10.2 操作 173
10.2.1 正常操作 173
10.2.2 后备操作 173
10.2.3 复位操作 173
10.2.4 测试操作 174
10.2.5 STOP操作 175
10.2.6 TPU微码仿真操作 175
11.1.1 基本概念 176
11.1 串行通信的基本知识 176
11 队列串行模块QSM 176
11.1.2 异步串行通信 177
11.1.3 同步串行通信 178
11.2 QSM的结构与特性 178
11.2.1 QSM概述 178
11.2.2 QSM的结构与特性 179
11.3 QSM的存储器和寄存器 180
11.3.1 QSM全局寄存器 184
11.3.2 QSM引脚控制寄存器 186
11.4 QSM的初始化 187
11.5 QSPI子模块 188
11.5.1 QSPI寄存器 190
11.5.2 QSPI RAM 196
11.5.3 QSPI的操作 197
11.5.4 QSPI的I/O扩展 203
11.5.5 QSPI程序设计 203
11.6 SCI子模块 206
11.6.1 数据格式和双缓冲器功能 207
11.6.2 SCI发送器 208
11.6.3 SCI接收器 210
11.6.4 SCI寄存器 212
11.6.5 SCI程序设计 217
12 定时处理器TPu 222
12.1 TPU的结构与功能 222
12.1.1 TPU的逻辑结构 222
12.1.2 TPU的主要特性 224
12.1.4 TPU的定时功能 225
12.1.3 TPU定时器/计数器寄存器TCR1和TCR2 225
12.2 TPU寄存器 227
12.2.1 概况 227
12.2.2 系统配置寄存器 230
12.2.3 通道控制寄存器 232
12.2.4 通道参数寄存器(RAM) 237
12.3 TPU的初始化操作 239
12.3.1 TPU全局初始化 240
12.3.2 TPU通道初始化 242
12.4 输入捕捉/输入跳变计数器(IC/ITC) 243
12.4.1 IC/ITC的RAM参数 244
12.4.2 输入捕捉功能的程序设计 245
12.4.3 输入跳变计数 248
12.5 输出比较(OC) 250
12.5.1 主机触发脉冲的输出比较 250
12.5.2 连续脉冲方式的输出比较 253
12.6 周期与脉冲宽度累加器(PPWA) 255
12.6.1 周期累加 257
12.6.2 脉冲宽度累加 259
12.6.3 输入与输出通道的链接 260
13 MC68332应用程序设计 263
13.1 MC68332产品设计的特点 263
13.1.1 MC68332时钟和指令时序 263
13.1.2 MC68332定时器选择 264
13.1.3 中断和延时 264
13.2 应用设计实例 266
13.2.1 A/D转换芯片 266
13.2.2 QSPI操作的基本原理 267
13.2.3 基本系统和时序 269
13.2.4 QSPl程序设计 271
14 MC68332的开发及开发工具 276
14.1 产品的设计与开发步骤 276
14.2 MC68332开发系统的组成和作用 277
14.3 MC68332的开发方法 279
14.3.1 跟踪和未实现的指令异常情况 280
14.3.2 断点 280
14.3.5 后台方式 281
14.3.4 操作码跟踪 281
14.3.3 显露周期 281
14.4 M68332 EVS评估系统 284
14.4.1 M68332 EVS的组成 284
14.4.2 EVS 4种不同的配置 286
14.5 评估工具EVK 289
14.5.1 PFB底板 290
14.5.2 名片计算机BCC 299
i4.6 EVK监控程序CPU 32 Bug 302
14.6.1 操作过程 303
14.6.2 监控程序使用的异常情况向量 304
14.6.3 监控命令 304
14.6.4 汇编/反汇编程序 307
14.7 S-记录 308
14.7.1 S-记录内容 308
14.7.2 记录类型 309
14.7.3 S-记录示例 310
附录A MC68332引脚配置 312
附录B CPU 32指令简表 313