基于51单片机和CPLD的数字频率计的设计

发布者:数据之翼最新更新时间:2011-11-16 关键字:51单片机  CPLD  数字频率计 手机看文章 扫描二维码
随时随地手机看文章

引言

在传统的控制系统中,通常将单片机作为控制核心并辅以相应的元器件构成一个整体。但这种方法硬件连线复杂、可靠性差,且在实际应用中往往需要外加扩展芯片,这无疑会增大控制系统的体积,还会增加引入干扰的可能性。对一些体积小的控制系统,要求以尽可能小的器件体积实现尽可能复杂的控制功能,直接应用单片机及其扩展芯片就难以达到所期望的效果。

复杂可编程逻辑器件(CPLD)具有集成度高、运算速度快、开发周期短等特点,它的出现,改变了数字电路的设计方法、增强了设计的灵活性。基于此,本文提出了一种采用Altera公司的CPLD(ATF1508AS) 和Atmel公司的单片机(AT89S52)相结合的数字频率计的设计方法。该数字频率计电路简洁,软件潜力得到充分挖掘,低频段测量精度高,有效防止了干扰的侵入。独到之处体现在用软件取代了硬件。

CPLD开发环境简介

1 VHDL语言

VHDL(Very High Speed Integrated Circuit Hardware Description Language,超高速集成电路硬件描述语言)是由美国国防部开发的一种快速设计电路的工具,目前已经成为IEEE的一种工业标准硬件描述语言。相比传统的电路系统设计方法,VHDL具有多层次描述系统硬件功能的能力,支持自顶向下和基于库的设计的特点,因此设计者可以不必了解硬件结构。从系统设计入手,在顶层进行系统方框图的划分和结构设计,在方框图一级用VHDL对电路的行为进行描述,并进行仿真和纠错,然后在系统一级进行验证,最后再用逻辑综合优化工具生成具体的门级逻辑电路的网表,下载到具体的CPLD器件中去,从而实现可编程的专用集成电路(ASIC)的设计。

2 Max+PlusⅡ开发工具

Max+PlusⅡ开发工具是美国Altera公司自行设计的一种CAE软件工具。它具有全面的逻辑设计能力,设计者可以自由组合文本、图形和波形输入法,建立起层次化的单器件或多器件设计。利用该工具配备的编辑、编译、仿真、综合、芯片编程等功能,将设计的电路图或电路描述程序变成基本的逻辑单元写入到可编程芯片中(如CPLD、FPGA),做成ASIC芯片。

它支持FLEX、MAX及Classic等系列CPLD器件,设计者无须精通器件内部的复杂结构 ,只需用自己熟悉的设计输入工具,如高级行为语言、原理图或波形图进行设计输入,它便将这些设计转换成目标结构所要求的格式,从而简化了设计过程。而且 Max+PlusⅡ提供了丰富的逻辑功能库供设计者使用。设计者利用以上这些库及自己添加的宏功能模块,可大大减轻设计的工作量。使用Max+PlusⅡ 设计CPLD器件的流程如图1所示。

  基于单片机和CPLD的数字频率计的设计

  图1 Max+PlusⅡ设计CPLD器件的流程图[page]

  等精度测频原理

  本系统采用等精度测频的原理来测量频率,其原理如图2所示。

  基于单片机和CPLD的数字频率计的设计

  图2 等精度测频原理图

  图2中的门控信号是可预置的宽度为Tpr的一个脉冲。CNT1和CNT2是两个可控计数器。标准频率信号从CNT1的时钟输入端FS输入,其频率为Fs;被测信号经整形后从CNT2的时钟输入端FIN输入,设其实际频率为Fxe,测量频率为Fx。

   当门控信号为高电平时,被测信号的上沿通过D触发器的Q端同时启动计数器CNT1和CNT2。对被测信号Fx和标准频率信号Fs同时计数。当门控信号为 低电平时,随后而至的被测信号的上沿将使这两个计数器同时关闭。设在一次门控时间Tpr中对被测信号计数值为Nx,对标准频率信号的计数值为Ns,则:

  Fx/Nx=Fs/Ns(标准频率和被测频率的门宽时间Tpr完全相同)就可以得到被测信号的频率值为:

  Fx=(Fs/Ns)×Nx

