目录 1
出版说明 1
序言 1
前言 1
第1章 Freescale 16位DSP概述 1
1.1 DSP芯片简介 1
1.2 Freescale 16位DSP 1
1.2.2 56800系列DSP应用领域 2
1.2.1 56800系列DSP结构 2
1.2.3 56800系列DSP的开发工具简介 3
1.3 Freescale的24位、32位DSP 4
第2章 DSP 56800的结构 5
2.1 DSP 56800的内核结构 5
2.1.1 DSP 56800内核的总线 6
2.1.2 算术逻辑单元 6
2.1.3 地址产生单元 8
2.1.4 程序控制单元 10
2.1.6 流水线的实现 13
2.1.5 DSP56F800的存储空间 13
2.1.7 扩展型内核DSP 56800E的结构 14
2.2 DSP 56800外围功能模块 16
2.2.1 串行通信接口 16
2.2.2 串行外设接口 18
2.2.3 模数转换器 20
2.2.4 相位检测器 22
2.2.5 脉宽调制模块 24
2.2.6 CAN控制器 30
2.3.1 Flash存储器 34
2.3 DSP 56800的存储器 34
2.3.2 外扩存储器接口 38
2.4 复位、定时器和中断控制 38
2.4.1 复位模块 38
2.4.2 定时器功能 40
2.4.3 中断控制 42
第3章 DSP 56800的指令系统及汇编语言 46
3.1 指令格式和伪指令 46
3.1.1 汇编语言的格式 46
3.1.2 常用伪指令 46
3.2.1 指令的标记说明 48
3.2 指令中的标记、标识说明 48
3.2.2 条件码寄存器的说明 50
3.3 56800系列DSP的内核指令集 51
3.3.1 数据传送指令 51
3.3.2 移位指令 56
3.3.3 逻辑指令 64
3.3.4 算术指令 68
3.3.5 程序控制指令 84
3.3.6 位处理指令 89
3.4 56800系列DSP的内核指令对CCR的影响汇总 93
第4章 DSP 56F807EVM板 97
4.1 DSP 56F807EVM板总体介绍 97
4.1.1 56F807EVM板总体结构 97
4.1.2 807EVM板跳线设置 97
4.1.3 807EVM板与主机、电源的连接方法 97
4.2 56F807EVM板的板内电路组件及其对外接口 100
4.2.1 56F807芯片 100
4.2.2 板内扩展程序存储器和数据存储器 100
4.2.3 RS-232电平转换 100
4.2.5 操作模式 101
4.2.4 时钟源 101
4.2.6 供用户调试程序的接口 102
4.2.7 外部中断 104
4.2.8 复位 104
4.2.9 通用开关和运行/停止开关 104
4.2.10 D/A电路 105
4.2.11 CAN接口 105
4.2.12 正交编码器/霍尔感应接口 105
4.2.13 支持电动机应用的组件 106
4.4.1 供电电路 109
4.4.2 电源测试点 109
4.4 DSP 56F807EVM板供电电路 109
4.3 DSP 56F807EVM板外围器件扩展接口 109
第5章 DSP 56800系列的开发工具——CodeWarrior软件 111
5.1 CodeWarrior的安装 111
5.1.1 系统需求 111
5.1.2 安装CodeWarrior 111
5.2 CodeWarrior集成开发环境功能介绍 113
5.2.1 菜单栏 113
5.2.2 集成工具简介 122
5.3.1 在CodeWarrior中建立新的工程文件 125
5.3 用CodeWarrior开发56800系列DSP 125
5.3.2 编译目标设置 130
5.3.3 编辑工程源代码文件 132
5.3.4 编译链接工程 140
5.3.5 调试工程 140
5.4 DSP 56800常用功能的开发 149
5.4.1 中断的使用 149
5.4.2 可编程引脚GPIO的使用 152
5.4.3 定时器的使用 154
5.5 DSP 56800的C语言 155
5.5.1 变量类型 156
5.5.2 用户函数的使用 157
5.5.3 代码优化 157
5.5.4 C语言库函数概述 160
5.6 嵌入式汇编语言 160
第6章 嵌入式软件开发包SDK 163
6.1 SDK概述 163
6.1.1 SDK的API 163
6.1.2 SDK库 163
6.1.3 SDK服务 164
6.1.4 SDK规则和指南 165
6.2 SDK的安装及对CodeWarrior功能的扩展 166
6.2.1 在CodeWarrior的基础上安装SDK 166
6.2.2 SDK对CodeWarrior功能的扩展 166
6.3 创建一个新的SDK工程及工程开发 168
6.3.1 创建一个新的SDK工程 168
6.3.2 工程的开发 170
6.4 目标配置 171
6.4.1 工程配置 171
6.4.2 存储器配置 174
6.4.3 中断配置 179
6.5 用SDK开发DSP 56800各功能模块 181
6.5.1 运用SDK开发SCI 182
6.5.2 运用SDK开发SPI 187
6.5.3 运用SDK驱动ADC 190
6.5.4 运用SDK开发相位检测器 197
6.5.5 运用SDK开发脉宽调制器PWM 202
6.5.6 运用SDK开发CAN控制器 210
第7章 Processor Expert软件开发包 226
7.1 Processor Expert涉及的基本概念 226
7.2 用Processor Expert开发简单的工程 230
7.2.1 创建一个新工程 231
7.2.2 添加工程所需的Bean 232
7.2.3 代码设计 237
7.2.4 事件代码设计 237
7.3 Processor Expert对SDK的改进 240
7.3.1 共同的开发环境 240
7.3.2 图形化的用户接口 240
7.3.3 改进的帮助系统 241
7.3.4 专业的错误检查系统 241
7.4 移植SDK工程到PE中 242
7.4.1 算法库的移植 242
7.3.5 代码生成 242
7.3.6 一次安装 242
7.4.2 底层寄存器库的移植 243
7.4.3 高级功能封装库的移植 244
7.5 CodeWarrior及Processro Expert实验 250
7.5.1 实验一 熟悉CodeWarrior及Processor Expert 250
7.5.2 实验二 利用按钮和延时程序控制发光二极管闪烁 251
7.5.3 实验三 利用按钮和定时器控制发光二极管闪烁 255
7.5.4 实验四 汇编编译器实验 259
7.5.5 实验五 模拟信号的频谱分析 260
第8章 56800系列DSP应用实例——独立型智能化IC卡(CPU卡)终端设备及管理系统 268
8.1 IC卡概述 268
8.1.1 IC卡的分类 268
8.1.2 CPU卡的基本构成 269
8.1.3 CPU卡的用卡过程 270
8.1.4 CPU卡中的数据存储结构 271
8.1.5 CPU卡的安全性 272
8.1.6 CPU卡内操作系统COS 274
8.2.1 硬件电路 276
8.2 独立型CPU卡终端设备 276
8.2.2 独立型CPU卡终端设备的软件设计 278
8.2.3 几个关键问题 278
8.3 多功能CPU卡综合应用管理系统简介 280
8.3.1 系统概述 280
8.3.2 系统的功能 281
附录 286
附录A DSP 56800寄存器概述 286
附录B 在线申请样片 327
参考文献 331