发表于2024-12-24
Altera FPGA伴你玩转USB3.0与LVDS/电子设计与嵌入式开发实践丛书 pdf epub mobi txt 电子书 下载
Altera FPGA伴你玩转USB3.0与LVDS(电子设计与嵌入式开发实践丛书)主要使用Altera公司的Cyclone Ⅳ FPGA器件(引出自带的LVDS接口)和Cypress公司的USB 3.0控制器芯片FX3,以及一些常见的DDR2存储器、UART电路、扩展接口等,由浅入深地*读者从板级设计、软件工具、相关驱动安装、基础的FPGA实例以及基于FPGA的UART、DDR2、USB 3.0、LVDS传输实例入手,掌握FPGA各种片内资源的应用以及接口时序的设计。
本书基于特定的FPGA开发平台,既有足够的理论知识作支撑,也有丰富的例程进行实践学习,并且穿插着笔者多年FPGA学习和开发过程中的各种经验和技巧。对于希望基于FPGA实现LVDS和USB 3.0开发的工程师,本书所提供的很多实例是很好的参考原型,有助于实现快速系统原型的开发。
目录
Contents
第1章FPGA、USB与LVDS概述
1.1FPGA发展概述
1.2FPGA的优势
1.3FPGA应用领域
1.4FPGA开发流程
1.5USB接口概述
1.5.1USB发展史
1.5.2USB 3.0概述
1.6LVDS接口概述
第2章实验平台板级电路详解
2.1板级电路整体架构
2.2电源电路
2.3FPGA时钟与复位电路
2.3.1FPGA时钟晶振电路
2.3.2FPGA复位电路
2.4FPGA配置电路
2.5FPGA供电电路
2.6DDR2芯片电路
2.7UART芯片电路
2.8LVDS接口与液晶屏背光接口电路
2.8.1差分走线
2.8.2阻抗匹配
2.8.3LVDS和单端信号间的串扰
2.8.4电磁干扰
2.8.5LVDS线缆选型
2.8.6LVDS连接器定义
2.9USB 3.0控制器FX3电路
2.10扩展接口电路
2.11FPGA引脚定义
第3章软件安装与配置
3.1软件下载和许可证申请
3.2Quartus Ⅱ与ModelSim�睞ltera的安装
3.3文本编辑器Notepad++安装
3.4QuartusⅡ中使用Notepad++的关联设置
3.5USB�睟laster的驱动安装
3.5.1Windows XP系统的USB�睟laster安装
3.5.2在Windows 7系统安装USB�睟laster
3.5.3在Windows 8系统安装USB�睟laster
3.6串口芯片驱动安装
3.6.1驱动安装
3.6.2设备识别
3.7USB 3.0控制器FX3的SDK安装
3.8USB 3.0控制器FX3的驱动安装
Altera FPGA伴你玩转USB 3.0与LVDS
第4章第一个例程与FPGA下载配置概述
4.1LED闪烁与PLL配置实例
4.1.1功能概述
4.1.2新建Quartus Ⅱ工程
4.1.3IP核配置——PLL
4.1.4引脚分配
4.1.5闲置引脚设置
4.1.6Verilog代码解析
4.2Altera FPGA配置方式概述
4.2.1AS配置方式
4.2.2PS配置方式
4.2.3JTAG配置方式
4.3基于JTAG的sof文件FPGA在线烧录
4.4基于JTAG的jic文件SPI Flash固化
第5章DDR2、UART以及Nios Ⅱ实例
5.1DDR2控制器集成与读/写测试
5.1.1功能概述
5.1.2IP核配置——片内RAM
5.1.3IP核配置——DDR2控制器
5.1.4DDR2引脚电平设置
5.1.5Verilog代码解析
5.1.6板级调试
5.2UART2USB的Loopback收发实例
5.2.1功能概述
5.2.2Verilog代码解析
5.2.3板级调试
5.3基于最小Nios Ⅱ系统的System ID打印实例
5.3.1Qsys系统概述
5.3.2Qsys工具基本使用
5.3.3Qsys组件添加与互连
5.3.4Qsys系统生成
5.3.5Quartus Ⅱ工程设计实现
5.3.6软件开发工具EDS
5.3.7System ID外设寄存器
5.3.8板级调试
第6章USB 3.0控制器FX3实例
6.1基于FX3内部DMA的USB传输Loopback实例
6.1.1功能概述
6.1.2固件编译与固化文件生成
6.1.3硬件连接与设备识别
6.1.4FX3的USB Boot加载
6.1.5板级调试
6.2FX3的SPI Flash代码固化
6.2.1启动设置
6.2.2SPI Flash固化
6.3基于FX3内部DMA的USB数据吞吐量测试
6.3.1硬件连接
6.3.2FX3的USB Boot加载
6.3.3FX3的基本Streamer功能演示
6.4基于FX3的UVC传输协议实例
6.4.1硬件连接
6.4.2FX3的USB Boot加载
6.4.3UVC设备识别
6.5FX3固件 SlaveFIFO配置修改说明
6.5.1功能概述
6.5.2GPIF Ⅱ Designer开启与工程加载
6.5.3GPIF Ⅱ接口配置与工程编译
6.5.4IDE下固件工程加载
6.5.5IDE下固件工程编译
6.6基于FPGA�睩X3 SlaveFIFO接口的Loopback实例
6.6.1功能概述
6.6.2固件下载
6.6.3FPGA代码解析
6.6.4SignalTap Ⅱ在线逻辑分析仪查看接口时序
6.7基于FPGA�睩X3 SlaveFIFO接口的StreamOUT实例
6.7.1功能概述
6.7.2固件下载
6.7.3FPGA代码解析
6.7.4SignalTap Ⅱ在线逻辑分析仪查看接口时序
6.7.5在Streamer中查看数据吞吐量
6.8基于FPGA�睩X3 SlaveFIFO接口的StreamIN实例
6.8.1功能概述
6.8.2固件下载
6.8.3FPGA代码解析
6.8.4SignalTap Ⅱ在线逻辑分析仪查看接口时序
6.8.5Streamer工具测试数据吞吐量
第7章LVDS收发传输实例
7.1LVDS液晶屏驱动实例
7.1.1功能概述
7.1.2IP核ALTLVDS_TX创建与配置
7.1.3IP核ALTLVDS_TX功能与接口说明
7.1.4代码解析
7.1.5板级调试
7.2基于串口命令帧的LVDS液晶屏测试界面设计
7.2.1设计概述
7.2.2串口控制协议
7.2.3代码解析
7.2.4板级调试
7.3LVDS数据收发实例
7.3.1功能概述
7.3.2IP核ALTLVDS_TX创建与配置
7.3.3IP核ALTLVDS_RX创建与配置
7.3.4位对齐处理
7.3.5代码解析
7.3.6装配说明
7.3.7板级调试
7.4带CRC校验的LVDS数据收发实例
7.4.1功能概述
7.4.2CRC校验基本原理
7.4.3CRC8校验代码生成
7.4.4代码解析
7.4.5装配说明
7.4.6板级调试
参考文献
本章导读
本章解析HSC开发平台的3个基本实验例程,包括DDR2控制器的集成和读/写测试、UART的Loopback收发实例和搭建Nios Ⅱ处理器系统实现System ID的打印实例。通过这3个例程,读者可以初步掌握基于Altera FPGA的Verilog代码输入设计、IP核配置与集成设计以及Nios Ⅱ处理器系统的搭建和C语言固件设计。
5.1DDR2控制器集成与读/写测试
5.1.1功能概述
本实例对Altera提供的DDR2控制器IP核模块进行读/写操作。每1.78s执行一次DDR2的写入和读出操作。先是从0地址开始遍历,写256×64b数据到DDR2的地址0~1023中; 在执行完写入后,执行一次相同地址的读操作,将读出的256×64b数据写入FPGA的片内RAM中。在Quartus Ⅱ集成的In�睸ystem Memory Content Editor中可以查看片内RAM中规律变化的数据。
本实例系统功能框图如图5.1所示。
图5.1DDR2读/写实例功能框图
5.1.2IP核配置——片内RAM
1. FPGA片内存储器概述
片内存储器是基于FPGA的嵌入式系统中最简单的存储器。因为存储是在FPGA内部完成的,电路板上无须外部连线。FPGA的片内存储器可以根据需求定义存储器的大小、位宽、种类及特殊的片内存储器特性,如DDR模式等。
片内存储器在基于FPGA的嵌入式系统的存储器中具有最高吞吐量和最低反应延时。它的反应延时通常仅为一个时钟周期。通过流水线操作访问存储器,可以使吞吐量达到每个时钟周期进行一次数据处理。
片内存储器的另一个好处是,由于它是在FPGA上直接实现的,无须在板上或电路中进行读/写。使用片内存储器可以节省开发时间和成本。
尽管速度很快,片内存储器在一定程度上却会受到其容量的限制。FPGA可用的片内存储器的数量由所使用的特定FPGA器件决定。
因为多数片内存储器都是易失性的,它在断电后丢失数据。然而,某些片内存储器可以在FPGA配置时自动初始化,相当于提供了一种非易失性的功能。
片内存储器的最佳应用场合包括常见的缓存、点到点的缓存、查找表以及FIFO等。
由于其具有低反应延时,片内存储器在微处理器中作为缓存表现良好。Nios Ⅱ处理器使用片内存储器作为引导和数据缓存。片内存储器有限的容量作为缓存通常不是一个问题,因为缓存本身都相对很小。
低延时的存取也使得片内存储器适用于作为器件间的缓存,即点到点的缓存。它是指处于正常的寻址空间,但与微处理器有专用接口的存储器。这些存储器主要用来实现缓存存储器的高速、低反应延时特性。
针对某些软件编程功能,尤其是数学上的功能,与在软件中进行计算相比,使用查找表存储所有可能的功能结果通常是最快的方法。片内存储器在这方面表现良好,前提是片内存储器的可用容量能够容纳可能的功能结果。
嵌入式系统经常需要管理从一个模块到另一个模块的数据流。FIFO可以在以不同的高速运行着的模块间作为数据缓冲存储器。根据应用程序所需的FIFO的大小,片内存储器可以用作高速和便利的FIFO存储。
Foreword
前言
FPGA技术在当下各种电子设计应用中越来越火热,它的成本虽然还是高高在上,但是给电子系统所带来的不可限量的速度和带宽,以及它在灵活性、小型性方面的优势,越来越为各种对性能要求高、偏重定制化需求的开发者所青睐。而使用LVDS、USB接口进行高速数据传输也是很多大数据采集应用的必备。
因此,笔者结合实际工程项目的需求,为广大开发者量身打造了基于低成本、高性价比的Altera Cyclone Ⅳ FPGA器件+LVDS+USB 3.0的硬件开发平台。基于这个平台,加上本教材的实例讲解,相信可以帮助读者快速地掌握这个原型系统,甚至将其移植应用到具体的项目或产品中。
全书共7章。
第1章阐释FPGA、LVDS和USB的一些基本概念和应用背景。
第2章从FPGA开发平台的电路板设计入手,介绍FPGA板级硬件电路设计要点,以及本书配套开发平台的周边外围电路的设计。
第3章讲述开发环境的搭建,包括Altera FPGA集成开发环境Quartus Ⅱ、仿真工具ModelSim、文本编辑器Notepad++、下载器驱动、UART驱动、USB 3.0控制器芯片FX3对应的SDK和驱动安装。
第4章以一个最基本的FPGA实例引领读者掌握一个完整的FPGA开发流程,这也包括了FPGA的下载配置和代码固化操作。
第5章既有开发平台板载的DDR2 SDRAM、UART外设的基础驱动实例,也包含如何搭建一个软核处理器NIOS Ⅱ系统并运行嵌入式软件程序的实例。
第6章集中在USB 3.0控制器芯片FX3相关的实例上,既有单独FX3和PC的USB 3.0传输实例,也有FPGA+FX3和PC之间的USB 3.0数据传输实例。
第7章讲解如何使用FPGA实现LVDS接口应用,包括LVDS液晶屏的驱动、LVDS收发设计以及包含CRC校验的LVDS收发设计。
吴厚航(网名: 特权同学)
2018年1月于上海
Altera FPGA伴你玩转USB3.0与LVDS/电子设计与嵌入式开发实践丛书 pdf epub mobi txt 电子书 下载