PCI总线仲裁器的设计和实现论文

时间:2024年06月29日

/

来源:dhwqoiu83fh

/

编辑:本站小编

收藏本文

下载本文

以下是小编为大家整理的PCI总线仲裁器的设计和实现论文,本文共4篇,仅供参考,欢迎大家阅读。本文原稿由网友“dhwqoiu83fh”提供。

篇1:PCI总线仲裁器的设计和实现论文

PCI总线仲裁器的设计和实现论文

PCI总线仲裁器通常是集成在PCI芯片组中。随着计算机应用的深入,尤其是嵌入式系统的不断发展,集成的仲裁器难以满足某些场合的应用。而采用CPLD技术实现的独立的PCI总线仲裁器,则较好的适应了这方面的需求。

一pPCI总线仲裁机制

PCI的仲裁是基于设备访问,而不是基于时间分配的。在任一时刻,总线上的一个主设备要想获得对总线的控制权,就必须发出它的请求信号(PCIreqN),如果此刻该设备有权控制总线,总线仲裁器就使该设备的总线占用允许信号(PCIgntN)有效,进而获得总线的使用权。当有多个主设备同时发出总线控制请求时,就必须由仲裁器根据一定的算法判定,当前应该由哪个主设备获得控制权。

二、仲裁算法

常用的仲裁算法有:公平算法、循环算法等。

本仲裁器设计采用的是循环算法,设备的优先级预先设定。目前的设计实现对四个PCI设备请求的仲裁,各设备优先级由高到低安排为:设备0 >设备1 >设备2 >设备3。

系统启动伊始,没有设备使用PCI总线,也没有设备请求使用PCI总线,仲裁器总是设定设备0拥有总线控制权,即将总线停靠于设备0。此时设备0的PCIgntN是有效的。而在此之后,仲裁器总是指定PCI总线的最后一个使用者为总线的停靠设备。

当有一个或多个设备提出拥有总线使用权的请求时,仲裁器将按照事先安排的设备优先级顺序逐一查询。对于只有一个设备请求的情况,该设备的.请求将会马上得到响应;如果多个设备同时发出请求时,仲裁器裁定首先响应优先等级高的设备的请求,当此设备完成数据传输交出总线使用权后,再由优先等级低的设备使用总线。示意框图见图2。

如果一个设备已获得总线使用权并且正在进行地址、数据传输时,比它优先级别高的设备也发出了占用请求,仲裁器将会撤销优先级别低的设备的总线占用信号,并把总线使用权交给优先级别高的设备,同时还要确保在任一时刻不会出现多个设备同时占用总线的情况。具体见仿真分析。

篇2:PCI总线仲裁器的设计与实现

PCI总线仲裁器的设计与实现

摘要:基于Altera的CPLD器件的PCI总线仲裁器设计,实现仲裁器的AHDL编程,并结合仿真结果对PCI总线的仲裁进行了论述。

关键词:PCI仲裁器,CPLD,仿真

PCI总线仲裁器通常是集成在PCI芯片组中。随着计算机应用的深入,尤其是嵌入式系统的不断发展,集成的仲裁器难以满足某些场合的应用。而采用CPLD技术实现的独立的PCI总线仲裁器,则较好的适应了这方面的需求。

一pPCI总线仲裁机制

PCI的仲裁是基于设备访问,而不是基于时间分配的。在任一时刻,总线上的一个主设备要想获得对总线的控制权,就必须发出它的请求信号(PCIreqN),如果此刻该设备有权控制总线,总线仲裁器就使该设备的总线占用允许信号(PCIgntN)有效,进而获得总线的使用权。当有多个主设备同时发出总线控制请求时,就必须由仲裁器根据一定的算法判定,当前应该由哪个主设备获得控制权。

二、仲裁算法

