实用信号源设计

测试测量实验

6人已加入

描述

实用信号源设计

一、实验目的                                                                                                                  返回

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)矩阵式键盘

   键盘是由若干按键组合而成的,常采用矩阵式连接,称为矩阵式键盘,即每条水平线和垂直线在交叉处通过一个按键加以连接。当需要的键数比较多时,采用矩阵连接可以减少I/O口的占用。

  (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
unsigned char wave
_data[]
unsigned char shape

信号源

void profession_source

依据相关参数,启动信号源

int DDS_channle
unsigned char clk_cw
unsigned char fcw_L
unsigned char fcw_M
unsigned char fcw_H
unsigned char shape
unsigned char gain_cw
unsigned char vef_cw
unsigned char filter_cw

Clk_cw:时钟选择的控制字。
Fcw_L: 步进低8位。
Fcw_M: 步进中8位。
Fcw_H: 步进高4位。
Gain_cw:幅度增益控制字。
Vef_cw: 幅度微调控制字。
Filter_c:滤波频率选择控制字。

信号源

 

   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的端口地址。
data:要写入sj8002的数据。

信号源

void easy_source

依据相关参数,启动信号源

int DDS_channle
double amp
double fr
unsigned char shape
unsigned char filter_cw

Amp:信号幅值,单位V。
Fr:信号频率,单位Hz。
Filter_cw:滤波频率选择控制字。

信号源

void inti_wave1

初始化信号源,把波形数据写入SRAM

int DDS_channle
unsigned char wave
_data[]
unsigned char shape

信号源

   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
纵坐标为归一化的Y值。

注:公式编辑器设定的采样频率FT=4096,采样点数为4096。

   4)动态调用链接
    本程序设计的主要实现已经做成底层fp函数(用Labwindows/CVI实现),在程序实现时可直接调用实验箱提供的驱动函数动态链接(即.dll函数),驱动函数原型及常数和变量在cvidll.prj中。


                           表6   信号源键盘控制部分使用的动态调用一览

fp函数

实现功能

输入参数

输出参数

参数说明

动态链接图标

void double_to_int

归一化数组:double数据组变为 最大值为4000的int数组

double doublein[], int points,

int inout[]

doublein[]:输入的double型数组。
points :doublein[] 数组的点数。
Inout:转化以后的int数组。

信号源

void easy_source

依据相关参数,启动信号源

int DDS_channle
double amp
double fr
unsigned char shape
unsigned char filter_cw

Amp:信号幅值,单位V。
Fr:信号频率,单位Hz。
Filter_cw:滤波频率选择控制字。

信号源

void inti_wave1

初始化信号源,把波形数据写入SRAM

int DDS_channle
unsigned char wave
_data[]
unsigned char shape

信号源

 

   4.信号数据文件部分

   在执行过程中写入SRAM的文件为二进制文件形式。面板上显示所调用的文件是由数组生成的波形文件。其中,各写入SRAM的波形资料见下表:
                                   表7   波形存储一览


波形

存储编号

文件名

正弦波

1

写入波形文件1.bin

方波

2

写入波形文件1.bin

锯齿波

3

写入波形文件1.bin

全波整流

4

写入波形文件1.bin

调幅波

5

写入波形文件1.bin

调频波

6

写入波形文件1.bin

窄脉冲波

7

写入波形文件1.bin

台阶波

8

写入波形文件2.bin

三角波

1

写入波形文件2.bin

梯形波

2

写入波形文件2.bin

M波

3

写入波形文件2.bin

对数波

4

写入波形文件2.bin

钟形波

5

写入波形文件2.bin

辛克波

6

写入波形文件2.bin

高斯噪声

7

写入波形文件2.bin

直流

8

写入波形文件2.bin

  注:各种波形存储位置:4096×(存储编号-1)~ 4095×存储编号。

六、调试与测试

   1、信号源高级设置部分
    ①按如图方式,进行硬件连线。

                     信号源
                         

                             图28  信号源高级设置实验时的硬件连线

   ②依据前面描述的原理,分别设定1通道各参数,点击启动,观察示波器显示的值是否与计算的一致。
   ③对于2通道,重做②描述的过程。
   ④完成下面的表格

                                    表8   信号源高级设置的数据观察记录表


