《ARM嵌入式系統(tǒng)原理及應(yīng)用開(kāi)發(fā)》課件第5章_第1頁(yè)
《ARM嵌入式系統(tǒng)原理及應(yīng)用開(kāi)發(fā)》課件第5章_第2頁(yè)
《ARM嵌入式系統(tǒng)原理及應(yīng)用開(kāi)發(fā)》課件第5章_第3頁(yè)
《ARM嵌入式系統(tǒng)原理及應(yīng)用開(kāi)發(fā)》課件第5章_第4頁(yè)
《ARM嵌入式系統(tǒng)原理及應(yīng)用開(kāi)發(fā)》課件第5章_第5頁(yè)
已閱讀5頁(yè),還剩503頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第5章ARM嵌入式處理器及其應(yīng)用編程5.1典型ARM嵌入式處理器結(jié)構(gòu)概述5.2ARM處理器芯片的應(yīng)用選擇5.3ARM處理器中的控制寄存器5.4S3C44B0X內(nèi)部存儲(chǔ)控制類(lèi)5.5S3C44B0X內(nèi)部輸入輸出類(lèi)5.6S3C44B0X內(nèi)部中斷控制可編程組件及應(yīng)用編程5.7S3C44B0X內(nèi)部計(jì)數(shù)/定時(shí)類(lèi)可編程組件及應(yīng)用編程5.8S3C44B0X內(nèi)部通信控制類(lèi)可編程組件及應(yīng)用編程5.9S3C44B0X內(nèi)部總線接口類(lèi)可編程組件及應(yīng)用編程5.10S3C44B0X內(nèi)部ADC可編程組件及應(yīng)用編程5.11S3C44B0X嵌入式微處理器外部接口電路設(shè)計(jì)5.1典型ARM嵌入式處理器結(jié)構(gòu)概述5.1.1S3C44B0X嵌入式微處理器的體系結(jié)構(gòu)

S3C44B0X微處理器的內(nèi)部體系結(jié)構(gòu)如圖5.1所示。它采用ARM7TDMI核,為32位嵌入式微處理器。S3C44B0X內(nèi)部集成了8?KB的Cache(指令和數(shù)據(jù)共用)、寫(xiě)緩沖器、存儲(chǔ)器控制器、LCD控制器、中斷控制器、總線仲裁器、電源管理單元、時(shí)鐘發(fā)生器、通用并行口GPIO、異步通信串行口UART、I2C總線控制器、I2S總線控制器、同步串行口SIO、5路16位PWM定時(shí)器、16位看門(mén)狗定時(shí)器、8路10位A/D轉(zhuǎn)換器、實(shí)時(shí)鐘電路以及JTAG接口。圖5.1S3C44B0X微處理器內(nèi)部體系結(jié)構(gòu)

S3C44B0X采用兩種封裝形式,一種是160個(gè)引腳的LQFP封裝,其引腳分布如圖5.2(a)所示;另一種是160個(gè)引腳的FBGA封裝,如圖5.2(b)所示。它的160個(gè)引腳包括總線控制信號(hào)、DRAM/SDRAM/SRAM信號(hào)、LCD控制信號(hào)、中斷控制信號(hào)、PWM控制信號(hào)、DMA控制信號(hào)、UART控制信號(hào)、I2C總線控制信號(hào)、I2S總線控制信號(hào)、通用串行口SIO控制信號(hào)、ADC控制信號(hào)、GPIO控制信號(hào)、時(shí)鐘和復(fù)位信號(hào)、JTAG測(cè)試邏輯控制信號(hào)以及電源等信號(hào)引腳。S3C44B0X的許多引腳是分時(shí)復(fù)用的,以節(jié)省引腳數(shù)。S3C44B0X中各引腳信號(hào)的含義見(jiàn)表5.1。圖5.2S3C44B0X的外部引腳5.1.2S3C2410X/S3C2440X嵌入式微處理器的體系結(jié)構(gòu)

S3C2410X微處理器的內(nèi)部體系結(jié)構(gòu)如圖5.3所示。S3C2410X/S3C2440X采用ARM920T核,而ARM920T又集成了ARM9TDMI,所以是中高檔32位嵌入式微處理器。由于采用ARM920T體系結(jié)構(gòu),因此內(nèi)部具有分離的16?KB大小的指令緩存和數(shù)據(jù)緩存。同時(shí),它采用哈佛體系結(jié)構(gòu)將程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器分開(kāi),加入了存儲(chǔ)器部件(MMU),采用5級(jí)指令流水線。它使用ARM公司特有的AMBA總線,對(duì)于高速設(shè)備采用AHB總線,而對(duì)于低速內(nèi)部外設(shè)則采用APB總線。AHB通過(guò)橋接器轉(zhuǎn)換成APB。圖5.3S3C2410X微處理器內(nèi)部體系結(jié)構(gòu)

S3C2410X/S3C2440X內(nèi)部集成了許多外設(shè)接口,除了S3C44B0X所有內(nèi)部外設(shè),還增加了許多工作新外設(shè)接口,主要的內(nèi)部外設(shè)包括與AHB總線相連的高速接口,如LCD接口、USB接口、中斷控制接口、電源管理接口、存儲(chǔ)器接口、BootLoader接口,與APB總線相連的低速接口,如3個(gè)通用異步通信接口(UART0、UART1、UART2)、SDI/MMC接口、看門(mén)狗定時(shí)器、總線控制器、2個(gè)SPI接口、4個(gè)PWM定時(shí)器、實(shí)時(shí)鐘、通用并行端口、I2C總線接口及I2S總線接口。

S3C2410X/S3C2440X采用272腳的FBGA封裝,其外部引腳示意如圖5.4所示。詳細(xì)引腳定義可參見(jiàn)S3C2410X及S3C2440X用戶手冊(cè)。圖5.4S3C2410X/S3C2440X微處理器外部引腳示意5.1.3LPC2000嵌入式微控制器的體系結(jié)構(gòu)

LPC2000系列微控制器的內(nèi)部結(jié)構(gòu)如圖5.5所示,它們均采用ARM7TDMI-S內(nèi)核,外圍配制了若干實(shí)用組件。ARM7TDMI-S配制為小端模式。

AHB外設(shè)分配了2MB的地址范圍,它位于4GBARM尋址空間的最頂端,每個(gè)AHB外設(shè)都分配了16?KB的地址空間。LPC2000系列微控制器的外設(shè)功能(除中斷控制器)都連接到VPB總線(VLSI外設(shè)總線),AHB到VPB的橋?qū)PB總線與AHB總線相接。VPB外設(shè)也分配了2MB的地址范圍,從3.5GB地址點(diǎn)開(kāi)始,每個(gè)VPB外設(shè)都分配了16?KB的地址空間。圖5.5LPC2000系列微控制器的內(nèi)部結(jié)構(gòu)內(nèi)部存儲(chǔ)器包括無(wú)等待SRAM和Flash(型號(hào)不同時(shí),容量大小不一樣,詳見(jiàn)表3.1)。

系統(tǒng)功能包括:維持芯片工作的一些基本功能,如系統(tǒng)時(shí)鐘、復(fù)位等;向量中斷控制器(VIC)可以減少中斷的影響時(shí)間,最多可以管理32個(gè)中斷請(qǐng)求;外部存儲(chǔ)控制器(EMC)支持4個(gè)Bank的外部SRAM或Flash,每個(gè)Bank最多16?MB;I2C串行接口為標(biāo)準(zhǔn)的I2C總線接口,支持最高速度400kb/s;具有兩個(gè)完全獨(dú)立的SPI控制器,遵循SPI規(guī)范,可配置為SPI主機(jī)或從機(jī);具有兩個(gè)UART接口,均包含16字節(jié)的接收/發(fā)送FIFO,內(nèi)置波特率發(fā)生器。其中,UARTI具有調(diào)制解調(diào)器接口功能;在LPC2119/2129/2290/2292/2294等芯片中包含CAN(ControllerAreaNetwork)總線接口。

LPC2000系列大部分內(nèi)部集成了FLASH和SRAM,通常應(yīng)用于外部無(wú)需擴(kuò)展的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。其所構(gòu)成的嵌入式系統(tǒng)結(jié)構(gòu)緊湊、體積小、價(jià)格低、可靠性高,而且大部分產(chǎn)品為工業(yè)級(jí),被廣泛應(yīng)用于工業(yè)控制領(lǐng)域。5.1.4AT91FR40162嵌入式微控制器的體系結(jié)構(gòu)

圖5.6AT91FR40162微控制器結(jié)構(gòu)框圖

AT91R40008體系結(jié)構(gòu)包括兩條主要總線,即先進(jìn)的系統(tǒng)總線(ASB)和先進(jìn)的外圍總線(APB)。ASB被設(shè)計(jì)為最佳性能,由存儲(chǔ)控制器控制。ARM7TDMI通過(guò)ASB與片內(nèi)32位存儲(chǔ)器、外部總線接口EBI和AMBA橋進(jìn)行接口。AMBA橋驅(qū)動(dòng)APB,APB被設(shè)計(jì)用于訪問(wèn)片內(nèi)外圍,并且進(jìn)行了低功耗優(yōu)化。AT91FR40162將ARM7TDMI處理器的ICE端口接到一些專(zhuān)用的引腳上,從而為目標(biāo)調(diào)試提供了完整、低價(jià)且易用的調(diào)試解決方案。

