第4章 ARM S3C2410X系統(tǒng)結(jié)構(gòu)_第1頁
第4章 ARM S3C2410X系統(tǒng)結(jié)構(gòu)_第2頁
第4章 ARM S3C2410X系統(tǒng)結(jié)構(gòu)_第3頁
第4章 ARM S3C2410X系統(tǒng)結(jié)構(gòu)_第4頁
第4章 ARM S3C2410X系統(tǒng)結(jié)構(gòu)_第5頁
已閱讀5頁,還剩410頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

嵌入式系統(tǒng)講義

第4章S3C2410X系統(tǒng)結(jié)構(gòu)第4章S3C2410X系統(tǒng)結(jié)構(gòu)4.1S3C2410X概述4.2存儲(chǔ)器配置4.3DMA4.4ADC和觸摸屏接口4.5中斷控制器4.6I/O端口4.7PWM4.8UART接口4.9SPI接口4.10IIC接口4.11RTC4.12時(shí)鐘和電源管理4.13看門狗4.14其它接口主要內(nèi)容4.14其它接口1、USB接口2、LCD控制器3、SD接口4、IIS接口4.1S3C2410X概述主要內(nèi)容主要特性系統(tǒng)結(jié)構(gòu)引腳信號(hào)4.1S3C2410X概述

S3C2410X是韓國(guó)三星公司推出的16/32位RISC微控制器,其CPU采用的是ARM920T內(nèi)核,加上豐富的片內(nèi)外設(shè),為手持設(shè)備和其它應(yīng)用,提供了低價(jià)格、低功耗、高性能微控制器的解決方案。

一、主要特性具有16KB指令Cache、16KB數(shù)據(jù)Cache和存儲(chǔ)器管理單元MMU。外部存儲(chǔ)器控制器,可擴(kuò)展8組,每組128MB,總?cè)萘窟_(dá)1GB;支持從Nandflash存儲(chǔ)器啟動(dòng)。55個(gè)中斷源,可以設(shè)定1個(gè)為快速中斷,有24個(gè)外部中斷,并且觸發(fā)方式可以設(shè)定。4通道的DMA,并且有外部請(qǐng)求引腳。3個(gè)通道的UART,帶有16字節(jié)的TX/RXFIFO,支持IrDA1.0功能。具有2通道的SPI、1個(gè)通道的IIC串行總線接口和1個(gè)通道的IIS音頻總線接口。有2個(gè)USB主機(jī)總線的端口,1個(gè)USB設(shè)備總線的端口。有4個(gè)具有PWM功能的16位定時(shí)器和1個(gè)16位內(nèi)部定時(shí)器。8通道的10位A/D轉(zhuǎn)換器,最高速率可達(dá)500kB/s;提供有觸摸屏接口。具有117個(gè)通用I/O口和24通道的外部中斷源。兼容MMC的SD卡接口。具有電源管理功能,可以使系統(tǒng)以普通方式、慢速方式、空閑方式和掉電方式工作??撮T狗定時(shí)器。具有日歷功能的RTC。有LCD控制器,支持4K色的STN和256K色的TFT,配置有DMA通道。具有PLL功能的時(shí)鐘發(fā)生器,時(shí)鐘頻率高達(dá)203MHz。雙電源系統(tǒng):1.8/2.0V內(nèi)核供電,3.3V存儲(chǔ)器和I/O供電。二、系統(tǒng)結(jié)構(gòu) 主要由兩大部分構(gòu)成:

ARM920T內(nèi)核 片內(nèi)外設(shè)。

1、ARM920T內(nèi)核 由三部分:ARM9內(nèi)核ARM9TDMI、32KB的Cache、MMU。

2、片內(nèi)外設(shè)

分為高速外設(shè)和低速外設(shè),分別用AHB總線和APB總線。三、引腳信號(hào)

S3C微控制器是272-FBGA封裝。

其信號(hào)可以分成addr0---addr26、Data0---data31、GPA0---GPA22GPB10、GPC15、GPD15、GPE15、GPF7、GPG15、GPH10、EINT23、nGCS0—nGCS7、AIN7、IIC、SPI、OM0---OM3等,大部分都是復(fù)用的4.2S3C2410X的存儲(chǔ)器主要內(nèi)容存儲(chǔ)器配置存儲(chǔ)器概述控制寄存器Flash及控制器Flash控制器概述控制器主要特性控制器的寄存器控制器的工作原理4.2存儲(chǔ)器配置4.2.1S3C2410X的存儲(chǔ)器配置

一、概述

S3C2410X的存儲(chǔ)器管理器提供訪問外部存儲(chǔ)器的所有控制信號(hào):27位地址信號(hào)、32位數(shù)據(jù)信號(hào)、8個(gè)片選信號(hào)、以及讀/寫控制信號(hào)等。

S3C2410X的存儲(chǔ)空間分成8組,最大容量是1GB,bank0---bank5為固定128MB,bank6和bank7的容量可編程改變,可以是2、4、8、16、32、64、128MB,并且bank7的開始地址與bank6的結(jié)束地址相連接,但是二者的容量必須相等。

bank0可以作為引導(dǎo)ROM,其數(shù)據(jù)線寬只能是16位和32位,復(fù)位時(shí)由OM0、OM1引腳確定;其它存儲(chǔ)器的數(shù)據(jù)線寬可以是8位、16位和32位。

S3C2410X的存儲(chǔ)器格式,可以編程設(shè)置為大端格式,也可以設(shè)置為小端格式。

二、存儲(chǔ)器的控制寄存器 內(nèi)存控制器為訪問外部存儲(chǔ)空間提供存儲(chǔ)器控制信號(hào),S3C2410X存儲(chǔ)器控制器共有13個(gè)寄存器。寄存器地址功能操作復(fù)位值BWSCON0x48000000總線寬度和等待控制讀/寫0x0BANKCON00x48000004BANK0控制讀/寫0x0700BANKCON10x48000008BANK1控制讀/寫0x0700BANKCON20x4800000CBANK2控制讀/寫0x0700BANKCON30x48000010BANK3控制讀/寫0x0700BANKCON40x48000014BANK4控制讀/寫0x0700BANKCON50x48000018BANK5控制讀/寫0x0700BANKCON60x4800001CBANK6控制讀/寫0x18008BANKCON70x48000020BANK7控制讀/寫0x18008REFRESH0x48000024SDRAM刷新控制讀/寫0xAC0000BANKSIZE0x48000028可變的組大小設(shè)置讀/寫0x0MRSRB60x4800002CBANK6模式設(shè)置讀/寫xxxMRSRB70x48000030BANK7模式設(shè)置讀/寫xxx1、總線寬度和等待控制寄存器BWSCON

用于設(shè)定各存儲(chǔ)塊的數(shù)據(jù)寬度以及是否使能nwait31302928272625242322212019181716ST7WS7DW7ST6WS6DW6ST5WS5DW5ST4WS4DW41514131211109876543210ST3WS3DW3ST2WS2DW2ST1WS1DW1XDW0XSTn:控制存儲(chǔ)器組n的UB/LB引腳輸出信號(hào)。

1:使UB/LB與nBE[3:0]相連;

0:使UB/LB與nWBE[3:0]相連WSn:使用/禁用存儲(chǔ)器組n的WAIT狀態(tài)

1:使能WAIT;0:禁止WAITDWn:控制存儲(chǔ)器組n的數(shù)據(jù)線寬

00:8位;01:16位;10:32位;11:保留Tacs:設(shè)置nGCSn有效前地址的建立時(shí)間

