基于FPGA高速数据采集系统(终)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于FPGA 的高速数据采集系统设计
摘要:基于可编程逻辑器件FPGA 和USB2.0芯片CY7C68013为核心的高速采集系统,设计了在FPGA 的控制下,的控制下,USB USB 接口模块、接口模块、AD AD 转换模块等协同工作下对输入信号的数据采集系统。

介绍了从硬件和软件两个方面来设计数据高速采集系统,重点说明了硬件设计的原理、重点说明了硬件设计的原理、固件程序的设计思想、固件程序的设计思想、固件程序的设计思想、应用程序的设计、应用程序的设计、应用程序的设计、固件下载固件下载驱动程序的开发,驱动程序的开发,USB USB 控制器CY7C68013的特性,通过VHDL 语言设计对USB 控制器的访问控制操作、制器的访问控制操作、USB USB 控制器固件程序设计、控制器固件程序设计、USB USB 驱动程序设计。

该系统可以实现对信号的高速采集,以实现对信号的高速采集,并通过并通过USB 总线与上位机通信,实现在Labview 控制界面下进行显示以及数据的存储,这种基于FPGA 的同步采集、实时读取采集数据的设计充分发挥了FPGA 和USB 的优点,提高系统采集和传输速度。

的优点,提高系统采集和传输速度。

关键词:FPGA ;USB2.0;高速采集;Labview 
High Speed Data Acquisition System Design 
Base on FPGA 
Abstract: Take the the logical logical logical component component component FPGA, FPGA, FPGA, USB2.0 USB2.0 USB2.0 chip chip chip and and and CY7C68013 CY7C68013 CY7C68013 as as cores.This system realize the high speed acquisition of input signal with the cooperation work of FPGA controller, USB connector and AD converter. Introducing from two aspects of hardware and software ,the design of high speed data acquisition System System focuses focuses focuses on on on the the the principle principle principle of of of hardware hardware hardware design, design, design, the the the firmware firmware firmware program program program design, design, application design, development of firmware download driver, USB controller CY7C68013 CY7C68013 characteristics characteristics characteristics realize realize realize the the the control control control of of of visit visit visit of of of USB USB USB controller controller controller and and and the the design of USB controller firmware program and USB driver.By means of USB bus and Upper Computer, the display and store of data can be achieved under the Labview control interface. The design of synchronous acquisition and real-time read give full play play to to to the the the advantages advantages advantages of of of FPGA FPGA FPGA and and and USB, USB, USB, improving improving improving the the the speed speed speed of of of acquisition acquisition acquisition and and transmission. 
KEYWORD: FPGA; USB2.0; Speed Acquisition ; Labview 
目 录
第一章 概述 (1)
1.1项目背景及研究意义 (1)
1.2国内外研究现状 (1)
第二章 总体方案设计 (2)
2.1硬件总体方案设计 (2)
2.2软件总体方案设计 (2)
2.2.1 FPGA 程序流程图 (2)
2.2.2 USB 芯片程序流程图 (2)
2.2.3 LABVIEW 程序流程图 (3)
第三章 硬件设计 (4)
3.1 3.1 硬件原理设计........................................................................硬件原理设计 (4)
3.2 3.2 芯片的选择...........................................................................芯片的选择 (5)
3.2.1 FPGA 的选择 (5)
3.2.2 USB 芯片选择 (5)
3.2.3 A/D 的选择 (5)
3.3硬件电路设计 (6)
3.3.1 USB 芯片外围电路设计 (6)
3.3.2 CPLD 电路设计 (7)
3.3.3 AD 电路设计 (7)
第四章 软件设计 (8)
4.1 FPGA 程序设计 (8)
4.2 USB 固件程序设计 (10)
4.3上位机程序设计 (12)
第五章 系统调试 (14)
第六章 设计总结……………………………………………………………………17 附 录………………………………………………………………………………… 附录Ⅰ附录Ⅰ附录Ⅰ Protel Protel 原理图…………………………………………………………… 附录Ⅱ附录Ⅱ附录Ⅱ FPGA FPGA 顶层图………………………………………………………………
第一章 概 述
1.1 项目背景及研究意义
随着信息技术的飞速发展,随着信息技术的飞速发展,
各种数据的实时采集和处理在现代工业控制和科学研究中已成为必不可少的部分,数据采集系统中主要关注的是精度和采样率的问题。

