最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

嵌入式ARM-S3C2410

来源:动视网 责编:小OO 时间:2025-09-25 21:49:13
文档

嵌入式ARM-S3C2410

1、S3C2410/S3C2440芯片的内部结构S3C2410采用ARM920T核,而ARM920T又集成了ARM9TDMI,属于高档32位嵌入式微处理器。内部具有分离的16KB大小的指令Cache和16KB大小的数据Cache。同时采用哈佛体系结构,程序存储器和数据存储器分开,分别有各自的存储管理部件MMU。采用五级指令流水线。使用ARM公司特有的AMBA总线,对于高速组件采用AHB总线,而对于低速外设接口采用APB总线。连在AHB上的组件系统总线控制器、电源管理单元、PLL(锁相环)时钟发
推荐度:
导读1、S3C2410/S3C2440芯片的内部结构S3C2410采用ARM920T核,而ARM920T又集成了ARM9TDMI,属于高档32位嵌入式微处理器。内部具有分离的16KB大小的指令Cache和16KB大小的数据Cache。同时采用哈佛体系结构,程序存储器和数据存储器分开,分别有各自的存储管理部件MMU。采用五级指令流水线。使用ARM公司特有的AMBA总线,对于高速组件采用AHB总线,而对于低速外设接口采用APB总线。连在AHB上的组件系统总线控制器、电源管理单元、PLL(锁相环)时钟发
1、S3C2410/S3C2440芯片的内部结构

S3C2410采用ARM920T核,而ARM920T又集成了ARM9TDMI,属于高档32位嵌入式微处理器。内部具有分离的16KB大小的指令Cache和16KB大小的数据Cache。同时采用哈佛体系结构,程序存储器和数据存储器分开,分别有各自的存储管理部件MMU。采用五级指令流水线。使用ARM公司特有的AMBA总线,对于高速组件采用AHB总线,而对于低速外设接口采用APB总线。

    连在AHB上的组件系统总线控制器、电源管理单元、PLL(锁相环)时钟发生器、内部SRAM、外部存储器控制器、LCD控制器、DMA控制器、中断控制器;连接到APB上的硬件组件有三通道UART、一个多主IIC总线控制器、一个IIS总线控制器、五通道PWM定时器和一个内部定时器、一个看门狗定时器WDT、通用I/O口(GPIO)、具有日历功能的实时时钟RTC、八通道10位ADC、两个同步串行口SIO接口及SDI/MMC等。

    S3C2440在S3C2410基础上增加了视频和音频接口。

2、存储器控制组件

S3C2410存储器控制组件包括存储器控制器、总线控制器、外部主控器、NAND Flash控制器等。存储器控制器提供访问外部存储器所需的存储器控制信号,支持大/小端模式,地址空间1GB

3、时钟及电源管理组件

    在时钟控制器、电源控制器以及USB控制器的控制之下,产生不同需求的时钟信号,如:

    MPLL(锁相环时钟)输入时钟可由引脚OM[3:2]来选择是采用外部时钟EXTCLKA还是外界晶体利用内部振荡电路输出的时钟。

    电源管理模块具有正常模式、、慢速模式、空闲模式、掉电模式。正常模式下,当慢速控制位SLOW_BIT = 1时进入慢速模式,当休眠控制位IDLE_BIT = 1时进入休眠模式,当掉电控制位POWER_BIT = 时进入掉电模式。在掉电模式和休眠模式下,只要有任意一个外部中断EINT【0:23】或RTC时钟发生中断,均将返回到正常模式。

4、中断控制器及中断控制

    S3C2410的中断控制过程:

有子寄存器的中断请求元   SUBSRCPND   子屏蔽  SRCPND 屏蔽 INTPND

                                                          优先权 IRQ

没有子寄存器的中断请求元                                模式

                                                                 FIQ

    异常向量表从0x00000000~0x0000001F,其中普通中断IRQ和快速中断FIQ的向量地址为0x00000008~0x0000001B和0x0000001C~0x0000001F。

    源中断挂起寄存器SRCPND和中断挂起寄存器INPND,他们指示某个中断请求是否处于挂起状态。当多个中断源请求服务时,SRCPND相应的位写入1,通过优先级仲裁当前最高优先权的中断源对应的INTPND位写入1,如果中断没有被屏蔽,CPU将处理该中断。

    S3C2410中断控制器的相关寄存器:

寄存器名称功能地址
SRCPND源中断挂起

寄存器

记录中断源中断请求的挂起状态:0=无中断请求,1=有中断请求

0x4A000000

INTMOD中断模式

寄存器

决定中断源的中断属于普通中断IRQ还是快速中断FIQ:0=IRQ,1=FIQ

0x4A000004

INTMASK中断屏蔽

寄存器

屏蔽中断源的中断请求:0=允许中断,1=屏蔽中断

0x4A000008

INTPND中断挂起

寄存器

记录中断源中断请求的挂起状态:0=无中断请求,1=有中断请求

0x4A000010

SUBSRCPND子源中断挂起

寄存器

记录子中断源中断请求的挂起状态:0=无中断请求,1=有中断请求

0x4A000018

INTSUBMASK资源中断屏蔽

寄存器

屏蔽子中断源的中断请求:0=允许中断,1=屏蔽中断

0x4A00001C

例:

    用ARM汇编语言写一段对S3C2410的初始化程序,要求关闭看门狗中断,允许UART/INT_RXD0、TIMER0/1/2、RTC以及EINT0/1/2/3中断,并把EINT/1/2/3设置为快速中断FIQ方式,其余为普通中断IRQ。

解:INTMOD       EQU  0x4A000004      ;定义中断模式寄存器地址

    INTMASK      EQU  0x4A000008      ;定义中断屏蔽寄存器地址

    INTSUBMASK  EQU  0x4A000010     ;定义中断子屏蔽寄存器地址

                   LDR  R0,=INTMASK   ;指示中断模式寄存器地址

                   LDR  R1,=0x0000000F  ;EINT/1/2/3为FIQ中断,其他为IRQ中断

                   STR  R1,[R0]        ;写入中断模式寄存器

                   LDR  R0,=INTMASK  ;指示中断屏蔽寄存器地址

                   LDR  R1,[R0]        ;取原来中断屏蔽寄存器的值

                   ORR  R1,0x00000400  ;b9=1(INT_WDT为第9位)

                   STR  R1,[R0]         ;写入中断屏蔽寄存器,屏蔽WDT中断

                   AND  R1,R1,#0C7FFF1F0  ;题目要求的若干中断允许的位写0

                   STR   R1.[R0]         ;写入中断屏蔽寄存器,开相关允许的寄存器

                   LDR  R0,=INTSUBMASK   ;只是中断子屏蔽寄存器地址

                   LDR  R1,[R0]            ; 取原来子中断屏蔽寄存器的值

    AND  R1,R1,0xFFFFFFFE  ;b0=0(INT_RXD0为第0位)

                   STR  R1,[R0]       ;写入中断子屏蔽寄存器,允许INT_RXD0中断

5、实时时钟RTC

    RTC具有的主要功能包括BCD数据(时、分、秒、日、月、年)、闰年产生器、告警功能(告警中断或从断电模式唤醒)、的电源端口(VDDRTC)、支持毫秒滴答时钟中断作为RTOS核的滴答时钟、循环复位功能等。

    RTC的组成:滴答时钟发生器、闰年发生器、分频器、控制寄存器、告警发生器、复位寄存器以及年、月、日、星期、时、分、秒寄存器等构成。实时时钟模块采用单独的供电引脚和单独的时钟源,采用32.768KHz晶体。通过215时钟分频器得到1Hz的脉冲,进而得到时钟的最小单位时间为1s。

    RTC控制寄存器RTCCON的功能

RTCCON位名称

描述初始值
CLKRST3RTC时钟计数复位:0=不复位,1=复位

0
CNTSEL2BCD码计数器选择:0=组合BCD码,1=分离BCD码

0
CLKSEL1BCD码计数时钟选择:0=晶体频率/215分频,1=保留

0
RTCEN0RTC读/写使能:0=禁止,1=允许

0
对RTC的操作:初始化、计数器数值设置、计时启动/停止等。

例:对RTC进行初始化操作,完成的功能有复位RTC、允许对RTC读写操作、BCD组合方式、时钟选择为频率/215分频,并将2013年12月18日21时30分15秒写入相应的数据寄存器。用ARM汇编语言完成对上述操作的子程序。

解:操作程序如下:

   

//定义寄存器地址

RTCCON       EQU    0x57000040   ;

   BCDYEAR      EQU    0x57000088

BCDMONTH    EQU    0x57000084

BCDDATE    EQU    0x5700007C

   BCDHOUR    EQU    0x57000078

   BCDMIN    EQU    0x57000074

   BCDSEC    EQU    0x57000070

ThisYEAR    EQU    0x13

ThisMONTH     EQU    0x12

ThisDATE    EQU    0x18

ThisHOUR    EQU    0x21

ThisMIN     EQU    0x30

ThisSEC    EQU    0x15

//初始化RTC子程序

RTCInit  

LDR           R0,=RTCCON

MOV          R1,,# 0x08

STR           R1,[R0]

MOV          R1,#0x01

STR           R1,[R0]

//以下是写时间寄存器

LDR           R0,=BCDYEAR

MOV          R1,#ThisYEAR

STRB          R1,[R0]

LDR           R0,=BCDMONTH

MOV             R1,#ThisMONTH

STRB          R1,[R0]

LDR           R0,=BCDDATE

MOV          R1,#ThisDATE

STRB          R1,[R0]

LDR           R0,=BCDHOUR

MOV          R1,#ThisHOUR

STRB          R1,[R0]

LDR           R0,=BCDMIN

MOV          R1,#ThisMIN

STRB          R1,[R0]

LDR           R0,=BCDSEC

MOV          R1,#ThisSEC

STRB          R1,[R0]

LDR           R0,=RTCCON

MOV           R1,#0

STRB          R1,[R0]

MOV           PC,LR

6、通用I/O接口GPIO

    例:在以S3C2410为核心的嵌入式系统中,设置H端口SPH6、GPH7分别为TXD2、RXD2,GPH2/GPH3为输入端口,GPH剩余口均为输入端口,允许所有输出引脚上拉,让GPH2输出高电平,GPH3输出低电平。

    解:(1)控制寄存器决定引脚功能:由H端口GPH6、GPH7作为TXD2、RXD2,则控制器的位13:12=10,15:14 = 10,GPH2/GPH3输出,位5:4 = 01,7:6 = 01,其余引脚为输入,用00表示,即每个引脚使用两个控制位,GPHCON = 00 0000 1010 0000 0101 0000 = 0x0000 A050。

    (2)上拉寄存器决定引脚在内部是否接上拉电阻。

    (3)数据寄存器可以读取输入引脚的数据,也可以写数据到输出引脚。

    程序片段如下:

    LDR       R0,=GPHCON    ;假设已经定义GPHCON地址为0x56000070

LDR    R1,=0x00000A50 ;控制寄存器GPHCON的控制字

STR    R1,[R0]               ;写入控制寄存器GPHCON中

LDR    R0,=GPHUP           ;假设已经定义GPHCON地址为0x56000078

LDR       R1,[R0]                 ;读原来上拉寄存器GPHUP的值

ORR    R1,R1,#0x0000000C    ;GPH2/GPH3内部上拉

STR    R1,[R0]                ;写入上拉寄存器GPHUP中

LDR    R0,=GPHDAT            ;假设已经定义GPHDAT地址为0x56000074

LDR    R1,[R0]    ;读原来数据寄存器GPHDAT的值

ORR       R1,R1,#0x00000004       ;GPH2对应位置1(输出高电平)

AND    R1,R1,#0xFFFFFFF7    ; GPH3对应位置0(输出低电平)

STR    R1,[R0]    ;写入数据寄存器GPHDAT中

7、串行异步通信接口UART

(1)UART线路控制寄存器  

S3C2410/S3C2440有三个UART接口UART0、UART1、UART2,其对应的线路控制寄存器为ULCON0、ULCON1、ULCON2,用于确定传输帧的格式,地址分别为0x50000000、0x50004000、0x50008000,可读写,复位时全是0,其含义如下表:

    765:321:0
ULCON0

ULCON1

ULCON2

保留

红外格式

奇偶校验

停止位

数据位数

含义

无意义

 0=正常模式,1=红外模式

0XX=无校验,100=奇校验,101=偶校验,110=校验位置1,111=校验位清0

0=1位停止位,1=2位停止位

00=5位,01=6位,

10=7位,11=8位

(2)UART控制寄存器

    三个UART对应的控制寄存器为是UCON0、UCON1、UCON2地址分别是0x50000004、0x50004004、0x50008004,格式如下表:

109  876543:21:0

UCON0

UCON1

UCON2

时钟选 择

发送中断请求类型接收中断请求类 型

接受超时中断使 能

接受误认中断使 能

回送模 式

发送模式

接收模式

含义

0=PLCK,

1=UEXT

-TCLK

0=脉冲,

1=电平

0=脉冲,

1=电平

0=禁止,

1=允许

0=禁止,

1=允许

0=正常,

1=回送

00=禁止,01=中断请求,10=BDMA0,11=BDMA1请求

00=禁止,01=中断请求,10=BDMA0,11=BDMA1请求

(3)UART发送接收状态寄存器

    三个UART对应的发送/接收状态寄存器为UTRSTAT0、UTRSTAT1、UTRSTAT2,地址分别为0x50000010、0x50004010、0x50008010,只读,各位的含义如下:

210
UTRSTAT0

UTRSTAT1

UTRSTAT2

发送移位寄存器状态

发送缓冲器状态

接受缓冲数据状态

       含义

0=发送寄存器非空,

1=发送寄存器为空

0=缓冲寄存器非空,

1=缓冲寄存器为空

0=完全为空,无数据

1=有数据

(4)UART数据寄存器

    UART数据寄存器分为发送缓冲寄存器UTXHn和接收缓冲寄存器URXHn。三个通道的UART发送缓冲器位UTXH0、UTXH1、UTXH2,地址分别为0x50000020、0x50004020、0x50008020,接受缓冲器为URXH0、URXH1、URXH2,地址分别为0x50000024、0x50004024、0x50008024.

(5)UART波特率除数寄存器

    UART的波特率由除数寄存器决定,也取决于外部时钟,关系是如下:

        UBRDIVn = INT(UCLK/(波特率*16))-1

文档

嵌入式ARM-S3C2410

1、S3C2410/S3C2440芯片的内部结构S3C2410采用ARM920T核,而ARM920T又集成了ARM9TDMI,属于高档32位嵌入式微处理器。内部具有分离的16KB大小的指令Cache和16KB大小的数据Cache。同时采用哈佛体系结构,程序存储器和数据存储器分开,分别有各自的存储管理部件MMU。采用五级指令流水线。使用ARM公司特有的AMBA总线,对于高速组件采用AHB总线,而对于低速外设接口采用APB总线。连在AHB上的组件系统总线控制器、电源管理单元、PLL(锁相环)时钟发
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top