RCT实时时钟详细介绍-华清远见

RCT实时时钟详细介绍

在说道正文之前,我们先要对RCT实时时钟坐一个简单的描述。实时时钟(Real-Time Clock)是PC主板上的晶振及相关电路组成的时钟电路的生成脉冲,RTC经过8254电路的变频产生一个频率较低一点的OS(系统)时钟TSC,系统时钟每一个cpu周期加一,每次系统时钟在系统初起时通过RTC初始化。8254本身工作也需要有自己的驱动时钟(PIT)。RCT实时时钟详细介绍请往下看。

1.1 RTC介绍

在一个嵌入式系统中,通常采用RTC 来提供可靠的系统时间,包括时分秒和年月日等,而且要求在系统处于关机状态下它也能够正常工作(通常采用后备电池供电)。它的外围也不需要太多的辅助电路,典型的就是只需要一个高精度的

32.768kHz晶体和电阻电容等,如图10-8所示。

图10-8 RTC外接电路

1.2 RTC控制器

实时时钟(RTC)单元可以通过备用电池供电,因此,即使系统电源关闭,它也可以继续工作。RTC 可以通过STRB/LDRB 指令将8 位BCD 码数据送至CPU。这些BCD 数据包括秒、分、时、日期、星期、月和年。RTC 单元通过一个外部的32.768kHz 晶振提供时钟。RTC具有定时报警的功能,如图10-9所示。RTC 控制器功能说明:

图10-9 RTC控制器

时钟数据采用BCD 编码。

能够对闰年的年月日进行自动处理。

具有告警功能,当系统处于关机状态时,能产生告警中断。

具有独立的电源输入。

提供毫秒级时钟中断,该中断可用于作为嵌入式操作系统的内核时钟。

1.3 RTC控制器寄存器详解

如表10-9所示为相关寄存器描述。

表10-9 RTC控制寄存器

2) 设置RTC当前时钟时间。

3)

同样的在掉电前,RTCEN位应该清除为0 来预防误写入RTC寄存器中。

4) 读取年、月、日等相关寄存器的数据显示到屏幕上。

2、看门软件程序设计

下面的代码实现了一个设置RTC的年月日、时分秒,并将其读出的功能。

#include "s5pv210.h"

void rtc_init(void)