传统的数据采集系统往往采用单片机作为控制器,传统的数据采集系统往往采用单片机作为控制器,控制模/数转换控制模/数转换控制模/数转换(ADC)(ADC)(ADC)、、存储器和其他外围电路的工作。

但由于单片机时钟频率低而且各种功能需要靠软件来实现,很难满足对数据的高速采集的要求。

很难满足对数据的高速采集的要求。

于是高速及超高速数据采集系统于是高速及超高速数据采集系统产生并得到了快速的发展,产生并得到了快速的发展,基于基于FPGA 和USB2.0的数据采集方案,提高了系统采集和传输速度并实现了高可靠性、多点的数据采集。

研究意义:目前,随着微电子技术的发展,电子自动化设计工具的普及,大规模可编程逻辑器件也越来越得到广泛的实际应用。

可编程逻辑器件不仅使系统趋于小型化、趋于小型化、集成化和高可靠性,集成化和高可靠性,集成化和高可靠性,而且具有用户可编程特性,而且具有用户可编程特性,而且具有用户可编程特性,这些优点将缩短系这些优点将缩短系统设计周期,减小设计成本,降低设计风险。

不仅如此,部分器件除具有用户可编程能力外,编程能力外,还具有简单的在线可编程能力。

还具有简单的在线可编程能力。

还具有简单的在线可编程能力。

其中其中其中FPGA FPGA FPGA编程则显得更加灵活,编程则显得更加灵活,编程则显得更加灵活,比比如,一片一片FPGA FPGA FPGA芯片就可替代几片甚至几十片标准器件,芯片就可替代几片甚至几十片标准器件,芯片就可替代几片甚至几十片标准器件,其用户可用其用户可用其用户可用I I /0引脚数目多达数百条。

一片一片FPGA FPGA FPGA就可以实现逻辑功能十分复杂的逻辑部件甚至一个小型数就可以实现逻辑功能十分复杂的逻辑部件甚至一个小型数字系统。

字系统。

如果将如果将如果将FPGA FPGA FPGA引入到数据采集系统中,引入到数据采集系统中,引入到数据采集系统中,无疑会使系统的体积更加小巧,无疑会使系统的体积更加小巧,无疑会使系统的体积更加小巧,其其性能更加优越。

因此,具有一定的现实意义。

1.2 国内外研究现状及发展前景
国内数据采集器的现况上世纪国内数据采集器的现况上世纪080808年代末到年代末到年代末到090909年初,年初,
我国一些仪器厂已研制出了多种数据采集器,其中单通道的有其中单通道的有SP201SP201SP201,,SC247SC247型,型,双通道的有双通道的有EG3300EG3300EG3300,,YE5938型,超小型的有超小型的有911,902911,902911,902和和921921型型.具有采集静态信号的有具有采集静态信号的有SMC SMC SMC一一90129012型,型,所配套的软件包基本上包括了设备维修管理和基本频谱分析两大部分,能够适应机器设备的一般状况监测和故障诊断,的一般状况监测和故障诊断,基本上己经达到了国外数据采集器的初期水平。

基本上己经达到了国外数据采集器的初期水平。

基本上己经达到了国外数据采集器的初期水平。

但但是,国内数据采集器与目前国外数据采集器相比,在技术上仍然存在着一定差距。

主要表现:由于受国内振动等传感器水平的限制由于受国内振动等传感器水平的限制,,分析频率范围不宽,给一些高速的机器或轴承的诊断等带来了一定的困难;由于数据采集器的内存不大,数据采集器本身的信号处理功能不强,数据采集器本身的信号处理功能不强,在现场只能做一些简单诊断,在现场只能做一些简单诊断,在现场只能做一些简单诊断,精密诊断需精密诊断需要离线到计算机上去做,现场精密诊断功能较弱;现场精密诊断功能较弱;设备的软件水平仍在设备维修设备的软件水平仍在设备维修管理和基本频谱分析上徘徊,管理和基本频谱分析上徘徊,机器故障诊断专家系统还需完善,机器故障诊断专家系统还需完善,机器故障诊断专家系统还需完善,软件人机界面有软件人机界面有待改进。

待改进。

数据采集是整个工厂自动化的最前端,数据采集是整个工厂自动化的最前端,数据采集是整个工厂自动化的最前端,测试精度、测试精度、测试精度、速度与实现该功能的速度与实现该功能的成本是几个重要因素,成本是几个重要因素,数据采集也正朝着这几个方向发展。

数据采集也正朝着这几个方向发展。

数据采集也正朝着这几个方向发展。

高速、高速、高速、实时数据采集实时数据采集在运动控制、在运动控制、爆炸检测、爆炸检测、爆炸检测、医疗设备、医疗设备、医疗设备、快速生产过程快速生产过程快速生产过程((如石油化工过程如石油化工过程))和变电站自动化等领域都有非常重要的应用。

动化等领域都有非常重要的应用。

这些行业中,这些行业中,对高速数据采集的需求远远超过目前实际可以实现的程度。

用户的需求促进了技术的发展和新产品的出现,因此,高速数据采集仍然会有长足的发展。

高速数据采集仍然会有长足的发展。

发展前景: 数据采集技术已广泛应用于工业控制系统、数据采集系统、测自动试系统、智能仪器仪表、遥感遥测、通讯设备、机器人、高档家电等方面。

可以预见,随着大规模集成电路技术与计算机技术的发展,数据采集技术将在雷达、通信、水声、遥感、地质勘探、无损监测、语音处理、智能仪器、工业自动控制以及生物医学工程众多领域发挥更大的作用。

以及生物医学工程众多领域发挥更大的作用。

特别是计算机的发展,特别是计算机的发展,网络化可以更好地协调工作,增强系统的可靠性,势必推动数据采集在更加广阔的领域应用。

第二章 总体方案设计
2.1 硬件整体方案设计(如图2.1.1)
模拟信号输入AD 通道调理器AD 转换器 ADS930)FPGA USB 控制芯片PC 机
图2.1.1整体设计图
数据采集和传输系统只要由FPGA FPGA(中心控制模块)(中心控制模块)、USB USB(串行总线)(串行总线)、A/D 转换器以及其它的外围辅助电路组成。

(1)A/D 转换器的作用是将输入的模拟量转换成数字量,由FPGA 接受、缓冲、存储经USB2.0端口传到PC 机上。

机上。

(2)FPGA 是控制模块的核心部分,主要完成A/D 转换器的时钟选取、数据的存储计算以及相应的控制逻辑、实现与PC 机的通信等控制任务。

机的通信等控制任务。

(3)USB2.0提供了一个可以和计算机连接的数据传输口,其作用是用来接受主机信号并通过它的端口来控制A/D 转换器进行数据的采集。

转换器进行数据的采集。

(4)PC 机通过USB 接口将控制命令和参数给FPGA FPGA,然后,然后FPGA 再对A/D 转换器进行时序控制以及对转换数据的接收。

2.2 软件总体方案设计
2.2.1 FPGA 程序流程图
FPGA 部分程序框图如图2.2.1所示。

所示。

开始
FULL是否低
电平读取采样率
开始采集
Y
PA1 PA2数
据是否变化Y
N
N 停止采集 等待
保持
图2.2.1 FPGA 程序流程图
2.2.2 USB 芯片程序流程图
USB 控制器采用的是Cypress 公司的EZ_USB FX2LP 系列中的CY7C68013A CY7C68013A,,集成有16KB 的片内RAM RAM、增强的、增强的8051微处理器、微处理器、1616位并行地址总线、位并行地址总线、88位数据
总线、总线、I2C I2C 总线、双串口、总线、双串口、4KB 4KB 的FIFO 的可配置的存储器以及通用可编程接口(GPIF GPIF))、智能串行接口引擎和USB2.0收发器。

收发器。

USB 芯片流程图如图2.2.2所示。

所示。

