一、实验目的 返回
1.理解实用信号源设计的基本原理。
2.掌握实用信号源的软件设计方法。
二、实验内容
1.外接示波器观察数字合成信号源产生的波形,设定不同的幅度和频率,观察所得波形的变化。
2.用信号源高级设置设定波形输出。
3.使用键盘试验板上的按键,作为信号源的控制和数字按键。
4.输出要求的复杂组合波形的信号。
三、实验器材
1.计算机 1台
2.SJ-8002B电子测量实验箱 1台
3.键盘实验板 1块
4.数字示波器 1台
四、实验原理
1.直接数字合成基本原理
(1)DDS组成原理
直接数字合成(Direct Digital Synthesis)的基本原理是基于取样技术和计算技术,通过数字合成来生成频率和相位对于固定的参考频率可调的信号。其完整的DDS原理框图如图1所示。
图1 DDS组成原理
主要由:相位累加器、ROM波形存储器、DAC数模转换器以及低通滤波器组成。整体的工作原理如下:首先相位累加器根据输入的频率控制码输出相位序列,并作为波形存储器RAM的地址,RAM里面可以是预先存放的固定波形的一个周期的幅值编码,也可以是用户在使用过程中存入的任意波形的幅度编码,这样RAM的数据线上就产生了一系列的幅度编码数字信号,然后把该编码经过D/A转换得到模拟的阶梯电压,最后经过低通滤波器使其平滑后即得到所需要的模拟波形。
频率控制字和时钟频率共同决定着DDS输出信号的频率,频率分辨率正比于系统的时钟,而反比于相位累加器的位数。
它们之间的关系满足: (公式1)
相应的,其频率分辨率为: (公式2)
(2)相位累加器原理
如果改变地址计数器计数步进值(即以值来进行累加),则在保持时钟频率和ROM数据不变的情况下,可以改变每周期采样点数,从而实现输出频率的改变。例如:设存储器中存储了个数据(一个周期的采样数据),则地址计数器步进为1时,输出频率,如果地址计数步进为,则每周期取样点数为,输出频率
(3)DDS的性能
DDS信号源输出的信号实际上是以时钟的速率对波形进行取样,从获得的样本值中恢复出来的。根据取样定理,所以。实际中一般取。当时,输出频率最小,。输出频率的分辨率由相位累加器的位数决定,即。
例如:参考时钟频率为1GHz,累加器相位为32位,则频率分辨力为0.233Hz。而改变时,其频率分辨力不会发生变化,因此DDS可以解决快捷变换与小步进之间的矛盾。由于D/A、存储器等器件的限制,DDS输出频率的上限不高,目前仍只能达到几十MHz。
2.信号源硬件原理图
图 2 硬件原理图
3.程序中高级设置输出波形原理
信号源高级设置包括波形,频率相关(时钟频率,步进),幅度相关(幅度初调,幅度微调)等几部分的设置。
①频率设置
频率设置
——输出信号频率。
——时钟频率,可取值80M,40M,20M,10M,5M,1.25M,625K,156.25K。
N——SJ—8002B主板的相位累加器是24位,故N=24。
K——频率控制字,其大小? 0≤K<2N-4 。
H——步进高4位,取值范围0~15。
M——步进中8位,取值范围0~255。
L——步进低8位,取值范围0~255。????????? ????
例如:选择“时钟频率”=80MHz,“步进高位”H=0,“步进中位”M=5,“步进低位”L=25,则可以得到频率控制字,再由公式得到。
注意:设置的步进高位范围是0~15,步进中位范围是0~255,步进低位范围是0~255。
②幅度设置
依据公式
V——输出的峰值幅度。
M——幅度初调(幅度分辨率),取值0.005,0.01,0.02,0.04。
N——幅度微调,取值范围50~250。
例如:“幅度初调”选择为0.01N,则幅度分辨率M=0.01;“幅度微调”设定N=150,则可得输出信号的峰值幅度
4.矩阵式键盘的原理
(1)矩阵式键盘
(2)矩阵式键盘的编程
矩阵式键盘连接可分为编码式和非编码式两种。对于非编码式连接的键盘,其应用编程可分为:判键、识键部分和键处理部分。
①判键和识键
即指判断是否有键按下和确认所按下键的位置。确定矩阵式键盘上何键被按下采用一种“行扫描法”。行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法。
无键按下时,矩阵式键盘的行,列线通过上拉电阻均为高电平(见图4)。然后,依次将键盘逐行置低,同时取出输入列线状态,若此时输入不为全高(0xFF),则表明该行有键被按下。因为行线输出有低电平,一旦该行有键按下,则输入线就会被拉低。这样,就可得判断出是否有键按下了。同时,可根据置低的行线和读入的输入线的状态,找出被按下的键位置。
在判键过程中,还要加入按键去抖动处理。一次按键的完整过程如图3所示(按键按下时,键盘输入线上呈现的波形),按键的抖动
图3 按键抖动波形
包括前沿抖动(刚按下时)和后沿抖动(释放时)两个过程,抖动持续时间与按键弹簧的机械特性有关,通常为几ms至几十ms,可采用软件延时的办法进行处理。
②键处理
键处理即在识别到某键按下后,作出不同的处理。在应用上,一般将键盘分为功能键和数字键(也可两者复用),功能键一般采用散转的办法,让程序执行不同的操作。
实际上,键盘处理是很复杂的,它往往占到一个应用程序的大部份代码,但这种复杂不来自于设备的本身,而是来自于操作者的习惯等等问题。因此,在编写键盘处理程序之前,应先把它从逻辑上理清,然后用适当的算法表示出来,最后再编写代码。
5.矩阵式键盘的实验电路
图4 矩阵式键盘连接图
实验电路是采用2×8的矩阵键盘电路,键盘的行线通过由74LS273锁存器构成的输出接口(端口地址为70H)输出,列线通过74LS245总线接收器构成的输入接口(端口地址为74H)输入。键盘共16个键,定义了功能键:F1、F2、F3、F4、CR键共五个;数字键:0~9及小数点共十一个(如图4所示),使用者可以自己定义每个键功能和相应的处理。
图5 键盘端口地址
右图5为判键和识键过程中所需要用到的键盘地址和控制字。 本实验共用到三个端口地址:70H:通过74LS273锁存器,控制扫描键盘的行线。 74H:通过74LS245总线接收器,读取控制扫描键盘的列线状态。73H:控制键盘面板上的LED指示灯。
五、设计指导
1.信号源高级设置部分
1)结构流程图
图6 高级设置部分结构流程图
2)树形图
图7 高级设置部分调用结构
3)功能与前面板设计
图8 高级设置前面板
表1 高级设置控键及显示键汇总
编号 | 名称 | 功能 | 位置 | 备注 |
1 | 时钟频率 | All controls>Ring&Enum>Enum | ||
2 | 步进高位 | 步进值高4位 | All controls>Numeric>Numeric Control | 取值范围0~15 |
3 | 步进中位 | 步进值中8位 | All controls>Numeric>Numeric Control | 取值范围0~255 |
4 | 步进低位 | 步进值低8位 | All controls>Numeric>Numeric Control | 取值范围0~255 |
5 | 幅度微调 | All controls>Numeric>Numeric Control | 取值范围50~250 | |
6 | 幅度初调 | All controls>Ring&Enum>Enum | ||
7 | 启动 | 依据参数启动信号 | All controls>Boolean>OK Button | 按下后依据面板上设定的值,启动相关信号源。 |
8 | 波形选择 | 选择输出的波形 | All controls>Ring&Enum>Menu Ring | 选择16种波形中1种。 |
9 | 图形框 | 显示所选波形示意图 | All controls>Graph>Waveform Graph | 设置参数:X轴:0~502,Y轴:-10~266。 |
注:2通道的情况与1通道类似。
4)动态调用链接
本程序设计的主要实现已经做成底层fp函数(用Labwindows/CVI实现),在程序实现时可直接调用实验箱提供的驱动函数动态链接(即.dll函数),驱动函数原型及常数和变量在cvidll.prj中。
表2 高级设置中动态调用说明
fp函数 | 实现功能 | 输入参数 | 输出参数 | 参数说明 | 动态链接图标 |
void inTI_wave1 | 初始化信号源,把波形数据写入SRAM | int DDS_channle | 无 | ||
void profession_source | 依据相关参数,启动信号源 | int DDS_channle | 无 | Clk_cw:时钟选择的控制字。 |
2.信号源键盘控制部分
1)结构流程图
图12 信号源键盘控制部分结构流程图
2)树形图
图13 信号源键盘控制部分结构树形图
3)功能与前面板设计
图14 信号源键盘控制部分前面板
表3 信号源键盘控制部分控键及显示键汇总
编号 | 名称 | 功能 | 位置 | 备注 |
1 | 波形选择 | 选择输出的波形 | All controls>Ring&Enum>Menu Ring | 选择16种波形中1种。 |
2 | 波形指示灯 | 显示正在通过键盘板设置波形 | All controls>Boolean>Round LED | |
3 | 峰值幅度 | 设置波形幅度 | All controls>Numeric>Numeric Control | |
4 | 幅度指示灯 | 显示正在通过键盘板设置幅度 | All controls>Boolean>Round LED | |
5 | 信号频率 | 设置信号频率 | All controls>Numeric>Numeric Control | |
6 | 频率指示灯 | 显示正在通过键盘板设置信号频率 | All controls>Boolean>Round LED | |
7 | 启动 | 依据参数启动信号 | All controls>Boolean>OK Button | 按下后依据面板上设定的值,启动相关信号源。 |
8 | 频率按键输入 | 通过键盘板输入的字串,来给频率赋值。 | All controls>string & path>String Indicator | |
9 | 启动指示灯 | 显示键盘板上启动键已经按下 | All controls>Boolean>Round LED | |
10 | 幅度按键输入 | 通过键盘板输入的字串,来给幅度赋值。 | All controls>string & path>String Indicator | |
11 | 图形框 | 显示所选波形示意图 | All controls>Graph>Waveform Graph | 设置参数:X轴:0~502,Y轴:-10~266。 |
12 | 退出 | 退出整个程序 | All controls>Boolean>OK Button |
4)动态调用链接
本程序设计的主要实现已经做成底层fp函数(用Labwindows/CVI实现),在程序实现时可直接调用实验箱提供的驱动函数动态链接(即.dll函数),驱动函数原型及常数和变量在cvidll.prj中。
表4 信号源键盘控制部分使用的动态调用一览
fp函数 | 实现功能 | 输入参数 | 输出参数 | 参数说明 | 动态链接图标 |
void epp_init | 初始化EPP接口 | 无 | 无 | ||
void epp_write_data | 将数据data输出(写入)到sj8002的端口地址sj8002addr。 | Unsigned char sj8002addr, unsigned char data | sj8002addr: sj8002的端口地址。 | ||
void easy_source | 依据相关参数,启动信号源 | int DDS_channle | 无 | Amp:信号幅值,单位V。 |
void inTI_wave1 | 初始化信号源,把波形数据写入SRAM | int DDS_channle | 无 |
3.信号源公式输入部分
1)结构流程图
图22 信号源公式输入部分结构流程图
2)树形图
图23 信号源公式输入部分结构树形图
3)功能与前面板设计
图24 信号源公式输入部分前面板
表5 信号源公式输入部分控键及显示键汇总
编号 | 名称 | 功能 | 位置 | 备注 |
1 | 公式错指示灯 | 公式编辑窗口公式输入错误。 | All controls>Boolean>Round LED | |
2 | 波形公式输入 | 通过键盘板输入的字串,来给幅度赋值。 | All controls>string & path>String Control | |
3 | 频率f | 设置信号频率 | All controls>Numeric>Numeric Control | |
4 | 峰值幅度 | 设置波形幅度 | All controls>Numeric>Numeric Control | |
5 | 频率系数k | 设置频率系数 | All controls>Numeric>Numeric Control | 若公式为周期函数,则输出信号频率为“频率”ד频率系数”。否则输出信号频率就等于“频率”。 |
6 | 启动 | 依据参数启动信号 | All controls>Boolean>OK Button | 若公式输入正确,按下后依据相关参数,启动1通道信号源。 |
7 | 图形框 | 显示所选波形示意图 | All controls>Graph>Waveform Graph | 横坐标为时间t:0~1 |
注:公式编辑器设定的采样频率FT=4096,采样点数为4096。
4)动态调用链接
本程序设计的主要实现已经做成底层fp函数(用Labwindows/CVI实现),在程序实现时可直接调用实验箱提供的驱动函数动态链接(即.dll函数),驱动函数原型及常数和变量在cvidll.prj中。
表6 信号源键盘控制部分使用的动态调用一览
上一篇:信号源是什么,该如何为信号放大器选择信号源
下一篇:解析射频信号源具体组成部分
推荐阅读最新更新时间:2024-11-15 09:37
- ExpressCard 转 USB3.0 板卡
- SI4731-DEMO,使用 SI4720 数字收音机调谐器的演示板
- DC2089A-A,LTC3880EUJ/LTC3870EUFD RSENSE 演示板,7V = VIN = 14V,VOUT = 0.8V 至 1.8V,80A
- AM2S-1218SH30Z 18V 2瓦直流转直流转换器的典型应用
- 扩展板STM32
- LT1634AIS8-2.5 的典型应用产生 LTC1448 双路 12 位 DAC 的基准和电源电压
- 2.5寸FPV穿越机机架
- LTM8027EV 演示板、60V、4A 降压模块稳压器
- 带光耦隔离继电器模块
- AD8657ARMZ-RL电压跟随器运算放大器典型应用电路