AT91FR40162除了采用ARM7TDMI處理器核外,其內(nèi)部還集成了256KB的片內(nèi)SRAM和1024K字(Word)的16位Flash存儲(chǔ)器,還有完全可編程的外部總線接口(EBI)、8個(gè)優(yōu)先級(jí)且可以獨(dú)立屏蔽的向量中斷控制器、32個(gè)可編程的I/O接口線、3通道的16位定時(shí)器/計(jì)數(shù)器、2個(gè)通用同步/異步收發(fā)器(USART)及可編程的看門(mén)狗定時(shí)器,能實(shí)現(xiàn)完全靜態(tài)的操作,具有先進(jìn)的省電特性。

AT91FR40612集成了多個(gè)內(nèi)部外設(shè),它們被分成系統(tǒng)外設(shè)和用戶外設(shè)兩類(lèi)。所有的片內(nèi)外設(shè)都可以通過(guò)AMBA橋接受32位訪問(wèn)。外圍存儲(chǔ)器由控制寄存器、模式寄存器、數(shù)據(jù)寄存器、狀態(tài)寄存器和使能/禁止/狀態(tài)寄存器組成。外圍數(shù)據(jù)控制器PDC在片內(nèi)USART和片內(nèi)或片外的存儲(chǔ)器之間傳輸數(shù)據(jù),并且無(wú)須處理器的介入。最重要的一點(diǎn)就是,PDC消除了數(shù)據(jù)傳輸中斷的額外開(kāi)銷(xiāo),在不需要重設(shè)編程起始地址的情況下可以連續(xù)傳輸高達(dá)64?KB的數(shù)據(jù)。這樣不僅增加了微控制器的性能,而且降低了功耗。

外部總線接口(EBI)通過(guò)一條8位或16位數(shù)據(jù)總線控制外部存儲(chǔ)器或外部設(shè)備,它通過(guò)APB被編程。每一條芯片選擇口線有它自己的編程寄存器。5.1.5XScale嵌入式微處理器PXA250的體系結(jié)構(gòu)

IntelXScalePXA250嵌入式微處理器的結(jié)構(gòu)如圖5.7所示。PXA250的主要特點(diǎn)有高性能、低功耗、I/O擴(kuò)展、外圍控制模塊豐富及時(shí)鐘控制多樣(有5種時(shí)鐘源)等。其中高性能主要指PXA250采用XScale處理器核、采用7級(jí)超級(jí)指令流水線、支持多媒體處理技術(shù)等。PXA250的外圍控制模塊主要包括16通道可配置DMA控制器、LCD控制器、920kb/s藍(lán)牙(Bluetooth)接口、串行端口(IrDA、I2C、I2S、AC97、3個(gè)UARTS、SPI、SSP)及USB接口等。圖5.7PXA250微處理器結(jié)構(gòu)框圖

IntelXScale內(nèi)核采用帶有一個(gè)增強(qiáng)型存儲(chǔ)器管道的超級(jí)流水線RISC處理器架構(gòu)的體系結(jié)構(gòu)。這款新型、高性能、低功耗的微構(gòu)架兼容ARMv5TEISA指令集(不支持浮點(diǎn)指令集)。超級(jí)流水線結(jié)構(gòu)由整型管道、存儲(chǔ)器管道和MAC管道構(gòu)成。整型管道包括7級(jí)流水線結(jié)構(gòu),即取指令1(分支目標(biāo)緩沖器)→取指令2→譯碼→寄存/移位→ALU實(shí)現(xiàn)→狀態(tài)執(zhí)行→回復(fù);存儲(chǔ)器管道除包括整型管道的前5級(jí)外,后接3個(gè)高速緩存,即數(shù)據(jù)緩存1、數(shù)據(jù)緩存2和數(shù)據(jù)回復(fù)緩存,為8級(jí)流水線結(jié)構(gòu);MAC管道是6~9級(jí)的流水線結(jié)構(gòu),包括整型管道的前4級(jí)和4級(jí)MAC段,以及一個(gè)數(shù)據(jù)回復(fù)緩存,其中MAC2~MAC4的選通由數(shù)據(jù)決定。流水線結(jié)構(gòu)級(jí)數(shù)越多,越能提高指令的執(zhí)行速度,使用分支目標(biāo)緩沖器的目的在于成功地預(yù)知分支指令的結(jié)果。128個(gè)入口的分支目標(biāo)緩沖器的每個(gè)入口都包含了分支指令的地址、與分支指令相聯(lián)系的目標(biāo)地址以及該分支的執(zhí)行情況,它由協(xié)處理器15使能。分支目標(biāo)緩沖器的使用旨在避免超級(jí)流水線結(jié)構(gòu)中的分支延遲。

PXA250CPU的MM(IMMU和DMMU)均提供了一個(gè)32項(xiàng)的轉(zhuǎn)換旁路緩存器(ITLB和DTLB),它們的每一項(xiàng)均可映射存儲(chǔ)器中的段、大頁(yè)和小頁(yè)。為了保證內(nèi)核周期存取指令和數(shù)據(jù),PXA250包含了一個(gè)32?KB的指令緩存和數(shù)據(jù)緩存。另外,為了避免數(shù)據(jù)緩存內(nèi)數(shù)據(jù)流存取的頻繁變化,還提供了一個(gè)2KB的微小數(shù)據(jù)緩存。指令和數(shù)據(jù)緩存都是具有32個(gè)入口和32路相連的緩存,每路均包含一個(gè)標(biāo)志地址、32字節(jié)的高速緩存隊(duì)列和一個(gè)有效位,并且采用循環(huán)方式進(jìn)行刷新存儲(chǔ)。微小數(shù)據(jù)續(xù)存是一個(gè)具有32個(gè)入口和兩路相連的緩存,同樣采用循環(huán)方式進(jìn)行刷新存儲(chǔ)。

PXA250內(nèi)核提供了具有四個(gè)入口的全緩沖和掛起緩沖,用于提升內(nèi)核性能,與數(shù)據(jù)緩存和小數(shù)據(jù)緩存協(xié)同工作。此外還有一個(gè)8入口的寫(xiě)緩沖,每個(gè)入口可保存16字節(jié),它從內(nèi)核、數(shù)據(jù)緩存或微小數(shù)據(jù)緩存中得到數(shù)據(jù),在系統(tǒng)總線選通前用于暫存數(shù)據(jù)。5.1.6STR710F系列嵌入式處理器的體系結(jié)構(gòu)

STR710F系列嵌入式處理器內(nèi)部集成了ARM7TMDI內(nèi)核,其內(nèi)部體系結(jié)構(gòu)如圖5.8所示。

1.存儲(chǔ)器

STR710F系列嵌入式處理器包括272?KB的Flash以及64KB的SRAM,并配有外部存儲(chǔ)器接口(EMI),可以外接大容量外部程序或數(shù)據(jù)存儲(chǔ)器。其內(nèi)部的SRAM可通過(guò)外接備用電池來(lái)長(zhǎng)期保存信息,且而消耗的功率極小,可用于手持設(shè)備。

2.通信接口

STR710F系列嵌入式處理器內(nèi)置的通信接口十分豐富,是至今為止通信接口最全的系列嵌入式處理器,包括兩個(gè)I2C總線接口(一個(gè)與SPI復(fù)用)、四個(gè)UART異步通信接口、兩個(gè)帶緩沖功能的同步串行接口(BSPI0、BSPI1)、一個(gè)CAN2.0通信接口、一個(gè)USB2.0接口以及一個(gè)高級(jí)數(shù)據(jù)鏈路控制(HDLC)同步通信接口。

3.時(shí)鐘與定時(shí)器接口

STR710F系列嵌入式處理器的RTC模塊(實(shí)時(shí)鐘)具有日歷功能及后備振蕩器;此外還有五個(gè)定時(shí)器,包括一個(gè)16位WDT及四個(gè)16位定時(shí)器。

4.多個(gè)通用I/O

STR710F系列嵌入式處理器具有30/32/48個(gè)多功能雙向I/O,其中有14個(gè)具有中斷功能,在許多應(yīng)用場(chǎng)合具有很大應(yīng)用優(yōu)勢(shì)。

5.4通道12位ADC

與眾不同的是STR710F系列嵌入式處理器具有4通道的12位ADC,解決了多數(shù)嵌入式處理器因?yàn)橹挥?0位ADC而不能滿足測(cè)量精度要求的問(wèn)題。

6.鎖相環(huán)分頻器

STR710F系列嵌入式處理器與其他嵌入式處理器一樣具有鎖相環(huán)分頻器,用于給ARM7TMDI內(nèi)核提供工作頻率及給JTAG調(diào)試接口提供調(diào)試手段。圖5.8STR710F系列內(nèi)部結(jié)構(gòu)

5.2ARM處理器芯片的應(yīng)用選擇

5.2.1ARM處理器芯片的選擇原則

1.ARM內(nèi)核

任何一款基于ARM技術(shù)的微處理器都是以某個(gè)ARM內(nèi)核為基礎(chǔ)設(shè)計(jì)的,即ARM內(nèi)核的基本功能決定了嵌入式系統(tǒng)最終實(shí)現(xiàn)目標(biāo)的性能。因此,ARM處理器芯片的選擇的首要任務(wù)是考慮選擇基于什么架構(gòu)的ARM內(nèi)核。根據(jù)前面介紹的ARM內(nèi)核的基本特性,就可以有的放矢地選擇ARM內(nèi)核的型號(hào)。

