嵌入式系统中PCI总线仲裁器的设计与实现

发布者:静心悠然最新更新时间:2006-08-04 来源: 电子技术应用关键字:总线  算法  仲裁  信号 手机看文章 扫描二维码
随时随地手机看文章

PCI(Peripheral Component Interconnect)总线是现今最为流行的工业控制总线之一。它广泛地应用在计算机中,并且由于众多厂商对PCI的良好支持,使得目标嵌入式设备中的很多解决方案都包含了PCI总线。在多主设备的PCI系统应用中,必须对各个主设备提供仲裁授权信号。很多厂家有针对性地发布了PCI仲裁逻辑的专用芯片或者集成了PCI重载逻辑的专用芯片,但使用不够灵活,为了使PCI设备能够更方便地应用在嵌入式系统中,本文介绍了一种基于CPLD(复杂可编程逻辑器件)的PCI总线仲裁器的设计方法,此方法可以为系统量身定制适合于系统本身的PCI总线仲裁器。而不必局限于特定的芯片要求,在体积、功能、成本等诸多方面都有很好的应用前景。

1 PCI总线仲裁简介 1.1 PCI总线的仲裁原理

PCI总线是一种共享式的总线,可以连接多个主设备,但由于数据传输的独占性,每一时刻只能由一个主设备占用总线。因此,为了有效地利用PCI总线宽带,必须设置一个总线仲裁器,按照一定的算法协调系统中各个主设备的操作。

每个具备主设备功能的PCI设备必须提供两个与仲裁有关的信号:REQ#和GNT#。其中REQ#为请求总线信号,由需要发起PCI传输事务的设备发出,GNT#为总线授权信号,由PCI总线仲裁器裁决后给出,接到GNT#信号的PCI设备将在下一次总线空闲后开始操作。

PCI总线仲裁的裁决过程可以在PCI传输期间完成,并不占用PCI总线的宽带,这称为隐式仲裁,即需要发起PCI操作的设备可以随时发出请求REQ#,PCI仲裁器立即批准该请求被给出GNT#,但是真正的传输操作一定要等到当前传输完成,即总线空闲后才可以开始,图1描述了PCI总线设备与仲裁器的关系。


1.2 PCI总线仲裁规则约定

(1)仲裁器的仲裁算法必须保证所有的设备都能得到授权的机会,否则将会出现某个优先级低的设备永远不能占有总线进行事务操作的情况。

(2)如果FRAME无效,GNT可以在任意时间撤销,以便服务于另一个主设备或者作为对主设备车REQ的响应。

(3)如果GNT信号被撤销但FRAME有信号,当前的总线正在传输数据,则操作合法。

(4)如果总线不处于空闲状态,则允许一个GNT的撤销和另一个GNT的发生在同一个周期,如果处在空闲状态,则要求一个GNT撤销到下一个GNT的发出之间必须有一个时钟周期间隔,否则可能会在AD线和PAR线上出现冲突。

(5)GNT信号的每次发出,只限于相应的总线主控器可以使用总线进行一次总线操作(一个FRAME发出到撤销),如果该主控器需要多次总线访问,它可以保持REQ信号一直有效。仲裁器会按照特定的仲裁算法来决定是否仍判给该主设备。

(6)一个主控器可以在任意时刻撤销其REQ信号,REQ信号一旦撤销,仲裁器将认为该设备不再请求使用总线,因而撤销其GNT信号(参考上文(1))。如果一个主控器只希望做一次总线传输,则它应当在发出FRAME的同一时钟周期撤销REQ。

(7)如果当前的主控器在它的GNT信号发出后,持续16个空闲周期还没有开始总线操作,则仲裁器视其为超时,仲裁器可以在任意时刻撤销GNT信号,以便服务于另一个设备。

1.3 PCI总线仲裁的算法

