S3C44B0X硬件结构及功能_第1页
S3C44B0X硬件结构及功能_第2页
S3C44B0X硬件结构及功能_第3页
S3C44B0X硬件结构及功能_第4页
S3C44B0X硬件结构及功能_第5页
已阅读5页,还剩116页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章S3C44B0X硬件结构及功能

本章主要介绍了S3C44B0X的体系结构及各种功能接口,主要包括以下内容:存储器管理系统总线及时钟中断管理DMA、I/O口、定时器、A/D、I2C、SPI等接口结构4.1S3C44BOX简介

SAMSUNG公司推出的16/32位RISC处理器S3C44BOX为手持设备和一般应用提供了高性价比和高性能的微控制器解决方案。为了降低成本,S3C44BOX提供了丰富的内置部件,包括:8KBCache和内部SRAM,LCD控制器,带自动握手的2通道UART,4通道DMA,系统管理器(片选逻辑,FP/EDO/SDRAM控制器),带PWM功能的5通道定时器和一个内部定时器,I/O端口,RTC,8通道10位ADC,ІІC—BUS接口,ІІS—BUS接口,同步SIO接口和PLL倍频器。

S3C44BOX是使用ARM7TDMI内核,采用0.25μmCMOS工艺制造。它的低功耗和全静态设计特别适用于对成本和功耗敏感的应用。同样地,S3C44BOX还采用了一种新的总线结构,即SAMBAII(三星ARMCPU嵌入式微处理器总线结构)。S3C44BOX的杰出特性是它的CPU核,是由ARM公司设计的16/32位ARM7TDMIRISC处理器(66MHz)。它包括了Thumb代码压缩器,一个片上的ICE断点调试支持和一个32位的硬件乘法器。S3C44BOX通过提供全面的、通用的焉上外设,大大减少了系统中除处理器以外的元器件配置,从而使系统的成本大为降低。S3C44BOX集成的各种片上功能如下:(1)2.5VARM7TDMI内核,带有8KBCache;(2)可选的内部SRAM;(3)LCD控制器(最大支持256色DSTN,LCD具有专用DMA);(4)2通道UART带有握手协议(支持IrDA1.0,具有16-byteFIFO);(5)1通道SIO;(6)2个通用DMA;(7)2个外设用DMA,具有外部请求引脚;(8)外部存储控制器(片选逻辑,FP/EDO/SDRAM控制器);(9)5个PWM定时器和1通道内部定时器;(10)看门狗定时器;(11)71个通用I/O口;(12)8个外部中断源;(13)具有日历功能的RTC;(14)8通道10位ADC;(15)1个多主IIC总线控制器;(16)1个通道IIS总线控制器;(17)片上PLL时钟产生器。1.S3C44BOX的特性(1)体系结构。S3C44BOXR的体系结构特性如下:集成了手持设备和通用嵌入式系统应用的解决方案;16/32位RISC体系结构和ARM7TDMI处理器内核强大的指令体系;Thumb代码压缩机,最大化代码密度同时保持了32位指令的性能;基于JTAG的片上集成ICE调方式支持解决方案;32×8位硬件乘法器;实现低功耗SAMBAII的新型总线结构。(2)系统管理器。S3C44BOX系统管理器特性如下:支持大/小方式;寻址空间:每Bank32MB(共256MB);支持每Bank可编程8/16/32位数据总线宽度;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存储器和内部SRAM。S3C44BOX的Cache存储器和内部SRAM特性如下:一体化的8KBCache;未用的Cache空间用来作为0/4/8KB的SRAM存储空间;支持LRU(近期最少使用)替换算法;采用保持主存储器与Cache内容一致性的策略;写存储器具有4线深度;当Cache错误发生时,采用“请求数据优先填充”技术。(4)时钟和电源管理。S3C44BOS的时钟和电源管理特性如下。低功耗。片上PLL使处理器工作时钟最大达到66MHz。可以通过软件设置各功能模块的输入时钟。电源模式:正常、慢、空闲和停止模式。正常模式:正常、慢、空闲和停止模式。慢模式:不加PLL的低时钟频率模式;空闲模式:只停止CPU的时钟;停止模式:停止所有的时钟。⑤通过EINT[7:0]或RTC报警中断从停止模式唤醒。(5)中断控制器。S3C44BOX的中断控制器特性如下:30个中断源(看门狗定时器,6个定时器,6个定时器,6个UART,8个外部中断,4个DMA,2WHRTC,1个ADC,1个IIC,1个SIO);采用向量化的IRQ中断模式以减少中断的延迟;电平/边沿模式触发外部中断;电平/边沿模式具有可编程的优先级;支持FIQ为紧急的中断请求进行服务。(6)定时器和PWM(脉宽调制)。S3C44BOX定时器和PWM特性如下:通道16位具有PWM功能的定时器,1通道16位内部定时器(可进行基于DMA或中断的操作);可编程的占空比周期,频率,和优先级;产生死区;支持外部时钟源。(7)PTC(实时时钟)。S3C44BOXRTC特性如下:充分的时钟特性:毫秒、秒、分钟、小时、日、星期、月、年;32.768kHz时钟;定时警报,可用于唤醒CPU;时钟节拍中断。(8)通用I/O口。S3C44BOX通用I/O口特性如下:8个外部中断口;71个多功能输入输出口。

