



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 如何利用pci总线设计一个数据转换模块 外围部件互连总线pci(peripheral component interconnect)总线,是一种先进的高性能3264位地址数据复用局部总线,可同时支持多组外围设备,并且不受制于处理器,为中央处理器与高速外围设备提供了一座沟通的桥梁,提高了数据吞吐量(32位时最大可达132 mbs),是现在pc领域中流行的总线。pci总线具有严格的总线规范,这就保证了它具有良好的兼容性,符合pci总线规范的扩展卡可以插入任何pci系统可靠地工作。1 plx-pci9054的结构和性能pci9054是plx公司生产的pci总线通用接口芯片,采用先进的plx数据管道
2、结构技术,符合pciv2.1和v2.2规范。提供2个独立的可编程dma控制器,每个通道均支持块和分散集中的dma方式,在pci总线端支持32位33 mhz,本地端可以编程实现8、16、32位的数据宽度,传输速率最高可达132 mbs,本地总线端时钟最高可达50 mhz支持复用非复用的32位地址数据。pci9054提供了pci、eeprom、local总线3个接口。pci9054作为一种桥接芯片在pci总线和local总线之间提供传递消息,既可以作为两个总线的主控设备去控制总线,也可以作为两个总线的目标设备去响应总线。pci9054有6个零等待可编程fifo存储器,它们分别完成pci发起读、写操
3、作,pci目标读、写操作和dma读、写操作。由于fifo存储器的存在,数据可以大量突发传输而不丢失。这样不仅满足实时性要求,同时可根据用户的需要采用与pci时钟异步的本地频率。串行eeprom是用来在开机时初始化配置内部寄存器的。内部寄存器(itnternalregis-ters)标识地址映射关系以及pci端和本地端工作状态,包括pci配置寄存器组、local配置寄存器组、runtime寄存器组、dma寄存器组、i2o消息寄存器组。fifo和内部寄存器在计算机主机或者本地端都是统一编址的,用户可以从两端通过编程访问它们的每一个字节。2 数据转换模块设计实现数据转换模块主要是为了把软件仿真的数据
4、通过pci总线dma传输,经缓存、解码、编码、驱动等处理转换成高速串行数据流(lnds数据流)。本设计中,数据转换模块的硬件组成包括:pci接口芯片pci9054、figa、eeprom和sram。数据转换模块设计原理框图如图1所示。图1 数据转换模块设计原理框图2.1 pci9054硬件接口设计pci9054供了3种物理总线接口:pci总线接口、local总线接口和串行eprom接口。fpga通过专用接口芯片pci9054与pci总线相连,在fp-ga内部分配一块ram用作数据的缓冲区,可用vhdl语言编程实现fpga作为ram控制器。pci9054专用接口芯片内部2个独立dma通道,可以实
5、现系统数据在pc机内存与pci板卡之间的高速传输,接口电路示意图如图2所示。图2 接口电路示意图2.1.1 pci9054与pci总线接口pci9054与pci总线接口连接相对简单,只要将pci9054芯片的pci端信号线与pci插槽相应的信号线对应连接即可。这些信号包括地址数据复用信号、接口控制信号线、中断等信号线。在电路板制作上,需注意pci总线信号的走线,为了满足反射条件,对信号走线有严格要求:普通信号长度,从插槽连接器到pci桥芯片不大于1.5 inch(1 inch=0.025 4 m),clk信号走线长度为2.50.1 inch。否则会导致信号不稳定甚至总线冲突,无法开机。2.1.
6、2 pci9054与local bus接口pci9054与本地信号接口是相对重要的一部分。pci9054有3种工作模式:m、c和j模式。m模式是专为motorola公司的mcu设计的工作模式,主要针对motorola公司高性能pc850860的应用而设计。c模式下pci9054芯片通过片内逻辑控制将pci的地址线和数据线分开,方便地为本地工作时序提供各种工作方式,一般广泛应用于系统设计中。j模式是一种没有local master的工作模式,它的好处是地址数据线没有分开,严格仿效pci总线的时序。j模式的接口设计相对复杂,最常用的是c模式。c模式下pci9054分为pciinitiator操作和
7、pci target操作。在pci initiator操作过程中,本地总线主控设备能够直接通过pci9054访问pci总线,发起local-to-pci的数据传输。而在pci target操作过程中,pci总线主控设备可以以总线宽度和突发传输功能访问pci9054的3个本地空间(空间0,空间1和扩充rom空间),本设计就采用了c模式。信号线连接主要包括:lhold(申请使用本地总线,输出信号)、lholda(对lhold应答,输入信号)、ads#(新的总线访问有效地址的开始,在总线访问first clock设置时输出信号)、blast#(表示为总线访问的last transfer,输出信号)、
8、lwr#(高电平表示读操作,低电平表示写操作,输出信号)、la31:2(地址线)、ld31:0(数据线)、ready#(表示总线上读数据有效或写数据完成,用以连接pci9054等待状态产生器,输入信号)。2.1.3 pci9054与eeprom接口pci9054在加电启动时,需要从外部eeprom读取初始化数据来配置pci9054的内部寄存器,而且依赖于硬件板卡的硬件资源要求,以及选择正确的pci9054工作模式。pci9054提供4个管脚与串行eeprom相连接,它们分别是eedi、eedo、eesk和eecs。本文选择的串行eeprom是93l-c56,因此对应于93lc56的di、do、
9、sk、cs这4个管脚。在计算机加电自检期间,pci总线的rst#信号复位。pci9054内部寄存器的默认值作为回应。pci9054出本地lreset#信号并检测串行eep-rom,若串行eeprom中的前33个bit不全为1,那么pci9054确定串行eeprom非空,用户可通过向9054的寄存器cntrl的29位写1来加载eeprom的内容到pci9054的内部寄存器。配置的信息可在p1xsdk中的plxmon下对eeprom进行配置。eeprom配置信息主要包括以下两部分:1)pci配置寄存器,填写生产商id号、器件id号、类码子系统id号和子系统生产商id号。对于pci-9054,其生厂
10、商id号为1ob5,器件id号为9054,子系统号为9054,子系统id号为10b5,类码号为0680,表示其为桥设备中的其他桥设备类。 2)本地配置寄存器的配置,即对本地地址空间及其本地总线属性的配置。这些配置要根据实际开发的硬件板卡的硬件资源进行配置。设备人员配置寄存器的任务就是要把某一段本地地址映射为pci地址,也就是当主机cpu要访问本地地址空间时,要知道其对应的pci总线地址。2.2 数据缓存器设计数据缓存器由两组sram组成,在模拟数据时,主机从磁盘阵列上读取要模拟的数据,通过pci总线的dma传输给fpga,首先存到sram-a里,sram-a存储满时,开始以一定的速率读sram
11、-a里的数据,并串转换成串行数据,用lvds信号形式发送,在读的同时主机启动第二次dma传输数据给fpga,再存到sram-b,sram-a读完、sram-b写满就开始以一定的速率读sram-b的数据,并串转换成串行数据,用lvds信号形式发送,这样轮番交替形成“乒乓机制”,有效克服了数据流不连续的现象,解决了形成不间断数据流和两次dma传输之间的数据间断问题。3 工作流程在设计中,pci端的数据传输主要是利用pci9054的block dma模式。pci9054集成了2个相互独立的dma通道,每个通道都支持block dma和scattergather dma,通道0还支持demand dm
12、a传输方式。block dma要求pci主机或loeal主机提供pci和local的起始地址、传输字节数、传输方向。主机设定dma开始位启动dma数据传输,一旦传输完成,pci9054设定dma“传输结束位”结束dma。如果启动中断允许位,在传输结束时pci9054将向主机(pci主机或local主机)产生中断。在dma传输中,pci9054既是pci总线的主控器又是loeal总线的主控器。scattergather dma要求主机在pci空间或local空间设定descriptor模块,模块包括pci和local的起始地址、传输字节数、传输方向和下一个descriptor模块的地址。pci9
13、054载人第1个descriptor模块并发起传输,连续加载下一个模块,直到它侦测到“链结束位”有效,pci 9054设置“传输结束位”,或者申请pci或local中断。这种模式下,pci9054也可以在每个模块加载时有效中断信号,结束dma传输。若desc-riptor模块在本地存储空间,可以编程使dma控制器在每次dma传输结束后清除传输字节数。具体工作流程如图3所示。图3 数据转换流程图通过设置其dma控制器内部的寄存器即可实现两总线之间的数据传输。pci9054的dma传输过程可由以下几个步骤实现:1)设置方式寄存器:设置dma通道的传输方式,寄存器dmamode0或者dmamode1
14、;2)设置pci地址寄存器:设置pci总线侧的地址空间起始地址;3)设置local地址寄存器:设置local总线侧的地址空间起始地址;4)设置传输计数寄存器:以字节位单位设置每次dma数据传输量;5)设置描述寄存器:设置dma传输的方向,0表示数据从pci总线到local总线,1表示数据从local总线到pci总线;6)设置命令状态寄存器:启动或停止dma操作。当应用程序启动开始模拟后,驱动程序收到应用程序开始模拟的命令后,同时填写pci9054的门铃寄存器(pci端偏移地址:60h)产生lo-cal端的中断通知硬件接收dma的数据,fpga收到中断后,清除中断,同时判断收到开始模拟的命令。硬
15、件准备好以后发中断告诉主机已经准备好,同时填写pci9054的门铃寄存器(pci端偏移地址:64h)产生pci端的中断通知硬件已经准备好,主机收到中断后,清除中断,填写启动dma开始寄存器,把计算机内存空间的数据通过pci总线传输到pci9054的local端,fpga接收local端的数据存入数据缓冲区,同时由fpga控制读取缓冲区中的数据经并串转换用lvds信号形式发送。当dma结束后产生主机pci中断,主机收到中断后清除中断,并等待硬件准备好中断来后清中断填写下一个dma开始,直到模拟数据模拟完为止。4 wdm驱动程序设计4.1 wdm驱动程序简介wdm驱动程序是一种pnp驱动程序,它同
16、时还遵循电源管理协议,并能在windows 98和windows 2000间实现源代码级兼容。wdm驱动程序还细分为类驱动程序(class driver)和迷你驱动程序(minidriver),类驱动程序管理属于已定义类的设备迷你驱动程序向类驱动程序提供厂商专有的支持。在wdm驱动程序模型中,每个硬件设备至少有两个驱动程序。其中一个驱动程序称为功能(function)驱动程序,了解使硬件工作的所有细节,负责初始化io操作,处理io操作完成时所带来的中断事件,为用户提供一种设备适合的控制方式。另一个驱动程序称为总线(bus)驱动程序,它负责管理硬件与计算机的连接。例如,pci总线驱动程序检测插入
17、到pci槽上的设备并确定设备的资源使用情况,它还能控制设备所在pci槽的电流开关。4.2 驱动程序开发环境及设计项目开发中选择的是numega公司的driverstudio驱动程序开发工具包,它是建立在windows driver development kit之上的驱动程序开发工具,包含了vtoolsd、driverworks、drivernetworks和softice等开发工具。driverworks用于开发普通设备的wdm驱动程序,softice提供了强大的调试工具。在安装driverstudio之前,还需要安装相应操作系统的ddk,如xpddk和vc6.0工具。在driverstudio驱动程序向导里可以轻易方便地建立起pci9054的驱动程序框架,而且driverstudio还提供了pci9054驱动程序中大量类函数的接口,降低了开发难度,缩短了程序编写时间。调试程序可以使用softice和driver moniter,极为方便查错及优化程序设计。5 结束语本文通过介绍pci总线接口协议芯片pci9054的性能、特点,分析window
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025云南省建筑安全员知识题库
- 郑州工业安全职业学院《大数据快速运算》2023-2024学年第二学期期末试卷
- 辽宁装备制造职业技术学院《医学微生物学实验转专业》2023-2024学年第二学期期末试卷
- 山东管理学院《诊断胸肺检查》2023-2024学年第二学期期末试卷
- 广州城建职业学院《电子商务技术基础》2023-2024学年第二学期期末试卷
- 太原科技大学《城市规划与管理》2023-2024学年第二学期期末试卷
- 玉溪职业技术学院《轧制工艺学管材生产》2023-2024学年第二学期期末试卷
- 商丘职业技术学院《表面活性剂化学与应用》2023-2024学年第二学期期末试卷
- 五年级教师2025年第一季度工作计划
- 做账实操-商贸企业成本核算方法
- 2016-2023年江苏农林职业技术学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 狼道的读后感课件
- 2022版高中生物必修二第一章测试题及答案解析
- 【初中语文】《说和做》课件+统编版语文七年级下册
- 机修知识培训教材课件
- 跨云平台的DevOps集成
- 纺织染整行业安全培训
- 小学综合实践活动《察探究活动跟着节气去探究》课教案
- 水工建筑物维护技术
- 载重汽车的安全操作规程范本
- 平台对接技术方案
评论
0/150
提交评论