当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]AMCCS5933 在PCI板卡设计中的应用

PCI总线是计算机主机中最常见的总线。它是一种高性能的32/64位地址数据复用总线,支持猝发传输,传输峰值速率可达528MB/s,而且还支持自动配置。由于PCI总线协议的复杂性,其接口电路实现起来并不容易。但采用通用PCI接口芯片却能达到事半功倍的效果。PCI通用接口芯片对于PCI协议的良好支持及其提供给板卡设计者的良好接口都大大减小了PCI板卡设计者的工作量。现有的PCI接口芯片主要有AMCC公司的 AMCCS59XX系列和PLXTECH公司的PLX系列。本文将对AMCC公司的AMCCS5933芯片的原理及其在PCI板卡设计中的应用进行介绍。

1 工作原理

  AMCCS5933的原理框图如图1所示。由图1可知AMCCS5933起到的是一个桥路的作用,即它是PCI总线与本地总线之间的一个桥路。

AMCCS5933既可以作PCI从设备,又可以作PCI主控设备。PCI配置空间可以通过一EEPROM来配置。AMCCS5933为设计者提供了三种数据传输方式:PASS THRU方式、FIFO方式和MAILBOX方式。通过驱动程序对总线控制寄存器设置来控制总线操作和数据的传输。总线控制寄存器有两组:PCI总线控制寄存器和本地总线控制寄存器,分别用来控制PCI总线和本地总线的操作。

2 AMCCS5933 引脚

  AMCCS5933引脚图如图2所示。

3 AMCCS5933在PCI板卡设计中的应用

3.1 配置空间

  每一个PCI设备都要有相应的配置空间,AMCCS5933通过EEPROM来设置配置空间,AMCC公司提供一个NVBUILDER的软件,可以通过AMCCS5933对EEPROM进行读写。EEPROM可以为串行,也可以为8位并行。设计者只需使用NVBUILD就可以完成PCI配置空间的设置。[!--empirenews.page--]

3.2 总线控制寄存器的访问

  PCI总线控制寄存器只有主机才能访问,主机通过PCI总线进行I/O读写操作来访问这些寄存器。

本地总线控制寄存器只有本地逻辑才能访问,与其有关的引脚有ADR[6..2]、BE[3..0]#、SELECT#、WR#、RD#和数据地址总线DQ[31..0]。

  读时序如图3所示,写时序将图中RD#替换为WR#即可。

ADR[6..2]提供被访问寄存器的地址,BE[3..0]#制定访问是双字中的哪些字节,WR#为写使能,RD#为读使能,SELECT#为操作使能,都为低电平有效。

3.3 MAILBOX方式的使用

  AMCCS5933内部有8个MAILBOX:4个输出MAILBOX,四个输入MAILBOX。PCI方的输入MAILBOX对应于本地的输出MAILBOX,输出MAILBOX则对应于输入MAILBOX。

  MAILBOX主要用于主机方与本地逻辑之间的通信,例如传输一些自定义的控制字、状态信息等。

  主机对MAILBOX的访问通过I/O读写来完成,本地逻辑对MAILBOX的访问则通过访问本地控制寄存器的方式来完成。

MIALBOX的空满状态由控制寄存器MBEF(PCI)和AMBEF(本地)来表征。

3.4 FIFO方式下的数据传输

3.4.1基本数据传输

  AMCCS5933内部有两个单向FIFO:输出FIFO和输入FIFO,主机和本地逻辑可以以访问控制寄存器的方式来访问FIFO,也可以通过WRFIFO#、RDFIFO#、WFULL、RDEMPTY、BPCLK这几个引脚来直接读写FIFO。在设计当中一般采用后一种方法。直接读写FIFO有两种工作方式:同步方式和异步方式。在同步方式下,WRFIFO#、RDFIFO#为FIFO读写使能信号,在BPCLK的上跳沿写入和读出数据,输出引脚BPCLK输出33MHz信号。在异步方式下,WRFIFO#、RDFIFO#为FIFO读写信号。WRFULL为输出FIFO满信号,RDEMPTY为输入FIFO空信号。

