S3C2440 Windows CE的RTC模塊驅動設計與實現
桌面Windows系統(tǒng)的時間顯示功能已為大家所熟知,它是通過BIOS上的時鐘模塊實現的。用戶通過點擊桌面系統(tǒng)任務欄右下腳的時間,可以修改當前時間、時區(qū)以及實現與Internet時間同步等功能。
目前流行的手機、PDA、HMI(人機接口設備)等嵌入式系統(tǒng)中,都大量移植了微軟的Windows CE操作系統(tǒng)。雖然WinCE系統(tǒng)也實現了時間顯示,但是在具體的實現中,其原理和方法與桌面系統(tǒng)大不相同,即使是基于不同嵌入式硬件平臺的WinCE開發(fā),也有所不同。由于嵌入式系統(tǒng)的復雜性、分散性,目前嵌入式系統(tǒng)的實時時鐘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、便攜媒體播放器、衛(wèi)星導航儀等多媒體終端,片上集成指令/數據分開的16KCache、SDRAM控制器、LCD控制器、4通道DMA、3通道UART、IIC總線、IIS總線、SD主機接口、PWM定時器、看門狗、片上PLL時鐘發(fā)生器、8通道10位AD控制器和觸摸屏接口以及帶日歷函數的實時時鐘,極大地方便于系統(tǒng)開發(fā)。
2.2 S3C244O處理器的RTC硬件構架
S3C2440內部RTC模塊結構框圖如圖1所示。S3C2440處理器的RTC模塊依靠外部32.768kHz晶振提供基準時鐘,系統(tǒng)能夠在斷電的情況下由后備電池供電繼續(xù)工作,能夠將8位數據轉換為BCD碼的格式傳送給處理器。這些數據包括秒、分、時、日期、星期、月、年。
如圖1所示,RTC模塊由基準晶振的連接引腳、時鐘滴答發(fā)生器、215時鐘分頻器、控制和重置寄存器、閏年發(fā)生器、報警發(fā)生器以及BCD數字(秒、分、時、日期、星期、月、年)等幾部分組成:XTlrtc與XTortc是連接外部晶振32.768kHz的兩個引腳,為RTC內部提供輸入。215時鐘分頻器負責對基準頻率進行分頻。時鐘滴答發(fā)生器可以產生時鐘滴答,它可以引起中斷。閏年發(fā)生器按照從日期、月、年得來的BCD數據決定一個月最后一天是28、29、30還是31號(也就是計算是否是閏年)。報警發(fā)生器可以根據系統(tǒng)設定時間和當前時間決定是否報警??刂萍拇嫫骺刂瓢ㄗx/寫B(tài)CD寄存器使能、時鐘復位、時鐘選擇等。重置寄存器可以選擇”秒”對”分”進位邊界,提供三個可選邊界:30、40或者50秒。
圖1 S3C2440內部RTC模塊結構圖
2.3 S3C2440處理器的RTC工作原理
由RTC模塊的結構圖可以看出,RTC模塊的有三種功能:產生時鐘滴答、實時計時和作為系統(tǒng)的觸發(fā)喚醒器。RTC時鐘滴答可以作為實時操作系統(tǒng)(RTOS)的內核時鐘滴答,當時鐘滴答周期確定后,就會定時產生中斷,操作系統(tǒng)的中斷服務程序會實時處理這個中斷。
RTC模塊可以在處理器的掉電模式或普通模式在設定時間(由BCD數據給出)和當前時間相同時發(fā)生報警。在普通模式下,ALMINT(報警中斷)處于激活狀態(tài)。在掉電模式下,PMWKUP(電源管理喚醒信號)與ALMINT一起處于報警狀態(tài)。
RTC最重要的功能就是顯示時間。在掉電模式下,RTC依然能夠正常工作,此時,RTC模塊通過外部的電池工作。RTC時間顯示功能是通過讀/寫寄存器來實現的。要顯示秒、分、時、日期、月、年,處理器只要讀取存在于BCDSEC、BCDMIN、BCDHOUR、BCDDAY、BCDDATE、BCDMON和BCDYEAR寄存器中的值即可。
評論