S3C44B0X硬件結(jié)構(gòu)及功能_第1頁(yè)
S3C44B0X硬件結(jié)構(gòu)及功能_第2頁(yè)
S3C44B0X硬件結(jié)構(gòu)及功能_第3頁(yè)
S3C44B0X硬件結(jié)構(gòu)及功能_第4頁(yè)
S3C44B0X硬件結(jié)構(gòu)及功能_第5頁(yè)
已閱讀5頁(yè),還剩116頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第4章S3C44B0X硬件結(jié)構(gòu)及功能

本章主要介紹了S3C44B0X的體系結(jié)構(gòu)及各種功能接口,主要包括以下內(nèi)容:存儲(chǔ)器管理系統(tǒng)總線(xiàn)及時(shí)鐘中斷管理DMA、I/O口、定時(shí)器、A/D、I2C、SPI等接口結(jié)構(gòu)4.1S3C44BOX簡(jiǎn)介

SAMSUNG公司推出的16/32位RISC處理器S3C44BOX為手持設(shè)備和一般應(yīng)用提供了高性?xún)r(jià)比和高性能的微控制器解決方案。為了降低成本,S3C44BOX提供了豐富的內(nèi)置部件,包括:8KBCache和內(nèi)部SRAM,LCD控制器,帶自動(dòng)握手的2通道UART,4通道DMA,系統(tǒng)管理器(片選邏輯,F(xiàn)P/EDO/SDRAM控制器),帶PWM功能的5通道定時(shí)器和一個(gè)內(nèi)部定時(shí)器,I/O端口,RTC,8通道10位ADC,??C—BUS接口,??S—BUS接口,同步SIO接口和PLL倍頻器。

S3C44BOX是使用ARM7TDMI內(nèi)核,采用0.25μmCMOS工藝制造。它的低功耗和全靜態(tài)設(shè)計(jì)特別適用于對(duì)成本和功耗敏感的應(yīng)用。同樣地,S3C44BOX還采用了一種新的總線(xiàn)結(jié)構(gòu),即SAMBAII(三星ARMCPU嵌入式微處理器總線(xiàn)結(jié)構(gòu))。S3C44BOX的杰出特性是它的CPU核,是由ARM公司設(shè)計(jì)的16/32位ARM7TDMIRISC處理器(66MHz)。它包括了Thumb代碼壓縮器,一個(gè)片上的ICE斷點(diǎn)調(diào)試支持和一個(gè)32位的硬件乘法器。S3C44BOX通過(guò)提供全面的、通用的焉上外設(shè),大大減少了系統(tǒng)中除處理器以外的元器件配置,從而使系統(tǒng)的成本大為降低。S3C44BOX集成的各種片上功能如下:(1)2.5VARM7TDMI內(nèi)核,帶有8KBCache;(2)可選的內(nèi)部SRAM;(3)LCD控制器(最大支持256色DSTN,LCD具有專(zhuān)用DMA);(4)2通道UART帶有握手協(xié)議(支持IrDA1.0,具有16-byteFIFO);(5)1通道SIO;(6)2個(gè)通用DMA;(7)2個(gè)外設(shè)用DMA,具有外部請(qǐng)求引腳;(8)外部存儲(chǔ)控制器(片選邏輯,F(xiàn)P/EDO/SDRAM控制器);(9)5個(gè)PWM定時(shí)器和1通道內(nèi)部定時(shí)器;(10)看門(mén)狗定時(shí)器;(11)71個(gè)通用I/O口;(12)8個(gè)外部中斷源;(13)具有日歷功能的RTC;(14)8通道10位ADC;(15)1個(gè)多主IIC總線(xiàn)控制器;(16)1個(gè)通道IIS總線(xiàn)控制器;(17)片上PLL時(shí)鐘產(chǎn)生器。1.S3C44BOX的特性(1)體系結(jié)構(gòu)。S3C44BOXR的體系結(jié)構(gòu)特性如下:集成了手持設(shè)備和通用嵌入式系統(tǒng)應(yīng)用的解決方案;16/32位RISC體系結(jié)構(gòu)和ARM7TDMI處理器內(nèi)核強(qiáng)大的指令體系;Thumb代碼壓縮機(jī),最大化代碼密度同時(shí)保持了32位指令的性能;基于JTAG的片上集成ICE調(diào)方式支持解決方案;32×8位硬件乘法器;實(shí)現(xiàn)低功耗SAMBAII的新型總線(xiàn)結(jié)構(gòu)。(2)系統(tǒng)管理器。S3C44BOX系統(tǒng)管理器特性如下:支持大/小方式;尋址空間:每Bank32MB(共256MB);支持每Bank可編程8/16/32位數(shù)據(jù)總線(xiàn)寬度;7個(gè)Bank具有固定的Bank起始地址和可編程Bank大小;1個(gè)Bank具有可編程的Bank起始地址和Bank大小。8個(gè)存儲(chǔ)器Bank,包括6個(gè)ROM,SRAM存儲(chǔ)器Bank和2個(gè)ROM/SRAM/DRAM(快速頁(yè)面,EDO和同步DRAM)存儲(chǔ)器Bank;所有的存儲(chǔ)器Bank具有可編程的操作周期;支持外部等待信號(hào)延長(zhǎng)總線(xiàn)周期;支持掉電時(shí)DRAM/SDRAM的自刷新模式;支持均勻/非均勻的DRAM地址。(3)Cache存儲(chǔ)器和內(nèi)部SRAM。S3C44BOX的Cache存儲(chǔ)器和內(nèi)部SRAM特性如下:一體化的8KBCache;未用的Cache空間用來(lái)作為0/4/8KB的SRAM存儲(chǔ)空間;支持LRU(近期最少使用)替換算法;采用保持主存儲(chǔ)器與Cache內(nèi)容一致性的策略;寫(xiě)存儲(chǔ)器具有4線(xiàn)深度;當(dāng)Cache錯(cuò)誤發(fā)生時(shí),采用“請(qǐng)求數(shù)據(jù)優(yōu)先填充”技術(shù)。(4)時(shí)鐘和電源管理。S3C44BOS的時(shí)鐘和電源管理特性如下。低功耗。片上PLL使處理器工作時(shí)鐘最大達(dá)到66MHz??梢酝ㄟ^(guò)軟件設(shè)置各功能模塊的輸入時(shí)鐘。電源模式:正常、慢、空閑和停止模式。正常模式:正常、慢、空閑和停止模式。慢模式:不加PLL的低時(shí)鐘頻率模式;空閑模式:只停止CPU的時(shí)鐘;停止模式:停止所有的時(shí)鐘。⑤通過(guò)EINT[7:0]或RTC報(bào)警中斷從停止模式喚醒。(5)中斷控制器。S3C44BOX的中斷控制器特性如下:30個(gè)中斷源(看門(mén)狗定時(shí)器,6個(gè)定時(shí)器,6個(gè)定時(shí)器,6個(gè)UART,8個(gè)外部中斷,4個(gè)DMA,2WHRTC,1個(gè)ADC,1個(gè)IIC,1個(gè)SIO);采用向量化的IRQ中斷模式以減少中斷的延遲;電平/邊沿模式觸發(fā)外部中斷;電平/邊沿模式具有可編程的優(yōu)先級(jí);支持FIQ為緊急的中斷請(qǐng)求進(jìn)行服務(wù)。(6)定時(shí)器和PWM(脈寬調(diào)制)。S3C44BOX定時(shí)器和PWM特性如下:通道16位具有PWM功能的定時(shí)器,1通道16位內(nèi)部定時(shí)器(可進(jìn)行基于DMA或中斷的操作);可編程的占空比周期,頻率,和優(yōu)先級(jí);產(chǎn)生死區(qū);支持外部時(shí)鐘源。(7)PTC(實(shí)時(shí)時(shí)鐘)。S3C44BOXRTC特性如下:充分的時(shí)鐘特性:毫秒、秒、分鐘、小時(shí)、日、星期、月、年;32.768kHz時(shí)鐘;定時(shí)警報(bào),可用于喚醒CPU;時(shí)鐘節(jié)拍中斷。(8)通用I/O口。S3C44BOX通用I/O口特性如下:8個(gè)外部中斷口;71個(gè)多功能輸入輸出口。