{

RTC.RTCCON = 0X01; //时钟控制器使能RTC 控制

RTC.BCDSEC = 0x59; //秒控制器

RTC.BCDMIN = 0x56; //分控制器

RTC.BCDHOUR = 0x16; //时控制器

RTC.BCDDAY = 0x12; //日控制器

RTC.BCDDAYWEEK = 0X05; //星期控制器

RTC.BCDMON = 0x10; //月控制器

RTC.BCDYEAR = 0x14; //年控制器

RTC.RTCCON = 0; //时钟控制器使能RTC控制}

/********************main

function*************************************/

int main()

{

unsigned int i = 0;

uart0_init(); //串口初始化

rtc_init(); //RTC 初始化

while(1) //循环打印时钟

{

printf("year 20%x :

mon %x : date %x :day %d ", RTC.BCDYEAR, RTC.BCDMON, RTC.BCDDAY,

RTC.BCDDAYWEEK);

printf("hour %x : min %x : sec %x\n", RTC.BCDHOUR, RTC.BCDMIN, RTC.BCDSEC);

for(i = 0; i < 1500000; i++);

}

return 0;

}

1.4.4 实验步骤

实验操作步骤请参考第5.4.4或7.3.4章节,

光盘实验源码路径:华清远见-CORTEXA8资料2\实验资料\1. ARM体系结构与接口技术部分\14-rtc

1.4.5 实验现象

Debug 调试点击运行按钮,在调试助手接收区你可以看到终端打印信息如图所示。RTC时钟的秒数据是在一秒一秒的增加。

图打印实时时钟信息

以上内容就是对RCT实时时钟的详细介绍。更多内容及学习资料可以在华清远见官网进行查看,华清远见为学子提供免费的教程以供参考和学习。

(注:可编辑下载,若有不当之处,请指正,谢谢!)

ARM Cortex系列

Cortex系列ARM核心及体系结构介绍 作者:杨硕,华清远见嵌入式学院讲师。 众所周知,英国的ARM公司是嵌入式微处理器世界当中的佼佼者。ARM一直以来都是自己研发微处理器内核架构,然后将这些架构的知识产权授权给各个芯片厂商,精简的CPU架构,高效的处理能力以及成功的商业模式让ARM公司获得了巨大的成功,使他迅速占据了32位嵌入式微处理器的大部分市场份额,甚至现在,ARM芯片在上网本市场的也大有与INTEL 的ATOM处理器一较高低的实力。 目前,随着对嵌入式系统的要求越来越高,作为其核心的嵌入式微处理器的综合性能也受到日益严峻的考验,最典型的例子就是伴随3G网络的推广,对手机的本地处理能力要求很高,现在一个高端的智能手机的处理能力几乎可以和几年前的笔记本电脑相当。为了迎合市场的需求,ARM公司也在加紧研发他们最新的ARM架构,Cortex系列就是这样的产品。在Cortex之前,ARM核都是以ARM为前缀命名的,从ARM1一直到ARM11,之后就是Cortex系列了。Cortex在英语中有大脑皮层的意思,而大脑皮层正是人脑最核心的部分,估计ARM公司如此命名正有此含义吧。 一.ARMv7架构特点 下表列出了ARM微处理器核心以及体系结构的发展历史: 表一: ARM微处理器核心以及体系结构的发展历史 我们可以看到,Cortex系列属于ARMv7架构,这是ARM公司最新的指令集架构,而我们比较熟悉的三星的S3C2410芯片是ARMv4架构,ATMEL公司的AT91SAM9261芯片则是ARMv5架构。 ARMv7架构是在ARMv6架构的基础上诞生的。该架构采用了Thumb-2技术,Thumb-2技术是在ARM的Thumb代码压缩技术的基础上发展起来的,并且保持了对现存ARM解决方案的完整的代码兼容性。Thumb-2技术比纯32位代码少使用31%的内存,减小了系统开销。同时能够提供比已有的基于Thumb技术的解决方案高出38%的性能。ARMv7架构还采用了NEON技术,将DSP和媒体处理能力提高了近4倍,并支持改良的浮点运算,满足下一代3D图形、游戏物理

基于STM32 RTC实时时钟

1 课程设计内容 本文将利用ALIENTEK 2.8寸TFTLCD模块来显示日期时间,实现一个简单的时钟。 2 STM32芯片简介 2006年ARM公司推出了基于ARMv7架构的Cortex系列的标准体系结构,以满足各种技术的不同性能要求,包含A、R、M三个分工明确的系列[1]。其中,A系列面向复杂的尖端应用程序,用于运行开放式的复杂操作系统;R系列适合实时系统;M系列则专门针对低成本的微控制领域。Cortex-M3是首款基于ARMv7-M体系结构的32位标准处理器,具有低功耗、少门数、短中断延迟、低调试成本等众多优点。它是专门为在微控制系统、汽车车身系统、工业控制系统和无线网络等对功耗和成本敏感的嵌入式应用领域实现高系统性能而设计的,它大大简化了编程的复杂性,集高性能、低功耗、低成本于一体[2]。半导体制造厂商意法半导体ST公司是ARM公司Cortex-M3内核开发项目一个主要合作方,2007年6月11日ST公司率先推出了基于Cortex-M3内核的STM32系列MCU。本章将简要介绍STM32系列处理器的分类、内部结构及特点,并对本设计中重点应用的通用定时器做进一步分析。 2.1 STM32 RTC时钟简介 STM32 的实时时钟(RTC)是一个独立的定时器。STM32 的 RTC 模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。 RTC 模块和时钟配置系统(RCC_BDCR 寄存器)是在后备区域,即在系统复位或从待机模式唤醒后 RTC 的设置和时间维持不变。但是在系统复位后,会自动禁止访问后备寄存器和 RTC,以防止对后备区域(BKP)的意外写操作。所以在要设置时间之前,先要取消备份区域(BKP)写保护。 RTC 的简化框图,如图 20.1.1 所示:

RCT实时时钟详细介绍-华清远见

RCT实时时钟详细介绍 在说道正文之前,我们先要对RCT实时时钟坐一个简单的描述。实时时钟(Real-Time Clock)是PC主板上的晶振及相关电路组成的时钟电路的生成脉冲,RTC经过8254电路的变频产生一个频率较低一点的OS(系统)时钟TSC,系统时钟每一个cpu周期加一,每次系统时钟在系统初起时通过RTC初始化。8254本身工作也需要有自己的驱动时钟(PIT)。RCT实时时钟详细介绍请往下看。 1.1 RTC介绍 在一个嵌入式系统中,通常采用RTC 来提供可靠的系统时间,包括时分秒和年月日等,而且要求在系统处于关机状态下它也能够正常工作(通常采用后备电池供电)。它的外围也不需要太多的辅助电路,典型的就是只需要一个高精度的 32.768kHz晶体和电阻电容等,如图10-8所示。 图10-8 RTC外接电路 1.2 RTC控制器 实时时钟(RTC)单元可以通过备用电池供电,因此,即使系统电源关闭,它也可以继续工作。RTC 可以通过STRB/LDRB 指令将8 位BCD 码数据送至CPU。这些BCD 数据包括秒、分、时、日期、星期、月和年。RTC 单元通过一个外部的32.768kHz 晶振提供时钟。RTC具有定时报警的功能,如图10-9所示。RTC 控制器功能说明:

图10-9 RTC控制器 时钟数据采用BCD 编码。 能够对闰年的年月日进行自动处理。 具有告警功能,当系统处于关机状态时,能产生告警中断。 具有独立的电源输入。 提供毫秒级时钟中断,该中断可用于作为嵌入式操作系统的内核时钟。 1.3 RTC控制器寄存器详解 如表10-9所示为相关寄存器描述。 表10-9 RTC控制寄存器

stm32f103rct6使用内部晶振作为时钟源

stm32f103rct6使用内部晶振作为时钟源 STM32F103RCT6是一款常用的ARM Cortex-M3内核微控制器,常常需要使用外部晶振作为时钟源来提供准确的时钟。但实际上,STM32F103RCT6也可以使用内部晶振作为时钟源,取代外部晶振的使用。本文将详细介绍STM32F103RCT6使用内部晶振的方法。 1. 内部RC振荡器 STM32F103RCT6芯片内置了一个1MHz的RC振荡器,这是用于CPU、外设与Flash存储器的内部时钟源。在复位时,MCU自动将内部RC振荡器作为系统时钟源,并且系统时钟频率为8MHz。如果你不想使用外部晶振,并且不需要更快的时钟速度,那么内部RC晶振是一个简便、可靠的选择。 2. 改变系统时钟源 如果要将内部RC振荡器作为时钟源,只需改变系统时钟源即可。STM32F103RCT6有两种类型的时钟源:内部时钟源(HSI)和外部时钟源(HSE)。通过改变时钟源,MCU就可以使用不同的晶振或振荡器作为时钟源。使用内部晶振作为时钟源的步骤如下: (1)首先需要打开内部RC振荡器,可以使用如下代码: RCC_HSICmd(ENABLE);

(2)接下来需要将HSI设置为系统时钟源: RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI); 这时系统时钟源就由外部晶振改变为内部RC晶振。在MCU 工作时,请确保输入电压符合数据手册中给出的要求,否则会导致MCU运行不稳定或损坏。 3. 选择合适的外设时钟源 内部和外部时钟源可以被用作所有的外设的时钟源,但是需要注意使用每个外设时钟源时的时钟速度。例如,如果你想让USART1外设运行在115200bps的速率下,那么这个外设需要 使用8MHz的时钟速度。这时就需要配合使用时钟计算器来 计算。如果需要不同的外设使用不同的时钟速度,那么需要分别进行配置。 4. 总结 STM32F103RCT6内置了一个1MHz的内部RC振荡器作为系 统时钟源。修改系统时钟源的方式,内部晶振就可以取代外部晶振作为时钟源。这种方法适用于不需要超高速运行,在真正的实际应用中大多数情况下都可以满足需求。对于需要更高的时钟速度的应用场景,还需使用更高频率的外部晶振或时钟源。

