摘要:介绍了应用MSP430F149芯片开发超低频波形发生器的设计原理及其在生理滤波器调试中的应用。
关键词:MSP430F149芯片 单片机 波形发生器 滤波系统
在载人运输系统振动分析仪中常用超低频波形发生器作为仿真的信号源。要求在0.1Hz~100Hz范围内稳定工作,波形失真小,且能以0.1Hz为步长细调。传统超低频波形发生器设计中存在着很多的不足:(1)应用通用电路,元器件多,尤其是电容的体积大,且波形的稳定性差、失真大,调节上极不方便;(2)应用专用电路,如ICL8038、MAX038,其失真和稳定性方面有明显提高,但在超低频应用上仍不合适。而且电路调节器件多,对电源的要求较高,代价较大。鉴于目前开发的振动分析仪常采用微控制器,利用其富余的软硬件资源,建立调节方便、高精度的超低频波形发生器,极有推广价值。
根据《铁路车辆内旅客振动舒适性评价准则》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位,频率取决于软件所设计正弦表的大小、系统频率以及读取正弦表的时间长短。应该注意的是所设计的频率应该比需要的频率略高一些,这样由脉宽高制信号到正弦波信号的滤波电路阶数可以降低。其电路结构如图2。
3 用MSP430F149实现PWM功能的软件设计
在该超低频波形发生器的软件设计中,主要应用到了以下几个功能模块:Timer_B定时器、Timer_A定时器、CPU寄存器、片内的数字控制晶振以及XT1低功耗振荡器,其主程序流程图如图3所示。
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种不同的方法:(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提供了强大功能,可以用来开发便携式振动分析仪。超低频波形发生器正是在MSP430F149基础上开发的,结构简单,能够对振动分析仪的生理滤波电路进行校验,完成了仪器的自校验功能。其系统结构图如图4所示。
使用MSP430F149设计正弦波发生器,利用了该单片机所提供的特殊功能,便得电路简单,调节方便,而且精度可控。通过验证可以产生不同频率、失真很小的波形,可以作为模拟电路的输入源对其标定。除此之外还可以进一步利用该单片机产生谐波信号、直流信号等,应用到更加广阔的领域。