作业笔记及时所用软件设计_第1页
作业笔记及时所用软件设计_第2页
作业笔记及时所用软件设计_第3页
作业笔记及时所用软件设计_第4页
作业笔记及时所用软件设计_第5页
已阅读5页,还剩6页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

基于FPGA的可编程定时器设计

引言

在日常生活中,定时器随处可见,如、漏斗、钟表,家用电器,红绿灯等。定时器也用于军方,如定时炸弹,定时雷管等。

定时器的发展

人类最早使用的定时器是沙漏或水漏。1876年,英国外科医生索加取得一项定时装置的专利,用来控制煤气街灯的开关。1918年使用了电子时钟。

要实现定时或延时控制,有三种主要方法,软件定时,不可编程的硬件定时,可编程的硬件定时,其中可编程的硬件定时器电路的的定时值及其范围可以用软件来确定和改变。

intel8253是NMOS工艺制成的可编程计数器/定时器,有几种芯片型号,外形引脚及功能都是兼容的,只是工作的最高计数速率有所差异,例如8253(2.6MHz),8253-5(5MHz)。

158253芯片的内部结构525

由上图可以看出,8253内部有三个计数器,分别称为计数器0、计数器1和计数器2,他们的机构完全相同。每个计数器的输入和输出都决定于设置在控制寄存器中的控制字,互相之间工作完全独立。每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。每个计数器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。

数据总线缓冲器是一个三态、双向8位缓冲器,用于将8253与系统数据D0~D7相连。CPU通过数据总线缓冲器向

8253写入数据和命令,或从数据总线缓冲器读取数据和状态信息。数据总线缓冲器有三个基本功能。1、通过编程向8253写入工作方式命令字。2、向计数寄存器装入计数值。3、读出计数值

读、写逻辑电路是8253内部操作的控制部分。按CPU发来的读、写信号和地址信号,选择读出或写入寄存器并且确定数据传输的方向,既是读出有事写入。

控制字寄存器

在8253的初始化编程时,由CPU写入控制字以决定通道的工作方式。此寄存器只能写入而不能读出。54计数通道

每个计数通道内含有1个16位的初值寄存器,减1计数器和1个16位的(输出)锁存器。8253内包含3个功能完全相同的通道,每个通道内部设有一个16位计数器,可进行二进制或十进制(BCD码)计数。采用二进制计数时,写入的初值范围为0000H~0FFFFH,最大计数值是0000H,代表65536。采用BCD码计数时,写入的处置范围为0000~9999,最大计数值为0000,道标10000。与计数器相对应,每个通道内设有一个16位计数值锁存器。必要时可用来锁存计数值。8253计数器的值先建议再判断是否为0,为0中断,所以最大初始值为0,这样减1以后,不为0,所以为最大,取决于CF的标志位。55计数器的6中工作方式

方式0—计数结束时中断

方式工作特点:1.控制字写入控制寄存器后,输出端OUT立即输入低电平。写完计数初值后,弱GATE为高电平,在CLK的下降沿开始计数,输出OUT仍为低电平。当计数到0时,OUT立即输出高电平。2.门控信号GATE为高电平时,计数器工作。为低电平时,计数器保持不变,等GATE为高时继续计数。3.在计数器工作期间,如果重新写入新的计数值,计数器按新写入的计数值重新工作。

方式1—可重复出发的单脉冲触发器

工作特点:

控制字写入后。OUT端输出高电平。GATE出现上升沿后在CLK下降沿开始计数。

方式2—频率发生器(能自动装入计数初值)

工作特点:GATE保持高电平,输出(N-1)*T的高电平,之后输出一个低电平。

56

方式3—方波发生器

工作特点:

如果N为偶数,输出占空比为百分之五十,周期N*T的方波。N为奇数时,输出的方波中高电平为(N+1)/2*T,低电平为(N-1)2*T。方式4—软件触发的选通信号发生器工作特点:

门控信号GATE为高电平时,计数器工作。为低电平时,计数器停止工作。

方式5—硬件触发的选通信号发生器

工作特点:

由GATE上升沿触发计数器。写入计数初值后,并不立即开始计数,而要有门控信号的上升沿开始计数。57方式4的VHDL编程

现已方式4的VHDL编程为例介绍CPU写入控制字后,输出out立即复位,方式4中复位后out为高电平。CPU写入计数初值的下一个CLK脉冲,计数初值被送到计数执行部件并开始减1计数,又经过N个时钟周期后才输出一个负脉冲。当GATE=l时,允许计数,GATE=0时,禁止计数。这样就实现了方式4基本的软件触发功能。

ifclk1eventandclk1=‘0’then–始终脉冲下降沿到来ifgate=‘1’then–门控信号为1时,允许计数ifcel>0000000000000001thencel<=cel-1;--减一计数,cel为技术执行部件elsifcel=0000000000000001

58VHDL编程方式4thenout<=0;--初值减到1时输出低电平cel<=cel-1;--继续减1elsecel=0000000000000000thenout<=1;--初值减到0是输出为高电平endif;elseifgate1=‘0’then—门控位为0,禁止计数null;endif;endif;

上面的程序是大概描述了方式4的过程。其它方式可在方式4的基础上来完成59验证方法1.通过quartus2仿真,观察其波形,并分析结果是否正确。2.通过ACEX1k系列FPGA芯片予以验证,把程序下载到FPGA芯片中,借助示波器等观察其波形是否正确。

温馨提示

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

评论

0/150

提交评论