單從嵌入式操作系統(tǒng)角度考慮,如果設(shè)計(jì)的目的是使用需要MMU支持的操作系統(tǒng),如WindowsCE、Linux等,那么就必須選擇內(nèi)部帶有MMU的ARM內(nèi)核,如ARM720T、ARM920T、ARM922T、ARM946T及StrongARM等;而對(duì)于ARM7TDMI等沒(méi)有MMU的ARM處理器,則可以使用不需要MMU支持的操作系統(tǒng),如μCLinux、μC/OS2等。從存儲(chǔ)體系結(jié)構(gòu)角度考慮,如果要高效工作,那么最好選用基于哈佛體系結(jié)構(gòu)的ARM內(nèi)核,因?yàn)檫@種架構(gòu)的指令總線和數(shù)據(jù)總線是分開(kāi)的,即程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器是相互獨(dú)立的,這樣,取指令的同時(shí)可以存儲(chǔ)或加載數(shù)據(jù);如果對(duì)工作效率的要求比較低,那么采用馮·諾依曼結(jié)構(gòu)的ARM內(nèi)核也是可以的。

實(shí)質(zhì)上,ARM內(nèi)核的選擇還需要考慮許多性能要求,如對(duì)指令流水線的要求、是否支持Thumb指令集的要求、是否支持AMBA的要求及最高時(shí)鐘頻率的限制要求等。

2.系統(tǒng)時(shí)鐘頻率

系統(tǒng)時(shí)鐘頻率決定了ARM芯片的處理速度,時(shí)鐘頻率越高,處理速度越快。通常,ARM的速度和ARM內(nèi)核之間有下列約定俗成的關(guān)系。

(1)基于ARM7系列內(nèi)核的ARM芯片的處理速度為

處理速度(MIPS)=時(shí)鐘頻率(MHz)?×?0.9

如50?MHz的S3C44B0X(基于ARM7)芯片,其處理速度為50?×?0.9=45(MIPS),其中MIPS表示每秒百萬(wàn)條指令。

(2)基于ARM9系列內(nèi)核的ARM芯片的處理速度為處理速度(MIPS)=時(shí)鐘頻率(MHz)?×?1.1如100MHz的S3C2410X(基于ARM9)芯片,其處理速度為100?×?1.1?=?110(MIPS)。常用的ARM7系列處理器芯片的主時(shí)鐘為20-~133?MHz,其處理速度為18~

110.7?MIPS;ARM9系列處理器芯片的主時(shí)鐘為100~233?MHz,其處理速度為110~

256.3?MIPS;而ARM10的主時(shí)鐘最高可以達(dá)到700?MHz,處理速度更快。

3.芯片內(nèi)部存儲(chǔ)器的容量

大多數(shù)ARM微處理器芯片的內(nèi)部存儲(chǔ)器的容量都不太大,需要用戶在設(shè)計(jì)系統(tǒng)時(shí)外擴(kuò)存儲(chǔ)器,但也有部分芯片具有相對(duì)較大的片內(nèi)存儲(chǔ)空間。

(1)內(nèi)部程序存儲(chǔ)器容量。有些ARM芯片內(nèi)部?jī)?nèi)置了一定容量的程序存儲(chǔ)器。對(duì)于數(shù)據(jù)處理量不大、功能不復(fù)雜、要求不太高的工業(yè)控制領(lǐng)域的應(yīng)用場(chǎng)合,內(nèi)置程序存儲(chǔ)器的ARM微處理器芯片非常適用。這類(lèi)芯片以LPC2100及LPC2200系列為典型代表,如LPC2104內(nèi)部集成了128?KB的Flash存儲(chǔ)器,LPC2124內(nèi)部集成了256?KB的Flash存儲(chǔ)器LPC2138和LPC2148內(nèi)部集成了512?KB的Flash存儲(chǔ)器等。AT91FR4042內(nèi)部也集成了512?KB的Flash存儲(chǔ)器,而AT91F40162更是具有高達(dá)2?MB的內(nèi)部程序存儲(chǔ)器。用戶在設(shè)計(jì)時(shí)可考慮選用這種類(lèi)型的ARM芯片,這樣可省去外部程序存儲(chǔ)器,以簡(jiǎn)化系統(tǒng)的設(shè)計(jì)。

(2)內(nèi)部數(shù)據(jù)存儲(chǔ)器容量。有些ARM芯片內(nèi)部沒(méi)有配置SRAM,有些則配置了一定數(shù)量的SRAM作為內(nèi)部數(shù)據(jù)存儲(chǔ)器。沒(méi)有配置SRAM的ARM芯片在構(gòu)成嵌入式系統(tǒng)時(shí)必須擴(kuò)展外部數(shù)據(jù)存儲(chǔ)器;而配置了SRAM的ARM芯片在構(gòu)成嵌入式系統(tǒng)時(shí),如果容量滿足要求,就不必外擴(kuò)數(shù)據(jù)存儲(chǔ)器,這樣能降低成本,使系統(tǒng)更加小型化。具有內(nèi)部數(shù)據(jù)存儲(chǔ)器的ARM芯片以LPC2100系列及LPC2200系列為典型代表,如LPC2101/02/03/04/05/06內(nèi)部分別具有大小為2?KB/4?KB/8?KB/16?KB/32?KB/64?KB的SRAM。AT91FR4042和AT91FR40162也具有256?KB的SRAM。

4.片內(nèi)外圍電路

除ARM微處理器內(nèi)核以外,幾乎所有的ARM芯片均根據(jù)各自不同的應(yīng)用領(lǐng)域擴(kuò)展了相關(guān)功能,并集成在芯片之中,如USB接口、IIS接口、LCD控制器、鍵盤(pán)接口、RTC、ADC、DAC、DSP協(xié)處理器等,稱(chēng)為片內(nèi)外圍電路。設(shè)計(jì)者應(yīng)分析系統(tǒng)的需求,盡可能采用片內(nèi)外圍電路完成所需的功能,這樣既可簡(jiǎn)化系統(tǒng)的設(shè)計(jì),也可提高系統(tǒng)的可靠性。片內(nèi)外圍電路的選擇可從以下幾個(gè)方面考慮。

(1)通用并行端口數(shù)量。某些芯片供應(yīng)商提供的說(shuō)明書(shū)中提供的往往都是最大可能的通用并行端口(GPIO)數(shù)量,但這其中有許多引腳是和地址線、數(shù)據(jù)線、串行接口等引腳復(fù)用的。因此,在系統(tǒng)設(shè)計(jì)時(shí)必須計(jì)算實(shí)際可以使用的GPIO數(shù)量,然后選擇那些至少能滿足系統(tǒng)要求并留有一定余量引腳的ARM處理器芯片。

(2)定時(shí)計(jì)數(shù)器。實(shí)際應(yīng)用中的嵌入式系統(tǒng)需要若干定時(shí)或計(jì)數(shù)功能,所以必須考慮ARM微處理器芯片中定時(shí)器的個(gè)數(shù)。對(duì)定時(shí)器的要求是任何一個(gè)嵌入式系統(tǒng)必須考慮的問(wèn)題。

多數(shù)系統(tǒng)需要一個(gè)準(zhǔn)確的時(shí)鐘和日歷,因此還要考慮ARM處理器是否集成了RTC模塊(實(shí)時(shí)鐘)。不同ARM芯片內(nèi)置的實(shí)時(shí)鐘的實(shí)現(xiàn)方式不同。如CirrusLogic公司的EP7312的RTC只是一個(gè)32位計(jì)數(shù)器,需要通過(guò)軟件計(jì)算出年、月、日、時(shí)、分、秒;而SAA7750和S3C44B0X、S3C2410、LPC2100/2200系列以及AT91FR系列等芯片的RTC模塊直接提供年、月、日、時(shí)、分、秒格式。如果需要脈沖寬度調(diào)制以控制電機(jī)等對(duì)象,則還要考慮PWM定時(shí)器。

(3)通信接口。嵌入式系統(tǒng)外部通常需要連接許多設(shè)備,因此要求內(nèi)部具有相應(yīng)的不同通信接口標(biāo)準(zhǔn)。

I2C和SPI是常用的與外部連接的串行同步通信接口標(biāo)準(zhǔn),多數(shù)ARM處理器具有這兩種接口,便于與相應(yīng)總線標(biāo)準(zhǔn)的器件相連以擴(kuò)展系統(tǒng)功能。其中,UART是必需的串行異步通信接口標(biāo)準(zhǔn),它用來(lái)構(gòu)成多機(jī)系統(tǒng)或與其他系統(tǒng)通信,選擇時(shí),要考慮選擇包含幾個(gè)UART的ARM處理器。有的系統(tǒng)要求遠(yuǎn)紅外通信,就要考慮選擇具有IrDA接口的ARM處理器芯片。STR系列ARM處理器的通信接口最豐富,有多達(dá)4個(gè)UART。

許多ARM芯片內(nèi)置有USB控制器,有些芯片甚至同時(shí)有USBHost和USBSlave控制器。如果使用USB進(jìn)行數(shù)據(jù)傳輸,最好是選用內(nèi)置有USB控制器的芯片,這樣對(duì)將來(lái)電路的設(shè)計(jì)非常有利。對(duì)于工業(yè)控制場(chǎng)合,通常還要考慮是否具有CAN總線接口,因?yàn)镃AN總線在工業(yè)控制領(lǐng)域是最重要的現(xiàn)場(chǎng)總線接口標(biāo)準(zhǔn)之一,便于實(shí)現(xiàn)聯(lián)網(wǎng)。如LPC2119、LPC2129等內(nèi)部均配置了雙通道的CAN總線接口,2294具有四通道的CAN接口等。事實(shí)上,如果僅限于工業(yè)控制領(lǐng)域,無(wú)論從哪個(gè)方面考慮,最為經(jīng)濟(jì)、實(shí)用、性價(jià)比最高的當(dāng)屬LPC系列以及STR系列ARM處理器,因?yàn)樗鼈兊脑O(shè)計(jì)思路就是針對(duì)工業(yè)控制領(lǐng)域的。

