注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络操作系统操作系统理论SOPC嵌入式系统基础教程

SOPC嵌入式系统基础教程

SOPC嵌入式系统基础教程

定 价:¥32.00

作 者: 周立功
出版社: 北京航空航天大学出版社
丛编项: 高等院校通用教材·SOPC嵌入式开发系列教程
标 签: 嵌入式开发

ISBN: 9787810779029 出版时间: 2006-11-01 包装: 简裝本
开本: 16开 页数: 353 字数:  

内容简介

  本书为《SOPC嵌入式开发系列教程》的理论教材,介绍了在嵌入式系统中日益广泛应用的SOPC技术基础知识。主要以Altera公司的技术资料为基础,加之作者的实践及理解,全面、深入浅出地介绍了SOPC技术。全书分为3 部分:第1、3、4章为基础部分,主要介绍SOPC技术、Nios II处理器的体系结构、Nios II处理器的常用外设;第2、5、6章为应用部分,重点介绍SOPC 开发流程、FPGA配置、Flash编程、软件开发等;第7、8、9章为提高部分,主要介绍Avalon接口规范、SOPC深入设计、混合语言编程等。本书可作为高等院校电子工程、计算机、微电子、通信、自动控制等相关专业SOPC嵌入式系统课程的理论教材,也可作为从事SOPC嵌入式系统应用开发工程师的参考资料。本书有配套实验教程以及多媒体教学课件。

作者简介

暂缺《SOPC嵌入式系统基础教程》作者简介

图书目录

