基于FPGA的光电数据采集和处理采集系统设计_第1页
基于FPGA的光电数据采集和处理采集系统设计_第2页
基于FPGA的光电数据采集和处理采集系统设计_第3页
基于FPGA的光电数据采集和处理采集系统设计_第4页
基于FPGA的光电数据采集和处理采集系统设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、武汉理工大学毕业设计(论文)基于FPGA的光电数据采集和处理采集系统设计学院(系): 专业班级: 学生姓名: 指导教师: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包括任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。作者签名: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保障、使用学位论文的规定,同意学校保留并向有关学位论文管理部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权省级优秀学士论文评选机构将本学位论文的全部或部分内容编

2、入有关数据进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。本学位论文属于1、保密囗,在 年解密后适用本授权书2、不保密囗 。(请在以上相应方框内打“”)作者签名: 年 月 日导师签名: 年 月 日本科生毕业设计(论文)任务书学生姓名: 专业班级 : 指导教师: 工作单位 :设计(论文)题目:基于FPGA的光电数据采集与处理系统设计 设计(论文)主要内容:1.文献调研,较全面的了解光电转换机理以及信号数据的处理 2.掌握可编程逻辑器件的编程使用技巧3.设计一套数据采集系统,并完成对光信号的实时检测 要求完成的主要任务:1、查阅不少于15篇的相关资料,其中英文文献不少于3篇,完成

3、开题报告。2、完成基于FPGA的光电数据采集系统的搭建与调试3、通过实验验证该系统的稳定与可靠4、完成不少于5000汉字的英文文献翻译;完成不少于12000字的论文。 必读参考资料:1 张洪润,张亚凡. FPGA/CPLD应用设计200例. 北京航空航天大学出版社.2 何宾. EDA原理及Verilog实现. 清华大学出版社. 指导教师签名: 系主任签名: 院长签名(章) 武汉理工大学本科生毕业设计(论文)开题报告1、目的及意义(含国内外的研究现状分析)毕业设计的目的是研究基于FPGA的光电数据采集和处理系统,主要是分析光电转换机理以及信号数据的处理,然后根据可编程逻辑器件的编程技巧设计一套数

4、据采集系统并完成对关心好的实时监测 。还要调查其目前的应用领域,及其在国内外的发展现状。光电转换过程的原理是光子将能量传递给电子使其运动从而形成电流。这一过程有两种解决途径,最常见的一种是使用以硅为主要材料的固体装置,另一种则是使用光敏染料分子来捕获光子的能量。染料分子吸收光子能量后将使半导体中的带负电的电子和带正电的空穴分离。数据采集系统是计算机、智能仪器与外界物理世界联系的桥梁,是获取信息的重要途径。数据采集的任务,具体地说,就是采集传感器输出的模拟信号并转换为FPGA能识别的数字信号,然后送入FPGA或相应的信号处理系统,根据不同需要进行相应的计算和处理,得出所需要的数据。与此同时,将F

5、PGA得到的数据进行显示或打印,以便实现对某些物理量的监视,其中的一部分数据还将被控制生产过程中的FPGA控制系统用来控制某些物理量。数据采集系统由以下几个部分组成:数据采集、数据传输、数据存储、数据处理、分析和显示等。数据采集几乎无孔不入,它已渗透到了地质、医药器械、雷达、通讯、遥感遥测等各个领域,为我们更好的获取信息提供了良好的基础。数据采集器的研制在国外已经相当成熟,而且数据采集器的种类也不断增多,性能越来越好,功能越来越强大。比如美国FLUKE公司的262XA系列数据采集器是一种小型、便携、操作简单、使用灵活的数据采集器,他可以单独使用,也可以和计算机连接使用。它具有多种测量功能,多种

6、数据存储方式和多种控制方式。262XA共有21路模拟输入通道,它可以直接测量电压、电流、温度、频率和电阻等,8路数字输入/输出可以用于数字信号的处理,另外4路可以用于报警输入。当某个模拟通道的输入信号超过设定报警限,在对应的I/O口就输出一个低电平,每个模拟通道可以设置两个报警限。262XA系列有两种扫描速度:4通道/秒(慢),17通道/秒(快)。仪器可以使用90.264V交流电直接供电,也可以使用9-16V直流供电。就直流电源还可以同时使用,断电时可以自动切换至直流。RS232接口为标准配置,可以用于向计算机传输数据和控制。采集的数据可随时通过接口打印,也可将数据用RS232接口传至计算机。

