位置:51电子网 » 技术资料 » 接口电路

S3C2440 Windows CE的RTC模块驱动设计与实现

发布时间:2008/8/20 0:00:00 访问次数:705

  1 引言

  桌面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功能的驱动程序设计、实现,本驱动程序成功地应用在基于s3c2440window 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秒。

     

     图1 s3c2440内部rtc模块结构图
  

  2.3 s3c2440处理器的rtc工作原理
  
  由rtc模块的结构图可以看出,rtc模块的有三种功能:产生时钟滴答、实时计时和作为系统的触发唤醒器。rtc时钟滴答可以作为实时操作系统(rtos)的内核时钟滴答,当时钟滴答周期确定后,就会定时产生中断,操作系统的中断服务程序会实时处理这个中断。
  
  rtc模块可以在处理器的掉电模式或普通模式在设定时间(由bcd数据给出)和当前时间相同时发生报警。在普通模式下,almint(报警中断)处于激活状态。在掉电模式下,pmwkup(电源管理唤醒信号)与almint一起处于报警状态。
  
  rtc最重要的功能就是显示时间。在掉电模式下,rtc依然能够正常工作,此时,rtc模块通过外部的电池工作。rtc时间显示功能是通过读/写寄存器来实现的。要显示秒、分、时、日期、月、年,处理器只要读取存在于bcdsec、bcdmin、bcdhour、bcdday、bcddate、bcdmon和bcdyear寄存器中的值即可。

  3 驱动程序实现
  
  本rtc功能的实现在基于s3c2440嵌入式开发平台上,通过wince下的rtc模块的驱动程序完成,而wince下rtc的驱动是在底层实现的,具体要在oal(oem adaption layer)实现。下面对于oal代码层进行简要介绍,然后分析rtc驱动代码,在此基础上给出部分源程序。
  
  3.1 oal概述
  
  oal的全称是oem adaption layer,即原始设备制造商适配层。从逻辑结构上看,它位于操作系统的内核与硬

  1 引言

  桌面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功能的驱动程序设计、实现,本驱动程序成功地应用在基于s3c2440window 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秒。

     

     图1 s3c2440内部rtc模块结构图
  

  2.3 s3c2440处理器的rtc工作原理
  
  由rtc模块的结构图可以看出,rtc模块的有三种功能:产生时钟滴答、实时计时和作为系统的触发唤醒器。rtc时钟滴答可以作为实时操作系统(rtos)的内核时钟滴答,当时钟滴答周期确定后,就会定时产生中断,操作系统的中断服务程序会实时处理这个中断。
  
  rtc模块可以在处理器的掉电模式或普通模式在设定时间(由bcd数据给出)和当前时间相同时发生报警。在普通模式下,almint(报警中断)处于激活状态。在掉电模式下,pmwkup(电源管理唤醒信号)与almint一起处于报警状态。
  
  rtc最重要的功能就是显示时间。在掉电模式下,rtc依然能够正常工作,此时,rtc模块通过外部的电池工作。rtc时间显示功能是通过读/写寄存器来实现的。要显示秒、分、时、日期、月、年,处理器只要读取存在于bcdsec、bcdmin、bcdhour、bcdday、bcddate、bcdmon和bcdyear寄存器中的值即可。

  3 驱动程序实现
  
  本rtc功能的实现在基于s3c2440嵌入式开发平台上,通过wince下的rtc模块的驱动程序完成,而wince下rtc的驱动是在底层实现的,具体要在oal(oem adaption layer)实现。下面对于oal代码层进行简要介绍,然后分析rtc驱动代码,在此基础上给出部分源程序。
  
  3.1 oal概述
  
  oal的全称是oem adaption layer,即原始设备制造商适配层。从逻辑结构上看,它位于操作系统的内核与硬

相关IC型号

热门点击

 

推荐技术资料

耳机放大器
    为了在听音乐时不影响家人,我萌生了做一台耳机放大器的想... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!