嵌入式系统中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-02 20:25

基于LabVIEW的脉搏信号检测与分析系统的设计
应用领域:自动化测量   挑战:根据人体阻抗特性,通过拾取阻抗变化测量人体脉搏信号。利用LabVIEW强大数字信号处理功能还原脉搏波形,并对波形的特征信息进行提取及存储。采集足够的数据后,主要运用该语言的数学程序库以及数值分析计算功能进行回归分析,建立相关数学模型,揭示脉搏信号与心血管类疾病的联系。   应用方案:使用NI公司的LabVIEW 8.5作为软件开发平台,结合自行设计的脉搏信号采集装置,开发了一个具有信号分析、处理、显示以及对数据进行回归分析等功能的脉搏信号测量系统。   使用的产品:LabVIEW8.5学生版 介绍   在世界范围内,心血管类疾病患者与日俱增,已成为人类健康的头号杀手。美国心脏协会报告称,每
[医疗电子]
基于LabVIEW的脉搏<font color='red'>信号</font>检测与分析系统的设计
关于如何让初学者形象理解CAN总线技术关键点的思考
在汽车CAN总线教学中,我们往往不能很好的向初学者形象介绍各种专业知识。虽然技术术语可以让我们显得“专业”,但是针对对这些术语不了解的初学者,那可能会造成授课与听课理解的障碍,达不到需要的教学效果。在这里,我们讨论一下关于can—bus教学中的部分技术术语形象化教学的可能性。 总线阻抗匹配:在CAN总线通信的物理链路层,我们需要更好的总线阻抗匹配,才可以更好的传输数据;总线匹配不好,可能会造成信号的衰减和末端信号反射,造成对正常信号的干扰;就如人与人在说话时候,由于声音的传输介质(如空气稀薄等)不适合或周围的障碍物造成的回音与正在说的话的叠加,对听众造成接收障碍一样。所以我们需要对总线进行阻抗匹配,避免造成信号衰减和反射震荡,总线匹
[嵌入式]
基于PC104总线的嵌入式以太网卡设计
    摘要: 针对近年来工业现场设备愈来愈多的上网需求,提出一种利用Intel嵌入式微处理器386EX设计智能以太网卡的技术方法。通过对系统硬件及软件的设计描述,说明利用此方案设计的智能以太扩展模块能够实现基于PC104总线的工业设备的快速上网需求。     关键词: PC104总线 嵌入式 微处理器 以太网 引言 近几年来,PC机技术向嵌入式应用领域渗透的步伐逐渐加大,嵌入式PC机以其超小的体积、极低的功耗散热,无需机箱和底板就可直接叠装组合成各种系统而受到用户的欢迎,因而具有巨大的应用潜力。早期的嵌入式PC机产品是基于8位和16位的ISA总线的标准化母板的PC机,后来又开发出多种小型化嵌入式PC产品
[网络通信]
一种基于KEELOQ的改进加密算法及其在单片机中的实现技术
摘要:讨论了Microchip公司的KEELOQ加解密算法的实现机制,通过引入随随机数,提出了一种新的改进算法,并给出了其在单片机中的实现方案。该算法具有简单实用、所需硬件资源少、传输效率和安全性相对较高等优点,适用于需要数据加密的小型无线数据传输系统,具有广阔的应用前景。 关键词:加密算法 KEELOQ 单片机 跳码技术 当今的编解码电路已经朝着高度集成化和微电脑化发展。像普通的固定编解码芯片和MC145026/145027、PT2262/2272等已被广泛应用于公用系统中,给生活带来了方便。然而这些芯片不能保证系统的安全性。由于这些系统每次发送的数据流一模一样,只是高低电平的组合,第三方面通过捕捉设备,一旦用户信号出现,
[单片机]
工业以太网有哪些好处_现场总线和工业以太网的区别
  工业以太网有哪些好处   工业以太网是一种用于工业自动化控制的现代通信技术,具有以下好处:   高可靠性:工业以太网采用冗余机制和高可靠性的网络拓扑结构,能够保证数据传输的可靠性和稳定性,降低系统故障率。   高带宽:工业以太网采用高速传输技术,能够提供高速的数据传输和处理能力,支持实时数据传输和高速控制。   易扩展性:工业以太网采用分布式控制结构,能够方便地扩展和升级系统,支持新设备的快速接入和无缝集成。   互通性强:工业以太网采用标准化的通信协议,不同设备之间能够互相通信和协同工作,提高了设备的互通性和兼容性。   管理方便:工业以太网采用网络管理和监控技术,能够实现远程管理和故障排除,降低了维护成本和工作难度。   
[嵌入式]
一分钟快速了解PLC编程算法
PLC中无非就是三大量:开关量、模拟量、脉冲量。搞清楚三者之间的关系,你就能熟练的掌握PLC了。 开关量也称逻辑量,指仅有两个取值,0或1、ON或OFF。它是最常用的控制,对它进行控制是PLC的优势,也是PLC最基本的应用。 开关量控制的目的是,根据开关量的当前输入组合与历史的输入顺序,使PLC产生相应的开关量输出,以使系统能按一定的顺序工作。所以,有时也称其为顺序控制。 而顺序控制又分为手动、半自动或自动。而采用的控制原则有分散、集中与混合控制三种。 模拟量是指一些连续变化的物理量,如电压、电流、压力、速度、流量等。 PLC是由继电控制引入微处理技术后发展而来的,可方便及可靠地用于开关量控制。由于模拟量可转换
[嵌入式]
用CPLD实现基于PC104总线的429接口板
  PC104总线系统是一种新型的计算机测控平台,作为嵌入式的一种,在软件与硬件上与标准的台式PC(PC/AT)体系结构完全兼容,它具有如下优点:体积小、十分紧凑,并采用模块化结构,功耗低,总线易于扩充,紧固堆叠方式安装,适合于制作高密度、小体积、便携式测试设备,因此在军用航空设备上有着广泛的应用,但也正是PC104板的这种小尺寸结构、板上可用空间少给设计带来了一定的困难,所以本设计采用了复杂可编程器件CPLD,用CPLD完成了PC104总线与429总线通讯的主要电路,大大节省了硬件资源,本文着重介绍了CPLD部分的设计。    1 系统总体设计   CPLD是一种复杂的用户可编程逻辑器件,由于采用连续连接结构,易于预测延时
[嵌入式]
用CPLD实现基于PC104<font color='red'>总线</font>的429接口板
RSA算法的TMS320C54x DSP实现
  引言   在当今的电信时代,由于采用大规模的电子计算机对数据进行处理,使得信息的传递大大加速,但是,也随之出现了令人最为担心的问题,就是信息的安全性。对信息进行保护的方法就是数据加密,通过对网络上传输的数据和系统内存储的数据进行加密,可以大大提高网络和信息的安全性。以较高的安全性而被广泛采用的RSA公钥密码体制,在现代安全性制中占有重要地位。RSA算法由于在加密和解密过程中要进行大量的数值运算,存在难以实现的问题;而采用纯软件的方式实现RSA算法,虽然降低了解密的强度,但却增加了运算时间。本文采用一种软硬件相结合的方式来实现RSA算法。 DSP(Digital Signal Processor)芯片,即数字信号处理器,是一种
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

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