开始
初始化
是否有来自
PC的数据
Y
发送数据给
FPGA开始采集是否有数据
上来
Y
存入FIFO FIFO是否满
Y
打包数据给
PC FULL引脚
低电平FIFO是否空等待
N 等待
N 保持
N Y
N
图2.2.2 USB 芯片程序流程图
2.2.3 LABVIE 程序流程图
主机断应用程序采用虚拟仪器设计的思想,利用LABVIEW 设定一定的喜好处理算法和易于操作的仪表界面,即可完全替代传统的硬件仪器,如逻辑分析仪等,同时还可将数据存储在计算机中便于后续分析。

LABVIEW 程序流程图如图2.2.3所示。

包括了启动判断,采样率改变的判断,还使用了二维数组来分别存储两个通道的数据。

开始
启动按钮是
否按下
Y 查看设备是否打开成功
Y
查看采样率是否有数据
上来
Y
开始数据处理等待N 提示打开设备失败
N 等待
N Y
发送给USB
采样率是否
改变
N Y
图2.2.3 LABVIE 程序流程图
第三章 硬件设计
3.1硬件原理设计
硬件原理设计如图硬件原理设计如图3.13.13.1所示,所示,模拟输入信号事先经过模拟输入信号事先经过AD AD AD调理电路,调理电路,在经在经ADS930ADS930的模数转化,将数字信号传递给的模数转化,将数字信号传递给EPM1270T144C5N EPM1270T144C5N EPM1270T144C5N芯片,芯片,芯片,CLPD CLPD CLPD与与USB USB之间通过控制之间通过控制线以及线以及I/O I/O I/O口实现控制信息和数字信息的双向传递,与此同时,口实现控制信息和数字信息的双向传递,与此同时,CPLD CPLD通过通过通过FIFO FIFO FIFO总总线建立与线建立与805180518051核的链接。

而核的链接。

而核的链接。

而USB USB USB芯片与芯片与芯片与PC PC PC机是通过机是通过机是通过USB USB USB接口建立相应的联系。

接口建立相应的联系。

接口建立相应的联系。

5V 5V 的电压通过电压转换芯片转换为的电压通过电压转换芯片转换为3.3V 3.3V 3.3V,并将此转换的,并将此转换的,并将此转换的3.3V 3.3V 3.3V电压对电压对电压对USB USB USB芯片进行供芯片进行供
电。

电。

E E 2PROM PROM由由I 2C 接口实现与接口实现与USB USB USB的信息交互。

的信息交互。

的信息交互。

AD 调理电路
ADS930
CPLD EPM1270T144C5N 控制线及IO 口从FIFO
8051核
SIZE
模拟输入
I 2C 接口电压转换芯片
USB 接口E 2P R O M USB 2.0
PC 机 5V 电压 USB 总线
3.3V 电压
图3.1数据采集器/波形发生器的硬件原理图
3.2 芯片的选择
3.2.1 FPGA 的选择
为节约成本,由FPGA 及其相应的配置电路可由CPLD 代替,这样将便于项目的进行,为此我们采用型号为EPM1270T144C5N 的CPLD 模块。

模块。

3.2.2 USB 芯片选择
目前市面上有很多类型的USB 的接口芯片,的接口芯片,它们要在外部的微控制器的控制它们要在外部的微控制器的控制下进行操作,如果微控制器的工作频率比较低,势必影响数据传输的速率。

CY7C68013芯片中的FIFOS 不需要微控制器的控制就能直接与外围电路进行数据传输,解决了USB 高速模式下的带宽问题。

选择该芯片的另个重要原因Cypress 公司为EZ_USB FX2系列产品的开发提供了大量的技术支持,如公司为开发者提供了主控平台,固件开发环境和事例及相应的技术文档。

3.2.3 AD 的选择
将模拟信号转化为数字信号实际上是模拟信号时间离散化和幅度离散化的
过程。

通过时间离散化由采样保持(过程。

通过时间离散化由采样保持(S/H S/H S/H)电路来实现,而幅度离散化则由)电路来实现,而幅度离散化则由A/D 转化器来实现。

随着高集成度的提高,有许多A/D 芯片将采样保持电路也集成在
内部。

既减小了体积,又提高了可靠性。