(9)UART(通用異步串行通信)。S3C44BOXUART特性如下:2通道UART,可進(jìn)行基于DMA可中斷的操作;支持5位,6位,7位或8位串行數(shù)據(jù)傳輸/接收;支持硬件握手功能;可編程的波特率;支持IrDA1.0(115.2Kb/s);支持用于測(cè)試的回饋模式;每個(gè)通道具有2個(gè)內(nèi)部32B的FIFO分別用于輸入輸出。(10)DMA(直接存儲(chǔ)器操作)控制器。S3C44BOXDMA控制器特性如下2通道通用DMA控制器(不需要CPU干預(yù))。2通道DMA橋(外設(shè)DMA)控制器。支持I/O到存儲(chǔ)器,存儲(chǔ)器到I/O,I/O到I/O的6種DMA請(qǐng)求:軟件,4個(gè)內(nèi)部功能模塊(UART,SIO,定時(shí)器,IIS)和外部引腳。在同時(shí)發(fā)生的多個(gè)DMA之間具有可編程的優(yōu)先級(jí)順序。采用觸發(fā)式的傳輸模式以提高FPDAM,EDODRAM和SDRAM的數(shù)據(jù)傳輸速率。支持在外部設(shè)備到存儲(chǔ)器和存儲(chǔ)器到外部設(shè)備之間采用fly-by模式。(11)A/D轉(zhuǎn)換器。S3C44BOX的A/D轉(zhuǎn)換器特性如下:8通道的ADC;最大100KSPS/10位。(12)LCD控制器。S3C44BOX的LCD控制器特性如下:支持彩色/黑白/灰度LCD屏;支持單路掃描和雙路掃描;支持虛擬顯示屏功能;系統(tǒng)存儲(chǔ)器用來(lái)作為顯示存儲(chǔ)器;用專(zhuān)門(mén)的DMA從系統(tǒng)存儲(chǔ)器中獲得圖像數(shù)據(jù);可編程的屏幕大小;灰度等級(jí):16級(jí)灰度;256種顏色。(13)看門(mén)狗定時(shí)器。S3C44BOX的看門(mén)狗定時(shí)器特性如下:16位的看門(mén)狗定時(shí)器;在定時(shí)器溢出時(shí)發(fā)出中斷請(qǐng)求或系統(tǒng)復(fù)位;(14)IIC總線(xiàn)接口。S3C44BOX的IIC總線(xiàn)接口特性如下:1通道多主IIC總線(xiàn),可進(jìn)行基于中斷的操作模式;可進(jìn)行串行,8位,雙向數(shù)據(jù)傳輸,標(biāo)準(zhǔn)模式速度達(dá)到100Kb/s,快速模式達(dá)到400kb。(15)IIS總線(xiàn)接口。S3C44BOX的IIS總線(xiàn)接口特性如下:1通道章頻IIS總線(xiàn)接口,可進(jìn)行基于DMA的操作;串行,每通道8/16位數(shù)據(jù)傳輸;支持MSB-justified數(shù)據(jù)格式。(16)SIO(同步串行I/O)。S3C44BOX的SIO特性如下:1通道SIO,可進(jìn)行基于DMA或中斷的操作;可編程的波特率;支持8位串行數(shù)據(jù)的傳輸和接收操作。(17)工作電壓范圍。S3C44BOX的工作電壓范圍如下:內(nèi)核2.5V,I/O口:3.0~3.6V。(18)工作頻率。S3C44BOX的最大工作頻率為:66MHz。(19)封裝。S3C44BOX的封裝形式為:160LQFP/160FBGA。2.體系結(jié)構(gòu)圖體系結(jié)構(gòu)圖S3C44BOX結(jié)構(gòu)如圖表4—1所示。圖4—1S3C44BOX結(jié)構(gòu)圖引腳介紹S3C44BOX引腳分布如圖4—2所示。圖4—2S3C44BOX策處理器管腳定義圖引腳信號(hào)描述如表4—1所示。4.2存儲(chǔ)器管理4.2.1S3C44BOX存儲(chǔ)系統(tǒng)的特征S3C44BOX的存儲(chǔ)系統(tǒng)具有以下一些主要特性:支持?jǐn)?shù)據(jù)存儲(chǔ)的大、小端選擇(通過(guò)外部引腳進(jìn)行選擇);有大端模式和小端模式。地址空間具有8個(gè)存儲(chǔ)體,每個(gè)存儲(chǔ)體可達(dá)32MB,總共可達(dá)到256MB;對(duì)所有存儲(chǔ)體的訪(fǎng)問(wèn)大小均可進(jìn)行改變(8位/16位/32位),總線(xiàn)寬度可編程;8個(gè)存儲(chǔ)器中,Bank0~Bank5可支持ROM、SRAM;Bank6、Bank7可支持ROM、SRAM和FP/EDO/SDRAM等,Bank6和Bank7存貯容量大小相同;7個(gè)存儲(chǔ)器的起始地址固定,1個(gè)存儲(chǔ)器的起始地址可變。(即第8個(gè)可變)圖4—3所示是復(fù)位后的存儲(chǔ)器映射表,Bank6/Bank7存儲(chǔ)器的地址表如表4—2所示。1、存儲(chǔ)器的大/小端模式ENDIAN第一存儲(chǔ)器的大/小端模式,當(dāng)ENDIAN為L(zhǎng)時(shí)則使用大端模式,大/小端模式之所以存在是因?yàn)楫?dāng)在存儲(chǔ)器中存儲(chǔ)不同字長(zhǎng)的數(shù)據(jù)時(shí),大/小端模式定義了不同長(zhǎng)度的數(shù)據(jù)類(lèi)型的對(duì)齊方式。因?yàn)锽ank0是系統(tǒng)自舉ROM存儲(chǔ)體,所以必須在訪(fǎng)問(wèn)ROM之前定義Bank0的總線(xiàn)寬度見(jiàn)表4—3。其他存儲(chǔ)體的總線(xiàn)寬度只能在系統(tǒng)復(fù)位后由程序進(jìn)行設(shè)定,由地址為0x01c8000的特殊寄存器BWSCON的相應(yīng)位決定。2、存儲(chǔ)器(SROM,DRAM,SDRAM)地址引腳連接存儲(chǔ)器地址引腳連接如表4—4所示。由于作用16位數(shù)據(jù)總線(xiàn),所以將存儲(chǔ)器的A0與S3C44BOX的A1對(duì)應(yīng)連接在一起。存儲(chǔ)地址引腳8位數(shù)據(jù)總線(xiàn)下的S3C44B0X地址16位數(shù)據(jù)總線(xiàn)下的S3C44B0X地址32位數(shù)據(jù)總線(xiàn)下的S3C44B0X地址A0A0A1A2A1A1A2A3A2A2A3A4A3A3A4A5┇┇┇┇3、典型系統(tǒng)中存儲(chǔ)器的分配情況典型系統(tǒng)中存儲(chǔ)器分配情況如表4—5所示。只要將CPU上的相應(yīng)Bank連線(xiàn)接到外設(shè)芯片的片選引腳上,便可以根據(jù)相應(yīng)的地址進(jìn)行存儲(chǔ)器或外設(shè)操作了。在本系統(tǒng)中,存儲(chǔ)器的配置依照PC的結(jié)構(gòu):使用Bank0上的兩片512KB×2存儲(chǔ)器來(lái)放置系統(tǒng)BIOS,系統(tǒng)上電以后,PC指針自動(dòng)指向Bank0的第一個(gè)單元,開(kāi)始進(jìn)行系統(tǒng)自舉。系統(tǒng)自舉完成以后,便從硬盤(pán)中將系統(tǒng)文件和用戶(hù)應(yīng)用程序復(fù)制到SDRAM內(nèi)存中執(zhí)行。Bank1上接16MB非線(xiàn)性Flash,當(dāng)作系統(tǒng)硬盤(pán)使用,可以構(gòu)造文件系統(tǒng),存放海量數(shù)據(jù)。用SDRAM當(dāng)作系統(tǒng)內(nèi)存,只有Bank6/Bank7能支持SDRAM,所以將SDRAM接在Bank6H。如果同時(shí)使用Bank6/Bank7,則要求連接相同容量的存儲(chǔ)器,而且其地地址空間在物理上是連續(xù)的。4.2.2寄存器定義(1)BWSCON總線(xiàn)寬度和等待狀態(tài)寄存器。BWSCON寄存器主要用來(lái)設(shè)置外接存儲(chǔ)器的總線(xiàn)寬度和等待狀態(tài)。在BWXCON中,除了Bank0,對(duì)其他7個(gè)Bank都各對(duì)應(yīng)有4個(gè)相關(guān)位的設(shè)置,分別為STx,WSx,DWx。STx位決定SRAM映射在Bankx時(shí)是否采用UB/LB。0:不采用,1:采用。WSx位決定Bank上等待的狀態(tài)。0:禁止等待,1:使能等待。DWx中的確位決定Bankx上的總線(xiàn)寬度。00:8位,01:16位,10:32位。DW0位對(duì)應(yīng)Bank0的總線(xiàn)寬度,但這里它是只讀的,其中00=8位,01=16位,10=32位。設(shè)置是通過(guò)OM[0:1]腳電平?jīng)Q定總線(xiàn)寬度。(2)BANKCON。S3C44BOX具有8個(gè)BANKCONn寄存器,分別對(duì)應(yīng)著B(niǎo)ank—BANCONn寄存器針對(duì)操作時(shí)序進(jìn)行設(shè)置,如表4—6所示。由于Bank6Bank7可以作為FP/EDO/SDRAM等類(lèi)型存儲(chǔ)器的映射空間,因此BANKCON6和BANKCON7與其他Bank的相應(yīng)寄存器有所不同。其中MT位定義了存儲(chǔ)器的類(lèi)型,如表4—7所示。MT的取值定義了該寄存器余下幾位的作用。例如當(dāng)MT=11,余下幾位定義如表4—8所示。(3)REFRESH。REFRESH是DRAM/SDRAM的刷新控制器。位定義如表4—9所示。刷新的周期計(jì)算公式:Refresh_Period=(211-refresh_count+1)/MCLK如果刷新周期是15.6μs和MCLK是60MHz,refresh_count如下計(jì)算:refresh_count=211+1-60×15.6=1113(4)BANKSIAE和MRSR。BANKSIAE寄存器定義了Bank的大小,如表4—10所示。MRSR是SDRAM模式設(shè)置寄存器定義如表4—11所示。4.3時(shí)鐘和功耗管理4.3.1概述S3C44B0X的時(shí)鐘產(chǎn)生器可以為CPU產(chǎn)生要求的時(shí)鐘信號(hào),同樣也為外設(shè)提供了時(shí)鐘信號(hào)。時(shí)鐘產(chǎn)生器可以通過(guò)軟件來(lái)控制是否為每個(gè)外部設(shè)備模塊提供時(shí)鐘信號(hào),或者切斷與外部設(shè)備的聯(lián)系,以減少功耗。同樣在軟件的控制下,S3C44B0X提供各種功耗管理辦法來(lái)為各種應(yīng)用提供最優(yōu)化的功耗方案。S3C44B0X的時(shí)鐘源可以用外部晶體來(lái)產(chǎn)生,也可以直接輸入外部時(shí)鐘,這由OM[3:2]的狀態(tài)決定。M[3:2]的狀態(tài)在nRESET的上升沿由OM3和OM2腳的電平?jīng)Q定。M[3:2]=00CrystalclockM[3:2]=01外部時(shí)鐘。其它測(cè)試模式在復(fù)位后PLL啟動(dòng),但在用S/W指令設(shè)置PLLCON為有效的值之前,PLLOUTPUT(FOUT)不能使用,這時(shí)FOUT直接輸出Crystalclock或外部時(shí)鐘。如果S3C44B0X的PLL的時(shí)鐘源使用晶體,這時(shí)EXTCLK能作為T(mén)imer5的時(shí)鐘源TCLK。S3C44B0X中的功耗管理提供5種模式:1.正常模式正常模式下,時(shí)鐘發(fā)生器提供時(shí)鐘給CPU,并同時(shí)提供給S3C44B0X的外設(shè)。在這種情況下,當(dāng)所有的外設(shè)都開(kāi)啟工作時(shí),處理器所消耗的功耗最大。用戶(hù)可以通過(guò)軟件來(lái)控制外事的操作模式。例如:如果定時(shí)器和DMA不需要時(shí)鐘,則用戶(hù)可以斷開(kāi)定時(shí)器和DMA的時(shí)鐘供給以降低功耗。2.慢速模式慢速模式是一種非倍頻模式。與正常模式下不同,慢速模式直接采用外部時(shí)鐘作為S3C44B0X的主工作時(shí)鐘,而不使用內(nèi)部倍頻器。在這種情況下,功耗的大小僅依據(jù)于外部時(shí)鐘的頻率的大小。PLL部件所消耗的功耗不用計(jì)算在內(nèi)了。3.空閑模式空閑模式下僅斷開(kāi)對(duì)CPU內(nèi)核的時(shí)鐘供給,而保留所有對(duì)于外部設(shè)備的時(shí)鐘供給。在空閑模式下,CPU內(nèi)核的功耗可以減去。任何中斷請(qǐng)求都會(huì)使CPU從空閑模式中醒來(lái)。4.停止模式停止模式通過(guò)禁止PLL來(lái)凍結(jié)所有CPU內(nèi)核、外設(shè)的時(shí)鐘。這時(shí)的功耗大小僅由S3C44B0X內(nèi)部的漏電流大小決定,這個(gè)電流一般小于10uA。要使CPU從停止模式中醒來(lái),可以通過(guò)外部中斷實(shí)現(xiàn)。5.LCD的SL空閑模式SL空閑模式的進(jìn)入將導(dǎo)致LCD控制器開(kāi)始工作。在這種情況下,除了LCD控制器以外CPU內(nèi)核和其它外設(shè)的時(shí)鐘都停止了。因此,SL空閑模式下的功耗比空閑模式的功耗小。4.3.2寄存器定義1.PLL控制寄存器該寄存器設(shè)置PLL參數(shù).PLL輸出頻率計(jì)算公式如下:Fpllo=(m*Fin)/(p*2s)

