Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1298555
  • 博文数量: 548
  • 博客积分: 7597
  • 博客等级: 少将
  • 技术积分: 4224
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-15 13:21
个人简介

嵌入式软件工程师&&太极拳

文章分类

全部博文(548)

文章存档

2014年(10)

2013年(76)

2012年(175)

2011年(287)

分类:

2011-02-20 23:28:38

[总线接口的概念:]
AHB简介(高速)
 AHB主要用于高性能模块(如CPU、DMA和DSP等)之间的连接,作为SoC的片上系统总线,
 它包括以下一些特性:单个时钟边沿操作;非三态的实现方式;支持突发传输;支持分段传输;
 支持多个主控制器;可配置32位~128位总线宽度;支持字节、半字节和字的传输。
 AHB系统由主模块、从模块和基础结构(Infrastructure)3部分组成,整个AHB总线上的传输都由主模块发出,由从模块负责回应。
 基础结构则由仲裁器(arbiter)、主模块到从模块的多路器、从模块到主模块的多路器、译码器(decoder)、虚拟从模块(dummy Slave)、
 虚拟主模块(dummy Master)所组成。
APB简介
 APB主要用于低带宽的周边外设之间的连接,例如UART、1284等,它的总线架构不像AHB支持多个主模块,
 在APB里面唯一的主模块就是APB 桥。
 其特性包括:两个时钟周期传输;无需等待周期和回应信号;
 控制逻辑简单,只有四个控制信号。
  1)系统初始化为IDLE状态,此时没有传输操作,也没有选中任何从模块。
  2)当有传输要进行时,PSELx=1,PENABLE=0,系统进入SETUP状态,
  并只会在SETUP 状态停留一个周期。当PCLK的下一个上升沿时到来时,系统进入ENABLE 状态。
  3)系统进入ENABLE状态时,维持之前在SETUP 状态的PADDR、PSEL、PWRITE不变,并将PENABLE置为1。
  传输也只会在ENABLE状态维持一个周期,在经过SETUP与ENABLE状态之后就已完成。
  之后如果没有传输要进行,就进入IDLE状态等待;如果有连续的传输,则进入SETUP状态。
   

AMBA片上总线
 AMBA 2.0规范包括四个部分:AHB、ASB、APB和Test Methodology。
 AHB的相互连接采用了传统的带有主模块和从模块的共享总线,接口与互连功能分离,这对芯片上模块之间的互连具有重要意义。
 AMBA已不仅是一种总线,更是一种带有接口模块的互连体系。
 .基于AMBA的片上系统
  大多数挂在总线上的模块(包括处理器)只是单一属性的功能模块:主模块或者从模块。
  1) 主模块是向从模块发出读写操作的模块,如CPU,DSP等;
  2) 从模块是接受命令并做出反应的模块,如片上的RAM,AHB/APB 桥等。
  3) 另外,还有一些模块同时具有两种属性,例如直接存储器存取(DMA)在被编程时是从模块,但在系统读传输数据时必须是主模块。
  
  如果总线上存在多个主模块,就需要仲裁器来决定如何控制各种主模块对总线的访问。
  虽然仲裁规范是AMBA总线规范中的一部分,但具体使用的算法由RTL设计工程师决定,
  其中两个最常用的算法是固定优先级算法和循环制算法。
  
  AHB总线上最多可以有16个主模块和任意多个从模块,
  如果主模块数目大于16,则需再加一层结构(具体参阅ARM公司推出的Multi-layer AHB规范)。
  
  APB 桥既是APB总线上唯一的主模块,也是AHB系统总线上的从模块。
  其主要功能是锁存来自AHB系统总线的地址、数据和控制信号,并提供二级译码以产生APB外围设备的选择信号,
  从而实现AHB协议到APB协议的转换。
[时序图上的FCLK PCLK HCLK]
s3c2410有两个pll(phase locked loop,锁相环,在高频中学过,可以实现倍频,s3c2410的高频就是由此电路产生的)。
其中一个是MPLL,M即为main,用来产生三种时钟信号:
 Fclk(给CPU核供给时钟信号,我们所说的s3c2410的cpu主频为200MHz,就是指的这个时钟信号,相应的,1/Fclk即为cpu时钟周期)
 Hclk(为AHB bus peripherals供给时钟信号,AHB为advanced high-performance bus)
 Pclk(为APB bus peripherals供给时钟信号,APB为advanced peripherals bus)。
.因为速度(带宽)不同,所以连接的外设也有区别
需要注意的是,这两种总线所连的外设是有区别的。
AHB总线连接高速外设,低速外设则通过APB总线互连。
显然,对不同总线上的外设,应该使用不同的时钟信号,AHB总线对应Hclk,APB总线对应Pclk。
那么事先就应该弄清楚,每条总线对应的外设有那些,这样在设置好时钟信号后,对应外设的初始化的值就要依此而确定了。
    1) AHB bus上的外设有LCD controller(CONT代表controller,控制器)、USB Host CONT、ExtMaster、Nand CONT和nand flash boot        loader、bus CONT、interrupt CONT、power management、memory CONT(sram/nor/sdram等)。
    2) APB bus上的外设有UART、USB device、SDI/MMC、Watch Dog Timer、bus CONT、spi、iic、iis、gpio、rtc、adc、timer/pwm。
Fclk为cpu主频,为200MHz,  
Fclk:Hclk:Pclk=1:2:4.那么Hclk为100MHz,总线时钟周期为10ns。Pclk为50MHz。
阅读(899) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~