7、记录的数据包括:通道号、测量值、时间、报警状态、累加计数等。数据格式与LOTUS、Excel相兼容。 在国内,由于数据采集技术不断发展,市场上出现了各种新型的数据采集器。北京测振仪器厂研制的HZ-9609数据采集/震动分析仪,它采用中文显示,直观醒目,操作简单; 因此国外的数据采集技术比较发达,但是成本高,国内的数据采集系统的精度不够,一般只有2%,为此需要设计一个精度高成本低的数据采集系统。2、基本内容和技术方案论文题目:基于FPGA的光电数据采集和处理系统设计论文主要内容:通过调研查阅相关资料研究光电转换和FPGA的应用,以及其在各个领域的应用情况,国内外的研究现状及其发展前景,设计出比较

8、实用的光电数据采集和处理系统。技术方案:首先是要收集查阅与光纤传感器,AD,DA,LD,FPGA等相关的一些资料,熟悉并掌握在自己的设计中所要用到的光纤传感器的使用方法,懂得AD,DA,LD等器件的使用,在了解芯片的一些特性之后,使用I2C器件使硬件电路更加的简单,设计好硬件电路,然后采用基于FPGA的可编程逻辑门阵列的verilog语言来实现芯片的驱动。用Verilog语言实现数据采集和处理,就要针对性的学习和掌握verilog编程语言在数字电路中的应用,首先多看些书,弄懂它的核心思想,然后多看一些实际例子,相信这样更有助于一种新语言的学习,在这之中我们需要了解现场可编程门阵列的基本知识和应

9、用情况。学习好之后就开始编写程序,在编程之后利用quartus进行仿真模拟,得出正确的仿真图后,将程序下载到FPGA上,连接好外围电路进行调试,并多次检测并记录结果,并对实验的结果进行分析,最后整理并完成论文。3、进度安排第13周:查阅相关文献资料,明确研究内容,了解研究所需光电转换数据采集和处理系统在国内外的现状和研究的目的意义。确定方案,完成开题报告第45周:整理材料,编写文献综述和开题报告第68周:熟悉光电转换模块,并设局电路图和电路图进行设计第910周:巩固以前学习的编程知识以及学习FPGA的相关知识第1112周:进行Verilog HDL编程仿真。第1314周:完成并修改毕业论文。第

10、15周: 准备论文答辩。4、指导教师意见选题有很强的实际价值,学生综合利用所学知识,立论合理,论证充分。该题目通过学生的努力,能在规定时间完成,并达到预期的目标。课题有一定的难度,报告研究有探索性和深度,达到本科生必要论文的要求。 指导教师签名: 年 月 日注:1开题报告应根据教师下发的毕业设计(论文)任务书,在教师的指导下由学生独立撰写,在毕业设计开始后三周内完成。2“设计的目的及意义”至少800字,“基本内容和技术方案”至少400字。进度安排应尽可能详细。3指导教师意见:学生的调研是否充分?基本内容和技术方案是否已明确?是否已经具备开始设计(论文)的条件?能否达到预期的目标?是否同意进入设

11、计(论文)阶段。武汉理工大学毕业设计(论文)目 录摘 要IAbstractII1 绪论11.1 课题的研究背景及意义11.2 整体设计方案21.3 论文章节安排22 系统硬件设计32.1 传感模块32.2 模数模块62.3 显示模块83 FPGA可编程逻辑器件93.1 FPGA简介93.2 FPGA基本内部构造及功能分析93.3 FPGA中I2C协议的实现124 系统中FPGA的设计及实现144.1 FPGA的通用设计过程144.2 FPGA设计145 总结23参考文献25致 谢26摘 要本文借助FPGA对光电数据进行采集和处理,通过对光电转换后的电信号进行模数转换,得到我们能够数值化处理的数

12、字信号,利用FPGA来进行I2C协议的编写,使具有I2C协议的一些逻辑器件能够使用,使我们能够更加了解FPGA的集成化处理的优势,所得到的结果对于利用FPGA来进行数据采集和处理具有很重要指导意义。论文的主要工作是利用Veilog语言编写I2C协议,并通过I2C协议对其他芯片进行控制,最终实现我们需要的光纤温度采集和处理如何更加精确的显示温度值。研究结果表明,FPGA配合I2C协议使器件的集成性更加高,处理速度高,在可移植性方面的优势能够很好体现出来。本文的特色在于利用FPGA的可精准控制时间,从而达到很准确的控制I2C协议实现通信。关键词:FPGA;I2C协议;光电数据转换25Abstrac

13、tWith the FPGA to acquisition and processing of optoelectronic data, through as the photoelectric conversion signals to do the analog to digital conversion, we can get numerical digital signals which can be processed, use of FPGA to the programmable of I2C protocol, so that some logic devices with I

14、2C protocol can be used, so that we can better understand the advantages of the integration of FPGA processing, the results obtained for the use of FPGA for data acquisition and processing has very important significance. The main work of this paper is the use of Veilog language to program I2C proto