其中m=(MDIV+8),p=(PDIV+2),s=SDIV,F(xiàn)pllo必須大于20MHZ且少于66MHZ,F(xiàn)pllo*2s必須少于170MHZ,F(xiàn)in/p推薦為1MHZ或大于,但小于2MHZ,其中MDIV、PDIV、SDIV定義如表4-12所示。2.時(shí)鐘控制寄存器時(shí)鐘控制寄存器如表4-13所示。PLLCON位描述初始狀態(tài)MDIVPDIVSDIV[19:12][9:4][1:0]主分頻值預(yù)分頻值后分頻值0x380x080x0CLKCON位描述初始狀態(tài)IIS[14]控制IISblock的鐘控0=禁止1=允許1IIC[13]控制IICblock的鐘控0=禁止1=允許1ADC[12]控制ADCblock的鐘控0=禁止1=允許1RTC[11]控制RTCblock的鐘控,即使該位為0,RTC定時(shí)器仍工作。0=禁止1=允許1GPIO[10]控制GPIOblock的鐘控,設(shè)置為1,允許使用EINT[4:7]的中斷。0=禁止1=允許1時(shí)鐘控制寄存器表UART1[9]控制UART1block的鐘控。0=禁止1=允許1RART0[8]控制UART0block的鐘控。0=禁止1=允許1BDMA0,1[7]控制BDMAblock的鐘控,如果BDMA關(guān)斷,在外設(shè)總線(xiàn)上的外設(shè)不能存取。0=禁止1=允許1LCDC[6]控制LCDCblock鐘控0=禁止1=允許1SIO[5]控制SIOblock鐘控0=禁止1=允許14.4CPUWrapper和總線(xiàn)特性

4.4.1概述處理器wrapper包括一個(gè)cache、寫(xiě)入緩沖器和CPU內(nèi)核??偩€(xiàn)仲裁邏輯決定每個(gè)總線(xiàn)占用者的優(yōu)先權(quán)。處理器wrapper有一個(gè)8k直接的內(nèi)部存儲(chǔ)器。內(nèi)部存儲(chǔ)器可以以3種方式采用。8k字節(jié)的存儲(chǔ)空間作為8k字節(jié)的統(tǒng)一(指令或數(shù)據(jù))cache(高速緩沖存儲(chǔ)器)。內(nèi)部存儲(chǔ)器可以用作一個(gè)4k字節(jié)的統(tǒng)一cache和一個(gè)4k字節(jié)的內(nèi)部SRAM。內(nèi)部存儲(chǔ)器可以整個(gè)地用作8k字節(jié)的內(nèi)部SRAM。內(nèi)部統(tǒng)一(指令或數(shù)據(jù))cache采用4種方式與某個(gè)4個(gè)字(16個(gè)字節(jié))的行建立鏈接結(jié)構(gòu).它采用一種寫(xiě)穿式(write-through)的原則保持?jǐn)?shù)據(jù)的一致性。當(dāng)在cache中找不到相應(yīng)的內(nèi)容(稱(chēng)為cachemiss),4個(gè)字的存儲(chǔ)內(nèi)容從外部存儲(chǔ)器連續(xù)地取得。它采用一種LRU(最近使用最少)算法來(lái)提升命中的比率。統(tǒng)一cache通過(guò)有區(qū)別的方式來(lái)處理指令和數(shù)據(jù)。內(nèi)部SRAM主要用來(lái)減少I(mǎi)SR的執(zhí)行時(shí)間。由于內(nèi)部SRAM具有最短的操作時(shí)間,因此能夠減少I(mǎi)SR的執(zhí)行時(shí)間。當(dāng)然ISR在SRAM運(yùn)行也是非常有效率的因?yàn)榇蠖鄶?shù)的ISR代碼都會(huì)引起cachemiss??偩€(xiàn)仲裁邏輯可以決定總線(xiàn)占用者的優(yōu)先級(jí).總線(xiàn)仲裁邏輯支持一種round-robin優(yōu)先級(jí)模式和一種固定的優(yōu)先級(jí)模式。同樣LCD_DMA,BDMA,ZDMA,nBREQ(外部總線(xiàn)控制器)之間的優(yōu)先級(jí)可以通過(guò)軟件來(lái)修改。4.4.2內(nèi)部SRAMS3C44B0X具有一個(gè)最小8KB的4組相連cache或內(nèi)部SRAM。如果內(nèi)部SRAM為4KB,另外4KB內(nèi)部存儲(chǔ)器可以用來(lái)作為2組相連cache。內(nèi)部SRAM的存儲(chǔ)器操作周期為1MCLK。在每一個(gè)組的存儲(chǔ)空間內(nèi),地址是連續(xù)增加的,在TAG/LRU中的地址按照16字節(jié)增加。不要對(duì)內(nèi)部地址空間:0x10003004~0x1000300f進(jìn)行操作。SYSCFG配置寄存器如表4-16所示。4.4.3總線(xiàn)優(yōu)先級(jí)在S3C44B0X中,有7種總線(xiàn)master;LCD_DMA;BDMA0;BDMA1;ZDMA0;ZDMA1;Nbreq(外部總線(xiàn)master);CPUwrapper。復(fù)位之后,這些總線(xiàn)master的優(yōu)先級(jí)排列如下:

DRAM刷新控制器;LCD_DMA;ZDMA0,1;BDMA0,1;外部總線(xiàn)控制器;寫(xiě)緩沖區(qū);Cache和CPU;LCD_DMA,ZDMA,BDMA之間的總線(xiàn)優(yōu)先級(jí)是可編程的,可以通過(guò)SBUSCON寄存器來(lái)設(shè)置。如果不考慮SBUSCON的設(shè)置CPUwrapper始終具有最低的優(yōu)先級(jí)。Round-robin優(yōu)先級(jí)模式或固定優(yōu)先級(jí)模式是可以選擇的。在round-robin優(yōu)先級(jí)模式中,已經(jīng)被服務(wù)過(guò)依次的總線(xiàn)占有者將具有最低的優(yōu)先級(jí)。通過(guò)這種方式,使得所有的master都具有相同的優(yōu)先級(jí)。在固定優(yōu)先級(jí)模式下,每個(gè)總線(xiàn)master的優(yōu)先級(jí)都寫(xiě)在SBUSCON中,SBUSCON寄存器決定第1到第4個(gè)優(yōu)先級(jí)的總線(xiàn)master。4.4.4寫(xiě)緩沖區(qū)操作寫(xiě)緩沖區(qū)操作,S3C44B0X有4個(gè)寫(xiě)緩沖區(qū)寄存器來(lái)提高存儲(chǔ)器的寫(xiě)性能。當(dāng)寫(xiě)緩沖器模式使能,CPU不再將數(shù)據(jù)直接寫(xiě)入外部存儲(chǔ)器而是將數(shù)據(jù)寫(xiě)入寫(xiě)緩存區(qū)。即便是外部總線(xiàn)已經(jīng)有其它master占用,例如DMA操作的情況下,也如此。寫(xiě)緩沖區(qū)模塊在系統(tǒng)總線(xiàn)沒(méi)有被別的更高優(yōu)先級(jí)的master占用時(shí),將數(shù)據(jù)寫(xiě)入外部存儲(chǔ)器。這樣,CPU的性能就提高了,因?yàn)镃PU不需要一直等到寫(xiě)操作結(jié)束。寫(xiě)緩沖區(qū)具有4個(gè)寄存器。每個(gè)寄存器包括一個(gè)32位數(shù)據(jù)區(qū)域,28位的地址區(qū)域和2位的狀態(tài)區(qū)域,如圖4-4所示。4.4.5特殊寄存器①SYSCFG寄存器SYSCFG寄存器控制了系統(tǒng)的總體操作,如表4-17所示。②SBUSCON寄存器SBUSCON寄存器是系統(tǒng)總線(xiàn)優(yōu)先級(jí)控制寄存器,如表4-18所示。4.5DMA控制器4.5.1簡(jiǎn)述1.DMA控制器結(jié)構(gòu)S3C44B0X有4路DMA控制器,其中兩路稱(chēng)為ZDMA(GeneralDMA)被連到SSB(SamsungSystemBus)總線(xiàn)上,另外兩路稱(chēng)為BDMA(BridgeDMA)是SSB和SPB(SamsungPeripheralBus)之間的接口層,相當(dāng)于一個(gè)橋,因此稱(chēng)為橋DMA。 ZDMA和BDMA都可以由指令啟動(dòng),也可以有內(nèi)部外設(shè)和外部請(qǐng)求引腳來(lái)請(qǐng)求啟動(dòng)。ZDMA、BDMA結(jié)構(gòu)如圖4-5和圖4-6所示。ZDMA用來(lái)在存儲(chǔ)器到存儲(chǔ)器、存儲(chǔ)器到I/O存儲(chǔ)器、I/O裝置到存儲(chǔ)器之間傳輸數(shù)據(jù)。BDMA控制器只能在連到SPB上的I/O外設(shè)(如UART,IIS和SIO)與存儲(chǔ)器之間傳輸數(shù)據(jù)。

