ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:484.10KB ,
资源ID:30722693      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/30722693.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于FPGA的干涉型光纤水听器系统中FPGA与上位机通信设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于FPGA的干涉型光纤水听器系统中FPGA与上位机通信设计.docx

1、基于FPGA的干涉型光纤水听器系统中FPGA与上位机通信设计摘 要干涉型光纤水听器作为一种新型的传感器系统,具有灵敏度高,抗电磁干扰与信号串扰能力强,耐高温,抗腐蚀的特点,被广泛应用于信号的实时采样设计中。本设计的主要目的就是将FPGA中的来自光纤干涉水听器系统的数据实时传输给上位机。随着电子工业的发展,USB数据传输技术得到了普遍应用,其具有高速,高可靠性,和高度通用的特点。能够满足高速数据采样系统中数据实时传输的要求,经过与其他传输技术的比较,本方案采用基于FPGA的USB数据传输设计。设计主要从USB传输技术方案,通信协议以及驱动的一些基本知识入手,使用CY7C68013A传输控制芯片和

2、EP2C8Q208C8 FPGA芯片完成了方案的详细设计。在Altera的FPGA的设计环境Quartus II下,使用VHDL语言完成了FPGA内部USB接口控制程序的编写和接口控制器的时序功能仿真。结合干涉型水听器的数据传输要求,编写数据产生模块结合USB接口控制程序完成模拟数据传输的时序功能仿真。结合实际修改CY7C68013的USB传输固件,结合开发板的调试软件,完成了模拟数据传输的硬件验证。关键词: FPGA VHDL USB通信 光纤干涉水听器 业 设 计 外 文 摘 要Title Transmission design between FPGA and host PC in fi

3、ber optic hydrophone AbstractFiber optic hydrophone as a new type of sensor has a quality of high sensitivity. It can be used in the field with electromagnetic interference, high temperature or high corrosion. So it is widely used in the design of real time sampling system. The main purpose of this

4、design is to transmit the data in FPGA which is from fiber optic hydrophone system to the host pc in real time .Along with the development of the electronic industry, USB data transmission technology is widely used with the character of high speed ,high reliability and universal property. So it meet

5、s the demand of the high speed data transmission in real time system. Compared with other technology I choice the USB data transmission based on FPGA design. This design mainly from the FPGA and USB type selection, the FPGA design process, USB2.0 communication protocol and some basic knowledge of dr

6、iver.Then accordingly make the detailed design scheme with the USB controller chip CY7C68013A and the FPGA chip EP2C8Q208C8. Use the VHDL language and complete the program of FPGA internal USB interface controller with timing function simulation in the design environment under Quartus II. To meet wi

7、th the data transmission request ,then compete the data generating module program which combined with the USB interface controller program to complete the data transmission timing function simulation.Modify the CY7C68013 USB transmission firmware combined with the actual. Finally compete the data tr

8、ansmission hardware verification using the demoboard and the test program . Keywords FPGA VHDL USB transmission Fiber optic hydrophone目 次 1 设计需求分析本设计为工程项目“基于FPGA的干涉型光纤水听器多路数据采集系统”的数据传送部分。该项目主要用于完成对于爆炸冲击波的8路数据采样处理和传送。对爆炸冲击波的测量具有时间短数据量大工作环境恶劣的特点,因而项目采用能够适应高速数据采集要求的光纤传感器。当的冲击波发生时,光纤水听器接收到声波,引起光纤传感器几何尺寸

9、的改变,从而引起折射率的变化,导致光程的改变。通过与未产生形变的相同光纤中同源光的干涉比较,产生可测量的信息。由于光纤型水听器采用光学原理,其灵敏度很高,动态范围可达120-140dB。同时由于光学设备本身就具有极强的抗电磁干扰,耐腐蚀的特点,因而光纤干涉水听器采样系统具有很高的可靠性。采集系统将带有PGC解调的光纤水听器的信号进行模数转换。根据A/D转换芯片的要求在FPGA芯片中编写VHDL程序,实现对采集的数据进行实时采样的驱动电路,并利用FPGA内部丰富的存储资源实现对高速采样数据的缓存。在FPGA中采集和处理的数据应能实时传送给上位机用于完成对于测量数据的分析、储存、显示。高速采样系统

