嵌入式linux----ARM入门,熟悉ARM处理器S3C2440

ARM(Advanced RISC Machines),是一个公司的名字,也是对一类微处理器的统称,也可以是一种技术的名字。ARM公司设计了很多处理器,他们根据内核的不同划分到各个系列中,系列划分是基于ARM7、ARM9、ARM10、ARM11内核的,在每个系列中,存储器管理、cache和TCM处理器扩展也有多种变化。

ARM7内核是冯诺依曼体系结构,数据和指令使用同一条总线,内核有一条3级流水线,执行ARMv4指令集。ARM7系列微处理器包括几种类型的核,其中ARM7TDMI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器核。

  • T: 支持16位压缩指令集Thumb
  • D: 支持片上Debug
  • M: 内嵌硬件乘法器
  • I: 嵌入式ICE,支持片上断点和调试点

ARM9系列微处理器在高性能和低功耗方面提供最佳性能。

  • 5级整数流水线,指令执行效率最高
  • 提供1.1MIPS/MHz的哈佛结构
  • 支持32位ARM指令集和16位Thumb指令集
  • 支持32位高速AMBA总线接口
  • 全性能的MMU,支持多种主流嵌入式操作系统
  • MPU支持实时操作系统
  • 支持数据Cache和指令Cache,具有更高的指令和数据处理能力。

ARM10E系列微处理器具有高性能、低功耗的特点,由于采用新的体系结构,与同等的ARM9器件相比,在同样时钟频率下,性能提高了近50%,同时采用了两种先进的节能方式,使其功耗极低。

  • 支持DSP指令集,适合于需要高速数字信号处理的场合
  • 6级整数流水线,指令执行效率更高
  • 支持32位ARM指令集和16位Thumb指令集
  • 支持32位高速AMBA总线接口
  • 支持VFP10浮点处理协处理器
  • 全性能的MMU,支持多种主流嵌入式操作系统
  • 支持数据Cache和指令Cache,具有更高的指令和数据处理能力。
  • 主频最高可达400MIPS
  • 内嵌并行读/写操作部件

ARM11中ARM1136J-S发布于2003年,是针对高性能和高能效应用而设计的,是第一个执行ARMv6架构指令的处理器,集成了一条独立的load-sotore和算术流水线的8级流水线。

了解一款CPU首先了解体系结构、寄存器结构和指令结构三个方面,这是区分其他不同类型CPU的关键。

首先关于体系结构,CISC是复杂指令集计算机,RISC是精简指令集计算机,优先选取使用频率最高的简单指令,避免复杂指令,将指令长度固定。RISC特点:

  • 采用固定长度的指令格式,指令规整、简单、基本寻址方式有2-3种
  • 使用单周期指令,便于流水线操作执行
  • 大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率

其次关于寄存器结构,ARM共有37个寄存器,被分为若干个组(BANK),包括31个通用寄存器,包括程序计数器,均为32位的寄存器;6个状态寄存器,用以标识cpu的工作状态及程序的运行状态,均为32位,目前只使用了其中一部分。ARM处理器有7中不同的处理器模式(工作模式):用户模式、快速中断模式、中断模式、管理模式、数据访问终止模式、系统模式、未定义指令终止模式,在每一种处理器模式下均有一组相应的寄存器与之对应。即在任意一种处理器模式下,可访问的寄存器包括15个通用寄存器、1-2个状态寄存器和程序计数器。在所有寄存器中,有些是在7种处理器模式下共用的同一个物理寄存器,而有些寄存器则是不同处理器模式下专有。

                                                         嵌入式linux----ARM入门,熟悉ARM处理器S3C2440_第1张图片

最后指令结构,ARM微处理器在较新的体系结构中支持两种指令集,分别是32位长度的ARM指令集和16位长度的Thumb指令集,其中Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码相比可节省30%~40%以上的存储空间,同时具备32位代码的所有优点。