ZDMA最大的特性是on-the-fly模式,on-the-fly模式有不可分割的讀寫(xiě)周期,在這點(diǎn)上ZDMA與普通的DMA不同,從而可以減少在外部存儲(chǔ)器和外部可尋址的外設(shè)之間DMA操作的周期數(shù)。 對(duì)于ZDMA,S3C44B0X有一個(gè)4字的FIFO緩沖來(lái)支持4字突發(fā)DMA傳輸,而B(niǎo)DMA不支持突發(fā)DMA傳輸,因此存儲(chǔ)器之間的傳輸數(shù)據(jù)最好用ZDMA傳輸,來(lái)提供高的傳輸速度。2.外部DMAREQ/ACK協(xié)議對(duì)于ZDMA,有四種類(lèi)型的外部DMA請(qǐng)求/應(yīng)答協(xié)議:①握手模式(HandshakeMode)一個(gè)單獨(dú)的應(yīng)答對(duì)應(yīng)一個(gè)單獨(dú)的DMA請(qǐng)求,在該模式,DMA操作期間的讀寫(xiě)周期不可分割,因此在一個(gè)DMA操作完成前,不能把總線(xiàn)讓給其它總線(xiàn)控制器使用。一次nXDREQ請(qǐng)求引起一次DMA傳輸(可以是一個(gè)字節(jié),一個(gè)半字或一個(gè)字)。②單步模式(SingleStepMode)單步模式意味著一次DMA傳輸有兩個(gè)DMA應(yīng)答周期(產(chǎn)生兩個(gè)應(yīng)答信號(hào)nXDACK)指示DMA讀和寫(xiě)周期,主要用與測(cè)試和調(diào)試模式,在讀寫(xiě)周期之間,總線(xiàn)控制權(quán)可以讓給其它總線(xiàn)控制器。③連續(xù)模式(WholeServiceMode)在該模式,一次DMA請(qǐng)求將產(chǎn)生連續(xù)的DMA傳輸,直到規(guī)定的DMA傳輸數(shù)傳輸完,在DMA傳輸期間,nXDACK一直有效,DMA請(qǐng)求信號(hào)被釋放。并且在每次傳輸一個(gè)數(shù)據(jù)單元后,釋放一次總線(xiàn)控制權(quán),以便其它總線(xiàn)控制器有機(jī)會(huì)可以占用總線(xiàn)。④手動(dòng)模式(DemandMode)在該模式,只要DMA請(qǐng)求信號(hào)一直有效,DMA傳輸就持續(xù)進(jìn)行,并且一直占用總線(xiàn)控制權(quán),因此應(yīng)該預(yù)防傳輸周期超過(guò)規(guī)定的最大時(shí)間。3.DMA傳輸模式DMA有三種傳輸模式:單位傳輸模式塊傳輸模式On_the_fly塊傳模式。Unit傳輸模式。1個(gè)單位讀,然后1個(gè)單位寫(xiě)。Block傳輸模式。4個(gè)字突發(fā)讀,然后4個(gè)字突發(fā)寫(xiě),因此傳輸?shù)臄?shù)據(jù)個(gè)數(shù)應(yīng)當(dāng)是16字節(jié)的倍數(shù)。On-the-fly傳輸模式。1個(gè)單位讀或1個(gè)單位寫(xiě),讀寫(xiě)同時(shí)進(jìn)行。4.5.2DMA寄存器①ZDMA控制寄存器ZDCON0/1是ZDMA0/1控制寄存器②ZDMA其他寄存器ZDISRC0/1是ZDMA0/1初始源地址寄存器ZDIDES0/1是ZDMA0/1初始目標(biāo)地址寄存器ZDICNT0/1是ZDMA0/1初始計(jì)數(shù)寄存器ZDCSRC0/1是ZDMA0/1當(dāng)前源地址寄存器ZDCDES0/1是ZDMA0/1當(dāng)前目標(biāo)地址寄存器ZDCCNT0/1是ZDMA0/1當(dāng)前計(jì)數(shù)寄存器③BDMA控制寄存器BDCON0/1是BDMA0/1控制寄存器④BDMA其他寄存器BDISRC0/1是BDMA0/1初始源地址寄存器BDIDES0/1是BDMA0/1初始目標(biāo)地址寄存器BDICNT0/1是BDMA0/1初始計(jì)數(shù)寄存器BDCSRC0/1是BDMA0/1當(dāng)前源地址寄存器BDCDES0/1是BDMA0/1當(dāng)前目標(biāo)地址寄存器BDCCNT0/1是BDMA0/1當(dāng)前計(jì)數(shù)寄存器4.6I/O端口4.6.1概述S3C44B0X具有71個(gè)多功能輸入/輸出腳。它們包含在7組端口中:2個(gè)9位輸入/輸出端口(端口E和F)2個(gè)8位輸入/輸出端口(端口D和G)1個(gè)16位輸入/輸出端口(端口C)1個(gè)10位輸出端口(端口A(yíng))1個(gè)11位輸出端口(端口B)每組端口都可以通過(guò)軟件配置寄存器來(lái)滿(mǎn)足不同系統(tǒng)和設(shè)計(jì)的需要,在運(yùn)行程序之前必須先對(duì)每一個(gè)用到的引腳的功能進(jìn)行設(shè)置,如果某些引腳的復(fù)用功能沒(méi)有使用,那么可以將該引腳設(shè)置成I/O口。

如表4-27~表4-33列出了7個(gè)端口的引腳定義。4.6.2端口控制寄存器①端口配置寄存器(PCONA-G)由于多數(shù)端口都是多功能口,因此,需要用“端口配置寄存器PCONn”來(lái)設(shè)置每個(gè)引腳工作在哪一個(gè)功能模式下如表4-34所示,表中的功能1到功能4如表4-27~表4-33所示。②端口數(shù)據(jù)寄存器(PDATA-G) 當(dāng)端口被設(shè)置為輸出腳時(shí),輸出數(shù)據(jù)的方法就是將數(shù)據(jù)寫(xiě)入到PDATn的相應(yīng)位中;當(dāng)端口被設(shè)置位輸入腳時(shí),讀入數(shù)據(jù)的方法就是將PDATn中的相應(yīng)位讀出。③端口上拉設(shè)置寄存器(PUPC-G) 端口上拉寄存器用來(lái)設(shè)定PC-PG這幾組端口是否具有內(nèi)部上拉。當(dāng)PUPn的對(duì)應(yīng)位為0時(shí),該引腳上的上拉使能,當(dāng)為1時(shí),該引腳上的上拉禁能。4.外部中斷控制寄存器該寄存器是為PG的第3功能——外部中斷輸入口功能設(shè)置的,該寄存器可用來(lái)設(shè)置EXINT(外部中斷)請(qǐng)求輸入的模式:低電平觸發(fā)、高電平觸發(fā)、下降沿觸發(fā)、上升沿觸發(fā)或是邊沿觸發(fā)。下面我們以PF口的相關(guān)寄存器為例進(jìn)行介紹,PF的寄存器有3個(gè):PCONF,PDATF,PUPF。如表4-35~表4-37所示PF端口的相關(guān)寄存器信息4.7PWM定時(shí)器和看門(mén)狗定時(shí)器4.7.1概述S3C44B0X具有6個(gè)16位定時(shí)器,每個(gè)定時(shí)器可以按照中斷模式或DMA模式工作。定時(shí)器0,1,2,3和4具有PWM功能(脈寬調(diào)制)。定時(shí)器5是一個(gè)內(nèi)部定時(shí)器不具有對(duì)外輸出口線(xiàn)。定時(shí)器0具有死區(qū)發(fā)生器,通常用于大電流設(shè)備應(yīng)用。S3C44B0X的看門(mén)狗定時(shí)器用來(lái)在由于錯(cuò)誤如干擾和系統(tǒng)錯(cuò)誤造成的程序運(yùn)行打亂時(shí),恢復(fù)正常操作它也能使用一個(gè)正常的16位定時(shí)器來(lái)請(qǐng)求中斷服務(wù)??撮T(mén)狗定時(shí)器產(chǎn)生復(fù)位信號(hào)(128個(gè)系統(tǒng)時(shí)鐘周期)?!?.特性6個(gè)16位定時(shí)器可以工作在中斷模式或 DMA模式;3個(gè)8位預(yù)分頻器和2個(gè)5位分割器和1個(gè)4位分割器;輸出波形的占空比可編程控制(PWM)自動(dòng)加載模式或單觸發(fā)脈沖模式;死區(qū)產(chǎn)生器;支持外部中斷源;看門(mén)狗定時(shí)器溢出產(chǎn)生復(fù)位信號(hào)。4.7.2PWM定時(shí)器操作1.預(yù)分頻器和分割器如圖4-8所示,定時(shí)器0和定時(shí)器1分享同一個(gè)8位的預(yù)分頻器,定時(shí)器2和3分享一個(gè)8位預(yù)分頻器,定時(shí)器4和5分享一個(gè)8位預(yù)分頻器。除了定時(shí)器4和5,其它每個(gè)定時(shí)器還擁有一個(gè)具有5個(gè)不同的分頻信號(hào)輸出(1/2,1/4,1/8,1/16,1/32)的時(shí)鐘分割器。定時(shí)器4和5則具有4個(gè)分頻信號(hào)輸出(1/2,1/4,1/8,1/16)的時(shí)鐘分割器和一個(gè)輸入信號(hào)線(xiàn)TCLK/EXTCLK。每個(gè)定時(shí)器從時(shí)鐘分割器的輸出得到它們自己的時(shí)鐘源,時(shí)鐘分割器則從對(duì)應(yīng)的8位預(yù)分頻器得到時(shí)鐘源。8位預(yù)分頻器是可編程的,它的頻率通過(guò)MCLK除以保存在TCFG0和TCFG1寄存器中除數(shù)的結(jié)果設(shè)定。8位預(yù)分頻器和一個(gè)獨(dú)立的4位分割器組合起來(lái)可以產(chǎn)生如表4-38所示的頻率定時(shí)器時(shí)鐘源輸出。2.基本定時(shí)器操作每個(gè)定時(shí)器具有一個(gè)倒計(jì)時(shí)器,實(shí)際上是一個(gè)通過(guò)定時(shí)器時(shí)鐘源驅(qū)動(dòng)的16位倒計(jì)時(shí)寄存器TCNTn。當(dāng)?shù)褂?jì)時(shí)數(shù)到0,定時(shí)器中斷請(qǐng)求就產(chǎn)生了,這個(gè)中斷通知CPU定時(shí)器定時(shí)已經(jīng)完成。當(dāng)定時(shí)器倒計(jì)時(shí)數(shù)到達(dá)0,寄存器TCNTBn的對(duì)應(yīng)值就會(huì)自動(dòng)地載入到倒計(jì)時(shí)器從而繼續(xù)下一次操作。 但是,如果定時(shí)器停止,例如:在定時(shí)器運(yùn)行模式下,清除了寄存器TCONn中的定時(shí)器使能位,那么TCNTBn的值就不會(huì)被重新載入到倒計(jì)時(shí)器中。定時(shí)器使能后,定時(shí)計(jì)數(shù)緩沖區(qū)寄存器(TCNTBn)具有一個(gè)初始值,用來(lái)載入到倒計(jì)時(shí)器計(jì)數(shù)器TCNTn。定時(shí)器的比較緩沖區(qū)寄存器(TCMPBn)具有一個(gè)初始值,用來(lái)載入到比較寄存器TCMPn與倒計(jì)時(shí)值相比較。TCNTBn和TCMPBn這兩個(gè)緩沖區(qū)的應(yīng)用使定時(shí)器能夠使定時(shí)器在頻率和占空比變化時(shí),仍然產(chǎn)生一個(gè)穩(wěn)定的輸出。定時(shí)器(除了定時(shí)器5)都具有TCNTBn,TCNTn,TCMPBn和TCMPn。TCNTBn和TCMPBn的值在定時(shí)器值達(dá)到0時(shí)分別載入TCNTn和TCMPn。當(dāng)TCNTn達(dá)到0時(shí),如果中斷使能,中斷請(qǐng)求將會(huì)產(chǎn)生。(TCNTn和TCMPn是內(nèi)部寄存器,TCNTn寄存器的值可以通過(guò)TCNTOn寄存器讀出)。如圖4-8所示。4.7.3PWM定時(shí)器控制寄存器1.定時(shí)器配置寄存器0(TCFG0)TCFG0主要是配置3個(gè)8位預(yù)分頻器值和死區(qū)長(zhǎng)度值。定時(shí)器輸入時(shí)鐘頻率=MCLK/{預(yù)分頻值+1}/{分割值}其中預(yù)分頻值為0~255,分割值為2,4,8,16,32。如表4-39所示。2.

定時(shí)器配置寄存器1(TCFG1) TCFG1主要是配置6-MUX和DMA模式。如表4-40所示。3.定時(shí)器控制寄存器(TCON)

如表4-41所示:TCON位描述初始值Timer5自動(dòng)重載開(kāi)/關(guān)[26]這位確定定時(shí)器5的自動(dòng)加載的開(kāi)/關(guān)0=不自動(dòng)加載1=自動(dòng)加載0Timer5手動(dòng)更新[25]這位確定定時(shí)器5的手動(dòng)更新0=無(wú)操作1=更新TCNTB50Timer5啟動(dòng)/停止[24]這位確定定時(shí)器5的啟動(dòng)/停止0=停止1=啟動(dòng)0Timer4自動(dòng)重載開(kāi)/關(guān)[23]這位確定定時(shí)器4的自動(dòng)加載的開(kāi)/關(guān)0=不自動(dòng)加載1=自動(dòng)加載0Timer4輸出反轉(zhuǎn)開(kāi)/關(guān)[22]這位確定定時(shí)器4輸出反轉(zhuǎn)器的開(kāi)/關(guān)0=不反轉(zhuǎn)1=反轉(zhuǎn)TOUT40Timer4手動(dòng)更新[21]這位確定定時(shí)器4的手動(dòng)更新0=無(wú)操作1=更新TCNTB4,TCMPB40Timer4啟動(dòng)/停止[20]這位確定定時(shí)器4的啟動(dòng)/停止0=停止1=啟動(dòng)04.定時(shí)器n計(jì)數(shù)緩沖區(qū)寄存器和比較緩沖區(qū)寄存器(TCNTBn,TCMPBn)TCMPBn是16位定時(shí)器Timer0~Timer4比較緩沖器寄存器;TCNTBn是16位定時(shí)器Timer0~Timer5計(jì)數(shù)緩沖寄存器;TCNTOn是16位定時(shí)器Timer0~Timer5觀(guān)察寄存器.他們初值都為0。在以上的寄存器中,定時(shí)器n計(jì)數(shù)/比較緩沖寄存器可讀寫(xiě)寄存器,定時(shí)器n計(jì)數(shù)觀(guān)察寄存器為只讀寄存器。4.7.4看門(mén)狗定時(shí)器1.概述S3C44B0X的看門(mén)狗定時(shí)器用來(lái)在由于錯(cuò)誤如干擾和系統(tǒng)錯(cuò)誤造成的程序運(yùn)行打亂時(shí)恢復(fù)正常操作,它也能使用一個(gè)正常的16位定時(shí)器來(lái)請(qǐng)求中斷服務(wù)??撮T(mén)狗定時(shí)器產(chǎn)生復(fù)位信號(hào)128個(gè)系統(tǒng)時(shí)鐘周期。當(dāng)S3C44B0X使用EmbeddedICE工作在調(diào)試模式時(shí),看門(mén)狗定時(shí)器必須不工作。看門(mén)狗定時(shí)器能通過(guò)CPU核心信號(hào)(DBGACK信號(hào))確定當(dāng)前的模式是否在調(diào)試模式,一旦DBGACK信號(hào)有效,看門(mén)狗定時(shí)器的復(fù)位輸出當(dāng)定時(shí)器過(guò)期時(shí)不激活。結(jié)構(gòu)如圖4-14所示。2.看門(mén)狗定時(shí)器時(shí)鐘頻率看門(mén)狗時(shí)鐘頻率計(jì)算公式如下:

t_watchdog=1/(MCLK/(Prescalervalue+1)/Division_factor)

3.看門(mén)狗定時(shí)器寄存器包括以下種類(lèi)寄存器:(1)看門(mén)狗定時(shí)器控制寄存器看門(mén)狗定時(shí)器控制寄存器定義如表4-42所示.(2)看門(mén)狗定時(shí)器數(shù)據(jù)寄存器WTDAT是一個(gè)16位寄存器,規(guī)定看門(mén)狗定時(shí)器超時(shí)周期。WTDAT的內(nèi)容在初始操作時(shí),不能自動(dòng)加載進(jìn)定時(shí)器計(jì)數(shù)寄存器。可是定時(shí)器計(jì)數(shù)寄存器在使用初始值0X8000第一次超時(shí)出現(xiàn)以后,WTDAT的值將自動(dòng)加載進(jìn)WTCNT。(3)看門(mén)狗定時(shí)器計(jì)數(shù)寄存器WTCNT是16位看門(mén)狗定時(shí)器計(jì)數(shù)寄存器,在第一次使用時(shí),必須設(shè)置到初始值。4.8日歷時(shí)鐘4.8.1概述實(shí)時(shí)時(shí)鐘(RTC)器件是一種能提供日歷/時(shí)鐘、數(shù)據(jù)存儲(chǔ)等功能的專(zhuān)用集成電路,常用作各種計(jì)算機(jī)系統(tǒng)的時(shí)鐘信號(hào)源和參數(shù)設(shè)置存儲(chǔ)電路。 RTC具有計(jì)時(shí)準(zhǔn)確、耗電低和體積小等特點(diǎn)特別適用于在各種嵌入式系統(tǒng)中記錄事件發(fā)生的時(shí)間和相關(guān)信息,尤其是在通信工程、電力自動(dòng)化工業(yè)控制等自動(dòng)化程度較高領(lǐng)域的無(wú)人值守環(huán)境。隨著集成電路技術(shù)的不斷發(fā)展,RTC器件的新品也不斷推出。這些新品不僅具有準(zhǔn)確的RTC,還有大容量的存儲(chǔ)器、溫度傳感器和A/D數(shù)據(jù)采集通道等,已成為集RTC、數(shù)據(jù)采集和存儲(chǔ)于一體的綜合功能器件,特別適用于以微控制器為核心的嵌入式系統(tǒng)。RTC器件與微控制器之間大都采用連線(xiàn)簡(jiǎn)單的串行接口,諸如I2C、SPI、MICROWIRE和CAN等串行總線(xiàn)接口。這些串口由2~3根線(xiàn),分為同步和異步。4.8.2RTC時(shí)鐘單元

