一种频率和幅度可程控的低频正弦波基准信号产生方法技术

技术编号:13953872 阅读:114 留言:0更新日期:2016-11-02 10:00
本发明专利技术采用单片机编程技术和D/A转换技术,发明专利技术了一种频率和幅度都可以程控的低频正弦波基准信号产生方法。采用了2倍浮动定时周期输出编码方式和线性插值方式,确保正弦波具有一定的分辨率与频率精确度;采用正弦波相位幅度编码基值与设定的幅度权值进行比较,实现了正弦波幅度可程控调节;最终的正弦波相位幅度编码由单片机输出给D/A转换器,将数字信号转换成模拟信号输出,得到0.01~100Hz范围内基准正弦波信号。本发明专利技术实现电路由:单片机的键盘显示与串口通信接口电路、单片机电路、D/A转换电路、差分放大电路组成。

【技术实现步骤摘要】
所属
本专利技术涉及一种采用单片机编程技术和D/A转换技术,尤其涉及到0.01~100Hz范围内,产生频率和幅度可程控的正弦波基准信号产生方法。技术背景目前,市场上正弦波信号产生电路或芯片基本都在零点几Hz以上,很难达到0.01Hz某种场合需要的特殊要求。并且作为基准源使用的正弦波信号,往往对频率精确度、失真度以及幅度的稳定性都有较高的要求,鉴于上述原因,本专利技术通过对单片机编程,专利技术了一种0.01~100Hz范围内,频率和幅度都可以程控的低频正弦波产生方法。
技术实现思路
为了满足特殊场合对超低频正弦波基准源的要求,本专利技术采用单片机编程技术和D/A转换技术,专利技术了一种频率和幅度都可以程控的低频正弦波基准信号产生方法。采用了2倍浮动定时周期输出编码方式,解决了正弦波分辨率与频率精确度的矛盾;采用了线性插值方式,解决了超低频正弦波编码需要大容量数字编码库与单片机存储容量的矛盾;采用正弦波相位幅度编码基值与设定的幅度权值进行比较,实现了正弦波幅度可程控调节;最终的正弦波相位幅度编码由单片机输出给D/A转换器,本专利技术采用了两个16位D/A转换器,一个用于产生零线在1/2基准电压上的正弦波,另一个用于产生在1/2基准电压上的参考零线,两个D/A转换器的输出分别接在差分放大器上,将数字信号转换成模拟信号输出,得到0.01~100Hz范围内基准正弦波信号。附图说明本专利技术的电路框图如附图(1)所示,其电路构成分别由:单片机的键盘显示与串口通信接口电路、单片机电路、D/A转换电路、差分放大电路构成。本专利技术单片机产生正弦波主程序框图如附图(2)所示,其程序流程分别由:①单片机初始化,②键盘扫描与判断是否有工作指令,③启动正弦波编码输出定时器程序,④返回程序构成,具体内容详见:具体实施方式第2节“单片机产生正弦波主程序编程方法”。本专利技术产生正弦波编码数目及定时输出周期计算程序框图如附图(3)所示,其程序流程分别由:①正弦波频率转化成周期程序,②计算编码数目及定时周期,③编码数目不大于编码库的数目计算编码库寻址步长,④编码库大于编码库的数目计算编码库线性插值步长,⑤返回程序构成,具体内容详见:具体实施方式第3节“产生正弦波编码数目及定时输出周期计 算程序”。本专利技术定时器中断服务程序框图如附图(4)所示,其程序流程分别由:①自动装载定时器定时常数,②判断正弦波编码数目是否大于编码库的数目,③不大于编码库数目的执行程序,④大于编码库数目的执行程序,⑤计算相位幅度编码输出值,⑥将相位幅度编码输出给D/A转换器,并返回等待中断六个部分构成,具体内容详见:具体实施方式第4节“定时器中断服务程序”。具体实施方式1、产生正弦波的原理和方法该专利技术产生正弦波的原理是:通过单片机对正弦波相位幅度值进行数字编码,再将该数字编码值定时送给D/A转换器,将其转换成正弦波模拟信号,如附图(1)所示。其电路构成分别由:单片机的键盘显示与串口通信接口电路、单片机电路、D/A转换电路、差分放大电路构成。单片机对正弦波相位幅度值进行数字编码的基本方法是:首先将正弦波分成2n或A·2n 等分,对每等分的幅度基值进行数字编码,并在单片机中建立相应的编码库。如果要产生的正弦波的频率为f,根据该频率求出正弦波的周期T,根据所产生正弦波频率误差和失真度(或分辨率)的要求,确定每个正弦波周期需要的编码的个数N,N取2的指数倍或A乘以2的指数倍,再根据编码的个数N计算出单片机定时送给D/A转换器编码的时间TN: T N = T N - - - ( 1 ) ]]>本专利技术要求所设置的正弦波的位数是三位数,所产生正弦波的频率误差为0.1%,为了保证较高的量化分辨率,本专利技术选用的是单片机89C55作为产生正弦波的数字编码的芯片,单片机晶体振荡器选用的是33M温补晶振,经计算定时周期在100uS~200uS基本可以满足上述要求,而且这个定时周期为正弦波编码幅度值的计算、串口、键盘操作和显示留取了时间。本专利技术在单片机89C55程序存储中,事先编好了100×26个正弦波相位幅度基值双字节编码,当要产生的正弦波的频率为f,对应的周期为T(单位为uS),将T除以100后,再进行除2计算m次,直到余数小于200为止,这个余数就是单片机定时送给D/A转换器编码的定时周期TN,这个定时周期TN始终在100uS≤TN<200uS范围内,小于最小定时周期2倍范围内浮动变化,这种定时方法称其为:2倍浮动定时周期输出编码方法。由于晶振是33M,因此定时器的定时初值为:int(TN×2.75),并将定时器设置为中断工作方式,此时,正弦波相位幅度编码个数为:N=100×2m。用26除以2m,如果结果≥1,则再乘以2便得到编码库寻址的步长:S=(6-m)×2,根据这个步长,单片机得到输出正弦波编码指令后,从正弦波编码库中顺序取出需要的相位幅度编码基值(每个编码2个字节),本专利技术设定的幅度值范围为1~255(1个字节),用它与取得的相位幅度编码基值2字节数相乘,得到一个三字节数,取前面2个高字节数,即为需要的正弦波相位幅度值编码,从而实现了频率和幅度可编程控制的目的。用26除以2m,如果结果<1,那么:S=(m-6)×2即为对编码库两个相邻编码之间进行插值的等分步长。当单片机得到输出正弦波编码指令,从正弦波编码库中顺序取出第一个相位幅度编码基值Bn后,便从编码库中取出下一个编码基值Bn+1,在0~90°(和180~270°)时,用后面一个编码基值Bn+1减去前一个编码基值Bn,在90~180°(和270~360°)时,用前面一个编码基值Bn减去后面一个编码基值Bn+1,为了节省运算时间,直接用编码基值的低位字节相减,如果结果有借位,则用00H带借位对结果再减一次,得到的结果就是两个相邻编码基值之间的差值ΔB,再依次计算插值后的编码基值Bn′: B n ′ = B n ± Δ B × K S - - - ( 2 ) ]]>式(2)中,K=0,1,……,S-1得出插值后的编码基值Bn′后,再与设定的幅度值相乘,取前两个高字节数,即为插值计算后的正弦波相位幅度值编码,从而达到频率和幅度可编程控制的目的。由于本专利技术采用了两个16位D/A转换器,型号是MAX541,给D/A转换器提供的基准电压是2.5V,因此不能产生沿0V上下变化的正弦波,为了解决这个问题,本专利技术的做法是:由于16位D/A转换器的转换范围是0000H~FFFFH,本专利技术以8000H作为正弦波的零线,将前面计算得到的相位幅度值编码,除以2以后,是正半周加上8000H,是负半周则用8000H减去现在得到的相位幅度编码,输出给其中的本文档来自技高网...

