《基于FPGA的数据采集系统的设计1.pdf》由会员分享,可在线阅读,更多相关《基于FPGA的数据采集系统的设计1.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于F P G A 的数据采集系统的设计刘军,岳兴莲,何国国,罗石,吴硕开(江苏大学,江苏镇江2 1 2 0 1 3)摘要:介绍了一种用于汽车姿态测量的数据采集系统的设计,该系统基于F P G A+U S B 架构,采用F P G A 控制整个系统的采集时序,U S B 芯片作为数据采集通道,上位机完成姿态解算和数据显示功能。关键词:F P G A;U S B;数据采集中图分类号:T P 2 7 4+2文献标识码:AD e s i g no fd a t aa c q u i s i t i o ns y s t e mb a s e do nF P G AL I UJ u n,Y U EX
2、i n gL i a n,H EG u oG u o,L U OS h i,W US h u oK a i(J i a n g s uU n i v e r s i t y,Z h e n j i a n g2 1 2 0 1 3,C h i n a)A b s t r a c t:T h i sp a p e ri n t r o d u e dt h ed a t aa c q u i s i t i o ns y s t e mu s i n gi nav e h i c l ea t t i t u d em e 踮u r e m e n ts y s t e m T h ea c q
3、 u i s i t i o ns y s t e r nu s e sF P G A+U S Ba r c h i t e c t u r e,F P G Ac o n t r o lt h ew h o l es y s t e mo fc o l l e c t i n gt i m e s e r i e s,U S Bc h i pa c ta sad a t aa c q u i s i t i o nc h a n n e l,a n dP Cp r o f i l es o l v e ra n dd a t ad i s p l a y K e yw o r d s:F P
4、G A;U S B;d a t aa c q u i s i t i o n现代化生产和科学研究对采集系统的要求日益提高。传统的采集卡速度慢、处理功能简单、采用分立元件、电路非常复杂;而且可靠性差、不易调试、不能很好地满足特殊要求。现场可编程门阵列(F P G A)是专用集成电路中集成度最高的一种,用户可对F P G A 内部的逻辑模块和I O 模块重新配置,以实现用户所需逻辑功能。用户对F P G A 的编程数据放入芯片,通过上电加载到F P G A 中,对其进行初始化;也可在线对其编程,实现系统在线重构1 1 1。本系统设计采用U S B 2 0C Y 7 C 6 8 0 1 3通信接口芯
5、片作为数据采集通道,由F P G A 芯片E P l C 6 Q 2 4 0 C 8 N 作为采集设备的控制单元,由P C 机完成姿态的解算及结果的显示。1 系统的组成及原理该采集系统主要由前端调理模块、A D 转换控制模块、S R A M 存储模块及U S B 接口模块组成。系统框图如图l 所示。2F P G A 主控器内部模块2 1A D 转换控制模块A D 转换模块选用A D 7 6 8 5 芯片。A D 7 6 8 5 是A n M o g基金项目:汽车动态模拟国家重点实验室开放基金资助项目(2 0 0 7 11 0 4 1微型机与应用2 0 0 9 年第1 9 期纠要一I 嚣传感器8
6、数lf A,D据Il 转选H 换择l I 芯器I l 片F P G A主控芯片U S B接口芯片上位机图I系统设计方案D e v i c e 公司生产的一款1 6 位、电荷再分配、高速、低功耗的逐次逼近型模数转换器(A D C),具有2 5 0k S s 采样速率。芯片在V e r i l o g 编程语言的控制下,完成模拟信号到数字信号的转换。2 2F I F O 缓存调用F P G A 片上资源实现片上F 1 F O 缓存,由于A D 采样频率与S R A M 的读写频率不一致,所以采用读写时钟不同的F I F O,达到数据缓存和转换时钟域的双重目的。2 3S R A M 乒乓缓存模块选用
7、2 片I s 6 l L V 2 5 6 1 6 存储芯片,该芯片存储容量为2 5 6 K x l 6,采用V e r i l o g 硬件描述语言控制实现乒乓缓存,控制过程如图2 所示。从片上F I F O 输出的数据经选择开关后,分别进入缓冲模块1 和缓冲模块2。当数据写入缓冲模块l 时,U S B 模块从缓冲模块2 读取数据;当数据写入缓冲模块2 时,U S B 模块从缓冲模块l 读取数据以传到上位机进行处理。欢迎网上投稿W W W p c a c h i n a t o m1 3 万方数据输入刮缓冲模块,一输出U S B数据数据_ 控制选择选择模块开关_ 叫缓冲模块z o开关图2 乒乓
8、缓存工作原理2 4U S B 控制模块U S B 接口芯片采用E Z U S BF X 2(C Y 7 C 6 8 0 1 3),F X 2作为U S B 2 0 数据通道来实现与主机的高速通信。F P G A能够满足S l a v eF I F O 要求的传输时序1 2 1 作为S l a v eF I F O主控制器。图3 分别给出了F X 2 与F P G A 的接口图和状态转换图。I F C L K5 4 8M 毗F L A G BF I 1 0 A D R【I:0】F L A G CF U L LF P G A 主E M P T Y控制器F)【2S L W R从属模式F D【1 5:
9、0 l(a)引脚接口:同步F I F O 写(b)同步写状态设计图3F X 2 与F P G A 接1 2 1 和状态转换图同步S l a v eF I F O 写时序如下:I D L E:当写事件发生时,转到状态1。状态l:指向I NF I F O,激活F I F O A D R 1:0】,转向状态2。状态2:如果F I F O 满标志为“假”(F I F O 不满),则转向状态3;否则停留在状态2。状态3:传送总线驱动数据,为1 个I F C L K 激活S L W R,转向状态4。状态4:如果有更多的数据要写,则转向状态2;否则转向l D I J E。3U S B 芯片固件程序及驱动程序
10、3 1F X 2 的固件程序设计C Y 7 C 6 8 0 1 3 芯片固件程序负责处理P C 机发来的各】4种U S B 请求,以完成主机与外围电路间的数据传输。写固件程序是比较复杂的,需要用到大量的函数,但其基本结构却相对简单,包括下面3 个过程L 3 1:(1)初始化:处理器和外围电路的初始化。(2)主函数:完成符合设备特定要求的代码。(3)中断处理:处理各种中断的程序代码。C y p r e s s 公司的E Z U S BF X 2 开发套件提供给用户1 个固件函数库(E z u s b 1 i b)和固件框架(F r a m e w o r k),两者均是基于K E I LC 5
11、1 进行开发的。固件函数库提供了一系列的函数来加速U S B 固件程序的开发,使用时只需在程序中包含E Z U S B H 和E Z R E G S H 两个头文件,并在项目中链接E z u s b 1 i b,就可以直接使用固件库中的各个函数【4 I。在程序起始时,固件框架将执行如下步骤:(1)首先设置所有的内部状态变量,即设置起始的初值。(2)调用用户的初始设置函数T D _ l n i t 0,待返回后,固件框架会设置U S B 为未配置的状态,并且使能中断。(3)紧接着在1S 的间隔内,开始重新列举设备,并直到设置(S E T U P)封包收到端点0 为止。(4)一旦S E T U P
12、 包被检测到,固件程序结构框架就开始进行任务分配。任务分配就是依次重复地执行下面的过程:调用用户函数T D _ P o l l()。检测是否有标准的设备请求,如果有,则执行指令并做出相应的操作。检测U S B 核是否有U S B 挂起信号,如果收到,则调用用户程序T D _ S u s p e n d 0,从该函数成功返回后(返回值为T R U E),再检测是否发生U S B 唤醒事件。如果未检测到,则处理器处于挂起方式;如果检测到,则调用用户程序T D R e s u m e(),程序继续运行。如果从T D _ S u s p e n d 0返回为F A L S E 时,则程序继续进行。标准
13、请求和v e n d o r 专用请求由框架分析和执行。默认情况下,对标准请求执行U S B 规定的响应,无论如何,框架提供交互的连接,以允许用户程序处理或覆盖指定的设备请求。E Z U S B 中断也交给框架进行处理,任务循环的流程图如图4 所示。在F X 2 芯片的固件程序设计中,最关键的就是系统初始化T D l n i t(v o i d)1 3 1,下面是其部分代码。v o i dT D _ I n i t(v o i d)lC P U C S=(C P U C S 一b m C L K S P D)Ib m C L K S P D l);,设置C P U 时钟频率为4 8M H zS
14、 Y N C D E L A Y;,设置6 8 0 1 3 工作于S l a v e 兀F o 模式R E V C T L=O x 0 3:微型机与应用2 0 0 9 年第1 9 期 万方数据电源打开后重置!参叫出固lT D _ R e s u m e 0微型机与应用2 0 0 9 年第1 9 期S Y N C D E L A Y;,复位E P 2 的n F 0 缓冲区n F O R E S E T=0 x 8 0;不接收主机发出的命令S Y N C D E L A Y;F I F O R E S E T=0 x 0 2;复位E P 2 的F I F O 缓冲区S Y N C D E L A
15、Y;F I F O R E S E T=O x 0 0;恢复正常工作S Y N C D E L A Y:R w u e n=T R U E;使能远程唤醒功能l3 2U S B 设备驱动程序U S B 设备驱动程序的主要功能是使W i n 3 2 应用程序能正确访问本数据采集卡的硬件设备。本设计中将C Y 7 C 6 8 0 1 3 的固件代码存放在上位机上,当系统上电或U S B 连接时,再将它下载至芯片的R A M 中,由增强型8 0 5 l 执行。这一过程需要使用2 个驱动程序:1 个用于下载芯片的固件程序,另1 个用于实现本数据采集卡的具体功能。也可以使用E Z U S B 的通用驱动程
16、序,很多U S B 芯片的厂商都为其U S B 芯片提供了通用驱动程序,可以满足大都分系统的需求,用户可在此基础上直接进行固件程序的开发1 6 1。4 主机应用程序应用程序主要负责读取系统硬件所输出的数据采集结果,并实时显示波形,所使用的编程语言为微软的V i s u a lC+6 0 语言编写的W i n 3 2 应用程序。主要控件包括:采集控制组按钮,U S B 组按钮。采集控制组按钮负责控制硬件系统是否进行数据采集,并使用U S B 块传输来读取采集结果。U S B 组按钮主要负责读取该数据采集卡的U S B 设备描述符和配置描述符。在该数据采集系统的设计中,C Y 7 C 6 8 0
17、1 3 芯片灵活的接口和F P G A 可编程特性简化了外部硬件的设计,提高了系统的可靠性,且利于设备的生产与调度。事实证明,本文设计的系统完全满足设计和使用要求。参考文献【1】严雪萍基于F P G A 的高速数据采集系统【J】微计算机信息,2 0 0 8(1-2):2 0 9 2 1 1【2】华清远见嵌入式培训中心F P G A 应用开发入门与典型实例【M】北京:人民邮电出版社,2 0 0 8 3】钱峰E Z-U S BF X 2 单片机原理、编程及应用【M】北京:北京航空航天大学出版社,2 0 0 6【4】李英伟U S B 2 0 原理与工程开发(第2 版)M】北京:国防工业出版社,2 0
18、 0 7【5】张弘U S B 接口技术【M】西安:西安电子科技大学出版社2 0 0 2 6】薛园园U S B 应用开发技术大全【M】北京:人民邮电出版社,2 0 0 7(收稿日期:2 0 0 9-0 6 0 8)欢迎网上投稿W W W p c a c h i n a c o r n1 5 万方数据基于FPGA的数据采集系统的设计基于FPGA的数据采集系统的设计作者:刘军,岳兴莲,何国国,罗石,吴硕开,LIU Jun,YUE Xing Lian,HE Guo Guo,LUO Shi,WU Shuo Kai作者单位:江苏大学,江苏,镇江,212013刊名:微型机与应用英文刊名:MICROCOMPU
19、TER&ITS APPLICATIONS年,卷(期):2009,28(19)被引用次数:3次 参考文献(6条)参考文献(6条)1.严雪萍 基于FPGA的高速数据采集系统 2008(1-2)2.华清远见嵌入式培训中心 FPGA应用开发入门与典型实例 20083.钱峰 EZ-USB FX2单片机原理、编程及应用 20064.李英伟 USB2.0原理与工程开发 20075.张弘 USB接口技术 20026.薛园园 USB应用开发技术大全 2007 引证文献(3条)引证文献(3条)1.丁昊.宋杰.王国庆.关键 基于FPGA的数字幅频均衡器设计期刊论文-电子测量技术 2010(10)2.孙苗钟.谈炳发.崔世海.胡殿璞 基于Delphi连续大容量数据采集与处理的编程实现期刊论文-测控技术2010(10)3.史洪玮.王紫婷.宁平.张鹏图 基于FPGA+DSP的多通道数据采集系统设计期刊论文-信息技术 2010(10)本文链接:http:/