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