如果設(shè)計(jì)音頻應(yīng)用產(chǎn)品,則I2S總線接口是必需的。

(4)?LCD液晶顯示控制器。對(duì)于掌上電腦等需要人機(jī)界面的設(shè)備,選擇ARM微處理器芯片時(shí),應(yīng)優(yōu)先考慮具有LCD(LiquidCrystalDisplay)控制器的ARM芯片,因?yàn)檫@些系統(tǒng)需要LCD顯示屏。有些ARM芯片內(nèi)置LCD控制器,有的甚至內(nèi)置64?K彩色TFTLCD控制器,如Samsung公司的S3C2410芯片等。

(5)多處理器。對(duì)于需要特定處理功能的嵌入式系統(tǒng),可根據(jù)其功能特征選用不同搭配關(guān)系的多處理器ARM芯片。對(duì)于各種常見(jiàn)多處理器的簡(jiǎn)單歸納如下:ARM?+?DSP多處理器可以加強(qiáng)數(shù)學(xué)運(yùn)算功能和多媒體處理功能;ARM?+?FPGA多處理器的結(jié)合可以提高系統(tǒng)硬件的在線升級(jí)能力;ARM?+?ARM多處理器的結(jié)合可以增強(qiáng)系統(tǒng)多任務(wù)處理能力和多媒體處理能力。

(6)模擬/數(shù)字轉(zhuǎn)換器。應(yīng)用于工業(yè)控制或自動(dòng)化領(lǐng)域的嵌入式系統(tǒng),必然涉及模擬量的輸入,因此要考慮內(nèi)部具有模擬/數(shù)字轉(zhuǎn)換器(ADC)的ARM微處理器芯片,選擇時(shí)還要考慮ADC的通道數(shù)和分辨率,根據(jù)需求選擇相關(guān)ARM芯片。

5.其他因素

除以上需要考慮的內(nèi)部因素外,在某些有特殊需要的場(chǎng)合,應(yīng)選擇符合這些特殊要求的ARM微處理器芯片,如工作環(huán)境要求(尤其是溫度范圍,如工業(yè)級(jí)為-40℃~85℃)、工作電壓要求、功耗要求(特別是移動(dòng)產(chǎn)品及手持設(shè)備等需要電池供電的產(chǎn)品)、體積要求及成本要求等。一般來(lái)說(shuō),應(yīng)用于工業(yè)控制領(lǐng)域、要求高性能及高抗干擾能力時(shí),應(yīng)盡量考慮ST的STR系列處理器及Atmel的AT91系列處理器;如果應(yīng)用于普通領(lǐng)域、對(duì)性能要求不是太高時(shí),則應(yīng)首先考慮LPC2000系列處理器;如果應(yīng)用于手持設(shè)計(jì)、移動(dòng)設(shè)備等領(lǐng)域,對(duì)工作環(huán)境要求不高,又需要處理器具有高性能時(shí),則可考慮S3C44B0X處理器或S3C2410X等處理器。

總之,在選擇ARM微處理器芯片時(shí),應(yīng)綜合考慮各個(gè)因素,選擇最適合的ARM芯片。另外廠家的技術(shù)支持也是一個(gè)關(guān)鍵因素,如果選擇的開(kāi)發(fā)器件能得到有力的支持,則可以說(shuō)已經(jīng)完成了一半的開(kāi)發(fā)。5.2.2ARM處理器芯片主要供應(yīng)商

第1章中圖1.4所示的僅僅是基于ARM技術(shù)的部分常用處理器及廠家,實(shí)際上目前可以提供ARM芯片的著名歐美半導(dǎo)體公司有英特爾、德州儀器、三星半導(dǎo)體、摩托羅拉、飛利浦半導(dǎo)體、意法半導(dǎo)體、億恒半導(dǎo)體、科勝訊、ADI公司、安捷倫、高通公司、Atmel、Intersil、Alcatel、Altera、CirrusLogic、Linkup、Parthus、LSILogic、Micronas、SiliconWave、Virata、Portalplayerinc.、NetSilicon等。5.2.3ARM處理器芯片的選擇實(shí)例

下面給出實(shí)際應(yīng)用中在不同應(yīng)用領(lǐng)域情況下經(jīng)常遇到的ARM芯片的選擇實(shí)例,以加深對(duì)ARM芯片選擇要素的理解,提高選擇技能,為系統(tǒng)設(shè)計(jì)打好基礎(chǔ)。

【例5.1】某自來(lái)水集中遠(yuǎn)傳抄表系統(tǒng)中的集中器具有遠(yuǎn)程通信功能,其主要技術(shù)參數(shù)和功能要求如下:

(1)集中器采用無(wú)線通信方式與下位機(jī)采集器構(gòu)成多機(jī)系統(tǒng),連接2000個(gè)采集器(一個(gè)采集器連接多個(gè)水表)。

(2)集中器與上位機(jī)采用無(wú)線、有線以及RS-232、紅外或IC卡方式進(jìn)行數(shù)據(jù)傳輸。

(3)集中器可以移動(dòng)、手持,也可以固定。

(4)集中器有LCD顯示和操作鍵盤(pán)。

(5)集中器內(nèi)部應(yīng)該有實(shí)時(shí)鐘。其他要求略。

解:由第(1)項(xiàng)要求可知,該集中器數(shù)據(jù)量較大,應(yīng)采用無(wú)線方式通信,所以要有UART串行口。

第(2)項(xiàng)說(shuō)明與上位機(jī)的通信方式確定要有另一個(gè)UART串行口;IC卡方式要求內(nèi)部要有I2C總線接口。

第(3)項(xiàng)決定移動(dòng)、手持,因此最好能使用嵌入式操作系統(tǒng),可以確定采用三星的S3C系列處理器為宜。

第(4)項(xiàng)要求有LCD控制器,這樣使用液晶屏比較可靠。

第(5)項(xiàng)要求內(nèi)部要有實(shí)時(shí)鐘。結(jié)論:綜上所述,該處理器必須有2個(gè)或2個(gè)以上UART串行接口、I2C總線接口、LCD控制器,且低功耗工作(提供帶電方式的手持設(shè)備),因此基于ARM7TDMI的S3C44B0X就可滿足系統(tǒng)的要求(當(dāng)然還要配備外部相關(guān)電路)。如果選擇帶MMU的S3C2410X就有些浪費(fèi),也沒(méi)有必要。 5.3ARM處理器中的控制寄存器

5.3.1微處理器中控制寄存器的定義舉例

為了說(shuō)明微處理器中控制寄存器的定義及使用,下面以S3C44B0X中的看門(mén)狗定時(shí)器WDT(Watch-DogTimer)組件來(lái)進(jìn)行說(shuō)明。

WDT組件用于監(jiān)視程序的運(yùn)行狀態(tài)。當(dāng)系統(tǒng)出現(xiàn)錯(cuò)誤,如受到噪聲干擾時(shí),S3C44B0X的WDT組件能夠繼續(xù)操作控制器。WDT組件可用作一個(gè)普通的16位定時(shí)器去請(qǐng)求中斷服務(wù),并在每128個(gè)MCLK脈沖后產(chǎn)生一個(gè)長(zhǎng)達(dá)128個(gè)MCLK時(shí)鐘周期的復(fù)位信號(hào)。

1.WDT組件的組成

WDT組件采用唯一的時(shí)鐘源MCLK,由WDT組件內(nèi)部的8位預(yù)分頻器(由WTCON15~WTCON8選擇,最大值為255,即28-1)對(duì)MCLK進(jìn)行首次分頻,通過(guò)預(yù)分頻器分頻的值稱(chēng)為預(yù)分頻值;然后按照16、32、64及128的系數(shù)通過(guò)多路選擇開(kāi)關(guān)(MUX)進(jìn)行第二次分頻,這次分頻的值稱(chēng)為分頻系數(shù);在WDT組件的控制寄存器的作用下由WTCON4、WTCON3選擇得到WDT組件計(jì)數(shù)所需時(shí)鐘;通過(guò)16位內(nèi)部遞減計(jì)數(shù)器(WTCNT)減法計(jì)數(shù),當(dāng)沒(méi)有加以干預(yù)計(jì)數(shù)到0時(shí),產(chǎn)生中斷輸出并產(chǎn)生復(fù)位信號(hào)(RESET)來(lái)使系統(tǒng)復(fù)位。WDT組件的構(gòu)成如圖5.9所示。圖5.9WDT組件的構(gòu)成

2.WDT組件的特殊功能寄存器

WDT組件的特殊功能寄存器包括WDT組件控制寄存器(WTCON)、WDT組件數(shù)據(jù)寄存器(WTDAT)及WDT組件計(jì)數(shù)寄存器等(WTCNT),這些特殊功能寄存器均可讀/寫(xiě)。

