1.21k likes | 1.45k Views
第 4 章 S3C44B0X 硬件结构及功能. 本章主要介绍了 S3C44B0X 的体系结构及各种功能接口,主要包括以下内容: 存储器管理 系统总线及时钟 中断管理 DMA 、 I/O 口、定时器、 A/D 、 I2C 、 SPI 等接口结构. 4.1 S3C44BOX 简介. SAMSUNG 公司推出的 16/32 位 RISC 处理器 S3C44BOX 为手持设备和一般应用提供了高性价比和高性能的微控制器解决方案。
E N D
第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,ІІC—BUS接口,ІІS—BUS接口,同步SIO接口和PLL倍频器。
S3C44BOX是使用ARM7TDMI内核,采用0.25μmCMOS工艺制造。它的低功耗和全静态设计特别适用于对成本和功耗敏感的应用。S3C44BOX是使用ARM7TDMI内核,采用0.25μmCMOS工艺制造。它的低功耗和全静态设计特别适用于对成本和功耗敏感的应用。 同样地,S3C44BOX还采用了一种新的总线结构,即SAMBAII(三星ARMCPU嵌入式微处理器总线结构)。 S3C44BOX的杰出特性是它的CPU核,是由ARM公司设计的16/32位ARM7TDMI RISC处理器(66MHz)。它包括了Thumb代码压缩器,一个片上的ICE断点调试支持和一个32位的硬件乘法器。
S3C44BOX通过提供全面的、通用的焉上外设,大大减少了系统中除处理器以外的元器件配置,从而使系统的成本大为降低。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控制器);(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,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.0~3.6V。 (18)工作频率。 S3C44BOX的最大工作频率为:66MHz。 (19)封装。 S3C44BOX的封装形式为: 160LQFP/160FBGA。
2.体系结构图 体系结构图 S3C44BOX结构如图表4—1所示。 图4—1 S3C44BOX结构图 引脚介绍 S3C44BOX引脚分布如图4—2所示。 图4—2 S3C44BOX策处理器管脚定义图 引脚信号描述如表4—1所示。
4.2存储器管理 4.2.1 S3C44BOX存储系统的特征 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对应连接在一起。
3、典型系统中存储器的分配情况 典型系统中存储器分配情况如表4—5所示。 只要将CPU上的相应Bank连线接到外设芯片的片选引脚上,便可以根据相应的地址进行存储器或外设操作了。 在本系统中,存储器的配置依照PC的结构: 使用Bank0上的两片512KB×2存储器来放置系统BIOS,系统上电以后,PC指针自动指向Bank0的第一个单元,开始进行系统自举。 系统自举完成以后,便从硬盘中将系统文件和用户应用程序复制到SDRAM内存中执行。
Bank1上接16MB非线性Flash,当作系统硬盘使用,可以构造文件系统,存放海量数据。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]的状态决定。S3C44B0X的时钟源可以用外部晶体来产生,也可以直接输入外部时钟,这由OM[3:2]的状态决定。 M[3:2]的状态在nRESET的上升沿由OM3 和OM2脚的电平决定。 M[3:2]=00 Crystal clock M[3: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 字节增加。 不要对内部地址空间:0x10003004~0x1000300f 进行操作。 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 始终具有最低的优先级。 • 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.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请求信号被释放。并且在每次传输一个数据单元后,释放一次总线控制权,以便其它总线控制器有机会可以占用总线。