00:0個(gè);01:1個(gè);10:2個(gè);11:4個(gè)時(shí)鐘周期Tcos:設(shè)置nOE有效前片選信號(hào)的建立時(shí)間

00:0個(gè);01:1個(gè);10:2個(gè);11:4個(gè)時(shí)鐘周期Tacc:訪問周期

000:1個(gè);001:2個(gè);010:3個(gè);011:4個(gè)時(shí)鐘

100:6個(gè):101:8個(gè);110:10個(gè);111:14個(gè)1514131211109876543210TacsTcosTaccTcohTcahTacpPMC2、BANKn---存儲(chǔ)器組控制寄存器(n=0--5)31302928272625242322212019181716Tcoh:nOE無效后片選信號(hào)的保持時(shí)間

00:0個(gè);01:1個(gè);10:2個(gè);11:4個(gè)時(shí)鐘Tcah:nGCSn無效后地址信號(hào)的保持時(shí)間

00:0個(gè);01:1個(gè);10:2個(gè);11:4個(gè)時(shí)鐘Tacp:頁模式的訪問周期

00:2個(gè);01:3個(gè);10:4個(gè);11:6個(gè)時(shí)鐘PMC:頁模式的配置,每次讀寫的數(shù)據(jù)數(shù)

00:1個(gè);01:4個(gè);10:8個(gè);11:16個(gè) 注:00為通常模式。

注:紫色為實(shí)驗(yàn)箱上的配置,其值為0x0700MT:設(shè)置存儲(chǔ)器類型

00:ROM或者SRAM,[3:0]為Tacp和PMC;

11:SDRAM,[3:0]為Trcd和SCAN;

01、10:保留Trcd:由行地址信號(hào)切換到列地址信號(hào)的延時(shí)時(shí)鐘數(shù)

00:2個(gè)時(shí)鐘;01:3個(gè)時(shí)鐘;10:4個(gè)時(shí)鐘

SCAN:列地址位數(shù)

00:8位; 01:9位; 10:10位

14131211109876543210TacsTcosTaccTcohTcahTacp/TrcdPMC/SCAN

3、BANK6/7---存儲(chǔ)器組6/7控制寄存器31……171615保留MTREFEN:刷新控制。 1:使能刷新;0:禁止刷新TREFMD:刷新方式。 1:自刷新 0:自動(dòng)刷新Trp:設(shè)置SDRAM行刷新時(shí)間(時(shí)鐘數(shù))

00:2個(gè)時(shí)鐘;01:3個(gè);10:3個(gè);11:4個(gè)時(shí)鐘Tsrc:設(shè)置SDRAM行操作時(shí)間(時(shí)鐘數(shù))

00:4個(gè)時(shí)鐘;01:5個(gè);10:6個(gè);11:7個(gè)時(shí)鐘 注:SDRAM的行周期=Trp+Tsrc。Refresh_count:刷新計(jì)數(shù)值1514131211109876543210保留Refresh_count4、REFRESH---刷新控制寄存器31……242322212019181716保留REFENTREFMDTrpTsrc保留Refresh_count:刷新計(jì)數(shù)器值 計(jì)算公式:刷新周期=(211-Refresh_count+1)/HCLK例子:設(shè)刷新周期=15.6μs,HCLK=60MHz則 刷新計(jì)數(shù)器值=211+1-60×15.6=1113 1113=0x459=0b10001011001

高24位未用。BURST_EN:ARM突發(fā)操作控制

0:禁止突發(fā)操作;1:可突發(fā)操作SCKE_EN:SCKE使能控制SDRAM省電模式

0:關(guān)閉省電模式;1:使能省電模式SCLK_EN:SCLK省電控制,使其只在SDRAM訪問周期內(nèi)使能SCLK 0:SCLK一直有效;1:SCLK只在訪問期間有效BK76MAP:控制BANK6/7的大小及映射76543210BURST_ENXSCKE_ENSCLK_ENXBK76MAP5、BANKSIZE---BANK6/7組大小控制寄存器BK76MAP:控制BANK6/7的大小及映射

100:2MB; 101:4MB;

110:8MB 111:16MB;

000:32MB; 001:64MB 010:128MBWBL:突發(fā)寫的長(zhǎng)度。0:固定長(zhǎng)度;1:保留TM:測(cè)試模式。 00:模式寄存器集;其它保留CL:列地址反應(yīng)時(shí)間

000:1個(gè)時(shí)鐘;010:2個(gè)時(shí)鐘;

011:3個(gè)時(shí)鐘;其它保留BT:猝發(fā)類型

0:連續(xù); 1:保留BL:猝發(fā)時(shí)間

000:1個(gè)時(shí)鐘;其它保留

6、MRSRB6/7---BANK6/7模式設(shè)置寄存器1514131211109876543210WBLTMCLBTBL4.2.2NandFlash及其控制器主要內(nèi)容1、NandFlash控制器概述2、控制器主要特性3、控制器的寄存器4、控制器的工作原理4.2.2NandFlash及其控制器

Norflash存儲(chǔ)器:讀速度高,而擦、寫速度低,容量小,價(jià)格高。

Nandflash存儲(chǔ)器:讀速度不如Norflash,而擦、寫速度高,容量大,價(jià)格低。有取代磁盤的趨勢(shì)。 因此,現(xiàn)在不少用戶從Nandflash啟動(dòng)和引導(dǎo)系統(tǒng),而在SDRAM上執(zhí)行主程序代碼。一、NandFlash控制器概述

S3C2410X微控制器從Nandflash的引導(dǎo)功能:其內(nèi)部有一個(gè)叫做“起步石(Steppingstone)”的SRAM緩沖器,系統(tǒng)啟動(dòng)時(shí),Nandflash存儲(chǔ)器的前面4KByte字節(jié)將被自動(dòng)載入到起步石中,然后系統(tǒng)自動(dòng)執(zhí)行這些載入的引導(dǎo)代碼。引導(dǎo)代碼執(zhí)行完畢后,自動(dòng)跳轉(zhuǎn)到SDRAM執(zhí)行。

Nandflash操作的校驗(yàn)功能:使用S3C2410X內(nèi)部硬件ECC功能可以對(duì)Nandflash的數(shù)據(jù)進(jìn)行有效性的檢測(cè)。

二、NandFlash控制器主要特性

NandFlash模式:支持讀/擦/編程N(yùn)andflash存儲(chǔ)器。

自動(dòng)導(dǎo)入模式:復(fù)位后,引導(dǎo)代碼被送入Steppingstone,傳送后,引導(dǎo)代碼在Steppingstone中執(zhí)行。

具有硬件ECC(糾錯(cuò)碼)功能:硬件產(chǎn)生糾錯(cuò)代碼。

內(nèi)部4KB的SRAM緩沖器Steppingstone,在Nandflash引導(dǎo)后可以作為其他用途使用。NandFlash控制器功能框圖主要由6部分組成引腳信號(hào):三、NandFlash控制器的寄存器寄存器地址功能操作復(fù)位值NFCONF0x4E000000NandFlash配置讀/寫-NFCMD0x4E000004NandFlash命令讀/寫-NFADDR0x4E000008NandFlash地址讀/寫-NFDATA0x4E00000CNandFlash數(shù)據(jù)讀/寫-NFSTAT0x4E000010NandFlash狀態(tài)讀/寫-NFECC0x4E000014NandFlash糾錯(cuò)讀/寫-NFEN:NF控制器使能控制

0:禁止使用; 1:允許使用IECC:初始化ECC編碼/解碼器控制位

0:不初始化ECC; 1:初始化ECCNFCE:NF片選信號(hào)nFCE控制位持續(xù)時(shí)間設(shè)置