15、col and through I2C protocol to control of other chips, and ultimately to realize collecting and processing the fiber temperature we needed and how to more accurately display the temperature value. The results show that, FPGA with I2C protocol can make devices higher integration, higher processing s

16、peed, the advantage in portability can be well reflected. The feature of this paper is using FPGA to control time precisely, so as to achieve very accurate control of I2C protocol to realize communication.Keywords: FPGA; I2C protocol; optical data conversion 1 绪论随着科学的飞速发展,人们对很多东西的要求越来越高,在生活当中,很多电子产品

17、都向着集成化的方向发展,FPGA的使用就是一个热门的课题。1.1 课题的研究背景及意义光电转换过程的原理是光子将能量传递给电子使其运动从而形成电流。这一接口接口即可过程有两种解决途径,最常见的一种是使用以硅为主要材料的固体装置,另一种则是使用光敏染料分子来捕获光子的能量。染料分子吸收光子能量后将使半导体中的带负电的电子和带正电的空穴分离。数据采集系统是计算机、智能仪器与外界物理世界联系的桥梁,是获取信息的重要途径。数据采集的任务,具体地说,就是采集传感器输出的模拟信号并转换为FPGA能识别的数字信号,然后送入FPGA或相应的信号处理系统,根据不同需要进行相应的计算和处理,得出所需要的数据。与此

18、同时,将FPGA得到的数据进行显示或打印,以便实现对某些物理量的监视,其中的一部分数据还将被控制生产过程中的FPGA控制系统用来控制某些物理量。数据采集系统由以下几个部分组成:数据采集、数据传输、数据存储、数据处理、分析和显示等。数据采集几乎无孔不入,它已渗透到了地质、医药器械、雷达、通讯、遥感遥测等各个领域,为我们更好的获取信息提供了良好的基础。数据采集器的研制在国外已经相当成熟,而且数据采集器的种类也不断增多,性能越来越好,功能越来越强大。比如美国FLUKE公司的262XA系列数据采集器是一种小型、便携、操作简单、使用灵活的数据采集器,他可以单独使用,也可以和计算机连接使用。它具有多种测量

19、功能,多种数据存储方式和多种控制方式。262XA共有21路模拟输入通道,它可以直接测量电压、电流、温度、频率和电阻等,8路数字输入/输出可以用于数字信号的处理,另外4路可以用于报警输入。当某个模拟通道的输入信号超过设定报警限,在对应的I/O口就输出一个低电平,每个模拟通道可以设置两个报警限。262XA系列有两种扫描速度:4通道/秒(慢),17通道/秒(快)。仪器可以使用90.264V交流电直接供电,也可以使用9-16V直流供电。就直流电源还可以同时使用,断电时可以自动切换至直流。RS232借口为标准配置,可以用于向计算机传输数据和控制。采集的数据可随时通过接口打印,也可将数据用RS232接口传

20、至计算机。记录的数据包括:通道号、测量值、时间、报警状态、累加计数等。数据格式与LOTUS、Excel相兼容1。在国内,由于数据采集及技术不断发展,市场上出现了各种新型的数据采集器。北京测振仪器厂研制的HZ-9609数据采集/震动分析仪,它采用中文显示,直观醒目,操作简单。因此国外的数据采集技术比较发达,但是成本高,国内的数据采集系统的精度不够,一般只有2%,为此需要设计一个精度高成本低的数据采集系统。1.2 整体设计方案提出系统整体设计方案,其系统框图如图1. 1所示。传感器模块模数转换模块显示模块FPGA中心控制模块图1-1 整体设计方案整个系统由传感器模块、模数转换模块、FPGA中心控制

21、模块、显示模块电路组成。传感器模块是由DAC8571,LD,PIN管构成,形成一个能检测温度等信息的光电转换系统。模数转换模块由ADS1115构成,由于传感器获得信号是模拟信号,需要转换成数字信号就能够对其进行具体数值的处理。FPGA中心控制模块由FPGA及其外围电路组成。FPGA是控制模块的核心部分。主要完成A/D转换器的时钟选取、I2C协议的编写以及驱动传感器,ADS1115, DAC8571。以及使获得的数据能够在显示部分能够显示出来。显示模块用于显示此次设计中数据采集和处理的结果能够以一个可以让人看到的方式接收到。1.3 论文章节安排论文首先从硬件系统的设计入手,先把光电数据采集和处理

22、的硬件部分搭建起来,然后利用I2C协议对硬件中的各个器件进行程序的编写,最后对论文工作进行总结分析一下。2 系统硬件设计上面提到这个设计总共包括三个部分:第一个是传感模块,第二个是模数转换模块,第三个是显示。在这些设计中我们会提到一些部分选择的原因然后再根据这些硬件来讲述怎么用FPGA来驱动和处理整个系统的数据。2.1 传感模块传感模块包括三个主要的部分,一个是光源LD,GE薄膜,PIN管。以下就对这三个部分做简要的介绍。2.1.1 光源器件在这次设计实验之中我们选择LD,相对于LED而言他有许多的优点。第一,发光谱线窄;第二,与光纤的耦合效率高;第三,它是阈值器件;而光源的驱动是电流驱动的,