10、采集到的数据缓存在FPGA中的FIFO(先进先出队列)中,在FIFO中的数据和上位计算机之间需要建立一种可靠、高速的数据通信方式,从而将FIFO中的数据实时的传输给上位机,这就是是本设计所要研究和实现的重点。图1.1基于FPGA的干涉型光纤水听器多路数据采集系统整体框图本设计需要完成以下工作:(1)在FPGA芯片和上位计算机之间建立一种可靠、高速的数据传输方式;(2)提高分析问题解决问题的能力,本设计使用从未学过的CY7C68013芯片,需要通过查阅资料,自学掌握其特性,编写FPGA内部的相应时序控制电路。通过本设计参与到实际工程项目中,提升对系统工程的认识。(3)本设计涉及到USB上位机驱动

11、的相关知识,需要对基于windows系统的USB驱动有一定的了解;本毕业设计的编程使用VHDL和C语言,需对VHDL和C语言进行深入学习研究;本毕业设计用到EDA 开发环境QuartusII 8.0,需要对该软件配置下载部分进行学习。2 方案设计2.1 传输方案的选择计算机的发展到今天,接口技术也逐渐丰富成熟。根据目前通用计算机主板常见的接口类型,FPGA和上位机的通信方案有多种:并口方案(IEEE 1284)、串口方案(RS-232、RS485)、PCI接口方案、USB接口方案。 RS232接口传输方式:首先其接口的信号电平值较高,并且电平逻辑无法兼容TTL电平;其次传输速率较低,当工作在异

12、步传输模式时,波特率仅为20Kbps,同时由于其连线的特点,容易产生共模干扰,抗噪声干扰性弱。更致命的是其传输距离很有限,其标准的最大传输距离仅能达到15米左右,因而其难以满足高速可靠数据传输的要求。RS422/RS485接口传输方式: 采用全双工方式传输,最少要4根通信线,因而连线复杂,不仅如此,其最大传输速率仅为10Mb/s。所以该方案也无法实现设计要求。并口通信方案特点:并口引脚过多,造成连线过于密集复杂,在通过高频信号时容易引起信号线间串扰难以消除,导致传输错误,信号频率提高困难,无法适应高速的传输要求。所以该方案也无法实现设计要求。PCI通信方案特点:PCI总线虽然得到广泛应用,但它

13、的缺点也很明显。首先,由于线间干扰的存在,使得当连接多个设备时系统无法正常工作。同时多设备共享总线带宽,使得多路采集系统的传输速率较慢,因而其难以满足本设计的要求。USB即通用串行总线,接口通信方案特点:(1)高传输速度:目前USB接口有三种:USB1.1、USB2.0和USB3.0。理论上USB1.1的传输速度可以达到12Mbps,USB2.0可达到480Mbps而USB3.0则可以达到速度5Gbps。(2)支持热插拔:用户在使用外接设备时,不需要重复先关机插上设备再开机,在电脑工作时,就可以直接将USB电缆插上使用。(3)广泛使用:目前其被广泛的应用于计算机外设,接口控制器成本较低。(4)

14、易扩展多设备:通过集线器的扩展,一个根集线器最高可连接至127个设备。随着USB技术的普遍应用,采用USB接口的设备更能够被方便的应用于实际工作中,同时USB通信方式满足了可靠高速数据传输的要求,因而本设计采用USB接口传输方式。2.2 USB总体传输方案设计USB2.0支持三种数据速率:低速(1.5Mbit/s),全速(12Mbit/s),高速(480Mbit/s)。根据本设计的数据采集量应选用高速模式。根据USB控制器成本和成熟度的选择要求,本分案选择Cypress公司的CY7C68013(FX2)控制器芯片。图 2.1 CY7C68013结构图Cypress公司的CY7C68013芯片集

15、成有USB2.0收发器,8051增强型内核,和相应的可编程接口。其USB2.0模式下最大传输速度可达到56Mbytes/s。 CY7C68013的接口有两种模式Slave FIFO和GPIF 模式。本设计采用前者。在本设计中由FPGA内部的USB接口控制电路产生驱动USB芯片CY7C68013芯片的时序信号,USB芯片只需根据USB协议打包上传即可,无需其他的复杂控制,所以本设计选用Slave FIFO模式。该模式下,CPU不参与数据的处理,数据通过芯片内部的FIFO直接传输。FIFO缓冲的数据由上位机读取, FIFO提供FPGA内部接口控制器所需FIFO满、空等握手信号。在这种方式下,CY7

