|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 dragongfly 于 2022-8-18 09:27 编辑 % ?" t( V. u: V$ u/ X3 T! G5 p
5 b6 [: t" d) j7 A1 [5 {; y摘要:针对基于时钟芯片的数字钟系统进行了研究,采用FPGA作为主控芯片通过TC总线实现对实时时钟芯片 PCF8563 的读写控制,实现了时钟/日历切换显示,对时钟/日历手动调校;在调校状态下,实现了数据移位时数码管闪烁指示功能;给出了系统设计以及 FPGA各模块详细设计,通过SignalTap 逻辑分析仪。验证了系统功能实现的技术可行性,并在开发板 上完成调试,对FPGA开发人员有一定的借鉴意义。6 I9 \/ I i7 [2 x+ M/ v
现场可编程门阵列(field一 programmable gate array,FPGA)的飞速发展,在工业控制、电子计量、便携仪器、数字通信、人工智能等各个领域得到广泛应用。Verilog HDL(Verilog hard design language)作为目前主流的硬件描述语言得到了 FPGA 工程师的青睐。目前数字钟多应用于仪器仪表、电子计量、实时控制系统中。实时时钟芯片PCF8563在数字钟设计中应用也非常广泛,实质是一个对标准频率计数的计数电路,通常由晶体振荡电路、分频电路、时间计数电路、译码驱动电路等组成。本文提出了一种基于实时时钟芯片 PCF8563 的数字钟的 FPGA设计实现思路,采用 Altera 公司的Cyclone IVE系列 FPGA芯片EP4CE10F17C8作为主控芯片,通过 Inter一Integrated Circuit(I'C)总线实现对实时时钟芯片 PCF8563的读写控制,通过4个按键分别完成时钟/日历切换、实时显示和手动调校切换、数据移位设置和数据累加设置功能,完成实时和调校模式下的六位数码管显示,并在调校模式下实现数码管闪烁指示功能。通过SignalTap 逻辑分析仪,验证了系统功能实现的技术可 行性,并在 正点原子开 拓者EP4CE10开发板上完成调试。
+ i5 D6 \, `: V7 K: N5 ]% g( [* q, t* F0 B
1、时钟芯片 PCF8563简介
8 f' F. Q( e0 |* W; P4 M$ V2 i5 APCF8563是飞利浦公司的一款具有极低功耗的工业级多功能CMOS实时时钟/日历芯片,工作电流为0.25 μA,具有时钟输出、报警、定时器以及中断输出功能,能完成各种复杂的定时服务,其内部功能如图1所示。
# }! e2 ~6 x4 l% H7 H
& p& c. h2 C* W, ~
PCF8563内部包括 16个8 位寄存器、内置32.768 Hz 的振荡器、时钟监控、电源复位、分频器、可编程时钟输出、中断输出、看门狗电路以及IC总线接口。分频器给实时时钟 RTC提供源时钟,内存地址 00 H、01 H用作控制和状态寄存器,地址 02 H~08 H用作 TIME计时器,地址09 H~0 CH用于报警寄存器,地址0DH控制CLKOUT管脚的输出频率,地址 OEH和 0FH分别用于定时器控制寄存器和定时器寄存器,其中年月日时分秒寄存器均为 BCD 编码51。- l I W, P" C6 T0 F
当一个 RTC寄存器被写入或读取时,所有时间计数器的内容将被冻结,可避免在进位条件下错误地写或读时钟和日历,因此所有访问必须在 1 s 内完成。开 机复位(POR)覆盖,POR 持续时间与晶体振荡器的启动时间直接相关,在上电复位后,应持续大于8 ms,再进行总线操作。PCF8563 的所有数据和地址均通过 TC总线接口串行传递,最大总线速度为 400 kbits/s,每次读写数据后,内嵌的地址寄存器会自动产生增量。
5 U# [9 S2 Z. j" rPCF8563寄存器写时序过程如下∶先发送器件地址+写操作0,随后发8位寄存器地址,最后发8位寄存器值,S为起始信号,A为应答信号,P为停止信号。读时序过程如下∶先发7位地址+写操作0,然后发送寄存器地址,重新发送起始信号 Sr,再次发送7位地址十读操作1,读取寄存器值。
5 p* F o, C b: K7 j8 Z: K
: e0 N( M) M$ V6 f3 ~1 S2、数字钟系统设计
! [) X4 h6 T: W) ~4 J! T数字钟系统由晶振、电源模块、实时时钟芯片PCF8563、FPGA电路模块、按键模块以及数码管显示模块6部分组成。系统采用3.3V供电,晶振选择32.768kHz和50MHz两种,分别用于实时时钟芯片PCF8563工作的外部晶振和FPGA工作的基准时钟,FPGA采用Cyclone IVE系列EP4CE10F17C8芯片,时钟芯片PCF8563与FPGA通过TC总线实现双向通信,系统框图如图 2所示。, L. H2 ^8 K& c- L, t) T) R; b* W
0 c# Q* N @6 @3 u* }: i
数字钟系统具体实现功能如下∶9 u: x$ y3 L1 h
1)实时时钟功能,能够完成常规时钟/日历的实时计数;
0 h& E6 A Y+ |* G& y2)手动调校功能,能够手动设置年月日时分秒,数据按照相应约束条件进行循环累加和移位操作,完成时钟/日历的手动调校;3)数码管动态显示功能,能够在实时和调校模式下完成时钟/日历的数码管切换显示,并在调校模式下实现数码管在当前调整位置的闪烁指示功能。
: j& U4 b0 i% d; Q" X" e9 P4 ~; U& n
3、FPGA 设计实现
/ A" Z3 T) Z; F8 G2 Z8 UFPGA作为本设计的核心部件,按照自顶向下的设计流程,各模块功能通过Verilog 硬件描述语言实现,主要电路由按键消抖模块、键控时钟设置模块、实时时钟模块、TC驱动模块、数码管驱动模块5部分构成。
* K5 I7 x6 c4 l3 h/ J' p" x7 O' J# o, Q3.1 按键消抖模块设计/ T& i/ [& P! k: O! m
设计采用4个机械弹性按键,按下为低电平,弹起为高电平。由于机械按键开关在闭合和断开时均不会马上稳定,存在瞬间抖动,为解决不利影响,故采用按键消抖的方法,即当检测到按键状态改变且按键状态稳定后,计数器从 20 ms 开始倒计时,当计数器递减到1时,说明按键稳定状态维持了20 ms,此时按键消抖过程结束,通过寄存器寄存4个按键的状态值 key_ value 【3∶0】,分别表示按键0、1、2、3状态,并送入键控时钟设置模块。
: n. d/ c5 z& T6 X7 b- V$ S5 @* _1 N. W$ ~0 d L
|
|