23、我们就用DAC8571先进行电压控制,通过MAX4238对电压进行放大,然后通过三极管使电压信号能够变成电流信号,从而能够驱动LD,使我们能够得到比较稳定的光源。在这个部分我们要用到的DAC8571实现方案图如下:图2-1 DAC8571驱动电路此为我们在放大部分用到了MAX4238,对从DAC8571获得的电压信号进行放大;图2-2 MAX4238电路最后把电压信号转换成电流源来控制LD,其电路图如下:图2-3 LD电源驱动电路图以上三个部分仅仅只是完成了对光源信号的处理,然而需要对光电数据进行处理,因此需要把外界的温度或者其他的信号转化成我们需要的电信号。在此我们使用XX老师的GE薄膜的光

24、纤传感器来进行设计。GE薄膜的一些参数特性:它的折射率和吸收率能够温度具有一定关系,根据这个关系我们能够把它和温度之间建立一个对应的关系,然后根绝这个关系能够比较准确的设计出温度和接收到的光信号的关系。由此可以得出温度值。其对应关系如下:图2-4 反射率和温度之间关系图2-5 Ge薄膜的厚度不同反射率的差异根据上面两个图可以从两个方面来理解光纤温度传感大体上是线性的但是在小的地方,大体的找出温度的变化,然后再根据薄膜厚度的通具体的找出温度的变化和反射率的关系,通过定标实验彻底的找出给出一个对应的关系,这样就能够得到一个比较准确的温度2。在光电接收模块可以选择不同的器件,首先来说说光电器件接收的

25、原理:光电接收的器件是根据光电效应来获得的,首先我们先来了解一下光电效应,光电效应可以分为内光电效应和外光电效应,内光电效应可以分为光电导效应和光生伏特效应。内光电效应:被光激发所产生的载流子(自由电子或空穴)仍在物质内部运动,使物质的电导率发生变化或产生光生伏特的现象。外光电效应:被光激发产生的电子溢出物质表面,形成真空中的电子的现象。光电导效应:某些物质吸收光子的能量产生本征吸收或杂质吸收从而改变物质电导率额现象。光生伏特效应:当入射辐射作用在半导体PN结上产生本征吸收时,价带中的光生空穴与导带中的光生电子在PN结内建电场的作用下分开,形成光生伏特电压或光生电流。根据内光点效应我们可以得到

26、光电导器件和光生伏特器件。在光电导器件中常见的是光敏电阻,在光生伏特器件中比较常见的是硅光电二极管,PIN型光电二极管和APD雪崩二极管。光敏电阻的优缺点:1)优点:其光谱响应范围相当宽;工作电流大;所测刚强范围宽,既可测光强,也可测弱光;灵敏度高,光电导增益大于1;偏置电压低,无极性之分,使用方便。2)缺点:在强光照射下光电转换线性交差;光电弛豫过程较长;频率响应很低。硅光电二极管的优缺点:响应频率低,容易受温度的影响,精度低。PIN型光电二极管:响应频率高,可高达10GHZ,响应速度快,供电电压低,工作十分稳定。APD雪崩二极管:灵敏度高,响应快,但雪崩二极管需要上百伏的工作电压,而且性能

27、和入射光功率有关,当入射光功率大时,增益引起的噪声大,带来电流失真3。通过以上的对比我们选择了PIN型光电二极管,由于其响应频率很高,速度快又比较容易实现。所以其对应的电路图是:图2-6 PIN光电二极管的电路图及其放大电路至此讲解了传感器的三个模块:DAC8571,LD,Ge薄膜,PIN光电二极管,以及一些用于电路信号放大的电路图。通过这三个模块就能够得到我们想要的信号外界一些参量的电信号。然而FPGA不能够识别模拟信号所以需要把电信号转化成数字信号。因此需要一个模数转换器。2.2 模数模块模数转换器有许多种,一种经济节约型,例如ADC0809,另一种是高精度型,例如ADS1115。下面就这

28、两种类型的模数转换器做一下对比。2.1.1 ADC0809这是大家在大学期间第一个学到的ADC器件,所以就首先来谈论一下他的特点。ADC0809是8位的逼近式A/D转换器,其内部有一个8通道的多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换,是目前国内应用最广泛的8位通用A/D芯片4。他的一些主要特性如下:1)8路输入通道,8位A/D转换器,即分辨率为8位。 2)具有转换起停控制端。 3)转换时间为100s(时钟为640kHz时),130s(时钟为500kHz时)。 4)单个+5V电源供电 。5)模拟输入电压范围0+5V,不需零点和满刻度校准。 6)工作