0:nFCE為低有效; 1:nFCE為高有效TACLE:CLE/ALE持續(xù)時(shí)間設(shè)置值(0---7)

持續(xù)時(shí)間=

HCLK*(TACLS+1)CLE/ALE:命令/地址鎖存允許1514131211109876543210NFENXIECCNFCETACLEXTWRPH0XPWRPH10-000-0-01、NFCONF---Flash配置寄存器TWRPH0:寫信號(hào)持續(xù)時(shí)間設(shè)置值(0~7) 持續(xù)時(shí)間=

HCLK*(TWRPH0+1)

TWRPH1:寫信號(hào)無效后CLE/ALE保持時(shí)間設(shè)置值(0~7) 持續(xù)時(shí)間=

HCLK*(TWRPH1+1)1514131211109876543210保留命令字2、NFCMD---Flash命令寄存器 高24位未用,低8位為讀入或者寫出的數(shù)據(jù)1514131211109876543210保留地址值3、NFADDR---Flash地址寄存器1514131211109876543210保留輸入/輸出數(shù)據(jù)4、NFDATA---Flash數(shù)據(jù)寄存器 高24位未用,低8位為Flash存儲(chǔ)器地址值RnB:NandFlash存儲(chǔ)器狀態(tài)位

0:存儲(chǔ)器忙; 1:存儲(chǔ)器準(zhǔn)備好1514131211109876543210保留RnB5、NFSTAT---Flash狀態(tài)寄存器1514131211109876543210錯(cuò)誤校正碼#1錯(cuò)誤校正碼#06、NFECC---Flash錯(cuò)誤校正碼寄存器31302928272625242322212019181716保留錯(cuò)誤校正碼#2四、NandFlash控制器的工作原理

1、自動(dòng)導(dǎo)入啟動(dòng)代碼步驟

完成復(fù)位。

如果自動(dòng)導(dǎo)入模式使能,Nandflash存儲(chǔ)器的前面4K字節(jié)被自動(dòng)拷貝到Steppingstone內(nèi)部緩沖器中。

Steppingstone被映射到nGCS0對(duì)應(yīng)的BANK0存儲(chǔ)空間。

CPU在Steppingstone的4-KB內(nèi)部緩沖器中開始執(zhí)行引導(dǎo)代碼。

注意:在自動(dòng)導(dǎo)入模式下,不進(jìn)行ECC檢測(cè)。因此,Nandflash的前4KB應(yīng)確保不能有位錯(cuò)誤(一般Nandflash廠家都確保)。

2、NandFLASH模式配置

通過NFCONF寄存器配置Nandflash; 寫Nandflash命令到NFCMD寄存器; 寫Nandflash地址到NFADDR寄存器; 在讀寫數(shù)據(jù)時(shí),通過NFSTAT寄存器來獲得Nandflash的狀態(tài)信息。應(yīng)該在讀操作前或?qū)懭胫髾z查R/nB信號(hào)(準(zhǔn)備好/忙信號(hào))。 在讀寫操作后要查詢校驗(yàn)錯(cuò)誤代碼,對(duì)錯(cuò)誤進(jìn)行糾正。

3、系統(tǒng)引導(dǎo)和NandFLASH配置

OM[1:0]=00b:使能Nandflash控制器自動(dòng)導(dǎo)入模式;

OM[3:0]為芯片引腳,設(shè)置引導(dǎo)模式、存儲(chǔ)器bank0的數(shù)據(jù)寬度、時(shí)鐘模式等。

OM[1:0]=01b、10b:

bank0數(shù)據(jù)寬度為16位、32位

OM[1:0]=11b:測(cè)試模式

Nandflash的存儲(chǔ)頁面大小應(yīng)該為512字節(jié)。

NCON:Nandflash尋址步驟數(shù)選擇

0:3步尋址; 1:4步尋址

4、NandFlash操作的校驗(yàn)問題

S3C2410A在寫/讀操作時(shí),每512字節(jié)數(shù)據(jù)自動(dòng)產(chǎn)生3字節(jié)的ECC奇偶代碼(24位)。

24位ECC奇偶代碼=18位行奇偶+6位列奇偶

ECC產(chǎn)生模塊執(zhí)行以下步驟:

當(dāng)MCU寫數(shù)據(jù)到Nand時(shí),ECC產(chǎn)生模塊生成ECC代碼。 當(dāng)MCU從Nand讀數(shù)據(jù)時(shí),ECC產(chǎn)生模塊生成ECC代碼同時(shí)用戶程序?qū)⑺c先前寫入時(shí)產(chǎn)生的ECC代碼比較。

4.3DMA控制器主要內(nèi)容1、概述2、工作原理3、寄存器一、概述

S3C2410X有4個(gè)通道的DMA控制器,其位于在系統(tǒng)總線和外設(shè)總線之間。 每個(gè)DMA通道都能沒有約束的實(shí)現(xiàn)系統(tǒng)總線或者外設(shè)總線之間的數(shù)據(jù)傳輸,即每個(gè)通道都能處理下面四種情況: (1)源器件和目的器件都在系統(tǒng)總線 (2)源器件在系統(tǒng)總線,目的器件在外設(shè)總線 (3)源器件在外設(shè)總線,目的器件在系統(tǒng)總線 (4)源器件和目的器件都在外設(shè)總線

DMA的主要優(yōu)點(diǎn)是:可以不通過CPU的中斷來實(shí)現(xiàn)數(shù)據(jù)的傳輸,DMA的運(yùn)行可以通過軟件或者通過外圍設(shè)備的中斷和請(qǐng)求來初始化。二、DMA工作原理

1、DMA的服務(wù)對(duì)象

每個(gè)DMA通道都有4個(gè)DMA請(qǐng)求源,通過設(shè)置,可以從中挑選一個(gè)服務(wù)。每個(gè)通道的DMA請(qǐng)求源如表4-1所示。

通道

源請(qǐng)求源0請(qǐng)求源1請(qǐng)求源2請(qǐng)求源3請(qǐng)求源4通道0nXDREQ0UART0SDITimerUSB設(shè)備EP1通道1nXDREQ1UART1IIS/SDISPI0USB設(shè)備EP2通道2IISSDOIISSDISDITimerUSB設(shè)備EP3通道3UART2SDISPI1TimerUSB設(shè)備EP4表4-1各通道的DMA請(qǐng)求源

2、DMA的工作過程 一般DMA的工作過程如下面所示

(1)外設(shè)向DMAC發(fā)出請(qǐng)求

(2)DMAC通過HOLD向CPU發(fā)出總線請(qǐng)求;

(3)CPU響應(yīng)釋放三總線,并且發(fā)應(yīng)答HLDA

(4)DMAC向外設(shè)發(fā)DMA應(yīng)答

(5)DMAC發(fā)出地址、控制信號(hào),為外設(shè)傳送數(shù)據(jù); (6)傳送完規(guī)定的數(shù)據(jù)后,DMAC撤銷HOLD信號(hào),CPU也撤銷HLDA信號(hào),并且恢復(fù)對(duì)三總線的控制。12453

2、DMA的工作過程

