基于LPC2131的实时时钟控制设计
扫描二维码
随时随地手机看文章
摘要:实时时钟在工业系统中具有良好的应用前景。本系统以微控制器LPC2131为核心控制器,控制内部实时时钟,实现对秒、分、小时等各个时间寄存器的准确操作,通过串口将采集到的数据发送到上位机。本文详细给出硬件设计总体框图、设计原理和软件实现的方法,得出了实验结果。这种实时时钟的控制方法,很容易应用到现代工业以及各种智能化应用系统中。
关键词:LPC2131;实时时钟;串口
引言
嵌入式技术是当前发展速度最快、应用最广、前景最好的信息技术领域之一。目前,社会上嵌入式系统人才短缺的现状给各大高校带来了契机,很多高校的电子信息工程专业都开设了相关的嵌入式课程。嵌入式系统主要由两部分组成:一是硬件,二是软件。本设计是基于32位ARM7TDMI-S核的LPC2131微控制器,内部带有独立电源和时钟源的实时时钟,在节电模式下极大地降低了功耗。通过硬件和软件的结合操作,实现了对内部各个时间寄存器的秒、分、小时、日、月、年和星期的控制,能够将采集到各个时间数据通过串口发送到上位机上,达到实时系统的显示功能。此设计便于形成专用的时钟控制的嵌入式装置,也能够嵌入到各种智能化应用系统中。
1 系统工作原理
该系统主要基于LPC2131为核心的主控电路,由JTAG下载模块、外部时钟源模块、ARM7微控制器模块、串口通信模块(RS-232)等电路组成。LPC2131微控制器内部带有实时时钟模块,可以由外部独立的时钟振荡器来提供时钟源或由基于内部VPB时钟的可编程预分频器来提供时钟源,达到对时钟寄存器秒、分、小时、日、月、年和星期的控制。同时将控制的数据通过串口与PC机通信,来实现结果,将数据显示在PC机上。
1.1 实时时钟内部结构介绍
LPC2131内部实时时钟结构框图如图1所示。实时时钟包含混合寄存器、时间寄存器、时间计数器、报警寄存器和预分频器等。其中,混合寄存器包括:中断位置寄存器(ILR)、时钟节拍计数器(CTC)、时钟控制寄存器(CCR)、计数器递增中断寄存器(CIIR)、报警屏蔽寄存器(A-MR);时间计数器包括:秒寄存器(SEC)、分寄存器(MIN)、小时寄存器(HOUR)、日期寄存器(DOM)、星期寄存器(DOW)、年寄存器(DOY)、月寄存器(MONTH)、年寄存器(YEAR);时间寄存器组包括:完整时间寄存器0(CTIME0)、完整时间寄存器1(CTIME1)、完整时间寄存器2(CTIME2);报警寄存器包括:秒报警值(ALSEC)、分报警值(ALMIN)、小时报警值(ALHOUR)、日期报警值(ALDOM)、星期报警值(ALDOW)、月报警值(ALM-ON)、年报警值(ALYEAR);预分频器包括:预分频值整数部分(PREINT)、预分频值小数部分(PREFRAC)。
1.2 实时时钟的基本操作
首先,设置时钟控制寄存器(CCR)可以选择RTC的计数时钟,可以由外部振荡器32.768 kHz提供或内部Fpclk分频得到。当使用Fpclk作为时钟源时,它的基准时钟分频器允许调节任何频率高于65.536 kHz的外设时钟源产生一个32.768 kHz的基准时钟,实现准确计时操作。
其次,如果CCR选择内部时钟源,则设置RTC基准时钟分频器(PREINT、PREFRAC),如果选择外部32.768kHz就不必设置预分频寄存器的值,预分频寄存器值的计数如下:
接着初始化实时时钟(RTC)的各个时钟值,如YEAR、MONTH、DOM等,报警中断设置,如CIIR、AMR等,然后启动RTC,即CCR的CLKEN位置位,读取完整的时间寄存器值。在此过程中时钟节拍计数器(CTC)是一个15位计数器,每秒计数32 768个时钟,当有CTC秒进位时,完整时间CTIME0~CTIME2、RTC时间寄存器(如SEC、MIN)将会更新。实时时钟中断有两种:一种增量中断,由CIIR控制;另一种为报警中断。本设计使用的是增量中断。
最后将串口初始化,设置串口的波特率、数据位、停止位、校验位等,将串口与上位机连接,将串口采集到的时间寄存器变化的时间值发送到上位机上显示,得到对实时时钟的控制结果。
1.3 寄存器的功能介绍
时钟控制寄存器(CCR)是一个5位寄存器,控制时钟电路的分频操作。计数器增量中断寄存器(CIIR):可以使计数器每次增加时产生一次中断,在中断位置寄存器的位0(ILR[0])写入1之前,该中断一直保持有效。完整时间寄存器0(CTIME0)和完整时间寄存器1(CTIME1):
CTIME0包括秒、分、小时、和星期,CTIME1包括日期、月和年。具体寄存器描述略——编者注。
预分频整数寄存器(PREINT):预分频的整数部分。预分频整数部分计算如下:
预分频小数寄存器(PREFRAC):预分频的小数部分。预分频小数部分计算如下:
2 系统硬件设计
2.1 系统的硬件结构
该系统对ARM7微控制器LPC2131的实时时钟模块的各个寄存器控制,来达到对时钟的精确控制。该系统的硬件结构图,如图2所示。包括复位电路模块、JTAG下载模块、通信模块(RS-232)、ARM7微控制器模块及外部振荡电路模块。
2.2 系统的硬件原理图
复位电路如图3所示,采用复位芯片SP708S,可以大大提高MCU的复位性能。通过确定的电压值(阈值)启动复位操作,同时排除瞬间干扰的影响,又防MCU在电源启动和关闭期间的误操作,保证数据安全。用阻容复位稳定性差,常常有按了复位键没反应,要按一段时间才能复位的经历,容易复位不成功。
JTAG下载电路如图4所示,采用20引脚的JTAG口,使用下载工具J-LINK,由软件MDK将从PC机通过J-LINK,下载到LPC2131里。
串口通信电路如图5所示,采用串口芯片MAX3232,将MAX3232与LPC2131连接起来,实现上位机与下位机数据通信。
ARM7微控制器模块及外部振荡电路的系统时钟源晶振为11.059 2 MHz,实时时钟的晶振为32.768 kHz。电路图略——编者注。
3 系统软件设计
3.1 程序流程
本系统采用了高级语言C编写LPC2131程序,本程序主要完成对实时时钟RTC的各个时间寄存器的设定、显示以及对串口0的初始化设定。然后通过CPU采集实时时钟的各个时间寄存器变化的数据,经串口连接到上位机,在上位机上显示出时间来。程序流程如图6所示。
3.2 控制程序
根据程序流程,可将程序分为三大部分:第一部分,对串口的初始化及串口发送数据的函数初始化。第二部分,对实时时钟的初始化,来设置基准时钟、时、分、秒等各个寄存器,将采集到的数据通过终端显示出来。第三部分,主函数部分,将秒增量中断标志置位、清楚RTC中断,而后循环地将时间在串口调试助手上显示。
4 实验结果
将以上程序在MDK中运行,下载到LPC2131中,将串口与PC机连接,设置好串口调试助手,波特率9 600bps,数据位8位,1个停止位,无校验位。得到时间结果。
结语
本文介绍了基于ARM7TDMI-S核的芯片LPC2131和内部的实时时钟(RTC)的工作原理,设计了基于实时时钟与LPC2131的串行通信的采样系统,将时间显示在上位机上。这种时钟控制系统在现代生产、生活中应用广泛。在实际应用中,只需根据本文的基本思想进行适当的移植,即可设计成专用的时钟控制的嵌入式装置,并嵌入到各种智能化应用系统中。