XilinxZynq-嵌入式系统设计实验教程pdf下载pdf下载

XilinxZynq-嵌入式系统设计实验教程百度网盘pdf下载

作者:
简介:本篇主要提供XilinxZynq-嵌入式系统设计实验教程pdf下载
出版社:科学出版社
出版时间:2021-11
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

编辑推荐

适读人群 :高等院校电子信息类专业本科生,嵌入式系统设计和应用技术人员

本书可以作为高等院校电子信息类专业本科生教材和研究生学习参考用书,也可供嵌入式系统设计和应用技术人员自学的参考资料。

内容简介

《Xilinx Zynq-7000嵌入式系统设计实验教程》以Xilinx Zynq-7000 SoC系列为背景,介绍嵌入式系统设计技术,内容包括Zynq体系结构与开发流程、GPIO原理及接口程序设计、Zynq中断与定时技术、嵌入式Linux操作系统移植与驱动开发、Zynq外设模块结构、功能技术及综合案例设计等。《Xilinx Zynq-7000嵌入式系统设计实验教程》强调软硬件融合、软硬件协同的嵌入式系统设计,突出体现以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

精彩书摘

第1章 Xilinx Zynq-7000 SoC概述
  本章首先对嵌入式系统、微处理器技术的发展进行概述,然后对Xilinx公司的全可编程技术的Zynq-7000 SoC进行介绍,主要包括片上系统(system on chip,SoC)的发展、Zynq-7000 SoC系统简化模型、产品分类及资源、功能和结构、嵌入式开发技术。
  1.1 嵌入式系统简介
  1. 现代计算机系统发展
  现代计算机系统发展有两大分支,即通用计算机系统和嵌入式计算机系统。
  1)通用计算机系统
  通用计算机系统是以高速、海量的数值计算为主的计算机系统,其以数值计算和处理为主,包括巨型机、大型机、中型机、小型机、微型机等。其技术要求是高速、海量的数值计算,技术方向是总线速度的无限提升、存储容量的无限扩大。
  2)嵌入式计算机系统
  嵌入式计算机系统是嵌入对象体系中、以控制对象为主的计算机系统。其以对象的控制为主,技术要求是对对象的智能化控制能力,技术发展方向是与对象系统密切相关的嵌入性能、控制能力与控制的可靠性。
  嵌入式系统可应用在工业控制、交通管理、信息家电、家庭智能管理系统、物联网、电子商务、环境监测和机器人等方面。
  2. 嵌入式系统定义
  1)广泛定义
  电气与电子工程师协会(Institute of Electrical and Electronics Engineers,IEEE)对嵌入式系统的定义为:嵌入式系统是用来控制、监视或者辅助机器、设备运行的装置。
  2)一般定义
  嵌入式系统是以应用为中心、以计算机技术为基础、软硬件可裁剪,应用系统对功能、可靠性、成本、体积、功耗和应用环境有特殊要求的专用计算机系统。其是将应用程序、操作系统和计算机硬件集成在一起的系统,是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。
  3. 嵌入式处理器分类
  1)微处理器
  嵌入式微处理器(embedded microprocessor unit,EMPU)由通用计算机的微处理器(microprocessor unit,MPU)演变而来,芯片内部没有存储器,输入/输出(input/output,I/O)接口电路也很少。在嵌入式应用中,嵌入式微处理器去掉了多余的功能部件,而只保留与嵌入式应用紧密相关的功能部件,以保证它能以*低的资源和功耗实现嵌入式的应用需求。目前主要的嵌入式处理器类型有SC-400、PowerPC、68000、MIPS、ARM/Strong ARM系列等。
  2)微控制器
  推动嵌入式计算机系统走向独立发展道路的芯片,也称为单片微型计算机,简称单片机。由于这类芯片的作用主要是控制被嵌入设备的相关动作,因此业界常称这类芯片为微控制器(microcontroller unit,MCU)。这种8位的电子器件目前在嵌入式设备中仍然有着极其广泛的应用。单片机芯片内部集成只读存储器/电可擦除只读存储器(read-only memory/erasable programmable read-only memory,ROM/EPROM)、随机存取存储器(random access memory,RAM)、总线、总线逻辑、定时/计数器、看门狗定时器、I/O接口等各种必要功能和外设,代表性的通用系列包括8051、MCS-251、MCS-96/196/296、C166/167、MC68HC05/11/12/16、68300等。
  3)嵌入式数字信号处理器
  嵌入式数字信号处理器(embedded digital signal processor,EDSP)是指在微控制器的基础上对系统结构和指令系统进行了特殊设计,使其适合执行数字信号处理(digital signal processing,DSP)算法并提高了编译效率和指令的执行速度。在数字滤波、快速傅里叶变换(fast Fourier transform,FFT)、谱分析等方面,DSP算法正大量进入嵌入式领域,使DSP应用从早期的在通用单片机中以普通指令实现DSP功能,过渡到采用EDSP的阶段,代表性的产品是Texas Instruments的 TMS320系列和Motorola的DSP56000系列。
  4)SoC
  SoC是专用集成电路(application specific integrated circuit,ASIC)设计方法学中产生的一种新技术,是指以嵌入式系统为核心、以知识产权(intellectual property,IP)复用技术为基础、集软硬件于一体,并追求产品系统*大包容的集成芯片。SoC一般包括系统级芯片控制逻辑模块、中央处理器(central processing unit,CPU)内核模块、DSP模块、嵌入的存储器模块、与外部通信的接口模块、含有模数转换器/数模转换器(analog to digital converter/digital to analog converter,ADC/DAC)的模拟前端模块、电源提供和功耗管理模块等,是一个具备特定功能、服务于特定市场的软件和集成电路的混合体。
  4. 国产华为鲲鹏微处理器技术简介
  华为公司从1991年研制第一枚传输网络芯片开始,不断探索自主研发技术,至2019年已研制出7nm制程、数据中心处理器鲲鹏920,其发展历程如图1.1所示。
  鲲鹏微处理器是面向信息与通信技术(information and communication technology,ICT)领域、兼容ARM 64位指令集的多核处理器芯片,基于华为自研的具有完全知识产权的ARM?v8架构,采用业界领先的7nm制程、多Die合封的Chiplet封装工艺,在提供强大计算能力的同时还集成了丰富且强大的I/O能力,为行业用户实现业务加速提供支撑。
  图1.1 华为鲲鹏微处理器发展历程
  华为鲲鹏微处理器的特点如下:
  (1)鲲鹏作为通用的ARM v8处理器,是全球ARM生态中的重要一员;
  (2)已经构筑了相对完整的鲲鹏软件生态;
  (3)鲲鹏不仅局限于鲲鹏系列服务器芯片,更是包含了完整的服务器软硬件生态和全栈的云服务生态;
  (4)汇聚了芯片、服务器、操作系统、虚拟化容器、应用软件、云服务和解决方案等。
  华为鲲鹏系列微处理器的优势如下:
  (1)提供强大的计算能力,*多支持64核;
  (2)采用自研的具有完全知识产权的ARM v8架构;
  (3)可通过片间高速缓冲存储器(Cache)一致性接口Hydra扩展系统核数;
  (4)具有丰富且强大的I/O能力,集成以太网控制器、SAS(serial attached SCSI)控制器以及PCI-E 4.0控制器;
  (5)芯片集成安全算法引擎、压缩/解压缩引擎、存储算法引擎等加速引擎进行业务加速。
  5. 嵌入式操作系统
  嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,它是嵌入式系统极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形用户界面及标准化浏览器等。与通用操作系统相比,嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固化及应用的专用性等方面有突出的特点。
  低端应用以单片机或专用计算机为核心构成的可编程控制器的形式存在,一般没有操作系统的支持,具有监控、伺服、设备指示等功能,带有明显的电子系统设计特点。高端应用以嵌入式CPU和嵌入式操作系统及各应用软件构成的专用计算机系统的形式存在。
  嵌入式操作系统通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面和标准化浏览器等,能运行于各种不同类型的微处理器上,具有编码体积小、面向应用、可裁剪和移植、实时性强、可靠性高、专用性强等特点,并具有大量的应用程序接口(application program interface,API)。常见的嵌入式操作系统有嵌入式Linux、Windows CE、Symbian、Android、uC/OS-II、VxWorks等。
  1.2 片上系统的发展
  在几十年前,要构建一个嵌入式系统,需要使用大量的器件、大量的机械连接装置,以及额外大量的ASIC器件。这种设计结构会带来各方面问题,如增加系统的整体功耗、总成本,降低系统的可靠性和安全性,系统维护成本较高等。
  随着半导体技术的不断发展,可以将构成系统的大量元件集成到单个芯片中,如CPU内核、总线结构、功能丰富的外设控制器,以及模数混合器件。这种将一个计算机系统集成到单芯片中的结构称为SoC。SoC的解决方案成本更低,能在不同的系统单元之间实现更快、更安全的数据传输,具有更高的整体系统速度、更低的功耗、更小的物理尺寸和更高的可靠性。
  但是基于ASIC的SoC也有开发时间长和成本高、灵活性差等缺点。开发ASIC工程时开发时间和投入成本是巨大的,使得这种SoC类型只适合于大批量而且将来不需要升级的市场领域。基于ASIC的SoC的应用包括在个人计算机(personal computer,PC)、平板电脑和智能手机上用的集成处理器。基于ASIC的SoC的局限性导致它们不适用于很多应用,特别是那些需要快速投入市场以及产品的灵活性和升级能力比较重要的情形。对于小批量或中批量的产品,基于ASIC的SoC也不是很好的解决方案。
  显然,人们需要更灵活的解决方案,现场可编程逻辑门阵列(field programmable gate array,FPGA)是自然的选择。FPGA可以配置实现任何系统的芯片,可以用来实现嵌入式处理器。FPGA还可以完全重新配置,与用ASIC 实现SoC相比,FPGA能构成更为基础灵活的平台。在一个需要系统升级的应用中部署FPGA几乎是没有风险的。美国Xilinx公司提出了全可编程(all programmable,AP)SoC结构,即AP SoC。与SoC相比,AP SoC充分利用了FPGA内部结构的灵活性,克服了传统SoC器件灵活性差、专用性强及设计复杂的缺点;同时,AP SoC又具备传统SoC器件的所有优势。
  Xilinx公司将自己开发的8位Picoblaze和32位Microblaze软核的嵌入式处理器,以及IBM公司的 PowerPC和ARM公司的双核Cortex-A9硬核处理器嵌入FPGA芯片中。这种基于FPGA的全可编程平台提供了一个更加灵活的解决方案。在这个方案中,单个可编程芯片上提供了大量不同的IP软核和硬核资源,并且设计人员可以在任何时间对这些资源进行升级。这种全可编程的结构特点,大大缩短了系统的开发时间。并且,同一平台能应用在很多领域,因此极大地提高了平台的资源复用率。
  全可编程结构的出现使得设计人员可以优化系统吞吐量及开发周期,并且提供前所未有的软件和硬件逻辑协同设计的灵活性。这种灵活性主要体现在当设计嵌入式系统时,设计人员能够根据系统性能要求和提供的设计资源,灵活地确定如何将系统实现的功能合理地分配到软件和可编程逻辑资源。这就是软件和硬件设计的协同性,这种协同性不同于传统嵌入式系统的协同设计,因为虽然传统的嵌入式系统也使用软件和硬件的协同设计,但是基本上还是大量地使用分离的设计流程。典型地,硬件设计人员负责制定硬件设计规范,而软件设计人员负责制定软件设计规范,结果就导致参与嵌入式系统设计的软件和硬件开发人员对同一问题有着截然不同的理解。同时,这对设计团队的沟通能力也提出了很高的要求。
  目前,随着AP SoC容量和性能的不断提高,全新的AP技术已经应用到不同的领域,如通信、汽车电子、大数据处理、机器学习等。它已经不是传统意义上用于连接不同接口设