电子设计-数字频率计_第1页
电子设计-数字频率计_第2页
电子设计-数字频率计_第3页
电子设计-数字频率计_第4页
电子设计-数字频率计_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、电子系统设计课程研究论文 基于STM32的数字频率计设计 姓名:_ 学院: 班级: 学号: 邮箱: 时间: 摘要本文采用STM32来实现一种数字频率计,该频率计将待测信号经过整形后输入到STM32,然后由其控制内部TIM进行PWM输入捕获从而得到准确测量结果,并由LCD液晶显示屏显示。 系统的各个单元经过软硬件的设计与调试后,形成了一套功能完善的频率测试计, 与传统频率计相比,该方法充分发挥了STM32高速准确等优点,具有体积小、 速度快、 准确度高等特点。 关键词:数字频率计;STM32;测量目录一方案设计11.1方案比较11.2方案论证11.3方案选择2二系统设计22.1信号放大电路22.

2、2方波转换电路32.3软件设计4三总结5四参考文献5前言数字频率计是采用数字电路制做成的能实现对周期性变化信号频率测量的仪器。频率计主要用于测量正弦波、矩形波、三角波和尖脉冲等周期信号的频率值。其扩展功能可以测量信号的周期和脉冲宽度。通常说的,数字频率计是指电子计数式频率计。以前的频率计大多采用TTL数字电路设计而成,其电路复杂,耗电多,体积大,成本高。随着大规模专用集成电路的出现,频率计的开发设计变得简单,但由于价格较高,因此利用集成电路设计数字频率计的较少。现在ARM发展非常迅速,采用ARM实现数字频率计的开发设计,实现频率的测量,不但测量准确,精度高,而且误差小。本文以STM32为核心设

3、计数字频率计。一方案设计1.1方案比较方波转化电路信号放大电路输入信号 方案一:本方案以stm32为核心,在输入端加信号放大电路,方波转化电路及电平转化电路,再利用TIM定时器的PWM捕获功能来实现对输入频率的计数,最后使用LCD显示结果。原理图如下所示。电平转化电路LCD显示STM32图1 方案一原理图译码显示电路锁存器计数器闸门电路放大整形电路 方案二:本方案主要以数字电路为核心,主要分为时基电路,逻辑控制电路,放大整形电路,闸门电路,计数电路,锁存电路译码显示电路七大部分。原理图如下。时基电路逻辑控制电路输入信号图2 方案二原理图1.2方案论证 对于方案一:本方案以STM32为核心,输入

4、信号先进入信号放大电路,再通过方波转化电路,将其转化为方波信号,再经过电平转化电路将方波信号的电平转化为与STM32输入电平相符合的电平进行输入。再利用STM32内置的TIM定时器进行PWM信号捕捉,通过程序对方波信号的频率的测量,间接对输入信号的频率进行测量。最终将所测频率值用LCD显示出来。 对于方案二:本方案使用了大量的数字器件,被测信号的放大整形电路变成计数器所要求的脉冲信号,其频率与被测信号频率相同。同时,时基电路提供标志时基信号,其高电平持续时间为1s。当1s信号来到时,闸门开启,被测脉冲信号通过闸门,计数器开始计数,直至1s信号结束,闸门关闭,停止计数。如果在1s内计数为N,则被

5、测信号频率为F=N(Hz)。1.3方案选择 比较两种方案,方案一以STM32为核心,使用的 器件较少,电路简单,多为软件测试。而与方案一相比,方案二需要使用大量数字元器件,电路复杂,硬件调试过程繁琐。所以,选择方案一。二系统设计本系统以stm32为核心,包括信号放大电路,方波转化电路及电平转化电路,STM32控制系统,LCD液晶显示。 2.1信号放大电路 OPA690是高速运算放大器且其通频带较大,适合待测信号范围较广的特点,且其速度也满足设计要求。所以本电路使用OPA690为主运放。输入信号通过OPA690,小信号得到放大,大信号被削顶失真,均可在后级电路转化为可输入STM32的方波。原理电

6、路如下图。图3 信号放大电路原理图输出信号仿真结果如下图。图4 信号放大电路输出电压仿真输出波形2.2方波转换电路方波转化电路直接使用比较器74ls14.74ls14是一款兼容TTL期间引脚的高速CMOS器件,其为6路施密特触发反相器,其耗电量低,速度快。其电路图为下图。图5 74ls14电路图 将信号放大电路的输出与74ls14的输入端相连接,得到其输出信号仿真结果如下图。图6 74ls14仿真输出电压波形图 2.3软件设计 软件流程图如下图。程序初始化否是否开始测频是第一次捕获第二次捕获是否发生溢出否是溢出算法无溢出算法频率计算频率显示三总结 本文采用STM32来实现一种数字频率计,该频率

7、计将待测信号经过整形后输入到STM32,然后由其控制内部TIM进行PWM输入捕获从而得到准确测量结果,并由LCD液晶显示屏显示。 系统的各个单元经过软硬件的设计与调试后,形成了一套功能完善的频率测试计, 与传统频率计相比,该方法充分发挥了STM32高速准确等优点,具有体积小、速度快、准确度高等特点。四参考文献 张金龙.基于 AT89S51 的高精度数字频率计的设计与实现A (2013)06-01 2015年全国大学生电子设计竞赛(F题)设计报告7附录:STM32主要程序:1.定时器设置程序:void TIM1_ICConfig(void)  RCC_APB2PeriphClockCm

8、d(RCC_APB2Periph_TIM1,ENABLE);  TIM_TimeBaseInitStructure.TIM_Period = 0xFFFF-1; TIM_TimeBaseInitStructure.TIM_Prescaler = 0;  TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;/上升沿捕获     TIM_TimeBaseInit(TIM1,&TIM_TimeBaseInitStructure); /*上升沿触发*/ 

9、; TIM_ICInitStructure.TIM_Channel = TIM_Channel_1;  TIM_ICInitStructure.TIM_ICFilter = 0;  TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;  TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_p1;  TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; TIM_ICInit(

10、TIM1,&TIM_ICInitStructure);  TIM_Cmd(TIM1,ENABLE);2.频率计算主要程序:main()CaptureNumber = 0;while(1)    if(TIM_GetFlagStatus(TIM1,TIM_FLAG_CC1)=SET)        TIM_ClearFlag(TIM1,TIM_FLAG_CC1);      if(CaptureNumber = 0)&#

11、160;           counter = TIM_GetCapture1(TIM1);  /第一次捕获         CaptureNumber = 1;                    

12、60;  else if(CaptureNumber = 1)  /处理第二次捕获             if(TIM_GetFlagStatus(TIM1,TIM_FLAG_Update) != SET)/两次捕获间没有发生溢出的处理              Time = TIM_GetCapture1(TIM1

13、);        Time = Time - counter;            else              TIM_ClearFlag(TIM1,TIM_FLAG_Update);   /产生了溢出  &

14、#160;     Time = 0xFFFF - counter + TIM_GetCapture1(TIM1)+1;/产生溢出时候的计算方式              CaptureNumber = 0;        if(Time!=0)                   freq= 180000000/Time;  /计算频率    

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论