S3C2410X的DMA工作過程可以分為三個(gè)狀態(tài): 狀態(tài)1:等待狀態(tài)。DMA等待一個(gè)DMA請(qǐng)求。如果有請(qǐng)求到來,將轉(zhuǎn)到狀態(tài)2。在這個(gè)狀態(tài)下,DMAACK和INTREQ為0。 狀態(tài)2:準(zhǔn)備狀態(tài)。DMAACK變?yōu)?,計(jì)數(shù)器(CURR_TC)裝入DCON[19:0]寄存器。 注意:DMAACK保持為1直至它被清除。 狀態(tài)3:傳輸狀態(tài)。DMA控制器從源地址讀入數(shù)據(jù)并將它寫到目的地址,每傳輸一次,CURR_TC數(shù)器(在DSTAT中)減1,并且可能做以下操作: 重復(fù)傳輸:在全服務(wù)模式下,將重復(fù)傳輸,直到計(jì)數(shù)器CURR_TC變?yōu)?;在單服務(wù)模式下,僅傳輸一次。設(shè)置中斷請(qǐng)求信號(hào):當(dāng)CURR_TC變?yōu)?時(shí),DMAC發(fā)出INTREQ信號(hào),而且DCON[29]即中斷設(shè)定位被設(shè)為1。清除DMAACK信號(hào):對(duì)單服務(wù)模式,或者全服務(wù)模式

CURR_TC變?yōu)?。 注意:在單服務(wù)模式下,DMAC的3個(gè)狀態(tài)被執(zhí)行一遍,然后停止,等待下一個(gè)DMAREQ的到來。如果DMAREQ到來,則這些狀態(tài)被重復(fù)操作,直到CURR_TC減為0。

說明:DMA傳輸分為一個(gè)單元傳輸和4個(gè)單元突發(fā)式傳輸。

3、外部DMA請(qǐng)求/響應(yīng)規(guī)則

DMAC有3種類型的外部DMA請(qǐng)求/響應(yīng)規(guī)則:

(1)singleservicedemand,單服務(wù)請(qǐng)求(對(duì)應(yīng)于需求模式)

(2)singleservicehandshake,單服務(wù)握手(握手模式) (3)wholeservicehandshake,全服務(wù)握手(全服務(wù)模式) 每種類型都定義了像DMA請(qǐng)求和DMA響應(yīng)這些信號(hào)怎樣與這些規(guī)則相聯(lián)系。

demand與handshake模式的比較: 在一次傳輸結(jié)束時(shí),DMA檢查xnxDREQ(DMA請(qǐng)求)信號(hào)的狀態(tài): 在demand模式下:如果DMA請(qǐng)求(xnxDREQ)信號(hào)仍然有效,則傳輸馬上再次開始。否則等待。 在handshake模式下:如果DMA請(qǐng)求信號(hào)無效,DMA在兩個(gè)時(shí)鐘周期后將DMA響應(yīng)(xnxDACK)信號(hào)變得無效。否則,DMA等待直到DMA請(qǐng)求信號(hào)變得無效。每請(qǐng)求一次傳輸一次。

4、DMA時(shí)序要求

基本時(shí)序要求:

DMA請(qǐng)求信號(hào)和響應(yīng)信號(hào)的Setup時(shí)間與delay時(shí)間在所有的模式下是相同的。 如果DMA請(qǐng)求信號(hào)的setup時(shí)間滿足要求,則在兩個(gè)周期內(nèi)實(shí)現(xiàn)同步,然后DMA響應(yīng)信號(hào)變得有效。 在DMA響應(yīng)信號(hào)有效后,DMA向CPU請(qǐng)求總線。如果它得到總線就執(zhí)行操作。DMA操作完成后,DMA響應(yīng)信號(hào)變得無效。

三、DMA控制器的相關(guān)寄存器 每個(gè)DMA通道有9個(gè)控制寄存器(4個(gè)通道共計(jì)36個(gè)寄存器),6個(gè)用來控制DMA傳輸,其它3個(gè)監(jiān)視DMA控制器的狀態(tài)。 RegisterAddressR/WDescriptionResetValueDISRCn

0x4B0000x0R/W初始源基地址寄存器0x00000000DISRCCn

0x4B0000x4R/W初始源控制寄存器0x00000000DIDSTn

0x4B0000x8R/W初始目的基地址寄存器0x00000000DIDSTCn0x4B0000xCR/W初始目的控制寄存器0x00000000DCONn

0x4B0000y0R/WDMA控制寄存器0x00000000DSTATn

0x4B0000y4R狀態(tài)/計(jì)數(shù)寄存器0x00000000DCSRCn

0x4B0000y8R當(dāng)前源地址寄存器0x00000000DCDSTn

0x4B0000yCR當(dāng)前目的地址寄存器0x00000000SKTRIGn

0x4B0000z0R/WDMA掩碼/觸發(fā)寄存器0b000

1、DISRCn---DMA源基地址寄存器原名:DMA初始源寄存器

寄存器地址R/W意義初值DISRC00x4B000000R/WDMA0源基地址寄存器0x00000000DISRC10x4B000040R/WDMA1源基地址寄存器0x00000000DISRC20x4B000080R/WDMA2源基地址寄存器0x00000000DISRC30x4B0000C0R/WDMA3源基地址寄存器0x000000003130……00S_ADDR---源數(shù)據(jù)基地址(在CURR_SRC為0、并且DMAACK為1時(shí)裝載入CURR_SRC)第10次到此LOC---源所在總線選擇

0:AHB; 1:APBINC---源地址變化設(shè)置

0:源地址增加; 1:源地址不變

2、DISRCCn---DMA源控制寄存器

寄存器地址R/W意義初值DISRCC00x4B000004R/WDMA0初始源控制寄存器0x00000000DISRCC10x4B000044R/WDMA1初始源控制寄存器0x00000000DISRCC20x4B000084R/WDMA2初始源控制寄存器0x00000000DISRCC30x4B0000C4R/WDMA3初始源控制寄存器0x0000000031……210保留(為0)LOC---源總線選擇INC---源地址變化設(shè)置

3、DIDSTn---DMA目的基地址寄存器原名:DMA初始目的寄存器

寄存器地址R/W意義初值DIDST00x4B000008R/WDMA0目的基地址寄存器0x00000000DIDST10x4B000048R/WDMA1目的基地址寄存器0x00000000DIDST20x4B000088R/WDMA2目的基地址寄存器0x00000000DIDST30x4B0000C8R/WDMA3目的基地址寄存器0x000000003130……00D_ADDR---目標(biāo)基地址,會(huì)被載入CURR_DST(當(dāng)CURR_DST的值為0、并且DMAACK的值為1時(shí))4、DIDSTCn---DMA初始目的控制寄存器寄存器地址R/W意義初值DIDSTC00x4B00000CR/WDMA0初始目的控制寄存器0x00000000DIDSTC10x4B00004CR/WDMA1初始目的控制寄存器0x00000000DIDSTC20x4B00008CR/WDMA2初始目的控制寄存器0x00000000DIDSTC30x4B0000CCR/WDMA3初始目的控制寄存器0x00000000LOC---目的地址所在總線選擇

0:AHB; 1:APBINC---目的地址地址變化設(shè)置

0:目的地址增加; 1:目的地址不變31……210保留(為0)LOC---目的總線選擇INC---目的地址變化設(shè)置

5、DCONn---DMA控制寄存器

寄存器地址R/W意義初值DCON00x4B000010R/WDMA0控制寄存器0x00000000DCON10x4B000050R/WDMA1控制寄存器0x00000000DCON20x4B000090R/WDMA2控制寄存器0x00000000DCON30x4B0000D0R/WDMA3控制寄存器0x00000000313029282726252423222120DMD_HSSYNCINTTSZSERVMODEHWSRCSELSWHW_SELRELOADDSZ1918171615141312111098876543210TC---傳輸次數(shù)初值DMD_HS---DMA與外設(shè)握手模式選擇

0:需求模式。為單服務(wù),但只要DREQ信號(hào)有效便傳輸

1:握手模式。為單服務(wù),要等待DREQ信號(hào)變?yōu)闊o效, DREQ再有效時(shí)才傳輸。SYNC---DREQ和DACK信號(hào)與系統(tǒng)總線時(shí)鐘同步選擇

0:DREQ和DACK與PCLK(APBclock)同步。慢速外設(shè)

1:DREQ和DACK與HCLK(AHBclock)同步。高速外設(shè)INT---CURR_TC的中斷請(qǐng)求控制

0:禁止CURR_TC產(chǎn)生中斷請(qǐng)求

1:當(dāng)所有的傳輸結(jié)束時(shí),CURR_TC產(chǎn)生中斷請(qǐng)求

TSZ---傳輸長(zhǎng)度類型選擇

0:執(zhí)行單數(shù)據(jù)傳輸 1:執(zhí)行四數(shù)據(jù)長(zhǎng)的突發(fā)傳輸

313029282726252423222120DMD_HSSYNCINTTSZSERVMODEHWSRCSELSWHW_SELRELOADDSZSERVMODE---傳輸模式選擇

0:?jiǎn)畏?wù)傳輸模式,每傳輸一次都要查詢DREQ 1:全服務(wù)傳輸模式,不查詢DREQ,但傳輸一次也要釋 放總線。HWSRCSEL---各DMA通道請(qǐng)求源設(shè)置313029282726252423222120DMD_HSSYNCINTTSZSERVMODEHWSRCSELSWHW_SELRELOADDSZHWSRCSEL000001010011100通道0nXDREQ0UART0SDITimerUSB設(shè)備EP1通道1nXDREQ1UART1IISSDISPI0USB設(shè)備EP2通道2IISSDOIISSDISDITimerUSB設(shè)備EP3通道3UART2SDISPI1TimerUSB設(shè)備EP4SWHW_SEL---DMA源選擇方式(軟件或硬件)設(shè)置

0:以軟件software方式產(chǎn)生DMA請(qǐng)求,需要用DMASKTRIG控制寄存器中的SW_TRIG位設(shè)置觸發(fā)。

1:由位[26:24]提供的DMA源觸發(fā)DMA操作RELOAD---再裝載選擇

0:自動(dòng)再裝載,當(dāng)傳輸次數(shù)減為0時(shí)自動(dòng)裝載DMA初值

1:不自動(dòng)再裝載,傳輸結(jié)束關(guān)閉DMA通道。DSZ---傳輸數(shù)據(jù)類型設(shè)置

00:字節(jié); 01:半字; 10:字; 11:保留313029282726252423222120DMD_HSSYNCINTTSZSERVMODEHWSRCSELSWHW_SELRELOADDSZSTAT---DMA狀態(tài)

00:就緒態(tài),可進(jìn)行傳輸;

01:DMA正在傳輸; 1X:保留CURRTC---當(dāng)前傳輸計(jì)數(shù)值 每傳輸一次其值減1。其初值在DCONn中低20位。

6、DSTATn---DMA狀態(tài)/計(jì)數(shù)寄存器原名:DMA狀態(tài)寄存器寄存器地址R/W意義初值DSTAT00x4B000014RDMA0狀態(tài)/計(jì)數(shù)寄存器0x00000000DSTAT10x4B000054RDMA1狀態(tài)/計(jì)數(shù)寄存器0x00000000DSTAT20x4B000094RDMA2狀態(tài)/計(jì)數(shù)寄存器0x00000000DSTAT30x4B0000D4RDMA3狀態(tài)/計(jì)數(shù)寄存器0x0000000021201918171615141312111098876543210STATCURRTC---當(dāng)前傳輸次數(shù)計(jì)數(shù)值CURR_SRC---當(dāng)前數(shù)據(jù)源地址 注意:(1)DMA每傳輸一次,其地址可能增加(1、2、4)、可能不變;(2)在CURR_SRC為0、且DMAACK為1時(shí),將S_ADDR源基地址的值裝入。寄存器地址R/W意義初值DCSRC00x4B000018RDMA0當(dāng)前源地址寄存器0x00000000DCSRC10x4B000058RDMA1當(dāng)前源地址寄存器0x00000000DCSRC20x4B000098RDMA2當(dāng)前源地址寄存器0x00000000DCSRC30x4B0000D8RDMA3當(dāng)前源地址寄存器0x000000003130……00CURR_SRC---當(dāng)前數(shù)據(jù)源地址7、DCSRCn---DMA當(dāng)前源地址寄存器CURR_DST---當(dāng)前數(shù)據(jù)目的地址 注意:(1)DMA每傳輸一次,其地址可能增加(1、2、4); (2)在CURR_DST為0、且DMAACK為1時(shí),將D_ADDR的值裝入。寄存器地址R/W意義初值DCDST00x4B00001CRDMA0當(dāng)前目的地址寄存器0x00000000DCDST10x4B00005CRDMA1當(dāng)前目的地址寄存器0x00000000DCDST20x4B00009CRDMA2當(dāng)前目的地址寄存器0x00000000DCDST30x4B0000DCRDMA3當(dāng)前目的地址寄存器0x000000003130……00CURR_DST---當(dāng)前數(shù)據(jù)目的地址8、DCDSTn---DMA當(dāng)前目的地址寄存器寄存器地址R/W意義初值DMASKTRIG00x4B000020R/WDMA0掩碼觸發(fā)寄存器0x00000000DMASKTRIG10x4B000060R/WDMA1掩碼觸發(fā)寄存器0x00000000DMASKTRIG20x4B0000A0R/WDMA2掩碼觸發(fā)寄存器0x00000000DMASKTRIG30x4B0000E0R/WDMA3掩碼觸發(fā)寄存器0x000000009、DMASKTRIGn---DMA掩碼(Mask)觸發(fā)寄存器31……3210保留(為0)STOPON/OFFSW_TRIG

STOP---DMA運(yùn)行停止位

1:DMA將當(dāng)前數(shù)據(jù)傳輸完立即停止,并且CURR_TC變?yōu)?。

注意:如果ON/OFF設(shè)置為OFF,則DMA也停止傳輸。ON/OFF---DMA通道屏蔽位

0:關(guān)閉通道; 1:開放通道 如果DCONn[22]設(shè)為非自動(dòng)重裝,DMA則傳輸完成后STOP位置1、并且關(guān)閉通道。

注意:在DMA運(yùn)行期間,不要改變其值,并且也不要使用該位停止DMA傳輸,正確的方法應(yīng)該使用STOP位。SW_TRIG:DMA軟件觸發(fā)位 設(shè)為1時(shí),實(shí)現(xiàn)軟件觸發(fā)DMA請(qǐng)求。

注意:只有當(dāng)DCONn[23]設(shè)為軟件觸發(fā)DMA請(qǐng)求時(shí),其軟件觸發(fā)才有效。

對(duì)DMA應(yīng)用注意: 在DMA運(yùn)行中改變DISRCn、DIDSTn寄存器以及改變DCONn中TC的值,對(duì)DMA當(dāng)前的整個(gè)傳輸沒有影響。而其它寄存器或位值的改變,將立即影響傳輸。

4.4A/D轉(zhuǎn)換與觸摸屏主要內(nèi)容1、概述2、結(jié)構(gòu)與工作原理3、寄存器4、應(yīng)用舉例 一、S3C2410X的A/D轉(zhuǎn)換器概述