29、温度范围为-40+85摄氏度 。7)低功耗,约15mW。2.1.2 ADS1115ADS1115是业内尺寸最小的16位ADC,ADS1115在节省空间方面拥有无可比拟的优势,它增加了产品的可集成性。而且它是专为实现精密、高功效且简便的系统设计的,ADS1115能够以高达860SPS的可编程数据数率执行转换,电流消耗仅为150µA(典型值),工作电压低至2V5。它的主要特性如下:1)QFN (RUG) 封装:2.0 x 1.5 x 0.4mm2)数据数率:8 860SPS3)电源电流:150µA(典型值)4)电源电压:2.0V 5.5V5)片上集成:6)振荡器和低漂移基准7)

30、偏移电压:100µV8)扩展温度范围:-40°C 至 +125°C 由上面两种ADC0809和ADS1115的一些特性的了解我们可以知道,我们这个设计应该选择ADS1115。有如下几个主要的原因:1)它是16位的ADC,所以它的精度会更加高。ADC0809的精度是8位。2)它是I2C器件,可以通过I2C协议来实现驱动,方便集成处理;3)它使用的温度范围是-40°C 至 +125°C;而ADC0809只能在-40°C 至 +80°C4)在实验的时候我们要尽量的获得更加精确实验数据才能够更好的减少批量生产的价格。因为这是实验可以

31、选择比较贵而且比较好的ADC,如果到了实际的使用之中就要根据实际的应用环境来选择我们需要的器件,以达到我们对特殊环境的要求。至此选择出了模数转换器是ADS1115。然后对其进行电路图的设计如下:图2-7 ADS1115的电路图设计2.3 显示模块显示模块在FPGA的开发板自带了,基于方便考虑所以我们就直接选用FPGA上面的LCD1602。所以方便使用和集成。除此之外,它还有一些其他的优点:1)显示质量高由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。2)数字式接口液晶显示器都是数字式

32、的,和FPGA系统的接口更加简单可靠,操作更加方便。3)体积小、重量轻液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。4)功耗低相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多6-7。3 FPGA可编程逻辑器件在本设计中的主要的重点就是FPGA,需要用它来驱动ADS1115和DAC8571,虽然用它实现的功能不是很多,用它实现的功能一个是I2C协议中的读信号,另外一个是I2C协议中的写信号,但是由于FPGA芯片的可复制性比较高,它运行程序可以并行运行,所以如果需要再用多加个模块的时候,就可以直

33、接加到FPGA芯片之中,这样就可以增加系统的集成性和可操作性。从而大大简化了电路板的复杂程度。下面介绍一下他的结构、特点以及设计方法。3.1 FPGA简介在可编程逻辑器件芯片内部,按一定的排列方式集成了大量的门和触发器等基本逻辑元件。使用者可利用特定的计算机开发工具(软件包和硬件电路、编程电缆)对其进行加工,即按设计要求将这些芯片内部的元件连接起来(此过程称为编程或设置),使之实现完成某个数字逻辑电路或系统的功能,成为一个可在实际电子系统中使用的专用集成电路(ASIC)随着集成电路工艺的日臻完善,集成度急剧攀升,功能日益强大。可编程逻辑器件广阔的应用前景备受业内人士的瞩目。由于其内部结构的不同

34、,目前应用较广泛的有CPLD和FPGA。 目前,很多学校和公司都开发了可编程逻辑器件实验板,这些实验板上采用了如下几个公司的产品:Xilinx 公司,主要产品为FPGA和CPLD,目前各学校和公司制做实验板的常用芯片为FPGA 4000系列,Spartan XCS05和XC95108系列CPLD。Lattice 公司 该公司已经和AMD公司合并,该公司生产GAL和CPLD产品,目前各学校和各公司制作实验板的常用芯片为ISP1016和可编程开关GDS14.。AMD 公司,该公司生产MACH系列产品,常用芯片为MACH4-128和MACH211SP-15JC。Altera 公司,该公司生产FPGA

35、和EPLD,常用芯片为EPLD7000系列产品7128和FPGA10K系列产品10K10Lattice公司介绍:Lattice是ISP(在线可编程)技术的发明者,ISP技术极大的促进了PLD产品的发展,80年代和90年代初是其黄金时期,但很快被Xilinx,Altera超过。与ALTERA和XILINX相比,其开发工具比略逊一筹。中小规模PLD比较有特色,种类齐全。99年收购Vantis(原AMD子公司),2001年收购Lucent微电子的FPGA部门,是世界第三大可编程逻辑器件供应商。目前Lattice公司在上海设有研发部门8。3.2 FPGA基本内部构造及功能分析FPGA是可编程逻辑器件,