ARM微处理器的选择。

  1. 内核的选择。选择使用WinCE或标准Linux等操作系统以减少软件开发时间,则选择ARM720T、ARM920T、ARM922T、ARM946T、strong-ARM等带有MMU功能。ARM7TDMI没有MMU。
  2. 工作频率的选择。系统的工作频率在很大程度上决定了ARM微处理器的处理能力。不同的芯片对时钟的处理不同,有的芯片只需要一个主时钟频率,有的芯片内部时钟控制器可以分别为ARM核、USB、UART、DSP、音频等功能部件提供不同频率时钟。
    ARM系列 处理速度 MIPS/MHz 系统主时钟频率 MHz
    ARM7 0.9 20~133
    ARM9 1.1 100~233
    ARM10 NA 700(最高)
  3. 芯片内存储器的选择。大多数的ARM微处理器芯片内存储器的容量都不太大,需要用户在设计系统时外扩存储器,但是AT91F40162具有高达2M的片内流程存储空间。
  4. 除了ARM微处理器核以外,几乎所有的ARM芯片均根据各自不同的应用领域,扩展了相关功能模块,并集成在芯片中,通常称为片内外围电路,如USB接口、IIS接口、LCD控制器、键盘接口、RTC、ADC、DAC、DSP协处理器等。设计者应分析系统需求,尽可能采用片内外围电路完成所需功能,这样既可简化系统设计,也可提高系统可靠性。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

S3C2440是韩国三星公司生产的基于ARM920T的16/32位RISC嵌入式处理器,是非常流行的嵌入式处理器。频率是400MHz,其中ARM920T核由ARM9TDMI、存储管理单元MMU、高速缓存三部分组成。MMU可以管理虚拟内存;高速缓存由独立的16KB地址和16KB数据高速Cache组成。ARM920T有两个内部协处理器,CP14(用于调试控制)和CP15(用于存储系统控制和测试控制)。

片内资源:

  • 1.2V内核供电,1.8 2.5 3.3V存储器供电,3.3V外部IO供电,16KB的ICache和16KBde DCache,MMU微处理器
  • 外部存储控制器(SDRAM控制和片选逻辑)
  • LCD控制器提供1通道LCD专用DMA
  • 4通道DMA,并有外部请求引脚
  • 3通道UART
  • 2通道SPI
  • 1通道I2C-BUS接口(多主支持)
  • 1通道I2S-BUS音频编解码接口
  • AC97解码器接口
  • 兼容SD主接口协议1.0版和MMC卡协议2.11兼容版
  • 2端口USB主机和1端口USB设备
  • 4通道PWM定时器和1通道内部定时器,看门狗定时器
  • 8通道10比特ADC和触摸屏接口
  • 具有日历功能的RTC
  • 相机接口(最大4096*4096像素的输入支持,2048*2048像素输入时,支持缩放)
  • 130个通用I/O口和24通道外部中断源
  • 具有普通,慢速,空闲和掉电模式
  • 具有PLL片上时钟发生器

体系结构:

  • 16/32位RISC体系结构和ARM920T内核强大的指令集

  • 加强的ARM体系结构MMU用于支持WinCE,EPOC32和Linux

  • 指令高速存储缓存器ICache,数据高速存储缓存器DCache,写缓存器write buffer,物理地址TAG RAM减少主存带宽和响应性能带来的影响

  • 采用ARM920T CPU内核支持ARM调试体系结构

  • 内部高级微控制总线(AMBA)体系结构(AMBA2.0, AHB/APB)

  • 支持高速总线模式和异步总线模式,支持外部等待信号延长总线周期

系统管理器,S3C2440的存储器控制器提供访问外部存储器所需的存储器控制信号,特性

  • 支持大、小端方式(通过软件选择)
  • 支持高速总线模式和异步总线模式
  • 8个存储器bank,寻址空间:每个bank 128MB(总共1GB)
  • 支持可编程的每bank 8/16/32位数据总线带宽
  • bank0~bank6都采用固定的bank起始地址和大小,其中6个适用于ROM、SRAM,另外2个适用于ROM、SRAM和同步SDRAM,所有存储器bank都具有可编程的操作周期。
  • 支持外部等待信号延长总线周期
  • 支持掉电的SDRAM自刷新模式
  • 支持各种型号的ROM引导(NOR FLASH、NAND FLASH、EEPROM等)
  • 支持从NAND FLASH存储器启动,采用4KB内部缓冲器进行启动引导,启动后NAND FLASH存储器仍然作为外部存储器使用

Cache高速缓存:

  • 64项全相连模式,采用ICache和DCache
  • 每行8字长度,其中每行带有一个有效位和两个dirty位
  • 伪随机数或轮转循环替换算法位
  • 采用写穿或写回式cache操作来更新主存储器
  • 写缓冲器可以保存16个字的数据和4个地址

S3C2440时钟:

  • 片上MPLL和UPLL
  • 采用UPLL产生操作USB主机/设备的时钟
  • MPLL产生最大[email protected]操作MCU所需要的时钟
  • 通过软件可以有选择性的为每个功能模块提供时钟
  • 电源模式:正常、慢速、空闲和掉电模式
  • 正常模式:正常运行的模式
  • 慢速模式:不加PLL的低时钟频率模式
  • 空闲模式:只停止CPU的时钟
  • 掉电模式:所有外设和内核的电源都切断了
  • 可以通过EINT[15:0]或RTC报警中断来从掉电模式中唤醒处理器

中断控制器:

  • 60个中断源(1个看门狗定时器、5个定时器、9个UART、24个外部中断源EINT、4个DMA、2个RTC、2个ADC、2个IIC、2个SPI、1个SDI、2个USB、1个LCD、1个电池故障、1个NAND和2个CAMERA、1个AC97音频)
  • 电平/边沿触发模式的外部中断源
  • 可编程的边沿/电平触发极性
  • 支持为紧急中断请求提供快速中断服务

脉冲带宽调制定时器(PWM):

  • 4通道16位具有PWM功能的定时器,1通道16位内部定时器,可基于DMA或中断方式工作
  • 可编程的占空比周期、频率和极性
  • 能产生死区
  • 支持外部时钟源

实时时钟(RTC):

  • 全面的时钟特性:秒、分、时、日期、星期、月、年
  • 32.768KHz工作
  • 具有报警中断
  • 具有节拍中断

通用I/O端口,S3C2440有130个多功能输入输出端口,24个外部中断端口:

  • 端口A(GPA):25个输入/输出端口
  • 端口B(GPB):11个输入/输出端口
  • 端口C(GPC):16个输入/输出端口
  • 端口D(GPD):16个输入/输出端口
  • 端口E(GPE):16个输入/输出端口
  • 端口F(GPF):8个输入/输出端口
  • 端口G(GPG):16个输入/输出端口
  • 端口H(GPH):9个输入/输出端口
  • 端口J(GPJ):13个输入/输出端口

LCD控制器,S3C2440的LCD控制器主要完成功能:将视频缓冲中的图像数据发送到外部的LCD中:

  • 略。。。

UART控制器:

  • 3通道UART,可以基于DMA模式或中断模式工作
  • 支持5  6  7  8位串行数据发送/接收
  • 支持外部时钟作为UART的运行时钟
  • 可编程的波特率
  • 支持IrDA1.0
  • 具有测试用的还回模式
  • 每个通道都具有内部64字节的发送FIFO和64字节的接收FIFO

A/D转换和触摸屏接口

  • 8通道多路复用ADC
  • 最大500KSPS/10位精度
  • 内部TFT直接触摸屏接口

看门狗定时器

  • 16位看门狗定时器
  • 在定时器溢出时发生中断请求或系统复位

IIC总线接口

  • 1通道多主IIC总线
  • 可进行串行,8位,双向数据传输,标准模式下数据传输速度可达100kbit/s,快速模式下课达到400

IIS总线接口

  • 1通道音频IIS总线接口,可基于DMA方式工作
  • 串行,每通道8/16位数据传输
  • 发送和接收具备128字节(64字节+64字节)FIFO
  • 支持IIS格式和MSB-justified数据格式

AC97音频解码器接口

  • 略。。。

USB设备控制器

  •            略。。。

SD接口

  • 略。。。

SPI接口

  • 略。。。

相机接口

  • 略。。。

你可能感兴趣的:(嵌入式linux)