S3C2410X中集成了一個(gè)8通道10位A/D轉(zhuǎn)換器,A/D轉(zhuǎn)換器自身具有采樣保持功能。并且S3C2410X的A/D轉(zhuǎn)換器支持觸摸屏接口。A/D轉(zhuǎn)換器的主要特性:分辨率:10位; 精度:±1LSB線性度誤差:±1.5---2.0LSB;最大轉(zhuǎn)換速率:500KSPS;輸入電壓范圍:0~3.3v;系統(tǒng)具有采樣保持功能;常規(guī)轉(zhuǎn)換和低能源消耗功能;獨(dú)立/自動(dòng)的X/Y坐標(biāo)轉(zhuǎn)換模式。

二、A/D轉(zhuǎn)換器結(jié)構(gòu)與工作原理 下圖為S3C2410A/D轉(zhuǎn)換器和觸摸屏接口的功能塊圖。

1、結(jié)構(gòu) 主要由6部分構(gòu)成:信號(hào)輸入通道8轉(zhuǎn)1切換開關(guān)A/D轉(zhuǎn)換器控制邏輯中斷信號(hào)發(fā)生器觸摸屏接口

2、引腳信號(hào)(需要補(bǔ)充)

0:正常工作模式;

3、工作原理 (1)A/D轉(zhuǎn)換時(shí)間計(jì)算和分辨率 當(dāng)PCLK頻率為50MHz,預(yù)分頻值是49,10位數(shù)字量的轉(zhuǎn)換時(shí)間如下:

A/D轉(zhuǎn)換頻率=50MHz/(49+1)=1MHz

轉(zhuǎn)換時(shí)間=1/(1MHz/5個(gè)周期)=1/200KHz=5us A/D轉(zhuǎn)換器最大可以工作在2.5MHz時(shí)鐘下,所以轉(zhuǎn)換速率可以達(dá)到500KSPS。 (2)觸摸屏的結(jié)構(gòu)及工作原理

原理:對(duì)于電阻式觸摸屏,由3層透明薄膜構(gòu)成,有一層是電阻層,還有一層是導(dǎo)電層,它們中間有一隔離層,當(dāng)某一點(diǎn)被按壓時(shí),在按壓點(diǎn)電阻層與導(dǎo)電層接觸,如果在電阻層的一邊接電源,另一邊接地,便可測(cè)量出按壓點(diǎn)的電壓,從而可算出其坐標(biāo)。

實(shí)現(xiàn)方法:

測(cè)量X坐標(biāo):從XP輸出電壓給X+端,從XM輸出地電位給X-端;從YP腳輸入按壓點(diǎn)電壓。 控制信號(hào): nYPON=1; nYMON=0

nXPON=0; nXMON=1測(cè)Y測(cè)X

測(cè)量Y坐標(biāo):從YP輸出電壓給Y+端,從YM輸出地電位給Y-端;從XP腳輸入按壓點(diǎn)電壓。 控制信號(hào): nYPON=0; nYMON=1

nXPON=1; nXMON=0測(cè)Y測(cè)X

3、S3C24120XA/D轉(zhuǎn)換器的工作模式 有5種:普通轉(zhuǎn)換模式、分離的X/Y坐標(biāo)轉(zhuǎn)換模式、連續(xù)的X/Y坐標(biāo)轉(zhuǎn)換模式、等待中斷模式、靜態(tài)模式。第2---4種是用于觸摸屏。

(1)普通轉(zhuǎn)換模式 用于一般A/D轉(zhuǎn)換,不是用于觸摸屏。轉(zhuǎn)換結(jié)束后,其數(shù)據(jù)在ADCDAT0中的XPDATA域。

(2)分離的X/Y坐標(biāo)轉(zhuǎn)換模式 分兩步進(jìn)行X/Y坐標(biāo)轉(zhuǎn)換,其轉(zhuǎn)換結(jié)果分別存于ADCDAT0中的XPDATA域中和ADCDAT1中的YPDATA域中,并且均會(huì)產(chǎn)生INT_ADC中斷請(qǐng)求。

(3)自動(dòng)(連續(xù))的X/Y坐標(biāo)轉(zhuǎn)換模式

X坐標(biāo)轉(zhuǎn)換結(jié)束啟動(dòng)Y坐標(biāo)轉(zhuǎn)換,其轉(zhuǎn)換結(jié)果分別存于ADCDAT0中的XPDATA域中和ADCDAT1中的YPDATA域中,然后產(chǎn)生INT_ADC中斷請(qǐng)求。

(4)等待中斷轉(zhuǎn)換模式 在該模式下,轉(zhuǎn)換器等待使用者按壓觸摸屏,一旦觸摸屏被按壓,則產(chǎn)生INT_TC觸摸屏中斷請(qǐng)求。 中斷后,在中斷處理程序中再將轉(zhuǎn)換器設(shè)置為分離的X/Y坐標(biāo)轉(zhuǎn)換模式、或者連續(xù)的X/Y坐標(biāo)轉(zhuǎn)換模式進(jìn)行處理。

觸摸屏接口信號(hào):

XP=上拉 XM=高阻

YP=AIN[5] YM=接地

(5)靜態(tài)模式 當(dāng)ADCCON中的STDBM設(shè)為1時(shí),轉(zhuǎn)換器進(jìn)入靜態(tài)模式,停止A/D轉(zhuǎn)換。其數(shù)據(jù)域的數(shù)據(jù)保持不變。

三、ADC和觸摸屏專用寄存器 有5個(gè)專用寄存器RegisterAddressR/WDescriptionResetValueADCCON0x58000000R/WADC控制寄存器0x3FC4ADCTSC0x58000004R/W觸摸屏控制寄存器0x058ADCDLY0x58000008R/WADC起始延遲寄存器0x00FFADCDAT00x5800000CRADC轉(zhuǎn)換數(shù)據(jù)0寄存器-ADCDAT10x58000010RADC轉(zhuǎn)換數(shù)據(jù)1寄存器-ECFLG---轉(zhuǎn)換結(jié)束標(biāo)志(只讀)

0:轉(zhuǎn)換操作中; 1:轉(zhuǎn)換結(jié)束PRSCEN---轉(zhuǎn)換器預(yù)分頻器使能

0:停止預(yù)分頻器; 1:使能預(yù)分頻器PRSCVL---轉(zhuǎn)換器預(yù)分頻器數(shù)值

數(shù)值N范圍:1---255

注意:(1)實(shí)際除數(shù)值為N+1

(2)對(duì)N數(shù)值的要求:轉(zhuǎn)換速率應(yīng)該<PCLK/5

1、ADCCON---ADC控制寄存器

151413……6ECFLGPRSCENPRSCVL543210SEL_MUXSTDBMREAD_STARTENABLE_STARTSEL_MUX---模擬輸入通道選擇

000:AIN0; 001:AIN1 010:AIN2 011:AIN3 …… 111:AIN7STDBM---備用模式設(shè)置

0:正常工作模式; 1:備用模式,不做A/D轉(zhuǎn)換READ_START---通過讀取啟動(dòng)轉(zhuǎn)換

0:停止通過讀取啟動(dòng)轉(zhuǎn)換;1:使能通過讀取啟動(dòng)轉(zhuǎn)換ENABLE_START---通過設(shè)置該位啟動(dòng)轉(zhuǎn)換

0:無效; 1:?jiǎn)?dòng)A/D轉(zhuǎn)換(啟動(dòng)后被清0) 注意:如果READ_START為1,則該位無效543210SEL_MUXSTDBMREAD_STARTENABLE_STARTYM_SEN---選擇YMON的輸出值

0:輸出0(YM=高阻); 1:輸出1(YM=GND)YP_SEN---選擇nYPON的輸出值

