[学位论文]高速数据采集与存储系统的设计与实现.pdf
-
资源ID:71060556
资源大小:4.52MB
全文页数:84页
- 资源格式: PDF
下载积分:15金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
[学位论文]高速数据采集与存储系统的设计与实现.pdf
西安电子科技大学硕士学位论文高速数据采集与存储系统的设计与实现姓名:谭家海申请学位级别:硕士专业:软件工程指导教师:丁振国;王玉生20090301摘要数据采集与存储系统是测试系统的关键环节,高速数据传输对提高整个系统的性能有着重要意义,利用P C I 总线进行高速传输,解决了数据传输中的速度瓶颈问题。本文研究的课题项目遥测多功能测试台能够实现高速数据码流的采集,处理以及存储。本文通过对P C I 总线技术及其驱动程序设计方法的研究,在对以往数据采集与存储系统设计方案学习借鉴的基础上,提出了基于P C I 总线的高速数据采集与存储系统的实施方案,并在方案中设计与实现了P C M 信号输入预处理功能、同相正交鉴相技术以及四级R A M 法,从而实现了系统对高速数据码流的采集,处理以及存储。本文的重点是对遥测多功能测试台中的高速数据采集、处理与存储系统进行设计与实现,并对系统的硬件电路、控制软件以及驱动程序进行了详细的设计与实现。最后对系统的各项性能进行了测试,结果表明系统性能达到测试台的性能要求。关键词:数据采集测试台驱动程序A b s 仃a c tD a t aa c q u i s i t i o na n ds t o r a g es y s t e m si st h ek e yp o i n to ft h et e s ts y s t e m,h i g h s p e e dd a t at r a n s m i s s i o nh a v eag r e a ts i g n i f i c a n c et oi m p r o v et h ew h o l es y s t e mp e r f o r m a n c e,t h eH i g h s p e e dt r a n s m i s s i o nt h r o u g hP C Ib u sh a v es o l v e dt h eb o t U e n e c k si nd a t at r a n s m i t t i n g I nt h i sp a p e r,t h es u b j e c to fm u l t i f u n c t i o nt h es y s t e mp e r f o r m a n c eo ft e s tp l a t f o r mp r o j e c t st oa c h i e v eh i g h s p e e ds t r e a mo fd a t aa c q u i s i t i o n,p r o c e s s i n ga n ds t o r a g e A ni m p l e m e n t a t i o no fh i g h-s p e e dd a t aa c q u i s i t i o na n ds t o r a g es y s t e mi sl i s t e di nt h ep a p e r T h ei m p l e m e n t a t i o ni sb a s e do nt h er e s e a r c ho fP C Ib u st e c h n o l o g ya n dd r i v e rp r o g r a md e s i g na n da l s oh a sr e f e r r e dt h eo r i g i n a ld a t aa c q u i s i t i o na n ds t o r a g es y s t e m T h eP C Ms i g n a lp r e-p r o c e s s i n g。o r t h o g o n a lp h a s eo ft h et e c h n o l o g ya n df o u rR A Mo fa c th a v eb e e nd e s i g n e da n di m p l e m e n t e di no r d e rt oa c q u i r e,p r o c e s sa n ds t o r ed a t a T l l i sa r t i c l ef o c u s e so nm u l t i f u n c t i o nr e m o t et e s t i n gp l a t f o r mo fh i g h-s p e e dd a t aa c q u i s i t i o n,p r o c e s s i n ga n ds t o r a g es y s t e m sd e s i g na n di m p l e m e n t a t i o n T h es y s t e mh a r d w a】f e s o R w a r e 柚dd r i v e rc o n t r o li sd e s i g n e da n dr e a l i z e di nd e t a i l F i n a l l y,t h ep 柏锄a n C eo ft h es y s t e mw a st e s t e dt h er e s u l t ss h o wt h a tt h es y s t e mp e r f o r m a n c eo ft e s tp l a t f o r mh a sm e e tt h ep e r f o r m a n c er e q u i r e m e n t s K e y w o r d:D a t aa c q u i s i t i o nT e s t i n gp l a t f o r mD r i v e r西安电子科技大学学位论文独创性(或创新性)声明秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说明并表示了谢意。申请学位论文与资料若有不实之处,本人承担一切的法律责任。本人签名:西安电子科技大学关于论文使用授权的说明本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生在校攻读学位期问论文工作的知识产权单位属西安电子利技大学。学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后结合学位论文研究课题再撰写的文章一律署名单位为西安电子科技大学。(保密的论文在解密后遵守此规定)本学位论文属于保密,在年解密后适用本授权书。本人躲继导师签名:。j 烟日期趱!刍臣坌同期迎里!空:竺第一章绪论第一章绪论1 1 课题背景和选题意义现代军事、民用工业生产以及科学研究对数据采集、数据存储速度的要求日益提高,在导弹、雷达、声纳、软件无线电、瞬态信号测量等一些高速、高精度的测量中,需要进行对高速数据码流的采集和存储。目前,数据采集系统在高速A I D(a n a l o g-d i g i t a lc o n v e r t o r,模数转换器),D A(d i g i t a l a n a l o gc o n v e r t o r,数模转换器)器件发展的带动下,采集带宽在稳步提高,具有1 0 0M b p s 采集能力以上的高速数据采集系统产品已经非常成熟。然而国外厂商的高速采集系统往往都价格不菲,虽然国内有些厂商也具备开发高速采集系统的能力而且价格较国外厂商的相关产品低廉,但是由于高速数据采集对信号完整性、信号干扰,高速P C B(P r i n t e dC i r c u i tB o a r d,印刷电路板)布线及数据处理和高速实时存储要求极高,国内完全掌握这个技术的厂商并不多,所以在实际应用中,很难找到一种满足需要的高速采集和存储的软硬件系统。这种情况长期限制了高速数据采集和存储技术在我国工业生产和科学研究中的应用。在这样的背景下,本课题提出一种基于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,外围组件互连总线)技术的高速数据采集及存储系统的解决方案,解决以往在高速A D C(A n a l o gt oD i g i t a lC o n v e r t e r,模数变换器)技术、数据存储与传输技术等方面的几个技术难点,采用F P G A(F i e l dP r o g r a m m a b l eG a t eA r r a y,现场可编程门阵列)作为核心器件,集成中央逻辑控制及硬盘接口,直接将高速码流经初步处理后存入由高速硬盘组成的实时存储系统中,实现高速采集和实时高速存储。这种方案成本低廉,能提高采集速度,增加系统可靠性,并大大提高可持续采集时间,具有较大的灵活性。本系统在以前相关领域课题研究的基础上,对高速数据采集、传输和存储技术进行了进一步的研究,从多个方面提高了系统的性能指标。在高速数据采集设计方面,系统采用F P G A 有着单片机和D S P(D i 西t a lS i g n a lP r o c e s s o r,数字信号处理器)所无法比拟的优势。F P G A 时钟频率高,内部时延小,目前器件的最高工作频率可达3 0 0 M H z 以上;硬件资源丰富,单片集成的可用门数达1 0 0 0 万门;全部控制逻辑由硬件资源完成,速度快,效率高;组成形式灵活,可以集成外围控制、译码和接口电路【l】。利用F P G A 进行高速数据预处理和作为A D 芯片与存储系统之间的桥梁和作为预处理器十分合适,并且以F P G A 为控制核心器件的方案解决了以往分立组件设计实现过程中的设计复杂、速度慢以及不灵2高速数据采集与存储系统的设计与实现活等技术问题。在传输总线方面,P C I 总线为数据的高速实时传输提供了非常有效的传送通道m。并且P C I 总线实现前端数据传输模块和后端数据处理与存储系统之间的接口,可以使所开发的板卡具有即插即用性和数据传输率高的特点,所以用于P C I 总线具有高性能的属性又解决了采集系统和存储系统之间的传输瓶颈。在高速数据采集与存储系统中,数据存储是一项关键技术。通常的做法是把数据存入大容量存储器中,采集结束后再进行数据处理和保存。采用这种方法,持续采集时间受存储器容量的限制,一般只能持续零点几秒到几秒时间,因此在许多场合可能无法满足要求;而存储器容量的增加,其价格也会成倍增长。因此,从存储容量、读写速度和单位成本等方面综合考虑,采用高速硬盘直接数据存储是很有优势的。但是磁盘的实时流盘存储一直是数据采集速度最大瓶颈,它直接制约了采集存储设备的实时存储能力。为此,可考虑利用多个I D E(I n t e g r a t e dD e v i c eE l e c t r o n i c s)硬盘组成R A I D 阵列(R e d u n d a n tA r r a yo fI n e x p e n s i v eD i s k s,廉价冗余磁盘阵列)。其中R A I D 0 把多块独立的硬盘组合起来形成一个硬盘组,从而提供比单个硬盘更高的存储性能。为了在脱机环境下使用硬盘作存储及出于对速度和灵活性的考虑,在F G P A 上实现R A I D 控制器是十分有必要的。在这种情况下,磁盘容量可以达到惊人的数T 字节,存储速度也不是闯题,可以极大地提高连续采集时间,具有十分重要的实际意义。本课题对高速采集及存储系统进行了较为深入的研究,在前人的基础上大大提高了系统整体性能,实现数据的高速稳定存储因而具有较大的实用价值。1 2 高速数据采集系统的研究现状现代工业生产和科学研究对数据采集的要求同益提高,在瞬态信号测量、图像处理等一些高速、高精度的测量中,需要进行高速数据采集。由于W i n t e l 架构B o (采用I n t e l 或兼容的硬件及微软或兼容的软件的数据采集系统,俗称W i n t e l 架构)已经成为商业P C 机的主流,其标准公开、结构公开、软件及开发工具公开,因此具有很好的开放性,且硬件成本和开发成本比较低。因此,这种基于P C 的数据采集系统架构以其开发成本低、开放性、运算能力、通讯能力强、易于使用,成为设计应用的主流。W i n t e l 架构的数据采集系统可以分为以下两种形式【lU。(1)基于板卡的集中式基本方式是采用数据采集卡进行数据采集。主要做法是将一块基于I S A 或P C I的板卡插入工业计算机或商业机上,将外部信号通过导线引至计算机的端口上然后接入数据采集卡,通过定制的软件就可以进行采集。优点:成本较低、速度快;第一章绪论缺点:传输距离短、可靠性一般,同时布线费用较高。(2)基于分布式的数据采集系统基本方式:先通过智能采集模块记录信号,再通过一些通用总线如R S 2 3 2,R S 4 8 5进行传送,但这样的速度、距离都受到很大限制采用基于现场总线的数据采集模块,流行的现场总线如C A NB U S,P r o f i b u s等。基本做法是通过现场总线将智能模块引入计算机,上位机通过定制的软件和智能模块通讯。优点:易维护、布线简单、可靠性高;缺点:采样速度低、成本较高。1 3 数据存储技术的研究现状目前数字图像信号处理的工程实践要求数据存储系统的数据存储速度快,存储容量大。相对于磁光盘和磁带机,将硬盘作为存储载体有很高的性价比。针对硬盘的存储,目前世界上主要有以下技术【2 l:(1)1 9 8 8 年美国加州大学B e r k e l e y 分校的D a v i dP a t t e r s o n 教授等提出的磁盘阵列冗余技术(R A I D),该技术被多次采用,其性能指标也越来越高。据报道,美国明尼苏达州大学军用高性能计算研究中心图形和可视化实验室已有持续数据传输率达5 0 9 8 M B S 的磁盘阵列机;(2)美国的S i g n t e c 公司推出的A P I D(P a r a l l e lA r r a yo fI n e x p e n s i v eD i s k s)技术。应用该技术的海量存储设备持续数据传输率达到5 0 0 M B s:(3)单硬盘记录技术。无论是R A I D 技术还是P A I D 技术都需由若干存储模块组成,体积和重量不适合便携,对于一些记录次数多、单次记录持续时间短、调用次数多的应用都不实用。而单硬盘的记录机则更适合需要便携的外场试验应用需求。在单硬盘的存储技术中,有很多种针对具体数据的设计,有按硬盘物理顺序记录的方法,有按数据被检索的频率进行算法排列的方法,其各有各的优势和适应背景。1 4 高速数据采集与存储系统的发展前景低速数据采集技术已相当成熟,而高速、高分辨率的数据采集系统仍然存在很多实际技术问题。其关键技术在于高速A D C 技术、抗干扰技术、数据的存储和传输技术、信号调理技术和接口技术等。当今,随着电子技术的迅速发展,这些问题己经得到了较好的解决。A D 转换芯片速度完全能够满足要求,并且价格也越4高速数据采集与存储系统的设计与实现来越低,因此从技术和经济性考虑都成为可能。P C I 总线的广泛应用为数据的海量存储和高速传输提供了可能性,并且使用工业P C,可以充分利用P C 机的成熟的软硬件资源,为数据的处理提供了方便在高速数据采集电路的实现中,有两个关键的问题是需要设计者加以关注,一是电路的功能,另外则是电路的性能对于第一个问题,由于近年来半导体集成电路技术的不断发展,美国T I 公司和A D 公司都开发出了采样速度在1 0 0 M b p s的A D 器件,高速存储器件也由多家半导体厂家研制出来,所以电路功能的实现己不再是难点,而电路性能的提升则是设计人员设计中的工作重点与难道。随着计算机的广泛应用,社会的数字化程度越来越高,数据采集技术的使用场合越来越广泛,通用的高速数据采集系统可用于生物电波、电子学频谱、声波分析等瞬态信号的实时采集和观察等场合。其中基于F P G A 控制电路、P C I 局部总线传输的高速数据采集系统具有可靠性高、数据不丢失、抗干扰性强、便于数据传输、存储、显示和处理等优点,因而具有良好的应用前景和实用价值1 5 论文的工作内容和结构安排本文设计的高速数据采集与存储系统是应用于导弹遥测多功能测试台的一个子系统,该系统用于拦截导弹遥测系统匹配试验,以及遥测中心控制器、远置单元、弹载编码器与加密芯片板自检和测试。在设计系统时充分考虑导弹遥测系统要求采集速率高、数据量大的特点,采用外加F I F O(F i r s tI nF i r s tO u t)存储器和采用D M A(D i r e c tM e m o r yA c c e s s)加中断来存储和传输数据。整个论文的工作围绕着设计和实现高速数据采集和存储而展开,研究了P C I 总线协议、高速数据采集与存储系统的原理、组成及实现方法。在系统设计过程中整个系统的系统控制软件、驱动程序设计和实现以及相关硬件系统的设计是本次工作的重点。论文将围绕上述几个方面进行详细的讨论和研究。论文具体结构如下:第一部分:介绍高速数据采集与存储技术的现状和它们存在的一些技术问题,以及本课题所设计的系统要解决的技术问题。第二部分:介绍P C I 总线规范,对P C I 总线所有的信号的定义及其功能做了详细的说明,同时介绍系统驱动程序设计理论,重点介绍用D r i v e r W o r k s 开发驱动程序的技术过程。第三部分:系统的总体结构。包括系统的工作原理,系统的工作流程,系统的硬件构成,系统的软件构成以及系统软件所要解决的问题。第四部分:系统硬件电路的设计。包括硬件系统总体设计及相关性能描述,模拟信号源模块,数据采集解码模块,F P G A 模块和M C U 模块,F I F O 存储模块以及P C I 总线模块。第一章绪论5第五部分:设计与实现。第六部分:第七部分:系统软件的设计与实现。主要包括系统控制软件以及驱动程序的系统的测试及其测试结果。论文的总结以及对课题的一些展望。第二章P C I 总线技术及驱动程序设计原理第二章P CI 总线技术及驱动程序设计原理2 1P C I 总线技术在这一部分里主要对P C I 总线技术进行较为深入的学习并对其作了详细的介绍,由于P C I 总线设计原理较为复杂且涉及到的内容较多,这里主要介绍了系统设计中涉及到的必备的信号线的定义、作用以及总线的操作和相关的总线协议,总线数据传送过程以及P C I 配置空间。2 1 1P C I 总线的系统结构P C I 总线是由I n t e l 联合I B M、C o m p a q、A S T、H P 等1 0 0 多家公司于1 9 9 3 年推出的P C 局部总线标准【3】。它是一种高性能、与C P U 无关的,将周边设备与处理器高速结合起来的总线结构。P C I 总线支持3 2 位和6 4 位数据传输、多总线主控方式。该总线的引脚数目和部件数量比较少,可以在3 3 M H z 主频和3 2 位数据总线的条件下达到峰值1 3 2 M B s 的带宽,并且还可以扩展为6 6 M H z 主频、6 4 位数据总线,扩展后最大数据传输速率达5 2 8 M B s;支持突发传输、即插即用、电源管理等功能,不但能满足现在的应用需要,而且能够适用于未来的需求。在P C I设备插入P C I 插槽或上电后,P C I 总线配置机构会自动根据P C I 设备的要求实现配置。P C I 总线支持内存读写,端口读写、中断机制和D M A 功能。同其它典型总线相比(如I S A、E I S A、V E S A、M C A 等),P C I 总线具有总线带宽宽、传输率高、工作频率范围大、仲裁方式灵活及可扩展等优势。因此目前P C I 总线技术在大容量数据传输中应用非常广泛。图2 1 显示了一个典型的P C I 局部总线系统结构p J。2 1 2P C I 总线的特点P C I 总线能够配合要求使彼此间快速访问或快速访问彼此问系统存储器的适配器,也能让处理器以接近自身总线全速的速度访问适配器。同时,通过P C I 总线的全部读写传送都可以用突发传送(突发传送的长度由总线主设备决定,在交易开始时,目标得到起始地址和交互类型,但没有传送长度)。当主设备准备传送每一个数据项时,主设备通知目标设备是否为最后一个数据项,当最后一个数据项传送完毕后交互即告结束。P C I 总线采用高度综合化的局部总线结构,其优化的设计可充分利用当今最先进的微处理器及个人电脑技术。它可确保部件、附加卡及系统之间的运作可靠,它具有如下特点:高速数据采集与存储系统的设计与实现(1)数据总线3 2 位,可扩展到“位;(2)可进行突发(b u r s t)式传输;(3)总线操作与处理器、存储器子系统操作并行:(4)总线时钟频率为3 3 M H z 或6 6 M H z,最高传输速率可达5 2 8 M B s;(5)中央集中式总线仲裁;(6)采用地址数据线复用技术减少成本:(7)全自动配置与资源分配,P C I 卡内有设备信息寄存器组为系统提供卡的信息,可实现即插即用;(8)P C I 设备可以完全作为主控设备控制总线;(9)P C I 总线规范独立于微处理器,与各型C P U 兼容,通用性好:(1 0)5 V、3 3 V 环境可平滑过渡;(1 1)高密度插卡减少面积;(1 2)地址及数据奇偶校验系统可靠。夏总线接口P C I 总线状态机P C I 主设备P C I 主设备P C I 从设备P C I 主模式读P C I 主模式写D 姒0P C I 本地D 姒1 本地P c IP C I 从模式写P C I 从模式读本地总线状态机P C I 从设备P C I 主设备P C I 从设备控制逻辑P C I 总线图2 1P c I 总线系统框酬3】本地总线接口本地总线2 1 3P C I 总线信号【6】在一个P C I 总线的应用系统中,如果该设备取得了总线控制权,则称其为“主第二章P C I 总线技术及驱动程序设计原理9设备,而被主设备选中以进行通信的设备称为“目标设备”。为实现处理数据、寻址、接口控制、仲裁等功能,P C I 接口要求“目标设备”至少有4 7 条引脚,“主设备至少有4 9 条引脚。利用这些信号线便可处理数据、地址,实现接口控制、仲裁及系统功能。在信号名字末尾的撑标识表示该信号低电平有效,无撑标识的信号高电平有效,下图2 2 为P C I 总线连接器定义示意图6 1。必须数据地址信号接口制信错误信仲裁(仅设备系统图2 2P C I 总线连接器定义示意图1 6 1P C I 总线的信号线有1 0 0 根,其引脚定义按功能组进行组织,其中必要的有六组,非必要的有三组。在信号名之后的一个“群”标志说明该信号是低电平有效,当无“”标志时,说明该信号是高电平有效。每条引脚上的信号类型跟在信号名之后。信号类型分为:i n 输入;o u t _ 一输出;t s 一三态;s r 持续三态;o d 一漏极开路,允许多器件共享或可作线。具体功能分组如下:(1)系统引脚C K L 表示加系统时钟。为所有P C I 上的传输及总线仲裁提供时序。R S T i n 表示异步复位。用于使P C I 确定的寄存器、配置寄存器、顺序发生器和信号置于一个固定的状态。l o高速数据采集与存储系统的设计与实现(2)地址和数据引脚A D 3 l:O t s 表示地址数据复用引脚。C B E 3:O#t s 表示总线命令和字节允许复用引脚。在地址段,C【3:0】上定义了总线命令。在数据段,B E【3:0】用作字节允许,表示哪些通道上的数据有意义。B E【0】撑对应于最低字节而B E【3】撑对应于最高字节。一个P C I 总线传输由一个地址段及相随的一个或多个数据段组成。(3)接口控制引脚F R A M E 群5 t s 表示周期构成(c y c l eF r a m e)。由当前总线主设备驱动,以说明一个操作的开始和延续。I R DW5 t 5 表示启动准备就绪(I n i t i a t o rR e a d y)。在I R D Y#和T R D Y#都有效的时钟期间完成数据传输。在I R D Y#和T R D Y#都有效之前,需要插入等待状态。T R D Y#s t s 表示目标设备准备就绪(T a r g e tR e a d y)。在I R D Y#和T R D Y#都有效的时钟期间完成数据传输。在工R D Y#和T R D Y#都有效之前,须插入等待状态。S T O P 撑s t s 表示停止。说明当前的目标设备要求总线主设备停止当前传输。L O C K#s t s 表示锁定信号。I D S E Li n 表示初始化设备选择(I n i t i a l i z a t i o nD e v i c es e l e c t)。在配置空间读写操作中用作片选。D E V S E L 群s t s 表示设备选择。(4)仲裁引脚(只对总线主设备)R E Q 群t s 表示申请。向仲裁器发出使用总线的请求。G N T#t s 表示允许。仲裁器向申请单元说明其对总线的操作请求己被允许,这是一个点一点信号,每个总线主设备都有自己的G N T#。(5)错误反馈引脚(所有设备都要求有错误反馈引脚)P E R R 舟s t s 表示奇偶校验错误(P a r i t yE r r o r)。该引脚只用于反馈除特殊周期外的其它传送过程中的数据奇偶校验错误。S E R R#o d 表示系统错误。用于反馈地址奇偶错误、特殊周期命令中的数据奇偶错误和将引起重大事故的其它灾难性的系统错误。(6)中断引脚中断引脚是“电平触发,低电平有效,用漏极开路输出驱动器驱动,与时钟异步。P C I 为每一个单一功能设备定义一根中断线。I N T A#o d 表示中断A,用于单一功能设备请求一次中断。I N T B#o d 表示中断B,用于多功能设备请求一次中断。I N T C 拌o d 表示中断C,用于多功能设备请求一次中断。1 N T D#o d 表示中断D,用于多功能设备请求一次中断。多功能设备的任何一种功能都能连到任何一条中断线上。中断引脚寄存器决第二章P C I 总线技术及驱动程序设计原理II定该功能用哪一条中断线去请求中断。如果一个设备只用了一条中断线,则这条中断线就被称为I N T A#,如果该设备用了两条中断线,那么它们就被称为I N T A#和1 N T B#,依此类推。对于多功能设备,可以所有功能用一条中断线,也可以每种功能都有自己的一条中断线(最多4 种功能),还可以是上述两种情况的结合。但一个单功能设备只能使用一条中断线请求中断。(7)高速缓存(c a c h e)支持引脚(可选用)S B O 撑i n o u t 表示监视补偿(S n o o pB a c ko f f)。S D N O Ei n o u t 表示监视进行(S n o o pD o n e)。一个能高速缓存的P C I 存储器必须利用这两条高速缓存支持引脚作为输入,以支持写通(w r i t e t h r o u g h)和回写。如果高速缓存的存储器是位于P C I 上,则连接回写高速缓存到P C I 的桥路必须利用两条引脚,且作为输出。连接写通高速缓存的桥路可以只使用一条引脚S D O N E。(8)6 4 位总线扩充引脚(可选用)A D【6 3:3 2 0 s 表示地址数据复用引脚提供2 3 个附加位。C B E 7:4】撑t 5 表示总线命令和字节允许复用引脚。g _ E Q 6 4 掣t s 表示请求6 4 位传输。A C K 6 4 样s t s 表示应答6 4 位传送。P A R 6 4t s 表示高双字偶校验。(9)J IA G 边缘扫描引脚(任选)T C Ki n 表示测试时钟;T D Ii n 表示测试数据输入;T D 0o u t 表示测试数据输出;T M Si n 表示测试模式选择;T R S T#i n 表示测试复位。2 1 4P C I 总线操作1 总线命令总线命令是由主设备发向从设备,其作用是用来规定主、从设备之间的传输类型,它出现于地址期的C B E 3:0#线上。这里的主设备是指通过仲裁而获得总线控制权的设备;从设备是指在C B E 3:0#上出现命令的同时,被A D 3 1:0】线上的地址所选中的设备。表2 1 给出了总线命令的编码及类型说明。其中,命令编码中的“l”表示高电平,“0 表示低电平。总线命令表如表2 1 所示。(1)中断应答命令:中断应答命令是一个读命令,执行主设备从申请中断的从设备中读回中断矢量的操作。(2)特殊周期命令:该命令为P C I 总线提供了一个简单的信息广播机制,通报处理器的状态或为各个从设备之间传递信息。(3)I O 读命令:该命令用来从一个映射到I O 地址空间的设备中读取数据。1 2高速数据采集与存储系统的设计与实现A D 31:0 0 上提供一个字节地址,全部3 2 位必须完全译码;而字节使能信号表示传送数据的多少,必须与字节地址一致。(4)I O 写命令:该命令用来向一个映射到I O 地址空间的设备写入数据全部3 2 位地址必须参加译码,字节使能信号表示数据长度,且必须和字节地址一致。(5)保留命令:该类编码是为将来的用途而保留的。P C I 的任何设备都不能将它们挪作它用,任何设备也不允许对保留命令编码做出反应。如果接口中使用了一条保留命令,通常要由主设备终止操作来结束本次访问。(6)存储器读命令:该命令用来从一个映射到存储器地址空间的设备读取数据。如果能保证无副作用产生时,从设备可以为该命令进行预先读取。另外,目标设备也要保证在本次P C I 传输之后保存于临时缓冲器中的数据的一致性(包括数据次序)。这个缓冲器在任何同步事件(如更新I O 状态寄存器或存储器标志)通过此访问通路之前必须被置为无效。(7)存储器写命令:该命令用来向一个映射到存储器空间的设备写入数据。当从设备发出“准备好”信号后;它已经准备对所涉及的数据的一致性(包括次序)负责因此,对于该命令的实现可采用完全同步的方式,或采用其它方法。但应保证在任何同步事件通过该访问路径之前使数据缓冲器被冲洗。也就是说,主设备在使用了该命令之后可以立即创造出一个同步事件。(8)配置读命令:该命令用来从每个设备的配置空间读取数据。如果一个设备的I D S E L 引脚有效,且A D 1:0 =0 0 时,那么该设备即被选定为配置读命令的目标。在一个配置命令的地址期内,A D 7:2】用于从每个设备的配置空间中的6 4个双字寄存器中选出一个。A D 3 1:1 1】无意义,A D 1 0:8 表示一个多功能设备的哪个功能设备被选中。(9)配置写命令:该命令用来向每个设备的配置空间写入数据。一个设备被选中的条件是它的D E V S E L 信号有效且A D 1:0 w 0 0,其余和配置读命令相同。(1 0)存储器多行读命令:该命令的作用是试图在主设备断开连接之前读取多行高速缓存数据。存储控制器应保证,只要F M A M E#有效,就连续不断地发存储器请求。该命令预定用于大块连续数据的传输。(1 1)双地址周期(D A C)命令:该命令用于传送6 4 位地址给支持6 4 位寻址的设备。只支持3 2 位寻址的目标把这种命令当作保留命令对待,而对该命令不响应。(1 2)存储器一行读命令:该命令与存储器读命令不同之处在于它还表示主设备要求读取多于两个3 2 位的P C I 数据周期,即进行大块数据传送。此时,一次读行缓存范围内所有数据,而不是一个单一的存储器周期。(1 3)存储器写无效命令:该命令与存储器写命令不同之处是它要保证最小第二章P C I 总线技术及驱动程序设计原理1 3的传输量是一个高速缓存的行,即主设备要在一次P C I 传输中将寻址的高速缓存行的每个字节都写入,写入后发布写无效命令,用于维护C a c h e 一致性的写无效协议。表2 1 总线命令表C B E【3:O】撑命令类型说明O O o o中断应答(中断识别)0 0 0 l特殊周期0 0 1 0I O 读(从I O 地址中读数据)0 0 1 lI O 写(从I O 地址中写数据)0 1 0 0保留0 1 0 1保留O l l 0存储器读(从内存空间映像中读数)O l l l存储器写(向内存空间映像中写数据)l O o o保留1 0 0 l保留1 0 1 0配置读1 0 1 l配置写1 1 0 0存储器多行读l1 0 l双地址周期1 1l O存储器一行读1 1l l存储器写并无效2 命令使用规则所有P C I 设备都是配置(读和写)命令的目标,都必须做出应答,对其他的命令则有选择地响应。命令执行规则保证I O(读和写)命令的执行顺序。有重定位功能或寄存器的目标设备应能通过配置寄存器映射到存储空间,这就为没有I O 空间设备的使用提供了一种选择。当这种映射实现时,无论设备映射到I O 空间还是存储器空间,命令执行规则都对系统设计者提供保证。总线主控可以根据需要使用任选指令,目标(从设备)也可根据需要而选用指令,但如果它选用了基本存储器指令,它就必须支持所有存储器命令。否则,就必须利用别名将这些为优化性能而设的命令(存储器一行读、存储器多行读和存储器写无效命令)转变为基本的存储器命令。例如,个从设备可以不实现存储器一行读命令,但是它必须能接受该命令的请求,并按存储器读命令来处理。同理,一个从设备可以不实现存储器写无效,但它必须能接受该命令的请求,并按存储1 4高速数据采集与存储系统的设计与实现器写命令来处理。对于系统存储器的数据读写,建议在主设备支持的情况下尽量采用存储器写无效命令和存储器行读命令如果主设备确实不能支持上述优化性能的命令,可采用存储器读写命令。对于使用存储器读命令的主设备,所有命令可进行任何长度的访问2 1 5P C I 总线协议P C I 总线的基本传送机制是突发传送。一次突发传送由一个地址段和一个或多个数据段组成。它要求目标设备和总线主设备都必须能理解隐含寻址,P C I 支持对存储器和I 0 地址空间的突发传送。主桥路可以无副作用地将多个存储器写操作合并为一个突发传送,设备通过设置基本地址寄存器中的预取位来表明有无副作用。桥路可以通过在初始化期间配置的软件所提供的地址范围来判断哪里允许合并、哪里不允许合并。当接下来的是一个不可预取的读或写时,合并数据到缓存器的操作必须停止,且缓存器被刷新。如果在可预取范围,跟在上述两事件之后的写传送可以与后续的写合并,但不合并前面的数据 6 1。2 1 6P C I 配置空间当计算机第一次上电时,配置软件必须扫描存在于系统中的不同总线,确定什么设备存在和他们有什么配置要求。这个过程常常指的是:扫描总线,激活总线,检查总线发现过程,总线枚举。而执行P C I 总线扫描的程序常称为P C I 总线枚举。而为了实现这一过程,必须提供2 5 6 字节的配置空间结构,并实现P C I 规范定义的一组寄存器。P C I 总线标准规定的配置空间总长度为2 5 6 个字节,配置信息按一定的顺序和大小依次存放。前6 4 个字节配置空间称为头标区,是任何P C I 兼容设备都应实现的空间。头标区的功能主要是用于识别设备,定义主机访问P C I 板卡的方式(是I O 访问还是M E M 访问、中断号等)。其余的1 9 2 个字节空间称为本地配置空间,因卡而异,主要定义卡上局部总线的特性、本地空间基地址及范围等。因为P C I 规范的通用性,所以每一块P C I 总线扩展板卡都只是实现配置空间的一个子集。一般的P C I 配置空间的头结构如表2 2 所示怛。下面对上述