(9)UART(通用异步串行通信)。S3C44BOXUART特性如下:2通道UART,可进行基于DMA可中断的操作;支持5位,6位,7位或8位串行数据传输/接收;支持硬件握手功能;可编程的波特率;支持IrDA1.0(115.2Kb/s);支持用于测试的回馈模式;每个通道具有2个内部32B的FIFO分别用于输入输出。(10)DMA(直接存储器操作)控制器。S3C44BOXDMA控制器特性如下2通道通用DMA控制器(不需要CPU干预)。2通道DMA桥(外设DMA)控制器。支持I/O到存储器,存储器到I/O,I/O到I/O的6种DMA请求:软件,4个内部功能模块(UART,SIO,定时器,IIS)和外部引脚。在同时发生的多个DMA之间具有可编程的优先级顺序。采用触发式的传输模式以提高FPDAM,EDODRAM和SDRAM的数据传输速率。支持在外部设备到存储器和存储器到外部设备之间采用fly-by模式。(11)A/D转换器。S3C44BOX的A/D转换器特性如下:8通道的ADC;最大100KSPS/10位。(12)LCD控制器。S3C44BOX的LCD控制器特性如下:支持彩色/黑白/灰度LCD屏;支持单路扫描和双路扫描;支持虚拟显示屏功能;系统存储器用来作为显示存储器;用专门的DMA从系统存储器中获得图像数据;可编程的屏幕大小;灰度等级:16级灰度;256种颜色。(13)看门狗定时器。S3C44BOX的看门狗定时器特性如下:16位的看门狗定时器;在定时器溢出时发出中断请求或系统复位;(14)IIC总线接口。S3C44BOX的IIC总线接口特性如下:1通道多主IIC总线,可进行基于中断的操作模式;可进行串行,8位,双向数据传输,标准模式速度达到100Kb/s,快速模式达到400kb。(15)IIS总线接口。S3C44BOX的IIS总线接口特性如下:1通道章频IIS总线接口,可进行基于DMA的操作;串行,每通道8/16位数据传输;支持MSB-justified数据格式。(16)SIO(同步串行I/O)。S3C44BOX的SIO特性如下:1通道SIO,可进行基于DMA或中断的操作;可编程的波特率;支持8位串行数据的传输和接收操作。(17)工作电压范围。S3C44BOX的工作电压范围如下:内核2.5V,I/O口:3.0~3.6V。(18)工作频率。S3C44BOX的最大工作频率为:66MHz。(19)封装。S3C44BOX的封装形式为:160LQFP/160FBGA。2.体系结构图体系结构图S3C44BOX结构如图表4—1所示。图4—1S3C44BOX结构图引脚介绍S3C44BOX引脚分布如图4—2所示。图4—2S3C44BOX策处理器管脚定义图引脚信号描述如表4—1所示。4.2存储器管理4.2.1S3C44BOX存储系统的特征S3C44BOX的存储系统具有以下一些主要特性:支持数据存储的大、小端选择(通过外部引脚进行选择);有大端模式和小端模式。地址空间具有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所示是复位后的存储器映射表,Bank6/Bank7存储器的地址表如表4—2所示。1、存储器的大/小端模式ENDIAN第一存储器的大/小端模式,当ENDIAN为L时则使用大端模式,大/小端模式之所以存在是因为当在存储器中存储不同字长的数据时,大/小端模式定义了不同长度的数据类型的对齐方式。因为Bank0是系统自举ROM存储体,所以必须在访问ROM之前定义Bank0的总线宽度见表4—3。其他存储体的总线宽度只能在系统复位后由程序进行设定,由地址为0x01c8000的特殊寄存器BWSCON的相应位决定。2、存储器(SROM,DRAM,SDRAM)地址引脚连接存储器地址引脚连接如表4—4所示。由于作用16位数据总线,所以将存储器的A0与S3C44BOX的A1对应连接在一起。存储地址引脚8位数据总线下的S3C44B0X地址16位数据总线下的S3C44B0X地址32位数据总线下的S3C44B0X地址A0A0A1A2A1A1A2A3A2A2A3A4A3A3A4A5┇┇┇┇3、典型系统中存储器的分配情况典型系统中存储器分配情况如表4—5所示。只要将CPU上的相应Bank连线接到外设芯片的片选引脚上,便可以根据相应的地址进行存储器或外设操作了。在本系统中,存储器的配置依照PC的结构:使用Bank0上的两片512KB×2存储器来放置系统BIOS,系统上电以后,PC指针自动指向Bank0的第一个单元,开始进行系统自举。系统自举完成以后,便从硬盘中将系统文件和用户应用程序复制到SDRAM内存中执行。Bank1上接16MB非线性Flash,当作系统硬盘使用,可以构造文件系统,存放海量数据。用SDRAM当作系统内存,只有Bank6/Bank7能支持SDRAM,所以将SDRAM接在Bank6H。如果同时使用Bank6/Bank7,则要求连接相同容量的存储器,而且其地地址空间在物理上是连续的。4.2.2寄存器定义(1)BWSCON总线宽度和等待状态寄存器。BWSCON寄存器主要用来设置外接存储器的总线宽度和等待状态。在BWXCON中,除了Bank0,对其他7个Bank都各对应有4个相关位的设置,分别为STx,WSx,DWx。STx位决定SRAM映射在Bankx时是否采用UB/LB。0:不采用,1:采用。WSx位决定Bank上等待的状态。0:禁止等待,1:使能等待。DWx中的确位决定Bankx上的总线宽度。00:8位,01:16位,10:32位。DW0位对应Bank0的总线宽度,但这里它是只读的,其中00=8位,01=16位,10=32位。设置是通过OM[0:1]脚电平决定总线宽度。(2)BANKCON。S3C44BOX具有8个BANKCONn寄存器,分别对应着Bank—BANCONn寄存器针对操作时序进行设置,如表4—6所示。由于Bank6Bank7可以作为FP/EDO/SDRAM等类型存储器的映射空间,因此BANKCON6和BANKCON7与其他Bank的相应寄存器有所不同。其中MT位定义了存储器的类型,如表4—7所示。MT的取值定义了该寄存器余下几位的作用。例如当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模式设置寄存器定义如表4—11所示。4.3时钟和功耗管理4.3.1概述S3C44B0X的时钟产生器可以为CPU产生要求的时钟信号,同样也为外设提供了时钟信号。时钟产生器可以通过软件来控制是否为每个外部设备模块提供时钟信号,或者切断与外部设备的联系,以减少功耗。同样在软件的控制下,S3C44B0X提供各种功耗管理办法来为各种应用提供最优化的功耗方案。S3C44B0X的时钟源可以用外部晶体来产生,也可以直接输入外部时钟,这由OM[3:2]的状态决定。M[3:2]的状态在nRESET的上升沿由OM3和OM2脚的电平决定。M[3:2]=00CrystalclockM[3:2]=01外部时钟。其它测试模式在复位后PLL启动,但在用S/W指令设置PLLCON为有效的值之前,PLLOUTPUT(FOUT)不能使用,这时FOUT直接输出Crystalclock或外部时钟。如果S3C44B0X的PLL的时钟源使用晶体,这时EXTCLK能作为Timer5的时钟源TCLK。S3C44B0X中的功耗管理提供5种模式:1.正常模式正常模式下,时钟发生器提供时钟给CPU,并同时提供给S3C44B0X的外设。在这种情况下,当所有的外设都开启工作时,处理器所消耗的功耗最大。用户可以通过软件来控制外事的操作模式。例如:如果定时器和DMA不需要时钟,则用户可以断开定时器和DMA的时钟供给以降低功耗。2.慢速模式慢速模式是一种非倍频模式。与正常模式下不同,慢速模式直接采用外部时钟作为S3C44B0X的主工作时钟,而不使用内部倍频器。在这种情况下,功耗的大小仅依据于外部时钟的频率的大小。PLL部件所消耗的功耗不用计算在内了。3.空闲模式空闲模式下仅断开对CPU内核的时钟供给,而保留所有对于外部设备的时钟供给。在空闲模式下,CPU内核的功耗可以减去。任何中断请求都会使CPU从空闲模式中醒来。4.停止模式停止模式通过禁止PLL来冻结所有CPU内核、外设的时钟。这时的功耗大小仅由S3C44B0X内部的漏电流大小决定,这个电流一般小于10uA。要使CPU从停止模式中醒来,可以通过外部中断实现。5.LCD的SL空闲模式SL空闲模式的进入将导致LCD控制器开始工作。在这种情况下,除了LCD控制器以外CPU内核和其它外设的时钟都停止了。因此,SL空闲模式下的功耗比空闲模式的功耗小。4.3.2寄存器定义1.PLL控制寄存器该寄存器设置PLL参数.PLL输出频率计算公式如下:Fpllo=(m*Fin)/(p*2s)

