基于FPGA的PCI接口的设计与实现_第1页
基于FPGA的PCI接口的设计与实现_第2页
基于FPGA的PCI接口的设计与实现_第3页
基于FPGA的PCI接口的设计与实现_第4页
基于FPGA的PCI接口的设计与实现_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

通信技术CommunicationsTechnologies基于FPGA的PCI接口的设计与实现乐健1,陈绍炜1,吴婷婷2(1西北工业大学电子信息学院,陕西西安710129;2中铝贵州分公司水电厂,贵州贵阳550014)[摘要]针对PCI接口使用的广泛性,分析了现阶段实现PCI接口各种方案的优缺点,提出了一种使用FPGA实现PCI接口的设计方案,首先详细论述了该设计的PCI接口信号,重点叙述了PCI接口功能模块划分以及PCI接口的核心状态机设计原理、结构和工作过程,并对设计的PCI接口进行了仿真测试,经验证后满足PCI规范的时序要求,并在身份智能认证卡中得到了很好的应用。[关键词]现场可编程门阵列;PCI接口;身份认证;板卡[中图分类号]TP311[文献标识码]A[文章编号]1009-8054(2010)05-0041-03DesignandRealizationofPCIInterfaceBasedonFPGALEJian1,CHENShao-wei1,WUTing-ting2(1SchoolofElectronicsandInformation,NorthwestPolytechnicalUniversity,Xi’anShaanxi710129,China;2GuizhouBranchCHALCO,GuiyangGuizhou550014,China)[Abstract]ForwideapplicationofthePCIinterfaceandbasedonthestudyofadvantagesanddisadvantagesoftheexistingPCIinterface,thepaperproposesadesignofPCIinterfacecontrollerbasedonFPGA.Theinterfacesignalsofthedesignarefirstdiscussed,andthenthearchitectureandprincipleofthestatemachine----thecoreofPCIinterfacecontroller,isdescribed.ThesimulationresultsindicatethattheproposeddesignschemecouldsatisfytherequirementofPCIspecification,andisfairlyappliedintheintelligentboardcardofIDauthentication.[Keywords]FPAG;PCIinterface;identityauthentification;boardcard0引言PCI(PeripheralComponentInterconnect)总线是一种高性能局部总线,是为了满足外设间以及外设与主机间高速数据传输而提出来的。采用PCI总线来进行数据传输,可以解决原有的标准总线数据传输率低带来的瓶颈问题。它可以在33MHz主频32位数据总线条件下达到峰值132Mbit/s的带宽,在66MHz主频和64位数据总线的条件下达528Mbit/s,具有即插即用和中断共享等优点,使其成为计算机的一种标准总线,具有广泛的应用前景[1]。Rijndael算法是一种分组密码算法,是美国国家标准和技术研究所(NIST)推荐的高级数据加密标准,具有易于软硬件实现、安全性能好、效率高和灵活等优点[2]。目前PCI总线的实现方案一般有以下3种:①采用PCI专用接口芯片,如PLX公司的PCI9054,采用这些专用芯片,优点是功能强,可靠性高,设计者可避开复杂的PCI总线接口关系,可方便实现PCI接口,缺点是用户可能只使用到部分功能,会造成一定的资源浪费,并且在设计上也缺乏灵活性;②利用IP核来实现PCI接口,利用基于PCI协议的IP核来实现PCI接口,这种设计开发速度较快,灵活性较好,但是IP核价格昂贵;③用FPGA或者CPLD自行设计PCI接口,该设计方法具有较强的灵活性,仅实现需要的PCI功能,因此具有较高的性能价格比。由于自行设计PCI接口有很大的灵活性,因此就采用FPGA自行设计PCI接口。1PCI总线接口信号PCI接口信号[3]如下页图1所示。图1信号共分为两种:一是PCI总线接口信号,如PCI_CBE_L:PCI命令总线;PCI_PAR:PCI校验信号;PCI_FRAME_L:PCI帧信号;收稿日期:2009-10-13作者简介:乐健,1985年生,男,硕士,研究方向:通信与信息系统;陈绍炜,1970年生,男,副教授,硕士生导师,研究方向:通信与信息系统;吴婷婷,1985年生,女,助理工程师,研究方向:通信与嵌入式系统。PCI_TRDY_L:PCI目标设备准备好信号;PCI_IRDY_L:PCI主设备准备好信号;PCI_STOP_L:PCI停止信号;PCI_DEVSEL:PCI设备准备好信号;PCI_IDSEL:PCI主设备选择信号等。二是后端信号,如BR_W_L:数据传输方向信号;BE_L:后端41通信技术CommunicationsTechnologies选择信号;DATA_WRITE_L:写数据信号;DATA_READ_L:读数据信号;DATA_STOP_L:数据停止信号;READY_L:数PCI总线接口后端接口就向PCI状态机发出控制信号;⑥状态机模块:状态机模块是PCI接口设计中核心的部分,它控制所有数据读写时间和PCI接口和后端设备的数据流。在这个模块,状态机通过判断PCI总线上的PCI_CBE_L和PCI_IDSEL信号值确定当前总线操作状态,从而控制其他模块的运作,并接受它们发送的信号,控制状态的转变。此模块一方面按照PCI协议,结合PCI总线端输入的PCI总线信号在PCI总线端输出相应的PCI总线信号,一方面又给本地用户发出相应的控制信号,使本地用户执行适当的读写操作,完成PCI总线的配置读写和IO或存储器读写时序。PCI从模式下状态机一共分为:idle、config_wait、config、rw_wait、abort、last_rw、rw、backoff这几个状态。具体的状态转换如下所述(见图3):图1PCI接口信号2PCI总线接口设计PCI接口的设计采用自顶向下的设计方法,首先根据PCI协议对功能模块进行划分[4],如下所述(见图2):逻辑锁存模块状态机模块重计数模块奇偶校验模块基地址检查模块配置模块图2PCI功能模块划分①逻辑锁存模块:这个模块主要锁存PCI传输过程中需要的数据,在数据传输过程中主要锁存PCI地址寄存器、CBE寄存器和IDSEL寄存器的数据;②PCI配置模块:这个模块配置PCI协议规定的所有配置寄存器,其中包括DeviceID、VendorID、Status和Command等寄存器。此外,这个模块还包括标志读基址寄存器的值;③基地址检查模块:这个模块主要完成两个任务,一是控制基址0寄存器和基址1寄存器中的只写部分,BR0和BR1寄存器是PCI系统可编程寄存器,主要用来译后端设备的基地址;二是在基址寄存器0或者基址寄存器1中译出基址标志位,作为PCI状态机的一个控制信号;④奇偶校验模块:在PCI系统进行读操作时,对AD[31:0]和CBE[3:0]数据进行偶校验,并向主设备发送PAR信号,确保数据准确性,在设计中采用流水线的方式来满足PCI协议中所要求的11ns的PRA信号;⑤重计数模块:当PCI接口开启一个读或写周期时,必须在DEV_SEL拉高的16个时钟周期内完成,后端设备在12个通信技术CommunicationsTechnologies读写操作则将状态转换至rw状态(连续读写)或last_rw状态(一次读写操作),当frame_l有效则转至rw状态,否则转至last_rw状态,如不满足条件则转至abort状态;⑤rw(PCI数据读写状态):此状态下判断PCI总线上的irdy信号,如果irdy有效则开始数据传输,否则插入等待周期。的发展,对身份认证智能卡认证速度提出了越来越高的要求,因此,采用PCI接口的身份认证智能卡很好地解决了认证速度的瓶颈问题[5]。板卡的结构如图5所示。对frame_l进行判断,如果frame_l无效,表明此次已经是最后一次传输,进入backoff状态。另外,目标读写失败,状态转换至abort状态;⑥last_rw(PCI最后一个数据读写状态):单周期数据读写或用户要求停止传输时进入此状态,状态机进行最后一次数据传输,并将状态转换为backoff;⑦abort(错误终止传输状态):此状态下因本地端发生致命错误用户要求终止传输,一般发生在读写及准备读写状态时(rw,rw_wait状态);⑧backoff(返回状态):状态机释放总线,将PCI总线输出为高阻态,并将状态转换至idle。PCI总线接口模块负责加密计算结果和上位机进行数据交换;加密计算模块负责Rijndean算法中置换、循环移位、多轮迭代和模2加等运算和用户信息认证;FLASH接口模块负责FLASH存储器的数据接口控制逻辑。外部FLASH中只存放身份认证过程中所使用的加密密钥以及用户身份特征信息,如ID值,运算过程中的加密中间值只会出现在FPGA内部,而不会出现在计算机系统和外部FLASH保证了认证系统的安全性。5结语采用FPGA设计PCI接口的优点是自由灵活,可以只根据需要实现PCI规范的子集,此PCI接口在modelsim中仿真通过,经过测试满足PCI2.2规范,极端传输速率为33Mbit/s,很好地解决了身份认证智能卡的认证速度瓶颈。身份认证智能卡已经在某防伪编码系统中得到了很好的应用,表明此PCI接口具有很强的可靠性和实际应用价值。3PCI接口功能仿真在ISE10.1和ModelsimSE6.2b中进行综合和仿真,经过测试完全满足PCI2.2规范。下面对存储器单周期读的仿真结果进行简单的分析。pci_cbe_l为0110表示从存储器空间读数据,在随后trdy,irdy有效的时候,数据会传给pci_add。可以看到,pci_add上的数据和bkend_add数据是一样的,这说明了单周期读是正确的,如图4所示。参考文献[1]刘晖,翼然然,夏意军,等.PCI系统结构[M].第4版.北京:电子工业出版社,2000.[2]陈维彬.面向PCI密码卡的一种高效处理模型[J].通信技术,2009,42(09):165-167.[3]熊光泽,詹瑾瑜.嵌入式系统软/硬件协同设计技术综述[J].计算机应用,2006(04):757-760.图4存储器单周期读[4]王秀芹.软硬件协同设计中的划分算法的研究[D].哈尔滨:哈尔滨工业大学,2005.[5]赵彬.基于F

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论