36、属于特殊ASIC芯片的一类,是在PAL、 GAL等可编程逻辑器件基础上发展起来的。同以往的PAL、GAL等相比较:FPGA的规模比较大,适合于时序、组合逻辑等电路应用场合,可以替代几十块甚至上百块通用分立IC芯片,尽管FPGA以及其它类型的PLD器件的结构各有其特点和处,但是概括起来它都是由三大部分组成的: 1)一个二维的逻辑块阵列,构成CPLD器件的逻辑组成核心。2)输入/输出模块。3)连接逻辑块的互联资源,连线资源由各种长度的线段组成,也包括用于连接逻辑块之间,逻辑块与输入输出部分的可编程连接开关。图 3-1 FPGA内部结构图同样,还有一个时钟电路用于驱动时钟信号到每一个逻辑模块中的每一

37、个触发器。另外,还可能有额外的逻辑资源,像ALU、存储器和译码器9。3.2.1 可编程逻辑块阵列可配置逻辑模块(CLB)包含了FPGA的可编程逻辑。典型的CLB,它包含了用于任意组合逻辑函数的RAM;还包含了用于钟控存储单元的触发器和多路选择器,这样就便于在模块中为逻辑电路布线以及模块内部的逻辑电路与外部资源之间的布线连接。这些多路选择器还允许极性的选择、复位输入和清除输入选择。注意,逻辑输出不需要通过触发器。设计者可以利用一个CLB产生简单的组合逻辑。正因为如此,多个CLB能够,而且经常被连接在一起,以实现复杂的布尔逻辑。FPGA的这种优于CPLD的优点,意味着设计者能够用几个CLB串联在一

38、起来实现非常复杂的逻辑。不幸的是,在一个FPGA中传递时是全部延时的总量。因此这个优点也导致了所做的设计在速度方面的全面下降10。3.2.2 可编程输入/输出块可配置I/O模块适用于将信号传送到芯片上,然后再将信号传出芯片。输出缓冲器B1有可编程的控制器,它们可以是缓冲器成为三态或集电极开路状态,并且可控制缓冲器的输出摆率。这些控制端允许FPGA输出到大多数标准的TTL或CMOS器件。输入缓冲器B2能够被编程为不同的输出阈值电压。典型的阈值电压为TTL或CMOS电平,以便于和TTL或CMOS器件相接口。在每一个引脚上的输入和输出缓冲器的组合以 及它们的可编程性,意味着每一个I/O模块都可以被用

39、于一个输入信号、一个输出信号或者一个双向信号。3.2.3 互连资源FPGA的互连电路与CPLD的完全不同,但它却非常类似于一个门阵列ASIC的互连电路。图9示出了互连资源的可配置逻辑模块(CLB)结构。每一个CLB都被连接到与它紧挨着的其他CLB上,如图中左上角所示CLB。这些连线有时被称作短线(注意,为简单起见,图中只画出了左上角CLB的连线,实际上,所有四个CLB都有连线分别与最靠近它们的其他CLB相连。这些连线使得那些因过于复杂而无法装入某个单一CLB的逻辑能够被分开装入多个CLB)。图3-2 互连资源其他的路径资源由经纬连线所组成。这些连线在到达开关矩阵之前经过许多CLB。这些开关矩阵

40、允许信号从一个开关矩阵传递到另一个开关矩阵,再传递到下一个开关矩阵,最后连接到CLB。这些CLB可能彼此相互关联,但又互相原理。这种传递新好方法的缺点是每一条通过某个开关矩阵的路径都会导致一个显著的延时。经常的情况是,为了通过芯片传递信号,路径的延时变得比逻辑门的延时还要大11。第三种类型的路径资源是长线,设计者可以用它去连接某些条件苛刻的CLB,即这些CLB在芯片上的物理位置彼此相连“甚远”,而它们之间的连接又不会产生太大的延时。这些长线通常是从一个CLB模块的末端一直通向另一个CLB模块,而中间并不与某个开关矩阵相连。对于条件苛刻的路径逻辑,长线确保不会产生显著的延时。长线还可以在芯片当中

41、被用作总线。3.2.4 时钟电路特殊的I/O模块被分布在芯片的周围。它具有特殊的高驱动能力的时钟缓冲器时钟驱动器。这些缓冲器被连接到芯片的时钟输入引脚,它们驱动时钟信号到全局时钟线上。这些全局时钟线以一种被称之为时钟树的结构形式遍布整个器件。这些时钟显示为了较小的时钟上升时间和快速的时钟传播时间而设计的,正如以后要讨论的那样,用FPGA设计电路必须是同步的,因为利用FPGA的路径资源不能保证信号的军队上升时间和延迟时间。只有当使用从时钟缓冲器而来的时钟信号时,相关的延迟和上升时间才能使微小的和可预测的。3.3 FPGA中I2C协议的实现I2C(InterIntegrated Circuit)总