【技术保护点】
一种频率和幅度可程控的低频正弦波基准信号产生方法,由2倍浮动定时周期输出编码方法、正弦波相位幅度编码基值线性插值方法,正弦波相位幅度值编码计算方法、正弦波参考零线变换方法组成,其特征是:正弦波相位幅度编码值直接由程序控制产生,直接达到所产生的正弦波基准信号频率和幅度可程控的目的。

【技术特征摘要】
1.一种频率和幅度可程控的低频正弦波基准信号产生方法,由2倍浮动定时周期输出编码方法、正弦波相位幅度编码基值线性插值方法,正弦波相位幅度值编码计算方法、正弦波参考零线变换方法组成,其特征是:正弦波相位幅度编码值直接由程序控制产生,直接达到所产生的正弦波基准信号频率和幅度可程控的目的。2.根据权利要求1所述的2倍浮动定时周期输出编码方法,其特征是:单片机定时送给D/A转换器编码的定时周期TN,这个定时周期TN始终在Tmin≤TN<2Tmin范围内,在最小定时周期Tmin到小于2倍Tmin范围内浮动变化。3.根据权...

【专利技术属性】
技术研发人员:夏忠刘大鹏张宇徐艳军彭润禾
申请(专利权)人:江苏省新沂地震台
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1