0:輸出0(YP=外部電壓); 1:輸出1(YP連接AIN[5])XM_SEN---選擇XMON的輸出值

0:輸出0(XM=高阻); 1:輸出1(XM=GND)XP_SEN---選擇nXP的輸出值

0:輸出0(XP=外部電壓); 1:輸出1(XP連接AIN[7])

2、ADCTSC---ADC觸摸屏控制寄存器876543210保留0YM_SENYP_SENXM_SENXP_SENPULL_UPAUTO_PSTXY_PSTPULL---上拉切換使能

0:XP上拉使能; 1:XP上拉禁止AUTO_PST---自動(dòng)連續(xù)轉(zhuǎn)換X軸和Y軸坐標(biāo)模式選擇

0:普通A/D轉(zhuǎn)換; 1:連續(xù)X/Y軸轉(zhuǎn)換模式XY_PST---手動(dòng)測(cè)量X軸和Y軸坐標(biāo)模式選擇

00:無操作模式; 01:對(duì)X坐標(biāo)測(cè)量;

10:對(duì)Y坐標(biāo)測(cè)量; 11:等待中斷模式876543210保留0YM_SENYP_SENXM_SENXP_SENPULL_UPAUTO_PSTXY_PST31……1615141312111098876543210保留為0起始延遲數(shù)值---分兩種情況第一情況: 對(duì)普通轉(zhuǎn)換模式、分離的X/Y軸坐標(biāo)轉(zhuǎn)換模式、連續(xù)的X/Y軸坐標(biāo)轉(zhuǎn)換模式,為轉(zhuǎn)換延時(shí)數(shù)值。第二種情況:

對(duì)中斷轉(zhuǎn)換模式,為按壓觸摸屏后到產(chǎn)生中斷請(qǐng)求的延遲時(shí)間數(shù)值,其時(shí)間單位為ms。

3、ADCDLY---ADC起始延遲寄存器UPDOWN---等待中斷模式的按壓狀態(tài)

0:觸筆點(diǎn)擊; 1:觸筆提起AUTO_PST---自動(dòng)X/Y軸轉(zhuǎn)換模式指示

0:普通轉(zhuǎn)換模式; 1:X/Y軸坐標(biāo)連續(xù)轉(zhuǎn)換XY_PST---手動(dòng)X/Y軸轉(zhuǎn)換模式指示

00:無操作; 01:為X軸坐標(biāo)轉(zhuǎn)換

10:為Y軸坐標(biāo)轉(zhuǎn)換 11:為等待中斷轉(zhuǎn)換XPDATA[9:0]:為X軸坐標(biāo)轉(zhuǎn)換數(shù)值、或普通ADC轉(zhuǎn)換數(shù)值 具體意義由其它位指示。其值為:0---0x3FF4、ADCDAT0---ADC轉(zhuǎn)換數(shù)據(jù)0寄存器1514131211109……0UPDOWNAUTO_PSTXY_PST保留(0)XPDATA或普通ADC值第11次到此UPDOWN---等待中斷模式的按壓狀態(tài)

0:觸筆點(diǎn)擊; 1:觸筆提起AUTO_PST---自動(dòng)X/Y軸轉(zhuǎn)換模式指示

0:普通轉(zhuǎn)換模式; 1:X/Y軸坐標(biāo)連續(xù)轉(zhuǎn)換XY_PST---手動(dòng)X/Y軸轉(zhuǎn)換模式指示

00:無操作; 01:為X軸坐標(biāo)轉(zhuǎn)換

11:為Y軸坐標(biāo)轉(zhuǎn)換 11:為等待中斷轉(zhuǎn)換YPDATA[9:0]:為10位Y軸坐標(biāo)轉(zhuǎn)換結(jié)果 其值為:0---0x3FF 5、ADCDAT1---ADC轉(zhuǎn)換數(shù)據(jù)1寄存器1514131211109……0UPDOWNAUTO_PSTXY_PST保留(0)YPDATA

例題:編寫程序,對(duì)3通道的模擬量連續(xù)做10次轉(zhuǎn)換,用查詢方式讀取轉(zhuǎn)換結(jié)果,其數(shù)據(jù)存于0x400000開始的區(qū)域。AREAADC,CODE,READONLY ENTRYSTART#definerADCCON(*(volatileunsigned*)0x58000000)#definerADCDAT0(*(volatileunsigned*)0x5800000c)#definepref49#definech3voidadc(void){ intadc_data[10],i;

rADCCON=(1<<14)|(pref<<6)|(ch<<3)|1 //允許預(yù)分頻

for(i=0;i<10;i++) { while(rADCCON&0x8000==0); //查詢轉(zhuǎn)換結(jié)束否

adc_data[i]=rADCDAT0&0x3ff; //讀取轉(zhuǎn)換結(jié)果

rADCCON|=1; //再次啟動(dòng)轉(zhuǎn)換

}}4.5中斷主要內(nèi)容概述結(jié)構(gòu)與工作原理寄存器應(yīng)用舉例一、概述

S3C2410X中斷控制器有56個(gè)中斷源,對(duì)外提供24個(gè)外中斷輸入引腳,內(nèi)部所有設(shè)備都有中斷請(qǐng)求信號(hào),例如DMA控制器、UART、IIC等等。

S3C2410X的ARM920T內(nèi)核有兩個(gè)中斷,IRQ中斷和快速中斷FIQ。

中斷仲裁:當(dāng)中斷控制器接收到多個(gè)中斷請(qǐng)求時(shí),其內(nèi)的優(yōu)先級(jí)仲裁器裁決后向CPU發(fā)出優(yōu)先級(jí)最高的中斷請(qǐng)求信號(hào)或快速中斷請(qǐng)求信號(hào)。二、S3C2410X中斷系統(tǒng)結(jié)構(gòu)

1、中斷系統(tǒng)結(jié)構(gòu) 主要由中斷源和控制寄存器兩大部分構(gòu)成,其寄存器主要有4種:模式、屏蔽、優(yōu)先級(jí)、掛起(標(biāo)志)寄存器等。中斷源(有子寄存器)子中斷源掛起寄存器中斷源(無子寄存器)子中斷源屏蔽寄存器中斷屏蔽中斷模式優(yōu)先級(jí)仲裁FIQIRQ中斷源掛起中斷掛起

2、中斷優(yōu)先級(jí)仲裁器及工作原理 中斷系統(tǒng)有6個(gè)分仲裁器和1個(gè)總仲裁器,每一個(gè)仲裁器可以處理6路中斷。

三、中斷控制器專用寄存器 有8個(gè)專用寄存器RegisterAddressR/WDescriptionResetValueSRCPND0x4A000000R/W中斷標(biāo)志寄存器0x00000000INTMOD0x4A000004R/W中斷模式寄存器0x00000000INTMSK0x4A000008R/W中斷屏蔽寄存器0xFFFFFFFFPRIORITY0x4A00000CR/W中斷優(yōu)先級(jí)寄存器0x7FINTPND0x4A000010R/W中斷服務(wù)寄存器0x00000000INTOFFSET0x4A000014R中斷偏移寄存器0x00000000SUBSRCPND0x4A000018R/W子源掛起寄存器0x00000000INTSUBMSK0x4A00001CR/W中斷子源屏蔽寄存器0x7FF

主要使用前5個(gè)寄存器 該寄存器也就是中斷標(biāo)志寄存器各位: 1:對(duì)應(yīng)中斷源有中斷請(qǐng)求

