完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>
`
例说FPGA连载52:NAND Flash实例之总线的概念
特权同学,版权所有
配套例程和更多资料下载链接:
http://pan.baidu.com/s/1c0nf6Qc
关于总线,比较官方的说法是:
总线(Bus
)是计算机各种功能部件之间传送信息的公共通信干线
。说到计算机,大家不要下意识的就以为只是特指每天我们都要面对的电脑。比较高端的计算机,火箭用的叫箭载计算机,卫星上用的叫星载计算机;稍微逊色一点的,工业上用的叫工控机,我们家里用的叫PC
机、笔记本;而嵌入式用的计算机更是数不胜数了,
PDD
、
GPS
和手机,
MP3
、
MP4
和电纸书,电梯、冰箱和微波炉的电子控制部分,细细找找,发现生活中凡是涉及电的还真没有一样离得开“微电”的控制。提到控制,那么肯定或大或小有个
CPU
,一旦和
CPU
搭上边好歹也要算个小型计算机了。计算机不仅有
CPU
,还需要有各种外设配合
CPU
与外界通信,那么
CPU
与外设之间的通信靠什么,总线?
YES
,虽然不是每一个系统中都要有总线,但凡大一点的系统都会有总线,因为总线能够很好的衔接管理各个外设与
CPU
之间的通信,能够简化硬件电路设计和系统结构。所以,废话了这么多,你该领悟总线很重要了吧。
光说重要你肯定感觉不过瘾,要打破沙锅问到底,总线到底如何工作?如何连接CPU
和外设?
广义上来说,任何衔接多个外设甚至是多个相同外设的一组信号都可以称为“总线”,比如
CAN
总线、
USB
总线、
IIC
总线等等。但在这里所论述的总线,主要是针对
CPU
与外设之间的总线。在嵌入式系统应用中,最简单也许大家都接触过的有INTEL总线和MOTOROLA总线。这两类总线最初应用于INTEL
和
MOTOROLA
两家公司生产的处理器,最为典型的是
早期的PC
系列处理器如
INTEL
的
8086
和
MOTOROLA
的
MC6800
,以至于后来的很多单片机乃至外设芯片的并口通信都能够兼容这两种模式的总线。为了更好的理解总线的概念,不妨让我们看看这两种总线的工作机制。如图6.4
和图
6.5
所示,是一颗支持与单片机的
INTEL
和
MOROROLA
接口连接的芯片的读写时序图。习惯上,大家一谈到
8080
总线就认定是
INTEL
总线,
6800
总线也就是MOTOROLA
总线。从这两个时序图上,我们看到的区别恐怕主要是读写选通的区别。INTEL
总线分别使用读选通信号
RD#
和写选通信号
WR#
两个信号的低电平状态来表示当前处于读或写选通状态。而
MOTOROLA
总线则只使用一条
RW#
信号来表示当前的读写状态,当总线选通期间,若
RW#
为高电平则表示读状态,低电平则为写状态。除此以外,规范的INTEL总线和MOTOROLA总线在地址和数据总线的使用上也是有所区别的。
另外,我们需要从这两个时序图中看到一个基本的“总线雏形”。也就是说,一条规范的总线,无外乎控制信号(有时候我们也习惯的称之为控制总线,但是此总线非彼总线,大家注意区分)、地址信号、数据信号这三类信号组成。如
INTEL
总线的控制信号主要有片选信号
CS#
、写选通信号
WR#
、读选通
RD#
和地址
/
数据选择信号
RS
,他们的功能就是用于指示当前的总线处于怎样的状态——是正在读取数据、正在写入数据、正在写入地址还是闲置中。他们的地址信号和数据信号是复用(很多总线的地址和数据信号不是复用的,如
Avalon
总线就是分离的)的,即时序图中的
DB[15:0]
。在一次读写操作中,如果
RS
为高电平,则表示当前操作为命令的读或写;如果
RS
低高电平,则表示当前操作为数据的读或写。
图6.4 INTEL总线时序图
图6.5 MOTOROLA总线时序图
INTEL总线和MOTOROLA
总线在嵌入式系统中仍大行其道,甚至于随处可见,不信你可以随便download
个芯片的
datasheet
看看。对我们的学习而言,认识一条总线的目的不在于领会总线本身的工作机制而已,尤其是要成为一名
FPGA
工程师,我们常常要和底层的硬件打交道。因此,我们学习的最终目的是学以致用。在笔者所著的《深入浅出玩转
FPGA
》笔记
8
的“单向控制信号检测”小节里就讲述了一种用
FPGA
逻辑来设计INTEL/MOTOROLA总线的从机。
其实上面提到的INTEL总线和MOTOROLA
总线是CPU
和外设数据交互的一种方式,在硬件工程师的板级设计中看得到固定信号连接的通信方式。而在我们后面将要重点讨论的这种
CPU
与外设的互连总线却是硬件工程师在
PCB
板上看不到的。也就是说,我们这里的外设不在“外”而在“内”,这些外设是集成在
CPU
内部的,而
CPU
内部的总线互连架构是板级设计的工程师们无法直观看到的。但是作为
Qsys
系统架构的工程师,我们就必须深入的研究这些互联总线的工作机理。毕竟,完全
DIY
出来的
Qsys
硬件系统中所有的组件都是我们根据系统需求精挑细选出来的,那么他们之间的衔接和数据交换也必须是我们能够去“设计”的一部分。
先不讨论在Altera
的
Qsys
平台主流的
Avalon
总线,我们可以去研究一下
ARM7
系统中常见的内部系统总线是什么样的。如图
6.6
所示,这是
NXP
公司推出的一款内嵌
ARM7TDMI-S
内核的控制器内部功能框图。
图6.6 ARM
芯片内部功能框图
在这个框图里,我们不是很关心它都集成了哪些外设,而是要看看它的处理器内核与其他外设以及外设与外设之间是如何互连的。简单的看,从内核引出的两条总线分别是Local bus
和
Advanced high-performance bus
(
AHB
),
Local bus
即本地总线上挂靠的都是一些实时性要求最高、数据吞吐量最大的“外设”。毫无疑问,在一个系统中,这种实时性最高、数据吞吐量最大的“外设”非存储器莫属,因为程序运行、数据变量读写都要频繁的访问
ROM
或
RAM
。除此之外,我们也看到有一个高速
GPIO
模块也“运行”在这条“高速公路”上,该款芯片特别的增强了
GPIO
的性能,那一定是为满足一些特定的应用需求而设计的。除了存储器,其实这条高速总线是可以挂靠任何符合总线通信规范的外设组件的,但是一旦这条“高速公路”的“车”多了,就不可避免的发生拥堵,那么所谓“高速”就名不副其实了。
那怎么办,系统还有一大堆外设需要挂靠呢?不是还有一条AHB
总线吗,这也是一条高性能总线,虽然可能和本地总线比还是要差点。这条总线上挂着一个中断向量控制器(
VECTORED INTERRUPT CONTROLLER
)和一个桥(
AHB TO APB BRIDGE
)。无疑的,系统的中断需要第一时间得到响应,因此它也就被挂在离处理器内核最近的总线上。最后来看那个
AHB2APB
桥,我们知道一般的嵌入式外设速度都不高,因此在这个系统内部,就把所有余下的外设组件都挂在了一条叫做
APB
的总线上,而这条
APB
总线最终也是需要挂在与
CPU
直接相连的
AHB
总线上。那么,
AHB2APB
桥所做的就是连接
APB
总线和
AHB
总线,并且它还要像
CPU
本身一样作为
APB
总线的主机,来统管各个外设。
费了这么些篇幅,好歹我们讲到CPU
内部的片上总线了。除了
ARM7
上流行的
AMBA
总线外,还有
Silicore
的
WISHBONE
总线(很多开源设计都采用此总线)、
IBM
的
CoreConnect
总线,然后就是
Altera
的
Avalon
总线。不同总线各有特点,适用范围也有不同。
Avalon
总线就是
Altera
公司主推的应用于其软核处理器
NIOS II
上的总线,主要包括
Avalon-MM
总线和
Avalon-ST
总线,下面我们就去认识他们。
基于NIOS II
处理器的片内系统互连主要靠的就是
Avalon-MM
总线和
Avalon-ST
总线。如图
6.7
所示,一个典型的
NIOS II
系统,
NIOS II
处理器和各外设之间通过
Avalon-MM
总线进行交互,而外设之间的点到点数据传输则可以通过
Avalon-ST
总线来完成。Avalon-MM (Avalon Memory Mapped Interface)总线是一种基于地址读写的主从互连的机制。Avalon-ST(Avalon Streaming Interface
)总线主要应用于单向数据流传输,可以完成点到点的大数据量吞吐。另外也略带提一下,在Avalon
总线规范里,还有
Avalon-MM Tristate
和
Conduit
接口。前者主要是
Avalon-MM
的一个扩展,也可以理解为它是
Avalon-MM
的一个“集线器”,对一个
Avalon-MM
从机进行复用,这样做的好处是减少从机接口的数量,用一套总线信号就可以挂接多个从机。比如在接口信号的数量紧张时,尤其是连接到
FPGA
外部引脚上的多个存储器(如图中的
SRAM
和
FLASH
),此时就可以复用到一个
Avalon-MM Tristate
接口上。而
Conduit
接口则是
Avalon-MM
从机引出的可以连接到
FPGA
其它逻辑模块或是
FPGA
外部引脚上的信号接口。
|
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
874个成员聚集在这个小组
加入小组4390 浏览0 评论
特权同学 Verilog边码边学 Lesson01 Vivado下载与安装
2531 浏览1 评论
玩转Zynq连载50——[ex69] FIR滤波器IP仿真实例
4179 浏览2 评论
玩转Zynq连载49——[ex68] MT9V034摄像头的图像FFT滤波处理
5147 浏览1 评论
玩转Zynq连载48——[ex67] Vivado FFT和IFFT IP核应用实例
5049 浏览0 评论
1848浏览0评论
小黑屋|手机版|Archiver|德赢Vwin官网(湘ICP备2023018690号)
GMT+8, 2024-9-1 07:46, Processed in 0.461925 second(s), Total 39, Slave 30 queries .
Powered by德赢Vwin官网 网
© 2015bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号