基于S3C2410的RTC模塊應(yīng)用設(shè)計
發(fā)布時間:2008/5/26 0:00:00 訪問次數(shù):1307
    
    
    摘 要:本文簡要介紹了s3c2410嵌入式微處理器,分析了rtc(real-time clock)硬件構(gòu)架及其工作機(jī)理,在此基礎(chǔ)上給出了rtc模塊的應(yīng)用功能開發(fā)流程及各功能模塊的實現(xiàn)。
    關(guān)鍵詞:s3c2410;rtc
    引言
    本文在介紹s3c2410的基礎(chǔ)上,對rtc內(nèi)部結(jié)構(gòu)及工作機(jī)理進(jìn)行了分析,最后給出了專用于rtc功能的應(yīng)用開發(fā)。
    硬件結(jié)構(gòu)
    s3c2410處理器簡介
    s3c2410是三星公司推出的16/32位risc微處理器,它是為應(yīng)用于小型掌上設(shè)備和高性價比、低功耗、高性能的嵌入式系統(tǒng)應(yīng)用而提供的微控制解決方案。s3c2410使用了arm920t內(nèi)核。
    
    
    圖1 s3c2410內(nèi)部rtc模塊結(jié)構(gòu)圖
    硬件構(gòu)架
    rtc模塊能夠在系統(tǒng)斷電的情況下由后備電池供電繼續(xù)工作,它能將8位數(shù)據(jù)轉(zhuǎn)換為bcd碼的格式傳送給cpu。這些數(shù)據(jù)包括秒、分、時、日期、星期、月、年。rtc模塊需要一個外部晶振提供32.768khz的頻率才能工作,它也能完成報警功能。
    s3c2410內(nèi)部rtc模塊結(jié)構(gòu)框圖如圖1所示。xtlrtc 與xtortc是連接外部晶振的兩個引腳,它們連接32.768khz的晶振,為rtc內(nèi)部提供頻率輸入。215時鐘分頻器負(fù)責(zé)對從晶振外部輸入的信號進(jìn)行分頻,分頻精度為215。時鐘滴答發(fā)生器可以產(chǎn)生時鐘滴答,它可以引起中斷,它由一個叫做ticnt的寄存器進(jìn)行設(shè)置,寄存器中有一位中斷使能位和計數(shù)數(shù)值n(n可取1~127),時鐘滴答的周期按照下式計算:
    周期=(n+1)/128 秒 (1)
    閏年發(fā)生器按照從日期、月、年得來的bcd數(shù)據(jù)決定一個月的最后一天是28、29、30還是31號(也就是計算是否是閏年)。報警發(fā)生器可以根據(jù)具體的時間決定是否報警?刂萍拇嫫骺刂谱x/寫bcd寄存器的使能、時鐘復(fù)位、時鐘選擇等。重置寄存器可以選擇“秒”對“分”進(jìn)位的邊界,提供三個可選邊界:30、40或者50秒。
    rtc最重要的功能就是顯示時間。在掉電模式下,rtc依然能夠正常工作,此時,rtc模塊通過外部的電池工作。電池一般選用能夠提供1.8v電壓的銀芯電池,電池與專用于rtc電源的引腳rtcvdd連接。rtc時間顯示功能是通過讀/寫寄存器實現(xiàn)的。要顯示秒、分、時、日期、月、年,cpu必須讀取存于bcdsec,bcdmin,bcdhour,bcdday,bcddate, bcdmon與bcdyear寄存器中的值。時間的設(shè)置也是通過以上的寄存器實現(xiàn)的,即以上寄存器是可讀可寫的。
    
    
    圖2 rtc應(yīng)用開發(fā)流程圖
    程序設(shè)計
    本設(shè)計基于s3c2410嵌入式開發(fā)平臺,并結(jié)合pc的超級終端完成rtc模塊的初始化、時間顯示(顯示于超級終端)、時間設(shè)置、重置測試、報警測試、時鐘滴答測試等功能。其程序開發(fā)流程如圖2所示。為了完成以上功能,需要前期的一些初始化工作。
    硬件初始化
    rtc模塊不是孤立的,它是s3c2410的一個內(nèi)部模塊,要對其編程,必須完成對基于s3c2410的嵌入式系統(tǒng)的初始化。初始化工作包括對s3c2410和串口的初始化以及一些輔助函數(shù)的實現(xiàn)。
    s3c2410的初始化工作包括程序入口點(diǎn)定義、中斷矢量的確定、堆棧的初始化、電源管理(包括掉電與重啟處理)、s3c2410各模塊的寄存器地址定義及其初始化,以上初始化工作與硬件緊密相關(guān),采用32位的arm/thumb指令集進(jìn)行編程。
    本設(shè)計使用pc機(jī)的超級終端作為人機(jī)接口,完成rtc模塊的調(diào)試、時間顯示及命令選擇。因此,在rtc模塊功能設(shè)計之前要完成對串行口的初始化。串口的初始化由設(shè)置pclk(cpu系統(tǒng)時鐘)、波特率設(shè)置、控制寄存器設(shè)置等幾部分完成。這部分程序與硬件相關(guān)性不是特別緊密,可以用嵌入式c語言完成。在進(jìn)行人機(jī)接口交互時,需要從超級終端輸入/輸出一些信息。
    功能設(shè)計
    完成初始化工作之后,進(jìn)行rtc模塊的功能應(yīng)用開發(fā)。功能應(yīng)用按照自頂向下的程序設(shè)計思路,可以分為不同的功能模塊來分別實現(xiàn)。這些功能模塊由具體的函數(shù)實現(xiàn),在編寫main()函數(shù)時,可以按完成功能的不同,分別調(diào)用不同的子函數(shù)。下面介紹各功能模塊子函數(shù)的實現(xiàn)。
    rtc模塊初始化由函數(shù)
    
    
    摘 要:本文簡要介紹了s3c2410嵌入式微處理器,分析了rtc(real-time clock)硬件構(gòu)架及其工作機(jī)理,在此基礎(chǔ)上給出了rtc模塊的應(yīng)用功能開發(fā)流程及各功能模塊的實現(xiàn)。
    關(guān)鍵詞:s3c2410;rtc
    引言
    本文在介紹s3c2410的基礎(chǔ)上,對rtc內(nèi)部結(jié)構(gòu)及工作機(jī)理進(jìn)行了分析,最后給出了專用于rtc功能的應(yīng)用開發(fā)。
    硬件結(jié)構(gòu)
    s3c2410處理器簡介
    s3c2410是三星公司推出的16/32位risc微處理器,它是為應(yīng)用于小型掌上設(shè)備和高性價比、低功耗、高性能的嵌入式系統(tǒng)應(yīng)用而提供的微控制解決方案。s3c2410使用了arm920t內(nèi)核。
    
    
    圖1 s3c2410內(nèi)部rtc模塊結(jié)構(gòu)圖
    硬件構(gòu)架
    rtc模塊能夠在系統(tǒng)斷電的情況下由后備電池供電繼續(xù)工作,它能將8位數(shù)據(jù)轉(zhuǎn)換為bcd碼的格式傳送給cpu。這些數(shù)據(jù)包括秒、分、時、日期、星期、月、年。rtc模塊需要一個外部晶振提供32.768khz的頻率才能工作,它也能完成報警功能。
    s3c2410內(nèi)部rtc模塊結(jié)構(gòu)框圖如圖1所示。xtlrtc 與xtortc是連接外部晶振的兩個引腳,它們連接32.768khz的晶振,為rtc內(nèi)部提供頻率輸入。215時鐘分頻器負(fù)責(zé)對從晶振外部輸入的信號進(jìn)行分頻,分頻精度為215。時鐘滴答發(fā)生器可以產(chǎn)生時鐘滴答,它可以引起中斷,它由一個叫做ticnt的寄存器進(jìn)行設(shè)置,寄存器中有一位中斷使能位和計數(shù)數(shù)值n(n可取1~127),時鐘滴答的周期按照下式計算:
    周期=(n+1)/128 秒 (1)
    閏年發(fā)生器按照從日期、月、年得來的bcd數(shù)據(jù)決定一個月的最后一天是28、29、30還是31號(也就是計算是否是閏年)。報警發(fā)生器可以根據(jù)具體的時間決定是否報警。控制寄存器控制讀/寫bcd寄存器的使能、時鐘復(fù)位、時鐘選擇等。重置寄存器可以選擇“秒”對“分”進(jìn)位的邊界,提供三個可選邊界:30、40或者50秒。
    rtc最重要的功能就是顯示時間。在掉電模式下,rtc依然能夠正常工作,此時,rtc模塊通過外部的電池工作。電池一般選用能夠提供1.8v電壓的銀芯電池,電池與專用于rtc電源的引腳rtcvdd連接。rtc時間顯示功能是通過讀/寫寄存器實現(xiàn)的。要顯示秒、分、時、日期、月、年,cpu必須讀取存于bcdsec,bcdmin,bcdhour,bcdday,bcddate, bcdmon與bcdyear寄存器中的值。時間的設(shè)置也是通過以上的寄存器實現(xiàn)的,即以上寄存器是可讀可寫的。
    
    
    圖2 rtc應(yīng)用開發(fā)流程圖
    程序設(shè)計
    本設(shè)計基于s3c2410嵌入式開發(fā)平臺,并結(jié)合pc的超級終端完成rtc模塊的初始化、時間顯示(顯示于超級終端)、時間設(shè)置、重置測試、報警測試、時鐘滴答測試等功能。其程序開發(fā)流程如圖2所示。為了完成以上功能,需要前期的一些初始化工作。
    硬件初始化
    rtc模塊不是孤立的,它是s3c2410的一個內(nèi)部模塊,要對其編程,必須完成對基于s3c2410的嵌入式系統(tǒng)的初始化。初始化工作包括對s3c2410和串口的初始化以及一些輔助函數(shù)的實現(xiàn)。
    s3c2410的初始化工作包括程序入口點(diǎn)定義、中斷矢量的確定、堆棧的初始化、電源管理(包括掉電與重啟處理)、s3c2410各模塊的寄存器地址定義及其初始化,以上初始化工作與硬件緊密相關(guān),采用32位的arm/thumb指令集進(jìn)行編程。
    本設(shè)計使用pc機(jī)的超級終端作為人機(jī)接口,完成rtc模塊的調(diào)試、時間顯示及命令選擇。因此,在rtc模塊功能設(shè)計之前要完成對串行口的初始化。串口的初始化由設(shè)置pclk(cpu系統(tǒng)時鐘)、波特率設(shè)置、控制寄存器設(shè)置等幾部分完成。這部分程序與硬件相關(guān)性不是特別緊密,可以用嵌入式c語言完成。在進(jìn)行人機(jī)接口交互時,需要從超級終端輸入/輸出一些信息。
    功能設(shè)計
    完成初始化工作之后,進(jìn)行rtc模塊的功能應(yīng)用開發(fā)。功能應(yīng)用按照自頂向下的程序設(shè)計思路,可以分為不同的功能模塊來分別實現(xiàn)。這些功能模塊由具體的函數(shù)實現(xiàn),在編寫main()函數(shù)時,可以按完成功能的不同,分別調(diào)用不同的子函數(shù)。下面介紹各功能模塊子函數(shù)的實現(xiàn)。
    rtc模塊初始化由函數(shù)
熱門點(diǎn)擊
- 基于AT89C51型單片機(jī)的號音自動播放器設(shè)
- 基于S3C2410的RTC模塊應(yīng)用設(shè)計
- 基于AT89C4051單片機(jī)的專用信號發(fā)生器
- 基于IIC1.0的時鐘芯片應(yīng)用程序設(shè)計
- 80C51復(fù)位標(biāo)志位的設(shè)置與應(yīng)用研究
- 一種基于單片機(jī)的新型線陣CCD電路
- 一種基于單片機(jī)的正弦波輸出逆變電源的設(shè)計
- PIC單片機(jī)引腳中斷程序的設(shè)計技巧
- 基于凌陽SPCE061A的頻率測量計
- 基于普通單片機(jī)的LIN協(xié)議實現(xiàn)方案
推薦技術(shù)資料
- CV/CC InnoSwitch3-AQ 開
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究