(通信与信息系统专业论文)pci从模式数据采集模块的研究及应用.pdf_第1页
(通信与信息系统专业论文)pci从模式数据采集模块的研究及应用.pdf_第2页
(通信与信息系统专业论文)pci从模式数据采集模块的研究及应用.pdf_第3页
(通信与信息系统专业论文)pci从模式数据采集模块的研究及应用.pdf_第4页
(通信与信息系统专业论文)pci从模式数据采集模块的研究及应用.pdf_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

摘要 根据阴极发射材料自动测量系统的要求,本文研究了一种基于p c i 局部总线的数据采集模块及其在w i n d o w s 2 0 0 0 x p 环境下驱动程序的设 计。 文中讨论了w i n d o w s 2 0 0 0 操作系统的特点以及p c i 局部总线的特 点,详细论述了p c l 9 0 5 2 的配置方式、f p g a 芯片f l b x l 0 k 1 0 的硬件设 计,并给出了硬件系统框图;文中还介绍了采用d r i v e r s t u d i o 进行p c i 设备驱动程序的开发以及驱动程序的关键代码。 最后,给出了p c i 设备驱动程序测试程序、p c i 数据采集模块的简 单应用。 关键词:p c l 9 0 5 2f p 卧_ a b s t r a c t a c c o r d i 芏l gt o 廿1 er c q u i r e m e n t so ft 1 1 e c a t l l o d ee m i s s i o nm a t c r i a l a u t o m a t i cm e a s u r e m e n ts y s t e m ,m i sp 印e rp r e s e n t sad a t aa c q 证s i t i o n m o d u l eb a s e do np c il o c a lb u sa n di t sd r i v i n gp r o g f a md e s i g ni n 雠 w i n d o w s 2 0 0 0 p t h i sp a p e rd i s c u s s e st l l ef e a t h e r so ft h ew i n d o w s 2 0 0 0o p e m t i o n s y s t e ma n dp c il o c a 王b u s t h ec o 以g u r 撕o nn l o d eo fp c i 9 0 5 2a n d h a r d w a r ed e s i g no ff p g as l u gf l e x l 0 k l oh a v e b e e ne x p o l l i l d e d d e t a i l e d l y ,a 1 1 dh a r d w a r cs y s 把【nb l o c kd i a 轳a i i lh a sb e e ng i v e n i nt l l i sp a p e l t h i sp a p e ri n t d l l c e sp c id e v i c e “v e rp r o g r a md e v e l o p m e n tw i 也 d r i v e r s t u d i oa n d g i v e sm ek e y c o d eo f d “i c ed r i v e rp r o g r a m i nt l l ee n do fm i s 烨r ,t h es i m p l e 印p l i c a t i o no fp c i 出旺aa c q u i s i t i o n m o d u l ea n dp c id e v i c ed f i v e ft e s tp 掣眦w a sp r e s c m e d k e yw o r d s :p c i 9 0 5 2 f p ( i 髓_ 2 第一章绪论 1 1 概述 电子发射体的发射特性不仅是衡量发射体性能优、劣的主要依据, 更是真空电子器件设计与研制的重要参照。发射特性表征方法的可靠和 测量结果的准确显然是十分重要的。 在我国,数十年来阴极发射特性都是用手动测量来完成的。手动测 量会带来一系列问题,例如,数据采集和读取会引入大量计量误差;数 据的处理会受到很多限制;特征参数的确定将受人为因素的影响很大。 随着计算机技术的飞速发展,迫切需要一种用计算机来实现阴极材料参 数自动测量的方法。正是在这样的背景下,我们开始了阴极发射均匀性 自动测量系统的研制工作。该系统设计目标是可由微机控制完成阴极的 脉冲与直流热发射测量和次级发射特性的测量,以及阴极表面发射均匀 性的测量。 图1 1 阴极发射均匀性自动测量系统的系统框图 阴极发射均匀性自动测量系统的系统框图如图1 1 所示。 系统主要由真空腔、灯丝电源、高压脉冲电源、直流电源、高温仪 和控制用微机组成,真空腔内安装有阴极、带5 m 小孔的阳极、法拉 第环和小电流放大器。系统的基本原理是先用灯丝加热阴极,使它达到 1 0 0 0 摄氏度左右的高温,再在阴极和阳极之间加直流高压或负脉冲高 压,使阴极向阳极发射电子,形成发射电流。阴极发射的电子可以穿过 阳极上的小孔,安装在阳极下面的法拉第环可以收集到这些电子,形成 电流: 本系统主要的测量任务是 1 脉冲发射测量,测量固定温度下阴极和阳极之间加负脉冲高压, 同时测量阳极发射电流和负脉冲高压; 2 直流发射测量,即在固定温度下阴极阳极之间加直流负高压, 测量阳极发射电流。 3 小孔电流测量,在固定温度下,阴极阳极之间加负脉冲高压, 同时测量阳极发射电流、负脉冲高压和小孔电流; 4 发射均匀性测量,测量的基本原理是:在真空中,以l u m 的 精度,驱动阳极相对于阴极作面扫描,利用法拉第环收集阴极 穿过小孔发射的电子形成的脉冲电流,同时采集负脉冲高压和 阳极电流。测量分辨率取决于小孔的孔径,本系统为5 岬。 由于负脉冲高压电源的性能指标要求为脉冲宽度从5 u s 到5 0 0 l l s 可 调,频率从1 0 0 h z 到5 0 0 h z 可调,而且一个脉冲顶部要最少采集5 点, 这就对计算机采样的速度提出了较高的要求。 由上可见,本系统计算机测量的难点主要是对于脉冲电流、电压的 采集以及测量过程中的同步问题。由此,我们为本系统设计了一个基于 p c i 总线的高速数据采集模块,基本实现了系统各项参数的采集。 6 1 2 论文研究内容和意义 本论文研究的主要内容是基于p c i 从模式的数据采集模块的研制 及其在w i n d o w s 2 0 0 0 x p 下w d m 驱动程序设计、调试及封装。 p c i 总线具有比其他总线优秀的诸多优点。它的基本总线传输机制 是突发分组传输,最高速度可达到13 2 m b s ;每个设备都设有2 5 6 字节 的配置空间,可分别灵活配置。因此,p c i 设备具有很好的兼容性,采 用p c i 总线可以提高整个系统的可靠性。 本论文研究的重点是基于p c i 桥接芯片p c i 9 0 5 2 的接口设计及局部 总线接口的f p g a 实现,而驱动程序的设计、调试,安装以及封装作为 系统实现的蓥要部分也给予必要的讨论和设计。 7 第二章方案论证 本章概括性的介绍了系统的设计方法以及各方案的比较,详细讨 论了p c i 总线设备的特点以及w i n d o w s 2 0 0 0 x p 环境下驱动程序的特点。 本章最后给出了方案的总体设计。 21 操作系统的选择及特点 按照项目的要求,本系统要基于通用操作系统及硬件平台,所以必 须选择w i n d o w s 操作系统。目前主流的w i n d o w s 探作系统有 毗n w d o w s 9 8 m e 、w i n d o w s 2 0 0 0 x p ;很多工业用设备采用w i n d o w s 9 8 操 作系统,因为w i n d o w s 9 8 技术比较成熟,内核小,运行速度快。更主要 的一点是w i n d o w s 9 8 允许用户程序直接访问硬件,所以不用涉及复杂的 v x d 驱动程序的开发。w i n d w s 9 8 的这个特点使它比较适合自制适配卡 的使用。也正是因为w i n d o w s 9 8 的这个特点使得w i n d o w s 9 8 操作系统不 够健壮,一个用户程序运行失败就有可能导致整个系统的崩溃;所以, 我们选择w i n d o w s2 0 0 0 x p 作为本系统的软件平台。 w l n d o w s2 0 0 0 x p 是微软推出的基于n t 技术构建的新一代操作系 统,系统的设计目标是兼顾兼容性、健壮性、可靠性、可移植性、可扩 展性。w i n d o w s2 0 0 0 采用了客户_ 月务器体系结构,用户应用程序以一 种特殊的硬件模式运行,通常称为用户模式。在这种模式下,用户代码 局限于无害操作,这个特点使得w i n d o w s 2 0 0 0 x p 非常健壮。操作系统内 核以一种称为内核模式的硬件模式运行,内核模式的代码可以执行任何 c p u 指令,包括i 0 操作。任何应用程序的内存都会暴露给内核代码。 w l n d o w s 2 0 0 0 x p 操作系统的分层结构如图z 1 所示: 图2 1w i n d o w s 2 0 0 0 x p 操作系统的分层结构 图中,i o 管理程序在驱动程序的设计中有着重要的作用,它是用 户模式代码和设备驱动程序之间的接口;i 0 管理程序由一系列内核模 式的例程所实现,它的作用是将用户模式下的i o 请求传送到驱动程 序,由于i o 管理程序的存在使用户模式的i o 访问独立于设备。硬件 抽象层( h a l ) 将处理器和操作系统、设备驱动程序代码分开,设备驱 动程序代码必须依赖于卧l 中的宏,以便引用硬件寄存器和总线。 w i n d o w s 2 0 0 0 x p 还支持即插即用( p n p ) ,w m i 等特性,而且还支持 新的驱动程序规范一- w d m ( w i n d o w sd r i v e rm o d l e ) 。微软提供了相应的 驱动程序开发工具w i n d o w sd d k ( d r i v e rd e v e l o p m e nk i ts ),为 w i n d o w s 2 0 0 0 x p 平台下自制适配卡驱动程序的开发提供了一个标准和 工具。基于以上特点,我们选用了w i n d o w s 2 0 0 0 x p 操作系统。 2 2 总线的选择及p c i 总线的特点 计算机总线是计算机各个部件之间进行信息传输的公共通道。微型 计算机系统广泛采用总线结构,优点是系统成本低、组态灵活、硬件模 块兼容性强。目前微型计算机系统总线的种类很多,如i s a 总线、p c i 总线、u s b 总线、串行总线等,每种总线都有各自的特点:i s a 总线是 8 位、1 6 位总线,速度比较慢,在目前的通用计算机系统中已经被淘汰; 串行总线不仅速度慢,而且容易受干扰,只适合少量数据的传输;u s b 总线速度很快,u s b 2 0 最高可以达到4 8 0 m b s ,但是u s b 总线的设备要 置于机箱外,容易受干扰。随着计算机技术的不断发展,微型计算机的 体系结构发生了显著的变化。c p u 运行速度不断提高,多处理器结构的 出现等都要求有高速总线与之相匹配,从而出现了多总线结构;多总线 结构是指c p u 与存储器、i o 设备之间有两种以上总线类型。这样可以 将慢速设备和快速设备挂在不同的总线上,以减少总线竞争,提高整个 系统效率。在多总线结构中,p c i 局部总线的发展令人瞩目。局部总线 是处理器的延伸,与处理器同步操作。 p c i 局部总线的含义为p e r i p h e r a lc o m p o n e n ti n t e r c o n n e c t ,即 外部组件互联。p c i 总线的基本总线传输机制是突发分组传输。一个突 发分组由一个地址期和一个或多个数据期组成。p c i 局部总线既支持存 储器空间的突发传输,也支持i 0 空问的突发传输。 2 3 p c i 总线的配置空间 p c i 局部总线定义了三个物理地址空间:内存地址空间、i o 地址 空间和配置地址空间。内存和i o 地址空间提供了对内存访问和i o 访 问的支持;配置地址空间用于支持p c i 的硬件设置。只有实现了配置空 间,p c i 设备才能支持即插即用,实现无须用户干预的安装、配置舜口引 导,由与设备无关的软件进行系统地址映射。从而,保证了与系统和系 统上其他设备之间的兼容性。 2 3 1 配置空间的组织 配置空间的容量一般是2 5 6 字节,具有特定的记录结构和模型。设 备的配置空间在系统自举、启动以后都可以访问。 l o 配置空问分为头标区和设备有关区两部分。头标区的各个字段用来 唯一的识别设备,并使设备能以一般的方法控制。头标区分为两部分, 前1 6 字节定义的各种设备中都一样,生于的字节随各设备支持的功能 有所不同。所有的支持p c i 要求的从设备都必须支持头标区的供应商识 别、设备识别、命令、状态、版本、分类代码和头标类型字段。 2 3 2 配置空间的功麓 配置空间的功能主要有以下几个方面: 供应商识别 设备识别 版本识别 头标类型 分类代码字段 设备控制 头标区的命令寄存器可为发出和相应p c i 局部总线命令提供对 设备的粗略控制。 设备状态 状态寄存器用于记录p c i 局部总线有关事件的状态信息。 中断线寄存器 中断线寄存器是一个8 位的寄存器,用来识别设备的p c i 中断 请求引脚路由到中断控制器的那个输入上。这是一个可读写的 寄存器,凡是使用了一个中断引脚的设备都必须实现它。p o s t ( 加电自测程序) 在进行系统初始化和配置时将中断连线信息 写入该寄存器这个寄存器的信息可以表示设备的中断与系统 中断控制器的那个输入相连。此寄存器的值与标准8 2 5 9 配置中 的i r q 编号( 0 15 ) 相对应。 中断引脚寄存器 此寄存器的值表示设备使用了那个中断引脚,值0 卜0 4 队赢p c i 中断请求引脚的i n t a # 一i n t d # 。如果设备没有使用中断引脚, 则必须将该寄存器清零。此寄存器只读。 基地址寄存器 p c i 设备可以在地址空间中浮动是p c i 局部总线中最重要的功能之 一,它能够简化设备的配置过程。在系统上电时系统软件必须确定哪些 设备存在,同时建立一个统一的地址映射关系。 p c i 总线上的目标设备必须实现基地址寄存器,以请求一个能够用 来访问内部寄存器或功能的地址范围。配置软件利用基地址寄存器确定 一个设备在给定的地址空问内需要多大空间,然后分配该设备驻留此空 间。设备通过基地址寄存器将它的内部寄存器映射到存储器空间。当一 个交易在接口上启动时,每个目标都要将地址与自身的基地址寄存器相 比较,以确定自己是否就是当前要进行交易的目标。 2 4 与p c i 总线接口的方式 目前,与p c i 总线接口的方式主要有: 专用的p c i 桥接芯片 i p 核 带p c i 总线接口的d s p 芯片 一些d s p 芯片中集成了p c i 接口的功能,如t i 公司的6 0 0 0 系列, 但这种芯片只能用在一些特殊的应用中,功能比较单一,而且价格很高; 而很多大规模逻辑器件的生产厂商,如 l t e r a 、x il i n x 等都提供了p c i 接口的i p 核,使用i p 核来实现p c i 接口有很多优点,如按需配置、 l 0 c a l 端的设置也非常灵活,但是需要很好的理解复杂的p c i 总线协议, 实现起来有一定的难度,开发周期长;而目前使用最多的是专用的p c i 接口芯片,这种芯片的种类很多,如p l x 公司的p c i9 0 5 2 ( 从模式) 、 p c i9 0 5 4 ( 主模式) ,a m c c 公司的5 9 2 0 、5 93 3 等。使用专用接口芯片, 我们就可以避开复杂的p c i 总线协议,只要按照自己的需要进行配置, 就可以完成与p c i 总线的接口。而这些专用芯片都提供了可配置的 l o c a l 端的总线,所以我们需要只是与本地端进行接口,大大简化了设 计,缩短了设计周期。所以我们选择了目前广泛使用的p c i 从模式借口 芯片,p l x 公司生产的p c l 9 0 5 2 进行p c i 接口卡的设计。 p c l 9 0 5 2 是p l x 公司生产的高性能p c i 从模式接口芯片,用来提供 p c i 总线和局部总线的接口;p c l 9 0 5 2 可被编程连接到复用或非复用的 1 2 8 、16 或3 2 位总线上,8 、1 6 位模式可以轻易的实现i s a 总线和p c i 总 线的接口。p c i 9 0 5 2 内部集成读写f i f o ,用来实现高速的p c i 总线与 低速局部总线之间的数据缓冲。同时支持五个局部地址空间和四个片选 信号输出。p c l 9 0 5 2 有如下特性: p c i 9 0 5 2 符合p c i2 1 规范 直接从模式数据传输 p c l 9 0 5 2 支持p c i 总线对局部总线的存储器映射突发访问和对 i o 空间的单次访问 提供i s a 标准接口模式 可以通过局部总线或软件产生p c i 中断信号 p c l 9 0 5 2 支持直接先读模式,p c i 总线可以直接从内部f i f 0 内 读取数据。 p c l 9 0 5 2 提供三线串行e e p r o m 接口,p c l 9 0 5 2 可以读取e e p r o m 的内容加载其内部的配置寄存器 2 5p c i9 0 5 2 本地端接口的设计 p c i 卡的全部功能都要由本地端来实现,由于p c l 9 0 5 2 提供了简单 方便灵活的本地端总线接口,所以有很多接口方式可以选择,如地址 数据总线复用方式,i s a 模式,d i r e c ts l a v e 模式等,我们选择了地址 数据总线非复用的d i r b c ts l a v b 模式。 由于要实现的功能比较复杂,所以本地端的接口选择了a l t e r a 公 司的f l e x l0 k 1 0 来实现;f l 肷系列器件是a l t e r a 公司为d s p 设计应用 最早推出的f p g 器件系列,技术很成熟。高速模数转换器选用t i 公司 的t l c 55 1 0 ,硬件系统框图如图2 2 所示: z八,a j 、 p a 9 0 5 2 f l e x l o k l 0 、f 一一、,7 、r 、 , 图2 2 硬件系统框图 f l e x l o k l 0 主要实现了数据缓冲、脉冲串产生、a d 采样控制等功能。 2 6win d o w s 2 0 0 0 x p 环境下驱动程序的特点 根据w i n d o w s 2 0 0 0 x p 操作系统的特点,必须为自行设计的p c i 适 配卡编写驱动程序,而驱动程序的编写必须遵循w 州规范。 w d m ( w i n d o w sd r v e r d e l ) 是微软公司推出的全新驱动程序模 型,它支持即插即用( p n p ) 、电源管理、w m i ( w i n d o w sm a n a g e m e n t i n s t f u m e n t a t i o n ,w i n d o w s 管理诊断) 等技术,只有w i n d o w s2 0 0 0 x p 才真正支持w d m 。w i n d o w s2 0 0 0 驱动程序的分类如图2 3 所示: 1 4 图2 3w i n d o w s2 0 0 0 驱动程序的分类 内核模式驱动程序包含许多子类。p n p 驱动程序就是一种遵循 w i n d o w s2 0 0 0 即插即用协议的内核模式驱动程序;w d m 驱动程序是一种 p n p 驱动程序,它同时还遵循电源管理协议,并能在w i n d o w s9 8 和 w i n d o w s2 0 0 0 间实现源代码级兼容。 内核模式驱动程序具有如下特点: 可移植性 可配置性 可抢先性和可中断性 包驱动 多处理器安全 异步执行 在w d m 驱动程序模型中,一般每个硬件设备有三个驱动程序:过滤 器驱动程序、功能驱动程序、总线驱动程序。一般来说,总线驱动程序 负责管理硬件与计算机的连接;过滤器驱动程序负责监视、修改功能驱 动程序的行为或提供额外的特性;而功能驱动程序才真正为用户提供了 控制硬件设备的方式。 2 7 本章小结 本章概括性的介绍了系统的设计方法,并详细介绍了操作系统的特 点、p c i 总线及接口芯片p c l 9 0 5 2 的特点,还介绍了w d m 驱动程序模型 的基本结构。下一章将详细论述系统的硬件设计。 1 6 第三章硬件设计 本章概括性的介绍了系统的硬件设计,详细讨论了p c l 9 0 5 2 与p c i 总线的接口设计及其配置方法,以及f p g a 与p c l 9 0 5 2 本地端总线接口 的v h d l 实现。本章最后给出了方案的总体设计。 3 1p c i 总线信号的定义 在一个p c i 应用系统中,如果某个设备取得了总线的控制权,可以 发起交易,就称之为主设备,而主设备选中以进行通信的设备称为“从 设备”或者“目标设备”。对于从设备来说,至少需要4 7 条接口信号线。 p c i 总线信号的定义如图3 1 所示: 地址,数据信号 接口控制信号 错误报告信号 仲裁信号 系统信号 图3 1p c i 总线信号的定义 3 2p c l 9 0 5 2 接口的硬件设计 p c l 9 0 5 2 与p c i 总线接口很简单,只要把对应管脚连起来就可以, 其电路原理图如图3 2 所示。 但在p c b 设计过程中要注意一些问题,如地址数据线的长度最好 相等;另外,p c i 总线的c l o c k 信号是3 3 m h z 的高频信号,加上包地后 可减少信号的干扰;而且它的长度要求在2 5 0 0 m i l 左右,所以采用蛇形 走线的方式,以达到2 5 0 0 m i l 的要求。 】匕m f 剌 - 锄 掣 摹| i 坶 器, 月 嚣 弱 卜用 卜器 卜鼬 糕 孓 糊 封 裁 敛 糕 图3 2p c i 9 0 5 2 与p c i 总线接口 3 3p c i 9 0 5 2 的配置 如上所述,p c i 设备必须实现配置寄存器,声明对系统资源的占用 情况,系统配置程序根据p c i 设备的配置寄存器自动分配资源。而作为 专用接口芯片,p c l 9 0 5 2 提供了灵活的配置方式,它通过外置一片串行 e e p r o m 来实现对其内部寄存器的自动配置。 p c i 9 0 5 2 使用m i c r o c h i p 公司生产的9 3 l c 4 6 b 进行配置, 9 3 l c 4 6 b 的特点是具有工业标准三线串行接口,其内部数据的组织形式是6 4 1 6 b i t 。9 3 l c 4 6 b 与p c l 9 0 5 2 接口的电路图如图3 3 所示;串行e e p r o m 时钟信号是通过3 2 分频p c i 时钟信号得到的。p c i 主控器可以通过操 作寄存器位c n t r l 2 9 :2 4 来控制p c l 9 0 5 2 的管脚读写串行e e p r o m 。 v c c i o r d 撑 1 0 w r 撑 u s i 吸爿c 搿肄 u s t 3 c s 群 e e c s 舞p 锄5 2 皿d i d 、s s r 汀撵 图3 3p c l 9 0 5 2 配置电路 3 3 1p c i 9 0 5 2 的配置过程 上电期间,p c i 的r s t # 信号复位p c l 9 0 5 2 ,其内部寄存器恢复默认 值:同时,p c i 9 0 5 2 输出局部总线复位信号l r e s e t # ,并且检查串行 e e p r o m 。p c l 9 0 5 2 通过检查一个低电平开始位来确定e e p r o m 的存在。 如果e e p r o m 存在,并且其前4 8 位值不是全1 ,则p c i 9 0 5 2 读取e e p r o m 的值配置内部寄存器,否则采用默认值加载内部寄存器。p c l 9 0 5 2 随后 连续读出9 8 个字节,配置其内部寄存器;t 串行e e p r o 睡内部数据是按照 1 6 位组织的,p c l 9 0 5 2 首先读m s w 3 l :1 6 ,从第3 l 位开始读;然后 读l s w ,从1 5 位开始读。因此,p c i 9 0 5 2 读取的顺序为d e v i c ei d 、v e n d o r i d 、c l a s sc o d e 等。 p c l 9 0 5 2 内部寄存器可以e e p r o m 配置,也可以由p c i 主控器写入。 1 9 雾 p c l 9 0 5 2 的内部寄存器可以映射到系统的存储空间或i 0 空间,从而可 以通过p c i 总线直接对p c l 9 0 5 2 内部寄存器进行操作。 p c l 9 0 5 2 的内部寄存器主要有p c i 配置寄存器( p c ic o n f i g u r a t i o n r e g i s t e r s ) 和本地配置寄存器( l o c a lc o n f i g u r a t i o nr e g i s t e r s ) , 都可以通过p c i 总线和e e p r o m 访问。p c i 配置寄存器的结构和地址如 表3 1 所示;其中d e v i c ei d 和v e n d o ri d 是系统配置程序用来区分设 备生产者和版本号的;本地配置寄存器可以被映射到内存空间( p c i 基 地址寄存器0 ) 和( 或) i o 空间( p c i 基地址寄存器1 ) ,也就是说, 我们可以通过内存访问指令读写p c i 基地址寄存器o 或通过i o 指令读 写p c i 级地址寄存器l 来实现对p c l 9 0 5 2 本地配置寄存器的间接访问。 表3 1p c i 配置寄存器的结构和地址 p c i 配置 数据位 寄存器地址 3 l1 61 50 0 0 hd e v i c ei dv e n d o ri d 0 4 hs t a t u s c o m m a n d 0 8 hc l a s sc o d er e v i s i o ni d c a c h el i n e o c hh e a d e rt y p e b 1 z e 1 0 hp c i 基地址寄存器0 ( 内存访问本地配置寄存器) 1 4 hp c i 基地址寄存器l ( i 0 访问本地配置寄存器) 1 8 hp c i 基地址寄存器2 ( 映射本地地址空间0 ) l c hp c i 基地址寄存器3 ( 映射本地地址空间1 ) 2 0 hp c i 基地址寄存器4 ( 映射本地地址空间2 ) 2 4 hp c i 基地址寄存器5 ( 映射本地地址空间3 ) 2 8 h 2 c h s u b s y s t e mi ds u b s y s t e mv e n d e ri d 3 0 h p c i 扩展r o m 基地址 3 4 h 3 8 h p c i 9 0 5 2 提供了5 个本地端地址空间,即l o c a ls p a c eo 一3 和 e x p a n s i o nr o m ,可以通过p c i 总线访问本地端地址空间。要想实现地 址空间,必须实现如下几个寄存器: p c i 基地址寄存器 本地端地址空间范围寄存器 本地端重映射基地址 本地总线配置寄存器 系统必须在引导操作系统之前建立一个统一的地址映射,因此必须 确定系统中有多少存储器以及系统中的i o 控制器要求多少的地址空 间。为了使这种映射与相应的设备无关,所以在配置空间中安排了基地 址寄存器。配置程序必须检测每个可能的功能基地址寄存器以确定基地 址寄存器是否实现,是一个存储器还是一个i o 地址译码器等此信息 可以通过向基地址寄存器写入全1 ,并回读来确定。如果读回全0 ,则 表示未实现基地址寄存器。如果读回的值非o ,则可以通过从基地址寄 存器的最低有效位向上扫描,以找出第一个被成功置1 的位来确定所需 存储器的容量或i o 空闻的大小在所有的基地址寄存器中,位o 均为 只读位并且用来决定是存储器空间还是i o 空间。存储器基地址寄存器 位2 和位1 定义了译码器是3 2 位还是6 4 位宽度,基地址寄存器用于 3 2 位存储器译码器的位 3 1 :4 和用于6 4 位存储器译码器的住 6 3 : 1 称为基地址单元i o 基地址寄存器 3 l :2 是基地址单元,设置它 的起始地址。在p c i 9 0 5 2 中,位 3 1 :2 8 是不可写的,即 3 l :2 8 始终参与地址译码 例如:向基地址寄存器写入全“l ”后,若返回值是f f f 0 0 0 0 0 ,从 返回值可以确定如下信息: b i t o 表示是一个存储器 b i t lb i t 2 表示是3 2 位存储器译码器 b i t 3 轰示它不可预取 b i t 2 0 为1 表示这是一个1 1 b 的存储器的地址译码器。 p c i 初始化软件得到了所请求的范围时自动将系统分配的基地址写 入相应的基地址寄存器。 本地端重映射基地址寄存器的作用是将p c i 总线对此基地址的访问 映射到本地地址空间中,而本地址空间的各项参数( 如总线宽度、突发 模式使能等) 由本地端总线配置寄存器决定。 例如,向本地地址空间o 范围寄存器写入0 x f f f 0 0 0 0 0 时,系统为 地址空间o 分配了l m b 的内存空间。p c i 配置软件会向p c i 基地址寄存 器2 写入一个基地址,如7 8 9 x x x x x ,即系统可以通过访问地址7 8 9 x x x x x 来访问p c l 9 0 5 2 的地址空间o ;如果p c l 9 0 5 2 本地端重映射寄存器内容 为0 2 3 x x x x x ,则系统对地址7 8 9 x x x x x 的访问将映射到本地端地址 0 2 3 x x x x x 上。至此完成了p c i 总线到本地端地址的映射。 p c l 9 0 5 2 可以为本地总线提供4 个片选信号,这样可以省略适配卡 上的解码电路。它包含四个c s 基地址寄存器( c h i ps e l e c txb a s e r e g i s t e r s ) 。这些寄存器控制了p c l 9 0 5 2 的四个片选脚,例如,c s o 基 地址寄存器控制c s 0 # 、c s o 基地址寄存器控制c s l # 。c s 基地址寄存器 有三个功能: 使能禁能片选功能,如果使能,并且地址落在基地址、地址范围 之内,片选信号被使能。 在片选信号有效的时候设置范围和地址长度 设置基地址 要设置片选信号寄存器,必须遵循以下三个步骤: 1 范围( r a n g e ) 必须是2 的n 次方 2 基地址必须是范围值的倍数 3 片选基地址寄存器不与其他的重用 片选信号寄存器是2 8 位的,b i t o 决定是 使能禁能相应的c s # 脚,b i t 卜b i t 2 7 决定 地址的长度和基地址片选信号基地址寄存器 使用方法是: 首先确定十六进制的地址范围,并把它转 换为2 的整数次幂,基地址寄存器的设置位决 盘掣电掣够够苷 0 2 | 幻0 0 h 射f 开= h 伴f f f f 产h 2 2 定了范围;其次,确定基地址,基地址泌须是地址范围的倍数。然后再 确定基地址倍数,基地址倍数= 基地址地址范围;最后转挟基地址倍数 为二进制数,用这个数设置基地址倍数位;基地址倍数位在地址范围位 的前面。 例如:要实现1 6 ks r a m 的设备硌须放在局部地址总线上,并且要 提供片选信号;图3 5 内存映射 基地址是2 4 0 0 0 h ,内存映射如图3 5 , l 、确定十六进制的地址范围并转换为2 的整数次幂,如:1 6 k = 2 1 4 即 4 0 0 0 h 2 、设置地址范围位设置2 1 4 位为l 3 、确定基地址,如2 4 0 0 0 h 4 、确定基地址倍数:如:2 4 0 0 0 4 0 0 0 = 9 5 、转换基地址倍数为二进制数1 0 0 l b 6 、设置基地址倍数位: 设置完了后的片选信号基地址寄存器如图3 6 所示: lm s b = 2 7 l s b 篁oi lo oo o1 00 1 1 0 o 灯o 1l 图3 6 基地址寄存器内容 3 3 2p c i 9 2 的配置的实现 由于本系统中的p c i 9 0 5 2 配置成非复用模式,并且没有使用本地端 的地址线,所以在本系统中需要映射三个地址空间,即本地端地址空间 o 、本地端地址空问l 和本地端地址空间2 ,分别映射到p c i 基地址寄 存器2 、p c i 基地址寄存器3 和p c i 基地址寄存器4 上;地址空间0 与 f p g a 内部的f i f o 接口,所以要映射到内存空间,因为只有内存读写支 持突发模式。地址空间1 、2 分别与输出脉冲控制寄存器和a d 触发控制 寄存器接口,由于数据量少,都是单次读写,所以可以映射到i o 空 间。这样设置的目的是可以使f p g a 通过片选信号来区分p c i 9 0 5 2 的对 内部寄存器的读写操作。因此,还必须实现片选信号基地址寄存器。 除此之外,当f p g a 内部的f i f 0 半满或指定的采集点采集完成时, 必须通知计算机把数据取走,所以必须实现中断寄存器。 图3 4p c i 卡配置结果 至此,p c i 卡已基本配置完成,系统上电后自动配置p c i 设备,分配所 需的资源,配置的结果可以通过w i n d 0 w s 设备管理器查看,如图3 4 所 示。 3 4f p g a 内部电路的设计 本地端的全部功能由一片f l e x l 0 k 1 0 设计完成,根据系统的要求, a d 具有外触发、延时触发的功能,而且要求一定量的数据暂时存储的 能力;由于需要对脉冲高压电源进行控制和脉冲信号的采样,所以还要 脉冲串,并且其脉冲频率、脉冲宽度均可调。下面将分别论述各个部分 的实现。 3 4 1 与t l c 5 5 1 0 接口的设计 根据项目的要求,数模转换器至少要达到1 m s p s 的转换速度所以我 们选用了t l c 5 5 1 0 。t l c 5 5 1 0 是t i 公司生产的高速a d 转换器,用于视 频处理、高速数据转换等领域,采用c m o s 工艺制造,精度为8 位,转 换速率为2 0 m s p s 。 根据t l c 5 5 1 0 的采样时序用状态机来实现采样控制过程,用 q u a r t u s i i 设计的采样控制器模块如图3 5 所示: :一 一矗苦音若+ i 茜 图3 5 采样控制器模块 其中,a d c k 提供a d 采样时钟;t l c 5 5 1 0 时以流水线方式工作的, 每加一个采样周期,a d 就会输出一个采样数据。根据系统采样速率的 要求,选择采样时钟为2 姗z 。r s t 信号控制采样控制器的数据输出,高 电平有效,用于配合触发电路实现输出数据的控制。a d 转换仿真波形 如图3 6 所示。 几r r n 几nn 几n 几r 门几几几r nnn 几厂 nn 几几n 门n 几nn 几几r 几几r 几几几门 图3 6a d 转换仿真波形 3 4 2 脉宽、频率可调的脉冲串发生器的设计 阴极发射均匀性自动测量系统中的高压脉冲电源需要计算机控制 脉冲频率和宽度,所以需要输出可调频率,可调脉宽的脉冲波形。频率 输出为单次、1 0 0 h z 、5 0 0 h z 可选,脉冲宽度为5 u s 、1 0 u s 、2 5 u s 、5 0 u s 、 1 0 0 u s 可选。为了实现以上功能,采用v h d l 和q u a r t u s i i 图形编程相 结合的方式完成分频电路设计,其图形程序如图3 9 所示: - :+ : :广一1 萄疆箍糊一一一1 : 三i 翟簟f i 蕈i 翠銎:憔匿豢豢慕意 蓦誊誊誊蹙璧莲至褥誊蓦i :一:= :! ;j ;:;i ! ! ;i ;i :! ! ! j ! ! ;! ! i 一:| i ;i ! k 玉一:。:。 图3 7 脉冲串发生器图形程序 图中,f e n p i n 、n e w f e n p n 和d i v i d e 5 模块分别用v h d l 程序实现。 p u l s e 7 0 和f r e q 7 o 连接脉宽和频率控制寄存器的输出。 4 0 m h z 的c l o c k 信号由c l k i 引脚进入f e n p i n 模块,f 酬p i n 模块输出 4 0 k 分频后的时钟输入d i v i d e 5 模块,d i v i d e 5 模块根据其d a t a i n 7 0 输入的数据进行二次分频,得到1 0 0 h z 和5 0 0 h z 的频率。当c n t r l o 、 c n t r l l 都是高电平时,d i v i d e 5 模块的输出p p s 信号进入n e w f e n p i n 模 块的s t a r t 脚;n e w f e n p i n 的功能是在s t a r t 脚检测到一个上升沿后把 输出0 1 置为高电平,同时累加c l k 的脉冲个数,当累加的脉冲个数等 于p u l s e 7 o 预置的值时把输出o l 置低,从而实现了根据输入的数 据调整输出脉宽的功能。 由于还要实现单次触发,所以添加了两个与非门和两个控制引脚 c n t r l o 和c n t r l l ;当c n t r l 0 、c n t r l l 都是1 时,输出即为输入信号: 当c n t r l o = 0 时,输出受c n t r l l 控制,即在c n t r l l 输出一个上升沿, 即可触发n e w f e n p i n 的s t a r t 引脚,输出一个脉冲。其脉冲宽度也是由 p u l s e 7 o 决定。 3 4 3 触发电路及采样控制电路的设计 根据系统要求,模数转换器必须与高压脉冲电源的脉冲信号同步; 并且由于电阻匹配、取样方式等问题,取样回来的阳极脉冲电流和小孔 电流波形在上升沿附近有一些畸变,所以模数转换的时候弘须避开波形 发生畸变的区域,因此要求模数转换器具有延时触发的功能。 延时触发电路设计是通过控制模数转换控制器的输出使能端实现 的,q u a r t u s i i 下的图形程序如图3 一1 1 所示: 图3 1 1 延时触发电路图形程序 外触发信号从t r i g e r 端输入,c l k i 连到4 0 m h z 的系统时钟;当 t r i g e r 上一个上升沿到来时,d e l a y 内部的寄存器开始计数c l k i ,当 计数值达到d a t a i n 7 0 时,使能输出a d 控制信号0 1 ,控制t l c 5 5 l o 开始采样,送入f i f o 。 3 4 4f l f o 的设计 考虑到所需数据量的问题,设计了8 b i t 2 5 6 的f i f o ,其框图如图 3 1 3 所 善茸了 图3 1 3f i f 0 由于系统的需要,f i f o 妯须产生f u l l 信号和e m p t y 信号,这两个 信号输入控制电路,产生系统所需的控制信号。 异步清零端可供驱动程序通过p c i 9 0 5 对f i f 0 进行初始化 f i f o 的仿真波形如图3 1 4 所示: 争帆口 1 争棚 0 c 姒 0 r r r 厂 厂 厂r 广 厂 厂 r r 厂 几厂 r f 萨 h 帕 丌研百阿t 币 鼋0 h 叩 i 0 1 i 呛i 昭i ( 一础 0 图3 1 4f i f o 的仿真波形 有图可见,在w r r e q 有效时,在c l o c k 每个下降沿,f i f o 锁存数据 当r d r e q 有效时,f i f 0 在c l o c k 每个下降沿输出数据。 3 4 5 与p c i 9 2 接口的设计 与p c l 9 0 5 2 本地总线的接口全部由一片f l e x l o k l 0 来实现,在f p g a 内部,实现了输出脉冲宽度寄存器、脉冲频率寄存器、p c l 9 0 5 2 片选信 号解码、f i f o 、延时触发寄存器、采样点控制寄存器等。 当外触发信号到来时,经过延时触发电路,触发t l c 5 5 1 0 采样控制 器开始采样,并将数据送入f i f o ,同时内部采样计数器进行加操作, 当内部采样计数器的值等于采样点控制寄存器时,产生中断信号,触发 p c l 9 0 5 2 的l i n t l 引脚,从而,产生p c i 总线的i n t a 中断,通知驱动程 序读空f i f o 内的数据。 系统框图如图3 1 2 所示: p c i9 0 5 2 t l c 5 5 l o 采样摔制 | _ _ 一脉冲串发生器- _ 脉冲输 _ _ 叫蕊 _ _ l 刊控制电路 一 图3 1 2 系统框图 图中,f i f o 、脉冲宽度寄存器、采样点控制寄存器共用p c i 9 0 5 2 的 低1 6 位本地端数据总线的低8 位;脉冲频率寄存器、延时控制寄存器 共用p c i 9 0 5 2 的低1 6 位数据总线的高8 位。 3 5f p g a 的配置电路 f l e x l o k l o 是基于s r a ml u t 结构的f p g a 器件,由于是易失性器件, 所以上电后必须进行一次配置,即在线可重配置( i n c i r c u i t r e c o n f i g u r a b i l i

温馨提示

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

评论

0/150

提交评论