【某时钟信号源测控频率估算软件设计案例分析4200字】_第1页
【某时钟信号源测控频率估算软件设计案例分析4200字】_第2页
【某时钟信号源测控频率估算软件设计案例分析4200字】_第3页
【某时钟信号源测控频率估算软件设计案例分析4200字】_第4页
【某时钟信号源测控频率估算软件设计案例分析4200字】_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

某时钟信号源测控频率估算软件设计案例分析目录TOC\o"1-3"\h\u2606某时钟信号源测控频率估算软件设计案例分析 1276161.1USB3.0数据传输架构的搭建 1228461.2FX3固件应用程序设计 340221.3频率估计算法的设计 637851.3.1全相位FFT谱分析 639831.3.2全相位时移相位差频谱校正法 789401.4频率估算软件的实现 9145201.1.1人机交互界面 953431.1.2USB3.0数据传输 9164381.1.3频率估计算法 10300731.5小结 111.1USB3.0数据传输架构的搭建本课题将FX3的高度灵活可编程接口GPIFII作为同步从设备FIFO(SlaveFIFO)接口,通过该接口将外部FPGA连接到FX3,完成从FPGA至USB至PC机的数据传输,数据传输结构如图4-1所示。FPGA内部开辟了一个大小为16KB的FIFO缓冲单元,对从时钟信号源采集到的数据进行缓存,当数据缓存至缓冲区半满时,将SlaveFIFO接口写入选通信号slwr拉低,开始向FX3的DMAbuffer内写入数据。FPGA内部执行一个计数机制,始终将与DMAbuffer大小(8KB)相同的数据量写入DMAbuffer内,当计数值超过DMAbuffer的大小时结束数据传输。该计数机制只通过监控满/空标志FLAG_A来决定数据传输开始的时间,避免了使用USB局部标志FLAG_B来决定结束传输的时间,免除了水印值的设置。图4-1USB3.0数据传输结构框图Fig.4-1StructureblockdiagramofUSB3.0datatransmissionEZ_USBFX3以同步SlaveFIFO方式工作依靠芯片内部的多个FIFO缓冲区来实现,使用FX3的DMA运行机制工作[49],即通过套接字(Socket)、DMA描述符(DMAdescriptor)、DMA缓冲区(DMAbuffer)共同配合完成数据传输。DMA运行机制如图4-2所示,在套接字运行之时会对DMA描述符进行逐个检索,并依照描述符指定的地址和长度向DMA缓冲区中进行数据读写操作。套接字在L个字节传输任务完毕之后启动下一个描述符的检索工作,继而根据描述符所匹配的DMA缓冲区完成相应的数据读写。当检索完DMA描述符N后,会返回到DMA描述符1进行检索传输。当单个DMA缓冲区被套接字写满之后,存在几个微妙的间隔时间,之后DMA描述符便进行递次转移。图4-2FX3的DMA运行机制原理图Fig.4-2SchematicdiagramofDMAoperationmechanismofFX3根据FPGA的时序控制逻辑设计,同时结合DMA运行机制来搭建USB3.0数据传输的架构。本课题创建一个从GPIFII处理接口模块(PIB模块)至USB接口模块(UIB模块)的DMA通道,将之设置为AUTO模式,使外部数据无需片内CPU干预,便可以通过同步从设备FIFO将数据连续写入FX3,再传输至PC机;在DMA通道内设置4个大小为8KB的DMAbuffer,用于上传数据的存储;将USB端点设置为快传输模式,且端点的最大数据包大小为1024字节;数据传输构架如图4-3所示,PIB模块根据FPGA发送来的0x00地址信号,匹配内部的专用数据路径GPIF线程0,将外部数据引脚连接至默认映射的套接字0(PIB_SOCKET_0),使得套接字0作为发送套接字,将数据写入DMA缓冲区内。使用UIB模块的套接字1(UIB_SOCKET_1)作为接收套接字,从DMA缓冲区内读取数据,将数据传送至USB输入(IN)端点0x81,通过管道传输给PC机。图4-3FX3数据传输架构图Fig.4-3FX3datatransmissionarchitecture1.2FX3固件应用程序设计FX3上电后,需加载存储于EEPROM芯片(电可擦除可编程存储非只读芯片)中的设备“驱动软件”——固件[50],驱动FX3来完成预期的设备功能。FX3固件应用程序主要由初始化程序和用户定义程序两部分组成[51,52],其程序结构流程图如图4-4所示。初始化程序首先完成设备(FX3)的初始化,后进入RTOS(实时操作系统),调用CyFxApplicationDefine函数创建并激活用户自定义线程,进入用户定义程序(从设备FIFO)部分。用户定义程序先对GPIF_II模块及USB模块进行初始化,后注册回调函数,对各种请求和事务进行响应。当USB_SET_CONFIGUTATION请求指令出现时,进行CyFxSlFifoAppInStart()函数的调用,继而开辟出GPIF接口和USB端点之间的DMA通道且完成USB端点的配置。当断开连接或者接收到USB复位指令之时,启动CyFxSlFifoAppInStop()函数的调用,与此同时禁用USB端点并将DMA通道释放出来。图4-4固件程序结构流程图Fig.4-4Structureflowchartoffirmwareprogram本设计的FX3固件程序主要配置以下几项内容:使用GPIFIIDesigner工具对GPIFII接口进行配置;使用Eclipse开发环境进行固件开发,对USB端点进行配置,创建GPIF接口和USB端点之间的DMA通道,其开发流程如图4-5所示。图4-5FX3固件开发流程Fig.4-5FX3firmwaredevelopmentprocessGPIFIIDesigner是一个为用户提供了图形界面,用于为目标设备指定必要接口的Windows应用工具。在本课题中,通过使用该工具对FX3的GPIFII接口进行配置,将GPIFII接口设置为同步SlaveFIFO接口,允许外部FPGA对FX3的内部FIFO缓冲区进行数据读/写访问,并由FPGA为FX3提供100MHz时钟。规定其并行数据总线宽度为16位,地址总线为2位,设置信号FLAG_A的工作模式为Tread_0_DMA_Ready,将该标志配置为线程0的跟随标志,用来监控DMAbuffer的满空状态。GPIFIIDesigner根据设计需求生成状态机,并在项目编译后生成cyfxgpifconfig.h文件,将此头文件包含到Eclipse项目,即可实现对GPIFII接口的配置。Eclipse是Cypress公司为新一代USB芯片提供的特定开发环境,可以简化固件程序的开发过程。在Eclipse开发环境中,根据上节搭建好的USB3.0数据传输架构,在固件用户自定义程序中对USB端点进行配置并创建对应的DMA通道。定义DMAbuffer的个数为4,每个DMAbuffer的大小为8KB;定义USB端点1为输入端点,其地址为0x81(第7位代表传输方向,1为输入,0为输出);定义生产者的发送套接字为PIB模块的套接字0,消费者的接收套接字为UIB模块的套接字1;功能实现代码如下:#defineDMA_BUF_SIZE(8)#defineCY_FX_SLFIFO_DMA_BUF_COUNT(4)#defineCY_FX_EP_CONSUMER0x81#defineCY_FX_PRODUCER_PPORT_SOCKETCY_U3P_PIB_SOCKET_0#defineCY_FX_CONSUMER_USB_SOCKETCY_U3P_UIB_SOCKET_CONS_1在CyFxSlFifoApplnStart(void)函数中进行端点的配置及DMA通道的建立。先进行USB端点的配置,将端点使能,设置其类型为CY_U3P_USB_EP_BULK,使USB与PC机的传输方式为块传输;当检测到连接的主机USB接口为USB3.0时,设置端点的最大数据包大小为1024字节(1KB);将配置好的端点赋给端点1,功能实现代码如下:CyU3PEpConfig_tepCfg;epCfg.enable=CyTrue;epCfg.epType=CY_U3P_USB_EP_BULK;epCfg.pcktSize=1024;epCfg.burstLen=16;apiRetStatus=CyU3PSetEpConfig(CY_FX_EP_PRODUCER,&epCfg);其次,创建PIB模块至UIB模块的DMA通道。DMA通道的类型为自动模式;其中DMAbuffer的个数,每个DMAbuffer的大小,发送套接字与接受套接字均按宏定义进行设置,其他设置按默认设置即可,功能实现代码如下:CyU3PDmaChannelglChHandleSlFifoPtoU;dmaCfg.size=DMA_BUF_SIZE*1024;dmaCfg.count=CY_FX_SLFIFO_DMA_BUF_COUNT;dmaCdSckId=CY_FX_PRODUCER_PPORT_SOCKET;dmaCfg.consSckId=CY_FX_CONSUMER_USB_SOCKET;apiRetStatus=CyU3PDmaChannelCreate(&glChHandleSlFifoPtoU,CY_U3P_DMA_TYPE_AUTO,&dmaCfg);1.3频率估计算法的设计1.3.1全相位FFT谱分析样本点x(n)之中长度为N的所有分段情形均被考量在内是进行APFFT谱分析的中心思想,换言之即对全部的可能初始相位进行遍历,旨在针对数字滤波、频谱分析、自适应信号处理以及图像处理等应用场景中出现的由于数据截断招致的信号处理性能降低的问题进行针对性改善[53]。apFFT谱分析的重心在于全相位数据预处理。数据预处理流程:先把两个N阶窗进行卷积运算得到长为2N-1的卷积窗,用卷积窗与长为2N-1的数据向量进行数据加权,后将左边各数据向右平移N个延时单元,再与位置重叠的另一个数据相加,形成N个数据y(i),i=0,1...N-1。对形成的N个数据作FFT(快速傅里叶变换),即为apTTF。最终可得到离散谱Y(k)。apFFT谱分析结构框图如图4-6所示。图4-6全相位谱分析结构框图Fig.4-6Structureblockdiagramofallphasespectrumanalysis1.3.2全相位时移相位差频谱校正法对于谐波来说,频率、相位、幅值三个参数中,频率和相位的关系最为直接、密切,频率对时间的线性积分就是相位差。而apFFT谱分析与传统apFFT相比,不仅具有更优良的抑制谱泄露性能,且其谱分析具有相位不变性。基于此,根据相关文献,为了具有更高的频率估计精度,本文选用时移相位差校正法进行频率估算。从连续采样结果中获取两段长度为N的样本点,并对该样本进行FFT,根据第一类传统相位差校正法的处理机制,会利用对应谱线相位差值校正出谱峰处的准确频率,相较于统能量重心法,该法由传统FFT谱分析的线性时不变性质推演而出,拥有着更高的频率估计精度。线性性质和相位不变性是全相位FFT谱分析的两个重要性质,依托此性质并结合传统第一类相位差法的算法构造思路,由此形成基于全相位FFT谱分析的时移相位差校正法[54]。文献[54]已证,对序列进行前、后双窗均为的双窗apFFT,得到的离散谱为:(4-1)为幅值,为数字角频率,为初相,Fg(ω)为f对应的归一化幅度谱。主谱线上的相位谱为:(4-2)根据apFFT的线性特性,对于延时L后的序列,,其双窗apFFT的离散谱表示为:(4-3)其主谱线上的相位谱为(4-4)取式(2)与式(4)的差值,有(4-5)令,可得频率的估算公式为(4-6)为了消除“模糊相角”现象[55],设(4-7)从而有,综合上述的推理,可得到全相位时移相位差频谱校正法的相位、频率校正流程,如图4-7所示。图4-7apFFT时移相位差法的频谱校正流程图Fig.4-7SpectrumcorrectionflowchartofapFFTtimeshiftphasedifferencemethodk0与有关,其关系式为,又设,把式(4-4)和式(4-2)带入式(4-7),得(4-8)这样便可用已知实际量求出频率矫正为:(4-9)为采样频率,因汉宁窗可以有效抑制频谱泄露且频率分辨率较高,本文选用其作“双窗apFFT”。根据以上算法流程,编写频率估计算法程序,实现对频率的估算。1.4频率估算软件的实现1.1.1人机交互界面频率估算软件需实现USB3.0数据传输及频率估计算法两项功能。进行USB3.0数据传输时,需对USB设备及端点信息进行检测识别,选择数据传输设备及所需端点,同时,在设备参数选定后,需手动开启或结束数据传输。频率估计算法由1.3.2节可知,需对apFFT的长度N、采样率、时域位移取数的样点数L及信号长度s(s>2*N+L-1)参数进行设置,且需显示最后频率估算结果及计算均值。因此须在界面设置下拉框、按钮、编辑框、标签等控件,并进行界面布局优化,最后实现如图4-8所示效果。图4-8频率估算软件的界面设计图Fig.4-8Interfacedesignoffrequencyestimationsoftware1.1.2USB3.0数据传输Cypress公司为其USB接口芯片提供了一套通用的USB设备驱动程序(CyUSB.sys驱动程序和CyUSB.inf文件)和CyAPI控制函数类,两相配合便可驱动USB设备[56]。CyAPI类为EZ_USBFX3系列USB接口芯片提供了精细的控制接口,只需在程序中加入头文件CyAPI.h和库文件CyAPI.lib即可调用相应的控制函数。因此本课题在QtCreator中创建dataXfer类,通过调用CyAPI类内函数实现USB数据传输,数据传输工作流程图如图4-9所示。图4-9数据传输程序流程图Fig.4-9Flowchartofdatatransmissionprogram通过调用CyAPI类内CCyUSBDevice()函数检测USB3.0设备是否连接,若有设备连接则调用EndPointCount()函数返回当前接口的端点数及端点属性。在设置端点后,按下启动数据传输按钮,创建XferData线程,在线程内开辟内存来存放来自USB的数据,通过调用BeginDataXfer()函数与FinishDataXfer()函数来开启或关断经由USB端点的数据传输。在数据传输过程中,为了满足项目需求,需将

温馨提示

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

评论

0/150

提交评论