在选择A/D 转化器时,主要考虑一下几个方面:个方面:
(1)转换速率)转换速率
A/D 的转换速率取决于模拟信号的频率范围
(2)量化位数)量化位数
根据A/D 转换的原理,转换的原理,A/D A/D 转换过程中总存在量化误差。

量化误差取决于量
化位数,化位数,位数越多量化误差就越少。

位数越多量化误差就越少。

位数越多量化误差就越少。

如如n 位的A/D 转化器,转化器,其量化误差为其量化误差为1/2n+1。

(3)输入信号的电压范围)输入信号的电压范围
A/D 转化器对模拟输入信号的电压范围有严格的要求,转化器对模拟输入信号的电压范围有严格的要求,模拟信号电压只有处模拟信号电压只有处在A/D 转化器的额定电压范围内,才能得到与之成正比的数字量。

由于在A/D 转换器之前已经加了信号调理电路,转换器之前已经加了信号调理电路,通过调节放大倍数和直流偏移量,通过调节放大倍数和直流偏移量,通过调节放大倍数和直流偏移量,总能满足总能满足A/D 转化器对输入电压的要求。

转化器对输入电压的要求。

(4)参考电压VREF 要求要求
A/D 转换的过程就是不断将被转换的模拟信号和参考电压VREF 相比较的过程。

因此,参考电压的准确度和稳定性对转换精度至关重要。

(5)控制信号及时序)控制信号及时序
A/D 转换器工作时必须由MCU 或PLD 控制,因此,选择A/D 转换器时,应考虑接口的方便性和高低电平的兼容。

虑接口的方便性和高低电平的兼容。

根据以上分析,我们选择BURR-BROWN 公司生产的8位、位、30MHZ 30MHZ 高速A/D 转换器ADS930ADS930。

ADS930采用3~5V 电压电源,流水线结构,内部含有采样保持器和参考电压源。

和参考电压源。

3.3 硬件电路设计
3.3.1 USB 芯片外围电路设计
电源电路如图3.3.1.1所示,所示,USB USB 设备采用总线供电,设备采用总线供电,USB USB 总线供电电压为5V 5V,而,而CY7C68013的工作电压为3.3V 所以必须通过电压转换才能让设备正常工作,转换后的电压经过电容滤波后提供给主控制芯片。

图 3.3.1.1 电源电路
由于主控制芯片CY7C68013内部没有程序存储器,而只提供了8KB 的RAM 作为程序和数据的复用的存储器,当USB 设备一上电时,程序就被加载到RAM 中,开始执行。

但一断电,内部RAM 中的信息都和丢失。

为了能够让USB 设备每次上电后都能够正常工作,将设备程序放在上位机上,将设备的ID 号存放在外扩的E2PROM 中,当USB 设备一上电时,计算机获得E2PROM 的ID 号通过这个ID 号自动将固件程序加载到主控制芯片的内部RAM 中,设备开始工作。

中,设备开始工作。

E2PROM E2PROM 电
路图如3.3.1.2所示,采用24LC64作为外扩的E2PROM E2PROM,,8KB 存储空间,采用两个地址寻址,个地址寻址,CY7C68013CY7C68013对采用两个字节寻址的E2PROM 要求其最低位地址线接高电平,其余接低电平。

高电平,其余接低电平。

图 3.3.1.2 EEPROM 电路
3.3.2 CPLD 电路设计
如图3.3.2.1所示所示,,其中D1表示上电复位,接通电源时显示亮;D2显示数据采集时的状态,当它亮时表示表示存储器处于空的状态可以采集数据进来,当它亮时表示表示存储器处于空的状态可以采集数据进来,暗的暗的时候表示存储器满。

时候表示存储器满。

图 3.3.2.1 指示灯电路
3.3.3 AD 电路设计
高速A/D 模块由A/D 转换器和信号调理电路组成。

转换器和信号调理电路组成。

ESDM-0401ESDM-0401模块的元件排布图如图3.3.3.1所示,所示,ESDM-0401ESDM-0401模块的原理图如图3.3.3.2所示。

所示。

A/D A/D 转换器采用3.3V 3.3V、、30MHz 30MHz、、8位高速A/D 转换器ADS930ADS930。

信号调理电路由。

信号调理电路由150MHz 高速双运放MAX4016组成,其增益、直流偏移量可调。

组成,其增益、直流偏移量可调。

R5R5R5、、C5构成低通滤波电路。

其引脚功能表如3.3.3.3所示。

信号发生器输出的信号加在J2口,经过电压跟
随器和偏置放大电路(通过调节PR1可调节增益,
PR2电位器可调节直流偏移量)输入到ADS930的“+IN ”端转换成数字信号传给FPGA 。

图3.3.3.1 高速A/D模块元器件排布图
1234A B C D
4
3
2
1
D
C B A
+5V
C100.1u F
C80.1u F
C110.1u F
GND
13
OE
16
Bit5
8
Bit3
10Bit4
9
Bit2
11
Bit6
7
LnBy
25
Bit8
5
Bit1
12
1VREF
23
NC
22
IN
24
LpBy
21
GND19
+IN
27
Bit7
6
CLK
15
CM
26
NC
3
LVDD
2
+Vs
18
Pwrd n
17
GND
14
+Vs
1
GND
20
NC
4
+Vs
28
U1ADS930
C90.1u F
1
2
J2
Vin
R5
68Ω
R1
10k
C20.1u F
C1 6.8u F
+5V
C3
0.1u F
+
C4
6.8u F
-5V
PR110k
C5
0.001μF
R21k
2
3
1
U3A MAX4016
5
6
7
U3B MAX4016
IN
3
OUT
2
GND
U2AS1117
PR22k
-5V+5V
DC Ad j 
ADin
D4
D7
D5
D6
D0
D3
D1
D2
/OE
CLK
CLK
D4
D7
D5D6
D0
D3
D1D2
NC NC
NC NC
NC
/OE
GND
12
34
56
78
910
1112
1314
1516
J1
图3.3.3.2 高速A/D模块原理图
引脚
引脚 名称
名称 功能说明
功能说明 引脚
引脚 名称
名称 功能说明
功能说明
1 +VS 模拟电压源
模拟电压源 15 CLK 转换时钟输入端
转换时钟输入端
2 LV DD 数字电压源
数字电压源 16 OE 数据输出使能端
数据输出使能端
3 NC 无连接
无连接 17 Pwrdn 低功耗模式控制端
低功耗模式控制端 4 NC 无连接
无连接 18 +VS 模拟电压源
模拟电压源
5 Bit8(LSB) 数据位(
数据位(D0
D0
D0)
)19 GND 模拟地
模拟地
6 Bit
7 数据位(
数据位(D1
D1
D1)
)20 GND 模拟地
模拟地
7 Bit6 数据位(
数据位(D2
D2
D2)
)21 LpBy 正阶梯旁路端
正阶梯旁路端
8 Bit5 数据位(
数据位(D3
D3
D3)
)22 NC 无连接
无连接
9 Bit4 数据位(
数据位(D4
D4
D4)
)23 1VREF 1V参考电压输出
参考电压输出
10 Bit3 数据位(
数据位(D5
D5
D5)
)24 IN 基准电压输入端
基准电压输入端
11 Bit2 数据位(
数据位(D6
D6
D6)
)25 LnBy 负阶梯旁路端
负阶梯旁路端
12 Bit1(MSB) 数据位(
数据位(D7
D7
D7)
)26 CM 共模电压输出端
共模电压输出端
13 GND 模拟地
模拟地 27 +IN 模拟信号输入端
模拟信号输入端
14 GND 模拟地
模拟地 28 +VS 模拟电压源
模拟电压源
表3.3.3.3 ADS930引脚功能表
第四章软件设计
4.1 FPGA程序设计
FPGA程序在Quartus7.2软件环境中用VHDL语言编写,主要分为串行命令接受模块、
受模块、A/D
A/D控制及数据读取模块、
控制及数据读取模块、44路时钟分频器模块以及USB芯片通信模块几部分组成。

几部分组成。

采用7416174161(如图(如图4.1.14.1.1)对输入的)对输入的48MHZ 的频率进行分频后总共可以得到四中频率分别为48MHZ 48MHZ、、24MHZ 24MHZ、、12MHZ 12MHZ、、6MHZ 6MHZ,,具体采用哪一频率通过74151(如图4.1.24.1.2)数据选择器进行选择,而它的地址码是接移位寄存器的输出端,根据)数据选择器进行选择,而它的地址码是接移位寄存器的输出端,根据移位寄存器出数的PA1PA1、、PA2值进行频率选择。

