打印

一种基于MSP430单片机的交流频率检测系统

[复制链接]
3400|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gaochy1126|  楼主 | 2012-5-13 17:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
摘要:本文提出了一种交流信号过零检测的电路,即捕获交流信号的零点,并借助MSP430单片机内部的16位定时器A(TimerA)的脉冲捕获功能便能得到该交流信号的周期进而能得到它的频率。系统的硬件部分主要由MSP430单片机以及整流桥、光电耦合器、三级管等器件构成;而软件部分主要是基于MSP430单片机的C语言程序,包括系统的初始化、定时器的设置等。该系统的实验结果和电路仿真吻合较好,具有一定的应用价值。   关键字:过零检测,脉冲捕获,MSP430,单片机,16位定时器A   1 引言   由于频率信号具有抗干扰性强、易于传输、测量准确度较高等优点,因此许多非频率量的传感信号都转换为频率量来进行测量和处理。因此频率测量方法愈来愈引起关注和研究。   频率测量是测量和控制系统领域的最基本测量之一。当今用的最多的测量信号频率的仪器是频率计,由于频率计在测量过程中需要一个时基信号作为测量信号频率的时基。时基信号一般是由本机振荡电路发生的,尽管现在多用石英晶体振荡器,但是仍然不能保证时基信号的精度,因此频率计的测量精度也就成了问题。传统的频率测量方法有两种[1]:一种是测频法,在一定时间间隔T内测出待测信号重复变化次数N,频率即为 ;另一种方法是测周法,在被测信号的一个周期内测出标准高频信号f的个数N,则被测频率 。 本文介绍了一种测宽法[2],借助光电耦合原理,将交流信号转变成周期脉冲信号,通过捕获脉冲信号的下降沿,由定时器计数,通过二次计数的差值便能得到脉冲信号的周期,进而可以计算出所测交流信号的频率。   2 硬件电路设计   硬件电路完成的任务是:   (1)模拟电路部分的设计,其功能是进行信号的转化。交流信号通过整流桥、光电耦合器等模拟器件便能得到周期脉冲信号。   (2)数字电路部分的设计,其功能是进行信号的检测。MSP430单片机内部的16位定时器A具有脉冲捕获功能,能将脉冲信号的占空比检测出来。 图1为它的基本结构图。 图1 系统的基本结构   2.1 模拟电路部分的设计    图2为模拟部分原理。下面主要阐述该电路的工作原理: 图2 模拟部分原理图 考虑到交流信号中可能含有一定的直流信号,而直流信号会引起交流波形的上移或下移,这可能会导致原有交流信号没有零点,这就谈不上过零检测、周期脉冲了,因此要根据交流信号的实际情况,在交流信号的出口处用设个适当的电容,起到隔直的作用。 R1和R2是限流电阻,保护后面的稳压管、二极管、光电耦合器在额定功耗范围内。由于这里的交流信号源选取的是220V市电正弦信号,所以R1和R2的阻值要比较大而且功率要比较大,该系统使用的是 、1W的电阻。 D1和D2是齐纳稳压管,主要作用是限压,保护整流桥的整流二极管使其反向电压在范围之内。该系统选用的稳压管型号是1N4736其稳压范围是 ,远远小于整流二极管的反向耐压。图3为稳压管的端电压(即图1中的Vi1-Vi2)波形。图3 稳压管的端电压波形 D3是整流桥,将交流电进行全波整流,使电流方向恒定。图4为整流桥两端的电压(即图中的V1-V3)波形。图4 整流桥的端电压波形 U2是光电耦合器,其作用有二:信号转变功能,将整流后的交流信号转变为脉冲信号;强弱电隔离功能,使强电部分和弱电部分在电气上处于隔离状态,在强电部分发生故障时不会损坏后面的弱电电路包括单片机系统。该系统使用的型号是4N25,有良好的开关特性,而且它的开关时间可以通过基级电阻进行调节,图5为其基级电阻在给定环境下的开关特性[3]。由图5可以看出基级电阻Rbe取 左右时其综合时间指标最好,即开关特性较优,所以本系统中基级电阻(R5)取 。图5 光电耦合器(4N25)基级电阻的开关特性 其集电极—发射级的电压(V5)波形,见图6。图6 光电耦合器(4N25)的集电极—发射级的电压波形 Q1为三级管,作用是将V5的脉冲信号转化为单片机所能识别的高低电平(0-3.3V)。因此Q1必须工作开关状态,即工作在饱和状态和截至状态不断切换的过程中。系统中的电阻R6和R7阻值的选取主要使三级管工作在开关状态。图7为Q1工作在开关状态的几个指标R6上的电流r6=Ib,R7上的电流r7=Ic,V5=Vbe,V6=Vce。 图7 三级管的开关特性 由图7可以看出三级管工作在饱和状态下 ,而工作在截至状态下 ,起到了良好的开关特性。 TA0就直接进入单片机,R8是限流电阻防止进入单片机的电流过大。   2.2 数字电路部分的设计   系统使用的主芯片采用德州仪器公司的低功耗单片机MSP430F449。MSP430F449是MSP430系列中一个功能很强的单片机,内部采用冯.诺依曼体系,RISC指令结构,运算器宽度16位。片内集成了60KB的FLASH程序存储器,2KB的SRAM数据存储器,多个16位定时/捕获/比较器,2个串行口,12位模数转换器,JTAG程序下载、在线调试接口,看门狗定时器等。48个I/O多功能端口,其中P1口和P2口具有位中断功能。因此该款单片机具有指令执行速度快、功能强大、外部电路简单、功耗低、节电管理方式完善、定位于嵌入式系统应用等特点[4] [5]。   在该系统中,使用到的单片机的主要功能模块是16位定时器A(Timer A)。其内部的脉冲捕获器具有以下几个特点[6]:   (1)16位计数器,4种工作模式;   (2)多种可选的计数器时钟源,可是是慢时钟、快时钟以及外部时钟;   (3)具有多个可配置输入端的捕获/比较寄存器,并且8种输出模式的多个可配置的输出单元;   (4)不仅能捕获外部时间发生的时间,还可锁定外部时间发生时的高低电平,给我们的设计带来很大的方便;   (5)可以以硬件方式支持串行通信。   3 软件设计[7] [8] [9]   软件设计的任务主要是Timer A的初始化的设定,其软件采用C语言编程。Timer A工作在捕获方式时,当满足捕获条件(触发方式)时,硬件自动将计数器TAR中的数据写入捕获/比较寄存器CCR0。图8是系统软件流程图。 图8 系统软件流程图 在本系统中,定时器采用连续计数模式,捕获方式采用下降沿捕获。系统初始化包括系统频率fs的选择(1MHZ)、Timer A的控制寄存器的设置,需要设置的寄存器为控制寄存器TACTL和捕获/比较控制寄存器CCTL0。Timer A中断函数在发生捕获时被触发,首先计算CCR0中的值与变量LastCCR0的差值,LastCCR0是上次捕获时记录的寄存器CCR0的值, CCR0的初始值为0。循环五次即被触发五次,五次的差值被保存在数组Timervalue[]中。考虑到计数器刚开始计数时信号不一定从零点开始,所以真正的计算应该从第二次触发开始,这样就能计算出四个脉冲周期,接着计算出平均脉冲周期,该平均周期便是所测交流信号的半周期,进而可以得出其频率。用公式表示为:( 为系统频率)   4 结论   文中提出了一种过零检测电路,并按实际需要选取了相应参数的电子元件,同时利用MSP430单片机的脉冲捕获功能实现了交流信号频率的检测。该系统对低频交流信号频率的检测精度高、实时性强,具有一定的实际应用价值。同时本文介绍的过零检测电路其应用更加广泛,再利用MSP430单片机Timer A内部的捕获/比较器的多路PWM输出单元,便能实现一定的控制功能。 本文创新点:文中提出了一种测宽法的交流频率检测系统。该系统利用过零检测、MSP430单片机的脉冲捕获功能,较以往的频率检测系统直观、精度高、实时性强。

相关帖子

沙发
拿起书本| | 2012-5-13 22:31 | 只看该作者
这种东西玩的人不多,给你顶一下,让大学学习学习。

使用特权

评论回复
板凳
秋之白华| | 2013-8-19 18:48 | 只看该作者
设计思路不错,:handshake

使用特权

评论回复
地板
firstblood| | 2013-8-19 22:42 | 只看该作者
传统的频率测量方法有两种[1]:一种是测频法,在一定时间间隔T内测出待测信号重复变化次数N,频率即为 ;另一种方法是测周法,在被测信号的一个周期内测出标准高频信号f的个数N

使用特权

评论回复
5
angerbird| | 2013-8-22 23:45 | 只看该作者
捕获交流信号的零点,并借助MSP430单片机内部的16位定时器A(TimerA)的脉冲捕获功能便能得到该交流信号的周期进而能得到它的频率

使用特权

评论回复
6
angerbird| | 2013-8-22 23:46 | 只看该作者
原理上来说是非常简单的,但是那点在于对交流信号的处理

使用特权

评论回复
7
DC@DREAM| | 2013-8-23 16:14 | 只看该作者
学习啦:)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1061

主题

11320

帖子

26

粉丝