其中m=(MDIV+8),p=(PDIV+2),s=SDIV,Fpllo必须大于20MHZ且少于66MHZ,Fpllo*2s必须少于170MHZ,Fin/p推荐为1MHZ或大于,但小于2MHZ,其中MDIV、PDIV、SDIV定义如表4-12所示。2.时钟控制寄存器时钟控制寄存器如表4-13所示。PLLCON位描述初始状态MDIVPDIVSDIV[19:12][9:4][1:0]主分频值预分频值后分频值0x380x080x0CLKCON位描述初始状态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的钟控,设置为1,允许使用EINT[4:7]的中断。0=禁止1=允许1时钟控制寄存器表UART1[9]控制UART1block的钟控。0=禁止1=允许1RART0[8]控制UART0block的钟控。0=禁止1=允许1BDMA0,1[7]控制BDMAblock的钟控,如果BDMA关断,在外设总线上的外设不能存取。0=禁止1=允许1LCDC[6]控制LCDCblock钟控0=禁止1=允许1SIO[5]控制SIOblock钟控0=禁止1=允许14.4CPUWrapper和总线特性

4.4.1概述处理器wrapper包括一个cache、写入缓冲器和CPU内核。总线仲裁逻辑决定每个总线占用者的优先权。处理器wrapper有一个8k直接的内部存储器。内部存储器可以以3种方式采用。8k字节的存储空间作为8k字节的统一(指令或数据)cache(高速缓冲存储器)。内部存储器可以用作一个4k字节的统一cache和一个4k字节的内部SRAM。内部存储器可以整个地用作8k字节的内部SRAM。内部统一(指令或数据)cache采用4种方式与某个4个字(16个字节)的行建立链接结构.它采用一种写穿式(write-through)的原则保持数据的一致性。当在cache中找不到相应的内容(称为cachemiss),4个字的存储内容从外部存储器连续地取得。它采用一种LRU(最近使用最少)算法来提升命中的比率。统一cache通过有区别的方式来处理指令和数据。内部SRAM主要用来减少ISR的执行时间。由于内部SRAM具有最短的操作时间,因此能够减少ISR的执行时间。当然ISR在SRAM运行也是非常有效率的因为大多数的ISR代码都会引起cachemiss。总线仲裁逻辑可以决定总线占用者的优先级.总线仲裁逻辑支持一种round-robin优先级模式和一种固定的优先级模式。同样LCD_DMA,BDMA,ZDMA,nBREQ(外部总线控制器)之间的优先级可以通过软件来修改。4.4.2内部SRAMS3C44B0X具有一个最小8KB的4组相连cache或内部SRAM。如果内部SRAM为4KB,另外4KB内部存储器可以用来作为2组相连cache。内部SRAM的存储器操作周期为1MCLK。在每一个组的存储空间内,地址是连续增加的,在TAG/LRU中的地址按照16字节增加。不要对内部地址空间:0x10003004~0x1000300f进行操作。SYSCFG配置寄存器如表4-16所示。4.4.3总线优先级在S3C44B0X中,有7种总线master;LCD_DMA;BDMA0;BDMA1;ZDMA0;ZDMA1;Nbreq(外部总线master);CPUwrapper。复位之后,这些总线master的优先级排列如下:

DRAM刷新控制器;LCD_DMA;ZDMA0,1;BDMA0,1;外部总线控制器;写缓冲区;Cache和CPU;LCD_DMA,ZDMA,BDMA之间的总线优先级是可编程的,可以通过SBUSCON寄存器来设置。如果不考虑SBUSCON的设置CPUwrapper始终具有最低的优先级。Round-robin优先级模式或固定优先级模式是可以选择的。在round-robin优先级模式中,已经被服务过依次的总线占有者将具有最低的优先级。通过这种方式,使得所有的master都具有相同的优先级。在固定优先级模式下,每个总线master的优先级都写在SBUSCON中,SBUSCON寄存器决定第1到第4个优先级的总线master。4.4.4写缓冲区操作写缓冲区操作,S3C44B0X有4个写缓冲区寄存器来提高存储器的写性能。当写缓冲器模式使能,CPU不再将数据直接写入外部存储器而是将数据写入写缓存区。即便是外部总线已经有其它master占用,例如DMA操作的情况下,也如此。写缓冲区模块在系统总线没有被别的更高优先级的master占用时,将数据写入外部存储器。这样,CPU的性能就提高了,因为CPU不需要一直等到写操作结束。写缓冲区具有4个寄存器。每个寄存器包括一个32位数据区域,28位的地址区域和2位的状态区域,如图4-4所示。4.4.5特殊寄存器①SYSCFG寄存器SYSCFG寄存器控制了系统的总体操作,如表4-17所示。②SBUSCON寄存器SBUSCON寄存器是系统总线优先级控制寄存器,如表4-18所示。4.5DMA控制器4.5.1简述1.DMA控制器结构S3C44B0X有4路DMA控制器,其中两路称为ZDMA(GeneralDMA)被连到SSB(SamsungSystemBus)总线上,另外两路称为BDMA(BridgeDMA)是SSB和SPB(SamsungPeripheralBus)之间的接口层,相当于一个桥,因此称为桥DMA。 ZDMA和BDMA都可以由指令启动,也可以有内部外设和外部请求引脚来请求启动。ZDMA、BDMA结构如图4-5和图4-6所示。ZDMA用来在存储器到存储器、存储器到I/O存储器、I/O装置到存储器之间传输数据。BDMA控制器只能在连到SPB上的I/O外设(如UART,IIS和SIO)与存储器之间传输数据。