(1)?WDT組件控制寄存器WTCON。WTCON用于控制預(yù)分頻系數(shù)、確定是否允許WDT、是否允許輸出復(fù)位信號(hào)等,其地址為0x01D30000。WTCON各位含義見(jiàn)表5.2,它的初始值為0x8021。(2)?WDT組件數(shù)據(jù)寄存器WTDAT。WTDAT用于存放計(jì)數(shù)值,其地址為0x01D30004。WTDAT各位含義見(jiàn)表5.3,初始值為0x8000。初始化時(shí)WTDAT的值不能自動(dòng)裝入計(jì)數(shù)寄存器中,只有當(dāng)?shù)?個(gè)計(jì)數(shù)周期結(jié)束后,它的值才自動(dòng)重新裝入WTCNT中。(3)?WDT組件計(jì)數(shù)寄存器WTCNT。WTCNT用于存放看門(mén)狗定時(shí)器在正常操作下的當(dāng)前計(jì)數(shù)值,其地址為0x01D30008,WTCNT各位含義見(jiàn)表5.4,初始值為0x8000。在計(jì)數(shù)時(shí)采用減法計(jì)數(shù),如果沒(méi)有干預(yù),則當(dāng)計(jì)數(shù)到0時(shí)自動(dòng)產(chǎn)生中斷輸出并產(chǎn)生復(fù)位信號(hào)(RESET)。

根據(jù)以上結(jié)構(gòu)圖及各特殊功能寄存器的定義可知WDT組件的工作過(guò)程是:先根據(jù)設(shè)定的WTCON中的[WTCON6、WTCON5]的值選擇對(duì)主頻時(shí)鐘MCLK的分頻值和根據(jù)[WTCON4WTCON3]的值選擇計(jì)數(shù)所需的時(shí)鐘,再根據(jù)設(shè)定的WDTAT的值通過(guò)16位內(nèi)部遞減計(jì)數(shù)器來(lái)進(jìn)行減法計(jì)數(shù),最后根據(jù)WTCNT的計(jì)數(shù)結(jié)果及輸出控制信號(hào)[WTCON2、WTCON0]輸出有關(guān)結(jié)果,當(dāng)沒(méi)有加以干預(yù)而計(jì)數(shù)到0時(shí),產(chǎn)生中斷輸出并產(chǎn)生復(fù)位信號(hào)(RESET)來(lái)使系統(tǒng)復(fù)位。5.3.2微處理器中控制寄存器的含義及作用

ARM處理器內(nèi)部包括CPU和各種功能組件,那么ARM處理器的CPU怎樣實(shí)現(xiàn)對(duì)各種功能組件的控制呢?其主要通過(guò)各種控制寄存器來(lái)實(shí)現(xiàn)對(duì)各個(gè)功能組件及外圍器件的控制,主要工作過(guò)程的示意圖如5.10所示。圖5.10控制寄存器中信息流程及作用示意圖根據(jù)前述的控制寄存器的實(shí)例,并結(jié)合圖5.10所示的控制寄存器中的信息流程及作用示意圖,我們可以總結(jié)出控制寄存器的含義及作用如下:

(1)控制寄存器是一個(gè)特定的存儲(chǔ)單元,而控制寄存器各位的定義由微控制器/微處理器的內(nèi)部硬件結(jié)構(gòu)決定,所以控制寄存器各位的定義是控制編程的依據(jù)。

(2)控制寄存器是人機(jī)信息交互的橋梁,而人或機(jī)器對(duì)某個(gè)功能組件的控制指令首先必須通過(guò)編程給控制寄存器賦值,再通過(guò)CPU對(duì)控制寄存器的讀操作將有關(guān)操作控制信號(hào)或操作數(shù)據(jù)傳遞給該功能組件。當(dāng)這些操作控制信號(hào)或操作數(shù)據(jù)有效時(shí),該功能組件就會(huì)執(zhí)行特定的操作。5.3.3微處理器中控制寄存器的初始化方法

為了說(shuō)明初始化控制寄存器的各種方法,先看一段有關(guān)LCD驅(qū)動(dòng)的程序段:

#defineLCDMEM_BASE0xDF000000?//定義LCD存儲(chǔ)區(qū)基地址

#defineLCDMEM_SIZE320*240/8//總的虛擬顯示區(qū)域(針對(duì)320*240LCD屏)

#defienMONO_MODE0x00

#defineXSIZE320

#defineYSIZE240…

intmain(void);

voidLcdPort_Init(void);

voidLcd_Init(void);

intmain(void)

{

LcdPort_Init(); //對(duì)LCD端口進(jìn)行初始化

Lcd_Init(); //對(duì)LCD控制器進(jìn)行初始化

}

voidLcdPort_Init(void)

{……

//將GPIO端口D配置成LCD控制器接口

rPCOND=0xAAAA; //端口D配置寄存器1010101010101010,即端口D為L(zhǎng)CD專(zhuān)用

//引腳

rPUPD=0xFF; //端口D上拉寄存器,禁止D內(nèi)部上拉

rPCONE&=0x3FFF; //將GPIOE配置為開(kāi)關(guān)控制信號(hào)

rPCONE|=0x4000;

rPUPE=0xFF;

}

voidLcd_Init(void)

{

rLCDCON1=(0)|(1<<5)|(1<<8)|(1<<10)|(CLKVAL<<12);

//disable,4B_SNGL_SCAN,WDLY=8clk,WLH=8clk,具體含義見(jiàn)5.4節(jié)

rLCDCON2=(YSIZE-1)|((XSIZE/4-1)<<10)|(10<<21);

//LINEBLANK=10(withoutanycalculation),具體含義見(jiàn)5.4節(jié)

rLCDSADDR1=(MONO_MODE<<27)|((LCDMEM_BASE>>22)<<21)|((LCD-MEM_BASE

&0x3FFFFF)>>1);

//monochrome,LCDBANK,LCDBASEU,具體含義見(jiàn)5.4節(jié)

}從上程序段可看出,組件特殊功能寄存器/組件控制寄存器的初始化方法主要有以下三種:

(1)數(shù)值或數(shù)值運(yùn)算賦值法,就是根據(jù)用戶對(duì)組件的使用要求及控制寄存器的各位含義,直接將初值的數(shù)值結(jié)果或數(shù)值的運(yùn)算結(jié)果賦給對(duì)應(yīng)的控制寄存器。該方法的優(yōu)點(diǎn)是簡(jiǎn)單、直觀,但對(duì)控制寄存器的各位的涵義不清晰,修改不方便。例如:

rPUPD=0xFF;//端口D上拉寄存器,禁止D內(nèi)部上拉

rPCONE&=0x3FFF; //將GPIOE配置為開(kāi)關(guān)控制信號(hào)

(2)數(shù)位值移位合成法,就是根據(jù)用戶對(duì)組件的使用要求及控制寄存器的各位涵義,先確定值為1的各位,再左移,最后通過(guò)邏輯或運(yùn)算得到初值的結(jié)果,并賦給對(duì)應(yīng)的控制寄存器。該方法的優(yōu)點(diǎn)是簡(jiǎn)單、修改方便,但控制寄存器的各位的涵義不清晰。例如:rLCDCON1=(0)|(1<<5)|(1<<8)|(1<<10)|(CLKVAL<<12);

(3)常量位移位合成法,就是根據(jù)用戶對(duì)組件的使用要求及控制寄存器的各位涵義,先通過(guò)常量定義各位的值,再將各位對(duì)應(yīng)的常量進(jìn)行左移,最后通過(guò)邏輯或運(yùn)算得到初值的結(jié)果,并賦給對(duì)應(yīng)的控制寄存器。該方法的優(yōu)點(diǎn)是控制寄存器的各位的涵義清晰、修改方便,但編程和書(shū)寫(xiě)稍顯麻煩。例如:rLCDSADDR1=(MONO_MODE<<27)|((LCDMEM_BASE>>22)<<21)|((LCD-MEM_BASE&0x3FFFFF)>>1); 5.4S3C44B0X內(nèi)部存儲(chǔ)控制類(lèi)

可編程組件及應(yīng)用編程

5.4.1存儲(chǔ)控制組件及應(yīng)用編程

嵌入式系統(tǒng)使用的存儲(chǔ)器有多種類(lèi)型,主要包括Flash、EPROM、SDRAM以及SRAM。要滿足不同速度、不同類(lèi)型、不同總線寬度的存儲(chǔ)器的管理和控制,存儲(chǔ)控制組件是必不可少的。存儲(chǔ)控制器為片外存儲(chǔ)器訪問(wèn)提供必要的控制信號(hào),用于管理片外存儲(chǔ)部件。

1.存儲(chǔ)器區(qū)域劃分

前面介紹的技術(shù)特征中已經(jīng)提到,基于S3C44B0X的嵌入式系統(tǒng)存儲(chǔ)器支持大、小端模式等若干特征,其中所有地址空間都可以通過(guò)編程來(lái)設(shè)置為8位、16位或32位的寬數(shù)據(jù)對(duì)齊以進(jìn)行訪問(wèn)。

S3C44B0X復(fù)位后的存儲(chǔ)器地址分配如圖5.11所示。圖5.11復(fù)位后的存儲(chǔ)器地址分配圖5.11中的SROM是指ROM或SRAM。另外,由nGCS6和nGCS7控制信號(hào)選擇的Bank6和Bank7的詳細(xì)地址分配見(jiàn)表5.5。

圖5.11所示的可訪問(wèn)區(qū)除由nGCS6和nGCS7控制的Bank6和Bank7之外,其他由nGCS1~nGCS5控制的存儲(chǔ)區(qū)域,除了可以擴(kuò)展存儲(chǔ)器(ROM或RAM)外,同樣可以擴(kuò)展以總線方式工作的I/O設(shè)備。只要對(duì)nGCS7~nGCS1控制的地址范圍的任何一個(gè)地址進(jìn)行總線操作,無(wú)論是讀操作還是寫(xiě)操作,該信號(hào)在訪問(wèn)期間會(huì)出現(xiàn)低電平,直到操作結(jié)束才變?yōu)楦唠娖健?/p>

