94
4 4 S3C44B0X S3C44B0X 第第第第第第第 第第第第第第第 第第第第第第第 S3C44B0X 第 第第第第第第第第第 第第第第第第第第第 ,: 1. 第第第第第 2. 第 第第第第第 3. 第第第第 4.DMA I/O 第 第第第第 、、 A/D I2C SPI 第第第第第

第 4 章 S3C44B0X 硬件结构及功能

Embed Size (px)

DESCRIPTION

第 4 章 S3C44B0X 硬件结构及功能. 本章主要介绍了 S3C44B0X 的体系结构及各种功能接口,主要包括以下内容: 1. 存储器管理 2. 系统总线及时钟 3. 中断管理 4.DMA 、 I/O 口、定时器、 A/D 、 I2C 、 SPI 等接口结构. 4.3 时钟和功耗管理. 4.3.1 概述 - PowerPoint PPT Presentation

Citation preview

Page 1: 第 4 章  S3C44B0X 硬件结构及功能

第第 44 章 章 S3C44B0XS3C44B0X 硬件结硬件结构及功能构及功能

本章主要介绍了 S3C44B0X 的体系结构及各种功能接口,主要包括以下内容:

1. 存储器管理2. 系统总线及时钟3. 中断管理4.DMA 、 I/O 口、定时器、 A/D 、 I2

C 、 SPI等接口结构

Page 2: 第 4 章  S3C44B0X 硬件结构及功能

4.3 4.3 时钟和功耗管理时钟和功耗管理4.3.1 4.3.1 概述概述

S3C44B0X S3C44B0X 的时钟产生器可以为 的时钟产生器可以为 CPU CPU 产生要求的时钟信号,同样也为外设提供了产生要求的时钟信号,同样也为外设提供了时钟信号。时钟产生器可以通过软件来控制时钟信号。时钟产生器可以通过软件来控制是否为每个外部设备模块提供时钟信号,或是否为每个外部设备模块提供时钟信号,或者切断与外部设备的联系,以减少功耗。者切断与外部设备的联系,以减少功耗。

同样在软件的控制下,同样在软件的控制下, S3C44B0X S3C44B0X 提提供各种功耗管理办法来为各种应用提供最优供各种功耗管理办法来为各种应用提供最优化的功耗方案。 化的功耗方案。

Page 3: 第 4 章  S3C44B0X 硬件结构及功能

S3C44B0XS3C44B0X 的时钟源可以用外部晶体来的时钟源可以用外部晶体来产生,也可以直接输入外部时钟,这由产生,也可以直接输入外部时钟,这由 OM[3:OM[3:2]2] 的状态决定。的状态决定。 M[3:2]M[3:2] 的状态在的状态在 nRESETnRESET的上升沿由的上升沿由 OM3 OM3 和和 OM2OM2 脚的电平决定。脚的电平决定。 MM[3:2]=00 Crystal clock M[3:2]=01 [3:2]=00 Crystal clock M[3:2]=01 外部时钟。外部时钟。其它测试模式在复位后其它测试模式在复位后 PLLPLL 启动启动 ,, 但在用但在用 S/S/WW 指令设置指令设置 PLLCONPLLCON 为有效的值之前为有效的值之前 ,PLL ,PLL OUTPUT (FOUT)OUTPUT (FOUT) 不能使用不能使用 ,, 这时这时 FOUTFOUT 直直接输出接输出 Crystal clockCrystal clock 或外部时钟。或外部时钟。如果如果 S3S3C44B0XC44B0X 的的 PLLPLL 的时钟源使用晶体的时钟源使用晶体 ,, 这时这时 EXEXTCLKTCLK 能作为能作为 Timer 5Timer 5 的时钟源的时钟源 TCLKTCLK 。 。

Page 4: 第 4 章  S3C44B0X 硬件结构及功能

S3C44B0X S3C44B0X 中的功耗管理提供中的功耗管理提供 55 种模式:种模式:1.1. 正常模式正常模式

正常模式下,时钟发生器提供时钟给 正常模式下,时钟发生器提供时钟给 CCPUPU ,并同时提供给 ,并同时提供给 S3C44B0X S3C44B0X 的外设。在的外设。在这种情况下,当所有的外设都开启工作时,这种情况下,当所有的外设都开启工作时,处理器所消耗的功耗最大。处理器所消耗的功耗最大。

用户可以通过软件来控制外事的操作模用户可以通过软件来控制外事的操作模式。例如,如果定时器和 式。例如,如果定时器和 DMA DMA 不需要时钟,不需要时钟,则用户可以断开定时器和 则用户可以断开定时器和 DMA DMA 的时钟供给的时钟供给以降低功耗。 以降低功耗。

Page 5: 第 4 章  S3C44B0X 硬件结构及功能

2. 2. 慢速模式慢速模式慢速模式是一种非倍频模式。与正常模慢速模式是一种非倍频模式。与正常模

式下不同,慢速模式直接采用外部时钟作为式下不同,慢速模式直接采用外部时钟作为S3C44B0X S3C44B0X 的主工作时钟,而不使用内部倍的主工作时钟,而不使用内部倍频器。在这种情况下,功耗的大小仅依据于频器。在这种情况下,功耗的大小仅依据于外部时钟的频率的大小。外部时钟的频率的大小。 PLL PLL 部件所消耗的部件所消耗的功耗不用计算在内了。功耗不用计算在内了。3. 3. 空闲模式空闲模式

空闲模式下仅断开对 空闲模式下仅断开对 CPU CPU 内核的时钟内核的时钟供给,而保留所有对于外部设备的时钟供给。供给,而保留所有对于外部设备的时钟供给。在空闲模式下,在空闲模式下, CPU CPU 内核的功耗可以减去。内核的功耗可以减去。任何中断请求都会使 任何中断请求都会使 CPU CPU 从空闲模式中醒从空闲模式中醒来。来。

Page 6: 第 4 章  S3C44B0X 硬件结构及功能

4. 4. 停止模式停止模式停止模式通过禁止 停止模式通过禁止 PLL PLL 来冻结所有 来冻结所有 CC

PU PU 内核、外设的时钟。这时的功耗大小仅内核、外设的时钟。这时的功耗大小仅由 由 S3C44B0X S3C44B0X 内部的漏电流大小决定,这内部的漏电流大小决定,这个电流一般小于 个电流一般小于 10uA10uA 。要使 。要使 CPU CPU 从停止从停止模式中醒来,可以通过外部中断实现。模式中醒来,可以通过外部中断实现。5. LCD 5. LCD 的的 SL SL 空闲模式空闲模式

SL SL 空闲模式的进入将导致 空闲模式的进入将导致 LCD LCD 控制控制器开始工作。在这种情况下,除了 器开始工作。在这种情况下,除了 LCD LCD 控控制器以外 制器以外 CPU CPU 内核和其它外设的时钟都停内核和其它外设的时钟都停止了。因此,止了。因此, SL SL 空闲模式下的功耗比空闲空闲模式下的功耗比空闲模式的功耗小。 模式的功耗小。

Page 7: 第 4 章  S3C44B0X 硬件结构及功能

4.3.2 4.3.2 寄存器定义寄存器定义1. PLL1. PLL 控制寄存器控制寄存器

该寄存器设置该寄存器设置 PLLPLL 参数参数 . . PLLPLL 输出频率计算公式如下输出频率计算公式如下 : : Fpllo = (m * Fin)/(p * 2s) Fpllo = (m * Fin)/(p * 2s) 其中其中 m = (MDIV + 8)m = (MDIV + 8) ,, p = (PDIV + 2)p = (PDIV + 2) ,,

s = SDIV s = SDIV ,, FplloFpllo 必须大于必须大于 20MHZ20MHZ 且少于且少于66MHZ66MHZ ,, Fpllo * 2sFpllo * 2s 必须少于必须少于 170MHZ170MHZ ,, FFin/pin/p 推荐为推荐为 1MHZ 1MHZ 或大于,但小于或大于,但小于 2MHZ2MHZ ,,其中其中 MDIVMDIV 、、 PDIVPDIV 、、 SDIVSDIV 定义如表定义如表 4-124-12所示。所示。

Page 8: 第 4 章  S3C44B0X 硬件结构及功能

2. 时钟控制寄存器时钟控制寄存器如表 4-13 所示。

PLLCON 位 描述 初始状态

MDIVPDIVSDIV

[19:12][9:4][1:0]

主分频值预分频值后分频值

0x380x080x0

Page 9: 第 4 章  S3C44B0X 硬件结构及功能

CLKCONCLKCON 位位 描 述 描 述 初始状态初始状态

IISIIS[14[14

]]控制控制 IIS blockIIS block的钟控的钟控0=0= 禁止 禁止 1=1=允许允许 11

IICIIC[13[13

]]控制控制 IIC blockIIC block的钟控的钟控0=0= 禁止 禁止 1=1=允许允许 11

ADCADC[12[12

]]控制控制 ADC blockADC block的钟控的钟控0=0= 禁止 禁止 1=1=允许允许 11

RTCRTC[11[11

]]控制控制 RTC blockRTC block的钟控,即使该位为的钟控,即使该位为 0,RTC0,RTC定时器仍工作。定时器仍工作。 0=0= 禁止 禁止 1=1=允许允许 11

GPIOGPIO[10[10

]]

控制控制 GPIO blockGPIO block的钟控,设置为的钟控,设置为 11,允许,允许使用使用 EINT[4EINT[4:: 7]7]的中断。的中断。 0=0= 禁止 禁止 1=1=允允许许

11

时钟控制寄存器表

Page 10: 第 4 章  S3C44B0X 硬件结构及功能

UART1UART1[9[9]]控制控制 UART1 blockUART1 block的钟控。的钟控。0=0= 禁止 禁止 1=1=允许允许 11

RART0RART0[8[8]]控制控制 UART0 blockUART0 block的钟控。的钟控。0=0= 禁止 禁止 1=1=允许允许 11

BDMA0,1BDMA0,1[7[7]]

控制控制 BDMA blockBDMA block的钟控,如果的钟控,如果 BDMABDMA关断,在外设总线上的外设不能存取。关断,在外设总线上的外设不能存取。0=0= 禁止 禁止 1=1=允许允许

11

LCDCLCDC[6[6]]控制控制 LCDC blockLCDC block钟控钟控0=0= 禁止 禁止 1=1=允许允许 11

SIOSIO[5[5]]控制控制 SIO blockSIO block钟控钟控0=0= 禁止 禁止 1=1=允许允许 11

Page 11: 第 4 章  S3C44B0X 硬件结构及功能

4.4 CPU Wrapper4.4 CPU Wrapper 和总线特性和总线特性4.4.1 4.4.1 概述概述