要求信号频率
(Hz)

信号幅度(峰值)V

选择
时钟
频率

步进
H

步进
M

步进
L

测试输出信号频率(KHz)

幅度初调

幅度微调

输出信号幅度峰值(V)

100

1

1.25M

2K

2.5

20M

2K

4

5M

80K

6

20M

   2、键盘控制部分
   键盘板在控制波形产生时的格键含义

表9   键盘各键复用一览


按键名称

复用功能

备注

F1

波形设置

F2

幅度设置

F3

频率设置

F4

启动信号源

CR

输入确认

表明幅度,频率输入结束或波形已经选定。

小数点

频率或幅度输入时代表小数点

0

数字0和正弦波

波形设置时代表选取正弦波

1

数字1和方波

波形设置时代表选取方波

2

数字2和锯齿波

波形设置时代表选取锯齿波

3

数字3和全波整流

波形设置时代表选取全波整流

4

数字4和窄脉冲波

波形设置时代表选取窄脉冲波

5

数字5和三角波

波形设置时代表选取三角波

6

数字6和梯形波

波形设置时代表选取梯形波

7

数字7和M波

波形设置时代表选取M波

8

数字8和钟形波

波形设置时代表选取钟形波

9

数字9和辛克波

波形设置时代表选取辛克波

          
  1. 按如图方式,进行硬件连线。

信号源


                       图29   键盘输入实验时的硬件连线

   ②按下F1键选择波形,观察“波形设置”灯亮后,通过按键选择波形,确定后,按下CR键,灯熄灭,表示波形选择结束。
   ③按下F2键准备输入幅度,观察“幅度设置”灯亮后,通过按键输入幅度值,此时输入显示在“幅度按键输入”框,并同时由字串转化为数字,显示在“峰值幅度”框(注意字串不要输错)。若输入结束,按下CR键,灯熄灭,表示幅度设定。
   ④按下F3键准备输入频率,观察“频率设置”灯亮后,通过按键输入幅度值,此时输入显示在“频率按键输入”框,并同时由字串转化为数字,显示在“频率”框(注意字串不要输错)。若输入结束,按下CR键,灯熄灭,表示频率设定。
   ⑤按下F4键启动信号源,此时“启动指示”灯亮,然后熄灭,观察此时波形显示框的波形是否与选定波形一致,同时观察外部的示波器,检查频率、幅度、波形是否与设定的值相同。
   ⑥直接在程序面板上输入波形、幅度、频率,然后点击启动按键,观察此时波形显示框的波形是否与选定波形一致,同时观察外部的示波器,检查频率、幅度、波形是否与设定的值相同。
   ⑦完成下表

                                  表10  键盘控制波形输出的数据观察记录表


输出波形

设定信号幅度(V)

设定信号频率(kHz)

输出是否正确

正弦波

2

100

三角波

3

40

钟形波

5

50

辛克波

4

60

   3、公式输入部分
    ①按如图方式,进行硬件连线。

                            信号源

                                        图30   公式输入实验时的硬件连线

   ②在波形公式框输入任意周期信号,例如cos(w×t),设置峰值幅度、频率和频率系数,,按下启动按键,观察示波器的频率是否为频率×频率系数,峰值幅度,波形是否与设定的一致。
   ③在波形公式框输入任意周期信号,例如t+t^2,设置峰值幅度、频率和频率系数,,按下启动按键,观察示波器的频率、峰值幅度、波形是否与设定的一致。
   ④完成下表。
                                  表11   通过公式产生波形的数据观察记录表


设定的波形

设定信号幅度(V)

设定信号频率(kHz)

设定的频率系数

输出信号频率(KHZ)

输出是否正确

Sin(w*t)

2

10

2

20

cos(3*w*t)

3

4

5

60

sin(w*t)*sin(2*pi(1)*t)

4

3

20

60

T+t^4

1

60

1

60

七、备注

   注意:数字合成信号源的输出信号频率范围:正弦在1Hz~2MHz,方波在1Hz~500KHz,其它波形在1Hz~200KHz范围内。峰值幅度范围0.1V~8V,设定各参数时需保证输出信号在此范围内。同时调幅波载波频率为输入频率的16倍,调频波载波频率为输入频率的7~25倍。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分