常用的`仲裁算法有:公平算法、循环算法等。

本仲裁器设计采用的是循环算法,设备的优先级预先设定。目前的设计实现对四个PCI设备请求的仲裁,各设备优先级由高到低安排为:设备0 >设备1 >设备2 >设备3。

系统启动伊始,没有设备使用PCI总线,也没有设备请求使用PCI总线,仲裁器总是设定设备0拥有总线控制权,即将总线停靠于设备0。此时设备0的PCIgntN是有效的。而在此之后,仲裁器总是指定PCI总线的最后一个使用者为总线的停靠设备。

当有一个或多个设备提出拥有总线使用权的请求时,仲裁器将按照事先安排的设备优先级顺序逐一查询。对于只有一个设备请求的情况,该设备的请求将会马上得到响应;如果多个设备同时发出请求时,仲裁器裁定首先响应优先等级高的设备的请求,当此设备完成数据传输交出总线使用权后,再由优先等级低的设备使用总线。示意框图见图2。

如果一个设备已获得总线使用权并且正在进行地址、数据传输时,比它优先级别高的设备也发出了占用请求,仲裁器将会撤销优先级别低的设备的总线占用信号,并把总线使用权交给优先级别高的设备,同时还要确保在任一时刻不会出现多个设备同时占用总线的情况。具体见仿真分析。

三、编程设计与实现

本设计使用AHDL语言,在MaxplusII 10.0上编译通过,并进行了仿真。

1. 仲裁器信号定义

SUBDESIGN  PCI_arb

(       -- 输入

PCIclk         :INPUT  -- PCI时钟

Arbiter_rstN     :INPUT  -- 复位信号

PCIreqN[3..0]    :INPUT  -- 总线占用请求信号

frameN         :INPUT  -- 数据交易的启动或开始,主设备发出

irdyN           :INPUT  --交易数据准备好,主设备发出

-- 输出

PCIgntN[3..0]    :OUTPUT -- 总线占用允许信号

)

frameN和irdyN决定了总线的状态,只要两个信号中的一个有效,就表明总线上有数据通过,总线处于忙状态;当两个信号都无效时,则总线处于空闲状态。

2. 仲裁器状态机定义

parb_sm : MACHINE

OF BITS ( PARB2 , PARB1 , PARB0 )

WITH STATES (

PARB_SLT0  = 0, -- PCIgnt0#有效,设备0拥有总线使用权,总线空闲

PARB_SLT0D = 1, -- PCIgnt0#有效,数据在总线上传输,总线处于忙状态

P

ARB_SLT1  = 2, -- 以下类同

PARB_SLT1D = 3,

PARB_SLT2  = 4,

PARB_SLT2D = 5,

PARB_SLT3  = 6,

PARB_SLT3D = 7 );

3. 仲裁的实现

由于采用循环算法,对每一个设备而言状态的变换都是相同的,下面仅以设备0的状态转换为例:

CASE  parb_sm  IS

WHEN PARB_SLT0 =>

IF ( !frameN # !irdyN # frameN & irdyN & PARBtout4 ) THEN

IF ( !PCIreqN1 ) THEN

PCIgntN1  = GND;

parb_sm   = PARB_SLT1D;

ELSIF ( !PCIreqN2 ) THEN

PCIgntN2  = GND;

parb_sm   = PARB_SLT2D;

ELSIF ( !PCIreqN3 ) THEN

PCIgntN3  = GND;

parb_sm   = PARB_SLT3D;

ELSE

PCIgntN0  = GND;

parb_sm   = PARB_SLT0D;

ELSE

PCIgntN0  = GND;

parb_sm   = PARB_SLT0D;

END IF;

WHEN PARB_SLT0D =>

PCIgntN0    = GND;

IF ( frameN & irdyN ) THEN

parb_sm   = PARB_SLT0;

ELSE

Parb_sm   = PARB_SLT0D;

END IF;

为了避免AD线上和PAR线上出现时序竞争,一个设备的PCIgntN信号有效和另一个设备的PCIgntN的撤销,如果不是在总线空闲状态,则两者之间至少要有一个时钟的延迟。设计中,将每个设备占用总线的状态分为两部分,PARB_SLTx(总线空闲)和PARB_SLTxD(总线忙);状态机不能从一个设备的PARB_SLTxD状态直接转到另一个设备的PARB_SLTyD状态,中间必须经过至少一个时钟的PARB_SLTx状态的衔接,这样就避免了总线上竞争的出现。

代码中,PARBtout为一5位计数器,对PCI时钟个数进行计数,用来判别设备发出请求信号后是否在规定时间内(16个时钟,即PARBtout[4..0] = 10000)占据了总线,启动了数据的传输;如果超时,则撤销该设备的请求信号,并按预设的优先级顺序,对其余设备总线使用权进行新一轮的裁定。计数器的编程实现:

IF ( PARBtout4 # PCIreqN0 & PCIreqN1 & PCIreqN2 & PCIreqN3 ) THEN

PARBtout [ ] = 0;

ELSIF ( frameN & irdyN ) THEN

PARBtout [ ] = PARBtout [ ] + 1;

ELSE

PARBtout [ ] = 0;

END IF;

四、仿真分析

1. 单一设备总线请求情况

系统初始化后自动将总线停靠于设备0上,总线处于空闲状态,frameN、irdyN均为高电平。需要强调的一点是,仲裁所用的PCI控制信号均在PCI时钟信号的上升沿采样而得。如图3所示,设备2发出总线占用信号,仲裁器在时钟上升沿A处采样到该信号,并开始启动PARBtout计数,此时的frameN、irdyN为高电平,设备0仍然拥有总线使用权;随后设备2驱动使得frameN和irdyN有效,在时钟上升沿B处,仲裁器采样到frameN和irdyN,计数器清零,使设备2的PCIgntN2信号有效,从而占用总线,设备把地址、数据驱动到总线上,总线处于忙状态。

之后,设备2撤销其PCIreqN2信号,放弃对总线的占用;接着frameN、irdyN信号相继无效,表明数据传输的完成,总线变为空闲,仲裁器在C处采样后,将总线停靠在设备2上。

2. 多个设备同时请求总线使用权(以两个设备为例)

设备3首先发出请求信号,仲裁器在时钟A处采样后,计数器开始计数,此时总线仍然为设备0占用着;在时钟B处的采样,检测到frameN有效,表明数据传输的开始,仲裁器使得PCIgntN3信号有效,设备3获得总线所有权;

在随后的一个时钟上升沿,仲裁器采样到设备2的总线请求信号,此时由于frameN、irdyN依然有效,表明数据传输正在进行中,必须等当前数据传输完成后,设备2才能占用总线进行自己的数据传输,此时仲裁器隐含设定设备2拥有总线使用权。设备3在时钟C之前使得frameN、irdyN无效,总线进入空闲状态,停靠在设备3上。设备2检测到总线空闲,驱动自己的frameN、irdyN信号,仲裁器在时钟D处采样到有效的frameN、irdyN信号后,使PCIgntN2有效,设备2占据总线,开始数据的传输。设备2使用完总线后,使总线回到空闲状态,停靠在设备2上;设备3检测到总线空闲,再次驱动frameN、irdyN有效,从而再次获得总线使用权(时钟上升沿F处)。所有传输完成后,总线将停靠在设备3上。

值得一提的是,如果设备3在被迫交出总线前不能完成所有数据的传输,它必须使自己的PCIreqN3信号持续有效,这样在设备2用完总线后,仲裁器能将使用权交回,从而完成剩余数据的传输。

图5为设备获得总线使用权,在设定的16个时钟周期内没有启动传输,仲裁器状态的变换。仍以两个设备为例。

五、应用CPLD进行PCI总线仲裁器的设计,系统结构简单;配置灵活,可以根据系统的需要,对有关信号进行裁减或者扩展;在线修改方便。本设计采用Altera的EPM3064实现,并应用于所设计的系统板中。

篇3:基于USB总线通信数据采集器的设计与实现

基于USB总线通信数据采集器的设计与实现

提出了一个基于USB接口芯片PDIUSBD12的智能通信数据采集器的设计与实现方法.该方法利用了USB总线的高带宽、使用方便、易扩展等优点,并采用了智能的'协议识别技术,使通信数据采集器可以独立完成通信、数据采集的任务,从而将计算机从繁重的通信采集工作中解放出来,进而可大大提高计算机采集与监控系统的效率.

作 者:王敏 李晓明 Wang Min Li Xiaoming  作者单位:武汉大学 刊 名:电气传动  ISTIC PKU英文刊名:ELECTRIC DRIVE 年,卷(期): 35(7) 分类号:V4 关键词:通用串行总线(USB)   智能识别   通信数据采集  

篇4:浅谈某型机载作战任务加载器的设计与实现论文

浅谈某型机载作战任务加载器的设计与实现论文

军用飞机作战任务具有较高的保密要求,飞行员需要从作战指挥部获取作战任务数据,然后在飞机执行任务起飞前将作战任务相关参数通过数据加载设备传输到火控计算机中。火控系统根据装订的信息参数引导飞行,在载机到达程序装订的目标区域时提醒飞行员做好战斗准备,此外攻击后的退出引导、返场引导等飞行过程都可根据装订的信息自动完成。

1 整体方案考虑

作战任务加载器需要实现三个功能,包括读取数据存储卡的数据、数据解密和通过1553B接口向火控计算机发送数据。

数据存储卡用于存储和传递作战导航数据,任务规划系统对数据存储卡执行编程操作,作战任务加载器对数据存储卡执行读取操作。作战任务加载器属于小型机载嵌入式设备,其工作频率较低,数据存储卡应选择工作模式相对简单、读取速度快、可靠性较高的产品。作战任务加载器采用基于USB接口的NOR Flash存储卡作为作战导航参数信息的存储载体。NOR Flash也称为Linear Flash, 拥有独立的数据总线和地址总线,能快速随机读取,可以单字节/单字编程,但必须以块为单位或整片执行擦除,重新编程之前必须进行擦除操作。NOR Flash存储卡简单的访问方式、快速读取速度及较高的可靠性适合机载作战任务加载器的工作环境和工作模式。

作战任务编程/加载系统采用数据加解密技术保证移动存储的安全保密性。所谓数据加密技术是指将信息(或称明文)经过加密钥匙及加密函数转换,变成无意义的密文,而接收方将此密文经过解密函数、解密钥匙还原成明文的技术。作战导航参数信息需要任务规划系统进行数据加密后存储在数据存储卡上,作战任务加载器对数据存储卡上的密文数据进行解密处理。作战任务加载器固定安装在飞机上,应用环境具有较高的安全性。考虑作战任务加载器的实时性要求较低,且需要解密的导航信息数据量较小,加载器采用软件解密方法即可满足要求。虽然会带来软件运行开销,但可降低硬件成本。

本系统采用IDEA(International Data EncryptionAlgorithm)加密算法实现作战导航数据信息在数据生成端的加密和数据使用端的解密。IDEA被认为是目前世界上最好最安全的分组密码算法,且对计算机功能要求不高。IDEA的密钥长度是128位,相对较长,加密强度高。在穷举攻击的情况下,IDEA需要经过2128次加密才能恢复出密钥,假设芯片每秒能检测10亿个密钥,需要1013年,它被认为仅循环4次即可抵制差分密码分析,对IDEA算法也不起作用,随机选择密钥基本没有危险,故其安全性较高;算法的基础是16位运算,实现速度与DES相同。加密中从数码锁获得的密钥为128比特,明文分组长度是64比特。

采用DSP实现IDEA解密算法与硬件实现解密相比具有开发周期短、成本低的优点。另外DSP本身的流水线和运算器设计也能够有效提高数据解密算法的运算速度。

2 硬件设计

作战任务加载器由数据处理模块、电源系统、机箱和数据存储卡构成,机箱和电源采用一体化设计,数据处理模块是作战任务加载器内部唯一的SRU。数据存储卡直接安装在数据处理模块上,可简化整机结构设计。

2.1 DSP选型

数据处理模块采用TI公司的数字信号处理器SM320F2812,集成1553B、USB、串口、离散量等数字接口。1553B接口用于向火控系统传输数据,USB接口用于访问数据存储卡,串口用于显示维护BIT的测试结果,离散量用于控制作战任务加载器进入不同的'工作模式。SM320F2812的额定工作频率为150MHz,每秒可执行1.5亿次指令,具有单周期32bit×32bit的乘和累加操作功能,主要实现USB存储卡数据读取、解密、发送的功能。

F2812的外部接口映射到5块固定的存储空间。每个存储空间可以单独设置访问时的等待状态数目、选通信号的建立时间和保持时序,且读和写操作的时序可以独立设置。此外,每个空间可以分别选择是否使用外部等待信号(XREADY)来扩展所需的等待状态。这些片选信号以及可编程的等待状态和选通时序使得DSP芯片可以和许多外部存储器或扩展外设间实现无缝接口。每个XINTF空间都有自己的时序寄存器XTIMING,改变时序寄存器的值将会影响相应空间的访问时序。1553B接口、RAM、数据存储卡可分别映射到不同的存储空间,实现简化设计。

2.2 1553B总线接口电路

作战任务加载器与火控计算机之间的数据传输通过1553B总线接口实现。本设计选择1553B接口芯片HK1553B来实现通信功能。

1553B总线接口电路工作时钟为12MHz,经过隔离变压器连接到1553B总线,模块上1553B芯片工作在RT方式下,1553B协议芯片访问外部存储器为一片64k×16bitSRAM存储器,存储器的访问控制及1553B协议芯片请求DSP总线及应答信号由FPGA产生。1553B协议芯片的地址和数据总线全部引入FPGA,1553B协议芯片访问DSP总线时地址数据通过FPGA挂在EMIF总线上。

2.3 USB接口电路

本系统采用的存储卡为MagicRAM公司的USBFlash存储卡,该存储卡读取周期最大为200ns,可执行100000次写/擦除操作。该存储卡的读写访问时序是典型的异步并行接口访问时序。DSP提供了对异步存储器的无缝访问接口XINTF,将数据存储卡单独映射到DSP的Zone 2外部存储空间。

USB芯片CY7C68013与FPGA相连,在检测到USB供电后,通过FPGA实现对USB接口芯片的复位,并使能USB接口信号,实现与上位机的通信,完成调试加载功能。

FPGA通过USB口电源监控电路实现对USB接口的接口控制,当USB接口供电有效时,FPGA输出USB芯片复位有效,并使能与USB接口的数据总线,在USB不使用条件下USB工作在PowerDown模式,数据总线置为三态。

3 软件设计

作战任务加载器的软件分为三部分,包括驱动程序、BIT程序和应用程序,驱动程序由BIT程序和应用程序调用。驱动程序包括DSP初始化、1553B接口驱动、串口驱动、GPIO驱动等。DSP初始化对DSP的工作频率、XINTF总线时序、中断使能和优先级进行配置。1553B、串口接口驱动实现通信初始化配置、数据发送、数据接收等基本底层控制操作。作战任务加载器BIT程序包括上电BIT和维护

BIT。作战任务加载器上电后通过读取地面状态使能信号GSE#的状态进入地面工作模式或机上工作模式。在地面工作模式,作战任务加载器执行维护BIT程序,对FLASH、RAM、1553B接口、USB数据存储卡等硬件资源进行测试,对FLASH的测试只进行应用程序校验和测试,对RAM、USB数据存储卡进行读写正确性测试,对1553B接口进行数据传输正确性测试。在机上工作模式,为了保证作战任务加载器的功能完备性,首先进行上电BIT测试,对应用程序FLASH校验和、数据RAM读写正确性、1553B接口内部环测正确性进行测试。上电BIT测试正确后,通过定时器产生定时中断不断侦测USB接口是否有数据传输卡存在。当正常插入数据存储卡后,任务加载器可向空地火控计算机发送数据加载请求,根据火控计算机的应答情况发起数据加载流程,执行应用程序。如未检测到数据存储卡或火控计算机无应答,则循环执行上电BIT测试。

应用程序对USB存储卡内密文数据和密钥读取,采用IDEA解密算法对密文数据解密,将解密后的明文数据通过1553B接口传输给空地火控计算机,其加载端和目标机均需支持1553B基本数据通信,通过握手-响应-确认机制来完成数据在加载端和目标机的可靠传输过程。

4 结束语

本文介绍了一种可读取USB数据存储卡并实现作战任务数据可靠传输的数据加载器。此设计方法可应用于更多具有安全可靠要求的数据加载设备。数据信息载体不局限于USB线性FLASH存储卡,可根据处理速度和数据量要求采用加固U盘、加固SATA电子盘等移动存储设备。与上位机的数据传输交互接口也可根据实际应用需求进行设计,可设计为AFDX、ARINC429、ARINC825等串行通信接口。

基于USB总线通信数据采集器的设计与实现

铁路局级的设计与实现论文

卷烟机导纸器设计研究的论文

基于SSH的科研管理系统设计和实现论文

地质遗迹信息系统设计与实现论文

下载PCI总线仲裁器的设计和实现论文(共4篇)
PCI总线仲裁器的设计和实现论文.doc
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
点击下载本文文档