小腿肚子疼是什么原因| 右肺结节是什么意思| 脂肪瘤应该挂什么科| 低gi什么意思| 为什么一喝酒就头疼| 柳下惠姓什么| 不小心怀孕了吃什么药可以流掉| 为什么身上痒一抓就起疙瘩| 泄泻什么意思| 恐龙是什么时候灭绝| 节制是什么意思| 过什么不什么| 内热是什么原因引起的怎么调理| 七杀是什么| 小儿咳嗽吃什么药好| 天山童姥练的什么武功| 更年期出汗多是什么原因| 玫瑰糠疹什么原因引起的| 胃痛是什么原因| 请示是什么意思| 白色和什么颜色搭配最好看| 抽油烟机买什么样的好| 拉肚子发烧吃什么药| 4月27号是什么星座| p53阳性是什么意思| 反式脂肪是什么| 月经期头疼是什么原因| 贫血吃什么维生素| 什么是孤独症| 西太后手表什么档次| 电气火灾用什么灭火| 脸上长疣是什么原因| 杏仁是什么树的果实| 南辕北辙是什么意思| 眼睛下面有痣代表什么| 4月5日什么星座| 魔芋是什么植物| 可乐加味精女人喝了什么效果| 天经地义是什么意思| 蜂蜜和什么食物相克| 三个六代表什么意思| 上海龙华医院擅长什么| 征候是什么意思| 衪是什么意思| 想呕吐是什么原因| 班门弄斧是什么意思| 葡萄又什么又什么| 大s什么病| 消化内科主要看什么病| 玉米须加什么治痛风| 多指是什么遗传方式| 17度穿什么衣服合适| 中午适合吃什么| b是什么元素| 荨麻疹有什么症状| 个性化是什么意思| ab和a型血生的孩子是什么血型| energy是什么牌子| 三羊念什么字| 小儿流清鼻涕吃什么药效果好| 吃什么水果去火| 举不胜举的举是什么意思| 宫腔回声不均匀什么原因| 凝字五行属什么| 乳腺结节吃什么好| 身上为什么会起湿疹| 补钙什么季节补最好| 心肌炎吃什么药| 下架是什么意思| 什么的手| 弯的是什么意思| 耳声发射检查是什么| 心脏疼吃什么药效果好| 夫妻相是什么意思| 宫外孕是什么导致的| 匪夷所思什么意思| 晚上睡觉脚冰凉是什么原因| 伟五行属性是什么| 大是大非是什么意思| 2月2是什么星座| 肝功能不全是什么意思| 香瓜不能和什么一起吃| udv女鞋是什么牌子| ur品牌属于什么档次| 加特纳菌阳性是什么病| 青鱼是什么鱼| 莫欺少年穷是什么意思| 葛仙米是什么| 错构瘤是什么意思| 阑尾炎痛起来什么感觉| 秋葵是什么| 中医的精髓是什么| 阳痿吃什么药好| 脸上白了一小块是什么原因| 大姨妈来吃什么水果好| cin是什么意思| 不堪入目是什么意思| 奶茶妹是什么意思| 心悸吃什么药| 屎忽鬼是什么意思| 送什么生日礼物给妈妈| 飒爽什么意思| 脚心疼痛是什么原因引起的| 鸡内金是什么| 尿检4个加号什么意思| fsw是什么意思| muji是什么意思| 嗓子疼流鼻涕吃什么药| 胎盘内血池是什么| 女性尿路感染吃什么药好得快| vc是什么药| 射精出血是什么原因引起的| 中秋节送什么| 精神病挂什么科| 毫升是什么单位| 转的第四笔是什么| 不出汗的人是什么原因| 老八是什么意思| 子宫彩超能检查出什么| 猪砂是什么东西| 木木耳朵旁是什么字| 私联是什么意思| 异常的异是什么意思| 坪效是什么意思| tat是什么意思| 血脂高是什么| 胰腺炎不能吃什么食物| 小孩子手脱皮是什么原因引起的| 腰间盘突出挂什么科| sey什么意思| 脂肪酶是什么意思| 出圈是什么意思| 宽宽的什么填空| 人瘦了是什么原因| 康字五行属什么| 人生格言是什么意思| 八朵玫瑰花代表什么意思| 胃糜烂是什么原因引起的| 绿豆的功效与作用是什么| 县公安局局长是什么级别| 夏天有什么动物| 什么茶最好| 红豆和赤小豆有什么区别| 柔顺剂有什么用| 九地是什么中药| 嗣子是什么意思| 5月11号是什么星座| 上火喝什么药| 1月26号是什么星座| 枸杞对女人有什么好处| 通讯地址是什么意思| 大便深褐色是什么原因| 大师是什么意思| 湿热体质吃什么药| 行房时间短吃什么药| 古代质子是什么意思| 棠字五行属什么| 为什么越睡越困越疲惫| white是什么意思颜色| mr是什么检查项目| 让您费心了是什么意思| 捡到鹦鹉是什么预兆| 专一是什么意思| 盆腔炎是什么引起的| 什么旺土| 影射是什么意思| 肆虐是什么意思| 失眠吃什么药| 吃什么清肺效果最好| 什么药溶血栓最好| 回光返照是什么意思| 无咎是什么意思| 五年存活率是什么意思| 上海为什么叫魔都| 胡萝卜含有什么维生素| 药物过敏挂什么科| 缺钠有什么症状和危害| 什么是潮喷| 宜夫痣是什么意思| 618什么意思| 血糖高能吃什么蔬菜| 眩晕呕吐是什么病| 布病什么症状| 有点尿就想尿什么原因导致的| 肉是什么结构的字| 湿疹涂什么药膏| 眼压低是什么原因| 农历八月初五是什么星座| 间皮瘤是什么病| 蝎子吃什么东西| 游龙斑是什么鱼| 心寒是什么意思| 耳朵疼痛是什么原因| 男士内裤什么材质的好| 土乞念什么| 内分泌科看什么| 肾衰竭五期是什么意思| 湿疹是因为什么原因引起的| opi是什么意思| faleda是什么牌子的手表| 重阳节应该吃什么| 白细胞十十是什么意思| 腹泻吃什么药好| bees是什么意思| 产妇适合吃什么水果| ojbk什么意思| 冬虫夏草什么价格| 粗钢是什么| 改名字需要什么手续| 减肥吃什么好而且瘦的快| 西游记是什么时候写的| 鼻咽癌是什么| 广东夏天煲什么汤最好| 维生素b6治什么病| 趴在桌子上睡觉有什么坏处| 疟疾病的症状是什么样| 滋阴降火吃什么药| 听吧新征程号角吹响是什么歌| 杏林春暖的杏林指什么| 画蛇添足的故事告诉我们什么道理| 四联用药是些什么药| 青筋暴起是什么原因| 吃什么可以排出霉菌| 今年74岁属什么生肖| 没心没肺是什么意思| 正常人的尿液是什么颜色| 车挂件挂什么保平安好| 肠胃不好吃什么药| 什么是二代身份证| 孩子嗓子有痰吃什么药| 白头发有什么方法变黑| 特别嗜睡是什么原因| 古埃及是什么人种| 11月14日什么星座| 刘强东开什么车| 干事是什么级别| 竹外桃花三两枝的下一句是什么| 什么叫物质女人| 不宁腿综合症是什么原因引起的| 什么叫前列腺| 康膜的功效是什么| 一个草字头一个氏念什么| 股骨长是指什么| 天生一对是什么意思| 协调什么意思| 有什么花的名字| 一饿就心慌是什么原因引起的| ox什么意思| 义是什么意思| 智齿为什么会疼| 手指上长毛是什么原因| 急性咽喉炎吃什么药| cocoon是什么意思| 口红用什么能洗掉| 绿色裤子配什么上衣| 11月20日什么星座| 琼林是什么意思| 来月经同房会有什么后果| 石斛有什么副作用| 手上起皮是什么原因| 什么高什么下| 离卦代表什么| 耳鸣是什么感觉| 内痔是什么意思| 百度