第1章 概述1
1.1 SOPC及其技术1
1.1.1 基于FPGA嵌入IP硬核的SOPC系统1
1.1.2 基于FPGA嵌入IP软核的SOPC系统1
1.1.3 基于HardCopy技术的SOPC系统2
1.2 Nios II软核处理器3
1.2.1 Nios II软核处理器简介3
1.2.2 可配置嵌入式软核处理器的优势5
1.3 Altera支持SOPC的FPGA简介9
1.3.1 Cyclone系列9
1.3.2 Cyclone II系列11
1.3.3 Stratix系列12
1.3.4 Stratix II系列14
第2章 SOPC开发流程及开发平台简介16
2.1 SOPC开发流程16
2.1.1 硬件开发18
2.1.2 软件开发18
2.1.3 SOPC基本开发流程简介19
2.2 简单SOPC实例开发任务及步骤21
2.3 分析系统需求22
2.4 使用Quartus II建立工程23
2.4.1 打开Quartus II软件并建立工程23
2.4.2 建立顶层模块26
2.5 使用SOPC Builder创建Nios II系统27
2.5.1 SOPC Builder简介27
2.5.2 启动SOPC Builder29
2.5.3 指定目标FPGA和时钟设置31
2.5.4 添加Nios II处理器内核31
2.5.5 添加片内存储器33
2.5.6 添加PIO35
2.5.7 添加系统ID外设35
2.5.8 指定基地址和中断请求优先级36
2.5.9 设置Nios II复位和异常地址36
2.5.10 生成Nios II系统37
2.6 集成Nios II系统到Quartus II工程39
2.6.1 添加Nios II系统模块到Quartus II顶层模块39
2.6.2 添加引脚和其他基本单元40
2.6.3 选择器件型号41
2.6.4 分配FPGA引脚42
2.6.5 器件和引脚的其他设置43
2.7 设置编译选项并编译硬件系统44
2.7.1 设置编译选项44
2.7.2 编译硬件系统44
2.7.3 查看编译报告44
2.8 下载硬件设计到目标FPGA46
2.9 使用Nios II IDE建立用户程序47
2.9.1 创建一个新的C/C++应用工程47
2.9.2 设置C/C++应用工程系统属性52
2.9.3 编译连接工程53
2.10 调试/运行程序53
2.10.1 在目标硬件上运行程序54
2.10.2 在目标板上调试程序54
第3章 Nios II 体系结构57
3.1 Nios II处理器结构57
3.2 Nios II的寄存器文件58
3.2.1 Nios II的通用寄存器58
3.2.2 Nios II的控制寄存器60
3.3 算术逻辑单元(ALU)61
3.3.1 未实现的指令61
3.3.2 用户指令61
3.3.3 浮点指令61
3.4 复位信号62
3.5 Nios II处理器运行模式62
3.6 异常和中断控制器63
3.6.1 异常控制器63
3.6.2 中断控制器63
3.7 Nios II的异常处理64
3.7.1 异常类型64
3.7.2 异常硬件处理流程64
3.7.3 异常判别及优先级64
3.7.4 异常的嵌套65
3.7.5 异常返回66
3.7.6 异常响应时间66
3.8 存储器及I/O结构66
3.8.1 指令与数据总线67
3.8.2 高速缓存68
3.8.3 紧耦合存储器69
3.8.4 地址映射70
3.9 存储器和外设访问70
3.9.1 寻址方式70
3.9.2 高速缓存访问71
3.10 Nios II处理器性能71
第4章 Nios II外围设备73
4.1 并行输入/输出内核73
4.1.1 PIO寄存器描述73
4.1.2 PIO内核配置选项75
4.1.3 软件编程77
4.2 SDRAM控制器内核77
4.2.1 SDRAM控制器内核概述77
4.2.2 SDRAM内核配置选项79
4.2.3 软件编程81
4.2.4 SDRAM应用81
4.3 CFI控制器内核82
4.3.1 CFI 控制器内核综述83
4.3.2 CFI控制器内核设置83
4.3.3 软件编程85
4.4 EPCS控制器内核85
4.4.1 EPCS控制器内核综述85
4.4.2 软件编程86
4.5 定时器内核87
4.5.1 定时器内核综述87
4.5.2 定时器寄存器描述88
4.5.3 定时器内核配置选项90
4.5.4 软件编程92
4.6 UART内核93
4.6.1 UART内核综述93
4.6.2 UART内核的寄存器描述95
4.6.3 UART内核配置选项99
4.6.4 软件编程101
4.7 JTAG_UART内核104
4.7.1 JTAG_UART的寄存器描述105
4.7.2 JTAG_UART内核配置选项106
4.7.3 软件编程108
4.8 SPI内核110
4.8.1 SPI内核综述110
4.8.2 SPI内核的寄存器描述112
4.8.3 SPI内核配置选项115
4.8.4 软件编程117
4.9 DMA内核118
4.9.1 DMA控制器内核综述118
4.9.2 DMA寄存器描述119
4.9.3 DMA控制器配置选项122
4.9.4 软件编程123
4.10 带Avalon接口的互斥内核125
4.10.1 互斥内核描述125
4.10.2 互斥内核配置选项126
4.10.3 软件编程126
4.11 带Avalon接口的邮箱内核129
4.11.1 邮箱内核描述129
4.11.2 邮箱内核配置选项129
4.11.3 软件编程130
4.12 System ID内核132
4.12.1 System ID寄存器描述133
4.12.2 软件编程133
第5章 FPGA配置和Flash编程134
5.1 FPGA配置134
5.1.1 FPGA配置方式134
5.1.2 FPGA配置过程136
5.2 Cyclone及Cyclone II FPGA配置138
5.2.1 主动串行配置140
5.2.2 主动串行配置(AS)的配置时间估算143
5.2.3 JTAG配置143
5.3 配置芯片145
5.4 配置的软件设置146
5.4.1 配置方式及配置芯片选择146
5.4.2 复用配置引脚处理147
5.5 配置文件148
5.5.1 配置文件的格式148
5.5.2 配置文件设置和转换149
5.5.3 配置文件的压缩150
5.6 配置可靠性及电路设计注意事项152
5.6.1 配置的可靠性152
5.6.2 电路设计注意事项153
5.7 下载配置文件到FPGA153
5.8 下载配置文件到EPCS155
5.8.1 AS接口的EPCS直接编程155
5.8.2 JTAG接口的EPCS间接编程157
5.8.3 SOF文件转换为JIC文件158
5.8.4 JIC文件转换为JAM文件161
5.8.5 JIC和JAM文件的内容163
5.8.6 使用JIC文件和Quartus II Programmer对EPCS编程163
5.8.7 使用JAM文件和Quartus II Programmer对EPCS编程163
5.9 IDE Flash Programmer介绍164
5.9.1 IDE Flash Programmer编程工作过程165
5.9.2 Flash编程设计165
5.9.3 目标板Flash编程设计165
5.9.4 Flash编程内容的类型166
5.9.5 Flash文件166
5.10 用户程序引导167
5.10.1 从CFI Flash引导167
5.10.2 从串行配置器件EPCS引导167
5.10.3 引导复制程序168
5.10.4 用户程序ELF文件连接设置169
5.10.5 用户程序引导小结171
5.11 使用IDE Flash Programmer编程172
5.12 创建目标板Flash编程设计176
第6章 Nios II应用程序及其外设HAL驱动开发184
6.1 Nios II IDE简介184
6.2 设置工程系统库属性和编译选项186
6.2.1 C/C++ Build设置187
6.2.2 C/C++ Indexer设置188
6.2.3 System Library设置188
6.3 调试/运行程序190
6.3.1 调试器目标连接设置191
6.3.2 调试器设置192
6.3.3 运行程序194
6.4 下载程序到Flash194
6.5 硬件抽象层(HAL)系统库194
6.5.1 HAL的构成195
6.5.2 HAL的通用设备模型196
6.6 使用HAL开发应用程序197
6.6.1 Nios II IDE工程结构197
6.6.2 与目标系统相关的system.h系统描述文件198
6.6.3 数据宽度及HAL类型定义200
6.6.4 HAL对系统启动的支持200
6.6.5 HAL与异常处理201
6.6.6 提高处理性能的措施203
6.7 设备驱动概述204
6.7.1 设备的寄存器抽象205
6.7.2 处理器外围设备的分类205
6.7.3 标准I/O访问方法206
6.7.4 标准I/O函数到具体驱动程序的映射206
6.7.5 驱动程序与设备交互的方法——轮询和中断208
6.7.6 调用设备驱动的方式208
6.8 开发HAL下的设备驱动209
6.8.1 创建一个描述设备寄存器的头文件209
6.8.2 为各类设备创建驱动程序210
6.8.3 把设备驱动集成到HAL中218
6.9 μC/OSII221
6.9.1 μC/OSII简介222
6.9.2 设备驱动的线程安全222
6.9.3 Newlib C标准库的线程安全223
6.9.4 HAL系统时钟与μC/OSII系统时钟224
6.9.5 μC/OSII代码编译和初始化225
6.9.6 使用Nios II IDE开发μC/OSII应用程序225
6.9.7 μC/OSII基本常识230
6.10 Nios II C语言至硬件加速编译器(C2H)简介231
第7章 Avalon接口规范233
7.1 Avalon总线简介233
7.2 术语和概念235
7.2.1 Avalon交换结构235
7.2.2 Avalon外设237
7.2.3 Avalon信号238
7.2.4 Avalon端口238
7.2.5 主从端口对239
7.2.6 传输239
7.2.7 周期239
7.2.8 PTF文件与SOPC Builder239
7.3 Avalon信号240
7.3.1 信号命名规则241
7.3.2 信号类型的完全列表241
7.3.3 信号极性244
7.3.4 信号序列和时序244
7.3.5 传输属性245
7.4 从端口传输246
7.4.1 从端口基本信号246
7.4.2 从端口基本读传输247
7.4.3 带传输属性的从端口读传输248
7.4.4 从端口基本写传输252
7.4.5 带传输属性的从端口写传输252
7.5 主端口传输255
7.5.1 主端口信号256
7.5.2 主端口基本读传输257
7.5.3 主端口基本写传输258
7.5.4 主端口传输的等待周期、建立时间及保持时间属性259
7.5.5 主端口传输的流水线、突发及三态属性260
7.6 流水线传输属性260
7.6.1 具有固定延迟的从端口流水线读传输260
7.6.2 具有可变延迟的从端口流水线读传输261
7.6.3 主端口流水线读传输263
7.7 流控制属性264
7.7.1 具有流控制的从端口传输265
7.7.2 具有流控制的主端口传输267
7.8 三态传输属性269
7.8.1 三态从端口传输270
7.8.2 三态主端口传输276
7.9 突发传输属性277
7.9.1 主端口突发传输277
7.9.2 从端口突发传输280
7.10 非传输相关的信号283
7.10.1 中断请求信号283
7.10.2 复位控制信号285
7.11 地址对齐286
7.11.1 静态地址对齐286
7.11.2 动态地址对齐287
7.11.3 为Avalon端口选择地址对齐参数288
7.11.4 不同地址对齐方式的连线及编程操作289
第8章 Nios II系统深入设计291
8.1 定制基于Avalon的用户外设291
8.1.1 定制用户外设简介291
8.1.2 PWM设计说明293
8.1.3 将PWM设计封装为SOPC Builder元件296
8.1.4 使用并验证新创建的PWM元件300
8.1.5 手工修改创建的元件302
8.2 定制Nios II用户指令302
8.2.1 Nios II定制指令综述303
8.2.2 定制指令实现方式307
8.2.3 定制指令设计示例308
8.2.4 定制指令的使用方法312
第9章 Nios II汇编程序设计及混合语言程序开发317
9.1 历史回顾317
9.2 Nios II的指令集318
9.2.1 数据传输指令318
9.2.2 寄存器间数据拷贝指令319
9.2.3 算术逻辑运算指令319
9.2.4 比较指令320
9.2.5 移位指令321
9.2.6 跳转、分支和子程序调用指令321
9.2.7 断点及异常指令322
9.2.8 用户指令322
9.2.9 未实现的指令323
9.2.10 空操作323
9.3 Nios II汇编程序设计323
9.3.1 利用Nios II汇编语言实现“Hello World!”323
9.3.2 在C语言中内嵌汇编334
9.4 使用混合语言进行程序开发341
附录1 SmartSOPC多功能教学实验开发平台344
附录2 LA系列高性能逻辑分析仪349
参考文献354

本目录推荐