2.不同數(shù)據(jù)寬度的存儲(chǔ)器地址線連接方法

由于S3C44B0X存儲(chǔ)器組織可以使用8位、16位或32位的不同數(shù)據(jù)寬度,因此其對(duì)應(yīng)不同數(shù)據(jù)寬度的存儲(chǔ)器的地址與系統(tǒng)地址總線的連接方法也不同,見(jiàn)表5.6,其中,m是存儲(chǔ)器的地址線數(shù)。

對(duì)于8位數(shù)據(jù)寬度的存儲(chǔ)器組織,存儲(chǔ)器地址線與系統(tǒng)地址總線直接相連;對(duì)于16位數(shù)據(jù)寬度的存儲(chǔ)器組織,存儲(chǔ)器的地址線與系統(tǒng)總線要錯(cuò)一位相連;對(duì)于32位存儲(chǔ)器組織,存儲(chǔ)器的地址線與系統(tǒng)總線要錯(cuò)兩位相連。

3.存儲(chǔ)控制組件的特殊功能寄存器

存儲(chǔ)器大小端模式由硬件引腳決定,即當(dāng)ENDIAN接高電平時(shí)為大端模式,接地時(shí)為小端模式。其設(shè)置均由相關(guān)控制寄存器完成。所有存儲(chǔ)器空間的訪問(wèn)周期都可以通過(guò)編程配置,這些可編程的功能均通過(guò)存儲(chǔ)管理組件中的相關(guān)控制寄存器來(lái)完成設(shè)置。

1)總線寬度與等待控制寄存器

總線寬度與等待控制寄存器(BWSCON)是決定總線寬度(8位/16位/32位)以及決定等待的32位寄存器,其在系統(tǒng)中分配的地址為0x01C80000,復(fù)位時(shí)的值為0x00000000。BWSCON格式如圖5.12所示。圖5.12BWSCON格式

ST7~ST1決定SRAM映射在Banki時(shí)是否采用UB/LB(寫(xiě)高/低字節(jié)使能),其值為1時(shí)表示采用,否則不采用。WS7~WS1決定Banki上的存儲(chǔ)器是否等待,其值為1時(shí)表示等待,否則禁止等待。DW7~DW1中的2位編碼決定Banki上的總線寬度,編碼為00表示8位;編碼為01表示16位;編碼為10表示32位。DW0中的2位編碼決定Bank0上的總線寬度,只能讀,不可寫(xiě)。

ENDIAN指示大小端模式,為0表示小端模式,為1表示大端模式。該位只能讀,不可寫(xiě)。

2)內(nèi)在通道控制寄存器

S3C44B0X內(nèi)部有8個(gè)對(duì)應(yīng)于Bank0~Bank7的通道控制寄存器BANKCON0~BANKCON7,其中BANKCON0~BANKCON5的地址占用0x01C80004、0x01C80008、0x01C8000C、0x01C80010、0x01C80014、0x01C80018,復(fù)位時(shí)均為0x0700;BANKCON6~BANKCON7的地址占用0x01C8001C、0x01C80020,復(fù)位時(shí)均為0x018008。其格式如圖5.13所示。圖5.13BANKCON格式由MT的2位編碼決定Bank6和Bank7的存儲(chǔ)器類(lèi)型:編碼為00表示ROM或SRAM;編碼為01表示FPDRAM;編碼為10表示EDODRAM;編碼為11表示SDRAM。

Tacs的2位編碼決定在nGCSn選擇之前的地址時(shí)鐘個(gè)數(shù):編碼為00表示0個(gè)時(shí)鐘;編碼為01表示1個(gè)時(shí)鐘;編碼為10表示2個(gè)時(shí)鐘;編碼為11表示4個(gè)時(shí)鐘。

Tcos的2位編碼決定芯片選擇nOE的時(shí)鐘個(gè)數(shù):編碼為00表示0個(gè)時(shí)鐘;編碼為01表示1個(gè)時(shí)鐘;編碼為10表示2個(gè)時(shí)鐘;編碼為11表示4個(gè)時(shí)鐘。

Tacc的3位編碼決定訪問(wèn)的時(shí)鐘個(gè)數(shù):編碼為000表示1個(gè)時(shí)鐘;編碼為001表示2個(gè)時(shí)鐘;編碼為010表示3個(gè)時(shí)鐘;編碼為011表示4個(gè)時(shí)鐘;編碼為100表示6個(gè)時(shí)鐘;編碼為101表示8個(gè)時(shí)鐘;編碼為110表示10個(gè)時(shí)鐘;編碼為111表示14個(gè)時(shí)鐘。

Toch的2位編碼決定芯片保持nOE的時(shí)鐘個(gè)數(shù):編碼為00表示0個(gè)時(shí)鐘;編碼為01表示1個(gè)時(shí)鐘;編碼為10表示2個(gè)時(shí)鐘;編碼為11表示4個(gè)時(shí)鐘。

Tcah的2位編碼決定在nGCSn選擇之前的保護(hù)時(shí)鐘個(gè)數(shù)。編碼為00表示0個(gè)時(shí)鐘;編碼為01表示1個(gè)時(shí)鐘;編碼為10表示2個(gè)時(shí)鐘;編碼為11表示4個(gè)時(shí)鐘。

Tacp的2位編碼決定在分頁(yè)模式下頁(yè)模式的訪問(wèn)周期:編碼為00表示2個(gè)時(shí)鐘;編碼為01表示3個(gè)時(shí)鐘;編碼為10表示4個(gè)時(shí)鐘;編碼為11表示6個(gè)時(shí)鐘。

PMC的2位編碼決定分頁(yè)模式配置:編碼為00表示正常(1個(gè)數(shù)據(jù));編碼為01表示4個(gè)數(shù)據(jù);編碼為10表示8個(gè)數(shù)據(jù);編碼為11表示16個(gè)數(shù)據(jù)。當(dāng)存儲(chǔ)器類(lèi)型為FPDRAM或EDODRAM時(shí),位5~位0的含義如下:

Trcd的2位編碼決定RAS到CAS的延時(shí)時(shí)間,編碼為00表示1個(gè)時(shí)鐘;編碼為01表示2個(gè)時(shí)鐘;編碼為10表示3個(gè)時(shí)鐘;編碼為11表示4個(gè)時(shí)鐘。

Tcas決定CAS的脈沖寬度,編碼為0表示1個(gè)時(shí)鐘;編碼為1表示2個(gè)時(shí)鐘。

Tcp的2位編碼決定CAS的預(yù)充電時(shí)間,編碼為00表示8位;編碼為01表示9位;編碼為10表示10位;編碼為11表示11位。

CAN的2位編碼決定列地址位數(shù),編碼為00表示8位;編碼為01表示9位;編碼10表示10位;編碼為11表示11位。

在MT表示11,即存儲(chǔ)器為SDRAM時(shí),Trcd的2位編碼決定RAS到CAS的延時(shí)時(shí)間,編碼為00表示2個(gè)時(shí)鐘;編碼為01表示3個(gè)時(shí)鐘;編碼為10表示4個(gè)時(shí)鐘。

3)刷新控制寄存器

刷新控制寄存器(REFRESH)是專(zhuān)門(mén)控制DRAM和SDRAM刷新的寄存器,其占用地址為0x0AC0000,格式如圖5.14所示。圖5.14REFRESH格式

REFEN為刷新使能:編碼為0表示禁止刷新;編碼為1表示刷新。

TREFMD決定DRAM/SDRAM刷新模式:為0表示CBR/自動(dòng)刷新;為1表示自動(dòng)刷新(控制信號(hào)為電平)。

Trp的2位編碼決定DRAM/SDRAM行的預(yù)充電時(shí)間:

●對(duì)于DRAM,編碼為00表示1.5個(gè)時(shí)鐘;編碼為01表示2.5個(gè)時(shí)鐘;編碼為10表示3.5個(gè)時(shí)鐘;編碼為11表示4.5個(gè)時(shí)鐘?!駥?duì)于SDRAM,編碼為00表示2個(gè)時(shí)鐘;編碼為01表示3個(gè)時(shí)鐘;編碼為10表示4個(gè)時(shí)鐘;編碼為11表示不支持。

Trc的2位編碼決定SDRAMRC的最小時(shí)間:編碼為00表示4個(gè)時(shí)鐘;編碼為01表示5個(gè)時(shí)鐘;編碼為10表示6個(gè)時(shí)鐘;編碼為11表示7個(gè)時(shí)鐘。

Tchr的2位編碼決定CAS的保持時(shí)間(對(duì)于DRAM):編碼為00表示1個(gè)時(shí)鐘;編碼為01表示2個(gè)時(shí)鐘;編碼為10表示3個(gè)時(shí)鐘;編碼為11表示4個(gè)時(shí)鐘。

RefreshCounter為刷新計(jì)數(shù)值,有

刷新周期?=?(211-刷新計(jì)數(shù)值?+?1)/MCLK

4)?Bank容量寄存器

Bank容量寄存器(BANKSIZE)是專(zhuān)門(mén)控制存儲(chǔ)器BANK的容量大小的,其占用地址為0x01C80020,復(fù)位后的值為0x0,格式如圖5.15所示。

SCLKEN在SDRAM訪問(wèn)周期SCLK使能:位為0表示禁止,為1表示允許。該位在訪問(wèn)SDRAM周期時(shí)才輸出SCLK時(shí)鐘,這樣可降低功耗。

