|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 dragongfly 于 2022-8-18 09:27 编辑
7 _& n; E J, B, t% Y+ e2 p4 p) r+ ^' s5 |& k
摘要:针对基于时钟芯片的数字钟系统进行了研究,采用FPGA作为主控芯片通过TC总线实现对实时时钟芯片 PCF8563 的读写控制,实现了时钟/日历切换显示,对时钟/日历手动调校;在调校状态下,实现了数据移位时数码管闪烁指示功能;给出了系统设计以及 FPGA各模块详细设计,通过SignalTap 逻辑分析仪。验证了系统功能实现的技术可行性,并在开发板 上完成调试,对FPGA开发人员有一定的借鉴意义。
: x% m/ y/ [* F$ O7 j! N0 [7 P现场可编程门阵列(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开发板上完成调试。4 t; ]) Y% o, ~; W3 Z* I- x$ I
" r9 I/ Q% g+ \. x7 w8 g
1、时钟芯片 PCF8563简介" R7 c2 @8 O% F7 V- S
PCF8563是飞利浦公司的一款具有极低功耗的工业级多功能CMOS实时时钟/日历芯片,工作电流为0.25 μA,具有时钟输出、报警、定时器以及中断输出功能,能完成各种复杂的定时服务,其内部功能如图1所示。: r3 _- m. D# B+ z' C! E7 e
5 B' ?7 P6 Z' }" h+ r
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。# P% N: @9 J: ?9 M
当一个 RTC寄存器被写入或读取时,所有时间计数器的内容将被冻结,可避免在进位条件下错误地写或读时钟和日历,因此所有访问必须在 1 s 内完成。开 机复位(POR)覆盖,POR 持续时间与晶体振荡器的启动时间直接相关,在上电复位后,应持续大于8 ms,再进行总线操作。PCF8563 的所有数据和地址均通过 TC总线接口串行传递,最大总线速度为 400 kbits/s,每次读写数据后,内嵌的地址寄存器会自动产生增量。
2 E8 U0 [" q3 S! A: o& yPCF8563寄存器写时序过程如下∶先发送器件地址+写操作0,随后发8位寄存器地址,最后发8位寄存器值,S为起始信号,A为应答信号,P为停止信号。读时序过程如下∶先发7位地址+写操作0,然后发送寄存器地址,重新发送起始信号 Sr,再次发送7位地址十读操作1,读取寄存器值。7 ~ V; H& o% K9 p7 @! b1 E
4 J4 B0 `, a+ M2 j' ^; t+ v
2、数字钟系统设计3 T& p8 M% H, w1 I& M6 z: D: _" l
数字钟系统由晶振、电源模块、实时时钟芯片PCF8563、FPGA电路模块、按键模块以及数码管显示模块6部分组成。系统采用3.3V供电,晶振选择32.768kHz和50MHz两种,分别用于实时时钟芯片PCF8563工作的外部晶振和FPGA工作的基准时钟,FPGA采用Cyclone IVE系列EP4CE10F17C8芯片,时钟芯片PCF8563与FPGA通过TC总线实现双向通信,系统框图如图 2所示。
7 Y V' \5 g2 w" F
, u6 g$ u1 r: M* U$ R9 \
数字钟系统具体实现功能如下∶
+ L" V$ j4 K: l# N( h3 Z4 u% E1)实时时钟功能,能够完成常规时钟/日历的实时计数;$ G2 k+ D* Z, w" N! d9 }
2)手动调校功能,能够手动设置年月日时分秒,数据按照相应约束条件进行循环累加和移位操作,完成时钟/日历的手动调校;3)数码管动态显示功能,能够在实时和调校模式下完成时钟/日历的数码管切换显示,并在调校模式下实现数码管在当前调整位置的闪烁指示功能。
; G$ t! ]+ T; D; }5 e
- i' n, Q, e3 m3、FPGA 设计实现' J! I/ a1 S0 L( m# g3 o
FPGA作为本设计的核心部件,按照自顶向下的设计流程,各模块功能通过Verilog 硬件描述语言实现,主要电路由按键消抖模块、键控时钟设置模块、实时时钟模块、TC驱动模块、数码管驱动模块5部分构成。* l; F+ M' Y! r% N0 D% R
3.1 按键消抖模块设计
# p+ H# ?1 `* e' s设计采用4个机械弹性按键,按下为低电平,弹起为高电平。由于机械按键开关在闭合和断开时均不会马上稳定,存在瞬间抖动,为解决不利影响,故采用按键消抖的方法,即当检测到按键状态改变且按键状态稳定后,计数器从 20 ms 开始倒计时,当计数器递减到1时,说明按键稳定状态维持了20 ms,此时按键消抖过程结束,通过寄存器寄存4个按键的状态值 key_ value 【3∶0】,分别表示按键0、1、2、3状态,并送入键控时钟设置模块。
( q- g. |, z0 a9 c7 m n* _ l8 M+ O t8 m9 t
|
|