基于STM32的教室智能灯控系统设计

摘要:针对学校照明用电浪费严重、人为手动控制不便的问题,对自动控制和手动控制相结合的教室照明控制系统进行了研究。提出了一种以stm32芯片为核心、采集多种传感器信号的控制终端,然后把每间教室的控制终端组成网络接入上位机的智能灯控系统设计方案。文章从单片机硬件设计、单片机程序设计和基于qt的上位机控制程序设计三方面详细介绍了系统。最后达到了远程控制、节约用电、提高资源利用率的目的。经过控制变量法的实验验证,并进行了系统功能的分析,实验结果和预期效果一致。 关键词:智能灯控;多传感器;单片机;上位机;远程控制 中图分类号:tp277 文献标识码:a 文章编号:2095-1302(2016)06-00-04 0 引言 随着我国教育业的发展,学校照明用电量急速增加,电能损失也呈现出增大的趋势。目前,国内外照明自动控制装置基本都采用被动的人体感应探测、可见光探测、热释电红外探测、声音探测等方法,但这些均存在一定的不足[1]。首先是方式单一,没有主动探测器,或虽有主动探测器,但灵敏度不高,经常出现教室无人时照明灯却一直工作以及有人情况下灯却熄灭的情况;其次,此类系统比较分立,网络化程度不高,无法实现对全部教室的统一管理[1]。 同时,国内大、中、小学校教室以及公用区的照明灯具控制大多采用普通开关,即使学校进行严格管理,仍不可避免地出现忘记关灯的现象,特别在白天情况下更是如此,从而造成了大量的能源浪费。此外,各种照明灯具都具有一定的使用时限,在白昼光线充足的情况下继续使用照明灯具,必然会缩短各种灯具的使用寿命[1-3]。以西北工业大学长安校区教学楼为例,经常出现教室里空无一人或者只有一两个人,但教室里的所有照明灯都打开的现象,同时,教学楼物业管理人员每次晚自习闭楼时需要一间一间去关灯,势必造成电能和人力资源的浪费。 为了更好地达到节能降耗、提高智能化程度、减轻管理员工作负担的目的,设计了基于stm32的教室照明智能灯控系统。该系统的特点是,利用光敏电阻检测室内不同地方的光照强度,利用红外热释电传感器检测人体,采用以stm32单片机为核心设计具有数据采集和处理装置功能的控制终端,而每间教室的控制终端接入基于qt实现的上位机组成网络,能够实现在教室无人或者光照充足时自动关灯、有人到来且光照不足时自动开灯的功能,物业管理员可以查看每间教室的照明情况,通过上位机远程控制关闭教室照明,采取自动和手动相结合的方式实现对教室照明的智能控制。 1 系统整体设计及工作方式 系统整体设计方案如图1所示,主要包括pc上位机控制端、串口转无线模块、教室控制终端和传感器等自动控制信号源四个部分。 结合图1可知系统有自动控制与手动控制两种工作方式。 1.1 自动控制 自动控制信号源包括热释红外传感器、光敏传感器和时钟模块。热释红外传感能够感应教室里是否有人,光敏传感器感应教室里的光照强度,时钟模块能够提供秒、分、时、日、周、月、年的信息。在自动控制模式下,当且仅当满足如下条件时灯才会打开:(1)教室里有人; (2)教室内光照不充足; (3)教学楼开放的时间段。 1.2 手动控制

华清远见嵌入式Linux课程

课程名称:嵌入式学院—嵌入式LINUX工程师就业培训班 上课时间为:上午9:00—12:00 下午13:30—17:30 (每天7小时正式上课时间)晚自习18:00—21:00 第一阶段:嵌入式Linux软件工程师 ▪职场定位:Linux Development Engineer for Software Engineering ▪本期目标:嵌入式系统是现在最热门的计算机应用领域之一,嵌入式C语言在其中起着至关重要的作用。一个精通C语言程序设计的程序员,可以很容易地进入Linux、WinCE、Vxworks等嵌入式操作系统下的软件开发工作.本阶段学习目标是掌握C语言基本知识、C编程语法基础和Linux 操作系统的使用,并熟练掌握嵌入式Linux的开发环境,为将来的编程工作打基础。

•第二阶段:嵌入式Linux系统工程师 ▪职场定位:Linux Development Engineer for Embedded Systems ▪证书:微软嵌入式工程师认证证书(认证费500元),红帽公司《Linux应用开发工程师证书》(认证费500元) ▪本期目标:参加本期培训的学员应该掌握嵌入式C语言编程技巧。嵌入式Linux应用开发和系统开发是嵌入式Linux中最重要的一部分,也是企业人才需求最广的一部分.本期学习的主要目标是精通嵌入式Linux下的程序设计,熟悉嵌入式Linux开发流程,强化学员对Linux应用开发的理解和编码调试的能力,同时掌握bootloader和kernel的移植技能,了解ARM体系结构和编程,具备ARM硬件接口的基础知识,并了解Linux内核开发相关内容,初步掌握Linux下的驱动程序开发方法.另外,本期课程还会让学员了解另外一个比较重要的嵌入式操作系统:Windows CE,使学员在掌握嵌入式Linux的同时,也了解Windows CE的开发方法,拓展学员的知识面,丰富学员的知识结构。最后通过几个典型的企业全真案例,进一步巩固本期课程内容,使学员真正学以致用。

相关主题
相关文档
最新文档