ZDMA最大的特性是on-the-fly模式,on-the-fly模式有不可分割的读写周期,在这点上ZDMA与普通的DMA不同,从而可以减少在外部存储器和外部可寻址的外设之间DMA操作的周期数。 对于ZDMA,S3C44B0X有一个4字的FIFO缓冲来支持4字突发DMA传输,而BDMA不支持突发DMA传输,因此存储器之间的传输数据最好用ZDMA传输,来提供高的传输速度。2.外部DMAREQ/ACK协议对于ZDMA,有四种类型的外部DMA请求/应答协议:①握手模式(HandshakeMode)一个单独的应答对应一个单独的DMA请求,在该模式,DMA操作期间的读写周期不可分割,因此在一个DMA操作完成前,不能把总线让给其它总线控制器使用。一次nXDREQ请求引起一次DMA传输(可以是一个字节,一个半字或一个字)。②单步模式(SingleStepMode)单步模式意味着一次DMA传输有两个DMA应答周期(产生两个应答信号nXDACK)指示DMA读和写周期,主要用与测试和调试模式,在读写周期之间,总线控制权可以让给其它总线控制器。③连续模式(WholeServiceMode)在该模式,一次DMA请求将产生连续的DMA传输,直到规定的DMA传输数传输完,在DMA传输期间,nXDACK一直有效,DMA请求信号被释放。并且在每次传输一个数据单元后,释放一次总线控制权,以便其它总线控制器有机会可以占用总线。④手动模式(DemandMode)在该模式,只要DMA请求信号一直有效,DMA传输就持续进行,并且一直占用总线控制权,因此应该预防传输周期超过规定的最大时间。3.DMA传输模式DMA有三种传输模式:单位传输模式块传输模式On_the_fly块传模式。Unit传输模式。1个单位读,然后1个单位写。Block传输模式。4个字突发读,然后4个字突发写,因此传输的数据个数应当是16字节的倍数。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初始计数寄存器ZDCSRC0/1是ZDMA0/1当前源地址寄存器ZDCDES0/1是ZDMA0/1当前目标地址寄存器ZDCCNT0/1是ZDMA0/1当前计数寄存器③BDMA控制寄存器BDCON0/1是BDMA0/1控制寄存器④BDMA其他寄存器BDISRC0/1是BDMA0/1初始源地址寄存器BDIDES0/1是BDMA0/1初始目标地址寄存器BDICNT0/1是BDMA0/1初始计数寄存器BDCSRC0/1是BDMA0/1当前源地址寄存器BDCDES0/1是BDMA0/1当前目标地址寄存器BDCCNT0/1是BDMA0/1当前计数寄存器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)每组端口都可以通过软件配置寄存器来满足不同系统和设计的需要,在运行程序之前必须先对每一个用到的引脚的功能进行设置,如果某些引脚的复用功能没有使用,那么可以将该引脚设置成I/O口。

如表4-27~表4-33列出了7个端口的引脚定义。4.6.2端口控制寄存器①端口配置寄存器(PCONA-G)由于多数端口都是多功能口,因此,需要用“端口配置寄存器PCONn”来设置每个引脚工作在哪一个功能模式下如表4-34所示,表中的功能1到功能4如表4-27~表4-33所示。②端口数据寄存器(PDATA-G) 当端口被设置为输出脚时,输出数据的方法就是将数据写入到PDATn的相应位中;当端口被设置位输入脚时,读入数据的方法就是将PDATn中的相应位读出。③端口上拉设置寄存器(PUPC-G) 端口上拉寄存器用来设定PC-PG这几组端口是否具有内部上拉。当PUPn的对应位为0时,该引脚上的上拉使能,当为1时,该引脚上的上拉禁能。4.外部中断控制寄存器该寄存器是为PG的第3功能——外部中断输入口功能设置的,该寄存器可用来设置EXINT(外部中断)请求输入的模式:低电平触发、高电平触发、下降沿触发、上升沿触发或是边沿触发。下面我们以PF口的相关寄存器为例进行介绍,PF的寄存器有3个:PCONF,PDATF,PUPF。如表4-35~表4-37所示PF端口的相关寄存器信息4.7PWM定时器和看门狗定时器4.7.1概述S3C44B0X具有6个16位定时器,每个定时器可以按照中断模式或DMA模式工作。定时器0,1,2,3和4具有PWM功能(脉宽调制)。定时器5是一个内部定时器不具有对外输出口线。定时器0具有死区发生器,通常用于大电流设备应用。S3C44B0X的看门狗定时器用来在由于错误如干扰和系统错误造成的程序运行打乱时,恢复正常操作它也能使用一个正常的16位定时器来请求中断服务。看门狗定时器产生复位信号(128个系统时钟周期)。…..特性6个16位定时器可以工作在中断模式或 DMA模式;3个8位预分频器和2个5位分割器和1个4位分割器;输出波形的占空比可编程控制(PWM)自动加载模式或单触发脉冲模式;死区产生器;支持外部中断源;看门狗定时器溢出产生复位信号。4.7.2PWM定时器操作1.预分频器和分割器如图4-8所示,定时器0和定时器1分享同一个8位的预分频器,定时器2和3分享一个8位预分频器,定时器4和5分享一个8位预分频器。除了定时器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。每个定时器从时钟分割器的输出得到它们自己的时钟源,时钟分割器则从对应的8位预分频器得到时钟源。8位预分频器是可编程的,它的频率通过MCLK除以保存在TCFG0和TCFG1寄存器中除数的结果设定。8位预分频器和一个独立的4位分割器组合起来可以产生如表4-38所示的频率定时器时钟源输出。2.基本定时器操作每个定时器具有一个倒计时器,实际上是一个通过定时器时钟源驱动的16位倒计时寄存器TCNTn。当倒计时数到0,定时器中断请求就产生了,这个中断通知CPU定时器定时已经完成。当定时器倒计时数到达0,寄存器TCNTBn的对应值就会自动地载入到倒计时器从而继续下一次操作。 但是,如果定时器停止,例如:在定时器运行模式下,清除了寄存器TCONn中的定时器使能位,那么TCNTBn的值就不会被重新载入到倒计时器中。定时器使能后,定时计数缓冲区寄存器(TCNTBn)具有一个初始值,用来载入到倒计时器计数器TCNTn。定时器的比较缓冲区寄存器(TCMPBn)具有一个初始值,用来载入到比较寄存器TCMPn与倒计时值相比较。TCNTBn和TCMPBn这两个缓冲区的应用使定时器能够使定时器在频率和占空比变化时,仍然产生一个稳定的输出。定时器(除了定时器5)都具有TCNTBn,TCNTn,TCMPBn和TCMPn。TCNTBn和TCMPBn的值在定时器值达到0时分别载入TCNTn和TCMPn。当TCNTn达到0时,如果中断使能,中断请求将会产生。(TCNTn和TCMPn是内部寄存器,TCNTn寄存器的值可以通过TCNTOn寄存器读出)。如图4-8所示。4.7.3PWM定时器控制寄存器1.定时器配置寄存器0(TCFG0)TCFG0主要是配置3个8位预分频器值和死区长度值。定时器输入时钟频率=MCLK/{预分频值+1}/{分割值}其中预分频值为0~255,分割值为2,4,8,16,32。如表4-39所示。2.

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

如表4-41所示:TCON位描述初始值Timer5自动重载开/关[26]这位确定定时器5的自动加载的开/关0=不自动加载1=自动加载0Timer5手动更新[25]这位确定定时器5的手动更新0=无操作1=更新TCNTB50Timer5启动/停止[24]这位确定定时器5的启动/停止0=停止1=启动0Timer4自动重载开/关[23]这位确定定时器4的自动加载的开/关0=不自动加载1=自动加载0Timer4输出反转开/关[22]这位确定定时器4输出反转器的开/关0=不反转1=反转TOUT40Timer4手动更新[21]这位确定定时器4的手动更新0=无操作1=更新TCNTB4,TCMPB40Timer4启动/停止[20]这位确定定时器4的启动/停止0=停止1=启动04.定时器n计数缓冲区寄存器和比较缓冲区寄存器(TCNTBn,TCMPBn)TCMPBn是16位定时器Timer0~Timer4比较缓冲器寄存器;TCNTBn是16位定时器Timer0~Timer5计数缓冲寄存器;TCNTOn是16位定时器Timer0~Timer5观察寄存器.他们初值都为0。在以上的寄存器中,定时器n计数/比较缓冲寄存器可读写寄存器,定时器n计数观察寄存器为只读寄存器。4.7.4看门狗定时器1.概述S3C44B0X的看门狗定时器用来在由于错误如干扰和系统错误造成的程序运行打乱时恢复正常操作,它也能使用一个正常的16位定时器来请求中断服务。看门狗定时器产生复位信号128个系统时钟周期。当S3C44B0X使用EmbeddedICE工作在调试模式时,看门狗定时器必须不工作。看门狗定时器能通过CPU核心信号(DBGACK信号)确定当前的模式是否在调试模式,一旦DBGACK信号有效,看门狗定时器的复位输出当定时器过期时不激活。结构如图4-14所示。2.看门狗定时器时钟频率看门狗时钟频率计算公式如下:

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

3.看门狗定时器寄存器包括以下种类寄存器:(1)看门狗定时器控制寄存器看门狗定时器控制寄存器定义如表4-42所示.(2)看门狗定时器数据寄存器WTDAT是一个16位寄存器,规定看门狗定时器超时周期。WTDAT的内容在初始操作时,不能自动加载进定时器计数寄存器。可是定时器计数寄存器在使用初始值0X8000第一次超时出现以后,WTDAT的值将自动加载进WTCNT。(3)看门狗定时器计数寄存器WTCNT是16位看门狗定时器计数寄存器,在第一次使用时,必须设置到初始值。4.8日历时钟4.8.1概述实时时钟(RTC)器件是一种能提供日历/时钟、数据存储等功能的专用集成电路,常用作各种计算机系统的时钟信号源和参数设置存储电路。 RTC具有计时准确、耗电低和体积小等特点特别适用于在各种嵌入式系统中记录事件发生的时间和相关信息,尤其是在通信工程、电力自动化工业控制等自动化程度较高领域的无人值守环境。随着集成电路技术的不断发展,RTC器件的新品也不断推出。这些新品不仅具有准确的RTC,还有大容量的存储器、温度传感器和A/D数据采集通道等,已成为集RTC、数据采集和存储于一体的综合功能器件,特别适用于以微控制器为核心的嵌入式系统。RTC器件与微控制器之间大都采用连线简单的串行接口,诸如I2C、SPI、MICROWIRE和CAN等串行总线接口。这些串口由2~3根线,分为同步和异步。4.8.2RTC时钟单元

RTC(RealTimeClock)单元能在系统断电时,通过备份电池来供电,RTC能通过ARM的STRB/LDRB指令传输8位BCD数据到CPU,该数据包括时、分、秒、小时、天、月和年,RTC使用一个外部32.768的晶体也能执行报警功能。 RTC功能框图如图4-15所示。特征:日历功能支持闰年解决了2000年问题独立的供电支持毫秒滴答时间中断作为RTOS核的时间滴答报警功能1.闰年产生器这个模块可以决定每个月的最后日期是28,29,30还是31,并可以根据是否是闰年来决定日期。由于8位的计数器只能表示2个BCD码,因此它不能判断00年究竟是不是闰年。例如它不能够满足1900年和2000年的差别。为了解决这个问题,S3C44B0X内的RTC模块中有一个固定的逻辑,用来支持2000年为闰年。请注意虽然2000年是闰年,但1900年不是闰年。因此,S3C44B0X中00代表2000年,而不是1900年。2.读/写寄存器要求设置RTCON寄存器的0位来表示读和写RTC模块中的寄存器。为了显示秒,分,小时,日期,月和年,CPU会从BCDSEC,BCDMIN,BCDHOUR,BCDDAY,BCDDATE,BCDMON,和BCDYEAR寄存器中读取数据。但是,由于多个寄存器的读取,可能产生1秒钟的偏离。例如,如果用户读取寄存器BCDYEAR到BCDMIN,假设结果为1959年,12月,31日,23点,59分。在用户读取BCDSEC寄存器时,如果结果是1~59,肯定没有问题。但如果结果是0,那么很有可能年、月、日、时、分已经变成了1960年1月1日0时0分,这就是上面所说的1秒偏离。解决的方法是,当读取到的BCDSEC等于0时,用户应该再读取一次BCDYEAR到BCDSEC的值。3.备用电池操作RTC逻辑模块可以通过一个备用电池供电。备用电池的阳极通过RTCVDD脚接至内部的RTC模块,即使系统电源关闭,也能够提供电能保证RTC模块正常工作。在系统电源关闭时,CPU和RTC逻辑模块之间的接口被锁住,使备用电池仅需驱动RTC的晶振电路和BCD计数器,从而使功耗降到最低。4.报警功能在掉电模式或正常工作模式下,RTC能够在指定的时间产生一个报警信号。在正常工作模式下,报警中断(ALMINT)被激活。在掉电模式下,电源管理苏醒信号也与ALMINT一样处于激活状态。RTC的报警寄存器:RTCALM可以决定报警的使能或禁止和报警时间的设置条件。5.节拍中断RTC节拍时间用于中断请求。TICNT寄存器具有一个中断使能位,同时其中的计数值用于中断。当计数值到达0时,节拍时间中断就会触发。中断的间隔时间计算如下:Period=(n+1)/128秒其中n为节拍时间计数值(1~127)。这个RTC时间节拍中断功能可以作为RTOS(实时操作系统)内核的时间节拍。如果节拍从RTC时间节拍产生,则RTOS内部与时间相关的功能将一直与实时时钟同步。6.循环复位功能循环复位功能可以通过RTC循环复位寄存器RTCRST来操作。你可以选循环边界时间(30,40,或50秒),在循环复位操作中,这个时间将加载到秒进位产生器,当秒计时到达该时间时就进位。例如,如果当前时间是23:37:47,循环边界选择为40秒,则循环复位操作将当前时间修改为23:38:00。注意:所有的RTC寄存器必须使用STRB,LDRB指令或char类型指针,以字节方式操作。4.8.3实时时钟寄存器定义实时控制寄存器(RTCCON)RTCCON寄存器包括4个位例如RTCEN,用来控制对BCD寄存器的读/写使能。CLKSEL,CNTSEL和CLKRST用来测试。RTCEN位可以控制所有CPU和RTC之间的所有接口,因此在RTC控制程序中,应当将它置1从而使得在系统复位之后能够读写这些寄存器。而在电源关闭之前,RTCEN位更改清0从而阻止无意中对RTC寄存器的写入。所有的RTC寄存器都应该以字节为单位进行操作。RTCALM寄存器决定了是否使能报警功能,以及报警时间。注意在掉电模式下,RTCALM寄存器通过ALMINT和PMWKUP产生报警信号,但在正常工作模式下只有ALMINT模式。ALMSEC~ALMYEAR为RTC秒、分钟、小时、日、月、年报警数据寄存器;BCDSEC~BCDYEAR为秒、分钟、小时、日、星期、月、年数据寄存器。RTCROUND是秒复位寄存器。TICNT为时间片计数寄存器,它包含时间片中断禁止/允许控制和时间片计数值。各控制寄存器如表4-43所示。4.9中断管理4.9.1概述S3C44B0X的中断控制器可以接收来自30个中断源的请求。中断控制器的作用,就是响应来自FIQ或IRQ的中断,并请求内核对中断进行处理。当有多个中断同时发生的时候,中断控制器要决定首先处理哪一个中断。4.9.2中断控制器1.中断模式ARM7TDMI有2种类型的中断模式,FIQ(快速中断请求)或IRQ(普通中断请求)。2.PSR的F位和I位PSR指ARM7TDMI处理器的程序状态寄存器。如果PSR的F位被设置为1,处理器将不接受来自中断控制器的FIQ。如果PSR的I位被设置为1,处理器将不接受来自中断控制器的IRQ。因此,为了使能中断相应机制,PSR的F位或I位必须被清0,同时INTMASK的相应位必须被清0。3.中断登记寄存器如果你将所有的中断源定义为IRQ中断,如果同一时刻发生了10个中断请求,可以通过读取中断登记寄存器来了解哪些中断发生了,并对产生的中断依次进行处理,这也就是通过软件的方式决定了中断服务的优先级。中断登记寄存器中的位显示了某个中断请求是否还未被处理。一旦某个登记位被置位,当PSR的I标志位或F标志位被清0时,中断服务程序就会启动执行。中断登记寄存器是一个只读寄存器,所以在服务程序中要想清除登记位时,要采用在I_ISPC或F_ISPC中相应位写入1的方式实现。4.INTMSK中断屏蔽寄存器如果该寄存器的某一个位被置1,则该位对应的中断响应被禁止了。如果某个中断在INTMSK寄存器的对应位为0,则这个中断发生时将会正常被响应。如果某个中断的在INTMSK的寄存器中的对应位为1,但是这个中断发生了,它的登记位还是会置位。如果全局屏蔽位被置1,那么当中断发生时,中断登记位还是会置位,但是所有的中断都不会得到服务。5.中断源在30个中断源中,有26个中断源提供给中断控制器。4个外部中断(EINT4/5/6/7)请求是通过“或”的形式提供为1个中断源送至中断控制器,因此,ISR(中断服务程序)要通过读取EXTINPND[3:0]寄存器来区别这4个中断源。它们的中断处理程序(ISR)必须在处理结束时将EXTINPND[3:0]中对应位写1来清除该位。2个UART错误中断占用一个中断源。中断源如表4-44