BK76MAP決定存儲(chǔ)器的BANK6/7容量大?。壕幋a為000表示32?MB;編碼為100表示2?MB;編碼為101表示4?MB;編碼為110表示8?MB。

5)?SDRAM模式寄存器設(shè)置寄存器

MRSR用來(lái)設(shè)置SDRAM的工作模式,MRSRB6占用地址為0x01C8002C,MRSRB7占用地址為0x01C80030,復(fù)位后為不定。

MRSR格式如圖5.16所示。圖5.15BANKSIZE格式圖5.16MRSR格式

WBL(WriteBurstLength)為寫(xiě)突發(fā)長(zhǎng)度,其值為0是推薦值。

TM(TestMode)是測(cè)試模式選擇位:編碼為00時(shí)表示由模式寄存器設(shè)置;編碼為01、10、11時(shí)表示保留。

CL(CASLatency)是CAS發(fā)送時(shí)鐘,編碼為000表示1個(gè)時(shí)鐘;編碼為010表示2個(gè)時(shí)鐘;編碼為011表示3個(gè)時(shí)鐘;其他為保留。

BT(BurstType)突發(fā)類(lèi)型為0表示順序(推薦);為1表示未用。

BL(BurstLelngth)突發(fā)長(zhǎng)度,000表示長(zhǎng)度為1,其余未用。值得注意的是:

●如果代碼在SDRAM中運(yùn)行,則絕不能重新配置MRSR寄存器;

●所有13個(gè)存儲(chǔ)器控制寄存器均使用STMIA指令寫(xiě)入;

●在中止模式和低功耗模式下,DRAM/SDRAM必須進(jìn)入自刷新模式。

4.存儲(chǔ)器接口電路設(shè)計(jì)

S3C44B0X內(nèi)部沒(méi)有存儲(chǔ)器,因此必須采用總線方式擴(kuò)展外部存儲(chǔ)器,包括程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。S3C44B0X存儲(chǔ)器地址分配有7個(gè)Bank,存儲(chǔ)器組織可以使用8、16或32位的不同數(shù)據(jù)寬度,因此其對(duì)應(yīng)不同數(shù)據(jù)寬度的存儲(chǔ)器地址線與系統(tǒng)地址總線的連接方法也不同。

1)?NORFlash與NANDFlash

NORFlash是由或非門(mén)組成存儲(chǔ)單元的Flash存儲(chǔ)器,而NANDFlash是由與非門(mén)組成存儲(chǔ)單元的Flash存儲(chǔ)器。

NORFlash的主要特點(diǎn)是讀取速度快,但擦寫(xiě)速度相對(duì)較慢,擦寫(xiě)次數(shù)約為十萬(wàn)次;NANDFlash的主要特點(diǎn)是擦寫(xiě)速度快,擦寫(xiě)次數(shù)約為一百萬(wàn)次??梢?jiàn),NANDFlash的寫(xiě)入壽命比NOR長(zhǎng)。

由于擦寫(xiě)NORFlash時(shí)是以64~128KB的塊為單位進(jìn)行的,因此執(zhí)行一個(gè)寫(xiě)入/擦除操作的時(shí)間為5s,而NANDFlash是以8~32KB的塊為單位進(jìn)行擦寫(xiě)的,執(zhí)行相同的操作最多只需要4ms??梢?jiàn),NAND的擦寫(xiě)速度快。

NOR的讀取速度比NAND的快,NAND的寫(xiě)入速度比NOR的快;NANDFlash的單元尺寸比NORFlash的小,成本也比NORFlash的低。一般來(lái)說(shuō),由于NORFlash主要應(yīng)用于程序代碼的存放,NANDFlash主要應(yīng)用于數(shù)據(jù)存儲(chǔ),因此,小容量應(yīng)用場(chǎng)合可使用NORFlash(容量為1~16MB),大容量應(yīng)用場(chǎng)合則可使用NANDFlash(8~128MB)。

2)典型Flash存儲(chǔ)器芯片介紹

SST39VF160為典型的1M?×?16bit的普通Flash存儲(chǔ)器芯片,內(nèi)部結(jié)構(gòu)如圖5.17所示,由控制邏輯、地址緩沖與鎖存器、X和Y地址解碼器、超級(jí)Flash存儲(chǔ)器以及I/O緩沖與數(shù)據(jù)鎖存器組成。圖5.17SST39VF160內(nèi)部結(jié)構(gòu)

SST39VF160的外部引腳如圖5.18所示,共48個(gè)引腳,包括20條地址線A19~A0、16位數(shù)據(jù)線DQ15~DQ0、控制信號(hào)(nOE)、寫(xiě)控制信號(hào)(nWE)、片選信號(hào)(nCE)、電源、地VDD及VSS。它的容量為220?×?16?=?1?M?×?16位=2?MB。圖5.18SST39VF160的外部引腳

3)?S3C44B0X與SST39VF160的連接

由于Flash作為程序存儲(chǔ)器使用(這里實(shí)際上是BOOTROM),因此必須將其配置為最低端地址,即復(fù)位后的地址(0x00000000)開(kāi)始的Bank0(由nGCS0控制)區(qū)域。連接電路如圖5.19所示。由于SST39VF160是16位存儲(chǔ)器,因此S3C44B0X與它的連接采用16位存儲(chǔ)器組織形式,由表3.4可知,S3C44B0X的地址線Al與SST39VF160的A0相連接,以此類(lèi)推,S3C44B0X的地址線A20與SST39VF160的A19相連接。由于Flash的容量為1?M×16bit,因此Flash的地址范圍為0x00000000~0x001FFFFF。圖5.19S3C44B0X與SST39VF160的連接示意圖

4)典型SDRAM芯片介紹

典型的SDRAM(SynchronousDRAM)存儲(chǔ)器芯片HY57V651620B如圖5.20所示,它是1M?×?4Banks?×?16bit的SDRAM芯片,即內(nèi)部有4個(gè)1M?×?16bit的存儲(chǔ)器陣列,帶自刷新電路、16條數(shù)據(jù)線,11條地址線。由于是SDRAM,因此容量為211×2×16=222×16=4M×16=8MB。圖5.20DRAMHY57V651620B結(jié)構(gòu)及引腳信號(hào)

5)?S3C44B0X與SDRAMHY57V651620B的連接

SDRAMHY57V651620B可通過(guò)外部引腳BA1和BA0編碼選擇。SDRAM芯片的LDOM和UDOM為數(shù)據(jù)輸入/輸出屏蔽選擇引腳,而由表5.1可知S3C44B0X的DQM3~DQM0恰恰是屏蔽數(shù)據(jù)信號(hào)的引腳,因此相應(yīng)連接起來(lái)。S3C44B0X與SDRAMHY57V651620B的連接采用16位存儲(chǔ)器組成的形式如圖5.21所示。圖5.21S3C44B0X與HY57V651620B的連接示意圖

5.存儲(chǔ)器的編程應(yīng)用

1)對(duì)存儲(chǔ)器控制寄存器的配置編程

配置存儲(chǔ)器控制寄存器的程序段如下:

LDRR0,=SMRDATA

LDMIAR0,{r1-r13}

LDRR0,=0x01C80000 ;配置總線寬度與等待控制寄存器BWSCON的地址

STMIAR0,{R1-R13}

SMRDATA:

DCD0x22221210 ;設(shè)置BWSCON初始值,選擇總線寬度,Bank1和Bank3為6位,其余32位禁止等待

DCD0x00000600;Bank0通道控制寄存器BANKCON0(GCS0)初始化

DCD0x00000700 ;Bank1通道控制寄存器BANKCON1(GCS1)初始化

DCD0x00000700 ;Bank2通道控制寄存器BANKCON2(GCS2)初始化

DCD0x00000700 ;Bank3通道控制寄存器BANKCON3(GCS3)初始化

DCD0x00000700 ;Bank4通道控制寄存器BANKCON4(GCS4)初始化

DCD0x00000700 ;Bank5通道控制寄存器BANKCON5(GCS5)初始化

DCD0x00010000 ;Bank6通道控制寄存器BANKCON6(GCS6)初始化

;(EDODRAM(Tacc=1)

DCD0x00018000 ;Bank7通道控制寄存器BANKCON7(GCS7)初始化(未用)

DCD0x00860459 ;刷新控制寄存器REFRESH(REFEN=1,TREFMD=0,

;Trp=0,Trc=5,Tchr=3)

DCD0x0 ;Bank容量寄存器BANKSIZE:確定為32MB/32MB

DCD0x20 ;SDRAM模式寄存器設(shè)置寄存器MRSR6(CL=2)

DCD0x20 ;SDRAM模式寄存器設(shè)置寄存器MRSR6(CL=2)由于存儲(chǔ)器中的13個(gè)寄存器分布在從0x01C80000開(kāi)始的連續(xù)地址空間,因此也可以利用指令“STMIAR0,{R1-R13}”事先將配置好的寄存器的值依次寫(xiě)入到相應(yīng)的寄存器中,沒(méi)有必要一條指令配置一個(gè)寄存器。

2)用匯編語(yǔ)言編寫(xiě)對(duì)SDRAM的讀寫(xiě)操作

對(duì)于SDRAM的操作,可以在SDRAM所在地址范圍(0x0C000000~0xC7FFFFFF)的任意區(qū)域進(jìn)行讀或?qū)懙牟僮鳌?/p>

R_W_SDRAM:

LDRR2,=0x0C280000

LDRR3,=0x89ABCDEF