目前,应用于PCI总线仲裁的算法主要有固定优先级算法和动态优先级算法两种,在固定优先级算法中,各个设备的优先级是事先确定好的,仲裁器针对事先设定好的优先级为每个设备分配使用权。这种算法的缺点是:一旦PCI总线事务非常繁忙,优先级高的设备会占有总线不放,将导致优先级低的设备无法申请到总线。可见这是一种并不公平的算法,只适用于总线利用率非常低的情况,动态优先级算法是在每次仲裁授权后动态改变各个设备的优先级。在保证每个设备都有机会获得总线的情况下,优先级改变的算法可以是各式各样的。最常用的是循环优先级算法,即每次仲裁授权后将排队中的设备优先级加1。因其算法简单,且对大部分应用都十分有效。本设计采用循环优先级算法。

1.4 总线停靠

当PCI总线空闲时,一个设备从申请总线到被授权使用,最小也需要2个时钟周期,这对于PCI总线是一种浪费。因此仲裁器通常选中一个最经常占用总线的设备,PCI总线空闲时将GNT#赋予它,这叫做总线停靠。当总线空闲时,该设备需要占用总线时可马上得到批准。

2 双主设备PCI总线仲裁器的实现

下面描述了一个具有两个设备的总线仲裁器的硬件实现,其一为TriMedia嵌入式DSPCPU PNX1300,其二为Intel i82559网络控制器,系统结构如图2所示。

该仲裁器的接口信号如表1所示。

为设计方便起见,在程序中设计三类状态机:总线状态状态机、总线主设备查询状态机、仲裁状态机。

2.1 总线状态状态机

总线状态状态机用于记录总线事务的状态,定义如下:

type bus_state is(IDLE,BUSY,LAST_DATA,FINISH)
四种状态分别表示总线空闲、忙、最后一个数据传输期以及传输完成。状态图如图3。

下面是以VHDL代码形式实现的该状态机的状态转换关系。




2.2总线主设备查询状态机

总线主设备查询状态机用来决定当前是否需要重新指定一个主设备,重新指定一个主设备的条件是:(1)当前被授权的设备已开始传输;(2)当前被授权的设备没有开始传输并且超时。将主设备查询状态分为IDLE、GNT1、GNT2、WAIT_NOBUSY和WAIT_BUSY2五个状态,并设置计数器count,当总线上某个设备被授权,但16个周期仍然没有开始操作,count超过16,被视为超时,仲裁器可以撤销其仲裁授权,并传授其他设备,程序根据这个状态机的输出结果决定仲裁状态机是否改变。

状态转换如图4所示,状态机描述的VHDL代码略。


主设备查询状态机的输出信号search_master:


该状态机的驱动条件是由总线状态状态机的输出结果(busbusy)、仲裁状态机的状态(idle,park)和计数器的产生的超时信号(timeout)组成,设置WAIT_BUSY2的目的是为了避免可能会在AD线和PAR线上出现的冲突。该状态机的输出search_master作为仲裁状态机状态转换使能信号,只有该信号有效时,仲裁状态机才进行当前状态的改变。

2.3 仲裁状态机

仲裁状态机表示总线仲裁器的状态,定义如下:


状态转变过程如图5所示,状态机描述的VHDL代码略。

仲裁器根据仲裁状态机当前状态控制仲裁授权信号(GNT)的给出。

注:PARKMASTER是事先设置的停靠状态。

2.4仿真波形图

由图6可以看出,测试文件模拟了一个设备申请和两个设备同时申请的情况,并给出了总线授权信号(GNT),验证了仲裁器逻辑的正确性。

2.5 资源占用情况分析

可编程逻辑器件使用Lattice公司的ispLSI2064E135LT100,在ispLever中综合本例程序,结果如表2。

综合后的延迟分析显示,该逻辑的时钟周期最小为7.5ns,即该逻辑可以运行在133MHz以下的系统中,完全可以胜任33MHz PCI总线的仲裁工作。

本PCI总线仲裁器已成功地应用在基于PNX1300的IP会议电视终端系统中,用于处理嵌入式CPU PNX1300和网络控制器I82559的总线占用仲裁。该会议电视终端已于2005年1月在国家泰尔实验室通过测试并取得入网许可证。

