Xilinx Zynq-7000 嵌入式系統設計實驗教程
內容描述
本書以Xilinx Zynq-7000 SoC系列為背景,介紹嵌入式系統設計技術,內容包括Zynq體系結構與開發流程、GPIO原理及接口程序設計、Zynq中斷與定時技術、嵌入式Linux操作系統移植與驅動開發、Zynq外設模塊結構、功能技術及綜合案例設計等。本書強調軟硬件融合、軟硬件協同的嵌入式系統設計,突出體現以IP核為中心系統級軟硬件融合的設計思想;使用PetaLinux工具實現嵌入式Linux操作系統配置與移植,簡化了嵌入式Linux操作系統移植過程;以Vivado為開發平臺,基於PYNQ-Z2開發板,詳細闡述了嵌入式系統的完整設計流程,設計了單元實驗和綜合案例,可以滿足嵌入式系統教學和自學的需求。
目錄大綱
目錄
前言
第1章 Xilinx Zynq-7000 SoC概述 1
1.1 嵌入式系統簡介 1
1.2 片上系統的發展 4
1.3 Zynq AP SoC系統 5
1.3.1 Zynq-7000 SoC簡化模型 5
1.3.2 嵌入式SoC設計 6
1.4 Zynq-7000 SoC產品分類及資源 7
1.5 Zynq-7000 SoC功能和結構 8
1.5.1 Zynq-7000 SoC的功能 8
1.5.2 Zynq-7000 SoC處理系統 9
1.5.3 Zynq-7000 SoC可編程邏輯的構成 11
1.5.4 Zynq-7000 SoC內部的互聯結構 13
第2章 Zynq開發方法與開發流程 15
2.1 Zynq-7000 SoC開發流程 15
2.2 基於Vivado和SDK設計的開發流程 19
2.2.1 加載開發板的板載文件 19
2.2.2 使用Vivado創建硬件工程 19
2.2.3 使用SDK開發軟件 32
2.2.4 知識與實驗拓展 37
2.3 Zynq的啟動流程和啟動鏡像文件製作方法 39
2.3.1 Zynq-7000 SoC啟動流程 39
2.3.2 啟動文件的生成與下載 40
2.3.3 復習與拓展 46
2.4 Zynq開發流程總結 47
第3章 GPIO原理及應用實現 49
3.1 GPIO原理 49
3.1.1 GPIO接口及功能 49
3.1.2 Zynq GPIO的相關寄存器配置 50
3.1.3 GPIO編程實例 52
3.2 GPIO實驗案例 61
3.2.1 實驗目標 61
3.2.2 實驗內容 61
3.2.3 實驗流程與步驟 61
3.3 實驗要求與驗收標準 73
3.4 實驗拓展 74
第4章 Zynq中斷與定時技術 75
4.1 中斷技術 75
4.1.1 中斷原理 76
4.1.2 Zynq中斷體系結構 77
4.1.3 中斷程序設計 81
4.2 Zynq定時器技術 85
4.2.1 私有定時器和私有看門狗定時器 86
4.2.2 全局定時器/計數器 87
4.2.3 系統看門狗定時器 88
4.2.4 定時器/計數器 89
4.2.5 定時程序設計 91
4.3 Zynq中斷與定時實驗案例 94
4.3.1 實驗目標 94
4.3.2 實驗內容 94
4.3.3 實驗流程與步驟 94
4.4 實驗要求與驗收標準 102
4.5 實驗拓展 102
第5章 用戶自定義IP核設計 103
5.1 IP核概述 103
5.2 IP核設計方法 104
5.3 自定義IP核實驗案例 105
5.3.1 實驗目標 105
5.3.2 實驗內容 105
5.3.3 實驗流程與步驟 105
5.4 實驗要求與驗收標準 124
5.5 實驗拓展 124
第6章 Zynq調試技術及軟硬件系統調試 125
6.1 ILA核簡介 125
6.2 VIO核簡介 127
6.3 構建協同調試硬件系統和軟件工程 129
6.3.1 硬件系統構建 129
6.3.2 軟件工程創建 135
6.4 軟硬件協同調試 137
第7章 外設模塊結構和功能 144
7.1 SD/SDIO外設控制器 144
7.2 吉比特以太網控制器 146
7.3 UART控制器 149
7.4 I2C控制器 152
7.4.1 I2C概述 152
7.4.2 I2C控制器的功能 153
7.5 Zynq-7000 SoC內置XADC原理及實現 156
7.5.1 XADC結構 156
7.5.2 XADC工作模式 158
7.5.3 XADC IP核結構 161
7.5.4 XADC應用實例 162
第8章 Linux操作系統的移植和驅動技術 168
8.1 概述 168
8.2 使用PetaLinux工具配置Linux系統 168
8.2.1 準備Vivado工程 168
8.2.2 建立PetaLinux工程 169
8.2.3 配置Linux內核 175
8.2.4 配置根文件系統 177
8.2.5 編譯內核 177
8.2.6 生成BOOT文件 178
8.2.7 測試Linux系統 179
8.3 Linux系統常用命令簡介 180
8.4 Linux Xilinx GPIO 驅動技術簡介 181
8.5 Linux系統下GPIO 驅動實驗案例 184
8.6 Linux系統設備驅動技術 186
8.6.1 I2C設備驅動 187
8.6.2 Vivado工程設計 187
8.6.3 使用PetaLinux工具配置Linux系統及I2C驅動 187
8.6.4 使用C語言程序控制I2C設備 195
8.6.5 運行結果與拓展 197
第9章 數據採集系統的設計與實現 198
9.1 系統功能描述 198
9.2 任務分析設計 199
9.2.1 系統使用的相關傳感器概述 200
9.2.2 硬件系統設計 205
9.2.3 軟件功能設計 206
9.3 軟硬件程序設計與實現 210
9.3.1 使用Vivado創建硬件工程 210
9.3.2 使用SDK軟件設計系統功能 214
9.4 題目拓展 221
第10章 實驗平臺與開發環境概述 222
10.1 硬件平臺概述 222
10.2 集成開發環境概述 224
參考文獻 226