42、线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。3.3.1I2C的性能标准I2C总线传输速率可以到100Kbit/s,通过使用了7位地址码,就能支持128个设备。加强型I2C总线用了10位地址码(能够支持1024个设备),快速模式(400Kbit/s)和高速模式(最高有3.4Mbit/s)。I2C是多主控总线,所以任何一个设备都能像主控器一样工作,并控制总线。总线上每一个设备都有一个独一无二的地址,根据设备它们自己的能力,它们可以作

43、为发射器或接收器工作。多路微控制器能在同一个I2C总线上共存。只要很小的电路附件,I2C总线就能够支持设备在不同电平下工作(例如:3.3伏和5伏),3.3.2 I2C总线的工作情况I2C总线的规范中规定了如何在两个设备之间传递数据,采取的方法是总线仲裁、时钟同步和总线的电气特征。在一次数据传输中,一个设备扮演临时主控器,开始在它和一个有单一地址设备(从控器)之间的传输。主控器为数据传输产生时钟信号。规范中要求数据线(SDA,串行数据线)只有在时钟(SCL,串行时钟线)处于低平时才能变化。总线的一次典型工作流程如下:1)开始:信号表明传输开始。2)地址:主设备发送地址信息,包含7位的从设备地址和

44、1位的指示位(表明读或者写,即数据流的方向)。3)读写:主机决定此次操作是从主机读数据到从机数据还是从从机读取数据到主机之中。4)应答:根据指示位,数据在主设备和从设备之间传输。数据一般以8位传输,最重要的位放在前面;具体能传输多少量的数据并没有限制。接收器上用一位的ACK(回答信号)表明每一个字节都收到了。传输可以被终止和从新开始。5)停止:信号结束传输。I2C总线数据传送时序:图3-3 i2c总线数据传送时序在数据传输的时候我们应该注意几点问题:1)进行数据传送时,在SCL为高电平期间,SDA线上电平必须保持稳定,只有SCL为低时,才允许SDA线上电平改变状态。并且每个字节传送时都是高位在

45、前。2)对于应答信号,ACK=0时为有效应答位,说明接收器已经成功接收到该字节,若为1则说明接受不成功。3)如果被控器需要延迟下一个数据字节开始传送的时间,可以通过把SCL电平拉低并保持来强制主控器进入等待状态。4)主控器完成一次通信后还想继续占用总线在进行一次通信,而又不释放总线,就要利用重启动信号Sr。它既作为前一次数据传输的结束,又作为后一次传输的开始。5)总线冲突时,按“低电平优先”的仲裁原则,把总线判给在数据线上先发送低电平的主器件。6)在特殊情况下,若需禁止所有发生在I2C总线上的通信,可采用封锁或关闭总线,具体操作为挂接在总线上的任一器件将SCL锁定在低电平即可12。4 系统中F

46、PGA的设计及实现设计需要FPGA,所以得知道一些关于FPGA设计的一些东西,所以在下面讲一下关于FPGA设计方面的东西。4.1 FPGA的通用设计过程 文本编辑:用任何文本编辑器都可以进行,也可以用专用的HDL编辑环境。通常VHDL文件保存为.vhd文件,Verilog文件保存为.v文件。 功能仿真:将文件调入HDL仿真软件进行功能仿真,检查逻辑功能是否正确。 逻辑综合:将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式和信号的连接关系。逻辑综合软件会生成.edf(edif)的EDA工业标准文件。 布局布线:将.edf文件调入PLD厂家提供的软件中进行布线,即把设计好的逻辑安放

47、到PLD/FPGA内。 时序仿真:需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序。 编程下载:确认仿真无误后,将文件下载到芯片中。4.2 FPGA设计在此次设计中的软件部分都是由FPGA完成,本次论文的目的就是为了能够实现FPGA能够高速运转系统实现光电数据采集和处理,为了达到这个目的我们使用的是I2C协议,下面来介绍一下软件设计的思路:首先对I2C协议进行编写,使其具有开始,读,写,应答,结束的子模块。然后用I2C协议驱动DAC8571,使光源能够得到一个稳定功率的光源LD,然后对ADS1115进行驱动使其能够开始进行模数转换,再把模数转换后的数字信号传输给FPGA,通过在FP

48、GA中设置一个查表模块,使得到的一个比较稳定的温度值,然后再通过LCD1602显示出来。从而达到实现光电数据采集和处理的功能。4.2.1 I2C协议设计由于上面介绍的I2C协议我们可以看到,I2C协议包括起始,读,写,应答,停止五个状态,在这五个状态中首先确定SCL时钟信号,然后再根据SDA_link信号来控制inout型SDA信号是输入信号还是输出信号,最难点在于8为数据的处理怎么实现八位数据的处理尤为重要。然后就是状态机的转换问题。最后是用FPGA来驱动这三个芯片(DAC8571,ADS1115,LCD1602)完成光电转换数据采集和处理。第一,首先FPGA中的时钟信号是50MHz,远远不