和图4-16所示。(1)中断请求寄存器INTPNDINTPND寄存器中的26个位对应着每一个中断源。如表4-46所示,当中断发生时,INTPND中相应的登记位就会置1,说明该中断还未被处理。中断服务程序中必须清除该登记位,从而使系统能够及时响应下一次中断。INTPND是一个只读寄存器,清除登记位的方式是向I_ISPC/F_ISPC的相应位写入“1”。在多个中断同时发生时,INTPND将所有发生的中断登记位都置1。虽然中断请求可以通过INTMSK寄存器屏蔽,但是如果被屏蔽的中断发生了,INTPND中的登记位仍然会被置1。(2)中断模式寄存器INTMODINTMOD寄存器中的26个位对应着每一个中断源。如表4-46所示,当INTMOD中的响应位设置为1,则ARM7TDMI内核将以FIQ(快速中断)模式响应此中断。否则,以IRQ(普通中断)模式响应。(3)中断屏蔽寄存器INTMSK在INTMSK中,除了全局屏蔽位,其余的26位依次对应着每个中断源。当INTMSK的某个屏蔽位为1同时该位对应的中断事件发生了,此时CPU事不会对中断请求进行响应的。如果屏蔽位为0,则CPU将对中断请求进行响应。如果全局屏蔽位为1,则所有的中断请求都不会被响应,但是当中断发生时,相应的登记位仍将被置1。INTMSK的位定义如表4-46所示。(4)IRQ矢量模式寄存器优先级产生模块包括5个单元,1个主单元和4个辅单元。每个辅单元管理6个中断源。主优先级产生单元管理4个辅单元和2个中断源。每个辅单元有4个可编程的优先级源sGn和2个固定优先级源sGKn。每个辅单元的4个中断源优先级由I_PSLV寄存器决定。另外2个固定源的优先级在6个源中是最低的。主优先级产生单元通过I_PMST寄存器决定4个辅单元和2个中断源之间的优先级。中断源INT_RTC和INT_ADC在26个中断源中优先级是最低的。如果几个中断请求同时发生,I_ISPR寄存器中将其中具有最高优先级的中断源对应位置1。(5)IRQ/FIQ中断服务寄存器I_ISPR/F_ISPR是IRQ/FIQ中断模式下的中断服务寄存器,I_ISPC/F_ISPC是IRQ/FIQ中断模式下的清除中断服务寄存器。I_ISPC/F_ISPC清除中断登记位(INTPND)。I_ISPC/F_ISPC也通知中断控制器,中断服务(ISR)已经结束。在某个中断的ISR结束时,该中断相应的登记位也必须被清零。要将INTPND的某一位清零,方法是往I_ISPC/F_ISPC的相应位写入1。

在清除I_ISPC/F_ISPC时,还必须注意:I_ISPC/F_ISPC寄存器在ISR中只能被操作1次。如果你没有遵守这两点,在中断请求发生时, I_ISPR/F_ISPR和INTPND寄存器可能还是0。I_ISPR/F_ISPR和I_ISPC/F_ISPC寄存器的位定义如表4-46所示。4.10串行口管理4.10.1概述S3C44B0X的UART(通用异步收发器)单元提供两个独立的异步串行I/O端口,每个都可以在中断和DMA两种模式下工作。它们支持的最高波特率为115.2Kbps。每个UART通道包含2个16位FIFO分别提供给接收和发送。S3C44B0X的UART可以进行以下参数的设置:可编程的波特率,红外收/发模式,1或2个停止位,5位、6位、7位或8位数据宽度和奇偶位校验。如图4-17所示:每个UART包含一个波特率产生器,发送器,接收器和控制单元。波特率发生器以MCLK作为时钟源。发送器和接收器包含16字节的FIFOs和移位寄存器。

