S3C2440 Windows CE的RTC模块驱动设计与实现
- UID
- 1029342
- 性别
- 男
|
S3C2440 Windows CE的RTC模块驱动设计与实现
桌面Windows系统的时间显示功能已为大家所熟知,它是通过BIOS上的时钟模块实现的。用户通过点击桌面系统任务栏右下脚的时间,可以修改当前时间、时区以及实现与Internet时间同步等功能。 目前流行的手机、PDA、HMI(人机接口设备)等嵌入式系统中,都大量移植了微软的Windows CE操作系统。虽然WinCE系统也实现了时间显示,但是在具体的实现中,其原理和方法与桌面系统大不相同,即使是基于不同嵌入式硬件平台的WinCE开发,也有所不同。由于嵌入式系统的复杂性、分散性,目前嵌入式系统的实时时钟RTC功能的实现,大部分是在基于内嵌于SoC处理器的RTC功能IP模块的基础上,通过软件驱动实现的。
S3C2440是三星公司推出的一款基于ARM920T处理器构架的低功耗、高性能的嵌入式SoC处理器,应用极为广泛。RTC是S3C2440的一个内部功能模块,本文首先对于S3C2440的硬件架构进行介绍,在此基础上对S3C2440的RTC功能模块的工作机理进行了分析,最后给出Windows CE.net下的RTC功能的驱动程序设计、实现,本驱动程序成功地应用在基于S3C2440 Window CE平台的手持GPS机实时时钟功能的实现,对于基于Windows CE.net其它硬件平台的RTC功能实现具有一定的借鉴作用。
2、硬件构架
WinCE下RTC功能实现是基于RTC模块的,在此先对S3C2440处理器作简单介绍,主要对于S3C2440的RTC的硬件结构、工作机理进行分析,这些是Windows CE.net下RTC功能实现的基础。
2.1、简介
S3C2440是三星公司推出的基于ARM920T的嵌入式处理器,主频高达400MHz,最高可达533MHz,低功耗、高性能,广泛地应用于PDA、便携媒体播放器、卫星导航仪等多媒体终端,片上集成指令/数据分开的16KCache、SDRAM控制器、LCD控制器、4通道DMA、3通道UART、IIC总线、IIS总线、SD主机接口、PWM定时器、看门狗、片上PLL时钟发生器、8通道10位AD控制器和触摸屏接口以及带日历函数的实时时钟,极大地方便于系统开发。
2.2、S3C244O处理器的RTC硬件构架
S3C2440内部RTC模块结构框图如图1所示。S3C2440处理器的RTC模块依靠外部32.768kHz晶振提供基准时钟,系统能够在断电的情况下由后备电池供电继续工作,能够将8位数据转换为BCD码的格式传送给处理器。这些数据包括秒、分、时、日期、星期、月、年。
如图1所示,RTC模块由基准晶振的连接引脚、时钟滴答发生器、215时钟分频器、控制和重置寄存器、闰年发生器、报警发生器以及BCD数字(秒、分、时、日期、星期、月、年)等几部分组成:XTlrtc与XTortc是连接外部晶振32.768kHz的两个引脚,为RTC内部提供输入。215时钟分频器负责对基准频率进行分频。时钟滴答发生器可以产生时钟滴答,它可以引起中断。闰年发生器按照从日期、月、年得来的BCD数据决定一个月最后一天是28、29、30还是31号(也就是计算是否是闰年)。报警发生器可以根据系统设定时间和当前时间决定是否报警。控制寄存器控制包括读/写BCD寄存器使能、时钟复位、时钟选择等。重置寄存器可以选择”秒”对”分”进位边界,提供三个可选边界:30、40或者50秒。
图1S3C2440内部RTC模块结构图 |
|
|
|
|
|