系统硬件电路设计

  1 系统总体设计

  本系统的硬件电路包括键盘控制模块、显示模块、输入信号整形模块以及单片机主控和CPLD模块。键盘控制模块设置5个功能键和3个时间选择键,键值的读入采用一片74LS165来完成,显示模块用8只74LS164完成LED的串行显示。

   系统由一片CPLD完成各种测试功能,对标准频率和被测信号进行计数。单片机对整个测试系统进行控制,包括对键盘信号的读入与处理;对CPLD测量过程 的控制、测量结果数据的处理;最后将测量结果送LED显示输出。被测信号整形电路主要对被测信号进行限幅、放大、再经施密特触发器整形后送入CPLD。用 50MHz的有源晶振作为CPLD的测试标准频率。单片机由外接12MHz标准晶振提供时钟电路。系统组成原理如图3所示。

  基于单片机和CPLD的数字频率计的设计

  图3 系统原理框图

  2 CPLD逻辑模块设计

  根据等精度测频原理,利用VHDL实现的测频顶层电路模块逻辑结构如图4所示。

  基于单片机和CPLD的数字频率计的设计

  图4 系统顶层模块图

  该模块由4个子模块构成。其中CONTROL1为测频或测周期控制模块;CONTROL2为测脉宽和占空比控制模块;CHOICE为自校与测量选择模块;COUNT为基准频率和被测频率计数器模块。

[page]

  被测信号脉冲经CHOICE选择后,从控制模块CONTROL1的FX1端输入,基准频率信号从FS端输入,CLR是初始化信号。在进行频率或周期测量时,完成如下步骤:

  (1)在CLR端加正脉冲信号完成测试电路状态的初始化。

 (2)由预置门控信号将STROBE置高电平,预置门开始定时,此时由被测信号的上沿打开计数器COUNT,同时对基准频率信号和被测信号进行计数。

  (3)顶置门定时结束信号把STROBE置为低电平(由单片机来完成),在被测信号的下一个脉冲的上沿到来时,COUNT停止计数。

  (4)计数结束后,ED1端输出低电平来指示测量计数结束,单片机得到此信号后,即可利用SS0,SS1进行选择,四次分别读回COUNT中基准频率信号和被测信号计数值,并根据上述测量公式进行运算,计算出被测信号的频率或周期值。

  系统软件设计

   本系统的单片机主控及其外围电路模块用Keil C语言编写,软件模块对应于硬件电路的每一个部分,还包括部分数据计算和转换模块。CPLD模块用VHDL语言编写,并在Max+PlusⅡ平台上,完成 CPLD的软件设计、编译、调试、仿真和下载。系统初始化后,主程序不断扫描键盘子程序,当其键按下时,程序跳转到相应的子程序执行其功能,然后返回继续 执行键盘扫描主程序。其主程序流程图如图5所示。

  基于单片机和CPLD的数字频率计的设计

  图5 系统主程序流程

  试验测试的结果如表1所示。

  基于单片机和CPLD的数字频率计的设计

  结论

  本文将智能控制灵活、逻辑运算能力强的单片机和集成度高、运算速度快的CPLD相结合,突破了传统电子系统设计的瓶颈,使设计的系统具有结构紧凑、体积小,可靠性高,测频范围宽、精度高等优点。它可作为独立的仪表使用,也可用做其他仪器仪表的组成部分。

 

关键字:51单片机  CPLD  数字频率计 引用地址:基于51单片机和CPLD的数字频率计的设计

上一篇:基于51单片机控制的多路呼叫系统设计
下一篇:利用单片机实现对激光器电流的精度控制

推荐阅读最新更新时间:2024-03-16 12:46

