论文技巧案例-基于单片机的频率-时间测量仪设计-CNKI知网查重网站

论文技巧案例-基于单片机的频率-时间测量仪设计

2021-06-01 12:49:04
作者:杭州千明

  众所周知,测量是测试环节重要的一环,测试测量需求贯穿5G全产业链生产过程与全生命周期,5G移动通信的快速普及对于测量仪器的精度要求带来极大的挑战。从华为等通信产业公司布局通信测量与基础测量等电子测试领域前沿技术的研发,可见通信产业对于测试测量领域的重视。针对通信等行业对于测试测量领域的要求与需求,本课题提出开发一种基于AT89C51单片机的误差自检频率时间测量仪。

  本课题通过运用AT89C51单片机作为系统核心控制的中心,控制频率时间测量仪的系统运行。利用计数器0中断和定时器1中断实现频率测量,利用定时器1中断和外部中断0实现脉宽测量。提出建立误差自检算法,对测频过程中产生的误差进行校正比对,进一步地降低测量的误差。提出量程自动切换,进一步的提高系统的测量精度。通过在模拟环境下的测试分析与验证,设计的频率时间测量仪能有效准确地测量出待测频率及时间,为测试测量领域提供了前期的技术基础与重要前提。

  频率和时间是电子技术领域的一个重要参数,所以频率测量在工程建设的应用中具有重要的作用:如飞机制造,汽车电子器件等领域都有广泛的应用。随着科技的日益发展,现代工程对频率时间的测量需求日益增大。导弹发射、测量定位,天文等领域对于频率时间测量都具有强大的使用需求及较高的测量精度要求。

  用示波器直接测量频率时间容易因接触不良而发生测量误差,且测量速度慢,误差较大。通过数字器件频率时间测量仪进行测量具有测量精度高,稳态误差小,测量速度快等优点。而数字器件频率时间测量仪的多种设计方案中,相比以数字器件为核心的方案,以单片机为核心的频率时间测量仪更具有测量结果系统误差小,测量精确度高的优点。

  利用单片机的定时器和计数器产生时基信号进行测量结果计算,提高测量精度。通过误差自检算法实现参数补偿,减少A/D转换时产生的误差。基于单片机的频率时间测量仪为频率时间测量提供了充实的理论依据和扎实的实验基础。通过对电路及算法的研究,极大的解决了频率时间测量仪测量的精度问题和误差问题,为频率时间测量技术人员提供了极大的便利,降低了企业及政府因频率时间测量的精度和误差而产生的损失。

  1.2频率时间测量仪现状及发展趋势

  频率时间测量仪一直是比较热门的创新作品,一方面,频率时间测量仪曾作为2013年全国电子设计大赛赛题,并且2015年的全国电子设计大赛中参赛选手凭借频率时间测量仪获得了一等奖,足见全国电子设计大赛对频率时间测量仪的重视。

  另一方面,全国大学生电子设计竞赛是教育部和信息化部共同发起的大学生学科竞赛之一,是面向大学生的群众性科技活动。目的是推动高校促进电子信息类及通信电子类的科技研发能力及通信实验室建设工作。足见其频率时间测量仪未来发展的可能性。

  目前,在物流高速发达的时代,用于电子信息等领域的时频系统技术要求高且发展需求巨大。为保证军事武器精准打击等发展,各种以计算机技术和通信技术为基础的设备应用离不开时频系统的支持。这些设备的正常运用离不开统一的全网时间基准,所以频率时间测量仪在军事及民用等多个测量领域都具有强大的市场潜力。

  1.3本章小结

  通过对系统背景及现状进行充分的分析和研究,得出了相应的总体规划和相应的方案设计,为实现系统的基本要求打下理论基础提供了强有力的支撑。了解到目前自身环境和能力的要求,对设计进行可行性分析,并对设计进行技术规划。

  第二章系统框架及构成

  2.1系统概述

  本课题以AT89C51单片机为核心,系统利用NE555时基电路构成的施密特触发器对待测信号进行整形得到适合单片机输入的方波信号,系统进而进行功能选择:频率测量或脉宽测量。利用计数器0中断和定时器1中断实现频率测量,利用定时器1中断和外部中断0实现脉宽测量。为了提高测量的精度,系统对测量后的信号进行量程选择和误差自检算法优化测量值,最后利用1602液晶显示模块进行读数显示。

  在设计过程中,一定要考虑频率时间测量仪测量的精度和反应时间。举个例子来说,要求频率的测量结果必须是三位有效数字,当待测信号的频率是1Hz时,我们需要让计数闸门的宽度超过1000s。

  2.2系统结构

  利用单片机实现对某一信号频率或时间的测量, 侯先需要对输入信号利用NE555施密特触发器进行预处理,将正弦信号、三角信号等信号转换为矩形脉冲信号,即用于核心控制电路进行计数的周期性脉冲信号。本设计利用单片机的P3.4口即定时器0计数模式的脉冲输入引脚或P3.2口即外部中断0输入端口进行脉冲输入,从而利用定时/计数器中断和外部中断测得频率值或脉宽值。通过单片机对处理后的脉冲信号进行量程选择及误差自检算法优化,最终由I/O口驱动1602液晶模块,显示出被测信号频率、脉宽等参数。系统框图如图2-1所示。

  图2-1系统结构框图

  (1)预处理电路

  预处理电路主要作用是利用NE555构成的施密特触发器,利用1/3VCC和2/3VCC构成的阈值电压对被测信号进行整形,从而整形成方便单片机进行计数的矩形脉冲信号。

  (2)单片机电路

  AT89C51单片机具有8位CPU,具有4K的ROM以及256B RAM的微处理器,并且具有2个16位的定时器/计数器,1个可编程全双工串行口和4组I/O口,能基本满足频率时间测量仪所需功能。AT89C51单片机主要起频率测量值计算及脉宽测量值计算等作用,为系统提供测量结果。

  (3)频率测量

  频率测量的原理是通过计数器0中断的脉冲计数值和定时器1中断构成的闸门时间为时间基准两者计算方波信号的频率。频率测量利用单片机的两个定时器:定时器0的计数器中断对外部脉冲进行计数,定时器1的定时器中断构成闸门时间,利用两者即可计算得出被测信号的频率值。进而进行量程选择与误差自检算法优化提高准确度。即可完成频率测量。

  (4)周期测量

  周期测量的原理与频率测量类似,但周期测量的计算方式与频率测量的核心电路程序有异。利用周期与频率的关系可简单得出周期测量值。

  (5)脉宽测量

  脉宽测量是利用设置定时器1中断的门控模式来控制定时时间,利用外部中断0控制脉冲输入,从而测得整形信号外部脉冲的脉冲宽度。利用定时器1的定时功能定时脉宽时间,当使能定时器1且外部脉冲为高脉冲时,定时器1才开始定时,当外部脉冲产生下降沿时触发外部中断0服务程序,外部中断0服务程序记录定时器1的定时值,即可得出外部脉冲的脉冲宽度。进而进行量程选择与误差自检算法优化提高准确度。即可完成脉宽测量。

  (6)1602液晶模块显示

  1602液晶显示模块支持多种类型字符显示,使用简单便捷,成本低廉,显示清晰不易出错。

  2.3器件选型

  2.3.1单片机选型

  主要核心微控制器芯片的选择至关重要,是系统的大脑,负责接收处理外部的信息流,作为数据的存储和控制外部接口的功能。故在选择微处理器要充分考虑每一个性能特点进行充分的分析。

  根据系统性能要求,比较系统所需的内存、运行频率、稳定性以及系统处理数据的速率等方面的讨论,选取一种可以适合系统稳定工作核心的控制器。根据设计要求对比了相关芯片,本设计选取AT89C51芯片,AT89C51芯片的内部结构如下:AT89C51单片机具有8位CPU,具有4K的ROM以及256B RAM的微处理器,并且具有2个16位的定时器/计数器,1个可编程全双工串行口和4组I/O口,能基本满足频率时间测量仪所需功能。

  2.3.2整形器件选型

  在信号整形器件选取过程中,曾考虑过利用CPLD电路整形,NE555时基电路等电路进行整形。

  CPLD电路具有使用简便,运行迅速的优点,但在多种测量功能选择时调整不方便,且设计结构复杂,难以设计功能选择的电路,基于本系统设计为具有频率及时间测量功能的测量仪,故舍弃使用CPLD电路进行信号整形。

  NE555时基电路测量功能选择方便,可用作施密特触发器进行信号整形在电子领域中使用,且整形的脉冲信号陡峭,适合本系统设计使用。且NE555能作为多谐振荡器产生振荡信号用以验证系统设计的NE555构成的整形电路的整形效果。所以本系统设计采用NE555作为整形器件。

  2.4本章小结

  本章主要介绍了基于单片机的频率时间测量仪系统设计的系统概述及器件选型。详细描述了本设计的作用、结构,系统设计采用的元器件的考虑。

  第三章频率时间测量仪硬件设计

  3.1系统接口及整体硬件规划

  对系统各个模块分析选材前,要对每一个模块之间的信号传输和数据传递进行提前的分析。要充分考虑每个模块的主要特性进行选材,其次要考虑每一模块的接口是否兼容,是否需要进行电平的转换。故在对每一模块进行分析前要进行宏观的分析,结合实际情况选择合适的通信接口及通信协议。系统整体硬件规划图如下图3-1所示。

  图3-1系统整体硬件规划图

  3.2核心控制器电路设计

  核心微控制器芯片的选择至关重要,是系统的大脑,负责接收处理外部的信息流,作为数据的储存和控制外部接口的功能。故在选择微处理器要充分考虑每一个性能特点进行充分的分析。

  根据系统性能要求,比较系统所需的内存、运行频率、稳定性以及系统处理数据的速率等方面的讨论,选取一种适合稳定工作的核心微控制器。根据设计要求和对比了相关芯片,本设计选取AT89C51芯片,该芯片是8位CPU系统,具有4K ROM和256B RAM,2个16位定时器/计数器,64KB总线扩展控制器,1个可编程1全双工串行口。能基本满足频率时间测量仪所需功能。核心控制器最小系统电路图如图3-2所示。

  图3-2核心控制器最小系统电路图

  频率测量过程中需要两个定时器用以测量频率,一个对外部脉冲进行计数,一个产生时频信号用以定时,所以AT89C51单片机具有的两个定时/计数器能满足频率测量的要求。

  脉宽测量过程中需要一个定时器进行定时计数,一个外部中断对外部脉冲进行捕获,进而测量外部脉冲的脉冲宽度。所以AT89C51单片机具有的两个定时器和两个外部中断能解决脉宽测量的硬件需要。

  鉴于以上考虑,AT89C51单片机能在满足需要的情况下不造成资源浪费,所以采用AT89C51单片机作为核心控制器。

  3.3整形电路设计

  整形放大电路作为系统的核心编辑电路,承担着频率时间测量仪对待测信号的整形功能,为核心控制系统的脉冲计数及频率时间测量提供数据支撑和依据,为系统测量结果的准确性及精确性提供保障。整形电路主要利用NE555元器件构成施密特触发器,进行信号的整形。NE555引脚图如图3-3所示。

  图3-3 NE555引脚图

  NE555可组成整形电路,对待测信号整形成矩形脉冲信号,为核心控制系统的脉冲计数及频率时间测量提供数据支撑和依据。多谐振荡电路及整形电路电路图如图3-4所示。

  图3-4多谐振荡电路及整形放大电路电路图

  整形电路由NE555组成,前一个NE555用于产生多谐振荡信号,后一个NE555用于对待测信号整形,系统设计中前一个NE555用于验证后一个NE555的整形效果,为系统验证提供依据。

  3.4 1602液晶显示模块设计

  LCD1602液晶显示模块是目前市场上应用成熟的字符型液晶显示模块,是目前使用广泛的32位字符模块,能正确显示系统设计所需内容。如图,1602液晶显示模块使用时需要上拉电阻以保护电路。1602液晶显示模块在多种环境下都能保持稳定显示。1602液晶显示模块电路图如图3-5所示。

  图3-51602显示模块电路图

  3.5电平、电压驱动模块

  电平、电压驱动模块是利用TTL电平对单片机电路及整形电路等电路进行驱动的,TTL电平是高电平为3.5V,低电平为0.2V的驱动模块电平,TTL电平对于控制计算机的模块是很理想的,能保持单片机等电路的稳定工作不断电。所以采用TTL电平进行电平驱动。

  3.6本章小结

  本章主要介绍了基于单片机的频率时间测量仪的硬件设计,包括单片机控制系统模块,整形电路模块,1602液晶显示模块的电路图等硬件设计。

  第四章频率时间测量仪软件设计

  上一章对基于单片机的频率时间测量仪的硬件进行了分析设计处理,本章对系统中所需的软件程序、算法以及流程图进行设计。其中包括系统的整体程序流程图、核心控制电路的软件运行程序、开机自检程序、误差自检所需算法、频率测量软件流程和脉宽测量软件流程等进行分析设计。

  4.1系统整体程序流程

  通过对硬件电路的分析以及对误差自检算法进行分析之后,系统的整体框架已经完全确定,接下来就是对每一个模块进行构架,设计相应的总体软件流程图。按照编写程序的步骤,我们要提前设计好程序的流程图,根据流程图我们可以清晰的进行基于单片机的频率时间测量仪的程序代码的编写。本设计通过采用KEIL5 MDK进行程序的编译。

  本设计主要实现频率时间测量的量程选择、误差自检。通过程序流程图,我们可以清晰看到整个系统的工作过程具体程序的流程图如图4-1系统程序流程图所示。

  图4-1系统程序流程图

  4.2核心控制器程序

  4.2.1中断初始化

  频率测量的原理是通过计数器0中断的脉冲计数值和定时器1中断构成的闸门时间为时间基准两者计算方波信号的频率。利用核心控制系统的定时器中断进行定时,从而测量频率,定时器中断需要进行中断初始化及中断使能。定时器中断程序具体代码见附件。

  脉宽测量原理是利用设置定时器1中断的门控模式来控制定时时间,利用外部中断0控制脉冲输入,从而测得整形信号外部脉冲的脉冲宽度。所以需要进行定时器1中断初始化和外部中断0初始化。

  4.2.2 1602液晶模块初始化

  根据1602液晶模块的时序图及使用手册可知,1602液晶模块在使用前需要进行初始化设置,其初始化设置时需要进行清屏、初始化数据指针等功能,所以1602液晶显示模块初始化程序见附件。

  4.3开机自检程序

  频率时间测量仪等精密测量仪器存在因外部破坏等不可抗力因素而发生系统故障的可能性,这些因素会直接影响频率时间测量仪系统的正常运行。例如频率时间测量仪系统的内存发生故障,或者频率时间测量仪的频率时间基准发生故障。所以设计了系统开机自检程序,开机自检程序包括开机故障自检和开机频率校准,用于检测系统内部部件存在的故障和频率基准存在的故障。

  4.3.1开机故障自检程序结构

  开机故障自检是利用故障自检例程实现的,每个系统组成部分都有其对应的故障自检例程,如单片机、液晶显示模块等,每个故障自检例程都有对应的入口地址Ti。在运行开机故障自检程序过程中,程序会依次依照故障自检例程入口地址Ti进入每个系统部件对应的故障自检例程进行检测,系统设置故障标志,在运行故障自检例程过程发现故障时故障标志置1,否则为0。开机故障自检程序结构图如图4-2所示。

  图4-2开机故障自检程序结构图

  4.3.2开机故障自检程序工作流程

  当系统依次执行各个部件对应的自检例程进行故障检测时,当检测到系统某部件发生故障,则故障标志置1。系统停止检测,1602液晶显示模块持续显示部件对应故障代号,等待维修,技术人员维修后再次进入开机故障自检程序进行故障自检。开机故障自检程序工作流程图如图4-3所示。

  图4-3开机故障自检程序工作流程图

  4.3.3开机频率时间校准

  系统设计利用单片机的定时功能进行频率时间校准,利用定时器的定时/计数功能计算得出并储存误差因子。利用测量结果和误差因子计算校准方程,从而消除零点误差。

  4.4频率测量

  4.4.1频率测量原理

  频率是指周期性信号重复出现的次数,即单位时间内的脉冲个数:fx=N/T。频率测量利用单片机的两个定时器:计数器0的计数器中断对外部脉冲进行计数,定时器1的定时器中断构成闸门时间,利用两者即可计算得出被测信号的频率值fx。

  4.4.2频率测量工作流程

  频率测量是利用计数器0的计数中断和定时器1的定时中断实现的。当整形信号脉冲送入核心控制器时,计数器0即进入计数器中断进行外部脉冲计数。同时定时器1的定时器中断打开,实时对测量时间进行定时,当测频结束后,利用计数器0的计数值和定时器1的定时值即可得出整形信号的频率测量值,送1602液晶模块显示。频率测量工作流程图如图4-4所示。

  图4-4频率测量工作流程图

  4.5周期测量

  周期测量是指单位脉冲的时间,其原理与频率测量相似,通过计算单个脉冲经过多少个机器周期时间,从而测得信号的周期。

  4.6脉宽测量

  4.6.1脉宽测量原理

  脉宽测量是利用设置定时器1中断的门控模式来控制定时时间,利用外部中断0控制脉冲输入,从而测得整形信号外部脉冲的脉冲宽度。利用定时器1的定时功能定时测量时间,当使能定时器1且外部脉冲为高脉冲时,定时器1才开始定时,当外部脉冲产生下降沿时触发外部中断0服务程序,外部中断0服务程序记录定时器1的定时值,即可得出外部脉冲的脉冲宽度。

  4.6.2脉宽测量工作流程

  脉宽测量是通过定时器1定时和外部中断0进行脉冲捕获而得出脉宽测量值的。系统通过设置定时器1的门控模式,即当TR1置高且外部脉冲为高脉冲时才会启动定时器1定时。通过下降沿触发外部中断可实现外部中断0服务程序读出定时器1定时值。通过两者配合即可实现整形信号脉冲上升沿启动定时器1定时,下降沿启动外部中断0截取脉冲信号并提取定时值,从而实现整形信号脉冲宽度测量。脉宽测量工作流程图如图4-5所示。

  图4-5脉宽测量工作流程图

  4.7量程选择

  利用单片机定时计数器的计时运算功能用于调整量程选择,满足测量精度和系统测量时间的要求。量程选择调整范围大且调整速度高,即可在工艺条件变化时及时调整量程范围,而无需更换仪表,节省成本及节约时间。量程选择流程图如图4-6所示。

  .

  图4-6量程选择流程图

  量程选择是通过测量计数器计数溢出时加档,计数未满四位有效数字时减档而实现量程自动切换,以提高测量的准确度。

  4.8误差自检算法设计

  频率时间测量仪在测量过程中常常会出现测量误差,测量误差包括粗大误差、系统误差和随机误差。误差自检算法是目前频率时间测量领域较为成熟的一种算法,已经作为一种降低误差的方法应用于各种测量领域,因此本课题采用误差自检算法是本阶段最优的一种选择。

  4.8.1误差自检算法原理

  误差自检算法的原理是通过剔除粗大误差,降低系统误差和以统计计算减少随机误差的方式来达到降低测量误差的要求。

  4.8.2误差自检工作流程

  粗大误差是指明显偏离统计规律的误差,因为人为的测量错误而产生偏移的误差。系统误差是指测量时恒定不变的测量误差分子。随机误差是指虽然误差变化没有特定的规律,但是通过数理统计的方法可以研究随机误差其变化的规律。从而计算出标准偏差值,继而知道测量的真值估计值。误差自检工作流程图如图4-7所示。

  图4-7误差自检工作流程图

  4.8.3误差自检系统流程

  误差自检算法是用于单片机内部运行的计算算法,主要用于降低测量过程中产生的粗大误差、系统误差和随机误差。误差自检系统流程图如图4-8所示。

  图4-8误差自检系统流程图

  4.9本章小结

  本章节中我们对系统中核心控制器所需的中断及定时器等软件程序,算法及流程图进行了设计。其中包括误差自检算法的设计,误差自检算法及量程选择的运行流程设计。

  第五章系统测试

  5.1仿真测试

  为了验证频率测量时间测量仪系统设计的可行性与参数验证,故使用Proteus仿真软件进行仿真测试,进行频率时间测量验证。并通过设置波形发生器的脉冲频率时间和仿真软件中的1602液晶显示进行对比,测试系统仿真误差是否在误差范围内。

  5.1.1整形电路仿真

  利用proteus软件进行系统设计中的整形电路的仿真,分别对仿真中的信号发生器产生的正弦波及三角波进行仿真整形,整形效果利用示波器体现。整形电路仿真如图5-1所示。

  (a)正弦波整形

  (b)三角波整形

  图5-1整形电路仿真

  5.1.2频率测量仿真

  利用仿真软件Proteus软件可对频率测量功能进行仿真,从而检测频率测量功能的可行性,当开关连接信号源时,即模拟对待测信号进行频率的测量。当开关连接左侧的NE555时,此时左侧的NE555产生多谐振荡信号,系统用于验证系统右侧的NE555构成的整形电路的整形效果。频率测量仿真图如图5-2所示。

  图5-2频率测量仿真图

  5.1.3脉宽测量仿真

  脉宽测量是利用设置定时器1中断的门控模式来控制定时时间,利用外部中断0控制脉冲输入,从而测得整形信号外部脉冲的脉冲宽度。脉宽测量仿真图如图5-3所示。

  图5-3脉宽测量仿真图

  5.2系统整体验证

  通过对每个模块进行逐一的测试分析后,对整体功能进行测试验证。本次验证通过模拟实验进行频率时间的测量等进行测试与验证。

  5.2.1测试相关要求

  前期测试要保证每次测试不受外部条件干扰,对每一单一测试进行调试,控制同等条件下单一变量进行测试,通过控制变量法进行测试,此外要充分考虑外部环境的干扰以及制定相应的对策。系统调试中要求正常工作环境为温度为-20~60℃范围内,湿度之外(5-90%)RH(50℃)内:系统测试环境适应实验包括:温度测试,湿度测试,冲击测试。系统实物如图5-4所示。

  图5-4系统实物图

  5.2.2基本测试

  以频率测量为例:

  系统仿真测试一:利用PROTEUS的信号发生器产生正弦波的参数设置及系统设计中的1602液晶模块显示数值对比可模拟出频率时间测量仪的频率测量误差,对频率时间测量仪的模拟误差进行测试,正弦波模拟误差如图5-5所示。

  (a)信号发生器

  (b)1602液晶模块显示

  图5-5正弦波频率测量

  系统仿真测试二:利用PROTEUS的信号发生器产生三角波的参数设置及系统设计中的1602液晶模块显示数值对比可模拟出频率时间测量仪的频率测量误差,对频率时间测量仪的模拟误差进行测试,三角波模拟误差如图5-6所示。

  (a)信号发生器

  (b)1602液晶模块显示

  图5-6三角波频率测量

  系统实物测试:测试系统设计的NE555构成的多谐振荡器产生的脉冲信号频率测量是否准确,测试结果如图5-7本系统频率测试所示。