引言
本文在介绍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模块应用设计
推荐阅读最新更新时间:2024-05-13 18:13
基于开关电源的模块的设计
随着我国科技生产水平的不断提高,各行各业对供电质量的要求越来越高,而智能高频开关电源作为一种继电保护装置和控制回路装置,为生活和生产中的供电的可靠性提供了有力的保障。当市电供电中断时还可以作为后备电源,所以说智能高频开关电源是对供电质量保证的重要组成部分之一。它具有高度灵活组合、自主监控的特点,另外可靠性强、稳定性好且具有体积小、噪声低、节能高效、维护方便等也是它的一大优点。 可以说智能高频开关电源是一种集计算机技术、控制技术、通信技术于一体的高科技产品,可实现系统的自动诊断、自动测试和自动控制。本文主要阐述的是智能高频开关电源的整流模块的设计方案。 1 系统总体结构介绍 智能高频开关电源系统的总体结构主要由主监控单元、配电模块、
[电源管理]
51单片机与NRF24L01无线模块连接图
5V的51单片机与NRF24L01无线模块之间连接问题,从他们那得知连接不当会出现以下问题: 1、为NRF24L01无线模块电源电压是3.3V,但是插上无线模块,用万表测量模块的电源电压达到4.几伏,这个很费解,为其供电的1117-3.3V明明输出是3.3V,插上模块电源电压就升高了呢,这是因为:51单片机I/O口的5V电压从NRF24L01的SPI口倒灌而导致的!所以连接不当就会给你带来不必要的损失。 2、还有一种可能是导致无法通讯,NRF24L01的程序比较简单,如果程序没问题,那么问题一定是出现在硬件上。很多朋友都说为什么我是无线模块无法通讯呢?调了一个星期,甚至一个月,都没有结果。人已经弄得很疲惫,都不想看到NRF24
[单片机]
基于RISC-SOC微电容测量模块的研制
摘要:采用一片集成的RISC-SOC混合信号处理器产生高稳定度的正弦波,做电容测量电路的激励源,对测量结果进行ADC采样,并采取措施抑制引线电容和屏蔽外部干扰,得到高精度的电容测量值。 0引言 电容传感器广泛应用于工业、军事等领域。因而对电容特别是对微小电容的精确测量始终是一个很重要的内容。目前大部分测量方法大部分集成化水平低,有的精度不高。电桥法利用电桥平衡原理测量电容,测量结果受桥臂电容性能影响较大。振荡法电路结构简单,但对于待测电容在 100PF以下时,板间的内电容常会污染测量结果;另外,振荡法测电容的抗干扰能力差。本文提出的容抗匹配法是将待测电容接入容抗匹配电路,待测电容在高品质的交流激励下,呈现固定的容抗。通过容抗-电压
[电源管理]
Silicon Labs网状网络模块简化Thread和ZigBee连接
中国,北京-2016年9月29日-Silicon Labs(亦名 芯科科技 ,NASDAQ: SLAB)推出针对网状网络应用、支持一流ZigBee 和Thread软件的Wireless Gecko模块系列新品。Silicon Labs新型MGM111模块是基于Mighty Gecko片上系统(SoC)器件的全系列多协议模块中的首款产品。MGM111模块是由Silicon Labs可靠、安全且灵活的网状协议栈和业界最先进的无线软件开发工具所支持。此模块内建协议栈、天线选项并通过RF监管认证,能够帮助开发人员减少成本、复杂性和上市时间,非常适用于智能家居与智能楼宇、可连接照明、智能计量、安全系统和其他IoT平台的各种网状网络应用。
[物联网]
Microchip RN4677模块登陆Mouser 蓝牙经典和蓝牙智能双模式共存
贸泽电子 (Mouser Electronics) 即日起开始分销Microchip Technology的RN4677 双模式蓝牙 模块。此完全经认证的嵌入式2.4GHz模块允许设计人员为控制和传感器应用轻松增添蓝牙经典 (BR/EDR) 和蓝牙智能(低能耗)功能。RN4677可将产品连接到智能手机和平板电脑,为物联网 (IoT) 提供本地连接,方便进行数据传输、控制和访问云应用。 Mouser分销的这款Microchip RN4677双模式蓝牙模块以22mm 12mm 2.4 mm的紧凑型表面贴装封装形式,提供了具有板载蓝牙协议栈、集成天线和世界无线电认证的完整无线解决方案。此模块具有7个通用输入/输出 (G
[网络通信]
LF2407型DSP内嵌eCAN模块的检测程序设计
摘 要:以TI公司LF2407型DSP控制器为对象,介绍基于CAN 2.0B总线协议的外设通信模块e-CAN检测程序设计,给出硬件系统的构成框图及软件实现过程的相关代码。实验室调试表明,该程序可以用来判定ID标识符与屏蔽码的正确与否以及邮箱的工作状况,同时能够减少项目早期研究过程中对硬件模块的需求。
关键词:CAN总线通信:DSP程序设计;CAN控制器自检;数字信号处理器
1 引言
LF2407型数字信号处理器(DSP)以其处理能力强(30 MI/s),外设功能模块集成度高及存储器容量大等特点广泛应用于数字化控制与通信领域。笔者以某车载武器系统的前期预研为背景,讨论了该处理器内嵌模块eCAN的检测功能及其软硬件实现过程。
[应用]
51单片机简介及最小系统模块介绍
补充:51单片机开发基础0中使用的软件是KEIL5和Protuse8.9,这两个软件都可以下载到,其中KEIL5是集成开发环境,Protuse8.9在之前的模拟电子技术中用到过。 1.1 51单片机简介 这一部分采用STC公司生产的STC89C52RC单片机为例来讲解51单片机的开发,STC89C52RC采用MCS-51核,在原有的基础上增加了许多功能,例如串口下载程序,8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。支持2种软件可选择节
[单片机]
DSP片外高速海量SDRAM存储系统设计
在数字图像处理、航空航天等高速信号处理应用场合,需要有高速大容量存储空间的强力支持,来满足系统对海量数据吞吐的要求,通过使用大容量同步动态RAM(SDRAM)来扩展嵌入式DSP系统存储空间的方法,选用ISSI公司的IS42S16400高速SDRAM芯片,详细论述在基于TMS320C6201(简称C6201)的数字信号处理系统中此设计方法的具体实现。 1 IS42S16400芯片简介 IS42S16400是ISSI公司推出的一种单片存储容量高达64Mb(即8MB)的16位字宽高速SDRAM芯片。SDRAM的主要特点是:①同步访问,读写操作需要时钟;②动态存储,芯片需要定时刷新。IS42S16400采用CMOS工艺
[应用]