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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文檔

評論

0/150

提交評論