基于S3C2410的RTC模块应用设计

发布者:yunhui最新更新时间:2006-07-14 来源: 电子产品世界关键字:寄存器  函数  模块 手机看文章 扫描二维码
随时随地手机看文章

引言
  本文在介绍S3C2410的基础上,对RTC内部结构及工作机理进行了分析,最后给出了专用于RTC功能的应用开发。

硬件结构
S3C2410处理器简介
  S3C2410是三星公司推出的16/32位RISC微处理器,它是为应用于小型掌上设备和高性价比、低功耗、高性能的嵌入式系统应用而提供的微控制解决方案。S3C2410使用了ARM920T内核。



图1 S3C2410内部RTC模块结构图

硬件构架
  RTC模块能够在系统断电的情况下由后备电池供电继续工作,它能将8位数据转换为BCD码的格式传送给CPU。这些数据包括秒、分、时、日期、星期、月、年。RTC模块需要一个外部晶振提供32.768kHz的频率才能工作,它也能完成报警功能。

  S3C2410内部RTC模块结构框图如图1所示。XTlrtc 与Xtortc是连接外部晶振的两个引脚,它们连接32.768kHz的晶振,为RTC内部提供频率输入。215时钟分频器负责对从晶振外部输入的信号进行分频,分频精度为215。时钟滴答发生器可以产生时钟滴答,它可以引起中断,它由一个叫做TICNT的寄存器进行设置,寄存器中有一位中断使能位和计数数值n(n可取1~127),时钟滴答的周期按照下式计算:
周期=(n+1)/128 秒     (1)

  闰年发生器按照从日期、月、年得来的BCD数据决定一个月的最后一天是28、29、30还是31号(也就是计算是否是闰年)。报警发生器可以根据具体的时间决定是否报警。控制寄存器控制读/写BCD寄存器的使能、时钟复位、时钟选择等。重置寄存器可以选择“秒”对“分”进位的边界,提供三个可选边界:30、40或者50秒。

  RTC最重要的功能就是显示时间。在掉电模式下,RTC依然能够正常工作,此时,RTC模块通过外部的电池工作。电池一般选用能够提供1.8V电压的银芯电池,电池与专用于RTC电源的引脚RTCVDD连接。RTC时间显示功能是通过读/写寄存器实现的。要显示秒、分、时、日期、月、年,CPU必须读取存于BCDSEC,BCDMIN,BCDHOUR,BCDDAY,BCDDATE, BCDMON与BCDYEAR寄存器中的值。时间的设置也是通过以上的寄存器实现的,即以上寄存器是可读可写的。



图2 RTC应用开发流程图

程序设计
  本设计基于S3C2410嵌入式开发平台,并结合PC的超级终端完成RTC模块的初始化、时间显示(显示于超级终端)、时间设置、重置测试、报警测试、时钟滴答测试等功能。其程序开发流程如图2所示。为了完成以上功能,需要前期的一些初始化工作。

硬件初始化
  RTC模块不是孤立的,它是S3C2410的一个内部模块,要对其编程,必须完成对基于S3C2410的嵌入式系统的初始化。初始化工作包括对S3C2410和串口的初始化以及一些辅助函数的实现。

  S3C2410的初始化工作包括程序入口点定义、中断矢量的确定、堆栈的初始化、电源管理(包括掉电与重启处理)、S3C2410各模块的寄存器地址定义及其初始化,以上初始化工作与硬件紧密相关,采用32位的ARM/Thumb指令集进行编程。

  本设计使用PC机的超级终端作为人机接口,完成RTC模块的调试、时间显示及命令选择。因此,在RTC模块功能设计之前要完成对串行口的初始化。串口的初始化由设置PCLK(CPU系统时钟)、波特率设置、控制寄存器设置等几部分完成。这部分程序与硬件相关性不是特别紧密,可以用嵌入式C语言完成。在进行人机接口交互时,需要从超级终端输入/输出一些信息。

