微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 利用单片机使用MSP430F149设计正弦波发生器解析方案

利用单片机使用MSP430F149设计正弦波发生器解析方案

时间:06-18 来源:互联网 点击:

根据《铁路车辆内旅客振动舒适性评价准则》UIC513国际标准开发的SSD-J-2振动舒适度测量仪是基于MSP430F149的三维振动便携式分析仪,内含上下、左右、前后振动的生理滤器。为了调整和标定这组生理滤波器的精度,利用该单片机的一个PWM输出端配上II型的RC滤波,在软件支持下构成调节方便的超低频波发生器。经实用表明其性能达到UIC513标准的技术要求。

1 MSP430F149的内部结构

MSP430F149 是美国TEXAS INSTRUCMENTS公司最新推出的16位超低功耗混合信号单片机,带有Flash存储器,具备很强的灵活性,方便修改代码及产品售后升级。它采用精简指令集(RISC),125ns指令周期,大部分的指令在一个指令周期内完成。1.8V~3.6V的供电电压,其超低功耗(供电电压2.2V,工作频率 32kHz时,工作电流为7μA;供电电压2.2V,工作频率1MHz时,工作电流为250μA.)使超低频波形发生器可被设计成电池供电且长时间工作的系统。MSP430F149内含一个具有8个外部通道的12位高性能A/D转换器,一个具有自动扫描功能的容量为16个字节的可编程缓冲器,片内参考电压,一个温度传感器以及电池低压时的检测电路;内部具有两具定时器:带有7个捕获/比较寄存器的16位 Timer_B和带有3个捕获/比较寄存器的16位Timer_A,在比较模式下可以产生PWM信号,控制DCO的频率,利用利用它们可以满足要求;该芯片具有60KB的闪速存储器,2KB RAM,采用串行在线编程方式,为用户修改程序和控制参数带来灵活的空间,而且内部的安全保密熔丝可使程序不被非法拷贝。此外,MSP430F149具有强大的中断功能,48个I/O此脚,两个串行通讯接口,10万次的擦写,超强的抗干扰能力。

2 超低频波形发生器的电路设计原理

用于人体乘坐的交通运输工具中的振动分析仪对信号有严格的滤波要求。UIC513标准中对Z方向(上、下)振动信号规定按图1的滤波计权曲线进行滤,其滤波频带为0.4Hz~16Hz,并且具台阶性。重要的是检验滤波的效果是评价振动舒适性的前提,滤波电路只有经过严格的标定校调后方能投入使用,所以需要采用低失真、超低频正弦信号源来标定电路。应用MSP430F149进行设计,电路十分简单。产生的波形精度取决于脉宽计数器的精度,最高可达16位,频率取决于软件所设计正弦表的大小、系统频率以及读取正弦表的时间长短。应该注意的是所设计的频率应该比需要的频率略高一些,这样由脉宽高制信号到正弦波信号的滤波电路阶数可以降低。

3 用MSP430F149实现PWM功能的软件设计

在该超低频波形发生器的软件设计中,主要应用到了以下几个功能模块:Timer_B定时器、Timer_A定时器、CPU寄存器、片内的数字控制晶振以及XT1低功耗振荡器。

3.1 稳定DCO频率模块

DCO 实质上是一个RC振荡器,具有RC振荡器的特点。其在频率的设置和转换上不准确,但由于它是数字控制的振荡器,可以通过一个已知的频率稳定的晶振如 32768Hz手表晶振来进行校准,使DCO达到准确的频率。因为MSP430F149不含有锁频环数字逻辑,所以只有通过软件进行“软锁频”校准 DCO,这十分重要。

程序如下:

Setup_TA mov #TASSEL1+TACLR,TACTL;设置TA时钟SMCLK

Setup_CC2 mov #CCIS0+CM0+CAP,CCTL2;设置CCR2,输入信号:;ACLK,捕获模式

Bis #MC1,TACTL;设置Timer_A:连接模式

Test_DCO bit #CCIFG,CCTL2;检测捕获标志位

jz Test_DCO

bic #CCIFG,CCTL2 ;清除标志位

AdjDCO mov CCR2,R14

;R14=捕获的SMCLK值

sub R15,R14;R14=捕获SMCLK的差值

mov CCR2,R15;上次捕获的SMCLK值

com #Delta,R14 ;Delta=SMCLK/ACLK

jlo IncDCO

jeq DoneFLL

DecDCO dec.b DCOCTL ;调整DCO

jmp Test_DCO

IncDCO inc.b DCOCTL

Jmp Test_DCO

DoneFLL clr CCTL2 ;停止CCR2

Clr TACTL ;停止Timer_A

3.2 产生PWM的Timer_B中断程序

改变正弦的频率需要改变脉宽信号输出的频率,有3种不同的方法:(1)可改变精度,进一步改变正弦表的大小,增大或减小输出一个正弦波的周期;(2)可改变主频,来延长指令的执行时间,进而延长周期;(3)利用中断处理延时读取正弦表的方法来控制输出的频率。3种方法均十分简便,只需改变几个参数即可。这里采用的是最后一种方法。

程序如下:

TB_ISR inc R11 ;R11,R12用于改变产生正弦

;波的频率,延迟读取正弦表

cmpR11,R12

Jne RT

Incd R15 ;增加指针R15,指向正弦表

;的下一个正弦值

and #Number,R15;Number=正弦表大小×2

mov Sine_Tab(R15),TBCCR1

;Sine_Tab为正弦表指针,TBCCR1

RT reti ;移入新值

4 以MSP430F149为核心的振动分析仪的生理滤波器的自校系统

由于MSP430F149提供了强大功能,可以用来开发便携式

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top