处理器 处理器 wrapper wrapper 包括一个包括一个 cachecache 、写入缓冲器、写入缓冲器和和 CPUCPU 内核。总线仲裁逻辑决定每个总线占用者的优内核。总线仲裁逻辑决定每个总线占用者的优先权。先权。

处理器 处理器 wrapper wrapper 有一个有一个 8k8k 直接的内部存储器。直接的内部存储器。内部存储器可以以内部存储器可以以 33 种方式采用。种方式采用。

第一是 第一是 8k 8k 字节的存储空间作为 字节的存储空间作为 8k 8k 字节的统一字节的统一(指令或数据)(指令或数据) cachecache (高速缓冲存储器)。(高速缓冲存储器)。

第二,内部存储器可以用作一个 第二,内部存储器可以用作一个 4k 4k 字节的统一 字节的统一 cache cache 和一个 和一个 4k 4k 字节的内部 字节的内部 SRAMSRAM 。。

第三,内部存储器可以整个地用作 第三,内部存储器可以整个地用作 8k8k 字节的内部 字节的内部 SRAMSRAM 。 。

Page 12: 第 4 章  S3C44B0X 硬件结构及功能

内部统一(指令或数据)内部统一(指令或数据) cache cache 采用 采用 4 4 种方式与某个 种方式与某个 4 4 个字(个字( 16 16 个字节)的行个字节)的行建立链接结构。它采用一种写穿式(建立链接结构。它采用一种写穿式( write-twrite-throughhrough )的原则保持数据的一致性。当在 )的原则保持数据的一致性。当在 ccache ache 中找不到相应的内容(称为 中找不到相应的内容(称为 cache micache missss ),), 4 4 个字的存储内容从外部存储器连续个字的存储内容从外部存储器连续地取得。它采用一种 地取得。它采用一种 LRULRU (最近使用最少)(最近使用最少)算法来提升命中的比率。统一 算法来提升命中的比率。统一 cache cache 通过通过有区别的方式来处理指令和数据。有区别的方式来处理指令和数据。

Page 13: 第 4 章  S3C44B0X 硬件结构及功能

内部 内部 SRAM SRAM 主要用来减少 主要用来减少 ISR ISR 的执的执行时间。由于内部 行时间。由于内部 SRAM SRAM 具有最短的操作具有最短的操作时间,因此能够减少 时间,因此能够减少 ISR ISR 的执行时间。当然 的执行时间。当然 ISR ISR 在 在 SRAM SRAM 运行也是非常有效率的因为运行也是非常有效率的因为大多数的 大多数的 ISR ISR 代码都会引起代码都会引起 cache misscache miss 。。

总线仲裁逻辑可以决定总线占用者的优总线仲裁逻辑可以决定总线占用者的优先级。总线仲裁逻辑支持一种 先级。总线仲裁逻辑支持一种 round-robin round-robin 优先级模式和一种固定的优先级模式。同样 优先级模式和一种固定的优先级模式。同样 LCD_DMA, BDMA, ZDMA, nBREQLCD_DMA, BDMA, ZDMA, nBREQ (外部(外部总线控制器)之间的优先级可以通过软件来总线控制器)之间的优先级可以通过软件来修改。 修改。

Page 14: 第 4 章  S3C44B0X 硬件结构及功能

4.4.24.4.2 内部内部 SRAMSRAMS3C44B0X S3C44B0X 具有一个最小 具有一个最小 8KB 8KB 的 的 4 4

组相连 组相连 cache cache 或内部 或内部 SRAMSRAM 。如果内部 。如果内部 SSRAM RAM 为 为 4KB4KB ,另外 ,另外 4KB 4KB 内部存储器可以内部存储器可以用来作为 用来作为 2 2 组相连 组相连 cachecache 。内部 。内部 SRAM SRAM 的存储器操作周期为 的存储器操作周期为 1MCLK1MCLK 。。

在每一个组的存储空间内,地址是连续在每一个组的存储空间内,地址是连续增加的,在 增加的,在 TAG/LRUTAG/LRU 中的地址按照 中的地址按照 16 16 字字节增加。不要对内部地址空间:节增加。不要对内部地址空间: 0x10003000x100030044~~ 0x1000300f 0x1000300f 进行操作。进行操作。

SYSCFGSYSCFG 配置寄存器如配置寄存器如表表4-164-16所示所示。 。

Page 15: 第 4 章  S3C44B0X 硬件结构及功能

4.4.34.4.3 总线优先级总线优先级

在 在 S3C44B0X S3C44B0X 中,有 中,有 7 7 种总线 种总线 mastermaster ,, LCD_DMA, BDMA0, BDMALCD_DMA, BDMA0, BDMA1, ZDMA0, ZDMA1, Nbreq(1, ZDMA0, ZDMA1, Nbreq( 外部总线 外部总线 master)master) 和 和 CPU wrapperCPU wrapper 。复位之后,。复位之后,这些总线 这些总线 master master 的优先级排列如下: 的优先级排列如下:

Page 16: 第 4 章  S3C44B0X 硬件结构及功能

LCD_DMA, ZDMA, BDMALCD_DMA, ZDMA, BDMA 之间的总线优先之间的总线优先级是可编程的级是可编程的 ,, 可以通过 可以通过 SBUSCON SBUSCON 寄存器来设寄存器来设置。置。

如果不考虑 如果不考虑 SBUSCON SBUSCON 的设置 的设置 CPUwrappeCPUwrapper r 始终具有最低的优先级。始终具有最低的优先级。

RoundRound-- robin robin 优先级模式或固定优先级模优先级模式或固定优先级模式是可以选择的。在 式是可以选择的。在 roundround-- robin robin 优先级模式优先级模式中,已经被服务过依次的总线占有者将具有最低的中,已经被服务过依次的总线占有者将具有最低的优先级。通过这种方式,使得所有的 优先级。通过这种方式,使得所有的 master master 都具都具有相同的优先级。有相同的优先级。

在固定优先级模式下,每个总线 在固定优先级模式下,每个总线 master master 的的优先级都写在 优先级都写在 SBUSCON SBUSCON 中,中, SBUSCON SBUSCON 寄存寄存器决定第器决定第 11 到第到第 44 个优先级的总线个优先级的总线 mastermaster 。。

Page 17: 第 4 章  S3C44B0X 硬件结构及功能

4.4.44.4.4 写缓冲区操作写缓冲区操作写缓冲区操作,写缓冲区操作, S3C44B0X S3C44B0X 有 有 4 4 个写缓冲个写缓冲

区寄存器来提高存储器的写性能。当写缓冲器模式区寄存器来提高存储器的写性能。当写缓冲器模式使能,使能, CPU CPU 不再将数据直接写入外部存储器而是不再将数据直接写入外部存储器而是将数据写入写缓存区。即便是外部总线已经有其它 将数据写入写缓存区。即便是外部总线已经有其它 mastermaster 占用,例如 占用,例如 DMADMA 操作的情况下,也如此。操作的情况下,也如此。

写缓冲区模块在系统总线没有被别的更高优先写缓冲区模块在系统总线没有被别的更高优先级的 级的 master master 占用时,将数据写入外部存储器。这占用时,将数据写入外部存储器。这样,样, CPU CPU 的性能就提高了,因为 的性能就提高了,因为 CPU CPU 不需要一不需要一直等到写操作结束。直等到写操作结束。

写缓冲区具有 写缓冲区具有 4 4 个寄存器。每个寄存器包括个寄存器。每个寄存器包括一个 一个 32 32 位数据区域,位数据区域, 28 28 位的地址区域和 位的地址区域和 2 2 位的位的状态区域,状态区域,如图如图4-44-4所示所示。 。

Page 18: 第 4 章  S3C44B0X 硬件结构及功能

4.4.54.4.5 特殊寄存器特殊寄存器

1.SYSCFG1.SYSCFG 寄存器寄存器SYSCFG SYSCFG 寄存器控制了系统的寄存器控制了系统的

总体操作,总体操作,如表如表4-174-17所示所示。。2. SBUSCON2. SBUSCON 寄存器寄存器

SBUSCONSBUSCON 寄存器是系统总线寄存器是系统总线优先级控制寄存器,优先级控制寄存器,如表如表4-184-18所示所示。。

Page 19: 第 4 章  S3C44B0X 硬件结构及功能

4.5 DMA4.5 DMA 控制器控制器4.5.1 4.5.1 简述 简述 1. DMA1. DMA 控制器结构控制器结构

S3C44B0XS3C44B0X 有有 44路路 DMADMA 控制器,其中控制器,其中两路称为两路称为 ZDMAZDMA (( General DMAGeneral DMA )被连到)被连到SSB(Samsung System Bus)SSB(Samsung System Bus) 总线上,另外总线上,另外两路称为两路称为 BDMABDMA (( Bridge DMABridge DMA )是)是 SSBSSB和和 SPB(Samsung Peripheral Bus)SPB(Samsung Peripheral Bus) 之间的之间的接口层,相当于一个桥,因此称为桥接口层,相当于一个桥,因此称为桥 DMADMA 。。

ZDMAZDMA 和和 BDMABDMA 都可以由指令启动,都可以由指令启动,也可以有内部外设和外部请求引脚来请求启也可以有内部外设和外部请求引脚来请求启动。动。 ZDMAZDMA 、、 BDMABDMA 结构如结构如图图4-54-5和和图图4-64-6所所示。 示。

Page 20: 第 4 章  S3C44B0X 硬件结构及功能

ZDMAZDMA 用来在存储器到存储器、存用来在存储器到存储器、存储器到储器到 I/OI/O 存储器、存储器、 I/OI/O装置到存储器装置到存储器之间传输数据。之间传输数据。 BDMABDMA 控制器只能在连控制器只能在连到到 SPBSPB 上的上的 I/OI/O 外设(如外设(如 UART, IISUART, IIS 和和SIOSIO )与存储器之间传输数据。)与存储器之间传输数据。

ZDMAZDMA 最大的特性是最大的特性是 on-the-flyon-the-fly 模模式,式, on-the-flyon-the-fly 模式有不可分割的读写模式有不可分割的读写周期,在这点上周期,在这点上 ZDMAZDMA 与普通的与普通的 DMADMA不同,从而可以减少在外部存储器和外不同,从而可以减少在外部存储器和外部可寻址的外设之间部可寻址的外设之间 DMADMA 操作的周期操作的周期数。 数。

Page 21: 第 4 章  S3C44B0X 硬件结构及功能

对于对于 ZDMAZDMA ,, S3C44B0XS3C44B0X 有一有一个个 44 字的字的 FIFOFIFO 缓冲来支持缓冲来支持 44 字突发字突发DMADMA传输,而传输,而 BDMABDMA 不支持突发不支持突发DMADMA传输,因此存储器之间的传输传输,因此存储器之间的传输数据最好用数据最好用 ZDMAZDMA传输,来提供高传输,来提供高的传输速度。 的传输速度。

Page 22: 第 4 章  S3C44B0X 硬件结构及功能

2. 2. 外部外部 DMA REQ/ACK DMA REQ/ACK 协议协议对于对于 ZDMA ZDMA ,有四种类型的外部,有四种类型的外部 DMADMA

请求请求 // 应答协议: 应答协议:

(1) (1) 握手模式握手模式 (Handshake Mode)(Handshake Mode)

一个单独的应答对应一个单独的一个单独的应答对应一个单独的 DMADMA请求,在该模式,请求,在该模式, DMADMA 操作期间的读写周期操作期间的读写周期不可分割,因此在一个不可分割,因此在一个 DMADMA 操作完成前,不操作完成前,不能把总线让给其它总线控制器使用。一次能把总线让给其它总线控制器使用。一次 nXnXDREQDREQ 请求引起一次请求引起一次 DMADMA 传输(可以是一传输(可以是一个字节,一个半字或一个字)。 个字节,一个半字或一个字)。

Page 23: 第 4 章  S3C44B0X 硬件结构及功能

(2) (2) 单步模式单步模式 (Single Step Mode)(Single Step Mode)单步模式意味着一次单步模式意味着一次 DMADMA 传输有两个传输有两个

DMADMA 应答周期(产生两个应答信号应答周期(产生两个应答信号 nXDACnXDACKK )指示)指示 DMADMA 读和写周期,主要用与测试和读和写周期,主要用与测试和调试模式,在读写周期之间,总线控制权可调试模式,在读写周期之间,总线控制权可以让给其它总线控制器。 以让给其它总线控制器。 (3) (3) 连续模式连续模式 (Whole Service Mode) (Whole Service Mode)

在该模式,一次在该模式,一次 DMADMA 请求将产生连续请求将产生连续的的 DMADMA 传输,直到规定的传输,直到规定的 DMADMA 传输数传输传输数传输完,在完,在 DMADMA 传输期间,传输期间, nXDACKnXDACK 一直有效,一直有效,DMADMA 请求信号被释放。并且在每次传输一个请求信号被释放。并且在每次传输一个数据单元后,释放一次总线控制权,以便其数据单元后,释放一次总线控制权,以便其它总线控制器有机会可以占用总线。 它总线控制器有机会可以占用总线。

Page 24: 第 4 章  S3C44B0X 硬件结构及功能

(4) (4) 手动模式(手动模式( Demand ModeDemand Mode ))在该模式,只要在该模式,只要 DMADMA 请求信号一直有请求信号一直有

效,效, DMADMA 传输就持续进行,并且一直占用总传输就持续进行,并且一直占用总线控制权,因此应该预防传输周期超过规定线控制权,因此应该预防传输周期超过规定的最大时间。的最大时间。

3. DMA3. DMA 传输模式传输模式DMADMA 有三种传输模式有三种传输模式 ::

. . 单位传输模式单位传输模式

. . 块传输模式块传输模式

. On_the_fly. On_the_fly 块传模式。 块传模式。

Page 25: 第 4 章  S3C44B0X 硬件结构及功能

(1) Unit(1) Unit 传输模式。传输模式。 11 个单位读,然个单位读,然后后 11 个单位写。个单位写。

(2) Block(2) Block 传输模式。传输模式。 44 个字突发读个字突发读 ,, 然后然后 44 个字突发写,因此传输的个字突发写,因此传输的数据个数应当是数据个数应当是 1616 字节的倍数。 字节的倍数。

(3) On-the-fly (3) On-the-fly 传输模式。传输模式。 11 个单位个单位读或读或 11 个单位写,读写同时进行。 个单位写,读写同时进行。

Page 26: 第 4 章  S3C44B0X 硬件结构及功能

4.5.2 DMA4.5.2 DMA 寄存器寄存器1.ZDMA1.ZDMA 控制寄存器 控制寄存器 ZDCON0/1 ZDCON0/1 是是 ZDMA 0/1 ZDMA 0/1 控制寄存器控制寄存器2. ZDMA2. ZDMA 其他寄存器其他寄存器ZDISRC0/1ZDISRC0/1 是是 ZDMA0/1ZDMA0/1初始源地址寄存器初始源地址寄存器ZDIDES0/1ZDIDES0/1 是是 ZDMA0/1ZDMA0/1 初始目标地址寄存器初始目标地址寄存器ZDICNT0/1ZDICNT0/1 是是 ZDMA0/1ZDMA0/1初始计数寄存器初始计数寄存器ZDCSRC0/1ZDCSRC0/1 是是 ZDMA0/1ZDMA0/1 当前源地址寄存器当前源地址寄存器ZDCDES0/1ZDCDES0/1 是是 ZDMA0/1ZDMA0/1 当前目标地址寄存器当前目标地址寄存器

ZDCCNT0/1ZDCCNT0/1 是是 ZDMA0/1ZDMA0/1 当前计数寄存器当前计数寄存器

Page 27: 第 4 章  S3C44B0X 硬件结构及功能

3. BDMA3. BDMA 控制寄存器控制寄存器BDCON0/1BDCON0/1 是是 BDMA0/1BDMA0/1 控制寄存器控制寄存器

4. BDMA4. BDMA 其他寄存器其他寄存器BDISRC0/1BDISRC0/1 是是 BDMA0/1BDMA0/1 初始源地址寄存器初始源地址寄存器BDIDES0/1BDIDES0/1 是是 BDMA0/1BDMA0/1 初始目标地址寄存初始目标地址寄存器器BDICNT0/1BDICNT0/1 是是 BDMA0/1BDMA0/1 初始计数寄存器初始计数寄存器BDCSRC0/1BDCSRC0/1 是是 BDMA0/1BDMA0/1 当前源地址寄存器当前源地址寄存器BDCDES0/1BDCDES0/1 是是 BDMA0/1BDMA0/1 当前目标地址寄存器当前目标地址寄存器BDCCNT0/1BDCCNT0/1 是是 BDMA0/1 BDMA0/1 当前计数寄存器当前计数寄存器

Page 28: 第 4 章  S3C44B0X 硬件结构及功能

4.6 I/O4.6 I/O 端口端口4.6.1 4.6.1 概述概述

S3C44B0X S3C44B0X 具有具有 7171 个多功能输入个多功能输入 // 输出输出脚。它们包含在 脚。它们包含在 7 7 组端口中:组端口中:

2 2 个 个 9 9 位输入位输入 // 输出端口(端口 输出端口(端口 EE 和和 FF ))2 2 个 个 8 8 位输入位输入 // 输出端口(端口 输出端口(端口 DD 和 和

GG ))1 1 个 个 16 16 位输入位输入 // 输出端口(端口 输出端口(端口 CC ))1 1 个 个 10 10 位输出端口(端口 位输出端口(端口 AA ))1 1 个 个 11 11 位输出端口(端口 位输出端口(端口 BB ))

Page 29: 第 4 章  S3C44B0X 硬件结构及功能

每组端口都可以通过软件配置寄存每组端口都可以通过软件配置寄存器来满足不同系统和设计的需要,在器来满足不同系统和设计的需要,在运行程序之前必须先对每一个用到的运行程序之前必须先对每一个用到的引脚的功能进行设置,如果某些引脚引脚的功能进行设置,如果某些引脚的复用功能没有使用,那么可以将该的复用功能没有使用,那么可以将该引脚设置成引脚设置成 I/OI/O 口。口。

如表 如表 4-274-27~表 ~表 4-334-33列出了列出了 77 个端个端口的引脚定义。口的引脚定义。

Page 30: 第 4 章  S3C44B0X 硬件结构及功能

4.6.2 4.6.2 端口控制寄存器端口控制寄存器

1. 1. 端口配置寄存器(端口配置寄存器( PCONA-GPCONA-G ))由于多数端口都是多功能口,因此,由于多数端口都是多功能口,因此,

需要用“端口配置寄存器 需要用“端口配置寄存器 PCONn”PCONn” 来来设置每个引脚工作在哪一个功能模式下设置每个引脚工作在哪一个功能模式下如如表 表 4-34 4-34 所示,表中的功能所示,表中的功能 11 到功能到功能 44

如如表表4-274-27~表~表4-334-33所示。 所示。

Page 31: 第 4 章  S3C44B0X 硬件结构及功能

2. 2. 端口数据寄存器(端口数据寄存器( PDATA-GPDATA-G ))当端口被设置为输出脚时,输出数当端口被设置为输出脚时,输出数

据的方法就是将数据写入到据的方法就是将数据写入到 PDATnPDATn 的的相应位中;当端口被设置位输入脚时,相应位中;当端口被设置位输入脚时,读入数据的方法就是将读入数据的方法就是将 PDATnPDATn 中的相中的相应位读出。应位读出。3. 3. 端口上拉设置寄存器(端口上拉设置寄存器( PUPC-GPUPC-G ))

端口上拉寄存器用来设定端口上拉寄存器用来设定 PC-PGPC-PG这几组端口是否具有内部上拉。当这几组端口是否具有内部上拉。当 PUPPUPnn 的对应位为的对应位为 00 时,该引脚上的上拉使时,该引脚上的上拉使能,当为能,当为 11 时,该引脚上的上拉禁能。时,该引脚上的上拉禁能。

Page 32: 第 4 章  S3C44B0X 硬件结构及功能

4. 4. 外部中断控制寄存器外部中断控制寄存器该寄存器是为 该寄存器是为 PG PG 的第 的第 3 3 功能——外功能——外

部中断输入口功能设置的,该寄存器可用来部中断输入口功能设置的,该寄存器可用来设置 设置 EXINTEXINT (外部中断)请求输入的模式:(外部中断)请求输入的模式:低电平触发、高电平触发、下降沿触发、上低电平触发、高电平触发、下降沿触发、上升沿触发或是边沿触发。升沿触发或是边沿触发。

下面我们以 下面我们以 PF PF 口的相关寄存器为例进口的相关寄存器为例进行介绍,行介绍, PF PF 的寄存器有 的寄存器有 33 个:个: PCONFPCONF ,,PDATFPDATF ,, PUPFPUPF 。如。如表 表 4-354-35~表~表4-374-37所示所示PF PF 端口的相关寄存器信息 端口的相关寄存器信息

Page 33: 第 4 章  S3C44B0X 硬件结构及功能

4.7 PWM4.7 PWM 定时器和看门狗定时器定时器和看门狗定时器4.7.1 4.7.1 概述概述

S3C44B0XS3C44B0X 具有具有 66 个个 1616 位定时器,每个定位定时器,每个定时器可以按照中断模式或时器可以按照中断模式或 DMADMA 模式工作。定时模式工作。定时器器 00 ,, 11 ,, 22 ,, 33 和和 44具有具有 PWMPWM 功能(脉宽调功能(脉宽调制)。定时器制)。定时器 55 是一个内部定时器不具有对外输是一个内部定时器不具有对外输出口线。定时器出口线。定时器 00具有死区发生器,通常用于大具有死区发生器,通常用于大电流设备应用。电流设备应用。

S3C44B0XS3C44B0X 的看门狗定时器用来在由于错误的看门狗定时器用来在由于错误如干扰和系统错误造成的程序运行打乱时,恢复如干扰和系统错误造成的程序运行打乱时,恢复正常操作它也能使用一个正常的正常操作它也能使用一个正常的 1616 位定时器来请位定时器来请求中断服务。看门狗定时器产生复位信号求中断服务。看门狗定时器产生复位信号 (128(128 个个系统时钟周期系统时钟周期 )) 。。

Page 34: 第 4 章  S3C44B0X 硬件结构及功能

特性特性 ◆ ◆ 66 个个 16 16 位定时器可以工作在中断模式或 位定时器可以工作在中断模式或

DMADMA 模式;模式; ◆ ◆ 33 个个 8 8 位预分频器和位预分频器和 22 个个 55 位分割器和位分割器和 11

个个 44 位分割器;位分割器;◆ ◆ 输出波形的占空比可编程控制(输出波形的占空比可编程控制( PWMPWM ))◆ ◆ 自动加载模式或单触发脉冲模式;自动加载模式或单触发脉冲模式;◆ ◆ 死区产生器;死区产生器;◆ ◆ 支持外部中断源;支持外部中断源;◆ ◆ 看门狗定时器溢出产生复位信号。 看门狗定时器溢出产生复位信号。

Page 35: 第 4 章  S3C44B0X 硬件结构及功能

4.7.2 PWM 4.7.2 PWM 定时器操作定时器操作1. 1. 预分频器和分割器预分频器和分割器

如如图图4-84-8所示,定时器所示,定时器 00 和定时器和定时器 11分享同分享同一个一个 88 位的预分频器,定时器位的预分频器,定时器 22 和和 33分享一个分享一个 88位预分频器,定时器位预分频器,定时器 44 和和 55分享一个分享一个 88 位预分频位预分频器。器。

除了定时器除了定时器 44 和和 55 ,其它每个定时器还拥,其它每个定时器还拥有一个具有有一个具有 55 个不同的分频信号输出(个不同的分频信号输出( 1/2, 1/4, 1/2, 1/4, 1/8, 1/16, 1/321/8, 1/16, 1/32 )的时钟分割器。)的时钟分割器。

定时器定时器 44 和和 5 5 则具有则具有 44 个分频信号输出个分频信号输出(( 1/2, 1/4, 1/8,1/161/2, 1/4, 1/8,1/16 )的时钟分割器和一个输入)的时钟分割器和一个输入信号线 信号线 TCLK/EXTCLKTCLK/EXTCLK 。 。

Page 36: 第 4 章  S3C44B0X 硬件结构及功能

每个定时器从时钟分割器的输出得每个定时器从时钟分割器的输出得到它们自己的时钟源,时钟分割器则从到它们自己的时钟源,时钟分割器则从对应的对应的 88 位预分频器得到时钟源。位预分频器得到时钟源。 88 位位预分频器是可编程的,它的频率通过预分频器是可编程的,它的频率通过 MMCLKCLK 除以保存在除以保存在 TCFG0TCFG0 和 和 TCFG1TCFG1 寄寄存器中除数的结果设定。存器中除数的结果设定。

88 位预分频器和一个独立的位预分频器和一个独立的 44 位分位分割器组合起来可以产生割器组合起来可以产生如如表表4-384-38所示的频所示的频率定时器时钟源输出。 率定时器时钟源输出。

Page 37: 第 4 章  S3C44B0X 硬件结构及功能

2. 2. 基本定时器操作基本定时器操作每个定时器具有一个倒计时器,实每个定时器具有一个倒计时器,实

际上是一个通过定时器时钟源驱动的际上是一个通过定时器时钟源驱动的 1616位倒计时寄存器位倒计时寄存器 TCNTnTCNTn 。。

当倒计时数到当倒计时数到 00 ,定时器中断请求,定时器中断请求就产生了,这个中断通知就产生了,这个中断通知 CPUCPU 定时器定定时器定时已经完成。时已经完成。

当定时器倒计时数到达当定时器倒计时数到达 00 ,寄存器,寄存器TCNTBnTCNTBn 的对应值就会自动地载入到倒的对应值就会自动地载入到倒计时器从而继续下一次操作。计时器从而继续下一次操作。

Page 38: 第 4 章  S3C44B0X 硬件结构及功能

但是,如果定时器停止,例如,但是,如果定时器停止,例如,在定时器运行模式下,清除了寄存在定时器运行模式下,清除了寄存器器 TCONnTCONn 中的定时器使能位,那中的定时器使能位,那么么 TCNTBnTCNTBn 的值就不会被重新载入的值就不会被重新载入到倒计时器中。到倒计时器中。

Page 39: 第 4 章  S3C44B0X 硬件结构及功能

定时器使能后,定时计数缓冲区定时器使能后,定时计数缓冲区寄存器(寄存器( TCNTBnTCNTBn )具有一个初始值,)具有一个初始值,用来载入到倒计时器计数器用来载入到倒计时器计数器 TCNTnTCNTn 。。定时器的比较缓冲区寄存器(定时器的比较缓冲区寄存器( TCMPTCMPBnBn )具有一个初始值,用来载入到比)具有一个初始值,用来载入到比较寄存器较寄存器 TCMPnTCMPn 与倒计时值相比较。与倒计时值相比较。TCNTBnTCNTBn 和和 TCMPBnTCMPBn 这两个缓冲区这两个缓冲区的应用使定时器能够使定时器在频率的应用使定时器能够使定时器在频率和占空比变化时,仍然产生一个稳定和占空比变化时,仍然产生一个稳定的输出。的输出。

Page 40: 第 4 章  S3C44B0X 硬件结构及功能

定时器(除了定时器定时器(除了定时器 55 )都具有)都具有TCNTBn,TCNTn,TCMPBnTCNTBn,TCNTn,TCMPBn 和和 TCMTCMPnPn 。。 TCNTBnTCNTBn 和和 TCMPBnTCMPBn 的值在的值在定时器值达到定时器值达到 00 时分别载入时分别载入 TCNTnTCNTn和和 TCMPnTCMPn 。当。当 TCNTnTCNTn达到达到 00 时,时,如果中断使能,中断请求将会产生。如果中断使能,中断请求将会产生。(TCNTn(TCNTn 和和 TCMPnTCMPn 是内部寄存器,是内部寄存器,TCNTnTCNTn 寄存器的值可以通过寄存器的值可以通过 TCNTTCNTOnOn 寄存器读出寄存器读出 )) 。如。如图图4-84-8所示。所示。

Page 41: 第 4 章  S3C44B0X 硬件结构及功能

4.7.3 PWM 4.7.3 PWM 定时器控制寄存器定时器控制寄存器1. 1. 定时器配置寄存器定时器配置寄存器 00 (( TCFG0TCFG0 ))TCFG0TCFG0 主要是配置主要是配置 33 个个 88 位预分频器值和死区位预分频器值和死区长度值。长度值。

定时器输入时钟频率=定时器输入时钟频率= MCLK/{MCLK/{ 预分频值预分频值 +1}/+1}/{{ 分分 割值割值 }}

其中预分频值为其中预分频值为 00~~ 255255 ,分割值为,分割值为 22 ,, 44 ,,88 ,, 1616 ,, 3232 。如表。如表 4-394-39 所示。 所示。

Page 42: 第 4 章  S3C44B0X 硬件结构及功能

22.. 定时器配置寄存器 定时器配置寄存器 11 (( TCFGTCFG11 ))

TCFG1TCFG1 主要是配置主要是配置 6-MUX 6-MUX 和和DMADMA 模式。如表模式。如表 4-404-40 所示。所示。

Page 43: 第 4 章  S3C44B0X 硬件结构及功能

3. 3. 定时器控制寄存器(定时器控制寄存器( TCONTCON ))如表如表 4-414-41 所示:所示:

TCON 位 描述 初始值Timer5自动重载开 /

关 [26]这位确定定时器 5的自动加载的开 /关0= 不自动加载 1=自动加载 0

Timer5手动更新 [25]这位确定定时器 5的手动更新0= 无操作 1=更新 TCNTB5

0

Timer5启动 /停止 [24]这位确定定时器 5的启动 /停止0= 停止 1=启动 0

Timer4自动重载开 /关 [23]

这位确定定时器 4的自动加载的开 /关0= 不自动加载 1=自动加载 0

Timer4输出反转开 /关 [22]

这位确定定时器 4输出反转器的开 /关0= 不反转 1=反转 TOUT4

0

Timer4手动更新 [21]这位确定定时器 4的手动更新0= 无操作 1=更新 TCNTB4, TCMPB4

0

Timer4启动 /停止 [20]这位确定定时器 4的启动 /停止0= 停止 1=启动 0

Page 44: 第 4 章  S3C44B0X 硬件结构及功能

4. 4. 定时器定时器 nn 计数缓冲区寄存器和比计数缓冲区寄存器和比较缓冲区寄存器(较缓冲区寄存器( TCNTBn,TCMPTCNTBn,TCMP

BnBn ))TCMPBnTCMPBn 是是 1616 位定时器位定时器 Timer0~Timer4Timer0~Timer4

比较缓冲器寄存器,比较缓冲器寄存器, TCNTBnTCNTBn 是是 1616 位定时器位定时器 TiTimer0~Timer5mer0~Timer5 计数缓冲寄存器,计数缓冲寄存器, TCNTOn TCNTOn 是是 1166 位定时器位定时器 Timer0Timer0 ~~ Timer5Timer5 观察寄存器。他们观察寄存器。他们初值都为初值都为 00 。。

在以上的寄存器中,定时器在以上的寄存器中,定时器 nn 计数计数 // 比较缓比较缓冲寄存器可读写寄存器,定时器冲寄存器可读写寄存器,定时器 nn 计数观察寄存计数观察寄存器为只读寄存器。器为只读寄存器。

Page 45: 第 4 章  S3C44B0X 硬件结构及功能

4.7.4 4.7.4 看门狗定时器看门狗定时器

1. 1. 概述概述S3C44B0XS3C44B0X 的看门狗定时器用来在的看门狗定时器用来在

由于错误如干扰和系统错误造成的程序由于错误如干扰和系统错误造成的程序运行打乱时恢复正常操作运行打乱时恢复正常操作 ,, 它也能使用它也能使用一个正常的一个正常的 1616 位定时器来请求中断服务。位定时器来请求中断服务。 看门狗定时器产生复位信号 看门狗定时器产生复位信号 128128 个系统个系统时钟周期。时钟周期。

Page 46: 第 4 章  S3C44B0X 硬件结构及功能

当当 S3C44B0XS3C44B0X 使用使用 Embedded Embedded ICEICE 工作在调试模式时,看门狗定工作在调试模式时,看门狗定时器必须不工作。看门狗定时器能时器必须不工作。看门狗定时器能通过通过 CPUCPU 核心信号(核心信号( DBGACKDBGACK 信信号)确定当前的模式是否在调试模号)确定当前的模式是否在调试模式,一旦式,一旦 DBGACKDBGACK 信号有效,看门信号有效,看门狗定时器的复位输出当定时器过期狗定时器的复位输出当定时器过期时不激活。时不激活。

结构如图结构如图 4-144-14 所示。所示。

Page 47: 第 4 章  S3C44B0X 硬件结构及功能

2. 2. 看门狗定时器时钟频率看门狗定时器时钟频率看门狗时钟频率计算公式如下:看门狗时钟频率计算公式如下:

t_watchdog = 1/( MCLK/ (Prescaler vt_watchdog = 1/( MCLK/ (Prescaler value + 1)/ Division_factor ) alue + 1)/ Division_factor )

3. 3. 看门狗定时器寄存器包括以下种类寄存器:看门狗定时器寄存器包括以下种类寄存器:(( 11 )看门狗定时器控制寄存器 )看门狗定时器控制寄存器

看门狗定时器控制寄存器定义如表看门狗定时器控制寄存器定义如表 4-424-42所示。所示。

Page 48: 第 4 章  S3C44B0X 硬件结构及功能

(2) (2) 看门狗定时器数据寄存器 看门狗定时器数据寄存器 WTDATWTDAT 是一个是一个 1616 位寄存器,规定看门位寄存器,规定看门

狗定时器超时周期。狗定时器超时周期。 WTDATWTDAT 的内容在初始的内容在初始操作时,不能自动加载进定时器计数寄存器。操作时,不能自动加载进定时器计数寄存器。可是定时器计数寄存器在使用初始值可是定时器计数寄存器在使用初始值 0X80000X8000第一次超时出现以后,第一次超时出现以后, WTDATWTDAT 的值将自动的值将自动加载进加载进 WTCNTWTCNT 。 。

(3) (3) 看门狗定时器计数寄存器 看门狗定时器计数寄存器 WTCNTWTCNT 是是 1616 位看门狗定时器计数寄存位看门狗定时器计数寄存

器,在第一次使用时,必须设置到初始值。器,在第一次使用时,必须设置到初始值。

Page 49: 第 4 章  S3C44B0X 硬件结构及功能

4.8 4.8 日历时钟日历时钟4.8.1 4.8.1 概述概述

实时时钟实时时钟 (RTC)(RTC) 器件是一种能提供日历/器件是一种能提供日历/时钟、数据存储等功能的专用集成电路,常用时钟、数据存储等功能的专用集成电路,常用作各种计算机系统的时钟信号源和参数设置存作各种计算机系统的时钟信号源和参数设置存储电路。储电路。 RTCRTC 具有计时准确、耗电低和体积小具有计时准确、耗电低和体积小等特点特别适用于在各种嵌入式系统中记录事等特点特别适用于在各种嵌入式系统中记录事件发生的时间和相关信息,尤其是在通信工程、件发生的时间和相关信息,尤其是在通信工程、电力自动化工业控制等自动化程度较高领域的电力自动化工业控制等自动化程度较高领域的无人值守环境。随着集成电路技术的不断发展,无人值守环境。随着集成电路技术的不断发展,RTCRTC 器件的新品也不断推出。 器件的新品也不断推出。

Page 50: 第 4 章  S3C44B0X 硬件结构及功能

这些新品不仅具有准确的这些新品不仅具有准确的 RTCRTC ,还,还有大容量的存储器、温度传感器和有大容量的存储器、温度传感器和 AA//DD 数据采集通道等,已成为集数据采集通道等,已成为集 RTCRTC 、数、数据采集和存储于一体的综合功能器件,据采集和存储于一体的综合功能器件,特别适用于以微控制器为核心的嵌入式特别适用于以微控制器为核心的嵌入式系统。系统。

RTCRTC 器件与微控制器之间大都采用器件与微控制器之间大都采用连线简单的串行接口,诸如连线简单的串行接口,诸如 I2CI2C 、、 SPISPI 、、MICROWIREMICROWIRE 和和 CANCAN 等串行总线接口。等串行总线接口。这些串口由这些串口由 2~32~3根线,分为同步和异步。根线,分为同步和异步。

Page 51: 第 4 章  S3C44B0X 硬件结构及功能

4.8.2 RTC 4.8.2 RTC 时钟单元时钟单元

RTC (Real Time Clock)RTC (Real Time Clock) 单元能在单元能在系统断电时系统断电时 ,, 通过备份电池来供电通过备份电池来供电 ,RTC,RTC能通过能通过 ARMARM 的的 STRB/LDRBSTRB/LDRB 指令传输指令传输88 位位 BCDBCD 数据到数据到 CPU,CPU, 该数据包括时、该数据包括时、分、秒、小时、天、月和年,分、秒、小时、天、月和年, RTCRTC 使用使用一个外部一个外部 32.76832.768 的晶体也能执行报警功的晶体也能执行报警功能。能。

RTCRTC 功能框图如图功能框图如图 4-154-15 所示。所示。

Page 52: 第 4 章  S3C44B0X 硬件结构及功能

特征特征 : : ◆ ◆ 日历功能 日历功能 ◆ ◆ 支持闰年 支持闰年 ◆ ◆ 解决了解决了 20002000 年问题 年问题 ◆ ◆ 独立的供电 独立的供电 ◆ ◆ 支持毫秒滴答时间中断作为支持毫秒滴答时间中断作为 RTOSRTOS

核核 的时间滴答 的时间滴答 ◆ ◆ 报警功能 报警功能

Page 53: 第 4 章  S3C44B0X 硬件结构及功能

11. . 闰年产生器闰年产生器这个模块可以决定每个月的最后日期是 这个模块可以决定每个月的最后日期是 2828 ,,

2929 ,, 30 30 还是 还是 3131 ,并可以根据是否是闰年来,并可以根据是否是闰年来决定日期。由于 决定日期。由于 8 8 位的计数器只能表示 位的计数器只能表示 2 2 个 个 BCD BCD 码,因此它不能判断 码,因此它不能判断 00 00 年究竟是不是闰年究竟是不是闰年。例如它不能够满足 年。例如它不能够满足 1900 1900 年和 年和 2000 2000 年的年的差别。为了解决这个问题,差别。为了解决这个问题, S3C44B0X S3C44B0X 内的 内的 RRTC TC 模块中有一个固定的逻辑,用来支持 模块中有一个固定的逻辑,用来支持 2000 2000 年为闰年。请注意虽然 年为闰年。请注意虽然 2000 2000 年是闰年,但 年是闰年,但 191900 00 年不是闰年。因此,年不是闰年。因此, S3C44B0XS3C44B0X 中 中 00 00 代代表 表 2000 2000 年,而不是 年,而不是 1900 1900 年。年。

Page 54: 第 4 章  S3C44B0X 硬件结构及功能

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 的值。

Page 55: 第 4 章  S3C44B0X 硬件结构及功能

3.3. 备用电池操作备用电池操作RTCRTC 逻辑模块可以通过一个备用电逻辑模块可以通过一个备用电

池供电。备用电池的阳极通过 池供电。备用电池的阳极通过 RTCVDRTCVDD D 脚接至内部的 脚接至内部的 RTCRTC 模块,即使系统模块,即使系统电源关闭,也能够提供电能保证 电源关闭,也能够提供电能保证 RTC RTC 模块正常工作。模块正常工作。

在系统电源关闭时,在系统电源关闭时, CPU CPU 和 和 RTC RTC 逻辑模块之间的接口被锁住,使备用电逻辑模块之间的接口被锁住,使备用电池仅需驱动 池仅需驱动 RTC RTC 的晶振电路和 的晶振电路和 BCD BCD 计数器,从而使功耗降到最低。计数器,从而使功耗降到最低。

Page 56: 第 4 章  S3C44B0X 硬件结构及功能

4. 4. 报警功能报警功能在掉电模式或正常工作模式下,在掉电模式或正常工作模式下, RTRT

C C 能够在指定的时间产生一个报警信号。能够在指定的时间产生一个报警信号。在正常工作模式下,报警中断(在正常工作模式下,报警中断( ALMINALMINTT )被激活。在掉电模式下,电源管理)被激活。在掉电模式下,电源管理苏醒信号也与 苏醒信号也与 ALMINT ALMINT 一样处于激活一样处于激活状态。状态。

RTC RTC 的报警寄存器:的报警寄存器: RTCALM RTCALM 可可以决定报警的使能或禁止和报警时间的以决定报警的使能或禁止和报警时间的设置条件。 设置条件。

Page 57: 第 4 章  S3C44B0X 硬件结构及功能

5.5. 节拍中断节拍中断RTC RTC 节拍时间用于中断请求。节拍时间用于中断请求。 TICNT TICNT

寄存器具有一个中断使能位,同时其中的计数寄存器具有一个中断使能位,同时其中的计数值用于中断。当计数值到达 值用于中断。当计数值到达 0 0 时,节拍时间时,节拍时间中断就会触发。中断的间隔时间计算如下:中断就会触发。中断的间隔时间计算如下:

Period=(n+1)/128 Period=(n+1)/128 秒秒其中其中 nn 为节拍时间计数值(为节拍时间计数值( 11~~ 127127 )。)。

这个 这个 RTC RTC 时间节拍中断功能可以作为 时间节拍中断功能可以作为 RTOSRTOS (实时操作系统)内核的时间节拍。如(实时操作系统)内核的时间节拍。如果节拍从 果节拍从 RTCRTC 时间节拍产生,则 时间节拍产生,则 RTOS RTOS 内内部与时间相关的功能将一直与实时时钟同步。部与时间相关的功能将一直与实时时钟同步。

Page 58: 第 4 章  S3C44B0X 硬件结构及功能

6.6.循环复位功能循环复位功能循环复位功能可以通过 循环复位功能可以通过 RTC RTC 循环复位循环复位

寄存器 寄存器 RTCRST RTCRST 来操作。你可以选循环边来操作。你可以选循环边界时间(界时间( 3030 ,, 4040 ,或 ,或 50 50 秒),在循环复秒),在循环复位操作中,这个时间将加载到秒进位产生器,位操作中,这个时间将加载到秒进位产生器,当秒计时到达该时间时就进位。例如,如果当秒计时到达该时间时就进位。例如,如果当前时间是 当前时间是 2323 :: 3737 :: 4747 ,循环边界选择,循环边界选择为 为 40 40 秒,则循环复位操作将当前时间修改秒,则循环复位操作将当前时间修改为 为 2323 :: 3838 :: 0000 。。注意:所有的 注意:所有的 RTC RTC 寄存器必须使用 寄存器必须使用 STRB, STRB, LDRBLDRB 指令或 指令或 char char 类型指针,以字节方式类型指针,以字节方式操作。 操作。

Page 59: 第 4 章  S3C44B0X 硬件结构及功能

4.8.3 4.8.3 实时时钟寄存器定义实时时钟寄存器定义实时控制寄存器(实时控制寄存器( RTCCONRTCCON ))

RTCCON RTCCON 寄存器包括 寄存器包括 4 4 个位例如 个位例如 RTRTCENCEN ,用来控制对 ,用来控制对 BCD BCD 寄存器的读寄存器的读 // 写使写使能。能。 CLKSEL,CNTSEL CLKSEL,CNTSEL 和 和 CLKRST CLKRST 用来用来测试。测试。

RTCEN RTCEN 位可以控制所有 位可以控制所有 CPU CPU 和 和 RTRTC C 之间的所有接口,因此在 之间的所有接口,因此在 RTC RTC 控制程序控制程序中,应当将它置 中,应当将它置 11 从而使得在系统复位之后从而使得在系统复位之后能够读写这些寄存器。而在电源关闭之前能够读写这些寄存器。而在电源关闭之前 ,R,RTCEN TCEN 位更改清 位更改清 0 0 从而阻止无意中对 从而阻止无意中对 RTC RTC 寄存器的写入。寄存器的写入。

Page 60: 第 4 章  S3C44B0X 硬件结构及功能

所有的 所有的 RTC RTC 寄存器都应该以字节为单位进寄存器都应该以字节为单位进行操作。行操作。 RTCALM RTCALM 寄存器决定了是否使能报警功寄存器决定了是否使能报警功能,以及报警时间。注意在掉电模式下,能,以及报警时间。注意在掉电模式下, RTCALRTCALM M 寄存器通过 寄存器通过 ALMINT ALMINT 和 和 PMWKUP PMWKUP 产生报警产生报警信号,但在正常工作模式下只有 信号,但在正常工作模式下只有 ALMINT ALMINT 模式。模式。

ALMSEC~ALMYEARALMSEC~ALMYEAR 为为 RTCRTC 秒、分钟、小秒、分钟、小时、日、月、年报警数据寄存器;时、日、月、年报警数据寄存器; BCDSEC~BCBCDSEC~BCDYEARDYEAR 为秒、分钟、小时、日、星期、月、年数为秒、分钟、小时、日、星期、月、年数据寄存器。据寄存器。

RTC ROUNDRTC ROUND 是秒复位寄存器。是秒复位寄存器。TICNT TICNT 为时间片计数寄存器,它包含时间片为时间片计数寄存器,它包含时间片

中断禁止中断禁止 //允许控制和时间片计数值。允许控制和时间片计数值。各控制寄存器如表各控制寄存器如表 4-434-43 所示。所示。

Page 61: 第 4 章  S3C44B0X 硬件结构及功能

4.9 4.9 中断管理中断管理

4.9.1 4.9.1 概述概述S3C44B0X S3C44B0X 的中断控制器可以接收的中断控制器可以接收

来自 来自 30 30 个中断源的请求。中断控制器个中断源的请求。中断控制器的作用,就是响应来自的作用,就是响应来自 FIQ FIQ 或 或 IRQ IRQ 的的中断,并请求内核对中断进行处理。当中断,并请求内核对中断进行处理。当有多个中断同时发生的时候,中断控制有多个中断同时发生的时候,中断控制器要决定首先处理哪一个中断。器要决定首先处理哪一个中断。

Page 62: 第 4 章  S3C44B0X 硬件结构及功能

4.9.2 4.9.2 中断控制器中断控制器1. 1. 中断模式中断模式

ARM7TDMI ARM7TDMI 有 有 2 2 种类型的中断模式,种类型的中断模式, FIFIQQ (快速中断请求)或 (快速中断请求)或 IRQIRQ (普通中断请求)。(普通中断请求)。2. PSR2. PSR 的 的 F F 位和 位和 I I 位位

PSR PSR 指 指 ARM7TDMI ARM7TDMI 处理器的程序状态处理器的程序状态寄存器。如果 寄存器。如果 PSR PSR 的 的 F F 位被设置为位被设置为 11 ,处理,处理器将不接受来自中断控制器的 器将不接受来自中断控制器的 FIQFIQ 。如果 。如果 PSPSR R 的 的 I I 位被设置为 位被设置为 11 ,处理器将不接受来自中,处理器将不接受来自中断控制器的 断控制器的 IRQIRQ 。。

因此,为了使能中断相应机制,因此,为了使能中断相应机制, PSR PSR 的 的 F F 位或 位或 I I 位必须被清 位必须被清 00 ,同时 ,同时 INTMASKINTMASK 的的相应位必须被清 相应位必须被清 00 。 。

Page 63: 第 4 章  S3C44B0X 硬件结构及功能

3. 3. 中断登记寄存器中断登记寄存器如果你将所有的中断源定义为 如果你将所有的中断源定义为 IRQ IRQ 中断中断 ,,

如果同一时刻发生了如果同一时刻发生了 10 10 个中断请求,可以通个中断请求,可以通过读取中断登记寄存器来了解哪些中断发生了,过读取中断登记寄存器来了解哪些中断发生了,并对产生的中断依次进行处理,这也就是通过并对产生的中断依次进行处理,这也就是通过软件的方式决定了中断服务的优先级。软件的方式决定了中断服务的优先级。

中断登记寄存器中的位显示了某个中断请中断登记寄存器中的位显示了某个中断请求是否还未被处理。一旦某个登记位被置位,求是否还未被处理。一旦某个登记位被置位,当当 PSR PSR 的 的 I I 标志位或 标志位或 F F 标志位被清 标志位被清 0 0 时,时,中断服务程序就会启动执行。中断服务程序就会启动执行。

中断登记寄存器是一个只读寄存器,所以中断登记寄存器是一个只读寄存器,所以在服务程序中要想清除登记位时,要采用在 在服务程序中要想清除登记位时,要采用在 I_II_ISPC SPC 或 或 F_ISPC F_ISPC 中相应位写入 中相应位写入 1 1 的方式实现。的方式实现。

Page 64: 第 4 章  S3C44B0X 硬件结构及功能

4.INTMSK 4.INTMSK 中断屏蔽寄存器中断屏蔽寄存器如果该寄存器的某一个位被置 如果该寄存器的某一个位被置 11 ,则该,则该

位对应的中断响应被禁止了。如果某个中断位对应的中断响应被禁止了。如果某个中断在 在 INTMSKINTMSK 寄存器的对应位为 寄存器的对应位为 00 ,则这个,则这个中断发生时将会正常被响应。中断发生时将会正常被响应。

如果某个中断的在 如果某个中断的在 INTMSK INTMSK 的寄存器的寄存器中的对应位为 中的对应位为 11 ,但是这个中断发生了,它,但是这个中断发生了,它的登记位还是会置位。的登记位还是会置位。

如果全局屏蔽位被置 如果全局屏蔽位被置 11 ,那么当中断发,那么当中断发生时,中断登记位还是会置位,但是所有的生时,中断登记位还是会置位,但是所有的中断都不会得到服务。中断都不会得到服务。

Page 65: 第 4 章  S3C44B0X 硬件结构及功能

5. 5. 中断源中断源在 在 30 30 个中断源中,有 个中断源中,有 26 26 个中断源提供给个中断源提供给

中断控制器。中断控制器。 4 4 个外部中断个外部中断 (EINT4/5/6/7)(EINT4/5/6/7) 请求是请求是通过“或”的形式提供为 通过“或”的形式提供为 1 1 个中断源送至中断控制个中断源送至中断控制器,因此,器,因此, ISR(ISR( 中断服务程序中断服务程序 )) 要通过读取 要通过读取 EXTIEXTINPND[3:0]NPND[3:0] 寄存器来区别这 寄存器来区别这 4 4 个中断源。个中断源。

它们的中断处理程序(它们的中断处理程序( ISRISR )必须在处理结)必须在处理结束时将束时将 EXTINPND[3:0]EXTINPND[3:0] 中对应位写 中对应位写 1 1 来清除该位。来清除该位。2 2 个 个 UART UART 错误中断占用一个中断源。错误中断占用一个中断源。

中断源如中断源如表 表 4-444-44 和 图 和 图 4-164-16 所示。所示。

Page 66: 第 4 章  S3C44B0X 硬件结构及功能

(1) (1) 中断请求寄存器 中断请求寄存器 INTPNDINTPNDINTPND INTPND 寄存器中的 寄存器中的 26 26 个位对应着每个位对应着每

一个中断源。如表一个中断源。如表 4-464-46 所示,当中断发生时,所示,当中断发生时,INTPND INTPND 中相应的登记位就会置 中相应的登记位就会置 11 ,说明该,说明该中断还未被处理。中断服务程序中必须清除该中断还未被处理。中断服务程序中必须清除该登记位,从而使系统能够及时响应下一次中断。登记位,从而使系统能够及时响应下一次中断。

INTPND INTPND 是一个只读寄存器,清除登记是一个只读寄存器,清除登记位的方式是向 位的方式是向 I_ISPC/F_ISPCI_ISPC/F_ISPC 的相应位写入的相应位写入““ 1”1” 。。

在多个中断同时发生时,在多个中断同时发生时, INTPND INTPND 将所将所有发生的中断登记位都置 有发生的中断登记位都置 11 。虽然中断请求。虽然中断请求可以通过 可以通过 INTMSK INTMSK 寄存器屏蔽,但是如果被寄存器屏蔽,但是如果被屏蔽的中断发生了,屏蔽的中断发生了, INTPND INTPND 中的登记位仍中的登记位仍然会被置 然会被置 11 。。

Page 67: 第 4 章  S3C44B0X 硬件结构及功能

(2) (2) 中断模式寄存器 中断模式寄存器 INTMODINTMOD

INTMOD INTMOD 寄存器中的 寄存器中的 26 26 个位个位对应着每一个中断源。如表对应着每一个中断源。如表 4-464-46 所所示,当 示,当 INTMOD INTMOD 中的响应位设置中的响应位设置为为 11 ,则,则 ARM7TDMI ARM7TDMI 内核将以 内核将以 FIFIQQ (快速中断)模式响应此中断。(快速中断)模式响应此中断。否则,以 否则,以 IRQIRQ (普通中断)模式响(普通中断)模式响应。应。

Page 68: 第 4 章  S3C44B0X 硬件结构及功能

(3) (3) 中断屏蔽寄存器 中断屏蔽寄存器 INTMSKINTMSK

在 在 INTMSK INTMSK 中,除了全局屏蔽位,其中,除了全局屏蔽位,其余的 余的 26 26 位依次对应着每个中断源。当位依次对应着每个中断源。当 INTMINTMSK SK 的某个屏蔽位为 的某个屏蔽位为 1 1 同时该位对应的中断同时该位对应的中断事件发生了,此时 事件发生了,此时 CPU CPU 事不会对中断请求事不会对中断请求进行响应的。如果屏蔽位为进行响应的。如果屏蔽位为 00 ,则 ,则 CPU CPU 将将对中断请求进行响应。对中断请求进行响应。

如果全局屏蔽位为 如果全局屏蔽位为 11 ,则所有的中断请,则所有的中断请求都不会被响应,但是当中断发生时,相应求都不会被响应,但是当中断发生时,相应的登记位仍将被置 的登记位仍将被置 11 。。 INTMSK INTMSK 的位定义的位定义如表如表 4-464-46 所示。所示。

Page 69: 第 4 章  S3C44B0X 硬件结构及功能

(4) IRQ (4) IRQ 矢量模式寄存器矢量模式寄存器优先级产生模块包括优先级产生模块包括 55 个单元,个单元, 11 个主单元个主单元

和和 44 个辅单元。每个辅单元管理个辅单元。每个辅单元管理 66 个中断源。主优个中断源。主优先级产生单元管理先级产生单元管理 44 个辅单元和个辅单元和 22 个中断源。 个中断源。 

每个辅单元有每个辅单元有 44 个可编程的优先级源个可编程的优先级源 sGnsGn 和 和 22 个固定优先级源个固定优先级源 sGKnsGKn 。每个辅单元的。每个辅单元的 44 个中断个中断源优先级由 源优先级由 I_PSLVI_PSLV 寄存器决定。另外寄存器决定。另外 22 个固定个固定源的优先级在源的优先级在 66 个源中是最低的。主优先级产生单个源中是最低的。主优先级产生单元通过元通过 I_PMSTI_PMST 寄存器决定寄存器决定 44 个辅单元和个辅单元和 22 个中个中断源之间的优先级。中断源断源之间的优先级。中断源 INT_RTCINT_RTC 和和 INT_ADCINT_ADC

在在 2626 个中断源中优先级是最低的。个中断源中优先级是最低的。如果几个中断请求同时发生,如果几个中断请求同时发生, I_ISPRI_ISPR 寄存器寄存器

中将其中具有最高优先级的中断源对应位置中将其中具有最高优先级的中断源对应位置 11 。 。

Page 70: 第 4 章  S3C44B0X 硬件结构及功能

(5) IRQ/FIQ(5) IRQ/FIQ 中断服务寄存器中断服务寄存器I_ISPR/F_ISPRI_ISPR/F_ISPR 是是 IRQ/FIQIRQ/FIQ 中断模中断模

式下的中断服务寄存器,式下的中断服务寄存器, I_ISPC/F_ISPI_ISPC/F_ISPCC 是是 IRQ/FIQIRQ/FIQ 中断模式下的清除中断服中断模式下的清除中断服务寄存器。务寄存器。

I_ISPC/F_ISPC I_ISPC/F_ISPC 清除中断登记位清除中断登记位(( INTPNDINTPND )。)。 I_ISPC/F_ISPC I_ISPC/F_ISPC 也通也通知中断控制器,中断服务(知中断控制器,中断服务( ISRISR )已经)已经结束。在某个中断的 结束。在某个中断的 ISR ISR 结束时,该结束时,该中断相应的登记位也必须被清零。 中断相应的登记位也必须被清零。

Page 71: 第 4 章  S3C44B0X 硬件结构及功能

要将 要将 INTPND INTPND 的某一位清零,方的某一位清零,方法是往法是往 I_ISPC/F_ISPCI_ISPC/F_ISPC 的相应位写入 的相应位写入 11 。。

在清除在清除 I_ISPC/F_ISPCI_ISPC/F_ISPC 时,还必须时,还必须注意:注意: I_ISPC/F_ISPCI_ISPC/F_ISPC 寄存器在 寄存器在 ISR ISR 中只能被操作 中只能被操作 1 1 次。如果你没有遵守这次。如果你没有遵守这两点,在中断请求发生时,两点,在中断请求发生时, I_ISPR/I_ISPR/F_ISPRF_ISPR 和和 INTPND INTPND 寄存器可能还是 寄存器可能还是 00 。。

I_ISPR/F_ISPRI_ISPR/F_ISPR 和和 I_ISPC/F_ISPC I_ISPC/F_ISPC 寄存器的位定义如表寄存器的位定义如表 4-464-46 所示。所示。

Page 72: 第 4 章  S3C44B0X 硬件结构及功能

4.10 4.10 串行口管理串行口管理4.10.1 4.10.1 概述概述

S3C44B0XS3C44B0X 的的 UARTUART (通用异步收发(通用异步收发器)单元提供两个独立的异步串行器)单元提供两个独立的异步串行 I/OI/O 端口,端口,每个都可以在中断和每个都可以在中断和 DMADMA 两种模式下工作。两种模式下工作。

它们支持的最高波特率为它们支持的最高波特率为 115.2Kbps115.2Kbps 。。每个每个 UARTUART 通道包含通道包含 22 个个 1616 位位 FIFOFIFO 分别提分别提供给接收和发送。供给接收和发送。

S3C44B0XS3C44B0X 的的 UARTUART 可以进行以下参数可以进行以下参数的设置:可编程的波特率,红外收的设置:可编程的波特率,红外收 // 发模式,发模式,11 或或 22 个停止位,个停止位, 55 位、位、 66 位、位、 77 位或位或 88 位位数据宽度和奇偶位校验。数据宽度和奇偶位校验。

Page 73: 第 4 章  S3C44B0X 硬件结构及功能

如图如图 4-174-17 所示,每个所示,每个 UARTUART 包含一包含一个波特率产生器,发送器,接收器和控制个波特率产生器,发送器,接收器和控制单元。波特率发生器以单元。波特率发生器以 MCLKMCLK 作为时钟作为时钟源。发送器和接收器包含源。发送器和接收器包含 1616 字节的字节的 FIFFIFOsOs 和移位寄存器。和移位寄存器。

被发送的数据,首先被写入被发送的数据,首先被写入 FIFOFIFO ,,再拷贝到发送移位寄存器,然后它从数据再拷贝到发送移位寄存器,然后它从数据输出端口(输出端口( TxDnTxDn )依次被移位输出。)依次被移位输出。被接收的数据也同样从数据接收端口(被接收的数据也同样从数据接收端口( RRxDnxDn )移位输入到移位寄存器,然后拷)移位输入到移位寄存器,然后拷贝到贝到 FIFOFIFO 中。 中。

Page 74: 第 4 章  S3C44B0X 硬件结构及功能

特性:特性:

RxD0RxD0 ,, TxD0TxD0 ,, RxD1RxD1 ,, TxD1 TxD1 可以以可以以中断模式或 中断模式或 DMADMA 模式工作;模式工作;

UART UART 通道 通道 0 0 符合 符合 IrDA 1.0 IrDA 1.0 要求,且具要求,且具有 有 16 16 字节的 字节的 FIFOFIFO ;;

UART UART 通道 通道 1 1 符合 符合 IrDA 1.0 IrDA 1.0 要求,且具要求,且具有 有 16 16 字节的 字节的 FIFOFIFO ;;

支持收发时握手模式。 支持收发时握手模式。

Page 75: 第 4 章  S3C44B0X 硬件结构及功能

4.10.2 UART 操作以下将介绍 UART 的操作,包括数据发送,数

据接收,中断发生,波特率发生,回送模式,自动流控制等内容。1. 数据发送

数据发送帧格式是可编程的。它包含一个开始位,5 到 8 个数据位,一个可选的奇偶位和 1 到 2 个停止位,这些都可以通过线控制寄存器( ULCONn )来设置。发送器也能够产生发送中止条件。

中止条件迫使串口输出保持在逻辑 0 状态,这种状态保持超过一个传输帧的时间长度。通常在一帧传输数据完整地传输完之后,再通过这个全 0 状态将中止信号发送给对方。中止信号发送之后,传送数据将持续地放入到输出 FIFO 中(在不使用 FIFO 模式下,将被放到输出保持寄存器)。

Page 76: 第 4 章  S3C44B0X 硬件结构及功能

2. 数据接收与发送一样,接收的数据帧格式同发送帧格式。

接收器还可以检测到溢出错误,奇偶校验错误,帧错误和中止状况,每种情况下都会将一个错误标志置位。

◆ 溢出错误表示新的数据已经覆盖了旧的数据,因为旧的数据没有及时被读入;

◆ 奇偶校验错误表示接收器检测到了意料之外的奇偶校验结果;

◆ 帧错误表示接收到的数据没有有效的停止位;◆ 中止状况表示 RxDn 的输入被保持为 0 状态

超过了一个帧传输的时间。◆ 在 FIFO 模式下接收 FIFO 不为空,但接收器

已经在 3 个字时间内没有接收到任何数据,就认为发生了接收超时状况。

Page 77: 第 4 章  S3C44B0X 硬件结构及功能

3. 3. 自动流控制(自动流控制( AFCAFC ))S3C44B0XS3C44B0X 的的 UARTUART 通过通过 nRTSnRTS 和和 nCTnCT

SS 信号支持自动流控制,在这种情况下必须是信号支持自动流控制,在这种情况下必须是UARTUART 与与 UARTUART 连接。 连接。 4. 4. 非自动流控制非自动流控制

通过软件控制 通过软件控制 nRTS nRTS 和 和 nCTSnCTS

5. 5. 调制解调器接口调制解调器接口如果用户要连接到调制解调器接口,就需如果用户要连接到调制解调器接口,就需

要要 nRTSnRTS ,, nCTSnCTS ,, nDSRnDSR ,, nDTRnDTR ,, DCDDCD和和 nRInRI 信号。在这种情况下,用户可以通过通信号。在这种情况下,用户可以通过通用其它用其它 I/OI/O 口来由软件控制这些信号,因为口来由软件控制这些信号,因为 AAFCFC 是不支持是不支持 RS-232CRS-232C 接口的。接口的。

Page 78: 第 4 章  S3C44B0X 硬件结构及功能

44..1010..3 3 中断中断 /DMA /DMA 请求产生器请求产生器S3C44B0X 的每个 UART 都有 7 个状态信号:

溢出错误,奇偶校验错误,帧错误,中止,接收 FIFO/ 缓冲区数据准备好,发送 FIFO/ 缓冲区空,发送移位寄存器空。

所有这些状态都由对应的 UART 状态寄存器( UTRSTATn/UERSTATn )中的相应位来表现。

溢出错误,奇偶校验错误,帧错误和中止状况都被认为是接收错误状态,如果 UCONn 中的“接收错误状态中断使能位”被置位,它们中的每一个都能够引发接收错误中断请求。

当“接收错误状态中断请求”被检测到,引发请求的信号可以通过读取 UERSTATn 来识别。

Page 79: 第 4 章  S3C44B0X 硬件结构及功能

当接收器要将接收移位寄存器的数据送到接收 FIFO ,它会激活接收 FIFO满状态信号,如果控制寄存器中的接收模式选为中断模式,就会引发接收中断。

当发送器从发送 FIFO 中取出数据到发送移位寄存器,那么 FIFO 空状态信号将会被激活。如果控制寄存器中的发送模式选为中断模式,就会引发发送中断。

如果接收 / 发送模式被选为 DMA 模式,“接收 FIFO满”和“发送 FIFO 空”状态信号同样可以产生 DMA 请求信号。

与 FIFO 有关的中断如表 4-47 所示。

Page 80: 第 4 章  S3C44B0X 硬件结构及功能

4.10.4 UART 4.10.4 UART 错误状态 错误状态 FIFOFIFO除了接收 FIFO 寄存器之外, UART还具有一

个状态 FIFO 。状态 FIFO 中表示了在 FIFO 寄存器中,哪一个数据被无错误地接收。

假设 UART 的 FIFO 连续接收到 A,B,C,D,E字符,并且在接收 B 字符时发生了帧错误(即该字符没有停止位),在接收 D 字符时发生了奇偶校验错。

虽然 UART错误发生了,错误中断不会产生,因为含有错误的字符还没有被 CPU读取。当字符被读出时错误中断才会发生。如图 4-19 所示。

Page 81: 第 4 章  S3C44B0X 硬件结构及功能

4.10.5 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=34

Page 82: 第 4 章  S3C44B0X 硬件结构及功能

4.10.6 4.10.6 回送模式回送模式S3C44B0X 的 UART 提供一个测试模式,

即回送模式。在这种模式下,发送的数据会立即被接收。这一特性运行处理器校验内部发送和接收通道的功能。这种模式可以通过设置 UART 控制寄存器 (UCONn) 中的回送位来设定。4.10.7 红外通信模式

S3C44B0X 的 UART 模块支持红外线 (IR) 发送和接收。可以通过设置 UART 控制寄存器( ULCONn )中的红外模式位来选择这一模式。

Page 83: 第 4 章  S3C44B0X 硬件结构及功能

4.10.8 UART 4.10.8 UART 寄存器寄存器

寄存器名称中的 n 表示 0~1 ,例如ULCONn 对应串口 0 为 ULCON0, 对应串口 1 为 ULCON1 。1. UART 线控制寄存器

前面多次提到了线控制寄存器,它主要用来规定传输帧的格式。

线控制寄存器定义如表 4-48 所示。

Page 84: 第 4 章  S3C44B0X 硬件结构及功能

UCONn 位 描 述 初始值

发送中断类型 [ 9 ]

中断请求类型0=脉冲(在发送缓冲区变空时立即引发中断)1=电平(在发送缓冲区变空时引发中断)

0

接收中断类型 [ 8 ]

中断请求类型0=脉冲(在接收缓冲区接收到数据时立即引发中断)1=电平(在接收缓冲区正在接收到数据时引发中断)

0

接收超时中断使能

[ 7 ]在 UART的 FIFO使能的情况下,使能 /禁止接收超时中断

0= 禁止 1=允许0

接收错误状态中断使能

[ 6 ]使能 UART在接收操作中发生错误时的错误中断响应0= 不产生错误状态中断 1=产生错误状态中断 0

22.. UARTUART 控制寄存器控制寄存器UCONnUCONn 控制寄存器各位定义如表控制寄存器各位定义如表 4—494—49 所示。所示。

表表 4—49UCONn4—49UCONn 控制寄存器控制寄存器

Page 85: 第 4 章  S3C44B0X 硬件结构及功能

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)

00

Page 86: 第 4 章  S3C44B0X 硬件结构及功能

3. FIFO 控制寄存器FIFO 控制寄存器 UFCONn 如表 4—50 所示, UFCONn控制 UART0 和 UART1 的 Rx 和 Tx FIFO 操作 表 4—50 UFCONn 控制寄存器

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 ] 0

Tx FIFO复位 [ 2 ]

在复位 FIFO 后自动清零 0= 正常 1=Tx FIFO复位 0

Rx FIFO复位 [ 1 ]

在复位 FIF0 后自动清零 0= 正常 1=RxFIF0复位 0

FIFO使能 [ 0 ] FIF0禁止允许: 0= 禁止 1=允许 0

Page 87: 第 4 章  S3C44B0X 硬件结构及功能

4. UART 的 Moden 控制寄存器UMCONn 是 Moden 控制寄存器,如表 4—51 所示表 4—51 UMCONn Moden 控制寄存器

UMCONn 位 描 述 初始值

保留 [ 7:5]这些位必须为 0

00

AFC( Auto Flow cont

rol)[ 4 ]

自动流控制禁止允许位 0= 禁止 1=允许0

保留 [ 3:1]这些位必须为 0

00

请求发送 [ 0 ]

如果 AFC使能,这位的值将被忽略。在这种情况下, S3C44BOX自动控制 nRTS如果 AFC禁止,必须由软件来控制 nRTS0=高电平(失活 nRTS ) 1=低电平(激活 nRTS)

0

Page 88: 第 4 章  S3C44B0X 硬件结构及功能

5. UART 发送 / 接收状态寄存器UTRSTATn 是发送 / 接收状态寄存器,如表 4—52 所示。表 4—52 UTRSTATn 发送 / 接收状态控制寄存器

UTRSTATn 位 描 述 初始值

发送移位寄存器为空 [ 2 ]

当发送移位寄存器中不包含有效数据或移位寄存器为空,这一位将自动被置位。0= 非空 1=发送保持和移位寄存器为空

1

发送缓冲器为空 [ 1 ]

当发送缓冲区寄存器中不包含有效数据,这一位将自动被置位。0= 缓冲区寄存器非空 1=空如果使用了 FIFO,则用户不用检测这个位,而应当检测 UFSTAT中发送 FIF0计数器位和 FIF0满位。

1

接收缓冲器数据就绪 [ 0 ]

当接收缓冲器寄存器中包含有效数据,这一位将自动被置位。0= 完全为空 1=缓冲器寄存器中包含有效数据如果使用了 FIF0,则用户不用检测这个位,而应当检测 UFSTAT中接收 FIF0计数器位。

0

Page 89: 第 4 章  S3C44B0X 硬件结构及功能

6. UART错误状态寄存器UERSTATn 是错误状态寄存器,如表 4—53 所示表 4—53 UERSTATn错误状态寄存器

UERSTATn

位 描 述 初始值

间隔中断 [ 3 ]0= 未收到间隔信号 1=收到间隔信号 0

数据桢错误 [ 2 ]

0= 接收时无桢错误 1=接收时发生桢错误 0

奇偶错误 [ 1 ]0= 接收时无奇偶错误 1=接收时奇偶错误 0

Overrun错误 [ 0 ]

0=在接收过程中未产生 Overrun错 误

1= Overrun错误注:当已收到的数据还未被读取,而新接收的数据覆盖了原有的数据时,就会产生 Overrun错误

0

Page 90: 第 4 章  S3C44B0X 硬件结构及功能

7. UART 的 FIF0 状态寄存器UFSTATn 是 FIF0 状态寄存器 ,如表 4—54 所示

表 4—54 UFSTATn FIF0 状态寄存器UFSTATn 位 描 述 初始值

保留 [ 15:10 ] 0

Tx FIF0满 [ 9 ]

当 FIF0满时,置 10=0 ≤字节 Tx FIF0 ≤数据 15字节1=满

0

Rx FIF0满 [ 8 ]

当 FIF0要满时,置 10=0 ≤字节 Rx FIF0 ≤数据 15字节1=满

0

Tx FIF0计数 [ 7:4 ]

发送 FIF0中数据的个数0

Rx FIF0计数 [ 3:0 ]

接收 FIF0中数据的个数0

Page 91: 第 4 章  S3C44B0X 硬件结构及功能

8. UART 的 Modem 状态寄存器UMSTATn 是 Modem 状态寄存器,如表 4—55 所示

表 4—55 UMSTATn Modem 状态寄存器UMSTATn 位 描 述 初始值

Delta CTS [ 4 ]表明输入到 S3C44BOX的信号从上一次读过后已经改变0= 无改变 1=已改变

0

Rserved[ 3:1

]保留

Clear to Send [ 0 ]

0=CTS信号未激活( nCTS引脚为高电平)1= CTS信号已激活( nCTS引脚为低电平)

0

Page 92: 第 4 章  S3C44B0X 硬件结构及功能

9. UART 发送 / 接收保持(缓冲区)寄存器URXHn/ URXHn 是发送 / 接收保持(缓冲区)寄存器,如表 4—56 和表 4—57 所示

表 4—56 URXHn 是发送保持(缓冲区)寄存器

URXHn 位 描 述 初始值RXDATAn [ 7:0

]从 UARTn发送的数据字节 —

Page 93: 第 4 章  S3C44B0X 硬件结构及功能

URXHn 位 描 述 初始值URXDATAn [ 7:0 ] 从 UARTn接收的数据字

节 —

注: UART 接收保持(缓冲区)寄存器和 FIF0 寄存器 :URXH0,URXH1 ,如果发生了益出错误,必须读一次 URXHn ,如果不读,即使 USTATn 中的溢出错误位被清除了,下一个接收的数据仍然会发生一个溢出错误。

表 4—57 URXHn 是接收保持(缓冲区)寄存器

Page 94: 第 4 章  S3C44B0X 硬件结构及功能

10. UART波特率除数寄存器UBRDIVn 是波特率除数寄存器,如表 4—58 所示

UBRDIVn 位 描 述 初始值UBRDIV [ 15:0

]波特率除数的值UBRDIV > 0