PXI总线中频数字化仪系统设计

测试测量   作者:杨志兴,王瑞霞,高长全 时间:2025-08-06来源:
百度 有的人认为佛教开始在中国活动之后,其成为中国空间中的存在,故亦成为中国历史之一部分,所以此间记载与中国历史共时并陈。

  杨志兴,王瑞霞,高长全(电子测试技术重点实验室,山东?青岛?266555)

  摘?要:针对PXI测试系统构建中需要的高速数据采集设备,提出一种基于PXI总线的中频数字化仪的设计方案。该设备可以实现400 Msps的实时采样率和14位的采样精度;软件开发模式采用上位机应用程序和底层动态库相结合的开发模式,方便不同用户的定制。驱动程序通过WDM开发,采用Block DMA实现数据的上传。经过联合调试,本系统稳定工作在Windows平台下,实现了数字化仪要求的各项功能。不仅满足当前项目的需求,还可应用于雷达、电子对抗等PXI自动测试系统构建中。

  关键词:PXI;中频数字化仪;WDM; Block DMA;中断

  0 引言

  近年来随着科技的不断进步,高速数据采集系统不断地向高精度、高速率、小型化等方向发展。尤其在一些特定场合,比如舰船、飞机等环境下,其对测试设备的小型化提出了更高的要求 [1] 。而PXI由于其自身的架构及特点 [2] ,特别适合这种对体积要求苛刻的环境中。其中PXI中频数字化仪作为模块化测试系统的重要组成部分,由于其技术难度高、开发设计难度大成为系统集成中的短板,相关产品只能通过国外采购,主要存在如下的问题:采购周期长、成本昂贵、技术不可控,维修困难,严重制约着PXI模块化系统的自主发展。

  本文基于“虚拟仪器”的设计理念并结合近期从事的PXI合成仪器项目需求,提出一种基于PXI总线的中频数字化仪实现方案,即可满足软件无线电系统构建的需要,同时也可作为单独PXI模块进行数据采集、处理和分析。

  1 硬件设计

  1.1 总体方案

  本文研制的中频PXI数字化仪模块是一个单槽3U尺寸模块,14位垂直分辨率,最高采样率达400MHzSa/s。其总体硬件框图如图1所示。

微信截图_20200509145334.jpg

  主要包括:信号调理部分、抗混叠滤波、DDS部分、A/D转换部分、FPGA控制部分、PCI接口部分和电源等部分组成。其中:信号调理部分实现模拟信号的放大和滤波;ADC部分主要实现信号由模拟到数字信号的转换;FPGA部分主要是完成数字下变频、包络检波以及电路的控制等;PCI总线接口作为数字化仪与PC机的接口,实现数字化仪和上位机软件的信息交互,包括命令下发和数据上传等。

  整机工作原理如下:在触发信号到来之后,首先对输入中频信号进行调理,完成模拟中频信号的程控增益控制、抗混叠滤波等,预处理后的中频信号经过高速ADC采样,采样数据送入FPGA进行数字下变频操作变换到基带形成IQ信号,之后根据需要进行复数FFT操作得到频谱数据存储到板载缓存中。此时FPGA将使本地信号(LINT#)信号有效,引发PCI9054的本地中断,接着会触发PCI中断信号INTA#,向计算机发送中断请求。主机CPU响应中断以Block DMA方式读取FIF0中的频谱数据,从而完成一次数据传输。最后在上位机软件中进行处理和显示。

  1.2 PXI接口设计

  目前主要存在2种方案实现PXI接口电路 [3] :①采用可编程逻辑器件;②采用专用的PCI接口芯片。在本设计中考虑到数字化仪板卡的体积、成本和开发周期,采用PLX公司的专用的PCI接口芯片PCI9054来实现PXI接口,接口实现示意图如图2所示。

微信截图_20200509145342.jpg

  为了适应不同的局部处理器,PCI9054局部总线类型有3种:C模式,M模式,J模式。本文采用C模式(MODE[1:0]=00),即地址线和数据线分开模式 [3] 。本设计中发送命令时工作在PCI Target模式,而读取数据的时候则工作在DMA模式。在DMA方式下,数据传输不同于普通的I/O读写方式,它是由PCI9054接管PXI总线,负责实现数据在CPU和硬件设备之间进行数据传输,而无需CPU的干预。本设计中只涉及数据从Local侧到PCI侧的传输,因此选择DMA0通道并采用block DMA的传输方式实现FIFO缓冲区的频谱数据的读取操作。

  2 软件设计

  2.1 软件体系结构

  完成数字化仪硬件设计之后,就需要开发相应的软件,由软硬件协同配合才能整个数字化仪模块的具体功能。整套中频数字化仪软件系统由上位机应用程序、动态链接库和驱动程序构成,其体系结构如图3所示。

微信截图_20200509145352.jpg

  2.2 整机工作流程

  数字化仪程序的工作流程如下:首先是数字化仪硬件的初始化,完成后,由上位机软件根据用户选定的功能和输入的参数形成控制命令通过驱动程序将其下发到硬件板卡。PXI板卡进行相应的参数分解形成有效的硬件动作命令实现数据的采集,采集一定量的中频数据后形成硬件中断给驱动程序,上位机响应中断并通过DMA的方式将数据读取到上位机软件中,从而完成一次有效的数据采集和传输。之后再由上位机软件进行相应的处理、显示和存储等功能。

  2.3 驱动程序设计

  由于本设计中的PXI中频数字化仪不属于Windows标准的外部设备,因此为了能够运行在Windows平台上,需要开发相应的驱动程序。Windows操作系统下,开发设备驱动程序的方法有很多种,本文采用DriverStudio工具进行WDM设备驱动程序的开发。

  首先,利用DriverStudio中的DriverWorks [5] 生成驱动程序框架,之后需要根据功能要求来添加相应的代码。驱动程序的开发涉及到硬件访问、中断控制和DMA传输等功能模块。限于篇幅,本文重点阐述中断和DMA的实现过程。

  2.3.1 中断实现

  从上文介绍的数字化仪整机运行原理中可以看出,数字化仪的数据采集过程相对于上位机软件的运行,是一种完全异步的过程。为了实现两者的同步,需要借助于中断来实现。本设计中需要处理的中断类型有2种:①本地中断,即当FIFO中的数据采集半满之后,由FPGA通过LINT#信号发给PCI9054;②DMA中断,当上位机软件收到PCI9054的本地中断后,开始启动DMA读操作。当DMA传输完成后由DMA中断控制器产生。两种中断存在先后关系,只有2个中断的协调配合才能实现1次中频数据的正确传输任务。

  由于这两种中断共享同一个中断服务例程,因此需要在中断服务例程 [6] (ISR,Interrupt Service Routine)中进行中断源识别,再进行对应处理。本设计中的中断处理流程如图所示。

微信截图_20200509145406.jpg

  中断实现部分的关键代码如下:

BOOLEAN Digitizer::Isr_Irq(void)

{

t<<”enter Isr_Irq.”<<EOL;

ULONG status;

status=m_IoPortRange0.ind(INTCSR);

if((status&0x8000)!=0)

{

m_LocInt=1;

t<<”Local Interrup”<<EOL;

m_IoPortRange0.outd(INTCSR,0x40100);

m_IoPortRange0.outd(DMAMODE0,0x20C01);

m_DpcFor_Irq.Request(NULL,NULL);

return TRUE;

}

else if((status&0x200000)!=0)

{

m_LocInt=0;//DMA0

t<<”DMA Interrup”<<EOL;

m_IoPortRange0.outb(DMACSR0,0x8);

m_DpcFor_Irq.Request(NULL,NULL);

return TRUE;

}

else

{

t<<”Interrupt didn’t happen.”<<EOL;

return FALSE;

}

}

  2.3.2 DMA实现

  为了开发DMA功能,结合硬件设计和软件开发框架,开发人员需要对PCI9054芯片和Driver Studio开发框架均要熟悉,只有软硬件配合才能完成DMA功能。PCI9054芯片中的DMA硬件支持部分在其数据手册中详细的介绍,这里不再叙述。下面重点从软件开发角度进行介绍。

  DriverWorks提供了3个类来实现,分别是:KDmaAdapter,KDmaTransfer,KcommonDmaBuffer。其中,KdmaAdapter类用于建立1个DMA适配器,标明1个DMA通道的特性和提供串行化访问的服务;KDmaTransfer类用于控制DMA的传输,启动1个DMA传输、DMA传输数据缓冲区物理地址和传输字节数以及DMA传输结束后数据由公用缓冲区拷贝到应用程序数据缓冲区;KcommonDmaBuffer类用于申请系统提供的公用缓冲区 [8] 。整个DMA数据传输的流程如图5所示。

微信截图_20200509145431.jpg

  首先,当应用程序检测到硬件板卡完成1次中频数据采集后,通过调用Win32 API函数ReadFile()函数启动数据的读取 [9] 。由系统的I/O管理器将这个请求封装成一个相应的请求包(IRP),然将其传递给驱动程序。驱动程序首先将其进行队列化,形成1个新的串行IRP传递给SerialRead例程 [10] ,在该例程中,通过初始化KDmaTransfer类的实例并在OnDmaReady回调函数启动DMA传输和判断传输是否完成。限于篇幅,本文只给出实现DMA的关键代码:

VOID Digitizer::StartDMA(ULONG PAddress,

ULONG NBytes)

{

t<<”Entering StartDMA”<<EOL;

m_IoPortRange0.outd(DMAMODE0,0x20DC1);

m_IoPortRange0.outd(DMAPADR0,PAddress);

m_IoPortRange0.outd(DMALADR0,0x8);

m_IoPortRange0.outd(DMASIZ0,NBytes);

m_IoPortRange0.outd(DMADPR0,0x8);

m_IoPortRange0.outb(DMACSR0,0x3);

}

  图6是本设计中的DMA读操作在FPGA中的时序图。

微信截图_20200509145441.jpg

  2.4 应用程序设计

  上位机应用软件采用模块化、分层设计的思想,将软件按照功能划分为控制测量模块、数据分析模块和用户操作模块,开发语言采用当下较为流行的C#。系统软件顶层设计图如图7所示。

微信截图_20200509145449.jpg

  整个软件从功能上可以分为控制测量模块、数据处理显示模块和用户操作模块。其中控制测量模块主要实现命令的下传以及采集数据的上报;数据处理显示模块主要是对采集到的信号进行信号处理,包括加窗、FFT、轨迹运算、峰值处理、信号录制以及处理结果的显示等;用户操作模块则是提供人机交互的接口,用于将用户的操作指令进行合规性分析,并将用户的操作意图正确设置到设备中。最终实现的上位机软件成果如图8所示。

微信截图_20200509145456.jpg

  3 结论

  本文所研究的中频数字化仪是一种基于PXI总线的模块化中频信号采集仪器,具有高采样率、高分辨率、大数据存储容量以及快速的数据传输等技术,技术实现上完全自主可控。在软件设计上采用虚拟仪器的设计思想,按照模块化和层次化进行开发,分别完成了上位机软件设计和底层驱动程序开发。目前,本系统可以稳定工作在Windows7平台下,实现了中频数字化仪要求的各项功能,不但满足了当前的PXI测试系统构建的需要,而且提供了一个较为通用的驱动程序包,可以应用到其他需要中频数字化仪的PXI测试系统中。

  参考文献:

  [1] 郭文飞.基于PXI总线的直升机电气系统测试平台的研制[D].哈尔滨:哈尔滨工业大学,2016.

  [2] 苗忠海.基于PXI总线的数据采集系统设计[J].电子设计工程,2018(12):67-69.

  [3] PLX Technology.PCI9054 DataBook.1.0ed.PLX Press,1998:174-298.

  [4] 程月平.PCI总线数据采集系统的软件设计[J].仪表技术,2017(10):14-17.

  [5] 史云辉.基于PCI总线的数据采集卡接口的设计及实现[J].电子测试,2017(10):21-23.

  [6] 王海霞.基于PCI总线的四通道CAN通讯卡的设计[J].电子设计工程,2016(5):41-44.

  [7] 崔荃.多通道数据采集系统的设计与实现[D].成都:成都理工大学,2015.

  [8] 杨亚军.Windows下视频采集卡的WDM驱动开发[D].西安:西安电子科技大学,2015.

  [9] 武安河,周利莉.Windows设备驱动程序开发实务[M].北京:电子工业出版社,2001.

  [10] 李小平.基于PXI总线结构的数据采集系统设计[D].哈尔滨:哈尔滨工程大学,2017.

  (注:本文来源于科技期刊《电子产品世界》2020年第05期第63页,欢迎您写论文时引用,并注明出处。)

关键词: 202005 PXI 中频数字化仪 WDM Block DMA 中断

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版
吃什么东西可以除湿气 沙龙会是什么意思 消炎药吃多了有什么副作用 本是同根生相煎何太急是什么意思 为什么会有阴虱子
怀孕分泌物是什么样的 肛门里面痒是什么情况 为什么经常打嗝 crp高是什么意思 林俊杰什么时候出道的
什么是周岁 螺蛳粉为什么那么臭 什么东西补精子最快 一九七二年属什么生肖 眼睛红肿是什么原因引起的
白茶泡出来是什么颜色 头皮上长疣是什么原因造成的 过氧化氢弱阳性什么意思 什么是唐氏儿 煮黑豆吃有什么功效
背部疼痛挂什么科hcv9jop1ns1r.cn 东施效颦是什么意思hcv8jop8ns8r.cn 床垫选什么材质的好hcv9jop5ns2r.cn 白帆是什么hcv9jop1ns7r.cn 女性外阴瘙痒用什么药hcv8jop5ns9r.cn
1.24是什么星座hcv8jop0ns4r.cn 梦见腿断了是什么意思hcv7jop6ns7r.cn 做什么好赚钱xscnpatent.com 眼皮跳是什么原因引起的hcv9jop6ns8r.cn 办理无犯罪记录证明需要什么材料hcv7jop9ns2r.cn
糖料病者应吃什么好hcv9jop6ns7r.cn 言外之意是什么意思hcv9jop3ns6r.cn 疟疾是什么意思hcv8jop2ns6r.cn 年糕是什么做的hcv9jop1ns3r.cn 酱牛肉放什么调料hcv8jop2ns4r.cn
早饭吃什么好hcv9jop4ns2r.cn pvs是什么意思hcv9jop4ns1r.cn 银杯子喝水有什么好处hcv8jop4ns8r.cn 腰疼是什么原因引起的男性hcv7jop4ns8r.cn 好好活着比什么都重要hcv8jop3ns5r.cn
百度