FPGA的高速计数器设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘 要 为了提高工业控制器中高速计数器的计数频率和扩展计数模式,介绍一种利用 ()* +,,通过 -./0语言设计的高速计数器,有!&种工作模式,计数频率可达!’’1.2以上。同时 介绍了高速计数器的设计原理,提供了高速计数器与微处理器的接口实例。
关键词 高速计数器 (.34) 现场可编程逻辑阵列 (()+,) -./0语言
表# 计数器的工作模式
模式 +*
+#
+$
+! 控制码%.
* %&’%(
****
# %&’%(
B989A
***#
$ %&’%(
B989A
8A)BA **#*
! %&’%( /+B9%A+’4
**##
= %&’%( /+B9%A+’4 B989A
*#**
Biblioteka Baidu
: %&’%( /+B9%A+’4 B989A
8A)BA *#*#
1 >3%&’%( /’.4%&’%( 5 >3%&’%( /’.4%&’%( B989A ? >3%&’%( /’.4%&’%( B989A ; 6%&’%( 7%&’%(
8A)BA
*##* *### #*** #**#
#* 6%&’%( 7%&’%(
B989A
#*#*
## 6%&’%( 7%&’%(
% 引言
高速计数器 .34 (.5673899:4;<=>9?)用来 累计比)04 扫描频率高得多的脉冲输入,利用其 产生的中断事件完成预定的操作,在现代自动控制 领域中 有 着 重 要 的 应 用 价 值。 本 文 介 绍 一 种 利 用 ()+,设计的 !$ 位 高 速 计 数 器,有 !& 种 工 作 模 式,其计数频率可达!’’1.2以上,在工业控制器 中具有较大的应用价值。考虑到计数器的多工作模 式,在 -./0 语言程序设计中,采用层次化设计 的方式。
解决了多中断源与有限的 >?@ 中外部中断输入端 之间的矛盾。
设计中用一个单脉冲电路使其变短并使中断信号为
低电平。其时序如图5所示。
图5 溢出中断时序图
在高速计数器的工作过程中,有四种中断可能 发生: 计 数 器 方 向 改 变、 计 数 器 溢 出、 计 数 器 复 位、计数到达预定值。当某种中断发生时,标志位 置中断寄存器9/:&的相应位为%,同时,外部中断 标志端9/:<$,引起 >?@ 产生中断,通过数据总 线读取9/:&的值,>?@ 就能判断引起中断的中断 源,执行相应的程序,完成某项预定的操作。
高速计数器的第三层设计,主要完成图 ) 中 4$模块%6位计数器的设计,直接调用 >#8A+’*B CC中’+D (E9FG#GH4#G#DI:IG9JI, >-,*’IB)库中的 元件’+D &-*/:IG。在各控制信号的作用下,实现 对计数脉冲的加减计数、计数初值装载、计数器复
位、产生计数溢出信号等。其端口各信号的意义分
器5=>H的 /M位置!,同时外部中断标志位5=>为 ’,产生外部中断请求;5’、5!、5"、5M为C个计数 脉冲输入端;高速计数模块为整个设计的核心。
& 高速计数器的顶层设计
高速计数器的设计中主要考虑了以下几方面的
问题:!双方向计数,即加法计数和减法计数。" 复位功能,内部控制或外部控制。#启动功能,内 部控制或外部控制。$初值装载,在内部启动信号 控制下同 步 装 入 初 值。 % 计 数 位 数,!$ 位。 & 工 作频率 大 于 !’’1.2。 ’ 时 钟 功 能, 单 时 钟、 加 时 钟和减时钟、相位差 @’A的 !B 和 CB 方式 ,D 时 钟。(中断信号,溢出中断、计数转向中断和外部 复位中断。)接口方式,E位数据总线等。其顶层 设计的结构框图如图!所示。在图!中,F4G 控 制器接口电路,主要完成与 F4G 的接口控制,其 内部的控制寄存器HI:各位实现对 .34 工作模式 的控制,计 数 初 值 寄 存 器 H;=J’、H;=J! 用 于 寄 存 !$位计数初 值, 计 数 值 寄 存 器 H;<’、H;<! 主 要 用 于存放 当 前 的 计 数 值, 预 置 计 数 值 寄 存 器 H;KJ’、 H;KJ!用于存放预置计数值,当预置值等于计数值 时,预置值比较器中断信号H;5=>L’,使中断寄存
! 高速计数器第三层设计
图3 计数器与 >?@ 的接口
& 结束语
利用 LMNE语言设计的高速计数器,在 >"V A4E@WCC中 编 译、综 合 后 下 载 到 "’:IG#公 司 的 O4P" Q4O%$R%$ 中 占 用 了 6$X 的 逻 辑 阵 列 块 (E"!)。在设计中,所有的寄存器都为0位,目的 是为了与0位的 >?@ 通信。在 O4P"A>?@ 构 成的工业控制器中,还可以利用O4P" 丰富的C/Y 口作为控制器的输入输出控制口,提高了工业控制 器的集成度。
O4P"Q4O%$R%$中,通过三总线方式由 >?@ 实 现对计数器工作模式、计数初值的设置和读出当前
的计数值等。微处理器 "SDIT#%)0与高速计数器 (O4P"Q4O%$R%$)的接口如图3所示,高速计数 器的计数中断端9/:与 "SDIT#%)0的外部中断输入 端CUS$ (4N$)相连。高速计数器的设计中采用 中断源寄存器与中断标志断相接合的方式,巧妙地
正交=<模式为7相时钟低电平时,6 相时钟 正跳为加计数,7相时钟高电平时,6 相时钟负跳 为加计数;7相时钟高电平时,6 相时钟正跳为减
— !"! —
《电气应用》!""#年第!$卷第%期
基于 O4P" 的高速计数器设计
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
计数,! 相时钟低电平时," 相时钟负 跳 为 减 计 数。同 样,由 #$、#% 产 生 &’() 和 *+,-./) 的 信 号。要求 "、!时钟的周期不小于0倍工作时钟的 周期。
12)23 45模块的设计原理 控制模块 45,为对计数器操作和启动计数提
供使能信号。当计数器启动时,自动将装载值寄存
— #"! —
图! 高速计数器的顶层设计图
’ 高速计数器的第二层设计
在高速 计 数 器 的 第 二 层 设 计 中, 主 要 完 成 对 !$位计数 器 工 作 模 式 的 控 制, 其 设 计 结 构 框 图 如 图"所示。它主要由!$位计数器模块)’和各控制 模块 )!、)"、)M、)C、)&、)$等组成。
器中的预装值装入计数器,需要在启动信号&+/上 跳时,产生一单脉冲的#’-#,,以驱动装载。 12)26 43模块的设计原理
控制模板 43,为计数方向改变中断产生模块, 根据&’(和78%判断当前的计数方向和方向的改变, 当计数方向变化时,产生中断信号789/:。 12)2; 46模块的设计原理
控制模板 46,为计数器满溢出中断信号产生 模块,在计数器工作时,当计数满&-*:<%时,产 生中断信 号 -=9/:, 由 于 最 后 一 级 输 出 的 进 位 脉 冲 很宽,故低电平中断信号的持续时间会很长,因此
《电气应用》!""#年第!$卷第%期
·工业控制 ·
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
基于 !"#$ 的高速计数器设计
何永泰! 肖丽仙"
(!#楚雄师范学院物理与电子科学系 $%&’’’ "#楚雄应用技术学院 $%&’’’)
!"$"$ D#模块的设计原理 计数器工作在模式*:时,D#模块为计数器提
供计数脉冲。计数信号由+* ()*)输入,当)*有 上升沿产生时,D#产生一个计数脉冲%&(*。 !"$"! D$模块的设计原理
计数器工作在1$?计数模式时,D$模块根据 外部输入计数信号+* ()*)、+# ()#),提供计数脉 冲信号%&(#和计数方向控制信号 >3/’.4#。当)* 产生上沿时,>3/’.4# 为 #,计数器设为加计数, 然后输出一 个 加 计 数 时 钟 脉 冲 %&(#; 当 )# 产 生 上 沿时,>3/’.4#为*,计数器设为减计数,然后输 出一个减计数时钟脉冲%&(#。 !"$"= D!模块的设计原理
控制模 块 D! 根 据 外 部 输 入 计 数 脉 冲 信 号+* ()*)、+# ()#),为计数器工作在;$##计数模式 提供计数脉冲和计数方向控制信号。在计数模式为
;$##时,)*为 6 相时钟、)#为 7相时钟。6 相 时钟与 7相时钟相差;*E。在 6、7相计数模式选 择位89的控制下,实现正交#<模式和正交=<模 式的计数。其时序图如图!所示。
B989A
8A)BA #*##
其 中+*、+#、+$、+! 是 外 部 输 入 计 数 信 号;;、 #*、##模式在 6、7 相计数模式选择位89的控制
图! 6、7相计数模式的时序图
正交#<模式为7相时钟高电平时,6 相时钟 的跳变无效,7相时钟低电平时,6 相时钟正跳为 加计 数, 负 跳 为 减 计 数。 因 此, 由 )*、)# 产 生 %&($和>3/’.4$的信号。要求 6、7时钟的周期不 小于=倍工作时钟的周期。
!"#"$ 计数器工作模式 在状态控制字%./低=位码 0!0$0#0*的控
制下,计数 器 有 #$ 种 工 作 模 式。 工 作 模 式 如 表 # 所示。
下,又分#<模式和=<模式两种,因此实际共有 #:种工作模式。 !"$ 各模块的设计原理 !"$"# D*模块的设计原理
D*模块为#1位计数器,在相应控制信号的作 用下,实现#1位计数功能。其详细说明见高速计 数器的第三层设计。
— #"! —
参考文献
% 赵俊超等编2集成电路设计 LMNE教程2北京:希望电 子出版社,)$$)
) 徐志军,徐光辉编著2?4EN/O4P" 的开发与应用2北
京:电子工业出版社,)$$) (下转第%11页)
直线电动机在机床伺服驱动应用中的若干问题与展望
《电气应用》!""#年第!$卷第%期
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
别为:*+,-./ 计 数 方 向 控 制 位;&’-&( 计 数 时 钟; &’( I/计数启动控制信号;#&’G复位信号;&-/7%6 位计数 初 值 数 据;#’-#, 装 载 信 号;&-*:计 数 进 位 输出端;K为%6位计数数据输出端。
" 高速计数器与微处理器 #$%的接口
利用 LMNE 语言设计的高速计数器,要下载 到可编程芯片中才能实现。在设计中,将其下载到
图" 高速计数器的第二层设计图
基于 FDG6 的高速计数器设计
《电气应用》!""#年第!$卷第%期
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!"# 各端口特性及计数模式 !"#"# 端口特性
在图$中,各端口信号的特性如下:!计数器 的时钟信 号 %&’%(, 上 升 沿 有 效。 " 计 数 输 入 控 制 信号 )*、)#、)$、)!,对 应 计 数 器 的 输 入 端+*、 +#、+$、+!。# 计 数 方 向 控 制 信 号,-, 对 应 于 状 态 控制寄存器%./的 01位,为计数器工作在*$$ 模式时的方 向 位,,-2# 加 法 计 数,,-2* 减 法 计 数。%时钟使能信号%34,对应于状态控制寄存器 %./的 05位,%342#,时钟有效,%342*,时钟 无效,用于控制 计 数 器 的 启 动 和 停 止。&6、7 相 计数模式的选择位89,对应于状态控制寄存器%./ 的 0:位,用于在;$#*工作模式中选择#<模式 和=<模式,892#时=<模式,892*时#<模式。 ’计数模式选择字 (=位)%.,对应于状态控制寄 存器%./的 0!0$0#0*位,其工作模式与模式选 择字的关系如表#所示。(计数器计数初值%’>,*, %’>,#,为$<?位计数器的计数初值输入端。)计 数器溢出中断标志位 ’@+4A,’@+4A2* 表明计数器 满值 (加计数)和零值 (减计数)。*计数方向改 变中断标志位,-+4A,,-+4A2* 表 明 计 数 方 向 改 变。 +系统复位中断标志B9+4A,B9+4A2*系统复位。!"# 计数器计数值C*、C#,为$<?位当前计数值输出 端。
相关文档
最新文档