基于PCI总线的数据转换模块的设计与应用

发布者:平章大人最新更新时间:2011-09-28 关键字:PCI总线  数据转换 手机看文章 扫描二维码
随时随地手机看文章

     外围部件互连总线PCI(Peripheral Component Interconnect)总线,是一种先进的高性能32/64位地址数据复用局部总线,可同时支持多组外围设备,并且不受制于处理器,为中央处理器与高速外围设备提供了一座沟通的桥梁,提高了数据吞吐量(32位时最大可达132 MB/s),是现在PC领域中流行的总线。PCI总线具有严格的总线规范,这就保证了它具有良好的兼容性,符合PCI总线规范的扩展卡可以插入任何PCI系统可靠地工作。

  1 PLX-PCI9054的结构和性能

  PCI9054是PLX公司生产的PCI总线通用接口芯片,采用先进的PLX数据管道结构技术,符合PCIV2.1和V2.2规范。提供2个独立的可编程DMA控制器,每个通道均支持块和分散/集中的DMA方式,在PCI总线端支持32位/33 MHz,本地端可以编程实现8、16、32位的数据宽度,传输速率最高可达132 MB/s,本地总线端时钟最高可达50 MHz支持复用/非复用的32位地址数据。

  PCI9054提供了PCI、EEPROM、LOCAL总线3个接口。PCI9054作为一种桥接芯片在PCI总线和LOCAL总线之间提供传递消息,既可以作为两个总线的主控设备去控制总线,也可以作为两个总线的目标设备去响应总线。PCI9054有6个零等待可编程FIFO存储器,它们分别完成PCI发起读、写操作,PCI目标读、写操作和DMA读、写操作。由于FIFO存储器的存在,数据可以大量突发传输而不丢失。这样不仅满足实时性要求,同时可根据用户的需要采用与PCI时钟异步的本地频率。串行EEPROM是用来在开机时初始化配置内部寄存器的。内部寄存器(ItnternalRegis-ters)标识地址映射关系以及PCI端和本地端工作状态,包括PCI配置寄存器组、Local配置寄存器组、Runtime寄存器组、DMA寄存器组、I2O消息寄存器组。FIFO和内部寄存器在计算机主机或者本地端都是统一编址的,用户可以从两端通过编程访问它们的每一个字节。

  2 数据转换模块设计实现

  数据转换模块主要是为了把软件仿真的数据通过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通道,可以实现系统数据在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.5±0.1 inch。否则会导致信号不稳定甚至总线冲突,无法开机。

  2.1.2 PCI9054与LOCAL Bus接口

  PCI9054与本地信号接口是相对重要的一部分。PCI9054有3种工作模式:M、C和J模式。M模式是专为Motorola公司的MCU设计的工作模式,主要针对Motorola公司高性能PC850/860的应用而设计。C模式下PCI9054芯片通过片内逻辑控制将PCI的地址线和数据线分开,方便地为本地工作时序提供各种工作方式,一般广泛应用于系统设计中。J模式是一种没有Local Master的工作模式,它的好处是地址数据线没有分开,严格仿效PCI总线的时序。J模式的接口设计相对复杂,最常用的是C模式。C模式下PCI9054分为PCIInitiator操作和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,输出信号)、LW/R#(高电平表示读操作,低电平表示写操作,输出信号)、LA[31:2](地址线)、LD[31: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、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,其生厂商ID号为1OB5,器件ID号为9054,子系统号为9054,子系统ID号为10B5,类码号为0680,表示其为桥设备中的其他桥设备类。  2)本地配置寄存器的配置,即对本地地址空间及其本地总线属性的配置。这些配置要根据实际开发的硬件板卡的硬件资源进行配置。设备人员配置寄存器的任务就是要把某一段本地地址映射为PCI地址,也就是当主机CPU要访问本地地址空间时,要知道其对应的PCI总线地址。

  2.2 数据缓存器设计

  数据缓存器由两组SRAM组成,在模拟数据时,主机从磁盘阵列上读取要模拟的数据,通过PCI总线的DMA传输给FPGA,首先存到SRAM-A里,SRAM-A存储满时,开始以一定的速率读SRAM-A里的数据,并串转换成串行数据,用LVDS信号形式发送,在读的同时主机启动第二次DMA传输数据给FPGA,再存到SRAM-B,SRAM-A读完、SRAM-B写满就开始以一定的速率读SRAM-B的数据,并串转换成串行数据,用LVDS信号形式发送,这样轮番交替形成“乒乓机制”,有效克服了数据流不连续的现象,解决了形成不间断数据流和两次DMA传输之间的数据间断问题。

  3 工作流程

  在设计中,PCI端的数据传输主要是利用PCI9054的BLOCK DMA模式。PCI9054集成了2个相互独立的DMA通道,每个通道都支持Block DMA和Scatter/Gather DMA,通道0还支持Demand DMA传输方式。

  Block DMA要求PCI主机或Loeal主机提供PCI和Local的起始地址、传输字节数、传输方向。主机设定DMA开始位启动DMA数据传输,一旦传输完成,PCI9054设定DMA“传输结束位”结束DMA。如果启动中断允许位,在传输结束时PCI9054将向主机(PCI主机或LOCAL主机)产生中断。在DMA传输中,PCI9054既是PCI总线的主控器又是Loeal总线的主控器。

  Scatter/Gather DMA要求主机在PCI空间或Local空间设定Descriptor模块,模块包括PCI和Local的起始地址、传输字节数、传输方向和下一个Descriptor模块的地址。PCI9054载人第1个Descriptor模块并发起传输,连续加载下一个模块,直到它侦测到“链结束位”有效,PCI 9054设置“传输结束位”,或者申请PCI或Local中断。这种模式下,PCI9054也可以在每个模块加载时有效中断信号,结束DMA传输。若Desc-riptor模块在本地存储空间,可以编程使DMA控制器在每次DMA传输结束后清除传输字节数。具体工作流程如图3所示。