16、C68013中的8051单片机程序的功能只是用于配置与Slave FIFO工作模式相关的寄存器。之后CY7C68013将工作在Slave FIFO模式下,FPGA内接口控制器驱动USB芯片高速与主机进行通讯,而不受制于8051CPU有限的时钟频率。 Slave FIFO模式可再划分为同步读写和异步读写两种模式,本设计使用同步读写模式,其同步时钟信号由FPGA内部接口控制电路提供。图2.2 Slave FIFO传输示意图CY7C68013芯片在数据传输时需要使用4kB 的内部FIFO。使用时要通过编写USB芯片驱动程序配置7个端点: EP0 IN&OUT、EP1 IN、EP1OUT、EP2、EP

17、4、EP6 和EP8。EP0、EP1IN 和EP1OUT是3个只能被固件访问的大小为64 Byte的缓存空间。EP0是数据输入输出端口缓存; EP1IN和EP1 OUT是单独的64Byte缓存空间,可以通过编程定义该端点为块传输、中断传输或同步传输三种方式中的一种。EP2、EP4、EP6、EP8用于大容量高带宽的数据传输 ,EP2、EP4输出,EP6、EP8输入。EP4、EP8能够配置为每帧512 Byte,但EP2、EP6却只能配置为每帧512 Byte或1024 Byte,同时分为2、3、4级,其内部的传输由信号full (满) 和empty(空)来控a制, 当empty为真时不能再对FI

18、FO进行读,当full为真时不能再写数据, USB芯片内部FIFO数据传输示意图如下:图2.3 USB芯片内部FIFO数据传输示意图根据本设计的需要,使用配置为512字节四重FIFO缓冲工作模式的EP2端口,向外输出数据。如图2.3所示,当数据从FPGA传送给外部时,只要USB接口数据输入端的FIFO 状态为半满,就允许发送数据。当其状态为满时, CY7C68013芯片会自动将其对应于外部接口,读出数据。同时将紧接着的空的FIFO对应于 USB接口,读入数据。整个过程类似于水车的原理,通过四重FIFO的空满交替缓冲,完成每帧512Byte的数据成帧和缓冲传送,周而复始。当数据写入时与此原理相同

19、,只是方向相反。2.3 USB接口控制器设计2.3.1 接口控制电路引脚设计FPGA中接口控制器用于承接前面FPGA 中FIFO传来16位的数据并将其传输给USB芯片。它产生USB时钟信号,对USB芯片进行读写控制,并根据USB芯片反馈来的信号(如USB内部FIFO满信号)对FPGA中FIFO进行控制。 图2.4 接口电路和USB芯片连接图IFCLK:接口控制器的输出时钟,作为USB芯片CY7C68013的时钟信号;FLAGA,FLAGB,FLAGC,FLAGD:CY7C68013芯片输出的FIFO状态信息,如满,空等。其中FLAGD (SLCS)为FIFO的片选信号,由FPGA内接口控制器控

20、制,当SLCS输出高电平时,不可进行数据传输。FLAGB(FIFOFULL)为USB芯片4重缓冲FIFO满信号,高电平有效;SLOE:FIFO输出使能信号,接口控制器控制,当该信号无效时,向上位机的数据线不输出数据;SLRD:FIFO读信号,接口控制器控制,同步读时,数据在SLRD有效时的每个IFCLK时钟信号的上升沿读入,异步读时,数据在SLRD的每个有效至无效的跳变沿读入;SLWR:FIFO写信号,接口控制器控制,同步写时,在SLWR有效时的每个IFCLK时钟的上升沿时FIFO指针递增,数据被写入,异步写时,在SLWR的每个有效到无效的跳变沿时FIFO写指针递增,数据被写入;PKTEND:

21、包结束信号,脉冲触发,接口控制器控制,用于传输一个字节数小于USB芯片固件设定的传输帧大小的数据包。该信号有效时,不论FPGA内部接口控制电路写入了多少数据,都将自动打成一个包传送。正常情况下,该引脚无效。数据包安装CY7C68013固定的包大小进行打包传送。本设计中采用默认的打包传输方式,该引脚始终无效,赋予固定电平。FifoData15:0:16位数据线,由FPGA内接口控制电路输出数据提供给USB芯片;Data15:0:16位数据线,由FPGA内部的上一级FIFO缓冲的数据供给USB接口控制器;FIFOADR1:0:选择四个FIFO端点的地址线,外部逻辑控制(其二进制值为10表示选择端口

22、2);Clkout:由接口控制电路根据所接的CY7C68013芯片内FIFO状态产生的时钟信号,控制从FPGA 中FIFO读写数据;Reset:外部控制USB芯片复位,低有效,复位后CY7C68013内FIFO数据清零,状态机回到初始状态,读写引脚SLRD,SLWR均有效;En:外部控制USB芯片读写控制信号,高有效。当FPGA内部无信号产生时控制信号En为低,USB芯片不进行数据传输。图2.5 使用Quartus软件生成的接口控制电路符号2.3.2 USB接口控制器内部逻辑设计根据USB传输的协议,USB端口包含两种状态,即空闲(IDLE)状态和写(WRITE)状态,其状态机如图2.6所示,

23、当如图2.3的USB芯片内的FIFO没有写事件发生时候,USB处于空闲(IDLE)状态,当USB中的FIFO有写事件发生时候,且FIFO不满时,USB处于写(WRITE)状态,直到FIFO写满之后,USB状态转到空闲(IDLE)状态。USB内部FIFO状态标识由FLAGB引脚提供。图2.6 USB接口控制器的状态机本设计使用VHDL语言编写接口控制电路代码,完成数据读取功能,其逻辑设计使用状态机实现,使用了状态fifo_idle(表示空闲)和fifo_transfer(表示传输)。其核心代码如下:case state is when fifo_idle= state if fifo_full=

24、1 then fifo_wr=0; state=fifo_transfer; else fifo_wr=1; state=fifo_idle; 当USB处于写状态时通过控制Clkout时钟读取FPGA中FIFO数据,控制外部数据写入USB接口控制电路,控制SLWR引脚为高,允许写入,将数据传给USB芯片。当外部读写控制信号en为低时或者fifo_full信号为高时SLWR信号为低,同时控制clkout信号时钟频率为0,外部数据不再读入。当reset信号为有效时USB控制器芯片复位。复位后CY7C68013内FIFO数据清零,状态机回到初始状态,读写引脚SLRD,SLWR均有效。接口控制器具体代

25、码见附录1。接口控制器工程文件见附件1。2.4 模拟数据传输电路设计数据传输模拟电路用于模拟产生数据,验证USB接口控制器的传输控制。系统使用50mhz的时钟频率。通过锁相环产生驱动ROM的时钟和驱动接口控制电路的时钟信号。接口控制电路受控于允许信号EN,复位信号RESET,和USB芯片内FIFO满信号FLAGB的控制,输出用于配置USB芯片的ADD0、ADD1,FIFO_OE,FIFO_RD,FIFO_WR,FIFO_CS信号,和USB芯片时钟IFCLK,前级控制时钟信号OUT_CLK。OUT_CLK信号连接加法器adder,作为adder的时钟信号。adder根据时钟信号循环产生5位地址,

26、该地址线连接rom地址线,在rom时钟控制下输出数据给USB接口控制器。本电路用于考核不同控制信号下USB接口控制器的工作情况。图2.7使用Quartus软件生成传输测试顶层电路连接图如顶层文件图所示,数据传输测试电路由USB接口控制器,PLL锁相环,生成的ROM,加法器构成。ROM:本设计从Quartus开发环境中调用了一个32*16bit的ROM用于保存传输所用的数据。其数据使用Quartus中新建mif内存文件手动输入; 图2.8 建立mif内存文件PLL:本设计从Quartus开发环境中调用了一个锁相环。锁相环用于不同频率的产生,其使用50mhz基准频率,输出C0 时钟50mhz和C1

