高精度正弦全自动激励信号源的设计与实现

发布日期:[08-07-27 11:08:16] 浏览人次:[]


3.实现过程

  为了获得激励信号所需要的幅值,本单元使用PC.104的I/O模块的C口的位控功能对电子开关进行控制。首先在控制面板上给出激励信号所需的幅值,然后将此值利用5421码序列进行编码,所谓5421码是指码制相应位的权值分别为5、4、2、1,即相应位为1时所代表的十进制值分别是5、4、2、1。具体的编码规则如表1所示。对激励所需幅值编码后,将所得二进制编码按由低到高的顺序输入移位寄存器,该编码由寄存器并行输出给电子开关的控制端,控制开关的开闭,从而控制加法器的输出结果,获得所需幅值的正弦激励信号。控制过程的流程图如图3所示,为了更详细地介绍此流程的实现过程,下面举例进行说明。

4.例子

  例如需要一个f(t)=3.95sin240πtV的正弦激励信号,按照软件框图获得此激励信号的方法如下。在开始编程之前,首先进行端口分配,I/O模块C口的地址为Address,设C2为RD的控制口,C3为DATA的控制口,C4为CLK的控制口。程序首先要将移位寄存器复位,即对C口的C2位进行操作,如下所述:
Ootp(Address,0x04); //使C2口输出0
Delay(0.01);
Outp(Address,0x05); //使C2口输出1
Delay(0.01);
输入幅值为:3.956,即a=3.956:则b=100*3.956=395.6,四舍五入得396;
396除以10取余得6,所以C1=6:
396整除lO得到39,39除以10取余得到9,所以C2=9;
396整除100得到3,所以C3=3。
将C1、C2、C3按照5421码序列进行编码,编码规则见表1,根据表1的规则转换后,得:
C1’=0000 0110=0x06
C2’=0000 1100=0x0C
C3’=0000 0011=0x03
将C1’的数值赋予d1(即1=0000 0110);将C2’左移4位后,变成0000 1100 0000,赋予d2(即d2=0000 1100 0000);将C3’左移8位后,变成0011 0000 0000,赋予d3(即将上面得到的12位二进制数的每一位依次赋与数组。然后分12次将数组中的数据作为控制信号输入到寄存器中,得到相应的控制权值,用来控制输出正弦激励信号幅值的大小。C3为DATA的控制口,C4为CLK的控制口,具体实现过程如下:
当输出数据bit[I]=1时:
outp(Address,0x08); //脉冲信号为低电平。
Delay(0.01);
Outp(Address,0x07); //位操作置1。
Delay(0.01);
Outp(Address,0x09); //脉冲信号为高电平。
当输出数据bit[I]=0时:
oout(Address,0x08); //脉冲信号为低电平。
Delay(0.01);
Outp(Address,0x06); //位操作置0.
Delay(0.01);
Outp(Address,0x09); //脉冲信号为高电平。

 


5.结束语

  本单元利用常规电路实现了固定频率的正弦信号的给定功能。它能得到从10mV到10V之间任意幅值的正弦信号,对所需激励信号的频率及幅值的要求,精度能达到1%,且正弦信号的失真度也不超过1%。本检测单元己在基于PC.104总线的某型飞机发动机参数的检测系统中为飞机振动校准提供了激励信号,经调试完全能满足本文所述的各种参数要求。

|<< << < 1 2 > >> >>|
www.mapeng.net 马棚网
www.mapeng.net
文章作者:未知 | 文章来源:转载 | 责任编辑:admin | 发送至邮箱: | 加入收藏:
本文关键字:高精度  正弦  全自动激励信号源  设计
本文所属专题:
相关资讯
热点资讯
推荐资讯

关于我们 | 站点导航 | 使用帮助 | 友情链接 | 广告服务 | 免责声明 | 新手上路
设为首页 | 加入收藏 | 在线留言 | 马棚网QQ群:{92562572}{102901272}{333259257} | 交流QQ: 客户服务 客户服务 客户服务