图3 数据转换流程图

  通过设置其DMA控制器内部的寄存器即可实现两总线之间的数据传输。PCI9054的DMA传输过程可由以下几个步骤实现:

  1)设置方式寄存器:设置DMA通道的传输方式,寄存器DMAMODE0或者DMAMODE1;

  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收到中断后,清除中断,同时判断收到开始模拟的命令。硬件准备好以后发中断告诉主机已经准备好,同时填写PCI9054的门铃寄存器(PCI端偏移地址:64H)产生PCI端的中断通知硬件已经准备好,主机收到中断后,清除中断,填写启动DMA开始寄存器,把计算机内存空间的数据通过PCI总线传输到PCI9054的LOCAL端,FPGA接收LOCAL端的数据存入数据缓冲区,同时由FPGA控制读取缓冲区中的数据经并串转换用LVDS信号形式发送。当DMA结束后产生主机PCI中断,主机收到中断后清除中断,并等待硬件准备好中断来后清中断填写下一个DMA开始,直到模拟数据模拟完为止。

  4 WDM驱动程序设计

  4.1 WDM驱动程序简介

  WDM驱动程序是一种PnP驱动程序,它同时还遵循电源管理协议,并能在Windows 98和Windows 2000间实现源代码级兼容。WDM驱动程序还细分为类驱动程序(class driver)和迷你驱动程序(minidriver),类驱动程序管理属于已定义类的设备迷你驱动程序向类驱动程序提供厂商专有的支持。在WDM驱动程序模型中,每个硬件设备至少有两个驱动程序。其中一个驱动程序称为功能(function)驱动程序,了解使硬件工作的所有细节,负责初始化I/O操作,处理I/O操作完成时所带来的中断事件,为用户提供一种设备适合的控制方式。另一个驱动程序称为总线(bus)驱动程序,它负责管理硬件与计算机的连接。例如,PCI总线驱动程序检测插入到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的性能、特点,分析Windows的WDM驱动程序的特点,对所设计的数据转换模块结构进行了详细说明,提出了双SBAM结构数据缓存器的应用方案。应用结果表明,该设计可满足数字视频带宽20 MHz以内的高速串行数据流(INDS数据流)的转换与传输,保证了硬件内存大容量读取的高速、实时性。

关键字:PCI总线  数据转换 引用地址:基于PCI总线的数据转换模块的设计与应用

上一篇:基于Wishbone总线的UART IP核的设计
下一篇:基于PSoC3的多通讯接口时的DMA设计

推荐阅读最新更新时间:2024-05-02 21:37