51单片机keilC中头文件absacc.h作用
当51单片机通过8255和锁存器74LS273来扩展IO时,经常用到头文件absacc.h。 在程序中,用 #include absacc.h 即可使用其中定义的宏来访问绝对地址,包括:CBYTE、XBYTE、PWORD、DBYTE、CWORD、XWORD、PBYTE、DWORD 例如: rval=CBYTE ;指向程序存贮器的0002h地址 rval=XWORD ;指向外RAM的0004h地址 KEIL 中ABSACC.H 定义如下: #ifndef __ABSACC_H__ #define __ABSACC_H__ #define CBYTE ((unsigned char volatile code *) 0) #de
[单片机]
基于ARM处理器和CPLD的煤矸石分选系统
引言 随着嵌入式技术的不断发展,高性能、低功耗、低价格的32位RISC芯片的ARM微控制器呈现出强劲的发展趋势,嵌入式系统和现场总线技术结合,结合二者的优点,为传统的选煤技术提供了新的改造方案。将嵌入式技术和现场总线技术相互融合,设计了一种新的煤块和矸石在线识别与自动分选系统。 煤矸石在线识别与自动分选系统 煤块和矸石在线识别与自动分选系统的原理框图如图1所示。根据选煤工艺要求,本系统主要由下面三大部分构成: 图1煤矸石在线自动分选系统框图 (1)检测部分:由进料斗、输送带、CCD摄像头、图像数据采集电路等组成。开采出来的原煤常含有矸石,必须将矸石从传送带上挑选出来。CCD摄像头将煤与矸石图像送图像数据采
[单片机]
基于ARM处理器和<font color='red'>CPLD</font>的煤矸石分选系统
6-基于51单片机的电机转速控制系统
具体实现功能 具体功能: 1、采用霍尔传感器非接触式测电机转速; 2、数码管显示当前的转速(单位为转/分(RPM))和设定的转速; 3、电机转速可以通过按键调整,也可以开始暂停,正转和反转; 4、按键可实现加速、减速、正转、反转、开始/暂停等功能。 单片机介绍 51单片是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX8
[单片机]
6-基于<font color='red'>51单片机</font>的电机转速控制系统
51单片机模拟串口的多种方法讲解
随着单片机的使用日益频繁,用其作前置机进行采集和通信也常见于各种应用,一般是利用前置 机采集各种终端数据后进行处理、存储,再主动或被动上报给管理站。这种情况下下,采集会需 要一个串口,上报又需要另一个串口,这就要求单片机具有双串口的功能,但我们知道一般的51 系列只提供一个串口,那么另一个串口只能靠程序模拟。 本文所说的模拟串口, 就是利用51的两个输入输出引脚如P1.0和P1.1,置1或0分别代表高低电 平,也就是串口通信中所说的位,如起始位用低电平,则将其置0,停止位为高电平,则将其置 1,各种数据位和校验位则根据情况置1或置0。至于串口通信的波特率,说到底只是每位电平持续 的时间,波特率越高,持续
[单片机]
51单片机—ADC0808—05—①
早晚也是闲着没事情做~~干脆就发点简单的东西,毕竟所谓的复杂就是一堆简单的堆出来的~~~究其根本,没有什么复杂的~ 毕竟ADC这个东西用的比较多,也很成熟,做出来的东西也是挺多的,所以这个东东就用两三个实验来叙述吧~ 先说一下ADC0808 这款A/D转换器的介绍: 1、ADC0808的简介 A/D转换器是一种能把输入模拟电压或者电流信息变成与其成正比的数字量信息的电路芯片。A/D转换器用于实现模拟量到数字量的转换。 ADC0808是典型的8通道模拟输入8位并行数字输出的逐次逼近式A/D转换器。该转换器采用COMS工艺,可以实现8路模拟信号的分时采集。片内有8路模拟选通开关,以及相应的通道地址锁存用译码电路。 1)ADC
[单片机]
<font color='red'>51单片机</font>—ADC0808—05—①
基于51单片机的万年历(包含闹钟,秒表)实现
开头唠一唠: 趁着寒假的时间,也趁着课程设计正好是做一个万年历。就打算好好从头到尾来一遍。涨涨知识。首先说的是本人也是小白一颗,大神们能帮忙指正错误的话,不胜感激。写博客只是为了总结经验,要是帮到一部分人就更好了。我想是从硬件到软件都介绍的详细一点,还想说一说自己遇到的一些问题,可能要写的长一点。代码的话我会在后面上传。好,闲话不多说。进入正题。 概述: 首先说一下我用到的东西,硬件方面(电路都是自己拿万能板焊的):一片51单片机,一块12864液晶,一片ds1302时钟芯片,四个按键。还有些电容、电阻、晶振什么的,下面讲到的时候再说吧。主要的就这么多吧。再简单说一下按键的功能吧,假设按键分别是k1,k2,k3,k4。
[单片机]
基于<font color='red'>51单片机</font>的万年历(包含闹钟,秒表)实现
I2C器件接口IP核的CPLD设计
I2C器件接口IP核的CPLD设计 根据单片机I2C串行扩展的特点,在EDA软件MaxplusII的环境下,利用AHDL语言,建立IP核。此设计利用状态机实现,在给出设计的同时详细说明IP核的建立过程,并下载到芯片通过硬件试验验证。 关键词:  可编程逻辑器件 I2C串行扩展 IP核   由于CPLD数字设计结构化的趋势,将出现针对CPLD不同层次的IP(Intellectual Property)核。各个IP核可重复利用,可大大提高设计能力和效率。国外各大公司都推出了专门的IP核,我国也迫切需要发展自己的IP核。本文针对I2C的主方式串行扩展通信的特点,详细给出设计过程和结果。 1 IP核简介   IP核是指:将一些在
[模拟电子]
I2C器件接口IP核的<font color='red'>CPLD</font>设计
教你构造一个51单片机的实时操作系统
  目前,大多数的产品开发是在基于一些小容量的单片机上进行的。51系列单片机,是我国目前使用最多的单片机系列之一,有非常广大的应用环境与前景,多年来的资源积累,使51系列单片机仍是许多开发者的首选。针对这种情况,近几年涌现出许多基于51内核的扩展芯片,功能越来越齐全,速度越来越快,也从一个侧面说明了51系列单片机在国内的生命力。   多年来我们一直想找一个合适的实时操作系统,作为自己的开发基础。根据开发需求,整合一些常用的嵌入式构件,以节约开发时间,尽最大可能地减少开发工作量;另外,要求这个实时操作系统能非常容易地嵌入到小容量的芯片中。毕竟,大系统是少数的,而小应用是多数而广泛的。显而易见,μC/OS—II是不太适合于以上要求的
[单片机]
教你构造一个<font color='red'>51单片机</font>的实时操作系统
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved