【某高速脉冲采集与传输系统的软件设计案例2400字】_第1页
【某高速脉冲采集与传输系统的软件设计案例2400字】_第2页
【某高速脉冲采集与传输系统的软件设计案例2400字】_第3页
【某高速脉冲采集与传输系统的软件设计案例2400字】_第4页
【某高速脉冲采集与传输系统的软件设计案例2400字】_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

某高速脉冲采集与传输系统的软件设计案例目录TOC\o"1-3"\h\u4120某高速脉冲采集与传输系统的软件设计案例 174181.1总体方案 1105511.2ADC驱动程序设计 2129371.3数据处理 5308181.4数据传输 6321481.5通信协议 71.1总体方案基于STM32+FPGA系统设计了高速脉冲采集传输系统的整体软件架构,其中STM32主要负责完成ADC的模式配置和与FPGA的信息交互;FPGA由于其优越的并行处理能力和较高的计算速度,用于控制高速ADC,获得的数据经过DDR3后通过USB3.0接口传输到计算机的上位机进行显示。软件的总体框图如下图5-1所示,软件的总体设计上可以分为四个部分:高速ADC的数据采集、对触发阈值的ADC数据进行切割打包、对打包好的数据封装上传数据、上位机的设计。图5-1软件总体框图由图5-1中所示,STM32与FPGA采用SPI通信方式。FPGA控制DDR3实现乒乓操作,满足数据的实时存储和实时读出。最终的上位机与FPGA直接通信通过USB3.0自定的协议传输数据包。1.2ADC驱动程序设计图5-2是ADC驱动的程序流程图。首先由STM32对ADC进行模式配置,等配置结束后,STM32将配置结果发送给FPGA,FPGA进行相应的设置。ADC配置结束后,FPGA可正常读取数据。图5-2ADC驱动程序流程图ADS4149有一组内部寄存器,通过SEN、SCLK和SDATA三个引脚进行配置。当SEN为低电平时,允许将位串行移入器件。图5-3是ADS4149寄存器串行接口访问的时序图。SEN在低电平时才有效,数据在每个时钟的下降沿才触发。数据共16为,前8位数据代表寄存器的地址,后8位为寄存器的数据。图5-3串行接口访问时序图如图5-4为ADS4149内部寄存器映射图。为了获得最佳性能,必须启用两个特殊模式寄存器位:HIPERFMODE1和HIPERFMODE2。图5-34ADS4149内部寄存器映射图首先由STM32对ADS4149进行模式配置,先写入0000h对ADS4149寄存器复位,且设置OVR_SDOUT引脚用作过压指示器。如表5-1所示是ADS4149的LVDS模式的摆动可编程性说明,此处默认不进行配置,即设置LVDS摆幅为±350mV且带有外部100Ω终端模式。写入0303h和4A01h配置ADS4149工作在高性能模式,为了在采样时钟和输入信号频率上获得最佳性能。其他寄存器都采用默认模式。表5-1LVDS摆动可编程性寄存器配置数值LVDS摆幅000000±350mV011011±41mV110010±465mV010100±570mV111110±200mV001111±125mVSTM32对ADC寄存器配置完成后,将配置信息通过四位SPI通信接口发送给FPGA,FPGA接收到STM32的信息进行设置后正常读取ADC数据。SPI(SerialPeripheralInterface)是Motorola公司推出的同步通信接口,具有高速、全双工的特点。由于通信只用4根线,简化了电路设计,节省了大量的接口和I/O口,提高了设计的可靠性。SPI通信因其简单实用而得到广泛应用。SPI的内部结构如图5-5所示。通信所需的四条线路是MOSI、MISO、SCLK和CS。图5-5SPI内部结构图从图5-5可以看出,主机和从机都有一个串行移位寄存器。在时钟的控制下,主机通过向其移位寄存器写入一个字节来开始传输。寄存器通过MOSI与从机交换字节,从机也通过MISO将自己移位寄存器中的数据返回给主机。这表明它可以同时发送和接收串行数据。CS是从设备使能信号,由主机设备控制,决定是否选择从设备,使得可以挂载多个从设备。SCLK时钟信号线只能由主设备控制,而从设备不能控制时钟SCLK。FPGA读取ADC的数据通过调用自己内部的SelectIO核。从LVDS差分信号中读取出14位ADC的数据。图5-6为ADC的LVDS模式下的时序图,其中Dn代表的是偶数位D0、D2、D4等,Dn+1代表的奇数位D1、D3、D5等。图5-6LVDS模式时序图1.3数据处理如图5-7所示是数据处理程序流程图。任务书要求每个脉冲根据设定的门限采集200ns(前50ns,后150ns)长度的波形,设计ADC的工作频率为200MHz,也就是采集过门限点的前10个数据和过门限的后30个数据。首先,首先自定义10个FIFO,将经SelectIO核转换后的数值存入其中,同时判断数值是否过设点的电压阈值(此处实际设置电压阈值为1V),若没过设定阈值后,继续读取并判断数据。将过阈值点的数据储存并标记开始,将过阈值点前的10个数据和过阈值点后30个数值共40个数据读出后进行数据封装。得到的40个数据为14位,将开始的第一个数据前边补两位0、过阈值点前的9个数据前补01、过阈值点后的30个数据前补10,14位转换为16位数据。每次打包完40个16位数据后由32位计数器进行计数,再将40个数据求和得到一个32位数值,将40个16数据、32位计数器、32位求和后的数值、32位的补充数值FFFFFFFFh和32位的补充数值EEEEEEEEh封装为一个96个字节的数据包,其中,32位求和数值和32位的补充数值用于数据的校验。封装完毕后将数据包存入DDR3。图5-7数据处理程序流程图1.4数据传输数据传输部分主要利用DDR3实现“乒乓操作”,让数据包的写入和读出分开,实现实时传输。图5-8是乒乓操作的流程图。首先,有数据包传来,判断数据缓冲1和数据缓冲2是否处于读状态,将数据包写入空闲的数据缓冲模块中;其次,需要读数据时,判断数据缓冲1和数据缓冲模块2哪个已经写完数据,将数据从数据缓冲模块读出通过USB3.0传输出去。由于写数据会比读数据快的多,利用DDR3实现乒乓操作会防止数据在写和读时发生冲突。当写完一次数据缓冲区时,判断另一个数据缓冲区仍然处于读状态时,继续写写完的数据缓冲区,这样会将已写的数据覆盖。图5-8乒乓操作流程图1.5通信协议为了使脉冲能够更好的展示出来,为此设计了上位机软件,而下面将介绍上位机软件与FPGA之间的通信协议。具体流程图如图5-9所示。从流程图中可以看到,在板子上电之后,经过程序的初始化,将本设计所需要用到的外设进行初始化,之后FPGA上就会进入到PWDN模式即待机模式,在该模式下,FPGA会等待PC的指令,当收到PC通过USB3.0发送SET0的指令时,FPGA会解析收到的SET0包,从中读取到触发阈值、一次性上载报数以及采样包数,三个参数,其中触发阈值是指ADC采样时,以该阈值作为触发,接收该阈值前10个点和后30个点,一次性上载包数是指当PC要求数据时,FPGA通过USB3.0一次性发送的包数,该包数为96的倍数且大于等于96,采样包数是指会存储在DDR3缓冲区域的包数的总数[17]。FPGA根据SET0包修改参数后会回到PWDN模式,继续等待PC指令,此时PC可以再次发送SET0包以修改参数,也可以发送STSP包,通知FPGA开始采集数据。当FPGA开始采集数据,PC可以通过发送ASK0包询问FPGA是否已经准备好数据,当数据已经准备好,FPGA会返回0x01,否

温馨提示

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

最新文档

评论

0/150

提交评论