微型虚拟任意信号发生器的设计与实现

上传人:hao****021 文档编号:246465415 上传时间:2024-10-14 格式:PPT 页数:56 大小:3.45MB
返回 下载 相关 举报
微型虚拟任意信号发生器的设计与实现_第1页
第1页 / 共56页
微型虚拟任意信号发生器的设计与实现_第2页
第2页 / 共56页
微型虚拟任意信号发生器的设计与实现_第3页
第3页 / 共56页
点击查看更多>>
资源描述
,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,微型虚拟任意信号发生器的设计与实现,内容提纲,研究意义及现状,系统设计方案,硬件系统设计,软件系统设计,任意信号发生器测试效果,一、,研究意义及现状,传统信号发生器,正弦波信号源,函数发生器,脉冲发生器,扫描发生器,针对特定应用,产生波形种类有限,波形不可编程,研究意义及现状,虚拟任意波形发生器,综合其他信号源产生波形能力,产生波形可编程控制,适用于各种仿真试验、教学实验等,仪器发展历史,GPIB,分立仪器,虚拟仪器,美国NI公司虚拟测试系统软硬件产品,目标吉林大学虚拟实验室,LabView,CCU,RLC,SCOPE,WEB,DAQ,AWG,二、系统设计方案,设计指标,USB通信接口,实现即插即用,无需外部电源,工作电流500mA,具有DDS模式和ARB模式;,波形频率 0.01Hz(DC)80KHz(ARB模式点数为8 ),0.01Hz(DC)1MHz(DDS模式)。,频率分辨率 :0.01HZ,波形存贮容量 :32K,垂直分辨率 :16位,波形幅度 :02.5 Vpp,微型,80mm*70mm,采用LabVIEW或者LabScene作为上层软件,设计思想,USB电缆,VC软件,LabVIEW或LabScene,PC或笔记本,产生波形,硬件系统设计框图,DDS波形产生模块,CPLD,逻辑控制模块,USB接口通信模块,任意波形产生模块,微控制器,89S52,放大,滤波,模块,三、硬件系统开发,DDS波形产生模块设计,任意波形产生模块设计,USB通信接口设计,3.1 DDS波形产生模块设计,直接频率合成(DDS)原理,DDS波形成产方案选择,DDS波形产生电路,3.1.1直接频率合成(DDS)原理,直接频率合成技术(DDS),参考,频率源,D/A,转换器,正弦波形存储器,低通,滤波器,频率,累加器,根据奈奎斯特采样定律将一个正弦信号取样、量化、编码,形成一个正弦函数表存于EPROM中,通过改变相位累加器的频率控制字来改变相位增量,并将变化的相位/幅值量化的数字信号通过/转换器及低通滤波器即可得到合成的模拟信号。,信号,输出,频率,控制字,3.1.2 DDS波形成产方案选择,方案一:根据DDS原理,用EEPROM存储器、高精度D/A再配以CPLD的控制时序实现;,缺点:成本高、调试难度大、开发周期长,方案二:根据系统需要,选择合适的DDS芯片,配以简单的外围电路实现;可大大缩短开发周期,3.1.3 DDS波形产生电路,AD公司提供的DDS芯片 ,内部包括32位相位累加器、正弦查询表、高性能DAC、高速比较器和滤波器,能实现全数字编程控制的频率合成器和时钟发生器,其最高时钟源可达125M;32bits频率控制字,5bit相位调制,简化的控制接口,并行或串行输入形式。,W_CLK、FQ_UD控制信号由CPLD内部产生;,总线DATA在W_CLK上升沿将数据装入寄存器,40位需重复5次。最后在FQ_UD上升沿把40位数据从输入寄存器装入到频率、相位及控制数据寄存器控制数据寄存器。,并行装入方式的时序图,3.2 任意波形产生模块设计,任意波形产生原理,任意波形产生电路设计,D/A转换控制电路,D/A基准电压产生模块,波形数据存取电路,CPLD控制电路,波形处理模块,3.2.1任意波形产生原理,利用计算机产生所需信号的波形数据,存入波形数据存储器,在CPLD的控制下同时选通存储器和/转换器,在两者之间建立直接的数据通道,使存储器相应单元中的波形数据传送给/转换器产生具有一定幅度、频率、相位的模拟波形。,波形频率由CPLD的时钟信号决定。,CPLD的时钟信号由AD9850提供。,3.2.2任意波形产生电路设计,D/A转换器的选择,D/A转换器是整个系统的核心器件,波形信号的质量取决于其分辨率和数据输出速率。其制约关系为:,1. D/A的分辨率越高,则高次谐波的分量越小;,2. 一周期的数据点数越多,模拟信号越平滑;,3. 一周期数据点数多,则信号所能达到的最高频率则降低;,4. D/A的输出速率越高,波形平滑度越好,一般情况下并行D/A的输出速率高,但是占用的I/O也多;,综合上述因素,本设计采用了MAXIM公司的MAX5541,,它是16位D/A,电压输出,10MHz三线式串行总线接口,,1us的信号建立时间。,3.2.2任意波形产生电路设计,D/A转换控制时序,3.2.2任意波形产生电路设计,D/A转换控制电路,由CPLD控制完成,包括:,16位并行数据,16位串行数据,3线接口时序,16位串行数据,16位并行数据,8位并行数据,D/A转换控制电路的具体实现,1. 采用状态机机制(定义状态ss:start,send16,over),2. 定义16进制计数器counter16,3. counter16.clock=clk; ss.clk=clk;,CPLD仿真并串转换及3线接口时序产生,3.2.2任意波形产生电路设计,D/A基准电压产生模块,选择美国国家半导体公司的LM4040-2.5作为 MAX5541工作时的基准点压(5V);,它采用小封装TO-92,不需外接电容,电路连接简单;,3.2.2任意波形产生电路设计,波形数据存取电路,地址发生器由15位计数器充当,SRAM,地址,发生器,AD14.0,SRAM写信号,读CLK,单片机数据,至D/A并/串电路,clr,3.2.2任意波形产生电路设计,CPLD控制电路,选择ALTERA公司的EPM7128。采用MAXPLUS-2的图形语言和AHDL语言相结合的方式对其编程实现控制逻辑。,CPLD,AD9850,控制模块,波形数据,存取模块,DA转换,控制模块,译码,模块,其他,模块,3.2.2任意波形产生电路设计,CPLD关键电路仿真时序,Clk:DDS提供的时基信号; frame_start为转换控制门信号; da_ram_nrd :SRAM读信号有效; m_addr_frame:地址发生器读数据阶段的时钟信号;,Start:预备态,r0h、r0l:从SRAM读出数据,wait_da:进行D/A转换,3.2.3 波形处理模块,模拟,开关,运放,运放,ARB波形,DDS波形,信号输出,考虑到任意波形发生器产生信号的可变性,本模块没有设计滤波电路;,3.3 USB通信接口设计,USB接口介绍,USB硬件开发,USB固件程序开发,3.3 .1 USB接口介绍,USB是英文Universal Serial Bus的缩写,中文含意是:通用串行总线。,特点:,即插即用,低功耗,总线供电,多种速度,模式,多种设备,类,价格低廉,3.3.2 USB硬件开发,USB接口控制电路设计,带微控制器的USB接口芯片,(,EZ-USB,),方案选择,不带微控制器的USB接口芯片,(,PDIUSBD12,),USB固件程序开发,选用PDIUSBD12+MCU 89S52,PDIUSBD12特点,符合串行总线(USB)1.1版协议规范,集成了SIE、FIFO存储器、收发器,与任何外部微控制器实现高速并行接口,具有良好的EMI特性的总线供电能力,在挂起时可控制LazyClock输出,可通过软件控制与USB的连接,符合ACPI、OnNOW和USB电源管理要求,内部上电复位和低压复位电路,双电源操作,主端点的双缓冲配置增加了数据吞吐量并,轻松实现实时数据传输,USB设计硬件原理图,3.3.3 USB固件程序开发,固件框架采用模块化结构,由KeilC开发,主循环:发送USB请求、处理USB总线事件和用户功能处理等,中断服务程序,协议请求处理,底层命令接口,硬件提取层,主循环保持的读指针,前台主循环程序,后台中断服务程序,保持的写指针,循环数据区,前后台工作原理,固件采用前后台工作的编程思想,D12每发生,一次中断,后台中断服务程序改变相应的事件,标志位,前台主程序不断检测事件标志位状态,,完成相应功能。,开始,初始化资源,循环,DDS模式,Y,N,N,N,Y,主程序流程,DDS,波形产生,ARB,波形产生,处理,命令,RAM,写数据,ARB模式,其他命令,Y,四、软件系统设计,PC驱动程序开发,USB应用程序设计思想,DLL动态连接库的开发,LabVIEW设备节点的开发,4.1 PC驱动程序开发,驱动程序工作在核心态下,介于应用软件和设备硬件之间,驱动程序作用,驱动程序,应用软件,WDM,VXD,驱动程序模型,VXD,WDM,NT,改进,Win98 WinNT 98/NT/2000/XP,支持PNP、电源管理、WMI,1、即插即用,查找设备,INF安装,驱动程序,2、适合Win98,Win2000/xp,1、驱动程序,查找设备,,安装程序。,2、适合于,Win98/NT,1、IRP结构,2、电源管理,3、分层驱动模型,4、Windows管理,诊断(WMI),WDM驱动程序 NT驱动程序,WDM驱动模型特点,User Applications,Win32 API Call,System Services,I/O Manager,IRP,DRIVER,Hardware Abstraction Layer,核心态,分层,用户态,W,D,M,模,型,介,绍,驱动程序开发工具介绍,Visual C+,DDK,DRIVERSTUDIO,WINDRIVER,难!,方法二 方法 一,寄生,USB设备驱动程序四大例程事务,即插即用例程,,完成自动识别USB设备,实现硬件资源分配和再分配,主要包括I/O端口、硬件中断号等。,电源管理例程,,完成电源策略管理,决定什么时候应该采用何种电源策略。,设备控制例程,,负责设备的控制,主要是指对设备的一些操作命令的发送或者一些标志的读取。用户自己定义功能码,上层应用软件功能码必须和驱动程序保持一致。,数据读写例程,,完成上层应用软件API函数所对应的打开设备、关闭设备、读设备和写设备等例程函数。,4.2 USB应用软件设计思想,采用Win32 API函数和驱动程序建立联系。,实现上层应用软件的相应功能。常用访问硬件,的API函数有:,CreatFile( ):打开驱动程序,获取设备句柄,ReadFile( ):获取数据,WriteFile( ):向设备写数据,ControlIoDevice( ):实现与外围设备之间的读写操作,CloseFile( ):关闭设备,应用软件开发工具选择,MFC+API,Graphical Programming,LabWindows/CVI,发展方向,虚拟仪器,软件平台,应用软件功能框图,模式,选择,USB,读写,用,户,界,面,波形选择,频率设定,波形选择,频率设定,读取USB数据,发送USB数据,识别USB设备,幅度设定,模式,选择,模式,选择,点数设定,波形显示,基于VC+6.0平台开发,VC开发环境使用相对复杂,需要花大量时间开发应用程序界面,界面开发远不如Labview便捷、美观,但是对于理解应用程序工作机理大有好处。,MFC类库,Win32API,基于LabVIEW平台开发应用程序软件,NI软硬件产品,自定义设备,LabVIEW,不支持,,用户,需要开发LabVIEW驱动,融入,DLL,调用,访问,驱,动,用户态,核心态,Labview,CLF接口,控件,设备,LABVIEW编程,基于LabVIEW平台的虚拟任意波形发生器,4.3 DLL动态连接库的开发,开发动态连接库是开发基于VC或者基于LabVIEW应用软件的首要任务。可以采用VC+6.0 DLL动态连接库向导开发。,USB DLL动态连接库,开发的USB DLL动态连接库包括三个文件:,SignalUsb.DLL,SignalUsb.LIB,其主要函数有如下4个:,UINT ModeSelect(BOOL modeflag,float f_freq,UINT f_number);用来选择波形的模式,UINT WaveGenerate(unsigned char * pcIoBuffer,UINT f_number);用来向usb写波形数据,以产生波形;,UINT FreqChang(float freq,UINT f_number);用来改变波形频率,UINT StopWave();用来停止波形,4.4 LabVIEW节点开发,通过动态连接库调用节点访问设备的动态连接库,实现设备的访问。,CLF节点的使用,USB节点程序,生成的USB节点,五、 示波器测试结果,任意波形发生器板卡实物图,任意波形发生器实测指标,波形频率:,ARB模式 :0.01Hz(DC)160KHz (点数为8),DDS模式 :0.01Hz(DC)1MHz。,频率分辨率 :0.01HZ,通道数 :单通道(可同步扩展为多通道),波形存贮容量 :32Ksa,垂直分辨率 :16位,频率稳定度 :10ppm,波形幅度 :02.5 Vpp,输出阻抗 :100,六、 改进意见,要提高波形的频带,应选用并行D/A,并可适当降低D/A位数;,要产生多通道波形,可选择本方案,设计可程控的滤波电路,对不同种类的波形选择不同滤波网络;,选择高带宽、低导通电阻的模拟开关,谢谢大家!,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!