0:對(duì)應(yīng)中斷源無中斷請(qǐng)求注意:必須在中斷處理程序中對(duì)其標(biāo)志位清0。其方法為寫1.1、SRCPND---中斷源掛起(標(biāo)志)寄存器位號(hào)中斷源位號(hào)中斷源位號(hào)中斷源位號(hào)中斷源31INT_ADC23INT_UART115INT_UART27nBATT_FLT30INT_RTC22INT_SPI014INT_TIM46保留29INT_SPI121INT_SDI13INT_TIM35EINT8_2328INT_UART020INT_DMA312INT_TIM24EINT4_727INT_IIC19INT_DMA211INT_TIM13EINT326INT_USBH18INT_DMA110INT_TIM02EINT225INT_USBD17INT_DMA09INT_WDT1EINT124保留16INT_LCD8INT_TICK0EINT0 該寄存器是設(shè)置各中斷源是FIQ中斷還是IRQ中斷各位: 1:對(duì)應(yīng)中斷源設(shè)為FIQ中斷模式

0:對(duì)應(yīng)中斷源設(shè)為IRQ中斷模式

2、INTMOD---中斷模式寄存器

位號(hào)中斷源位號(hào)中斷源位號(hào)中斷源位號(hào)中斷源31INT_ADC23INT_UART115INT_UART27nBATT_FLT30INT_RTC22INT_SPI014INT_TIM46保留29INT_SPI121INT_SDI13INT_TIM35EINT8_2328INT_UART020INT_DMA312INT_TIM24EINT4_727INT_IIC19INT_DMA211INT_TIM13EINT326INT_USBH18INT_DMA110INT_TIM02EINT225INT_USBD17INT_DMA09INT_WDT1EINT124保留16INT_LCD8INT_TICK0EINT0各位: 1:屏蔽對(duì)應(yīng)中斷源

0:開放對(duì)應(yīng)中斷源

3、INTMSK---中斷屏蔽寄存器

位號(hào)中斷源位號(hào)中斷源位號(hào)中斷源位號(hào)中斷源31INT_ADC23INT_UART115INT_UART27nBATT_FLT30INT_RTC22INT_SPI014INT_TIM46保留29INT_SPI121INT_SDI13INT_TIM35EINT8_2328INT_UART020INT_DMA312INT_TIM24EINT4_727INT_IIC19INT_DMA211INT_TIM13EINT326INT_USBH18INT_DMA110INT_TIM02EINT225INT_USBD17INT_DMA09INT_WDT1EINT124保留16INT_LCD8INT_TICK0EINT0

4、PRIORITY---中斷優(yōu)先級(jí)寄存器

ARB_SELn---n組優(yōu)先級(jí)順序控制位

00:REQ0,1,2,3,4,5 01:REQ0,2,3,4,1,5 10:REQ0,3,4,1,2,511:REQ0,4,1,2,3,5ARB_MODEn---n組優(yōu)先級(jí)循環(huán)控制位

0:優(yōu)先順序固定不變

1:優(yōu)先順序循環(huán),每響應(yīng)一次中斷,其順序循環(huán)改變一次,但REQ0、REQ5位置不變。位號(hào)含義位號(hào)含義位號(hào)含義31:21保留12:11ARB_SEL24ARB_MODE420:19ARB_SEL610:9ARB_SEL13ARB_MODE318:17ARB_SEL58:7ARB_SEL02ARB_MODE216:15ARB_SEL46ARB_MODE61ARB_MODE114:13ARB_SEL35ARB_MODE50ARB_MODE0各位: 1:對(duì)應(yīng)的中斷源被響應(yīng),且正在執(zhí)行中斷服務(wù)

0:對(duì)應(yīng)中斷源未被響應(yīng)注意:必須在中斷處理程序中對(duì)其服務(wù)標(biāo)志位清0。方法為對(duì)某位寫1便清除為0。

即在清除SRCPND中相應(yīng)位后,要清除該寄存器相應(yīng)位。5、INTPND---中斷服務(wù)(掛起)寄存器位號(hào)中斷源位號(hào)中斷源位號(hào)中斷源位號(hào)中斷源31INT_ADC23INT_UART115INT_UART27nBATT_FLT30INT_RTC22INT_SPI014INT_TIM46保留29INT_SPI121INT_SDI13INT_TIM35EINT8_2328INT_UART020INT_DMA312INT_TIM24EINT4_727INT_IIC19INT_DMA211INT_TIM13EINT326INT_USBH18INT_DMA110INT_TIM02EINT225INT_USBD17INT_DMA09INT_WDT1EINT124保留16INT_LCD8INT_TICK0EINT0

該寄存器的偏移值指示在INTPND中顯示的中斷源各位: 1:對(duì)應(yīng)的中斷源,在INTPND中被置位

說明:當(dāng)在中斷服務(wù)程序中對(duì)SRCPND、INTPND中的標(biāo)志位清0時(shí),該寄存器的對(duì)應(yīng)位自動(dòng)清0。6、INTOFFSET---中斷偏移寄存器中斷源偏移值中斷源偏移值中斷源偏移值中斷源偏移值INT_ADC31INT_UART123INT_UART215nBATT_FLT7INT_RTC30INT_SPI022INT_TIM414保留6INT_SPI129INT_SDI21INT_TIM313EINT8_235INT_UART028INT_DMA320INT_TIM212EINT4_74INT_IIC27INT_DMA219INT_TIM111EINT33INT_USBH26INT_DMA118INT_TIM010EINT22INT_USBD25INT_DMA017INT_WDT9EINT11保留24INT_LCD16INT_TICK8EINT007、SUBSRCPND---子中斷源請(qǐng)求標(biāo)志寄存器 對(duì)有多個(gè)中斷源的外設(shè),顯示其具體的中斷請(qǐng)求各位: 1:對(duì)應(yīng)的子中斷源有請(qǐng)求

0:對(duì)應(yīng)的子中斷源無請(qǐng)求注意:在中斷服務(wù)程序中,需要對(duì)其置1的標(biāo)志位清0。位號(hào)中斷源位號(hào)中斷源位號(hào)中斷源31:11保留7INT_TXD23INT_RXD110INT_ADC6INT_RXD22INT_ERR09INT_TC5INT_ERR11INT_TXD08INT_ERR24INT_TXD10INT_RXD08、INTSUBMSK---子中斷源屏蔽寄存器 對(duì)有多個(gè)中斷源的外設(shè),對(duì)具體的中斷源進(jìn)行屏蔽各位: 1:屏蔽對(duì)應(yīng)的子中斷源

0:開放對(duì)應(yīng)的子中斷源位號(hào)中斷源位號(hào)中斷源位號(hào)中斷源31:11保留7INT_TXD23INT_RXD110INT_ADC6INT_RXD22INT_ERR09INT_TC5INT_ERR11INT_TXD08INT_ERR24INT_TXD10INT_RXD0

在2410init.s文件中與的中斷初始化部分程序開始及中斷入口

b ResetHandler

b HandlerUndef ;handlerforUndefinedmode b HandlerSWI ;handlerforSWIinterrupt b HandlerPabort ;handlerforPAbort b HandlerDabort ;handlerforDAbort b . ;reserved b HandlerIRQ ;handlerforIRQinterrupt b HandlerFIQ ;handlerforFIQinterrupt

本段意義:利用后面定義的宏來展開上面各行,使其進(jìn)入它們所對(duì)應(yīng)的中斷服務(wù)子程序。

中斷舉例第12次到此

LTORG ;聲明一個(gè)數(shù)據(jù)緩沖池的開始HandlerFIQ HANDLER HandleFIQHandlerIRQ HANDLER HandleIRQHandlerUndef HANDLER HandleUndefHandlerSWI HANDLER Han

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論