49、能够实现I2C协议中要求的SCL时钟线,第一步就是对FPGA所提供的时钟信号进行分频处理。实现:reg8:0 cnt_delay;/500循环计数,产生iic所需要的时钟reg scl_r;/时钟脉冲寄存器always (posedge clk or negedge rst_n)if(!rst_n) cnt_delay <= 9'd0;else if(cnt_delay = 9'd499) cnt_delay <= 9'd0;/计数到10us为scl的周期,即100KHzelse cnt_delay <= cnt_delay+1'b1;/时钟计

50、数end第二,根据时钟信号我们就开始来设计开始信号如何产生和结束,以及传输过程中数据的传输读写控制还有就是主机如果来回复应答信号的。在我们使用的I2C协议来驱动ADS1115和DAC8571时由于他们的状态机都不止一个,我们就必须设计传输多个数据的状态机。状态机的转化图如下:图4-1 I2C通信状态机通信时具体状态机的实现:1)开始信号的实现:START1: beginif(SCL_HIG) begin/scl为高电平期间sda_link <= 1'b1;/数据线sda为outputsda_r <= 1'b0;/拉低数据线sda,产生起始位信号cstate <

51、= ADD1;num <= 4'd0;/num计数清零endelse cstate <= START1; /等待scl高电平中间位置到来end2)开始信号之后我们要先选定我们想要的I2C器件是个七位的地址,然后在输入SDA信号的读写信号,他是第一个数字数据的第八位。一个Byte字节数据的传输方式:ADD1:beginif(SCL_LOW) beginif(num = 4'd8) beginnum <= 4'd0;/num计数清零sda_r <= 1'b1;sda_link <= 1'b0;/sda置为高阻态(input)cs

52、tate <= ACK1;endelse begincstate <= ADD1;num <= num+1'b1;case (num)4'd0: sda_r <= db_r7;4'd1: sda_r <= db_r6;4'd2: sda_r <= db_r5;4'd3: sda_r <= db_r4;4'd4: sda_r <= db_r3;4'd5: sda_r <= db_r2;4'd6: sda_r <= db_r1;4'd7: sda_r <= db

53、_r0;default: ; endcase/sda_r <= db_r4'd7-num;/送器件地址,从高位开始endend/else if(SCL_POS) db_r <= db_r6:0,1'b0;/器件地址左移1bitelse cstate <= ADD1;end3)此后我们需要编写的是应答信号,如果应答则继续发送数据,非应答就停止发送数据。应答信号的实现:ACK1:beginif(/*!sda*/SCL_NEG) begincstate <= ADD2;/从机响应信号db_r <= BYTE_ADDR;/ 1地址endelse cstat

54、e <= ACK1;/等待从机响应end应答信号之后就是多个数据的传输以及应答,和上面的方法相似,所以就在此不提及。4)然后就是结束信号:STOP1:beginif(SCL_LOW) beginsda_link <= 1'b1;sda_r <= 1'b0;cstate <= STOP1;endelse if(SCL_HIG) beginsda_r <= 1'b1;/scl为高时,sda产生上升沿(结束信号)cstate <= STOP2;endelse cstate <= STOP1;end;至此就实现了I2C协议中的五个重要状

55、态机的编写,如果要使用我们所需要的状态机时,我们就可以用主机实现我们想要的I2C协议的开始,读,写,应答,结束这个五个状态。至此我们的I2C协议就是个只有SCL时钟线和SDA数据线的黑箱盒14-15。4.2.2 DAC8571驱动设计首先我们介绍下DAC8571的引脚图,以对DAC8571有一定的了解图4-2 DAC8571引脚图表4-1 DAC8571的引脚图引脚引脚名功能1VDD提供模拟电压输入2VREF正极提供参考电压3V(SENSE)模拟输出意义4VOUT从DAC中输出的模拟电压5A0器件地址选择位6SCL串行时钟输入7SDA输入/输出串行数据8GND参考接地从上面的引脚图我们可以看到信号只要从主机发送一定的数据到从机,使从机能够得到一个稳定的数字信号我们就能够实现稳定光源的作用。接下来我们讨论下主机如何给从机一定的信号。I2C协议首先当总线为空闲的时候开始也就是SDA和SCL都是高电平,主机把SDA信号拉低就可以产生一个开始信号。这个信号只能够有主机产生。开始信号之后主机产生一个串行的时钟脉冲,输出一个数据地址ADDRESS7:0,在产生一个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论