被发送的数据,首先被写入FIFO,再拷贝到发送移位寄存器,然后它从数据输出端口(TxDn)依次被移位输出。 被接收的数据也同样从数据接收端口(RxDn)移位输入到移位寄存器,然后拷贝到FIFO中。特性:RxD0,TxD0,RxD1,TxD1可以以中断模式或DMA模式工作;UART通道0符合IrDA1.0要求,且具有16字节的FIFO;UART通道1符合IrDA1.0要求,且具有16字节的FIFO;支持收发时握手模式。4.10.2UART操作以下将介绍UART的操作,包括数据发送,数据接收,中断发生,波特率发生,回送模式,自动流控制等内容。1.数据发送数据发送帧格式是可编程的。它包含一个开始位,5到8个数据位,一个可选的奇偶位和1到2个停止位,这些都可以通过线控制寄存器(ULCONn)来设置。发送器也能够产生发送中止条件。中止条件迫使串口输出保持在逻辑0状态,这种状态保持超过一个传输帧的时间长度。通常在一帧传输数据完整地传输完之后,再通过这个全0状态将中止信号发送给对方。中止信号发送之后,传送数据将持续地放入到输出FIFO中(在不使用FIFO模式下,将被放到输出保持寄存器)。2.数据接收与发送一样,接收的数据帧格式同发送帧格式。接收器还可以检测到溢出错误,奇偶校验错误,帧错误和中止状况,每种情况下都会将一个错误标志置位。溢出错误表示新的数据已经覆盖了旧的数据,因为旧的数据没有及时被读入;奇偶校验错误表示接收器检测到了意料之外的奇偶校验结果;帧错误表示接收到的数据没有有效的停止位;中止状况表示RxDn的输入被保持为0状态超过了一个帧传输的时间。在FIFO模式下接收FIFO不为空,但接收器已经在3个字时间内没有接收到任何数据,就认为发生了接收超时状况。3.自动流控制(AFC)S3C44B0X的UART通过nRTS和nCTS信号支持自动流控制,在这种情况下必须是UART与UART连接。4.非自动流控制通过软件控制nRTS和nCTS5.调制解调器接口如果用户要连接到调制解调器接口,就需要nRTS,nCTS,nDSR,nDTR,DCD和nRI信号。在这种情况下,用户可以通过通用其它I/O口来由软件控制这些信号,因为AFC是不支持RS-232C接口的。4.10.3中断/DMA请求产生器S3C44B0X的每个UART都有7个状态信号:溢出错误,奇偶校验错误,帧错误,中止,接收FIFO/缓冲区数据准备好,发送FIFO/缓冲区空,发送移位寄存器空。所有这些状态都由对应的UART状态寄存器(UTRSTATn/UERSTATn)中的相应位来表现。溢出错误,奇偶校验错误,帧错误和中止状况都被认为是接收错误状态,如果UCONn中的“接收错误状态中断使能位”被置位,它们中的每一个都能够引发接收错误中断请求。当“接收错误状态中断请求”被检测到,引发请求的信号可以通过读取UERSTATn来识别。当接收器要将接收移位寄存器的数据送到接收FIFO,它会激活接收FIFO满状态信号,如果控制寄存器中的接收模式选为中断模式,就会引发接收中断。当发送器从发送FIFO中取出数据到发送移位寄存器,那么FIFO空状态信号将会被激活。如果控制寄存器中的发送模式选为中断模式,就会引发发送中断。如果接收/发送模式被选为DMA模式,“接收FIFO满”和“发送FIFO空”状态信号同样可以产生DMA请求信号。与FIFO有关的中断如表4-47所示。4.10.4UART错误状态FIFO除了接收FIFO寄存器之外,UART还具有一个状态FIFO。状态FIFO中表示了在FIFO寄存器中,哪一个数据被无错误地接收。假设UART的FIFO连续接收到A,B,C,D,E字符,并且在接收B字符时发生了帧错误(即该字符没有停止位),在接收D字符时发生了奇偶校验错。虽然UART错误发生了,错误中断不会产生,因为含有错误的字符还没有被CPU读取。当字符被读出时错误中断才会发生。如图4-19所示。4.10.5波特率发生器每个UART的波特率发生器为传输提供了串行移位时钟。波特率产生器的时钟源可以通过S3C44B0X的内部系统时钟来选择。波特率时钟通过时钟源16分频和一个由UART波特率除数寄存器(UBRDIVn)指定的16位除数决定。UBRDIVn的值可以按照下式确定:UBRDIVn=(取整)(MCLK/(bps×16))-1除数的范围为1到(216-1)。例如,如果波特率为115.2Kbps且系统主频(MCLK)为64MHz,则UBRDIVn为:UBRDIVn=(int)(64000000/(115200×16))-1=35-1=344.10.6回送模式S3C44B0X的UART提供一个测试模式,即回送模式。在这种模式下,发送的数据会立即被接收。这一特性运行处理器校验内部发送和接收通道的功能。这种模式可以通过设置UART控制寄存器(UCONn)中的回送位来设定。4.10.7红外通信模式S3C44B0X的UART模块支持红外线(IR)发送和接收。可以通过设置UART控制寄存器(ULCONn)中的红外模式位来选择这一模式。4.10.8UART寄存器寄存器名称中的n表示0~1,例如ULCONn对应串口0为ULCON0,对应串口1为ULCON1。1.UART线控制寄存器前面多次提到了线控制寄存器,它主要用来规定传输帧的格式。线控制寄存器定义如表4-48所示。UCONn位描述初始值发送中断类型[9]中断请求类型0=脉冲(在发送缓冲区变空时立即引发中断)1=电平(在发送缓冲区变空时引发中断)0接收中断类型[8]中断请求类型0=脉冲(在接收缓冲区接收到数据时立即引发中断)1=电平(在接收缓冲区正在接收到数据时引发中断)0接收超时中断使能[7]在UART的FIFO使能的情况下,使能/禁止接收超时中断0=禁止1=允许0接收错误状态中断使能[6]使能UART在接收操作中发生错误时的错误中断响应0=不产生错误状态中断1=产生错误状态中断02.UART控制寄存器

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

