EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
. M7 ~! U: K& y
) C; p$ }7 o% e' i9 E" A
7 x% O" V3 w/ ]2 E$ G$ l& s' B
; N; ^ j2 O1 E) D摘要 摘要为了提高工业控制器中高速计数器的计数频率和扩展计数模式,介绍一种利用FPGA,通过VHDL语言设计的高速计数器,有15种工作模式,计数频率可达100kHz以上。同时介绍了高速计数器的设计原理,提供了高速计数器与微处理器的接口实例。 + _2 A. u. I5 Z+ Z2 |
关键词:高速计数器 HSC) 现场可 编程逻辑阵列FPGA) VHDL 语言
$ g, f1 D" q6 y& V, ^% m1 T: Y. F
7 C3 Y9 b) F: ^: @3 e# Z2 M }1、 引言 高速计数器 .34 (.5673899:4;<=>9?)用来累计比)04扫描频率高得多的脉冲输入,利用其产生的中断事件完成预定的操作,在现代自动控制领域中有着重要的应用价值。本文介绍一种利用()+,设计的!$位高速计数器,有!&种工作模式,其计数频率可达!’’1.2以上,在工业控制器中具有较大的应用价值。考虑到计数器的多工作模式,在-./0语言程序设计中,采用层次化设计的方式。
+ R d. C2 F( m* s' q5 z0 ~; k2、高速计数器的项层设计
1 W/ z& o! U, E. ~! A# H高速计数器的设计中主要考虑了以下几方面的问题:①双方向计数,即加法计数和减法计数。②复位功能,内部控制或外部控制。③启动功能,内部控制或外部控制。④初值装载,在内部启动信号控制下同步装入初值。⑤计数位数,16位。⑥工作频率大于100kHz。⑦时钟功能,单时钟、加时钟和减时钟、相位差90°的1X和4X方式AB时钟。⑧中断信号,溢出中断、计数转向中断和外部复位中断。⑨接口方式,8位数据总线等。其顶层设计的结构框图如图1所示。在图1中, mcu控制器接口电路,主要完成与MCU的接口控制,其内部的控制寄存器ewd各位实现对HSC工作模式的控制,计数初值寄存器conf0、conf1用于寄存16位计数初值,计数值寄存器cou0、coul 主要用于存放当前的计数值,预置计数值寄存器comf0、comf1用于存放预置计数值,当预置值等于计数值时,预置值比较器中断信号coint=0,使中断寄存器intc的D3位置1,同时外部中断标志位int为0,产生外部中断请求; i0、 i1、i2、i3为4个计数脉冲输入端;高速计数模块为整个设计的核心。 / f; G1 ^2 I6 T- R: s
& Q3 b2 c& ]. b, x$ j' R, A* o! a
7 K/ H, @* U; ^/ q8 z. r4 Q
/ r0 g; \7 q9 s2 E% L
6 z3 p; `' r3 u# C |