引言
嵌入式技術(shù)是當(dāng)前發(fā)展速度最快,、應(yīng)用最廣、前景最好的信息技術(shù)領(lǐng)域之一,。目前,,社會上嵌入式系統(tǒng)人才短缺的現(xiàn)狀給各大高校帶來了契機(jī),很多高校的電子信息工程專業(yè)都開設(shè)了相關(guān)的嵌入式課程,。嵌入式系統(tǒng)主要由兩部分組成:一是硬件,,二是軟件。本設(shè)計是基于32位ARM7TDMI-S核的LPC2131微控制器,,內(nèi)部帶有獨立電源和時鐘源的實時時鐘,,在節(jié)電模式下極大地降低了功耗。通過硬件和軟件的結(jié)合操作,,實現(xiàn)了對內(nèi)部各個時間寄存器的秒,、分、小時,、日,、月、年和星期的控制,,能夠?qū)⒉杉礁鱾€時間數(shù)據(jù)通過串口發(fā)送到上位機(jī)上,,達(dá)到實時系統(tǒng)的顯示功能。此設(shè)計便于形成專用的時鐘控制的嵌入式裝置,,也能夠嵌入到各種智能化應(yīng)用系統(tǒng)中,。
1 系統(tǒng)工作原理
該系統(tǒng)主要基于LPC2131為核心的主控電路,由JTAG下載模塊,、外部時鐘源模塊,、ARM7微控制器模塊、串口通信模塊(RS-232)等電路組成,。LPC2131微控制器內(nèi)部帶有實時時鐘模塊,,可以由外部獨立的時鐘振蕩器來提供時鐘源或由基于內(nèi)部VPB時鐘的可編程預(yù)分頻器來提供時鐘源,達(dá)到對時鐘寄存器秒,、分,、小時,、日、月,、年和星期的控制,。同時將控制的數(shù)據(jù)通過串口與PC機(jī)通信,來實現(xiàn)結(jié)果,,將數(shù)據(jù)顯示在PC機(jī)上。
1.1 實時時鐘內(nèi)部結(jié)構(gòu)介紹
LPC2131內(nèi)部實時時鐘結(jié)構(gòu)框圖如圖1所示,。實時時鐘包含混合寄存器,、時間寄存器、時間計數(shù)器,、報警寄存器和預(yù)分頻器等,。其中,混合寄存器包括:中斷位置寄存器(ILR),、時鐘節(jié)拍計數(shù)器(CTC),、時鐘控制寄存器(CCR)、計數(shù)器遞增中斷寄存器(CIIR),、報警屏蔽寄存器(A-MR),;時間計數(shù)器包括:秒寄存器(SEC)、分寄存器(MIN),、小時寄存器(HOUR),、日期寄存器(DOM)、星期寄存器(DOW),、年寄存器(DOY),、月寄存器(MONTH)、年寄存器(YEAR),;時間寄存器組包括:完整時間寄存器0(CTIME0),、完整時間寄存器1(CTIME1)、完整時間寄存器2(CTIME2),;報警寄存器包括:秒報警值(ALSEC),、分報警值(ALMIN)、小時報警值(ALHOUR),、日期報警值(ALDOM),、星期報警值(ALDOW)、月報警值(ALM-ON),、年報警值(ALYEAR),;預(yù)分頻器包括:預(yù)分頻值整數(shù)部分(PREINT)、預(yù)分頻值小數(shù)部分(PREFRAC),。
1.2 實時時鐘的基本操作
首先,,設(shè)置時鐘控制寄存器(CCR)可以選擇RTC的計數(shù)時鐘,,可以由外部振蕩器32.768 kHz提供或內(nèi)部Fpclk分頻得到。當(dāng)使用Fpclk作為時鐘源時,,它的基準(zhǔn)時鐘分頻器允許調(diào)節(jié)任何頻率高于65.536 kHz的外設(shè)時鐘源產(chǎn)生一個32.768 kHz的基準(zhǔn)時鐘,,實現(xiàn)準(zhǔn)確計時操作。
其次,,如果CCR選擇內(nèi)部時鐘源,,則設(shè)置RTC基準(zhǔn)時鐘分頻器(PREINT、PREFRAC),,如果選擇外部32.768kHz就不必設(shè)置預(yù)分頻寄存器的值,,預(yù)分頻寄存器值的計數(shù)如下:
接著初始化實時時鐘(RTC)的各個時鐘值,如YEAR,、MONTH,、DOM等,報警中斷設(shè)置,,如CIIR,、AMR等,然后啟動RTC,,即CCR的CLKEN位置位,,讀取完整的時間寄存器值。在此過程中時鐘節(jié)拍計數(shù)器(CTC)是一個15位計數(shù)器,,每秒計數(shù)32 768個時鐘,,當(dāng)有CTC秒進(jìn)位時,完整時間CTIME0~CTIME2,、RTC時間寄存器(如SEC,、MIN)將會更新。實時時鐘中斷有兩種:一種增量中斷,,由CIIR控制,;另一種為報警中斷。本設(shè)計使用的是增量中斷,。
最后將串口初始化,,設(shè)置串口的波特率、數(shù)據(jù)位,、停止位,、校驗位等,將串口與上位機(jī)連接,,將串口采集到的時間寄存器變化的時間值發(fā)送到上位機(jī)上顯示,,得到對實時時鐘的控制結(jié)果。
1.3 寄存器的功能介紹
時鐘控制寄存器(CCR)是一個5位寄存器,,控制時鐘電路的分頻操作,。計數(shù)器增量中斷寄存器(CIIR):可以使計數(shù)器每次增加時產(chǎn)生一次中斷,,在中斷位置寄存器的位0(ILR[0])寫入1之前,該中斷一直保持有效,。完整時間寄存器0(CTIME0)和完整時間寄存器1(CTIME1):
CTIME0包括秒,、分、小時,、和星期,,CTIME1包括日期、月和年,。具體寄存器描述略——編者注,。
預(yù)分頻整數(shù)寄存器(PREINT):預(yù)分頻的整數(shù)部分。預(yù)分頻整數(shù)部分計算如下:
預(yù)分頻小數(shù)寄存器(PREFRAC):預(yù)分頻的小數(shù)部分,。預(yù)分頻小數(shù)部分計算如下:
2 系統(tǒng)硬件設(shè)計
2.1 系統(tǒng)的硬件結(jié)構(gòu)
該系統(tǒng)對ARM7微控制器LPC2131的實時時鐘模塊的各個寄存器控制,來達(dá)到對時鐘的精確控制,。該系統(tǒng)的硬件結(jié)構(gòu)圖,,如圖2所示。包括復(fù)位電路模塊,、JTAG下載模塊,、通信模塊(RS-232)、ARM7微控制器模塊及外部振蕩電路模塊,。
2.2 系統(tǒng)的硬件原理圖
復(fù)位電路如圖3所示,,采用復(fù)位芯片SP708S,可以大大提高M(jìn)CU的復(fù)位性能,。通過確定的電壓值(閾值)啟動復(fù)位操作,,同時排除瞬間干擾的影響,又防MCU在電源啟動和關(guān)閉期間的誤操作,,保證數(shù)據(jù)安全,。用阻容復(fù)位穩(wěn)定性差,常常有按了復(fù)位鍵沒反應(yīng),,要按一段時間才能復(fù)位的經(jīng)歷,,容易復(fù)位不成功。
JTAG下載電路如圖4所示,,采用20引腳的JTAG口,,使用下載工具J-LINK,由軟件MDK將從PC機(jī)通過J-LINK,,下載到LPC2131里,。
串口通信電路如圖5所示,采用串口芯片MAX3232,,將MAX3232與LPC2131連接起來,,實現(xiàn)上位機(jī)與下位機(jī)數(shù)據(jù)通信,。
ARM7微控制器模塊及外部振蕩電路的系統(tǒng)時鐘源晶振為11.059 2 MHz,實時時鐘的晶振為32.768 kHz,。電路圖略——編者注,。
3 系統(tǒng)軟件設(shè)計
3.1 程序流程
本系統(tǒng)采用了高級語言C編寫LPC2131程序,本程序主要完成對實時時鐘RTC的各個時間寄存器的設(shè)定,、顯示以及對串口0的初始化設(shè)定,。然后通過CPU采集實時時鐘的各個時間寄存器變化的數(shù)據(jù),經(jīng)串口連接到上位機(jī),,在上位機(jī)上顯示出時間來,。程序流程如圖6所示。
3.2 控制程序
根據(jù)程序流程,,可將程序分為三大部分:第一部分,,對串口的初始化及串口發(fā)送數(shù)據(jù)的函數(shù)初始化。第二部分,,對實時時鐘的初始化,,來設(shè)置基準(zhǔn)時鐘、時,、分,、秒等各個寄存器,將采集到的數(shù)據(jù)通過終端顯示出來,。第三部分,,主函數(shù)部分,將秒增量中斷標(biāo)志置位,、清楚RTC中斷,,而后循環(huán)地將時間在串口調(diào)試助手上顯示。
4 實驗結(jié)果
將以上程序在MDK中運(yùn)行,,下載到LPC2131中,,將串口與PC機(jī)連接,設(shè)置好串口調(diào)試助手,,波特率9 600bps,,數(shù)據(jù)位8位,1個停止位,,無校驗位,。得到時間結(jié)果。
結(jié)語
本文介紹了基于ARM7TDMI-S核的芯片LPC2131和內(nèi)部的實時時鐘(RTC)的工作原理,,設(shè)計了基于實時時鐘與LPC2131的串行通信的采樣系統(tǒng),,將時間顯示在上位機(jī)上。這種時鐘控制系統(tǒng)在現(xiàn)代生產(chǎn),、生活中應(yīng)用廣泛,。在實際應(yīng)用中,,只需根據(jù)本文的基本思想進(jìn)行適當(dāng)?shù)囊浦玻纯稍O(shè)計成專用的時鐘控制的嵌入式裝置,,并嵌入到各種智能化應(yīng)用系統(tǒng)中,。