基于ARM920T的Samsung S3C2440A嵌入式系统实时时钟的分析与研究

2012-07-03 02:11
制造业自动化 2012年5期
关键词:寄存器中断时钟

续 蕾

(辽宁对外经贸学院 信息技术系,大连 116052)

0 引言

随着以手机、数码相机、机顶盒(STB)、MOBTV、PDA、MP4和IPTV等为代表的嵌入式系统新产品不断问世,嵌入式系统已成为了IT业的一个焦点。而相当数量的嵌入式系统对实时性要求很高,因此实时性也成为了评价一个嵌入式系统优劣的重要标准。那么对于一个嵌入式系统的实时性起着至关重要作用的实时时钟的性能也越来越被人们重视起来。

1 嵌入式系统

嵌入式系统依托微电子技术、操作系统等相关技术的快速发展,目前已经渗透到日常生活、工业生产、通信和交通运输工具等众多领域,极大地推动了信息社会的构建和发展。嵌入式系统技术涵盖了计算机、电子与通信、自动控制等众多领域,已经成为相关领域研究、应用和开发专业技术人员必须掌握的重要技术之一。

2 ARM微处理器

提到微处理器大家都会想到Intel公司和AMD公司的产品,但在当今嵌入式系统应用中还有一个同样响亮的名字ARM微处理器,它是一种RISC架构下嵌入式系统的核心部件,被广泛的应用到工业控制、无线通讯、消费类电子产品等很多领域。ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。ARM公司成立于1990年11月,全称是“Advanced RISC Machines Ltd.”,它是由英国Acorn公司提供技术和12名工程师、美国苹果电脑和VLSI Technology出资合手组建的美英混血公司。是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。

2.1 ARM9微处理器

随着更多应用在嵌入式系统中的实现,嵌入式系统设计向着更高级、更复杂的方向发展。作为32位结构体系中的佼佼者,ARM在各种领域里得到了极其广泛的应用。而ARM9系列微处理器在高性能和低功效方面提供了最佳性能。目前,ARM9系列微处理器主要用于无线设备、仪器仪表、安全系统、机顶盒、数码相机和摄像机等。

2.2 S3C2440A微处理器

S3C2440A 微处理器是一款由Samsung公司为手持设备设计的低功耗、高度集成的微处理器,内含一个ARM920T 内核,0.13μm CMOS标准宏单元和存储单元。它的低功耗、精简和出色的全静音设计特别适用于对成本和功耗敏感的应用。同样,它还采用了AMBA(Advanced Microcontroller Bus Architecture)的总线结构。S3C2440A的显著特性是它的CPU核心,是一个16/32位ARM920T RISC处理器。ARM920T实现了MMU、AMBA BUS和Harvard高速缓冲体系结构。通过提供一系列完整的系统外围设备,S3C2440A大大减少了整个系统的成本,消除了为系统系统配置额外器件的需要。

S3C2440A的片内外围:1个LCD控制器(支持STN和TFT带有触摸屏的液晶显示器)、SDRAM控制器、3个通道的UART、4个通道的DMA、 4个具有PWM功能的计时器和1个内部时钟、 8通道的10位ADC、触摸屏接口、I*2C总线接口、 1个USB主机接口,1个USB设备接口、 2个SPI接口SD接口和MMC卡接口、117位通用I/O口和24位外部中断源、8通道10位AD控制器,ADC语音输入接口AC97,摄像头的接口Camera interface。

在时钟方面S3C2440A也有突出的特点,该芯片集成了一个具有日历功能的RTC和具有PLL(MPLL和UPLL)的芯片时钟发生器。MPLL产生主时钟,能够使处理器工作频率最高达到203MHz。这个工作频率能够使处理器轻松运行于Windows CE,Linux等操作系统以及进行较为复杂的信息处理。UPLL产生实现主从USB功能的时钟。

3 嵌入式系统的实时时钟

实时系统是系统运行时的反馈信息或者指令,必须在要求的时间内发出或者返回,否则视为无效。例如,数据采集的时候,必须在对应的时间内得到信号,以保证数据采集的有效性。实时时钟是采用独立的晶振(或集成),拥有独立供电系统,永不间断的运行,从而给系统提供可靠的系统时间。

在一个嵌入式系统中,实时时钟单元可以提供可靠的时钟,包括分秒和年月日。即使在系统处于关机状态下,它也能正常工作,它的外围也不需要太多的电路,典型的就是只需要一个高精度的晶振。实时时钟的基本功能是保持跟踪时间和日期等信息,但许多RTC还提供有多种附加功能,如:看门狗定时器、系统复位、非易失存储器(NVRAM)、序列号、方波输出、涓流充电等。

3.1 时钟格式

在电路设计中使用的时钟格式主要有三种:BCD码、二进制码、未格式化的二进制计数值。其中BCD码比较通用,因为它的时间和日期可以直接显示,且不需要进行数据转换,每8位寄存器表示一个二位数,对于某些特殊的时间和日期,由于不占用全部8位数据,因此,不用的位可以充当一些特殊功能(如用作读/写位),也可以在硬件读取时始终保持固定状态(1或0)。二进制码格式与BCD码一样具有独立的秒、分钟、小时、星期、日、月、年寄存器,在一些提供BCD码格式的RTC中,常常也提供可选择的二进制码格式。时间和日期寄存器每秒钟更新一次,日期循环与月、年有关。星期寄存器与其它寄存器的变化关系不大,在子夜更新数据,数据从7至1循环变化,程序中可以用1表示任何一个特定的星期数,只要在整个程序中指定数值保持一致即可。在12小时制与24小时制或BCD码与二进制码之间进行转换时,时间、日期、闹钟寄存器需要重新进行初始化。二进制计数码用一个多字节(一般为32位)寄存器来存储时间信息,时间信息用一个秒计数值表示,并可通过软件将秒计数值转换为合理的时间和日期。

3.2 S3C2440A的实时时钟单元

S3C2440A的实时时钟单元,时钟数据采用BCD码,能够对闰年的年月日进行自动处理而且具有告警功能,当系统处于关机状态时,能产生告警中断。具有独立的电源输入,提供毫秒级时钟中断,该中断可用作嵌入式系统操作系统的内核时钟。S3C2440A的实时时钟寄存器有控制寄存器、告警控制寄存器、实时时钟计数器、告警时间寄存器。

S3C2440A的实时时钟主要功能:

1)时钟滴答功能

设置TICK的周期,rTICT=0x7F│0x80;计算公式:T=(1+0X7F)/128s。

注册中断服务例程。使用install_isr_handler(HaandleRTC,(void*)rtc_int_isr)将中断服务例程的地址填写到中断地址表中。rtc_int_isr的函数为RTC TIMETICK 的处理例程。

输入当前时间,并通过串口显示时间的运行情况。设置当前时间,即向各个寄存器赋初值。

每个1s读取一下时钟数据,并通过串口显示数据。

2)时间告警功能

模式0x41表示RTC告警,以及秒时钟告警。注册中断例程,打开中断。

3.3 应用实时时钟的程序

程序使用中断方式处理TIME TICK以及告警,同时需要正确设置中断的工作方式。读取的时钟数据格式是BCD码;在输入初始时间时也用BCD码的格式输入。

程序编写包括三步,第一步是时钟初始化,第二步把嵌入式系统投入运行时要将当前准确时间写入RTC,俗称效表;第三步是系统正常运行后,读取RTC时间在LCD上显示。

嵌入式系统投入运行时将当前准确时间写入RTC的程序代码:

void RTC_Time_Set( U8 wRTCyear,U8 wRTCmon,U8 wRTCdate,U8 wRTCday,U8 wRTChour,U8 wRTCmin,U8 wRTCsec )//时间设置函数

4 结论

本文通过对嵌入式系统的分析,及Samsung公司ARM9处理器S3C2440A芯片实时时钟结构功能的研究。采用S3C2440A中提供的RTC时间节拍中断,让它在规定时间中断一次,每次中断读取时间,刷新一次实时时钟,实现RTC的实时控制。并通过应用程序的编写充分利用S3C2440A芯片实时时钟单元资源,提高了整个系统的性能,为在需要时钟作为参考的工作环境提供了便利。

[1] 肖俐平,孙岩.基于ARM的嵌入式系统组网设计与实[J].测控技术.2007.

[2] 闵华松,魏洪兴.嵌入式系统在电子信息类专业教学中的推广[J].单片机与嵌入式系统应用.2010.

[3] 周剑玲,梁秀荣.基于GPRS网络的嵌入式系统的研究[J],微计算机信息.2009.

猜你喜欢
寄存器中断时钟
别样的“时钟”
古代的时钟
Lite寄存器模型的设计与实现
“单片机中断概述”微课教学设计
一种考虑GPS信号中断的导航滤波算法
二进制翻译中动静结合的寄存器分配优化方法
Linux中断线程化分析及中断延时测试
移位寄存器及算术运算应用
跟踪导练(二)(5)
有趣的时钟