RTC(RealTimeClock)單元能在系統(tǒng)斷電時(shí),通過(guò)備份電池來(lái)供電,RTC能通過(guò)ARM的STRB/LDRB指令傳輸8位BCD數(shù)據(jù)到CPU,該數(shù)據(jù)包括時(shí)、分、秒、小時(shí)、天、月和年,RTC使用一個(gè)外部32.768的晶體也能執(zhí)行報(bào)警功能。 RTC功能框圖如圖4-15所示。特征:日歷功能支持閏年解決了2000年問(wèn)題獨(dú)立的供電支持毫秒滴答時(shí)間中斷作為RTOS核的時(shí)間滴答報(bào)警功能1.閏年產(chǎn)生器這個(gè)模塊可以決定每個(gè)月的最后日期是28,29,30還是31,并可以根據(jù)是否是閏年來(lái)決定日期。由于8位的計(jì)數(shù)器只能表示2個(gè)BCD碼,因此它不能判斷00年究竟是不是閏年。例如它不能夠滿(mǎn)足1900年和2000年的差別。為了解決這個(gè)問(wèn)題,S3C44B0X內(nèi)的RTC模塊中有一個(gè)固定的邏輯,用來(lái)支持2000年為閏年。請(qǐng)注意雖然2000年是閏年,但1900年不是閏年。因此,S3C44B0X中00代表2000年,而不是1900年。2.讀/寫(xiě)寄存器要求設(shè)置RTCON寄存器的0位來(lái)表示讀和寫(xiě)RTC模塊中的寄存器。為了顯示秒,分,小時(shí),日期,月和年,CPU會(huì)從BCDSEC,BCDMIN,BCDHOUR,BCDDAY,BCDDATE,BCDMON,和BCDYEAR寄存器中讀取數(shù)據(jù)。但是,由于多個(gè)寄存器的讀取,可能產(chǎn)生1秒鐘的偏離。例如,如果用戶(hù)讀取寄存器BCDYEAR到BCDMIN,假設(shè)結(jié)果為1959年,12月,31日,23點(diǎn),59分。在用戶(hù)讀取BCDSEC寄存器時(shí),如果結(jié)果是1~59,肯定沒(méi)有問(wèn)題。但如果結(jié)果是0,那么很有可能年、月、日、時(shí)、分已經(jīng)變成了1960年1月1日0時(shí)0分,這就是上面所說(shuō)的1秒偏離。解決的方法是,當(dāng)讀取到的BCDSEC等于0時(shí),用戶(hù)應(yīng)該再讀取一次BCDYEAR到BCDSEC的值。3.備用電池操作RTC邏輯模塊可以通過(guò)一個(gè)備用電池供電。備用電池的陽(yáng)極通過(guò)RTCVDD腳接至內(nèi)部的RTC模塊,即使系統(tǒng)電源關(guān)閉,也能夠提供電能保證RTC模塊正常工作。在系統(tǒng)電源關(guān)閉時(shí),CPU和RTC邏輯模塊之間的接口被鎖住,使備用電池僅需驅(qū)動(dòng)RTC的晶振電路和BCD計(jì)數(shù)器,從而使功耗降到最低。4.報(bào)警功能在掉電模式或正常工作模式下,RTC能夠在指定的時(shí)間產(chǎn)生一個(gè)報(bào)警信號(hào)。在正常工作模式下,報(bào)警中斷(ALMINT)被激活。在掉電模式下,電源管理蘇醒信號(hào)也與ALMINT一樣處于激活狀態(tài)。RTC的報(bào)警寄存器:RTCALM可以決定報(bào)警的使能或禁止和報(bào)警時(shí)間的設(shè)置條件。5.節(jié)拍中斷RTC節(jié)拍時(shí)間用于中斷請(qǐng)求。TICNT寄存器具有一個(gè)中斷使能位,同時(shí)其中的計(jì)數(shù)值用于中斷。當(dāng)計(jì)數(shù)值到達(dá)0時(shí),節(jié)拍時(shí)間中斷就會(huì)觸發(fā)。中斷的間隔時(shí)間計(jì)算如下:Period=(n+1)/128秒其中n為節(jié)拍時(shí)間計(jì)數(shù)值(1~127)。這個(gè)RTC時(shí)間節(jié)拍中斷功能可以作為RTOS(實(shí)時(shí)操作系統(tǒng))內(nèi)核的時(shí)間節(jié)拍。如果節(jié)拍從RTC時(shí)間節(jié)拍產(chǎn)生,則RTOS內(nèi)部與時(shí)間相關(guān)的功能將一直與實(shí)時(shí)時(shí)鐘同步。6.循環(huán)復(fù)位功能循環(huán)復(fù)位功能可以通過(guò)RTC循環(huán)復(fù)位寄存器RTCRST來(lái)操作。你可以選循環(huán)邊界時(shí)間(30,40,或50秒),在循環(huán)復(fù)位操作中,這個(gè)時(shí)間將加載到秒進(jìn)位產(chǎn)生器,當(dāng)秒計(jì)時(shí)到達(dá)該時(shí)間時(shí)就進(jìn)位。例如,如果當(dāng)前時(shí)間是23:37:47,循環(huán)邊界選擇為40秒,則循環(huán)復(fù)位操作將當(dāng)前時(shí)間修改為23:38:00。注意:所有的RTC寄存器必須使用STRB,LDRB指令或char類(lèi)型指針,以字節(jié)方式操作。4.8.3實(shí)時(shí)時(shí)鐘寄存器定義實(shí)時(shí)控制寄存器(RTCCON)RTCCON寄存器包括4個(gè)位例如RTCEN,用來(lái)控制對(duì)BCD寄存器的讀/寫(xiě)使能。CLKSEL,CNTSEL和CLKRST用來(lái)測(cè)試。RTCEN位可以控制所有CPU和RTC之間的所有接口,因此在RTC控制程序中,應(yīng)當(dāng)將它置1從而使得在系統(tǒng)復(fù)位之后能夠讀寫(xiě)這些寄存器。而在電源關(guān)閉之前,RTCEN位更改清0從而阻止無(wú)意中對(duì)RTC寄存器的寫(xiě)入。所有的RTC寄存器都應(yīng)該以字節(jié)為單位進(jìn)行操作。RTCALM寄存器決定了是否使能報(bào)警功能,以及報(bào)警時(shí)間。注意在掉電模式下,RTCALM寄存器通過(guò)ALMINT和PMWKUP產(chǎn)生報(bào)警信號(hào),但在正常工作模式下只有ALMINT模式。ALMSEC~ALMYEAR為RTC秒、分鐘、小時(shí)、日、月、年報(bào)警數(shù)據(jù)寄存器;BCDSEC~BCDYEAR為秒、分鐘、小時(shí)、日、星期、月、年數(shù)據(jù)寄存器。RTCROUND是秒復(fù)位寄存器。TICNT為時(shí)間片計(jì)數(shù)寄存器,它包含時(shí)間片中斷禁止/允許控制和時(shí)間片計(jì)數(shù)值。各控制寄存器如表4-43所示。4.9中斷管理4.9.1概述S3C44B0X的中斷控制器可以接收來(lái)自30個(gè)中斷源的請(qǐng)求。中斷控制器的作用,就是響應(yīng)來(lái)自FIQ或IRQ的中斷,并請(qǐng)求內(nèi)核對(duì)中斷進(jìn)行處理。當(dāng)有多個(gè)中斷同時(shí)發(fā)生的時(shí)候,中斷控制器要決定首先處理哪一個(gè)中斷。4.9.2中斷控制器1.中斷模式ARM7TDMI有2種類(lèi)型的中斷模式,F(xiàn)IQ(快速中斷請(qǐng)求)或IRQ(普通中斷請(qǐng)求)。2.PSR的F位和I位PSR指ARM7TDMI處理器的程序狀態(tài)寄存器。如果PSR的F位被設(shè)置為1,處理器將不接受來(lái)自中斷控制器的FIQ。如果PSR的I位被設(shè)置為1,處理器將不接受來(lái)自中斷控制器的IRQ。因此,為了使能中斷相應(yīng)機(jī)制,PSR的F位或I位必須被清0,同時(shí)INTMASK的相應(yīng)位必須被清0。3.中斷登記寄存器如果你將所有的中斷源定義為IRQ中斷,如果同一時(shí)刻發(fā)生了10個(gè)中斷請(qǐng)求,可以通過(guò)讀取中斷登記寄存器來(lái)了解哪些中斷發(fā)生了,并對(duì)產(chǎn)生的中斷依次進(jìn)行處理,這也就是通過(guò)軟件的方式?jīng)Q定了中斷服務(wù)的優(yōu)先級(jí)。中斷登記寄存器中的位顯示了某個(gè)中斷請(qǐng)求是否還未被處理。一旦某個(gè)登記位被置位,當(dāng)PSR的I標(biāo)志位或F標(biāo)志位被清0時(shí),中斷服務(wù)程序就會(huì)啟動(dòng)執(zhí)行。中斷登記寄存器是一個(gè)只讀寄存器,所以在服務(wù)程序中要想清除登記位時(shí),要采用在I_ISPC或F_ISPC中相應(yīng)位寫(xiě)入1的方式實(shí)現(xiàn)。4.INTMSK中斷屏蔽寄存器如果該寄存器的某一個(gè)位被置1,則該位對(duì)應(yīng)的中斷響應(yīng)被禁止了。如果某個(gè)中斷在INTMSK寄存器的對(duì)應(yīng)位為0,則這個(gè)中斷發(fā)生時(shí)將會(huì)正常被響應(yīng)。如果某個(gè)中斷的在INTMSK的寄存器中的對(duì)應(yīng)位為1,但是這個(gè)中斷發(fā)生了,它的登記位還是會(huì)置位。如果全局屏蔽位被置1,那么當(dāng)中斷發(fā)生時(shí),中斷登記位還是會(huì)置位,但是所有的中斷都不會(huì)得到服務(wù)。5.中斷源在30個(gè)中斷源中,有26個(gè)中斷源提供給中斷控制器。4個(gè)外部中斷(EINT4/5/6/7)請(qǐng)求是通過(guò)“或”的形式提供為1個(gè)中斷源送至中斷控制器,因此,ISR(中斷服務(wù)程序)要通過(guò)讀取EXTINPND[3:0]寄存器來(lái)區(qū)別這4個(gè)中斷源。它們的中斷處理程序(ISR)必須在處理結(jié)束時(shí)將EXTINPND[3:0]中對(duì)應(yīng)位寫(xiě)1來(lái)清除該位。2個(gè)UART錯(cuò)誤中斷占用一個(gè)中斷源。中斷源如表4-44

和圖4-16所示。(1)中斷請(qǐng)求寄存器INTPNDINTPND寄存器中的26個(gè)位對(duì)應(yīng)著每一個(gè)中斷源。如表4-46所示,當(dāng)中斷發(fā)生時(shí),INTPND中相應(yīng)的登記位就會(huì)置1,說(shuō)明該中斷還未被處理。中斷服務(wù)程序中必須清除該登記位,從而使系統(tǒng)能夠及時(shí)響應(yīng)下一次中斷。INTPND是一個(gè)只讀寄存器,清除登記位的方式是向I_ISPC/F_ISPC的相應(yīng)位寫(xiě)入“1”。在多個(gè)中斷同時(shí)發(fā)生時(shí),INTPND將所有發(fā)生的中斷登記位都置1。雖然中斷請(qǐng)求可以通過(guò)INTMSK寄存器屏蔽,但是如果被屏蔽的中斷發(fā)生了,INTPND中的登記位仍然會(huì)被置1。(2)中斷模式寄存器INTMODINTMOD寄存器中的26個(gè)位對(duì)應(yīng)著每一個(gè)中斷源。如表4-46所示,當(dāng)INTMOD中的響應(yīng)位設(shè)置為1,則ARM7TDMI內(nèi)核將以FIQ(快速中斷)模式響應(yīng)此中斷。否則,以IRQ(普通中斷)模式響應(yīng)。(3)中斷屏蔽寄存器INTMSK在INTMSK中,除了全局屏蔽位,其余的26位依次對(duì)應(yīng)著每個(gè)中斷源。當(dāng)INTMSK的某個(gè)屏蔽位為1同時(shí)該位對(duì)應(yīng)的中斷事件發(fā)生了,此時(shí)CPU事不會(huì)對(duì)中斷請(qǐng)求進(jìn)行響應(yīng)的。如果屏蔽位為0,則CPU將對(duì)中斷請(qǐng)求進(jìn)行響應(yīng)。如果全局屏蔽位為1,則所有的中斷請(qǐng)求都不會(huì)被響應(yīng),但是當(dāng)中斷發(fā)生時(shí),相應(yīng)的登記位仍將被置1。INTMSK的位定義如表4-46所示。(4)IRQ矢量模式寄存器優(yōu)先級(jí)產(chǎn)生模塊包括5個(gè)單元,1個(gè)主單元和4個(gè)輔單元。每個(gè)輔單元管理6個(gè)中斷源。主優(yōu)先級(jí)產(chǎn)生單元管理4個(gè)輔單元和2個(gè)中斷源。每個(gè)輔單元有4個(gè)可編程的優(yōu)先級(jí)源sGn和2個(gè)固定優(yōu)先級(jí)源sGKn。每個(gè)輔單元的4個(gè)中斷源優(yōu)先級(jí)由I_PSLV寄存器決定。另外2個(gè)固定源的優(yōu)先級(jí)在6個(gè)源中是最低的。主優(yōu)先級(jí)產(chǎn)生單元通過(guò)I_PMST寄存器決定4個(gè)輔單元和2個(gè)中斷源之間的優(yōu)先級(jí)。中斷源INT_RTC和INT_ADC在26個(gè)中斷源中優(yōu)先級(jí)是最低的。如果幾個(gè)中斷請(qǐng)求同時(shí)發(fā)生,I_ISPR寄存器中將其中具有最高優(yōu)先級(jí)的中斷源對(duì)應(yīng)位置1。(5)IRQ/FIQ中斷服務(wù)寄存器I_ISPR/F_ISPR是IRQ/FIQ中斷模式下的中斷服務(wù)寄存器,I_ISPC/F_ISPC是IRQ/FIQ中斷模式下的清除中斷服務(wù)寄存器。I_ISPC/F_ISPC清除中斷登記位(INTPND)。I_ISPC/F_ISPC也通知中斷控制器,中斷服務(wù)(ISR)已經(jīng)結(jié)束。在某個(gè)中斷的ISR結(jié)束時(shí),該中斷相應(yīng)的登記位也必須被清零。要將INTPND的某一位清零,方法是往I_ISPC/F_ISPC的相應(yīng)位寫(xiě)入1。

在清除I_ISPC/F_ISPC時(shí),還必須注意:I_ISPC/F_ISPC寄存器在ISR中只能被操作1次。如果你沒(méi)有遵守這兩點(diǎn),在中斷請(qǐng)求發(fā)生時(shí), I_ISPR/F_ISPR和INTPND寄存器可能還是0。I_ISPR/F_ISPR和I_ISPC/F_ISPC寄存器的位定義如表4-46所示。4.10串行口管理4.10.1概述S3C44B0X的UART(通用異步收發(fā)器)單元提供兩個(gè)獨(dú)立的異步串行I/O端口,每個(gè)都可以在中斷和DMA兩種模式下工作。它們支持的最高波特率為115.2Kbps。每個(gè)UART通道包含2個(gè)16位FIFO分別提供給接收和發(fā)送。S3C44B0X的UART可以進(jìn)行以下參數(shù)的設(shè)置:可編程的波特率,紅外收/發(fā)模式,1或2個(gè)停止位,5位、6位、7位或8位數(shù)據(jù)寬度和奇偶位校驗(yàn)。如圖4-17所示:每個(gè)UART包含一個(gè)波特率產(chǎn)生器,發(fā)送器,接收器和控制單元。波特率發(fā)生器以MCLK作為時(shí)鐘源。發(fā)送器和接收器包含16字節(jié)的FIFOs和移位寄存器。