27、时钟 100mhz频率。后者用于ROM的时钟信号,保证数据总线上数据的更新速度大于数据的读出速度;加法器(adder):加法器使用clkout信号作为计时输入时钟信号,当信号上升沿到来时控制输出的5位地址加1,加够31后清0,循环计数。加法器输出的地址信号连接到ROM中,在ROM的数据输出端由地址信号驱动产生地址对应的数据。Adder加法器代码见附录2。ROM 代码见附录3。PLL 代码见附录4。模拟数据传输部分工程文件见附件2。2.5 USB控制器CY7C68013 固件及上位机驱动设计通常芯片固件的编写和上位机驱动的开发需要参考或者直接采用芯片厂商的开发文档和例程,根据Cypress公司开

28、发包中提供的资料,有两种USB芯片固件和上位机驱动的生成方案。方案(1):修改开发包提供的工程框架:该方案可以使用Keil uVision软件创建一个新的工程。使用开发包所带的附带文件PERIPH.C,Ezusb.lib,DSCR.a51,USBJmp.OBJ,DSCR.a51,它们代表了设备中五个不同的功能模块。在新的工程中根据需要调用相应的模块即可。或者使用设计包生成的FW固件框架。可以直接使用该工程代码定制自己需要的传输模式最终编译生成固件。这种方法虽然代码精简,管理方便但是较复杂对于没有固件开发经验的初学者难度较大。方案(2):根据设备功能的需要,直接使用芯片设计包中的例程。这种方法仅

29、需了解自己的技术方案和例程所采用的方案是否一致即可,根据需要直接选择的某个功能相似的例子最为固件框架。在硬件资源足够的情况下,这种方法使用最为方便,同时由于可以直接使用例程的上位机驱动,大大节约了开发成本和时间。本设计选用了方案(2),使用CYPRESS设计包中的正旋波传输测试例子的固件完成硬件验证。该例子使用SlaveFIFO同步传输模式,采用端点EP2 设置为四重512字节缓冲和本设计一致可以采用。同时上位机驱动直接使用该例子所带驱动。固件源代码见附件3。3 电路时序功能仿真及硬件验证3.1 USB接口控制器时序功能仿真本设计使用Quartus软件所带的时序仿真软件对附录1所示的USB接口

30、控制器VHDL文件进行时序仿真,选择功能仿真模式。首先对顶层文件进行编译产生功能网表文件,再对网表文件进行时序功能仿真,仿真结果如下:图3.1USB接口控制器时序功能仿真(0ns到100ns)图3.2 USB接口控制器时序功能仿真(100ns到220ns)如图3.1、3.2所示:开始时fifo_cs低有效,允许数据传输;addr0为低电平,addr1为高电平选择端点2工作方式; reset低有效执行USB控制器复位,fifo_rd、 fifo_oe 、fifo_wr引脚高有效;数据被传送到数据总线上等待读取(由于是控制器单独仿真clk_out信号无法控制数据的输入);当fifo_wr引脚为高电

31、平时(130ns到170ns),数据被读取,clk_out时钟等于输入clk时钟;当fifo_full引脚高电平有效时(50ns到130ns)或者当外部输出允许信号en为低电平时(170ns到200ns),fifo_wr为低电平,数据不再被读取,clk_out无时钟输出。3.2 模拟数据传输电路时序功能仿真本设计使用Quartus软件所带的时序仿真软件对图2.5所示的USB接口控制器顶层文件进行时序仿真,选择功能仿真模式。首先对顶层文件进行编译产生功能网表文件,再对网表文件进行时序功能仿真,仿真结果如下:图3.3数据传输模拟电路时序功能仿真(0ns到120ns)图3.4数据传输模拟电路时序功能

32、仿真(120到250ns)如图3.3、3.4所示:开始时锁相环频率锁定需要一定时间,如图3.3开始的时间并无时钟输出(0到30ns),之后ifclk产生时钟输出;当flagb(fifo_full)引脚高电平有效时(120ns到150ns)或者当外部输出允许信号en为低电平时(80ns到110ns),fifo_wr为低电平,数据不再被读取,clk_out无时钟输出,从而控制加法计数器不再产生新的地址,进而从ROM中读取的仍然是原数据,数据线保持原有数据输出,直到fifo_wr高电平有效,再经过ifclk的一个时钟周期保持的数据被读取,从而保证了数据传输的连续性(如120ns到140ns的数据线),没有数据丢失。3.3 模拟数据传输的硬件验证在硬件验证中,为了满足传输要求,需要根据开发板硬件连接图锁定引脚,并把在硬件验证中不能使用时序信

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1