功能设计
  完成初始化工作之后,进行RTC模块的功能应用开发。功能应用按照自顶向下的程序设计思路,可以分为不同的功能模块来分别实现。这些功能模块由具体的函数实现,在编写main()函数时,可以按完成功能的不同,分别调用不同的子函数。下面介绍各功能模块子函数的实现。

  RTC模块初始化由函数Rtc_Init()实现。函数主要实现BCD数据的初始化,当其它函数读取初始化时间时,可以调用此函数。
?
  时间设置功能由函数Rtc_TimeSet()实现。该函数调用Uart_GetIntNum()函数从超级终端读入整型数字,由用户完成对当前时间的修改。
?
  重置测试功能由函数RndRst_Rtc()实现。该函数通过对Rtc_TimeSet()的调用完成用户的当前时间设置,然后通过修改RTCRST寄存器,实现重置边界的修改,继而通过对Uart_Printf()函数的调用,输出时间显示。用户可以观察重置后的时间,以测试重置功能。

  报警测试功能由函数Test_Rtc_Alarm()实现。该函数完成RTC初始化,清除RTC模块的中断屏蔽位,产生报警,然后设置中断屏蔽位,关闭中断。
?
  时钟滴答测试功能由函数Test_Rtc_Tick()实现。通过寄存器RTICNT设置时钟滴答周期,通过调用Uart_Printf()输出时钟滴答具体值。
?
  报警中断开与时钟滴答中断开完成相应中断状态位和中断挂起位开中断的功能。相应的功能可以查看S3C2410的中断模块。
?
  显示时间功能由函数Display_Rtc()完成。

结语
  本文给出了RTC模块的基本功能设计,还可以进一步开发如时钟界面等,以完善其功能,适应多种嵌入式系统应用的要求。

关键字:寄存器  函数  模块 引用地址:基于S3C2410的RTC模块应用设计

上一篇:基于ARM核的ADμC7024在医疗电子中的应用
下一篇:基于CCP协议利用CANape进行电控单元标定

推荐阅读最新更新时间:2024-03-30 21:21

基于STM32的传感器接口模块的设计
摘要:基于STM32实现了电流型、电压型以及数字IO型传感器接口模块;进行了接口模块的软件设计,说明了详细的固件代码设计。除传统串口外,提供以太网接口,嵌入UDP协议,提供后期开发的便利接口。 关键词:信号接口;传感器接口模块;UDP协议 0 引言 物联网将会是未来很长一段时间内IT产业的发展趋势,一个完整的物联网系统的构成或产业链的划分,目前业界比较统一的观点基本都认为应该包括三个层面:末端设备或子系统、通信连接系统、以及管理和应用系统。即Device-设备、Connect-连接和Manage-管理。由于数字整合的需求日益增长,对作为感知层核心组成元素的传感器数据融合提出了更高要求。如何将传感器连入网络成为一个尤其重要的问题
[工业控制]
基于STM32的传感器接口<font color='red'>模块</font>的设计
如何为通信电源系统选择整流模块
    摘要: 为一个通信电源系统选择整流模块要考虑很多因素。现在,随着通信市场竞争的日益烈,有必要选择最优的电源方案来满足市场需要。仔细评估所有运行要求会对选择模块有重大影响,本文研究了模块冷却方式,输入电压范围,输出限流特性和运行温度范围等多种因素对选择电源系统方案的重要影响。     关键词: 通信电源  整流模块  选择 1 引言 为一个通信电源系统选择整流模块要考虑很多因素。过去,大的垄断性的电信公司常常选择冗余量很大的系统方案。但是,随着全球性市场竞争的日趋激烈,这种选择方式将是不可取的。为了优化一个电源供电方案,有必要仔细考察许多相关因素,包括产品性能与价格问题,这样才能以最经济的方式满足最
[应用]
AVR 软件操作库函数
1.C语言宏定义技巧(常用宏定义) 1,防止一个头文件被重复包含 #ifndef COMDEF_H #define COMDEF_H //头文件内容 #endif 2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植. typedef unsigned char boolean; typedef unsigned long int uint32; typedef unsigned short uint16; typedef unsigned char uint8; typedef signed long int int32; typedef signed short int16; type
[单片机]
技术文章:如何在低功耗时代正确测量无线通讯模块功耗?
低功耗,是万物互联中极为重要的一个概念,绝大多数的物联网节点都需要使用电池供电,而只有正确测量无线模块的功耗,才能准确估算到底5年续航需要使用多大的电池,本文将为您讲解详细的测量方法。 在物联网的很多应用中,终端设备通常是电池供电,可用的电量有限。由于电池存在自放电,最差情况下实际使用电量只有标称电量的70%左右,如常用的CR2032纽扣电池,一节电池标称容量为200mAh,实际可能只有140mAh可以使用。 既然电池的电量如此有限,那么降低产品功耗就显得很重要了!下面就先了解下常用的测量功耗的手段,只有清楚了这些测量功耗的方法,才能进行产品功耗优化。 一、功耗测量 无线模块的功耗测试主要在测量电流,这里又分为静
[电源管理]
技术文章:如何在低功耗时代正确测量无线通讯<font color='red'>模块</font>功耗?
劲达国际宣布推出集成u.FL连接器的nRF52蓝牙模块
劲达国际日前宣布推出带有u.FL连接器版本模块MDBT42Q-U系列,该系列选用Nordic nRF52832和nRF52810 SoC,为物联网应用提供低功耗蓝牙BLE无线连接。 在不少设计中,模块上的嵌入式天线有时不能满足足够的RF效率要求,因此劲达国际推出支持外接蓝牙天线模块的解决方案,增强了设计开发人员的灵活性。 劲达国际表示,该系列模块还附带BQB和FCC / IC / CE / Telec / KC / SRRC / NCC预先认证的3个选定天线可供选择。 所有nRF52系列模块不仅支持BT4.2,还支持高吞吐量(2Mbps)的BT5功能,并通过广告扩展(x 8)增加广播容量。通过新模块成员的加入,劲达国
[物联网]
劲达国际宣布推出集成u.FL连接器的nRF52蓝牙<font color='red'>模块</font>
DARPA启动模块化计算框架CHIPS项目
电子网综合报道,为了保持微电子技术在过去半个世纪内的创新和发展速度,需要大量创新者的参与。近日,来自军方、商业领域和学术界的大约100名创新人士,因召开“芯片”(全称为“通用异构集成和知识产权重用策略”,CHIPS)项目的启动会议而共聚于DARPA(美国国防部高级研究计划局)总部。 CHIPS项目的项目经理丹·格林表示:“现在我们不需要用漂亮的图片和简单的文字(来介绍我们的设想了-译者注),现在我们需要挽起袖子努力工作,一起改变我们思考、设计和构建微电子系统的方式。”该项目的关键在于,开发一种新的技术框架,让数据存储、计算、信号处理、数据表单和数据流的管理等不同功能和知识产权的模块,能够被分别置入微型管芯当中。然后,类似于在拼
[半导体设计/制造]
C51的延时函数
#ifndef _DELAY_51_H_ #define _DELAY_51_H_ #include AT89x52.h #define uint unsigned int #define uchar unsigned char //nus延时 void delay_nus( uchar n ); //nms延时 void delay_nms( uchar n ); //2us延时 void delay_2us( uchar t ); //50us延时 void delay_50us(uint t); //50ms延时 void delay_50ms( uint t ); #endif // DELAY_51_H /
[单片机]
STM32 TIM定时器 库函数学习笔记
一些库函数的用法手册上讲得不甚详细,网上也几乎没有资料,把我个人理解的一些东西和大家分享一下,如有错漏请批评指正。 TIM_DeInit(TIM2); //注意:按缺省值复位后,时钟源为内部时钟,不必再调用函数设置。如需要更改定时器计时的时钟源, //调用后面的那几个相关函数就行。定时器的时钟不是直接来自APB1/2,而是来自于输入为APB1/2的一个倍频器。 //当APB1/2的预分频系数为1时,定时器的时钟频率等于APB1/2的频率; //当APB1/2的预分频系数为其它数值时,定时器的时钟频率等于APB1/2的频率两倍。 TIM_TimeBaseInitTypeDef TIM_TimeBaseStructur
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新工业控制文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved