基本信息
- 作者: 陆佳华 潘祖龙 彭竞宇
- 丛书名: 电子与嵌入式系统设计丛书
- 出版社:机械工业出版社
- ISBN:9787111472070
- 上架时间:2014-7-10
- 出版日期:2014 年7月
- 开本:16开
- 页码:320
- 版次:2-1
- 所属分类:计算机 > 计算机组织与体系结构 > 单片计算机

【插图】

编辑推荐
原书的全新升级版,增加了对Vivado IDE的支持。
软件、硬件、I/O全可编程SoC——ZYNQ的全球首本实战开发指南。
单芯片上实现软硬件协同设计的开山之作,20个设计实例循序渐进引导实战。
从单模块案例向系统级案例拓展,提供完整工程文件和源代码,极具可操作性。
内容简介
计算机书籍
《嵌入式系统软硬件协同设计实战指南:基于Xilinx ZYNQ(第2版)》分为基础篇和进阶篇两部分,基础篇主要介绍Zynq SoC架构、ARM Cortex-A9 处理器、开发工具链等器件Boot过程,并配备了大量基础实验,包括板卡的启动、编译嵌入式Linux系统、完成ARM和FPGA的简单片内通信等;在进阶篇中详解了处理器和FPGA间接口种类和工作方式,分析了如何完成两者间高速的数据交互,通过实例介绍了如何在FPGA中定义用户自己的IP核并完成驱动编写供处理器上运行的Linux使用等,例如如何完成HDMI接口,如何将摄像头数据传递给处理器,并通过运行的OpenCV。本书还将结合Xilinx最新的Vivado和HLS开发工具介绍整体软硬件协同设计开发流程并通过案例分析。
《嵌入式系统软硬件协同设计实战指南:基于Xilinx ZYNQ(第2版)》可作为Zynq初学者、软硬件协同设计开发人员的参考用书,亦可作为大专院校嵌入式系统设计、片上系统设计、可编程逻辑器件等相关专业的教师和学生的参考用书。
作译者
开源硬件社区Openhw.org资深版主,Xilinx高级应用工程师,现任职于Xilinx全球大学计划部,主要负责Xilinx全球大学相关的参考设计开发,技术推广、支持。2006年毕业于西安交通大学并获得硕士学位。同年加入Xilinx公司就任产品应用工程师,主要负责FPGA上的嵌入式系统设计、以太网设计、内存控制器设计等方向技术支持。著有《零存整取NetFPGA开发指南》一书。
目录
序言
第2版前言
第一部分 基础篇
第1章 将你的ZED板卡用起来/2
1.1 GPIO LED动手玩/2
1.1.1 安装SD卡/2
1.1.2 跳线与外设连接/2
1.1.3 演示操作/2
1.2 Linaro Ubuntu动手玩/3
1.2.1 SD卡分区/3
1.2.2 文件复制/6
1.2.3 外设连接/6
1.2.4 可演示的效果/7
第2章 Zynq平台介绍/9
2.1 7系列FPGA简介/9
2.2 Zynq-7000 AP SoC体系简介/12
第3章 ZedBoard开发环境/15
3.1 ZedBoard的板载外设/15
3.1.1 LED/15
前言
作为全球最大的可编程逻辑平台供应商,Xilinx已将可编程逻辑技术带领到了All Programmable(全可编程)的时代,其产品不仅有最新的28nm的7系列(分为Artix7、Kintex7、Virtex7)FPGA芯片,更有通过SSI(堆叠硅片互联)技术实现的最大容量FPGA Virtex7-2000T,同时在FPGA芯片内集成了高速AD以及最高可达28.05Gb/s的高速串行口等可编程逻辑外的模块。对于应用者而言,除了以上工艺的创新外,更具有划时代意义的是Xilinx推出的Zynq-7000 AP SoC芯片,其不仅解决了芯片工艺实现上的难点,更解决了片内高性能处理器与高性能可编程逻辑数据交互协议的难点。
Zynq-7000是首款将高性能ARM Cortex-A9硬核与可编程逻辑紧密集成到一起的器件。在Zynq平台中,我们首先可以把可编程逻辑看成是处理器外设中一个具有可重配置特点的“外设”,比如当串口或以太网接口不够时、需要视频接口时,都可以用可编程逻辑扩展;其次我们也可将其看成一个与处理器对等的主设备,其可主动完成与外部芯片的数据交互,例如主动进行视频、网络数据预处理。通过这样的结合,既发挥了处理器在处理复杂控制算法、运行操作系统等方面的优势,又利用FPGA在并行算法加速、可动态重配置的特点,实现了系统加速,增加了灵活性;同时基于片内结合的方案,减少了板子面积,降低了功耗,也加快了硬件开发速度。结合Zynq的推出,Xilinx不仅在先期将所有IP核接口切换到基于ARM AMBA4.0(AXI4)的标准,实现了逻辑IP与Zynq无缝迁移。同时也推出了C2HDL的高层综合工具AutoESL(目前已集成到最新的开发套件Vivado中),这加快了已有算法的硬件化过程,同时也使得软件工程师可以在Zynq上独立完成软硬件协同设计。
针对这些新的技术和概念,读者不妨带着这样一些疑问阅读本书:现在有什么开发板可以直接使用?这样的ARM+FPGA的结构与板载ARM处理器与FPGA芯片的结合到底有哪些区别?ARM与FPGA在一个芯片内到底是如何紧密配合的?互相之间数据交互的接口和方式是怎样的?上电之后ARM和FPGA是如何配置的?利用AutoESL工具到底如何与Zynq结合?Linux操作系统与FPGA又是如何结合的?这里的驱动如何写?在本书中,将陆续对这些问题进行解答。
从Zynq平台提出伊始,全球各地的客户对这一平台都产生了浓厚的兴趣,Xilinx也于2011年年末正式发布了Zynq的芯片,在2012年年初就已经有了第一块的Zynq开发板ZC702。到了2012年6月份,专为社区用户以及科研、教学用户定制的低价版本ZedBoard板也正式面世。但是对一个全新的平台来说,可参考资源相对缺乏,我们从2012年7月份开始在ZedBoard板上进行设计时就已经明显感受到项目进度因缺少参考资源而受到的影响。而到了美信的DIY大赛时,更听到国内用户对参考资料的迫切需求,尤其是相应的中文资料。而2013年1月份采用ZedBoard板作为主要平台的开源硬件与嵌入式大赛——OpenHW12也即将展开。
在这样的背景下,赛灵思大学计划部门决定以最快的速度对我们在这几个月中开发的、参与的、学习的案例进行整理,编写一本由浅入深、以案例为主的实战类书籍,希望通过本书能帮助大家尽快了解、熟悉并掌握Zynq的开发。
阅读提示
本书分为基础篇和进阶篇两部分。
基础篇中主要介绍了ZedBoard开发板、Zynq器件、开发工具链、Zynq的体系结构及启动过程等基本的器件与板卡情况,同时考虑了软件工程师的知识结构,在第8章中介绍了FPGA的原理,以及硬件加速的原理,便于软件工程师理解FPGA。在第9章中通过基础实验带领大家浅尝Zynq的开发过程,并带领大家用ZedBoard板搭建出一个单板计算机系统。
进阶篇中,首先介绍了利用虚拟平台QEMU进行软件开发的流程,在第11章中详细分析了Zynq中处理器与硬件逻辑的连接关系。第12章主要介绍了在Zynq上利用HLS进行软硬件协同设计的理念与过程。第13章占了全书四分之一的篇幅,介绍了使用Zynq实现逻辑、驱动、操作系统、高清视频显示、OpenCV、网络摄像机等12个应用案例,这是本书的精华之一。在第14章,将13章中提到的独立案例再融合成4个系统案例,这4个系统案例都会应用到前述章节的知识,以此帮助大家尽快掌握在Zynq上进行系统级设计的方法。
笔者在这些年支持客户的过程中,常常会发现客户困扰于不知如何寻找到Xilinx相关工具、IP的参考文档、参考设计。因此本书第15章中主要介绍了如何获取资料和帮助,重点介绍了Xilinx新推出的DocNav工具,希望能帮助初学者迅速找到Xilinx资料。
在本书案例开发与写作的过程中,Xilinx的工具已升级到了更新的2014.1版本,但是本书的很多案例是基于2013.4版本的,部分案例由于时间的关系仍然沿用ISE版本的,不过我们会很快将工程更新到Vivado版本。
作为ZedBoard板这样一个社区开发平台的设计指南,本书秉承了来源于社区回馈于社区的理念,书中所有参考设计均开放源码,读者可通过访问https://github.com/xupsh/ZynqBook.git(GitHub)或http://pan.baidu.com/S/leQj6buM(网盘)获取相关信息。同时本书的勘误以及工程更新都将在该网址上给出,另外,我们在http://www.openhw.org的论坛中设有“大学计划图书讨论专版”,读者可在此讨论区中找到本书对应版面,下载代码,对书稿、案例开展讨论。本书最后一个案例为智能小车项目,这是机器人开源社区www.zrobot.org中的第一个项目。智能小车平台后续相关的拓展案例,以及其他机器人案例均会通过该社区开源代码,并同步更新,请大家关注该社区的发展,积极参与到社区的项目中来。
致谢
本书的写作也体现了社区的力量,本书得到国内各大著名院校以及工程师的支持:
1)清华大学的刘勇攀教授、李双辰和我们一起完成了第12章的软硬件协同设计。
2)华中科技大学的何顶新教授、任蔚博士、牛盼情和我们一起完成了第14章中的电机控制系统设计及其初稿写作,而方华启帮助我们完成了智能小车演示中Android客户端的开发演示。
3)上海交通大学的祝永新教授、辜晓琪与我们一起完成了OpenCV的人脸识别案例及其初稿写作。
4)山东大学的彭竞宇、沈瓒君与我们一起完成了树叶识别案例及其初稿写作。
5)西安交通大学吕敏杰博士整理出了HDMI显示开发过程供大家参考。
序言
Xilinx Zynq-7000全可编程SoC系列器件正是这类产品。在这个芯片的硬件部分实现了一个高性能、双核ARM Cortex-A9处理器子系统(PS)和一个丰富的内存、配置和互联接口。在FPGA逻辑部分保留了灵活性以及其他传统FPGA具备的所有优势,FPGA则通过多口高性能接口连接到PS端,实现了PS与FPGA间的高带宽通信。
ZedBoard(Zynq-7000开发板)通过提供一个专门为这类独一无二并且功能强大的器件推广到广大应用和用户,并重点关注大学生的定制平台,将定制化SoC的概念带到了下一步。
在本书中,作者对Zynq-7000系列芯片和ZedBoard产品进行了出色的概述,还详细介绍了器件的结构。作者通过在Zynq-7000 SoC芯片上搭建设计来引导读者,并深入描述了搭建该系统需要的工具以及相应的开发流程。Zynq-7000芯片是一个混合器件——软件和硬件都可以编程,本书覆盖了硬件设计工具以及高层软件设计工具和流程。最重要的是作者通过完整的开发流程引导读者理解启动和配置器件,以及启动更高层执行(如操作系统)的过程。本书还提供了几个在ZedBorad上运行的参考设计,这些参考设计覆盖了工业电机控制到智能图像处理,所有这些信息使读者可以快速理解并在Zynq-7000 SoC芯片上搭建设计。
这本书提供了优秀并且简明的所有应该要开始使用的Zynq-7000 SoC系列的信息。作为全球领先的电子产品开发者,中国的经济依靠着富有天赋并且受过良好训练的工程师们为强大的经济发展提供燃料。本书作为一本介绍Zynq-7000 SoC产品相关的书籍,对于中国用户是非常适用的。
Vidya Rajagopalan
赛灵思处理、系统、解决方案以及应用部副总裁
媒体评论
——清华大学盂宪元教授
赛灵思(XilJnx)的Zynq芯片是嵌入式系统发展的集大成者,是软硬件以及I/O全可编程SoO,拥有极大的灵活性,但也带来需要使用者掌握更多综合技能的挑战。本书以迅速可上手的案例开始,帮助使用者建立兴趣和自信,然后过渡到Zynq体系结构和外设等的讲解,循序渐进,最后扩展到软硬件协同设计,以智能小车为平台,将现代嵌入式系统的一些诸如OpenCV、嵌入式Web服务器、HLS等前沿技术以实例展示。本书是一本不可多得的好书。
——Xilinx大学计划大中华区经理 谢凯年博士
赛灵思(Xilinx)的Zynq系列产品结合了双核ARM CortexA9处理器与可编程逻辑架构,使得开发人员在获益于ARM丰富的生态系统资源的同时,也获益于FPGA的灵活性和可扩展性。本书对于众多希望尽快了解Zynq产品、熟练使用Znyq的国内用户们而言是一本非常有价值的参考书。书中不仅介绍了翔实的基础内容,还提供了很多实用的案例供读者实践。
——ARM首中国区大学计划经理 时昕博士
Zynq不仅是一款全可编程SoC,更是一个革命性的创新平台。在和客户沟通的过程中,我发现Zynq平台能够让客户的技术创新能力发挥得淋漓尽致,不再受限于单纯的硬件或软件。本书详细地介绍了基于Zynq的嵌入式系统设计,结合典型案例,深入浅出,很好地体现了软硬件协同设计理念。本书将帮助对Zynq感兴趣的读者快速上手,体验到全可编程的乐趣!
——赛灵思(Xilinx)亚太EZynq市场开发经理 罗霖
Zynq有机地结合FPGA与ARM两大主流嵌入式技术,是一款具有划时代意义的产品。该书以应用为导向,全方位地将赛灵思(Xilinx)最先进技术展现在读者面前。应用项目有很强的代表性,技术剖析细致入微,兼顾读者兴趣与技术规范,是国内FPGA领域不可多得的一本好书。
——Digilent中国区总经理 赵峰博士
嵌入式系统的软硬件协同设计、SoC芯片系统级设计一直都是众多电子工程师的梦想,赛灵思的Zynq正好可以满足这种需求,从而充分发挥工程师的设计能力。该书从简单的实例人手、循序渐进,通过电机控制、智能健康平台、高端视频处理和智能小车等实用案例,充分发掘当前产业界的需求并紧密结合Zynq的特点,让大家对Zynq从基本技术到系统应用有了全面的认识。对广大的嵌入式和FPGA的爱好者而言,是一本值得推荐的好书。
——安富利高级技术市场经理 陈志勇博士