数据转换器的衡量标准:演进历程
数据转换器有意义的衡量方法是什么?就数据转换器自身而言,它是相当容易定义的。数据转换器是通过模数转换器(ADC)将连续的电信号(即模拟信号)转换为数码字〔以比特(bit)为单位〕或反过来,通过数模转换器(DAC)将数码字转换为连续的模拟信号。这样的转换过程是我们周围的真实世界和我们用以监测、分析、控制的计算机世界之间的至关重要的连接。其中最困难和有发展意义的问题是如何为这些数据转换器定义重要的性能指标。 设计工程师往往喜欢事情简单,所以数据转换器的性能衡量标准历史上曾经简化为分辨率位数(N)和采样速率(Fs)。一般来说,分辨率高好,如果采样速率也高就更好。尽管这种衡量方法很简单,但是在初期它还是准确的,因为它符合当时计算机数据总
[电源管理]
基于IP核的PCI总线接口设计与实现
嵌入式Internet是随着嵌入式系统的广泛应用和计算机网络技术的发展而产生的一种新概念和技术,嵌入式系统以应用为中心,以计算机技术为基础,且软硬件可裁剪,现已赢得了巨大的市场。随着Internet的发展,各种设备都产生了连接性的需求,从冰箱到电表,似乎所有电器需要连入互联网。通过为现有嵌入式系统增加因特网接入能力来扩展其功能,以Internet为介质实现信息交互,从而产生了嵌入式Internet技术,要实现嵌入式设备的网络化,需要实现TCP/IP网络协议栈,但由于Internet上各种通信协议对计算机存储器、运算速度等的要求比较高,使得嵌入式系统协议栈的开发实现并不顺利。 目前过两个关键因素影响网络协议栈的开发,一是性能和效率
[网络通信]
基于CPCI总线的便携式电磁阀测试设备设计
1. 前言 由于某型号电磁阀热真空试验需要出厂完成,在试验过程中需测试阀门响应特性,传统的测试设备体积无法满足运输需求,因此需要配备便于携带的电磁阀测试设备。 CompactPCI简称CPCI,中文又称紧凑型PCI,是国际PICMG协会于1994提出来的一种总线接口标准。它将VME密集坚固的封装和大型设备的极佳冷却效果以及PC廉价、易采用最新处理能力的芯片结合在一起,既保证了99.999%的高可靠度,又极大降低了硬件和软件开发成本。其整体机构紧凑,安装牢固,适应各种运输条件,可靠性高。各功能板采用CPCI总线的模块化结构,插拔十分安全方便,特别适合本系统的多种型号测试对象和多种测试工况的要求。 2. 设计要求 (1)要求能
[测试测量]
数据转换器市场研究报告:ADI继续领先
日前Databeans发布2010年数据转换器市场研究报告,报告中指出,ADI仍处于绝对领先地位。 “ADI公司通过业界领先的通用ADC及DAC产品组合,以及专用产品,覆盖了大部分应用领域。”报告指出,“凭借着领导地位,ADI数据转换产品的销售额从2009年的10.7亿美元增至2010年的14.2亿,环比劲增33%。” 目前ADI市场份额约为一半,是第二名TI的两倍,此外,NS的市占率从2009年的第七名升至第五,但即便与TI合并后,仍无法撼动ADI的领导地位。 表格是Databeans整理出的完整数据: Company 2010 Rank 2010 $M 20
[模拟电子]
ISA总线和PCI总线的比较
ISA总线 ISA总线:  (Industry  Standard  Architecture:工业标准体系结构)是IBM公司为PC/AT电脑而制定的总线标准,为16位体系结构,只能支持16位的I/O设备,数据传输率大约是8MB/S。也称为AT标准。 PCI总线 PCI技术规格简介 从1992年创立规范到如今,PCI总线已成为了计算机的一种标准总线。由PCI总线构成的标准系统结构如图一所示。    PCI总线取代了早先的ISA总线。当然与在PCI总线后面出现专门用于显卡的AGP总线,与现在PCI  Express总线,但是PCI能从1992用到现在,说明他有许多优点,比如即插即用(Plug  and  Play)、中断共享等。在这
[嵌入式]
一种基于PCI总线和DSP技术的虚拟仪器设计
  传统的虚拟仪器由一块基于PCI总线的直接利用A/D和D/A芯片构成的数据采集板卡和相应的软件组成,但随着计算机网络技术的迅速发展,越来越多的数据需要由计算机处理、存储和传输,由于通用计算机本身的特点,它们通常不适于进行实时性要求很高的数字信号处理,因此这种虚拟仪器不能满足现实应用对数据实时处理能力、数据传输能力以及数据管理能力所提出的越来越高的要求。   与此同时,随着数字信号处理器(DSP)性价比的不断提高,其应用领域飞速扩展,从而使基于PCI总线和DSP技术的新型虚拟仪器应运而生。   系统的基本框架   笔者设计的基于PCI总线和DSP技术的虚拟仪器的基本框架如图1所示。   整个系统是基于模块化的设计理念来实
[嵌入式]
工控机Compact PCI总线
  Compact PCI总线     Compact PCI总线简称CPCI,中文又称紧凑型PCI,是国际PICMG协会于1994年提出来的一种总线接口标准。它的出现解决了多年来电信系统工程师与设各制造商面临的棘手问题,将VME密集坚固的封装和大型设备的极佳冷却效果以及PC廉价、易采用最新处理能力的芯片结合在一起,保证了99.999%的高可靠度,极大降低了硬件和软件开发成本。目前PCI总线已成为了事实上计算机的标准总线。     早在1995年,香港塞德公司将具有优质、高效、低耗等优势的最新总线类产品Compact PCI推向中国市场,同时也把美国PICMG协会的发展情况介绍到中国。我国工控界权威人士即达成共识:要跟踪高科技,保持
[嵌入式]
凌华推出Low-Profile PCI总线GPIB接口控制卡
凌华科技推出 low-profile PCI 总线 GPIB 控制卡 「LPCI-3488」。凌华LPCI-3488 采用高密度的电路设计,尺寸符合 low-profile MD1 标准,并提供标准PCI与 low-profile PCI面板,为标准工业计算机与 slim-type 计算机提供符合 IEEE488.1 与 IEEE488.2 规范的仪器通讯接口。   凌华LPCI-3488 为标准 32位、33MHz low-profile PCI-bus 的 GPIB 接口控制卡。在硬件设计上,LPCI-3488 运用凌华在 PCI 适配卡多年来累积的先进技术,支持 3.3V 与 5V 的 PCI 总线。同时,LPCI-3
[新品]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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