被發(fā)送的數(shù)據(jù),首先被寫(xiě)入FIFO,再拷貝到發(fā)送移位寄存器,然后它從數(shù)據(jù)輸出端口(TxDn)依次被移位輸出。 被接收的數(shù)據(jù)也同樣從數(shù)據(jù)接收端口(RxDn)移位輸入到移位寄存器,然后拷貝到FIFO中。特性:RxD0,TxD0,RxD1,TxD1可以以中斷模式或DMA模式工作;UART通道0符合IrDA1.0要求,且具有16字節(jié)的FIFO;UART通道1符合IrDA1.0要求,且具有16字節(jié)的FIFO;支持收發(fā)時(shí)握手模式。4.10.2UART操作以下將介紹UART的操作,包括數(shù)據(jù)發(fā)送,數(shù)據(jù)接收,中斷發(fā)生,波特率發(fā)生,回送模式,自動(dòng)流控制等內(nèi)容。1.數(shù)據(jù)發(fā)送數(shù)據(jù)發(fā)送幀格式是可編程的。它包含一個(gè)開(kāi)始位,5到8個(gè)數(shù)據(jù)位,一個(gè)可選的奇偶位和1到2個(gè)停止位,這些都可以通過(guò)線(xiàn)控制寄存器(ULCONn)來(lái)設(shè)置。發(fā)送器也能夠產(chǎn)生發(fā)送中止條件。中止條件迫使串口輸出保持在邏輯0狀態(tài),這種狀態(tài)保持超過(guò)一個(gè)傳輸幀的時(shí)間長(zhǎng)度。通常在一幀傳輸數(shù)據(jù)完整地傳輸完之后,再通過(guò)這個(gè)全0狀態(tài)將中止信號(hào)發(fā)送給對(duì)方。中止信號(hào)發(fā)送之后,傳送數(shù)據(jù)將持續(xù)地放入到輸出FIFO中(在不使用FIFO模式下,將被放到輸出保持寄存器)。2.數(shù)據(jù)接收與發(fā)送一樣,接收的數(shù)據(jù)幀格式同發(fā)送幀格式。接收器還可以檢測(cè)到溢出錯(cuò)誤,奇偶校驗(yàn)錯(cuò)誤,幀錯(cuò)誤和中止?fàn)顩r,每種情況下都會(huì)將一個(gè)錯(cuò)誤標(biāo)志置位。溢出錯(cuò)誤表示新的數(shù)據(jù)已經(jīng)覆蓋了舊的數(shù)據(jù),因?yàn)榕f的數(shù)據(jù)沒(méi)有及時(shí)被讀入;奇偶校驗(yàn)錯(cuò)誤表示接收器檢測(cè)到了意料之外的奇偶校驗(yàn)結(jié)果;幀錯(cuò)誤表示接收到的數(shù)據(jù)沒(méi)有有效的停止位;中止?fàn)顩r表示RxDn的輸入被保持為0狀態(tài)超過(guò)了一個(gè)幀傳輸?shù)臅r(shí)間。在FIFO模式下接收FIFO不為空,但接收器已經(jīng)在3個(gè)字時(shí)間內(nèi)沒(méi)有接收到任何數(shù)據(jù),就認(rèn)為發(fā)生了接收超時(shí)狀況。3.自動(dòng)流控制(AFC)S3C44B0X的UART通過(guò)nRTS和nCTS信號(hào)支持自動(dòng)流控制,在這種情況下必須是UART與UART連接。4.非自動(dòng)流控制通過(guò)軟件控制nRTS和nCTS5.調(diào)制解調(diào)器接口如果用戶(hù)要連接到調(diào)制解調(diào)器接口,就需要nRTS,nCTS,nDSR,nDTR,DCD和nRI信號(hào)。在這種情況下,用戶(hù)可以通過(guò)通用其它I/O口來(lái)由軟件控制這些信號(hào),因?yàn)锳FC是不支持RS-232C接口的。4.10.3中斷/DMA請(qǐng)求產(chǎn)生器S3C44B0X的每個(gè)UART都有7個(gè)狀態(tài)信號(hào):溢出錯(cuò)誤,奇偶校驗(yàn)錯(cuò)誤,幀錯(cuò)誤,中止,接收FIFO/緩沖區(qū)數(shù)據(jù)準(zhǔn)備好,發(fā)送FIFO/緩沖區(qū)空,發(fā)送移位寄存器空。所有這些狀態(tài)都由對(duì)應(yīng)的UART狀態(tài)寄存器(UTRSTATn/UERSTATn)中的相應(yīng)位來(lái)表現(xiàn)。溢出錯(cuò)誤,奇偶校驗(yàn)錯(cuò)誤,幀錯(cuò)誤和中止?fàn)顩r都被認(rèn)為是接收錯(cuò)誤狀態(tài),如果UCONn中的“接收錯(cuò)誤狀態(tài)中斷使能位”被置位,它們中的每一個(gè)都能夠引發(fā)接收錯(cuò)誤中斷請(qǐng)求。當(dāng)“接收錯(cuò)誤狀態(tài)中斷請(qǐng)求”被檢測(cè)到,引發(fā)請(qǐng)求的信號(hào)可以通過(guò)讀取UERSTATn來(lái)識(shí)別。當(dāng)接收器要將接收移位寄存器的數(shù)據(jù)送到接收FIFO,它會(huì)激活接收FIFO滿(mǎn)狀態(tài)信號(hào),如果控制寄存器中的接收模式選為中斷模式,就會(huì)引發(fā)接收中斷。當(dāng)發(fā)送器從發(fā)送FIFO中取出數(shù)據(jù)到發(fā)送移位寄存器,那么FIFO空狀態(tài)信號(hào)將會(huì)被激活。如果控制寄存器中的發(fā)送模式選為中斷模式,就會(huì)引發(fā)發(fā)送中斷。如果接收/發(fā)送模式被選為DMA模式,“接收FIFO滿(mǎn)”和“發(fā)送FIFO空”狀態(tài)信號(hào)同樣可以產(chǎn)生DMA請(qǐng)求信號(hào)。與FIFO有關(guān)的中斷如表4-47所示。4.10.4UART錯(cuò)誤狀態(tài)FIFO除了接收FIFO寄存器之外,UART還具有一個(gè)狀態(tài)FIFO。狀態(tài)FIFO中表示了在FIFO寄存器中,哪一個(gè)數(shù)據(jù)被無(wú)錯(cuò)誤地接收。假設(shè)UART的FIFO連續(xù)接收到A,B,C,D,E字符,并且在接收B字符時(shí)發(fā)生了幀錯(cuò)誤(即該字符沒(méi)有停止位),在接收D字符時(shí)發(fā)生了奇偶校驗(yàn)錯(cuò)。雖然UART錯(cuò)誤發(fā)生了,錯(cuò)誤中斷不會(huì)產(chǎn)生,因?yàn)楹绣e(cuò)誤的字符還沒(méi)有被CPU讀取。當(dāng)字符被讀出時(shí)錯(cuò)誤中斷才會(huì)發(fā)生。如圖4-19所示。4.10.5波特率發(fā)生器每個(gè)UART的波特率發(fā)生器為傳輸提供了串行移位時(shí)鐘。波特率產(chǎn)生器的時(shí)鐘源可以通過(guò)S3C44B0X的內(nèi)部系統(tǒng)時(shí)鐘來(lái)選擇。波特率時(shí)鐘通過(guò)時(shí)鐘源16分頻和一個(gè)由UART波特率除數(shù)寄存器(UBRDIVn)指定的16位除數(shù)決定。UBRDIVn的值可以按照下式確定:UBRDIVn=(取整)(MCLK/(bps×16))-1除數(shù)的范圍為1到(216-1)。例如,如果波特率為115.2Kbps且系統(tǒng)主頻(MCLK)為64MHz,則UBRDIVn為:UBRDIVn=(int)(64000000/(115200×16))-1=35-1=344.10.6回送模式S3C44B0X的UART提供一個(gè)測(cè)試模式,即回送模式。在這種模式下,發(fā)送的數(shù)據(jù)會(huì)立即被接收。這一特性運(yùn)行處理器校驗(yàn)內(nèi)部發(fā)送和接收通道的功能。這種模式可以通過(guò)設(shè)置UART控制寄存器(UCONn)中的回送位來(lái)設(shè)定。4.10.7紅外通信模式S3C44B0X的UART模塊支持紅外線(xiàn)(IR)發(fā)送和接收。可以通過(guò)設(shè)置UART控制寄存器(ULCONn)中的紅外模式位來(lái)選擇這一模式。4.10.8UART寄存器寄存器名稱(chēng)中的n表示0~1,例如ULCONn對(duì)應(yīng)串口0為ULCON0,對(duì)應(yīng)串口1為ULCON1。1.UART線(xiàn)控制寄存器前面多次提到了線(xiàn)控制寄存器,它主要用來(lái)規(guī)定傳輸幀的格式。線(xiàn)控制寄存器定義如表4-48所示。UCONn位描述初始值發(fā)送中斷類(lèi)型[9]中斷請(qǐng)求類(lèi)型0=脈沖(在發(fā)送緩沖區(qū)變空時(shí)立即引發(fā)中斷)1=電平(在發(fā)送緩沖區(qū)變空時(shí)引發(fā)中斷)0接收中斷類(lèi)型[8]中斷請(qǐng)求類(lèi)型0=脈沖(在接收緩沖區(qū)接收到數(shù)據(jù)時(shí)立即引發(fā)中斷)1=電平(在接收緩沖區(qū)正在接收到數(shù)據(jù)時(shí)引發(fā)中斷)0接收超時(shí)中斷使能[7]在UART的FIFO使能的情況下,使能/禁止接收超時(shí)中斷0=禁止1=允許0接收錯(cuò)誤狀態(tài)中斷使能[6]使能UART在接收操作中發(fā)生錯(cuò)誤時(shí)的錯(cuò)誤中斷響應(yīng)0=不產(chǎn)生錯(cuò)誤狀態(tài)中斷1=產(chǎn)生錯(cuò)誤狀態(tài)中斷02.UART控制寄存器

UCONn控制寄存器各位定義如表4—49所示。