表4—49UCONn控制寄存器UCONn位描述初始值回送模式[5]设置该位,UART自动进入回送模式。0=正常传输1=发送终止信号0发送终止信号[4]设置该位,令UART在一桢时间中发送一个终止状态。发送完毕系统自动清除该位。0=正常传输1=发送终止信号0发送模式[3:2]向UART发送保持寄存器中写入数据的模式。00=禁止01=中断请求查询模式10=BDMAD请求(仅UART0)11=BDMA1请求(仅UART1)00接收模式[1:0]从UART接受缓冲区中读出数据的模式,00=禁止01=中断请求查询模式10=BDMA0请求(仅UARTD)11=BDMA1请求(仅UART1)003.FIFO控制寄存器FIFO控制寄存器UFCONn如表4—50所示,UFCONn控制UART0和UART1的Rx和TxFIFO操作表4—50UFCONn控制寄存器UFCONn位描述初始值发送FIFO的触发水平[7:6]决定发送FIFO的触发水平00=空01=4字节10=8字节11=12字节00接收FIFO的触发水平[5:4]决定发送FIFO的触发水平00=4字节01=8字节10=12字节11=16字节00保留[3]0TxFIFO复位[2]在复位FIFO后自动清零0=正常1=TxFIFO复位0RxFIFO复位[1]在复位FIF0后自动清零0=正常1=RxFIF0复位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请求发送[0]如果AFC使能,这位的值将被忽略。在这种情况下,S3C44BOX自动控制nRTS如果AFC禁止,必须由软件来控制nRTS0=高电平(失活nRTS)1=低电平(激活nRTS)05.UART发送/接收状态寄存器UTRSTATn是发送/接收状态寄存器,如表4—52所示。表4—52UTRSTATn发送/接收状态控制寄存器UTRSTATn位描述初始值发送移位寄存器为空[2]当发送移位寄存器中不包含有效数据或移位寄存器为空,这一位将自动被置位。0=非空1=发送保持和移位寄存器为空1发送缓冲器为空[1]当发送缓冲区寄存器中不包含有效数据,这一位将自动被置位。0=缓冲区寄存器非空1=空如果使用了FIFO,则用户不用检测这个位,而应当检测UFSTAT中发送FIF0计数器位和FIF0满位。1接收缓冲器数据就绪[0]当接收缓冲器寄存器中包含有效数据,这一位将自动被置位。0=完全为空1=缓冲器寄存器中包含有效数据如果使用了FIF0,则用户不用检测这个位,而应当检测UFSTAT中接收FIF0计数器位。06.UART错误状态寄存器UERSTATn是错误状态寄存器,如表4—53所示表4—53UERSTATn错误状态寄存器UERSTATn位描述初始值间隔中断[3]0=未收到间隔信号1=收到间隔信号0数据桢错误[2]0=接收时无桢错误1=接收时发生桢错误0奇偶错误[1]0=接收时无奇偶错误1=接收时奇偶错误0Overrun错误[0]0=在接收过程中未产生Overrun错误1=Overrun错误注:当已收到的数据还未被读取,而新接收的数据覆盖了原有的数据时,就会产生Overrun错误07.UART的FIF0状态寄存器UFSTATn是FIF0状态寄存器,如表4—54所示表4—54UFSTATnFIF0状态寄存器UFSTATn位描述初始值保留[15:10]0TxFIF0满[9]当FIF0满时,置10=0字节≤TxFIF0数据≤15字节1=满0RxFIF0满[8]当FIF0要满时,置10=0字节≤RxFIF0数据≤15字节1=满0TxFIF0计数[7:4]发送FIF0中数据的个数0RxFIF0计数[3:0]接收FIF0中数据的个数08.UART的Modem状态寄存器UMSTATn是Modem状态寄存器,如表4—55所示表4—55UMSTATnModem状态寄存器UMSTATn位描述初始值DeltaCTS[4]表明输入到S3C44BOX的信号从上一次读过后已经改变0=无改变1=已改变0Rserved[3:1]保留CleartoSend[0]0=CTS信号未激活(nCTS引脚为高电平)1=CTS信号已激活(nCTS引脚为低电平)09.UART发送/接收保持(缓冲区)寄存器URXHn/URXHn是发送/接收保持(缓冲区)寄存器,如表4—56和表4—57所示表4—56URXHn是发送保持(缓冲区)寄存器URXHn位描述初始值RXDATAn[7:0]从UARTn发送的数据字节—URXHn位描述初始值URXDATAn[7:0]从UARTn接收的数据字节—注:UART接收保持(缓冲区)寄存器和FIF0寄存器:URXH0,URXH1,如果发生了益出错误,必须读一次URXHn,如果不读,即使USTATn中的溢出错误位被清除了,下一个接收的数据仍然会发生一个溢出错误。表4—57URXHn是接收保持(缓冲区)寄存器10.UART波特率除数寄存器UBRDIVn是波特率除数寄存器,如表4—58所示UBRDIVn位描述初始值UBRDIV[15:0]波特率除数的值UBRDIV>0—区域(组/Cache)存储空间地址大小Cacheset00x10000000-0x100007fff2KBCacheset10x10000800-0x10000fff2KBCacheset20x10001000-0x100017ff2KBCacheset30x10001800-0x10001fff2KBCacheset00x10002000-0x100027fo512B(note)Cacheset10x10002800-0x10002ffo512B(note)Cacheset20x10003000-0x100037fo512B(note)Cacheset30x10003800-0x100347fo512B(note)LRU0x10004000-0x100047fo512B(note)返回返回SYSCFG位描述初始状态Reserved[7]保留0Reserved[6]保留0DA(reserved)[5]数据异常控制,推荐值为0。0:允许数据异常1:不允许数据异常0RSE(reserved)[4]允许读停止选项,推荐值为0。读停止选项在Cache&CPUcore读数据时插入—个间歇等待周期。0:允许读停止1:允许读停止0WE[3]该位确定写缓冲的允许/不允许,一些外部装置需要最小的写周期时间,如果允许写缓冲,在由于连续的写之间的周期将使之工作不正常。0=不允许写缓冲操作1=允许写缓冲操作0CM[2:1]这两位确定Cache模式00=8KB内部SRAM01=4KBCache,4KB内部SRAM10=保留11=8KBCache00SE[0]允许停止选项,推荐值为0。停止选项在使用Cache,产生非连续地址时,插入—0:不允许停止1:允许停止1返回SBUSCON位描述初始状态FIX[31]优先模式0:轮转优先级1:固定优先级0xlS_LCD_DMA[15:14]指示LCD_DMA的总线优先级(只读)00:Lst01:2nd10:3nd11:4th00S_ZDMA[13:12]指示ZDMA的总线优先级(只读)00:Lst01:2nd10:3nd11:4th01S_BDMA[11:10]指示BDMA的总线优先级(只读)00:Lst01:2nd10:3nd11:4th10S_nBREQ[9:8]指示nBREQQ的总线优先级(只读)00:Lst01:2nd10:3nd11:4th11LCD_DMA[7:6]指示LCD_DMA的总线优先级00:Lst01:2nd10:3nd11:4th00ZDMA[5:4]指示ZDMA的总线优先级00:Lst01:2nd10:3nd11:4th01BDMA[3:2]指示BDMA的总线优先级00:Lst01:2nd10:3nd11:4th10nBREQ[1:0]指示nBREQ的总线优先级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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论