《Blackfin系列DSP原理与系统设计(第2版)》2010年电子工业出版社出版的图书,作者陈峰。
主要介绍了採用Blackfin系列DSP开发时所需掌握的知识与技巧,具体内容包括Blackfin系列晶片的性能、内部结构、外设接口、硬体开发、指令集、开发环境、软体编程与套用实例。
基本介绍
- 书名DSP原理与系统设计
- 作者陈峰
- ISBN9787121102189
- 定价39.80 元
- 出版社电子工业出版社
- 出版时间 2010年02月
- 开本16
内容简介
Blackfin系列DSP是ADI开发的高性能定点DSP产品,共分为五大系列数十种型号,分别面向不同种类的套用环境。Blackfin 系列DSP的片上系统集成了大部分常见的工业汇流排与外设接口。Blackfin系列DSP具有强大的处理能力,丰富的外设接口与极低的功耗,使其更易满足各类不同需求。
图书目录
第1章 数位讯号处理和DSP 1
1.1 数位讯号处理的发展 1
1.2 DSP在数位讯号处理中的套用 2
1.3 DSP晶片的结构特点 3
1.4 Blackfin系列DSP 5
1.4.1 Blackfin系列DSP的结构特点 5
1.4.2 ADSP-BF51x系列晶片 7
1.4.3 ADSP-BF52x系列晶片 8
1.4.4 ADSP-BF53x系列晶片 9
1.4.5 ADSP-BF54x系列晶片 10
1.4.6 ADSP-BF561双核晶片 12
第2章 Blackfin系列DSP的内部结构 13
2.1 核心结构 13
2.1.1 暂存器组 14
2.1.2 算术逻辑单元(ALU) 15
2.1.3 乘法累加器(MAC) 16
2.1.4 桶形移位器 18
2.2 存储器 19
2.2.1 存储器空间分配 19
2.2.2 内部存储器的详细介绍 21
2.3 系统概述 33
2.3.1 内部汇流排 33
2.3.2 内部时钟 35
2.3.3 处理器核心概述 35
2.3.4 接口 36
2.3.5 系统汇流排概述 40
2.4 程式控制器 44
2.4.1 概述 44
2.4.2 相关的暂存器 44
2.4.3 指令流水线 46
2.4.4 程式流的控制 47
2.5 中断 48
2.5.1 概述 48
2.5.2 系统中断过程 49
2.5.3 SIC的暂存器 51
2.5.4 CEC的暂存器 54
2.5.5 中断的全局禁止和使能 55
2.5.6 事件向量表 56
2.5.7 中断服务 60
2.5.8 中断的嵌套 61
2.5.9 异常处理 63
2.6 DMA 64
2.6.1 DMA控制器 65
2.6.2 DMA流程 66
2.6.3 DMA暂存器 69
2.6.4 二维DMA 71
2.6.5 DMA性能最佳化 72
2.6.6 DMA软体管理 74
2.6.7 DMA异常中断条件 74
第3章 Blackfin系列DSP外部设备 76
3.1 外部汇流排 76
3.1.1 汇流排概述 78
3.1.2 EBIU仲裁 78
3.1.3 出错检测 78
3.1.4 异步存储器接口 79
3.1.5 SDRAM控制器(SDC) 80
3.1.6 DDR SDRAM控制器 81
3.2 I/O接口 83
3.2.1 GPIO接口 83
3.2.2 键盘接口 86
3.3 Host DMA接口单元 89
3.3.1 Host DMA接口 89
3.3.2 HOSTDP的工作模式 89
3.3.3 HOSTDP的暂存器 92
3.4 增强型并行外设接口(EPPI) 95
3.4.1 EPPI的结构 95
3.4.2 ITU-656介绍 96
3.4.3 EPPI工作模式 98
3.4.4 EPPI的特性 102
3.4.5 EPPI暂存器 102
3.5 乙太网MAC(EMAC) 103
3.5.1 EMAC的接口 103
3.5.2 EMAC的配置 106
3.5.3 基本EMAC代码示例 108
3.5.4 EMAC的工业特性 112
3.5.5 EMAC暂存器 112
3.6 存储器接口 113
3.6.1 ATAPI 113
3.6.2 NAND Flash 119
3.6.3 SDH接口 121
3.7 定时器 124
3.7.1 概述 124
3.7.2 通用定时器 125
3.7.3 核心定时器 126
3.7.4 “看门狗”定时器 127
3.8 串列接口 127
3.8.1 SPI 127
3.8.2 SPORT接口 133
3.8.3 UART接口 138
3.8.4 TWI 140
3.8.5 USBD模组 144
3.9 其他接口简介 151
3.9.1 基于LockBox技术的安全防护 151
3.9.2 像素合成器(PIXC) 152
3.9.3 CAN模组 153
第4章 Blackfin系列DSP硬体开发 156
4.1 引导(BOOT)程式 156
4.1.1 引导模式设定 156
4.1.2 引导过程 157
4.2 PLL与时钟 157
4.2.1 时钟系统概述 158
4.2.2 PLL与时钟控制 158
4.2.3 PLL时钟的倍频因子和分频比 159
4.2.4 PLL的MMR 161
4.3 动态电源管理 163
4.3.1 动态电源管理控制器(DPMC) 163
4.3.2 运行方式 163
4.3.3 运行方式的切换 165
4.3.4 外设的定时 167
4.3.5 动态电源电压控制 167
4.4 处理器核心模式设定 169
4.4.1 概述 169
4.4.2 用户模式 170
4.4.3 监控模式 171
4.4.4 仿真模式 172
4.4.5 空闲状态 173
4.4.6 复位状态 173
4.4.7 系统复位和上电设定 174
4.5 硬体设计 176
4.5.1 引脚处理 176
4.5.2 设计复用时钟引脚 178
4.5.3 中断配置和服务 179
4.5.4 信号量 179
4.5.5 PCI仲裁 180
4.5.6 USB设备连线 180
4.5.7 外部存储器设计 181
4.5.8 高频设计 184
第5章 Blackfin系列DSP指令集 186
5.1 数据定址方式 186
5.2 Blackfin系列DSP指令系统特点 187
5.2.1 Blackfin系列DSP核心结构与指令 187
5.2.2 Blackfin系列DSP指令说明 188
5.3 程式流程控制指令 192
5.3.1 跳转指令/条件跳转指令 192
5.3.2 调用和返回指令 193
5.3.3 循环指令 193
5.4 载入和存储指令 194
5.4.1 载入指令 194
5.4.2 存储指令 195
5.5 数据转移指令 196
5.5.1 暂存器数据转移指令 196
5.5.2 扩展半个字到一个字的数据转移指令 197
5.6 栈控制指令 197
5.6.1 进栈指令 197
5.6.2 出栈指令 198
5.6.3 连线和撤销连线指令 198
5.7 逻辑运算指令 199
5.7.1 与、或、非、异或 199
5.7.2 位方式异或指令 200
5.8 移位和循环指令 202
5.8.1 算术移位指令 202
5.8.2 逻辑移位指令 203
5.8.3 加后移位指令 204
5.8.4 移位后加指令 204
5.8.5 循环移位指令 205
5.9 算术运算指令 206
5.9.1 加、减、乘、除 206
5.9.2 最大值指令和最小值指令 210
5.9.3 绝对值指令和取补指令 210
5.9.4 捨入指令 211
5.9.5 饱和指令 211
5.9.6 符号位指令 211
5.10 位操作指令 212
5.10.1 位清除指令 212
5.10.2 位置位指令 212
5.10.3 位取反指令 212
5.10.4 位测试指令 213
5.10.5 位域存放指令 213
5.10.6 位域提取指令 214
5.10.7 位复用指令 216
5.10.8 ONES指令 216
5.11 CC位操作指令 217
5.11.1 比较数据暂存器、指针、累加器指令 217
5.11.2 取补CC位指令 217
5.11.3 传输CC位指令 218
5.12 外部事件操作指令 218
5.12.1 空闲指令 218
5.12.2 核心同步指令 218
5.12.3 强制仿真指令 219
5.12.4 中断指令 219
5.12.5 空指令 220
5.13 Cache控制指令 220
5.13.1 数据Cache预取指令 220
5.13.2 数据Cache刷新指令 220
5.13.3 指令Cache无效指令 221
5.14 视频像素操作指令 221
5.14.1 校正指令 221
5.14.2 双16位操作 222
5.14.3 4个位元组数操作 223
5.15 向量操作指令 227
5.15.1 加、减、乘 227
5.15.2 向量最大值指令和向量最小值指令 230
5.15.3 向量移位指令 231
5.15.4 其他指令 232
5.16 并行指令 236
第6章 VisualDSP++ 240
6.1 VisualDSP++ 总体介绍 240
6.1.1 VisualDSP++简单介绍 240
6.1.2 开发环境 243
6.2 JTAG仿真器 258
6.2.1 JTAG连线 258
6.2.2 ICE配置与测试 258
6.3 C/C++编译器 259
6.3.1 数据类型 259
6.3.2 运行时环境与运行时库 260
6.3.3 从命令行运行编译器 260
6.3.4 在VisualDSP++中配置编译器 262
6.3.5 最佳化控制 262
6.4 彙编器 264
6.4.1 彙编器命令 264
6.4.2 彙编程式结构和语法 265
6.4.3 预处理器 267
6.5 连结器 267
6.5.1 连结过程概述 267
6.5.2 连结档案 268
6.5.3 连结器参数选择 269
6.5.4 专家连结器(EL) 271
6.6 载入器 276
6.6.1 从命令行运行载入器 276
6.6.2 在VisualDSP++中配置载入器 279
6.7 作业系统核心(VDK) 280
6.7.1 核心的作用 280
6.7.2 调度 280
6.8 VDK的组成 281
6.8.1 执行绪 281
6.8.2 调度程式 282
6.8.3 中断服务程式 284
第7章 软体编程 286
7.1 彙编编译器 286
7.1.1 彙编概要 286
7.1.2 支持C语言结构的彙编器 286
7.1.3 彙编语法 287
7.2 C/C++编译器 295
7.2.1 C/C++编译器简介 295
7.2.2 数据类型存储长度 295
7.2.3 C/C++编译语言扩展 296
7.3 预处理指令 301
7.3.1 引用头档案 301
7.3.2 宏的编写 302
7.3.3 条件彙编和编译 302
7.4 C代码最佳化 307
7.4.1 循环最佳化 307
7.4.2 内联函式最佳化 310
7.4.3 使用彙编语言最佳化 312
7.5 C与彙编混合编程 313
7.5.1 C/C++和彙编接口命名规则 313
7.5.2 C运行时环境下暂存器的使用 314
7.5.3 参数传递和局部堆叠存储分配——LINK和UNLINK指令 314
7.5.4 在C/C++程式中调用彙编子程式 315
7.5.5 在彙编程式中调用C/C++函式 316
7.6 VisualDSP++ 5.0 C/C++运行时库函式介绍 317
7.7 VisualDSP++ 5.0 DSP库函式介绍 319
7.8 VisualDSP++5.0设备驱动库函式简单介绍 321
第8章 套用实例 323
8.1 套用系统设计举例 323
8.1.1 单片DSP系统 323
8.1.2 多片DSP系统 325
8.2 MPEG-4编码系统 326
8.2.1 MPEG-4视频压缩方法简介 326
8.2.2 DCT和IDCT 327
8.2.3 量化 327
8.2.4 运动估计 327
8.2.5 熵编码 328
8.3 代码示例 328
8.3.1 PADDING算法代码的编写和最佳化 328
8.3.2 DCT算法代码的编写和最佳化 334
8.3.3 运动矢量预测 335
8.3.4 SAD最小搜寻 341
8.4 基于Blackfin ADSP-BF561晶片的CCD摄像头图像处理 342
8.4.1 系统简介 342
8.4.2 系统功能与指标 342
8.4.3 系统概述 343
8.4.4 系统硬体设计 344
8.4.5 系统软体设计 344
8.5 基于Blackfin ADSP-BF561晶片的智慧型视频监控系统 347
8.5.1 系统简介 347
8.5.2 系统功能与指标 348
8.5.3 系统概述 348
8.5.4 系统硬体设计 349
8.5.5 系统软体设计 350
……