关键字:总线  算法  仲裁  信号 引用地址:嵌入式系统中PCI总线仲裁器的设计与实现

上一篇:基于嵌入式系统的多媒体控制前台设计
下一篇:基于ARM-μCLinux嵌入式系统启动引导的实现

推荐阅读最新更新时间:2024-05-13 18:13

提高总线电路可靠性、安全性 CAN节点设计需注意这些
  CAN总线通讯已经从 汽车电子 行业逐渐向各行各业铺开使用了,例如轨道交通、矿井监控等。在设计CAN总线接口电路时需要注意哪些问题呢?   对于提高CAN总线节点的可靠性而言,离不开隔离、总线阻抗匹配、总线保护等,在设计CAN节点时要注意这些点以提高总线电路可靠性和安全性。   一、隔离   信号隔离   隔离收发器可将总线和控制电路进行电气隔离,将高压阻挡在控制系统之外,可以有效地保证操作人员的人身及系统安全。不仅如此,隔离可以抑制由接地电势差、接地环路引起的各种共模干扰,保证总线在严重干扰和其它系统级噪声存在的情况下不间断、无差错运行。如图 1所示,使用隔离收发器后,可以有效防止形成地环路,总线参考地可跟随共模电压的波动而
[嵌入式]
什么是现场总线?什么是现场总线控制系统?它的技术特点是什
现场总线控制系统(FCS:Fieldbus Control System)是继集散控制系统(DCS)后的新一代控制系统,它是电子、仪器仪表、计算机技术和网络技术的发展成果。现场总线使得现场仪表、执行机构、控制室设备之间构成网络互连系统,实现全数字化、双向、多参数的数字通信,为控制系统的全分布和全数字化运行奠定了基础。 现场总线是应用在生产现场、在微机化测量控制设备之间实现双向串行多节点数字通信的系统,也被称为开放式、数字化、多点通信的底层控制网络。它在制造业、过程工业、交通等方面的自动过系统中具有广泛的应用前景。 现场总线技术将专用微处理器置入传统的测量控制仪表,使它们各自都具有数字计算和数字通信的能力,采用可进行简单连接的双绞
[嵌入式]
现场总线与DCS系统的网络集成之浅谈
引言   新的基于现场总线技术的控制策略和网络结构将对现有的仪表及控制系统产生革命性的影响。从现场总线技术的本质特征上分析了其对传统分散控制系统DCS的冲击,并结合dcs的网络结构特点,给出了现场总线集成于dcs的3种实现方法。   工业控制从早期的就地控制、集中控制,已经发展到现在的集散控制(dcs),在过去的20年中,过程工业对dcs系统及相关的仪表装置进行了大量的投入,dcs系统的应用结果得到了用户的肯定。4-20mA信号是dcs系统及现场设备相互连接的最本质特点,这是控制系统和仪表装置发展的一大进步。   然而现在,数字化和网络化成为当今控制网络发展的主要方向。人们意识到传统的模拟信号只能提供原始的测量和控制信
[嵌入式]
信号链基础知识#54谁是音频时钟的“老板”,谁是主,谁是从呢
传统 I2S—为何要包括系统时钟? 过去,我们在讨论音频话题时,偶尔会提及 I2S。我在以前的一些文章中提到过 I2S,其他人在做音频研究时也都会提到它。简而言之,它是一种将立体声数据从一端传输至另一端的同步方法。 大多数人认为 I2S 有三种信号: 1. 数据:输入或者输出数据 2. 位时钟 (Bitclock,BCK):确立数据流中两个相邻位之间边界的信号 3. 左/右时钟 (LRCK)/字时钟 (Wordclock):一个在采样速率下运行、占空比为 50% 的慢时钟,它确立数据流中两条相邻通道(左和右)之间的边界。 I2S 的幕后英雄是主时钟 (MCK),也称作系统时钟 (SCK),它常
[模拟电子]
<font color='red'>信号</font>链基础知识#54谁是音频时钟的“老板”,谁是主,谁是从呢
基于LPC2129定时器捕获功能的车速信号采集系统
引言 汽车传感器是汽车计算机系统的输入装置,它把汽车运行中各种工况信息,如车速、各种介质的温度、发动机运转工况等,转化成电信号传给计算机,以便汽车运行处于最佳工作状态。自20世纪80年代以来,传感器在汽车领域上的应用不断扩大,它们在汽车电子稳定性控制系统(包括轮速传感器、陀螺仪以及刹车处理器)、车道偏离警告系统和盲点探测系统(包括雷达、红外线或者光学传感器)各个方面都得到了应用。 车速传感器是汽车传感器中基础而且重要的一部分。车速是汽车道路实验中的重要参数,它与车轮力、踏板力和车轮转速等参数相结合,对整车动态性能的分析、制动系统的性能匹配和ABS防抱死系统的开发,以及操纵稳定性实验的准确性有着重要的意义和应用价值。 为了
[单片机]
基于LPC2129定时器捕获功能的车速<font color='red'>信号</font>采集系统
矢量信号源与射频信号源的区别?
矢量信号源与射频信号源的区别是什么?本文为你带来矢量信号源与射频信号源的详细详细介绍及区别分析。 矢量信号源介绍 点频矢量调制 最早矢量信号发生器出现于20世纪80年代,采用中频矢量调制方式结合射频下变频方式产生矢量调制信号。这种方案的基本构成框图下图所示。 频率合成单元产生连续可变的微波本振信号和一个频率固定的中频信号。中频信号和基带信号进入矢量调制器产生载波频率固定的中频矢量调制信号(载波频率就是点频信号的频率),此信号和连续可变的微波本振信号进行混频,产生连续可变的射频信号。射频信号含有和中频矢量调制信号相同的基带信息。射频信号再由信号调理单元进行信号调理和调制滤波,然后被送到输出端口输出。 宽带矢量调制 随着
[测试测量]
矢量<font color='red'>信号</font>源与射频<font color='red'>信号</font>源的区别?
Microchip推出单I/O总线串行EEPROM系列
  2008年5月6日,Microchip Technology Inc.今天宣布推出最新的总共10款具备单I/O总线接口的串行EEPROM器件系列。新器件支持Microchip待批专利的UNI/O存储器件协议。11XX010、11XX020、11XX040、11XX080及11XX160是业内首批能支持从10kHz至100kHz范围内任意数据速率的单I/O EEPROM器件,也是唯一具有3引脚SOT-23封装的1KB、2KB、4KB、8KB及16KB的EEPROM器件(还具有其他高引脚数封装)。新器件及总线集强大功能和低引脚封装于一身,可帮助设计人员有效减小系统体积并降低成本。   现今的消费电子产品在日渐轻巧的同时具备越来越
[新品]
Inova Semiconductors 推出用于汽车ISELED照明和传感器网络的新型混合信号收发器
ILaS收发器INLT220Q集成 DC/DC 控制器,为汽车内饰和功能照明应用提供直接电池供电 Inova Semiconductors近期宣布推出用于汽车 ISELED照明和传感器网络(ILaS)的混合信号收发器 INLT220Q。该集成电路可在数米长的简单的非屏蔽双绞线电缆(UTP)上建立2 Mbit/s和低延迟的菊花链连接。这器件可通过传感器和执行器构建集中控制、稳健的汽车 ISELED LED 网络。车载ILaS 网络最多可由4079个独立的可寻址节点组成。该网络采用了封包的交换式通信协议。节点可以配置为分支设备或客户端设备的INLT220Q设备,例如ISELED智能LED或通过UTP电缆连接的简单传感器子系统
[电源管理]
Inova Semiconductors 推出用于汽车ISELED照明和传感器网络的新型混合<font color='red'>信号</font>收发器
小广播
最新应用文章

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved