教育>本科研究生>生物医学工程类
医用FPGA开发——基于Xilinx和VHDL

医用FPGA开发——基于Xilinx和VHDL"

作者:但果,冯博华
ISBN:9787121380266
定价:¥65.0
字数:485千字
页数:296
出版时间:2021-12
开本:16开
版次:01-01
装帧:
出版社:电子工业出版社
简介

本书以FPGA高级开发系统为平台,共安排17个实验,其中前12个实验为FPGA基础实验,后5个实验为医疗电子专业实验。所有实验均详细介绍了实验内容、实验原理,并且都有详细的步骤和源代码,以确保读者能够顺利完成。每章的最后都安排了一个任务,作为本章实验的延伸和拓展。本书中的程序均按照《VHDL语言程序设计规范》(LY-STD009—2019)编写。所有实验均基于模块化设计,以便于将模块应用在不同的项目和产品中。本书配有丰富的资料包,包括FPGA高级开发系统原理图、例程、软件包、硬件包,以及配套的PPT、视频等。这些资料会持续更新,下载链接可通过微信公众号“卓越工程师培养系列”获取。本书既可以作为高等院校相关课程的教材,也可以作为FPGA系统设计及相关行业工程技术人员的参考书。

前言

FPGA系统设计是高等学校生物医学工程、医疗器械工程、康复工程等专业的核心课程,学生既要掌握FPGA设计的基本技能,还要将这些技能熟练应用于医用电子技术领域。要想成为一名优秀的医用电子系统设计工程师,还需要进一步掌握软硬件联合调试的技能,具备模块化设计思想,能够从宏观角度进行系统架构设计,并灵活地将各种技术规范融入设计中。 “耳闻之不如目见之,目见之不如足践之,足践之不如手辨之。”实践决定认识,是认识的源泉和动力,也是认识的目的和归宿。而当今的高等院校工科生,最缺乏的就是实践,没有大量的实践,就很难对某一个问题进行深入剖析和思考,当然,也就谈不上真才实学,毕竟“实践,是个伟大的揭发者,它暴露一切欺人和自欺”。在科学技术日新月异的今天,卓越工程师的培养必须配以高强度的实训。 本书是一本介绍Xilinx Spartan-6系列FPGA设计的书,严格意义上讲,本书也是一本实训手册。本书以FPGA高级开发系统为平台,共安排17个实验,其中前12个实验为FPGA基础实验,后5个实验为医疗电子专业实验。所有实验均详细介绍了实验内容、实验原理,并且都有详细的实验步骤和源代码,以确保读者能够顺利完成。每章的最后都安排了一个任务,作为本章实验的延伸和拓展。 目前主流FPGA的功能非常强大,想要掌握其知识点,必须花费大量的时间和精力熟悉FPGA的集成开发环境、程序下载工具、仿真综合工具等。为了减轻初学者查找资料和熟悉开发工具的负担,能够将更多的精力聚集在实践环节,快速入门,本书将每个实验涉及的知识点汇总在“实验原理”中,将FPGA集成开发环境、程序下载工具、仿真综合工具等的使用方法穿插于各章节中。这样,读者就可以通过本书和FPGA高级开发系统,秉承“勇于实践+深入思考”的思想,轻松踏上学习FPGA之路,在实践过程中不知不觉地掌握各种知识和技能。 本书的特点如下: 第一,以FPGA高级开发系统为实践载体,主要考虑到Xilinx是目前市面上使用最为广泛的FPGA芯片厂商之一,且该系列的FPGA芯片具有成本低、使用成熟、逻辑规模小、配套资料多、开发板种类多等优势,FPGA选取XC6SLX16芯片。 第二,详细介绍17个实验所涉及的知识点,未涉及的内容尽量不予介绍,以便于初学者快速掌握FPGA系统设计的核心要点。 第三,将各种规范贯穿于整个FPGA系统设计过程中,如ISE开发环境参数设置、工程和文件命名规范、版本规范、软件设计规范等。 第四,所有实验严格按照统一的工程架构设计,每个子模块按照统一标准设计。 第五,配有丰富的资料包,包括FPGA高级开发系统原理图、例程、软件包、硬件包,以及配套的PPT、视频等,这些资料会持续更新,下载链接可通过微信公众号“卓越工程师培养系列”获取。 本书中的程序严格按照《VHDL语言程序设计规范》(LY-STD009—2019)编写。设计规范要求每个模块的实现必须有清晰的模块信息,模块信息包括模块名称、模块摘要、当前版本、模块作者、完成日期、模块内容和注意事项。 但果和冯博华对本书的编写思路与大纲进行了总体策划,指导全书的编写,并参与了部分章节编写。董磊、张利民、黄荣祯、彭芷晴完成统稿工作,并参与了例程设计和部分章节的编写;黄荣祯和刘宇林在例程优化和文本校对中做了大量的工作。书中涉及的实验基于深圳市乐育科技有限公司的LY-SPTN6M型FPGA高级开发系统,该公司提供了充分的技术支持;本书的出版还得到了电子工业出版社的鼎力支持,张小乐编辑为本书的顺利出版做了大量的工作,在此一并致以衷心的感谢! 由于编者水平有限,书中难免有不成熟和错误的地方,恳请读者批评指正。读者反馈发现的问题、获取相关资料或遇实验平台技术问题,可发邮件至深圳市乐育科技有限公司官方邮箱:ExcEngineer@163.com。

目录

第1章 FPGA和开发环境 1 1.1 FPGA基础概念 1 1.1.1 什么是FPGA 1 1.1.2 FPGA的基本结构 2 1.1.3 FPGA与ASIC之间的关系 3 1.1.4 FPGA、CPU与DSP之间的关系 3 1.1.5 VHDL与Verilog HDL 4 1.1.6 Xilinx与Altera 5 1.2 FPGA开发流程 6 1.3 XC6SLX16芯片介绍 7 1.3.1 Spartan-6系列介绍 7 1.3.2 XC6SLX16-2CSG324C芯片介绍 7 1.3.3 FPGA速度等级 8 1.3.4 FPGA可用I/O数量 8 1.3.5 FPGA逻辑单元 8 1.3.6 Spartan-6 FPGA配置 8 1.4 FPGA开发工具安装和配置 9 1.4.1 ISE 9 1.4.2 安装ISE 14.7 9 1.4.3 Synplify 14 1.4.4 安装Synplify 14 1.4.5 安装Xilinx USB Cable驱动程序 17 1.5 VHDL语法基础 19 1.5.1 库声明 19 1.5.2 实体 19 1.5.3 结构体 19 1.5.4 数据类型 20 1.5.5 常量定义 20 1.5.6 变量定义 21 1.5.7 信号 21 1.5.8 元件 21 1.5.9 直接赋值语句 22 1.5.10 process语句 22 1.5.11 when...else语句 23 1.5.12 if...else语句 23 1.5.13 case语句 24 1.5.14 运算符 24 1.6 FPGA高级开发系统简介 26 1.7 FPGA高级开发系统可以开展的部 分实验 28 1.8 本书配套的资料包 28 本章任务 28 本章习题 29 第2章 分频器实验 30 2.1 实验内容 30 2.2 实验原理 30 2.2.1 分频器LED电路原理图 30 2.2.2 时钟分频原理 30 2.2.3 分频器模块内部电路图 31 2.3 实验步骤 32 本章任务 54 本章习题 54 第3章 流水灯实验 56 3.1 实验内容 56 3.2 实验原理 56 3.2.1 流水灯实验LED电路原理图 56 3.2.2 流水灯工作原理 56 3.2.3 流水灯模块内部电路图 57 3.3 实验步骤 58 本章任务 62 本章习题 63 第4章 独立按键去抖实验 64 4.1 实验内容 64 4.2 实验原理 64 4.2.1 独立按键电路原理图 64 4.2.2 按键去抖原理 64 4.2.3 状态机工作原理 65 4.2.4 独立按键去抖处理状态机 66 4.2.5 独立按键去抖实验内部电路图 67 4.3 实验步骤 68 本章任务 74 本章习题 74 第5章 七段数码管显示实验 75 5.1 实验内容 75 5.2 实验原理 75 5.2.1 七段数码管 75 5.2.2 七段数码管显示模块电路原 理图 77 5.2.3 七段数码管显示原理 77 5.2.4 七段数码管显示实验内部电 路图 79 5.3 实验步骤 80 本章任务 85 本章习题 85 第6章 矩阵键盘扫描实验 86 6.1 实验内容 86 6.2 实验原理 86 6.2.1 矩阵键盘扫描原理 87 6.2.2 双寄存器边沿检测电路 89 6.2.3 矩阵键盘扫描实验内部电路图 90 6.3 实验步骤 94 本章任务 102 本章习题 102 第7章 OLED显示实验 103 7.1 实验内容 103 7.2 实验原理 103 7.2.1 OLED显示模块 103 7.2.2 SSD1306的显存 104 7.2.3 SSD1306常用命令 106 7.2.4 字模选项 106 7.2.5 ASCII码表与取模工具 107 7.2.6 OLED显示模块显示流程 108 7.3 实验步骤 108 本章任务 116 本章习题 116 第8章 串口通信实验 117 8.1 实验内容 117 8.2 实验原理 117 8.2.1 UART电路原理图 117 8.2.2 UART通信协议 118 8.2.3 串口通信实验状态机 120 8.2.4 串口通信实验内部电路图 122 8.3 实验步骤 124 本章任务 140 本章习题 140 第9章 读写外部EEPROM实验 141 9.1 实验内容 141 9.2 实验原理 141 9.2.1 EEPROM电路原理图 141 9.2.2 I2C协议 141 9.2.3 I2C器件地址 143 9.2.4 AT24C02芯片 144 9.2.5 AT24C02芯片及其读写 时序 145 9.2.6 读写外部EEPROM实验状 态机 146 9.2.7 读写外部EEPROM实验内部 电路图 148 9.3 实验步骤 150 本章任务 160 本章习题 160 第10章 读写外部Flash实验 161 10.1 实验内容 161 10.2 实验原理 161 10.2.1 SPI Flash电路原理图 161 10.2.2 SPI协议 162 10.2.3 W25Q128芯片 162 10.2.4 SPI通信模式 163 10.2.5 读写外部Flash实验状态机 165 10.2.6 读写外部Flash实验内部电 路图 167 10.3 实验步骤 169 本章任务 177 本章习题 178 第11章 SHT20温/湿度测量实验 179 11.1 实验内容 179 11.2 实验原理 179 11.2.1 SHT20温/湿度电路原理图 179 11.2.2 SHT20 传感器 179 11.2.3 SHT20传感器通信 180 11.2.4 SHT20信号转换 182 11.2.5 SHT20温/湿度测量实验内部 电路图 183 11.3 实验步骤 183 本章任务 193 本章习题 193 第12章 DAC实验 194 12.1 实验内容 194 12.2 实验原理 194 12.2.1 AD/DA转换电路原理图 194 12.2.2 AD9708芯片 194 12.2.3 PCT通信协议 198 12.2.4 DAC实验内部电路图 203 12.3 实验步骤 206 本章任务 215 本章习题 215 第13章 ADC实验 216 13.1 实验内容 216 13.2 实验原理 216 13.2.1 AD/DA转换电路原理图 216 13.2.2 AD9280芯片 218 13.2.3 ADC实验内部电路图 220 13.3 实验步骤 222 本章任务 227 本章习题 227 第14章 体温测量与显示实验 228 14.1 实验内容 228 14.2 实验原理 228 14.2.1 体温数据包的PCT通信协议 228 14.2.2 体温测量与显示实验内部电 路图 229 14.3 实验步骤 232 本章任务 235 本章习题 236 第15章 呼吸监测与显示实验 237 15.1 实验内容 237 15.2 实验原理 237 15.2.1 呼吸数据包的PCT通信协议 237 15.2.2 呼吸监测与显示实验内部电 路图 238 15.3 实验步骤 238 本章任务 242 本章习题 242 第16章 心电监测与显示实验 243 16.1 实验内容 243 16.2 实验原理 244 16.2.1 心电数据包的PCT通信协议 244 16.2.2 心电监测与显示实验内部电 路图 244 16.3 实验步骤 245 本章任务 251 本章习题 251 第17章 血氧监测与显示实验 252 17.1 实验内容 252 17.2 实验原理 253 17.2.1 血氧数据包的PCT通信协议 253 17.2.2 血氧监测与显示实验内部 电路图 253 17.3 实验步骤 253 本章任务 259 本章习题 259 第18章 血压测量与显示实验 260 18.1 实验内容 260 18.2 实验原理 261 18.2.1 血压数据包的PCT通信协议 261 18.2.2 血压测量与显示实验内部电 路图 261 18.3 实验步骤 264 本章任务 271 本章习题 272 附录A FPGA开发常用模块引脚约束 273 附录B 人体生理参数监测系统使用说明 276 附录C 《VHDL语言程序设计规范》 (LY-STD009—2019)简介 279 C.1 排版 279 C.2 注释 280 C.3 命名 280 C.4 编码规范 281 C.5 VHDL文件模板 282 C.6 UCF文件模板 285 附录D ASCII码表 286 参考文献 287

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个