表4—49UCONn控制寄存器UCONn位描述初始值回送模式[5]設(shè)置該位,UART自動(dòng)進(jìn)入回送模式。0=正常傳輸1=發(fā)送終止信號(hào)0發(fā)送終止信號(hào)[4]設(shè)置該位,令UART在一楨時(shí)間中發(fā)送一個(gè)終止?fàn)顟B(tài)。發(fā)送完畢系統(tǒng)自動(dòng)清除該位。0=正常傳輸1=發(fā)送終止信號(hào)0發(fā)送模式[3:2]向UART發(fā)送保持寄存器中寫(xiě)入數(shù)據(jù)的模式。00=禁止01=中斷請(qǐng)求查詢(xún)模式10=BDMAD請(qǐng)求(僅UART0)11=BDMA1請(qǐng)求(僅UART1)00接收模式[1:0]從UART接受緩沖區(qū)中讀出數(shù)據(jù)的模式,00=禁止01=中斷請(qǐng)求查詢(xún)模式10=BDMA0請(qǐng)求(僅UARTD)11=BDMA1請(qǐng)求(僅UART1)003.FIFO控制寄存器FIFO控制寄存器UFCONn如表4—50所示,UFCONn控制UART0和UART1的Rx和TxFIFO操作表4—50UFCONn控制寄存器UFCONn位描述初始值發(fā)送FIFO的觸發(fā)水平[7:6]決定發(fā)送FIFO的觸發(fā)水平00=空01=4字節(jié)10=8字節(jié)11=12字節(jié)00接收FIFO的觸發(fā)水平[5:4]決定發(fā)送FIFO的觸發(fā)水平00=4字節(jié)01=8字節(jié)10=12字節(jié)11=16字節(jié)00保留[3]0TxFIFO復(fù)位[2]在復(fù)位FIFO后自動(dòng)清零0=正常1=TxFIFO復(fù)位0RxFIFO復(fù)位[1]在復(fù)位FIF0后自動(dòng)清零0=正常1=RxFIF0復(fù)位0FIFO使能[0]FIF0禁止允許:0=禁止1=允許04.UART的Moden控制寄存器UMCONn是Moden控制寄存器,如表4—51所示表4—51UMCONnModen控制寄存器UMCONn位描述初始值保留[7:5]這些位必須為000AFC(AutoFlowcontrol)[4]自動(dòng)流控制禁止允許位0=禁止1=允許0保留[3:1]這些位必須為000請(qǐng)求發(fā)送[0]如果AFC使能,這位的值將被忽略。在這種情況下,S3C44BOX自動(dòng)控制nRTS如果AFC禁止,必須由軟件來(lái)控制nRTS0=高電平(失活nRTS)1=低電平(激活nRTS)05.UART發(fā)送/接收狀態(tài)寄存器UTRSTATn是發(fā)送/接收狀態(tài)寄存器,如表4—52所示。表4—52UTRSTATn發(fā)送/接收狀態(tài)控制寄存器UTRSTATn位描述初始值發(fā)送移位寄存器為空[2]當(dāng)發(fā)送移位寄存器中不包含有效數(shù)據(jù)或移位寄存器為空,這一位將自動(dòng)被置位。0=非空1=發(fā)送保持和移位寄存器為空1發(fā)送緩沖器為空[1]當(dāng)發(fā)送緩沖區(qū)寄存器中不包含有效數(shù)據(jù),這一位將自動(dòng)被置位。0=緩沖區(qū)寄存器非空1=空如果使用了FIFO,則用戶(hù)不用檢測(cè)這個(gè)位,而應(yīng)當(dāng)檢測(cè)UFSTAT中發(fā)送FIF0計(jì)數(shù)器位和FIF0滿(mǎn)位。1接收緩沖器數(shù)據(jù)就緒[0]當(dāng)接收緩沖器寄存器中包含有效數(shù)據(jù),這一位將自動(dòng)被置位。0=完全為空1=緩沖器寄存器中包含有效數(shù)據(jù)如果使用了FIF0,則用戶(hù)不用檢測(cè)這個(gè)位,而應(yīng)當(dāng)檢測(cè)UFSTAT中接收FIF0計(jì)數(shù)器位。06.UART錯(cuò)誤狀態(tài)寄存器UERSTATn是錯(cuò)誤狀態(tài)寄存器,如表4—53所示表4—53UERSTATn錯(cuò)誤狀態(tài)寄存器UERSTATn位描述初始值間隔中斷[3]0=未收到間隔信號(hào)1=收到間隔信號(hào)0數(shù)據(jù)楨錯(cuò)誤[2]0=接收時(shí)無(wú)楨錯(cuò)誤1=接收時(shí)發(fā)生楨錯(cuò)誤0奇偶錯(cuò)誤[1]0=接收時(shí)無(wú)奇偶錯(cuò)誤1=接收時(shí)奇偶錯(cuò)誤0Overrun錯(cuò)誤[0]0=在接收過(guò)程中未產(chǎn)生Overrun錯(cuò)誤1=Overrun錯(cuò)誤注:當(dāng)已收到的數(shù)據(jù)還未被讀取,而新接收的數(shù)據(jù)覆蓋了原有的數(shù)據(jù)時(shí),就會(huì)產(chǎn)生Overrun錯(cuò)誤07.UART的FIF0狀態(tài)寄存器UFSTATn是FIF0狀態(tài)寄存器,如表4—54所示表4—54UFSTATnFIF0狀態(tài)寄存器UFSTATn位描述初始值保留[15:10]0TxFIF0滿(mǎn)[9]當(dāng)FIF0滿(mǎn)時(shí),置10=0字節(jié)≤TxFIF0數(shù)據(jù)≤15字節(jié)1=滿(mǎn)0RxFIF0滿(mǎn)[8]當(dāng)FIF0要滿(mǎn)時(shí),置10=0字節(jié)≤RxFIF0數(shù)據(jù)≤15字節(jié)1=滿(mǎn)0TxFIF0計(jì)數(shù)[7:4]發(fā)送FIF0中數(shù)據(jù)的個(gè)數(shù)0RxFIF0計(jì)數(shù)[3:0]接收FIF0中數(shù)據(jù)的個(gè)數(shù)08.UART的Modem狀態(tài)寄存器UMSTATn是Modem狀態(tài)寄存器,如表4—55所示表4—55UMSTATnModem狀態(tài)寄存器UMSTATn位描述初始值DeltaCTS[4]表明輸入到S3C44BOX的信號(hào)從上一次讀過(guò)后已經(jīng)改變0=無(wú)改變1=已改變0Rserved[3:1]保留CleartoSend[0]0=CTS信號(hào)未激活(nCTS引腳為高電平)1=CTS信號(hào)已激活(nCTS引腳為低電平)09.UART發(fā)送/接收保持(緩沖區(qū))寄存器URXHn/URXHn是發(fā)送/接收保持(緩沖區(qū))寄存器,如表4—56和表4—57所示表4—56URXHn是發(fā)送保持(緩沖區(qū))寄存器URXHn位描述初始值RXDATAn[7:0]從UARTn發(fā)送的數(shù)據(jù)字節(jié)—URXHn位描述初始值URXDATAn[7:0]從UARTn接收的數(shù)據(jù)字節(jié)—注:UART接收保持(緩沖區(qū))寄存器和FIF0寄存器:URXH0,URXH1,如果發(fā)生了益出錯(cuò)誤,必須讀一次URXHn,如果不讀,即使USTATn中的溢出錯(cuò)誤位被清除了,下一個(gè)接收的數(shù)據(jù)仍然會(huì)發(fā)生一個(gè)溢出錯(cuò)誤。表4—57URXHn是接收保持(緩沖區(qū))寄存器10.UART波特率除數(shù)寄存器UBRDIVn是波特率除數(shù)寄存器,如表4—58所示UBRDIVn位描述初始值UBRDIV[15:0]波特率除數(shù)的值UBRDIV>0—區(qū)域(組/Cache)存儲(chǔ)空間地址大小Cacheset00x10000000-0x100007fff2KBCacheset10x10000800-0x10000fff2KBCacheset20x10001000-0x100017ff2KBCacheset30x10001800-0x10001fff2KBCacheset00x10002000-0x100027fo512B(note)Cacheset10x10002800-0x10002ffo512B(note)Cacheset20x10003000-0x100037fo512B(note)Cacheset30x10003800-0x100347fo512B(note)LRU0x10004000-0x100047fo512B(note)返回返回SYSCFG位描述初始狀態(tài)Reserved[7]保留0Reserved[6]保留0DA(reserved)[5]數(shù)據(jù)異??刂疲扑]值為0。0:允許數(shù)據(jù)異常1:不允許數(shù)據(jù)異常0RSE(reserved)[4]允許讀停止選項(xiàng),推薦值為0。讀停止選項(xiàng)在Cache&CPUcore讀數(shù)據(jù)時(shí)插入—個(gè)間歇等待周期。0:允許讀停止1:允許讀停止0WE[3]該位確定寫(xiě)緩沖的允許/不允許,一些外部裝置需要最小的寫(xiě)周期時(shí)間,如果允許寫(xiě)緩沖,在由于連續(xù)的寫(xiě)之間的周期將使之工作不正常。0=不允許寫(xiě)緩沖操作1=允許寫(xiě)緩沖操作0CM[2:1]這兩位確定Cache模式00=8KB內(nèi)部SRAM01=4KBCache,4KB內(nèi)部SRAM10=保留11=8KBCache00SE[0]允許停止選項(xiàng),推薦值為0。停止選項(xiàng)在使用Cache,產(chǎn)生非連續(xù)地址時(shí),插入—0:不允許停止1:允許停止1返回SBUSCON位描述初始狀態(tài)FIX[31]優(yōu)先模式0:輪轉(zhuǎn)優(yōu)先級(jí)1:固定優(yōu)先級(jí)0xlS_LCD_DMA[15:14]指示LCD_DMA的總線(xiàn)優(yōu)先級(jí)(只讀)00:Lst01:2nd10:3nd11:4th00S_ZDMA[13:12]指示ZDMA的總線(xiàn)優(yōu)先級(jí)(只讀)00:Lst01:2nd10:3nd11:4th01S_BDMA[11:10]指示BDMA的總線(xiàn)優(yōu)先級(jí)(只讀)00:Lst01:2nd10:3nd11:4th10S_nBREQ[9:8]指示nBREQQ的總線(xiàn)優(yōu)先級(jí)(只讀)00:Lst01:2nd10:3nd11:4th11LCD_DMA[7:6]指示LCD_DMA的總線(xiàn)優(yōu)先級(jí)00:Lst01:2nd10:3nd11:4th00ZDMA[5:4]指示ZDMA的總線(xiàn)優(yōu)先級(jí)00:Lst01:2nd10:3nd11:4th01BDMA[3:2]指示BDMA的總線(xiàn)優(yōu)先級(jí)00:Lst01:2nd10:3nd11:4th10nBREQ[1:0]指示nBREQ的總線(xiàn)優(yōu)先級(jí)00:Lst01:2nd10:3nd11:4th11SBUSCON寄存器SBUSCON返回圖4-5ZDMA控制器框圖

返回圖4-6BDMA控制器框圖

返回端口A(yíng)可選擇的引腳功能功能1功能2PA0僅輸出ADDR0PA1僅輸出ADDR16PA2僅輸出ADDR17PA3僅輸出ADDR18PA4僅輸出ADDR19PA5僅輸出ADDR20PA6僅輸出ADDR21PA7僅輸出ADDR22PA8僅輸出ADDR23PA9僅輸出ADDR24端口A(yíng)可選擇的引腳功能功能1功能2PB0僅輸出SCKEPB1僅輸出SCLKPB2僅輸出nSCAS:nCAS2PB3僅輸出nSCAS:nCAS3PB4僅輸出nWBE2:nBE2:DQM2PB5僅輸出NWBE3:nBE3:DQM3PB6僅輸出nGCSIPB7僅輸出nGCS2PB8僅輸出nGCS3PB9僅輸出nGCS4PB10僅輸出nGCS5端口C可選擇的引腳功能功能1功能2功能3PC0輸入/輸出DATA16IISLRCKPC1輸入/輸出DATA17IISDOPC2輸入/輸出DATA18IISDIPC3輸入/輸出DATA19IISCLKPC4輸入/輸出DATA20VD7PC5輸

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論