發表於2024-11-23
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 電子書 下載