值进行频率选择。

图4.1.1分频器 图4.1.2数据选择器
图4.1.3 A/D 控制及数据读取BLOCK
如图4.1.34.1.3,实际应用中目前采用的是,实际应用中目前采用的是8位(位(ADS930ADS930ADS930))
,画原理图是采用16位的A/D 转换器以便于下一阶段的系统设计开发。

其中主要程序代码如下: architecture one of AD is begin
process(clk) begin
if (clk' event and clk='0') then if(dir='1') then
data_out <= "1111111111111111"-data_in ; else
data_out <= data_out-2data_out <= data_out-2;; end if end if;; end if end if;; end process end process;; end one end one;;
如图4.1.44.1.4,本来是可以通过两根线来控制,本来是可以通过两根线来控制4种频率变化情况,但由于硬件连接问题,连接问题,当当PA1和PA2同时为低电平是,同时为低电平是,芯片出现发烫情况,芯片出现发烫情况,芯片出现发烫情况,所以我们采用移所以我们采用移位寄存器的方法,一根做时钟线,一根做数据线来实现。

YW 模块主要程序代
图4.1.4 串口处理设计部分原理图 ARCHITECTURE one OF YW IS
SIGNAL pcx:STD_LOGIC_VECTOR(0 TO 3); BEGIN
PROCESS(clk) BEGIN
IF clk'EVENT AND clk ='1' THEN pcx(0)<=data_in; pcx(1)<=pcx(0); pcx(2)<=pcx(1); pcx(3)<=pcx(2); END IF;
END PROCESS; PA1<=pcx(0); PA2<=pcx(1);
END one;
4.2 USB 固件程序设计
固件是在USB 接口芯片加电后,接口芯片加电后,由其他设备加载到由其他设备加载到CY7C68013中并在其中运行完成接口数据传送功能的一段程序行完成接口数据传送功能的一段程序..其作用是辅助或者说控制硬件来完成预期的设备功能的设备功能..固件的主要功能包括固件的主要功能包括::初始化工作;
辅助硬件完成设备的重新列举过程,对主机的设备响应做出适当的响应;对中断的处理;数据的接受与发送;对外围电路的控制。

系统采用了同步FIFO 传输方式中的BULK 模式进行数据传送。

改动部分代码如下所示:改动部分代码如下所示: BOOL DR_START() ////自定义请求 {PA0=1{PA0=1;;
return(TRUE)return(TRUE);; }
BOOL DR_STOP() ////自定义请求 {PA0=0{PA0=0;;
return(TRUE)return(TRUE);; }
BOOL DR_1P5M() { { // send 00 // send 00 PA1=0PA1=0;; SYNCDELAY SYNCDELAY;;
SYNCDELAY SYNCDELAY;; PA2=1PA2=1;; SYNCDELAY SYNCDELAY;; PA2=0PA2=0;; SYNCDELAY SYNCDELAY;; PA2=1PA2=1;; SYNCDELAY SYNCDELAY;;
PA1=1PA1=1;;PA2=1PA2=1;;
其中PA1=0数据即准备输入‘数据即准备输入‘00’
,而PA2是用来做脉冲触发的,上述程序中当由PA2=0变为PA2=1时数据PA=0就被送入移位寄存器,所以可以得到上述程序送出了‘序送出了‘000000’表示采样率为’表示采样率为 1.5MHZ 1.5MHZ。

以次类推可以令‘。

以次类推可以令‘。

以次类推可以令‘010101’’‘1010’’‘1111’时对’时对应的采样率分别为3M 3M、、6M 6M、、12M 12M,因此也可以通过以上程序来更改采样率。

,因此也可以通过以上程序来更改采样率。

以下是个端点配置寄存器在复位后的初始值: void TD_Init( void ) { IFCONFIG =0x43;IFCONFIG =0x43;////使用外部时钟,异步方式,Slave FIFO 方式 SYNCDELAY;
EP2CFG=0xA0; //EP2有效,OUT 设定为四缓冲(每个缓冲区大小为512字节) SYNCDELAY; EP4CFG=0x00; SYNCDELAY;
EP6CFG=0xE0; //EP6有效,IN device to host
SYNCDELAY; EP8CFG=0x00; SYNCDELAY;
FIFORESET = 0x80; FIFORESET = 0x80; // activate NAK-ALL to avoid race conditions // activate NAK-ALL to avoid race conditions SYNCDELAY; SYNCDELAY; // see TRM section 15.14 // see TRM section 15.14 FIFORESET = 0x02; FIFORESET = 0x02; // reset, FIFO 2 // reset, FIFO 2 SYNCDELAY;
FIFORESET = 0x06; FIFORESET = 0x06; // reset, FIFO 6 // reset, FIFO 6 SYNCDELAY;
FIFORESET = 0x00; FIFORESET = 0x00; // deactivate NAK-ALL // deactivate NAK-ALL SYNCDELAY;
PINFLAGSAB = 0xE6; PINFLAGSAB = 0xE6; // FLAGA - fixed EP6PF, FLAGB - fixed EP6FF // FLAGA - fixed EP6PF, FLAGB - fixed EP6FF SYNCDELAY; PINFLAGSCD PINFLAGSCD = = = 0xf8; 0xf8; 0xf8; // // FLAGC - fixed EP2EF, FLAGD - reserved SYNCDELAY;
PORTACFG |= 0x00; //SLCS 无效 SYNCDELAY;
FIFOPINPOLAR = 0x00; // 各引脚电平置低,以此方法屏蔽PKEND 功能 SYNCDELAY; OEA|=0x0F;
EP2FIFOCFG = 0x01; EP2FIFOCFG = 0x01; // AUTOOUT=0, WORDWIDE=1(16 bits) // AUTOOUT=0, WORDWIDE=1(16 bits)
SYNCDELAY;
EP2FIFOCFG = 0x11; EP2FIFOCFG = 0x11; // AUTOOUT=1, WORDWIDE=1 // AUTOOUT=1, WORDWIDE=1
SYNCDELAY;
EP6FIFOCFG = 0x09; EP6FIFOCFG = 0x09; // AUTOIN=1, ZEROLENIN=0, WORDWIDE=1 // AUTOIN=1, ZEROLENIN=0, WORDWIDE=1 SYNCDELAY; //IO 设置
PORTCCFG=0x00; PORTECFG=0x00; //串口初始化
PA0=0;
DR_6M(); //采样率6MHz enum_high_speed=FALSE;
}
4.3上位机程序设计 设备驱动程序是由设备驱动程序是由设备驱动程序是由Cypress Cypress Cypress公司提供的通用公司提供的通用公司提供的通用EZ_USB EZ_USB EZ_USB驱动程序驱动程序驱动程序ezusb.sys ezusb.sys ezusb.sys,,该驱动程序预留了很多接口参数,利用这些接口参数和计算机提供的API API函数,即可函数,即可以制作动态库,以制作动态库,在在VB VB程序中调用这些动态库,程序中调用这些动态库,程序中调用这些动态库,即可以调用驱动程序,即可以调用驱动程序,即可以调用驱动程序,从而实现与从而实现与设备通信。

动态库在动态库在VC++VC++VC++环境下开发的,环境下开发的,主要利用主要利用USBRead USBRead USBRead和和VendRequest VendRequest两个函两个函数。

数。

编写好的程序经过编译,编写好的程序经过编译,便可以在工程中的便可以在工程中的debug debug debug文件夹中产生扩展名为文件夹中产生扩展名为文件夹中产生扩展名为.DLL .DLL 的动态链接库文件,将该动态链接库文件复制在system32system32目录下,在目录下,在目录下,在LABVIEW LABVIEW LABVIEW程程序中申明动态库后,即可以加以调用。

LABVIEW LABVIEW程序设计的前面板如图程序设计的前面板如图程序设计的前面板如图4.3.14.3.14.3.1所示。

整理程序框图见附录。

所示。

整理程序框图见附录。

所示。

整理程序框图见附录。

图4.3.1 上位机前面板图。

相关文档
最新文档