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

下载本文档

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

文档简介

第4章 S3C44B0X硬件结构及功能,本章主要介绍了S3C44B0X的体系结构及各种功能接口,主要包括以下内容: 存储器管理 系统总线及时钟 中断管理 DMA、I/O口、定时器、A/D、I2C、 SPI等接口结构,4.1 S3C44BOX简介,SAMSUNG公司推出的16/32位RISC处理器S3C44BOX为手持设备和一般应用提供了高性价比和高性能的微控制器解决方案。 为了降低成本,S3C44BOX提供了丰富的内置部件,包括:8KBCache和内部SRAM,LCD控制器,带自动握手的2通道UART,4通道DMA,系统管理器(片选逻辑,FP/EDO/SDRAM控制器),带PWM功能的5通道定时器和一个内部定时器,I/O端口,RTC,8通道10位ADC,CBUS接口,SBUS接口,同步SIO接口和PLL倍频器。,S3C44BOX是使用ARM7TDMI内核,采用0.25mCMOS工艺制造。它的低功耗和全静态设计特别适用于对成本和功耗敏感的应用。 同样地,S3C44BOX还采用了一种新的总线结构,即SAMBAII(三星ARMCPU嵌入式微处理器总线结构)。 S3C44BOX的杰出特性是它的CPU核,是由ARM公司设计的16/32位ARM7TDMI RISC处理器(66MHz)。它包括了Thumb代码压缩器,一个片上的ICE断点调试支持和一个32位的硬件乘法器。,S3C44BOX通过提供全面的、通用的焉上外设,大大减少了系统中除处理器以外的元器件配置,从而使系统的成本大为降低。 S3C44BOX集成的各种片上功能如下: (1)2.5V ARM7TDMI内核,带有8KB Cache; (2)可选的内部SRAM; (3)LCD控制器(最大支持256色DSTN,LCD具有专用DMA); (4)2通道UART带有握手协议(支持IrDA1.0,具有16-byte FIFO); (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调方式支持解决方案; 328位硬件乘法器; 实现低功耗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,2WH RTC,1个ADC,1个IIC,1个SIO); 采用向量化的IRQ中断模式以减少中断的延迟; 电平/边沿模式触发外部中断; 电平/边沿模式具有可编程的优先级; 支持FIQ为紧急的中断请求进行服务。,(6)定时器和PWM(脉宽调制)。 S3C44BOX定时器和PWM特性如下: 通道16位具有PWM功能的定时器,1通道16位内部定时器(可进行基于DMA或中断的操作); 可编程的占空比周期,频率,和优先级; 产生死区; 支持外部时钟源。,(7)PTC(实时时钟)。 S3C44BOX RTC特性如下: 充分的时钟特性:毫秒、秒、分钟、小时、日、星期、月、年; 32.768kHz时钟; 定时警报,可用于唤醒CPU; 时钟节拍中断。 (8)通用I/O口。 S3C44BOX通用I/O口特性如下: 8个外部中断口; 71个多功能输入输出口。,(9)UART(通用异步串行通信)。 S3C44BOX UART特性如下: 2通道UART,可进行基于DMA可中断的操作; 支持5位,6位,7位或8位串行数据传输/接收; 支持硬件握手功能; 可编程的波特率; 支持IrDA1.0(115.2Kb/s); 支持用于测试的回馈模式; 每个通道具有2个内部32B的FIFO分别用于输入输出。,(10)DMA(直接存储器操作)控制器。 S3C44BOX DMA控制器特性如下 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.03.6V。 (18)工作频率。 S3C44BOX的最大工作频率为:66MHz。 (19)封装。 S3C44BOX的封装形式为: 160LQFP/160FBGA。,2.体系结构图,体系结构图 S3C44BOX结构如图表41所示。 图41 S3C44BOX结构图 引脚介绍 S3C44BOX引脚分布如图42所示。 图42 S3C44BOX策处理器管脚定义图 引脚信号描述如表41所示。,4.2存储器管理,4.2.1 S3C44BOX存储系统的特征 S3C44BOX的存储系统具有以下一些主要特性: 支持数据存储的大、小端选择(通过外部引脚进行选择);有大端模式和小端模式。 地址空间具有8个存储体,每个存储体可达32MB,总共可达到256MB; 对所有存储体的访问大小均可进行改变(8位/16位/32位),总线宽度可编程; 8个存储器中,Bank0Bank5可支持ROM、SRAM;Bank6、Bank7可支持ROM、SRAM和FP/EDO/SDRAM等,Bank6和Bank7存贮容量大小相同; 7个存储器的起始地址固定,1个存储器的起始地址可变。(即第8个可变) 图43所示是复位后的存储器映射表,Bank6/Bank7存储器的地址表如表42所示。,1、存储器的大/小端模式,ENDIAN第一存储器的大/小端模式,当ENDIAN为L时则使用大端模式,大/小端模式之所以存在是因为当在存储器中存储不同字长的数据时,大/小端模式定义了不同长度的数据类型的对齐方式。 因为Bank0是系统自举ROM存储体,所以必须在访问ROM之前定义Bank0的总线宽度见表43。 其他存储体的总线宽度只能在系统复位后由程序进行设定,由地址为0x01c8000的特殊寄存器BWSCON的相应位决定。,2、存储器(SROM,DRAM,SDRAM)地址引脚连接,存储器地址引脚连接如表44所示。由于作用16位数据总线,所以将存储器的A0与S3C44BOX的A1对应连接在一起。,3、典型系统中存储器的分配情况,典型系统中存储器分配情况如表45所示。 只要将CPU上的相应Bank连线接到外设芯片的片选引脚上,便可以根据相应的地址进行存储器或外设操作了。 在本系统中,存储器的配置依照PC的结构: 使用Bank0上的两片512KB2存储器来放置系统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位。设置是通过OM0:1脚电平决定总线宽度。,(2)BANKCON。 S3C44BOX具有8个BANKCONn寄存器,分别对应着BankBANCONn寄存器针对操作时序进行设置,如表46所示。 由于Bank6Bank7可以作为 FP/EDO/SDRAM等类型存储器的映射空间,因此BANKCON6和BANKCON7与其他Bank的相应寄存器有所不同。其中MT位定义了存储器的类型,如表47所示。 MT的取值定义了该寄存器余下几位的作用。例如当MT=11,余下几位定义如表48所示。,(3)REFRESH。 REFRESH是DRAM/SDRAM的刷新控制器。 位定义如表49所示。 刷新的周期计算公式: Refresh_Period=(211-refresh_count+1)/MCLK 如果刷新周期是15.6s和MCLK是60MHz, refresh_count如下计算: refresh_count=211+1-6015.6=1113,(4)BANKSIAE和MRSR。 BANKSIAE寄存器定义了Bank的大小,如表410所示。 MRSR是SDRAM模式设置寄存器定义如表411所示。,4.3 时钟和功耗管理,4.3.1 概述 S3C44B0X 的时钟产生器可以为 CPU 产生要求的时钟信号,同样也为外设提供了时钟信号。时钟产生器可以通过软件来控制是否为每个外部设备模块提供时钟信号,或者切断与外部设备的联系,以减少功耗。 同样在软件的控制下,S3C44B0X 提供各种功耗管理办法来为各种应用提供最优化的功耗方案。,S3C44B0X的时钟源可以用外部晶体来产生,也可以直接输入外部时钟,这由OM3:2的状态决定。 M3:2的状态在nRESET的上升沿由OM3 和OM2脚的电平决定。 M3:2=00 Crystal clock M3:2=01 外部时钟。 其它测试模式在复位后PLL启动,但在用S/W指令设置PLLCON为有效的值之前,PLL OUTPUT (FOUT)不能使用,这时FOUT直接输出Crystal clock或外部时钟。 如果S3C44B0X的PLL的时钟源使用晶体,这时EXTCLK能作为Timer 5的时钟源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所示。,时钟控制寄存器表,4.4 CPU Wrapper和总线特性,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 中找不到相应的内容(称为 cache miss),4 个字的存储内容从外部存储器连续地取得。 它采用一种 LRU(最近使用最少)算法来提升命中的比率。 统一 cache 通过有区别的方式来处理指令和数据。,内部 SRAM 主要用来减少 ISR 的执行时间。由于内部 SRAM 具有最短的操作时间,因此能够减少 ISR 的执行时间。 当然 ISR 在 SRAM 运行也是非常有效率的因为大多数的 ISR 代码都会引起cache miss。 总线仲裁逻辑可以决定总线占用者的优先级.总线仲裁逻辑支持一种 round-robin 优先级模式和一种固定的优先级模式。 同样 LCD_DMA, BDMA, ZDMA, nBREQ(外部总线控制器)之间的优先级可以通过软件来修改。,4.4.2内部SRAM,S3C44B0X 具有一个最小 8KB 的 4 组相连 cache 或内部 SRAM。 如果内部 SRAM 为 4KB,另外 4KB 内部存储器可以用来作为 2 组相连 cache。 内部 SRAM 的存储器操作周期为 1MCLK。 在每一个组的存储空间内,地址是连续增加的,在 TAG/LRU中的地址按照 16 字节增加。 不要对内部地址空间:0x100030040x1000300f 进行操作。 SYSCFG配置寄存器如表4-16所示。,4.4.3总线优先级,在 S3C44B0X 中,有 7 种总线 master; LCD_DMA; BDMA0; BDMA1; ZDMA0; ZDMA1; Nbreq(外部总线 master); CPU wrapper。,复位之后,这些总线 master 的优先级排列如下: DRAM刷新控制器; LCD _DMA; ZDMA0,1; BDMA0,1; 外部总线控制器; 写缓冲区; Cache和CPU;,LCD_DMA, ZDMA, BDMA之间的总线优先级是可编程的,可以通过 SBUSCON 寄存器来设置。 如果不考虑 SBUSCON 的设置 CPUwrapper 始终具有最低的优先级。 Roundrobin 优先级模式或固定优先级模式是可以选择的。在 roundrobin 优先级模式中,已经被服务过依次的总线占有者将具有最低的优先级。通过这种方式,使得所有的 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.5 DMA控制器,4.5.1 简述 1. DMA控制器结构 S3C44B0X有4路DMA控制器,其中两路称为ZDMA(General DMA)被连到SSB(Samsung System Bus)总线上,另外两路称为BDMA(Bridge DMA)是SSB和SPB(Samsung Peripheral Bus)之间的接口层,相当于一个桥,因此称为桥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. 外部DMA REQ/ACK 协议 对于ZDMA ,有四种类型的外部DMA请求/应答协议: 握手模式(Handshake Mode) 一个单独的应答对应一个单独的DMA请求,在该模式,DMA操作期间的读写周期不可分割,因此在一个DMA操作完成前,不能把总线让给其它总线控制器使用。 一次nXDREQ请求引起一次DMA传输(可以是一个字节,一个半字或一个字)。, 单步模式(Single Step Mode) 单步模式意味着一次DMA传输有两个DMA应答周期(产生两个应答信号nXDACK)指示DMA读和写周期,主要用与测试和调试模式,在读写周期之间,总线控制权可以让给其它总线控制器。 连续模式(Whole Service Mode) 在该模式,一次DMA请求将产生连续的DMA传输,直到规定的DMA传输数传输完,在DMA传输期间,nXDACK一直有效,DMA请求信号被释放。并且在每次传输一个数据单元后,释放一次总线控制权,以便其它总线控制器有机会可以占用总线。, 手动模式(Demand Mode) 在该模式,只要DMA请求信号一直有效,DMA传输就持续进行,并且一直占用总线控制权,因此应该预防传输周期超过规定的最大时间。 3. DMA传输模式 DMA有三种传输模式: 单位传输模式 块传输模式 On_the_fly块传模式。,Unit传输模式。1个单位读,然后1个单位写。 Block传输模式。4个字突发读, 然后4个字突发写,因此传输的数据个数应当是16字节的倍数。 On-the-fly 传输模式。1个单位读或1个单位写,读写同时进行。,4.5.2 DMA寄存器 ZDMA控制寄存器 ZDCON0/1 是ZDMA 0/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.6 I/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.7 PWM定时器和看门狗定时器,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.2 PWM 定时器操作,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.3 PWM 定时器控制寄存器,1. 定时器配置寄存器0(TCFG0) TCFG0主要是配置3个8位预分频器值和死区长度值。 定时器输入时钟频率MCLK/预分频值+1/分割值 其中预分频值为0255,分割值为2,4,8,16,32。如表4-39所示。,2. 定时器配置寄存器 1(TCFG1),TCFG1主要是配置6-MUX 和DMA模式。如表4-40所示。,3. 定时器控制寄存器(TCON) 如表4-41所示:,4. 定时器n计数缓冲区寄存器和比较缓冲区寄存器(TCNTBn,TCMPBn),TCMPBn是16位定时器Timer0Timer4比较缓冲器寄存器; TCNTBn是16位定时器Timer0Timer5计数缓冲寄存器; TCNTOn 是16位定时器Timer0Timer5观察寄存器. 他们初值都为0。 在以上的寄存器中,定时器n计数/比较缓冲寄存器可读写寄存器,定时器n计数观察寄存器为只读寄存器。,4.7.4 看门狗定时器,1. 概述 S3C44B0X的看门狗定时器用来在由于错误如干扰和系统错误造成的程序运行打乱时恢复正常操作,它也能使用一个正常的16位定时器来请求中断服务。 看门狗定时器产生复位信号128个系统时钟周期。,当S3C44B0X使用Embedded ICE工作在调试模式时,看门狗定时器必须不工作。 看门狗定时器能通过CPU核心信号(DBGACK信号)确定当前的模式是否在调试模式,一旦DBGACK信号有效,看门狗定时器的复位输出当定时器过期时不激活。 结构如图4-14所示。,2. 看门狗定时器时钟频率 看门狗时钟频率计算公式如下: t_watchdog = 1/( MCLK/ (Prescaler value + 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,还有大容量的存储器、温度传感器和AD数据采集通道等,已成为集RTC、数据采集和存储于一体的综合功能器件,特别适用于以微控制器为核心的嵌入式系统。 RTC器件与微控制器之间大都采用连线简单的串行接口,诸如I2C、SPI、MICROWIRE和CAN等串行总线接口。这些串口由23根线,分为同步和异步。,4.8.2 RTC 时钟单元,RTC (Real Time Clock)单元能在系统断电时,通过备份电池来供电,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寄存器时,如果结果是 159,肯定没有问题。但如果结果是 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为节拍时间计数值(1127)。 这个 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 模式。 ALMSECALMYEAR为RTC秒、分钟、小时、日、月、年报警数据寄存器; BCDSECBCDYEAR为秒、分钟、小时、日、星期、月、年数据寄存器。 RTC ROUND是秒复位寄存器。 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(中断服务程序)要通过读取 EXTINPND3:0寄存器来区别这 4 个中断源。 它们的中断处理程序(ISR)必须在处理结束时将EXTINPND3:0中对应位写 1 来清除该位。2 个 UART 错误中断占用一个中断源。 中断源如表 4-44 和 图 4-16所示。,(1) 中断请求寄存器 INTPND,INTPND 寄存器中的 26 个位对应着每一个中断源。 如表4-46所示,当中断发生时,INTPND 中相应的登记位就会置 1,说明该中断还未被处理。中断服务程序中必须清除该登记位,从而使系统能够及时响应下一次中断。 INTPND 是一个只读寄存器,清除登记位的方式是向 I_ISPC/F_ISPC的相应位写入“1”。 在多个中断同时发生时,INTPND 将所有发生的中断登记位都置 1。虽然中断请求可以通过 INTMSK 寄存器屏蔽,但是如果被屏蔽的中断发生了,INTPND 中的登记位仍然会被置 1。,(2) 中断模式寄存器 INTMOD,INTMOD 寄存器中的 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端口,每个都可以在中断和D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论