3.4.2 DMA的实现

  在FIFO方式下可以实现DMA传输。

  DMA传输的实现步骤:

  (1)通过NVBUILD软件设置DMA传输的控制方为主机或本地逻辑,以下假设为主机控制。

  (2)设置有关的PCI总线控制寄存器。

     MWAR  DMA写地址寄存器   填入接收数据存放的起始地址

     MWTC  DMA写计数器       填入接收数据的字节数

     MRAR  DMA 读地址寄存器  填入发送数据起始地址

     MRTC  DMA  读计数器     填入发送数据的字节数

  (3) 启动DMA传输[!--empirenews.page--]

  通过设置MCSR寄存器启动DMA传输。

  由本地逻辑控制的DMA传输步骤,只需将控制方式改为本地逻辑控制,然后由本地逻辑来设置相应的寄存器。

3.5 PASS THRU方式下的数据传输

  配置空间中的基址寄存器为PCI系统资源分配(内存和I/O空间的分配)提供了一种机制,PCI设备在基址寄存器中填入所需资源的类型和大小,基址寄存器的0位为1表示为内存空间,为0则表示为I/O空间,1、2位则指定内存或I/O空间是分配在1M地址以下,还是分配在任意地址空间,3位表示能否预取,4~31位表示所需分配的内存或I/O空间的大小。PCI BIOS启动后读取各个PCI设备配置空间中的基址寄存器,获取每个PCI设备分配所需的资源类型和大小等信息,并且为这些PCI设备分配好所设定的资源,然后再将分配的内存空间或地址空间的基地址回写到PCI设备的各个基址寄存器中。

  配置空间中有6个基址寄存器,与PASS THRU方式有关的是基址寄存器1~4,基址寄存器0被指定为AMCCS5933分配I/O资源,基址寄存器6保留不用。

  PASS THRU 方式下的数据传输的有关引脚:PTATN#、PTRDY#、PTNUM[1:0]、PTBE[3:0]#、BE[3..0]#、PTADR#、  PTWR、PTBURST#、DQ[31..0]

  PTNUM[1:0]表示由哪个基址寄存器所分配的内存空间或I/O空间。

  PASS THRU方式下的数据传输主要由AMCCS5933芯片与本地逻辑电路通过上述引脚信号的交互、握手来完成,时序如图4所示。

PASS THRU的握手时序可以通过可编程逻辑以同步状态机的方式实现,用ALTERA的AHDL硬件编程语言可以很容易地实现它。

3.6 中断的设置与产生

  AMCCS5933有两个中断引脚:INTA#和IRQ#。INTA#为PCI总线信号用于产生系统PCI中断,IRQ#是本地总线信号用于产生本地逻辑的中断。  

  MAILBOX的空满变化、DMA读写传送的完成都可以产生中断,中断的使用方法如下:

  A PCI设备中断INTA#

  (1)在配置空间中断引脚寄存器填入中断引脚,单功能设备选INTA#。

  (2)从配置空间矢量寄存器中获取中断矢量。

  (3)在PCI总线控制寄存器中,设置产生的条件,如MAILBOX变满产生中断、DMA写完成产生中断等。

  (4)在中断处理程序中,读取PCI总线控制寄存器INTCSR和MBEF当前值,确定中断源并做相应中断处理。

  (5)清中断及退出中断处理程序,清中断通过往INTCSR相应的中断标志位写“1”来完成。[!--empirenews.page--]

  B 本地设备中断 IRQ#

  (1)在本地总线控制寄存器AINT中,设置产生的条件,如MAILBOX变满产生中断 、DMA写完成产生中断等。

  (2)在本地中断处理程序中,读取本地总线控制寄存器AINT和AMBEF当前值,确定中断源并做相应中断处理。

  (3)清中断并退出中断处理程序,清中断通过往AINT相应的中断标志位写“1”来完成。

4 PCB 板绘制要点

  (1)推荐采用四层板。

  (2)电源引脚加0.1μF电容滤波。

  (3)AMCCS5933 PCI数据线与插口距离小于1.5英寸。

  (4)AMCCS5933 PCI时钟线与插口距离等于(2.5+或-0.1)英寸,且只能在PCB的同一层。

  (5)AMCCS5933 其他PCI引脚与插口距离小于2英寸。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

经过几十年发展,嵌入式技术已经用在了我们生活中的方方面面,但是嵌入式始终都带有小众,专业性强的属性,让很多非嵌入式领域的同学望而却步。近十几年的发展,物联网覆盖了越来越多领域,包括了家居,商业,工业,农业等领域,不仅吸引...

关键字: 嵌入式 物联网 技术

随着IT技术飞速发展,互联网已经进入了“物联网”时代。物联网中需要的大量设备不在依赖人与人之间的交互产生联系,更多通过协议、通信、程序设计等方式连接到一处。即 “物联网”的目的则是让所有的物品都具有计算机的智能但并不以通...

关键字: 嵌入式 物联网 计算机

10月7日消息,三星电子于今日公布了其2022年第三季度(7-9 月)的初步财报,由于全球经济放缓,冲击消费类电子产品需求,导致存储芯片订单锐减,使得三星电子当季利润同比大幅下滑近32%,为近3年来首次出现下滑,凸显市场...

关键字: 三星电子 储存芯片 芯片

近日,在加利福尼亚州圣何塞举行的三星代工论坛上,三星电子公布了其芯片制造业务的未来技术路线图,宣布在2025年开始大规模量产2nm工艺,更先进的1.4nm工艺则预计会在2027年投产,主要面向高性能计算和人工智能等应用。

关键字: 三星 台积电 芯片 1.4nm

在三星 Tech Day 2022 活动上,三星电子总裁兼内存业务负责人 Jung-bae Lee 表示,三星 40 多年来共生产了 1 万亿 GB 内存,仅在过去三年中就产生了大约一半。

关键字: 三星 内存 储存芯片

据彭博社、华尔街日报等外媒报导,韩国科技巨头三星电子半导体部门负责人庆桂显(Kyung Kye-hyun)在新闻发布会上表示,今年下半年半导体市场不佳,截至目前为止,尚未看到明年市场可能明显复苏的迹象。

关键字: 芯片 半导体 三星

推荐一款Win下超级简单的网络嗅探工具MiniSniffer,帮我解决了一个bug,切记最好使用管理员权限打开。MiniSniffer软件小巧只有48.5K,绿色的且是单文件,支持Win2000后的所有系统;功能强大,支...

关键字: MiniSniffer 网络协议 网络监听工具

在我仔细研究Linux内核中的ftrace之后,发现ftrace中的各个tracers的作用一直被人们严重低估了, 比如我们会花了大量的时间去理解Linux内核中的一块代码,然后猜测可能的执行流, 但是ftrace会首先...

关键字: Linux内核 ftrace tracers

在进行socket通信开发时,一般会用到TCP或UDP这两种传输层协议,UDP(User Datagram Protocol)是一种面向无连接的协议,在数据发送前,不需要提前建立连接,它可以更高效地传输数据,但可靠性无法...

关键字: socket TCP UDP

SQLite是一个跨平台的轻量级数据库,支持C/C++开发,可用于嵌入式中,关于C/C++使用SQLite的简单实例,可参考这篇:“玩转SQLite6:使用C语言来读写数据库”,本篇来继续介绍SQLite的基础运算符与表...

关键字: SQLite C语言 数据库

嵌入式软件

15715 篇文章

关注

发布文章

编辑精选

技术子站

关闭