STRR3,[R2] ;將一個(gè)字0x89ABCDEF寫(xiě)入從地址0x0C280000開(kāi)始的

;SDRAM區(qū)域

LDRR3,[R2] ;從地址0x0C280000處讀取一個(gè)字到R3

LDRR2,=0x0C500000

LDRHR3,[R2] ;從地址0x0C500000處讀取一個(gè)半字

STRHR3,[R2],#2 ;地址加2后,讀取半字

LDRR2,=0x0C700000

LDRBR3,[R2] ;從地址0x0C700000處讀取一個(gè)字節(jié)

STRBR3,[R2],#1 ;地址加1后,向該地址寫(xiě)入一個(gè)字節(jié)

3)用C語(yǔ)言編寫(xiě)對(duì)SDRAM的讀寫(xiě)操作

#defineRWram(*(unsignedlong*)0x0C010200)

voidcRWramtest(void)

{

unsignedlong*ptr=0x0C010200;//定義一個(gè)長(zhǎng)指針并賦初值

unsignedshort*ptrh=0x0C010200;//定義一個(gè)短指針并賦初值

unsignedchar*ptrb=0x0C010200;//定義一個(gè)字符指針并賦初值

unsignedchartmpb; //定義一個(gè)字符變量

unsignedshorttmph; //定義一個(gè)短整型變量

unsignedlongtmpw; //定義一個(gè)長(zhǎng)整型變量*ptr=0x12345678;

tmpw=*ptr; //字長(zhǎng)讀

*ptr=tmpw+1; //字長(zhǎng)寫(xiě)

tmph=*ptrh; //半字

*ptrh=tmph+1; //半字

tmpb=*ptrb; //字節(jié)

*ptrb=tmpb+1; //字節(jié)

}5.4.2直接存儲(chǔ)器存儲(chǔ)DMA組件

1.DMA組件概述

S3C44B0X內(nèi)部集成了4個(gè)DMA控制器,其中2個(gè)通用DMA控制器ZDMA或GDMA,用于連接三星系統(tǒng)總線(SSB);另2個(gè)稱(chēng)為橋DMA,即BDMA0和BDMA1,用于連接SSB和SPB(外圍總線)之間的接口層。

ZDMA控制器可以用于從存儲(chǔ)器到存儲(chǔ)器、從存儲(chǔ)器到固定目標(biāo)的I/O設(shè)備以及從I/O設(shè)備到存儲(chǔ)器之間的數(shù)據(jù)傳輸。另外的2個(gè)BDMA控制器可用于從存儲(chǔ)器到I/O設(shè)備或者從I/O設(shè)備到存儲(chǔ)器之間的數(shù)據(jù)傳輸。這里的I/O設(shè)備意味著外設(shè),連接于SPB,如SIO、IIS及UART等。

DMA的主要特點(diǎn)是它可以在兩地自動(dòng)傳輸數(shù)據(jù)而不需要CPU的干涉。ZDMA和BDMA操作均可以通過(guò)軟件、內(nèi)部外設(shè)的請(qǐng)求或外部請(qǐng)求引腳(nXDREQ0,nXDREQ1)來(lái)啟動(dòng)。

與DMA有關(guān)的寄存器包括ZDMA控制寄存器、ZDMA初始化地址和計(jì)數(shù)寄存器、BDMA控制寄存器、BDMA初始化地址和計(jì)數(shù)寄存器等。

2.DMA特殊功能寄存器

1)?BDMA的控制寄存器

BDMA的控制寄存器0(BDCON0)和控制寄存器1(BDCON1)主要用于對(duì)DMA通道的控制,且可讀/寫(xiě)。其在系統(tǒng)中的占用地址分別為0x01F80000、0x01F80020,復(fù)位后的值均為0x00,其各位的含義見(jiàn)表5.7。BDMA0的初始源地址寄存器、初始目標(biāo)地址寄存器及初始計(jì)數(shù)寄存器分別為BDISRC0、BDIDES0及BDICNT0,分別存放源操作數(shù)起始地址、目標(biāo)操作數(shù)起始地址及操作數(shù)的個(gè)數(shù),可讀/寫(xiě);在系統(tǒng)中占用地址分別為0x01F80004、0x01F80008、0x01F8000C,復(fù)位后的值均為0x00000000。

BDMA0的當(dāng)前源地址寄存器、當(dāng)前目標(biāo)地址寄存器及當(dāng)前計(jì)數(shù)寄存器分別為BDCSRC0、BDCDES0及BDCCNT0,分別存放源操作數(shù)起始地址、目標(biāo)操作數(shù)起始地址及操作數(shù)的個(gè)數(shù),只讀;在系統(tǒng)中占用地址分別為0x01F80010、0x01F80014、0x01F80018,復(fù)位后的值均為0x00000000。

BDMA1的初始化源地址寄存器、初始目標(biāo)地址寄存器及初始計(jì)數(shù)寄存器分別為BDISRC1、BDIDES1及BDICNT1,分別存放源操作數(shù)起始地址、目標(biāo)操作數(shù)地址及操作數(shù)的個(gè)數(shù),可讀/寫(xiě);在系統(tǒng)中占用地址分別為0x01F80024、0x01F80028、0x01F8002C,復(fù)位后的值均為0x00000000。

BDMA1的當(dāng)前源地址寄存器、當(dāng)前目標(biāo)地址寄存器及當(dāng)前計(jì)數(shù)寄存器分別為BDCSRC1、BDCDES1及BDCCNT1,分別存放源操作數(shù)起始地址、目標(biāo)操作數(shù)地址及操作數(shù)的個(gè)數(shù),只讀;在系統(tǒng)中占用地址分別為0x01F80030、0x01F80034、0x01F80038,復(fù)位后的值均為0x00000000。

2)?BDMA的初始源/當(dāng)前源地址寄存器

BDMA的初始源地址寄存器0(BDISRC0)、初始源地址寄存器1(BDISRC1)、當(dāng)前源地址寄存器0(BDCSRC0)及當(dāng)前源地址寄存器1(BDCSRC1)的各位含義見(jiàn)表5.8。3)?BDMA的初始/當(dāng)前目標(biāo)地址寄存器

BDMA的初始目標(biāo)地址寄存器0(BDIDES0)、初始目標(biāo)地址寄存器1(BDIDES1)、當(dāng)前目標(biāo)地址寄存器0(BDCDES0)及當(dāng)前目標(biāo)地址寄存器1(BDCDES1)的各位含義見(jiàn)表5.9。4)?BDMA的初始/當(dāng)前計(jì)數(shù)寄存器

BDMA的初始計(jì)數(shù)寄存器0(BDICNT0)、初始計(jì)數(shù)寄存器1(BDICNT1)、當(dāng)前計(jì)數(shù)寄存器0(BDCCNT0)及當(dāng)前計(jì)數(shù)寄存器1(BDCCNT1)的各位含義見(jiàn)表5.10。 5.5S3C44B0X內(nèi)部輸入輸出類(lèi)

可編程組件及應(yīng)用編程

5.5.1輸入輸出端口組件及應(yīng)用

S3C44B0X具有71個(gè)通用可編程多功能I/O引腳,其中兩個(gè)9位輸入輸出端口GPE和GPF,兩個(gè)8位輸入輸出端口GPD和GPG,一個(gè)16位輸入輸出端口GPC,一個(gè)10位輸出端口GPA以及一個(gè)11位輸出端口GPB。

1.端口功能

端口功能見(jiàn)表5.11~5.13。

由表5.13可知端口一般都是多功能的,因此在使用I/O之前,必須對(duì)I/O端口進(jìn)行相應(yīng)設(shè)置。這些功能的設(shè)置都是通過(guò)對(duì)應(yīng)寄存器寫(xiě)入來(lái)完成的,包括端口配置寄存器、端口數(shù)據(jù)寄存器、端口上拉寄存器、特殊上拉電阻控制寄存器、外部中斷控制寄存器以及外部中斷掛起寄存器等。

2.端口配置寄存器

每個(gè)端口都有一個(gè)端口配置寄存器,端口A~G對(duì)應(yīng)的配置寄存器分別為PCONA~PCONG,可讀/寫(xiě),其在系統(tǒng)中占用的地址分別為0x01D20000、0x01D20008、0x01D20010、0x01D2001C、0x01D20028、0x01D20034、0x01D20040,初始值分別為0x3FF、0x7FF、0x3AAAAAAAA、0x0000、0x00、0x0000、0x0。不同端口配置寄存器的各位含義不同。

對(duì)于端口A:PCONA為10位,每1位對(duì)應(yīng)一個(gè)引腳,當(dāng)PCONAi的值為0時(shí),PAi設(shè)置為第1功能(通用輸出端口);當(dāng)PCONAi的值為1時(shí),PAi設(shè)置為第2功能(地址線輸出)。對(duì)于端口B:PCONB為11位,每1位對(duì)應(yīng)一個(gè)引腳,當(dāng)PCONBi的值為0時(shí),PBi設(shè)置為通用輸出端口輸出(第1功能);當(dāng)PBi的值為1時(shí),設(shè)置為第2功能。

對(duì)于端口C:PCONC為32位,每2位對(duì)應(yīng)一個(gè)引腳,其值為00時(shí)表示第1功能輸入;其值為01時(shí)表示第1功能輸出;其值為10時(shí)表示第2功能(數(shù)據(jù)線);其值為11時(shí)表示第3功能。

對(duì)于端口D:PCOND為16位,每2位對(duì)應(yīng)一個(gè)引腳,其值為00時(shí)表示第1功能輸入;其值為01時(shí)表

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論