(信号与信息处理专业论文)16路数字视频监控编码端的设计与实现.pdf_第1页
(信号与信息处理专业论文)16路数字视频监控编码端的设计与实现.pdf_第2页
(信号与信息处理专业论文)16路数字视频监控编码端的设计与实现.pdf_第3页
(信号与信息处理专业论文)16路数字视频监控编码端的设计与实现.pdf_第4页
(信号与信息处理专业论文)16路数字视频监控编码端的设计与实现.pdf_第5页
已阅读5页,还剩87页未读 继续免费阅读

(信号与信息处理专业论文)16路数字视频监控编码端的设计与实现.pdf.pdf 免费下载

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

文档简介

摘要 摘要 数字视频监控系统,融合了计算机,多媒体,通信和网络等多项技术,在越 来越多的领域发挥着重要的作用。数字视频监控系统的编码端,负责图象的采集 和编码,是数字视频监控系统中的关键设备,直接影响着整个系统的性能和质量。 本文研究了数字视频监控系统编码端的设计与实现,主要分为对硬件设计的 研究,对驱动设计的研究和对相关应用程序设计的研究三个部分。 本文的硬件设计采用x 8 6 主板为硬件平台。使用p c i 桥s a a 71 4 6 设计了个 含有4 个接口的接口板。接口板的4 个接口可以方便地与4 个编码板连接。每个 编码板采用4 个t w 9 9 0 3 实现4 路模拟视频的a d 转换,1 个a q 4 2 4 实现数字视 频的四路合成,1 个i m e 6 4 0 0 实现数字视频的m p e g 一4 压缩编码,从而实现4 路 视频编码。这样的体系结构使我们可以根据实际需要,方便地实现4 路,8 路,1 2 路和1 6 路系统,大大降低设计成本。 本文的软件设计基于l i n u x 系统实现。驱动程序的设计以可加载模块方式实现 在l i n u x 的内核中。整个驱动模块实现了对编码端内部各寄存器的访问,从编码板 读取编码数据和预览数据,以及编码系统中断处理程序等功能。 本文的应用程序设计为一个多线程程序,包含主控制线程,预览线程和编码 线程等三个线程。主控制线程实现整个编码端系统的初始化和处理用户界面传下 来的控制信息;预览线程从编码系统读取预览数据并按照用户界面传下来的要求 在屏幕上显示预览视频;编码线程从编码系统读取编码数据并把数据转发给服务 器进程,由服务器进程实现数据的录象存盘或通过网络向远程客户端传输。 同时,本文还针对本地端m p e g 一4 录像数据文件的回放,设计了一个音视频 同步播放器。 关键词:数字视频监控,编码端,x 8 6 平台,l i n u x 内核模块,多线程程序 a b s t r a c t a b s t r a c t d i g i t a lv i d e om o n i t o rs y s t e m ( d v r s ) ,i n t e g r a t e dw i t hc o m p u t e ,m u l t i m e d i a , c o i r m m n i c a t i o na n dn e t w o r kt e c h n o l o g i e s ,h a sp l a y e ds i g n i f i c a n tr o l ei nm o r ea n dm o r e f i e l d s t h ee n c o d e re n do fd v r s ,w i t hr e s p o n s i b i l i t yf o rv i d e oc a p t u r ea n de n c o d i n g ,i s t h ek e yp a r to fd v r sa n ds t r a i g h t l ya f f e c tt h ep e r f o r m a n c ea n dq u a l i t yo ft h ew h o l e s y s t e m i nt h i st h e s i s ,t h ed e s i g na n di m p l e m e n t a t i o no fd v r s e n c o d e re n di sc o n c e m e d , i n c l u d i n gh a r d w a r ed e s i g n ,d r i v e rd e s i g na n da p p l i c a t i o np r o g r a md e s i g n h a r d w a r ed e s i g ni sb a s e do ne m b e d d e dx 8 6p l a t f o r m ai n t e r f a c eb o a r dw i m4 i n t e r f a c ei sd e s i g n e db yt h eu s eo fs a a 7 1 4 6p c ib r i d g e t h ei n t e r f a c eo f t h eb o a r dc a n b ec o n n e c t e dt oe n c o d e rb o a r dc o n v e n i e n t l y e a c he n c o d e rb o a r dc a ne n c o d e4w a y so f v i d e oa n dc o n s i s t so f4p i e c e so ft w 9 9 0 3 ,u s e dt oi m p l e m e n ta n a l o gv i d e o sa d t r a n s f o r m a t i o n ,1p i e c eo fa q 4 2 4 ,u s e dt oc o m b i n ef o u rw a y so fd i g i t a lv i d e oi n t oo n e , 1p i e c e so fi m e 6 4 0 0 ,u s e dt oe n c o d ed i g i t a lv i d e oi n t om p e g 一4c o d e t h i ss t r u c t u r el e t i te a s yt or e a l i z e4 - w a y8 - w a y1 2 一w a ya n d1 6 一w a ys y s t e m ,a n dd e s i g nc o s td e c r e a s e s h e a v i l y s o f t w a r ed e s i g ni sb a s e do nl i n u xs y s t e m t h ed r i v e rp r o g r a mi sd e s i g n e da sa l i n u xk e r n e lm o d u l e t h i sd r i v e rm o d u l ei n c l u d e si m p l e m e n t a t i o no fa d d r e s s i n g e n c o d e re n d si n t e m a lr e g i s t e r , r e a d i n ge n c o d e dd a t af r o mt h ee n c o d e re n da n dt h e i n t e r r u p th a n d l e ro f t h ee n c o d e re n d a p p l i c a t i o np r o g r a mm a i n l y c o n t a i n sam u l t i t h r e a dp r o g r a m ,i n c l u d i n gm a i n c o n t r o lt h r e a d ,p r e v i e wt h r e a da n de n c o d i n gt h r e a d m a i nc o n t r o lt h r e a di n i t i a l i z e s e n c o d e re n ds y s t e ma n dd e a l sw i t hc o n t r o lm e s s a g ed e l i v e r e df r o mu s e ri n t e r f a c e ; p r e v i e wt h r e a dr e a d sp r e v i e wd a t aa n dd i s p l a y si to nt h es c r e e nb yt h ew a yo fu s e r s r e q u e s t ;e n c o d i n gt h r e a dr e a d se n c o d e d d a t aa n dt r a n s f e r si tt os e r v e rp r o c e s s a c c o r d i n gt ou s e r sr e q u i r e m e n t ,s e r v e rs a v e st h ee n c o d e dd a t ao rt r a n s f e r si tt oc l i e n t b yn e t w o r k a na u d i o v i d e os y n c h r o n i z i n gp l a y e ri sa l s oc o n t a i n e di nt h ea p p l i c a t i o np r o g r a m d e s i g n i ti su s e dt op l a ym p e g 一4d a t aa tl o c a lm a c h i n e k e yw o r d s :d i 【g i t a lv i d e om o n i t o r ,e n e o d e re n d ,x 8 6p l a t f o r m , l i n u xk e r n e l m o d u l e , m u l t i - t h r e a dp r o g r a m l i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:冷再鲜日期:幻护厂年才月搿日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:蜍番鲜 导师签名: 日期:卫鲴 第一章绪论 第一章绪论 随着社会的发展以及信息时代的到来,人们对图像通信的需求越来越大,科 技的发展也使 图像通信在各个领域的应用成为可能。人们对工作环境,工作方式,工作条 件都提出了新的要求,他们需要一种在办公室,家里就可以对远端进行监视,控 制的新的工作方式,而以往需要大量人力到达现场进行巡视,检修的工作方式必 将遭到淘汰。为此而研制的视频监控系统运用各种先进的网络技术,多媒体技术, 数字技术使过去只能在本地进行的对活动场景的监视控制活动可以放到遥远的异 地来完成。发展到今天的数字监控系统已经具备强大的监控能力,克服了传统系 统的诸多不足,在保证高可靠性的前提下,实现高度的智能化,使操作更加简单 轻松,为人们提供了一种不需要远端人为存在,就可以实现远距离监控的能力, 从而大大优化人力资源,缩减支出,提高了企事业单位办公的效率和市场竞争力。 在信息高度发展的今天,数字视频监控系统已经广泛的应用于金融,邮电,电力, 交通,商业,旅游,公安,军事,医疗,工矿等国家的重要部门,发挥着重要的 作用。 1 1视频监控系统的发展 视频监控系统是随着电视和摄像机的发展逐步成长起来的。从传统的一对一 监控系统到多路切换控制系统,微处理系统,多媒体监控系统,发展到现在的数 字视频监控系统,是一个从模拟到数字化的转化过程,是不断深入结合计算机技 术的过程。 视频监控系统的发展大致经历了3 个阶段。第一个阶段是在9 0 年代初以前, 主要是以模拟设备为主的闭路电视监控系统,称为模拟视频监控系统;第二个阶 段是9 0 年代中期,随着计算机处理能力的提高和视频技术的发展,人们利用计算 机的高速数据处理能力进行视频的采集和处理,提高了图象质量,增强了视频监 控的功能,这种基于多媒体计算机的系统称为模拟与数字混合监控系统。第三个 阶段是9 0 年代末,随着网络带宽、计算机处理能力和存储容量的迅速提高,以及 各种实用视频信息处理技术的出现,视频监控进入了全数字化的网络时代,称为第 三代视频监控系统【1 1 ( 数字视频监控系统) 。 电子科技大学硕士学位论文 1 2 模拟视频监控系统 到目前为止,模拟视频监控系统的技术已经很成熟。典型的模拟视频监控系 统,如图1 1 所示,一般由图象摄像部分、图象传输部分( 一般采用电缆或光缆) 、 系统控制部分( 视频矩阵切换、动作控制、字符发生等) 和显示记录部分组成。但传 统的模拟闭路电视监控系统仍有其局限性:( 1 ) 通常只适合于小范围的区域监控。 ( 2 ) 布线工程量大,系统的扩展能力差。( 3 ) 模拟视频监控系统大多采用录像机作为 存储工具,磁带作为存储介质,这种方法不仅记录信息量有限,数据的存储会耗 费大量的存储介质( 如录像带) ,而且磁带易变形,磁头、磁带问磨损大,加上采用 模拟信号方式记录读取,失真严重,重放的音像质量远不能满足现场的要求,查 询取证十分烦琐。 盛接点2 量按中心 图1 1 模拟视频监控系统 1 3数字视频监控系统 数字视频监控系统是计算机为中心、数字视频处理技术为基础,利用图象数 据压缩的国际标准( j p e g ,m p e g ) ,综合利用图象传感器、计算机网络、自动控制 和人工智能等技术的一种新型监控系统,其系统组成如图1 - 2 所示。数字视频监控 系统将摄像头获得的模拟电视和视频信号转变为数字视频信号以便于计算机处 理,或者由数字摄像头直接输出数字视频信号,在计算机显示器上显示多路活动 第一章绪论 图象的同时,可将各路信号分别存储于计算机的硬盘内。在实时隋况下,每路信 号在监视、记录、回放时都能达到最大为2 5 帧s 的活动图象的效果。 数字视频监控系统除了具有传统闭路电视监视系统的所有功能外,还具有远 程视频传输与回放、自动异常检测与报警、结构化的视频数据存储等功能。与数 字视频监控系统相关的主要技术有视频数据压缩、视频的分析与理解、视频流的 传输与回放和视频数据的存储。数字视频信号具有频谱效率高、抗干扰能力强、 失真少等模拟信号无法比拟的优点,同时也具有信号处理数据量大、占用频率资 源多的问题,正是这个原因,造成数字视频监控系统虽然具有很多的优点,却迟 迟难以实用化。在d t v 、h d t v 巨大市场的拉动下,与数字电视相关的各种数字 视频技术得到了迅速发展,相应的技术标准、各种算法和专用芯片、处理、记录 和展示图象信号的设备相继制定和开发完成。所有这些都促进了数字视频监控系 统的迅速发展。 后处理莱统 图1 2 数字视频监控系统 目前大部分的数字视频监控系统还是通过图象采集卡将模拟摄像头传输过来 的模拟视频图象转换为数字视频图象信号,因此图象采集卡是数字视频监控系统 中的关键设备,其质量和性能的好坏直接影响整个系统的可靠性和稳定性。还可 以直接采用数字摄像机直接传输数字化后并经过压缩编码的数字视频图象流,通 过网络将视频流传输到计算机中。计算机是数字视频监控系统的核心,配备有大 屏幕显示器、大容量硬盘和光盘刻录机。数字视频监控系统直接输入模拟视频信 电子科技大学硕士学位论文 号,数字化后进行图象压缩,然后进行存贮、传输及相关控制处理。一般单台计 算机数字视频监控系统具有以下性能:视频输入:1 1 6 路v i d e o ;视频制式:p a l , n t s c ;压缩记录标准:m p e g l 、m p e g 2 、m p e g 4 、h 2 6 1 、h 2 6 3 、h 2 6 4 ;图象 分辨率:3 5 2 2 8 8 ,7 2 0 5 7 6 ;每路图象帧数:2 5 帧s ,最大显示和压缩帧数: 4 0 0 帧,s ;预览功能:可实现1 、4 、9 、1 6 路实时预览;字符叠加:可在左上角 或右上角显示用户定义的英文或中文说明;录像功能:可实现最大1 6 路实时录像, 可以同时显示l 、2 2 、3 3 、4 4 路视频图象;图象播放:可以进行任一路图 象的回放,速度可调;占用磁盘空间:视频:每小时6 0 6 0 0 n u 路。 许多数字视频设备中具有图象识别和特征提取的功能,通过图象分析实现远 动探测和报警、控制相关的机构,使电视监控更具智能化。这些将成为今后多媒 体数字视频监控系统的主要形式。( 1 ) 图象探测将成为防入侵报警探测的主要手段, 报警系统误报率高这一问题将会随之解决。( 2 ) 摄像机将不再是电视监控系统唯一 的( 或主要的) 信源。由于图象处理功能和能力的提高将促使新的成像技术的出现和 实用化,如毫米波成像、超声波成像等。f 3 1 数字输出摄像机的出现将产生真正的 数字视频监控系统。以采集信息为目的的电视监控系统实现真正的数字化还有一 个过程,但这是必然的趋势,数字电视监控系统将是完全实时的、载有极丰富信 息、具有多种功能的系统。( 4 ) 电视监控将与网络结合起来,成为一种开放的、可 自由生成的系统。电视数字化解决了数据压缩的问题,使之便于通信,可以利用 各种公共信息网络( 电话网、综合数据网、有线电视网) 来传送,这就使电视监控系 统成为一种可以无所不到的、开放的、可以根据要求自动生成的系统。为其应用 展开了极其广阔的前景。 4 第二章l i n u x 下的p c i 总线驱动 第二章l in u x 下的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 ) 的简称,作为 一种通用的总线接口标准,它采用3 2 位总线宽度,时钟频率为3 3 m h z ,使其理论 上的最大速度达到了1 3 2 m b 。而且,还为进一步把时钟频率提高到6 6 m h z ,总线宽 度提高到6 4 位留下了余地【2 】。与其它的总线标准相比,它在数据传输的速度、设 备互联的性能等方面都有显著的优势,因此,在目前的计算机系统中得到了最为 广泛的应用。 2 1p c i 总线系统的结构 在p c 机中,c p u 与内存控制器、以及内存的连接是原来意义上的“系统总线”。 在通过p c i 总线架构的系统中,p c i 总线系统与这个原来意义的系统总线是完全独 立的,c p u 通过一块称为“宿主一p c i 桥”的设备来完成同p c i 总线系统的连接。 与宿主一p c i 桥直接相连的总线称为系统的“主( p r i m a r y ) p c i 总线”。所有的 外设,包括磁盘、键盘、鼠标、并行口、串行口、网络卡、等等,全都直接或间 接地接在主p c i 总线上。其中有些以接口卡和插槽的形式相连,有的则固定在系 统母板上通过电子线路直接相连。 图2 1p c i 总线系统结构 由于总线负载等原因,在一条p c i 总线上能够容纳的p c i 芯片设备总数是有 限的。p c i 标准定义的负载设备数为3 2 个,也就是说,在一条p c i 总线上最多可 电子科技大学硕士学位论文 以接入3 2 个p c i 设备。对于日益复杂的现代计算机系统而言,3 2 个设备的限制似 乎太少了。为了解决这个矛盾,p c i 总线允许用户通过一个“p c i p c i 桥”芯片, 把另一条p c i 总线连接到主p c i 总线,从而实现了对p c i 总线的扩展。同时,p c i 总线还可以通过一个p c i i s a 桥,把一条i s a 总线连接到p c i 总线上。通过p c i 总线架构的整个p c 系统结构如图2 一l 所示。 在一个p c i 总线系统中,与c p u 相连的“宿主一p c t 桥”通常只有一个,因此, 通常p c i 总线系统中只有一条主p c i 总线。其它的p c i 总线都通过“p c i - - p c i 桥” 直接或间接的连接到这条主p c i 总线上。其它的非p c i 总线,如i s a 总线,则可 以再通过“p c i 一1 s a 桥”连接到任意一条p c i 总线上。这样,通过使用“p c i p c i 桥”,就可以构筑起一个层次、树状的p c i 总线系统结构。对于上层总线而言, 连接在这条总线上的p c i 桥也是一个设备。但是,这是一种特殊的设备,它既是 上层总线上的一个设备,实际上又是上层总线的延伸。这样,如果把c p u 比喻作 一个城市的中心,系统总线就好像是“一环路”,主p c i 总线就好像是“二环路”, 而i s a 总线以及连在主p c i 总线上的其他p c i 总线就是“三环路”了。 图中在系统总线与主p c i 总线上的一个设备之间有条虚线,表示p c i 总路线 上的设备在完成了配置以后就好像直接连接在系统总线上一样,也就是说,c p u 可 以像访问内存空间一样访问设备上的存储空间。对于连接在次层p c i 总线上的设 备也是一样的,但连接在i s a 总线上的设备就不具备这样的效果了。此外,系统 的内存控制器与h o s t p c i 桥通常都集成在同一芯片中,可以把内存也看作是连在 p c i 总线上的一个设备,不过它永远是“从设备” 3 1 。 2 2p c i 设备的配置空间 在计算机系统中,存储器的地址和存储器本身一样,也是一种资源。在同 时间内,一个地址只能惟一地用于一个物理的存储单元,或者就空闲不用。在i n t e l x 8 6 系统结构中,对内存的访问和对输入输出寄存器的访问通过两套不同的指令完 成,所以有存储器和t 0 两个不同的地址空间。一般而言,内存的物理地址以及 i o 寄存器的地址是由硬件决定的。可是,怎样处理外部设备上的存储空间呢? 也 就是说,如何给外部设备分配地址? 在i s a 以及其它早期总线的接口设备上,采 用了一些跳线或小开关。在把接口设备接入总线之前,要先通过这些小开关设置 好设备的地址( 还有中断请求号) 。相应的软件在正常运行之前,也要在一个“安 装”过程中加以设置,使二者相符。可是,这样做不但麻烦,还往往成为系统因 为地址冲突或不符而不能正常运行的原因。再说,随着外部设备的日益复杂,这 第二章l i n u x 下的p c i 总线驱动 样做已经不大现实了。 p c i 总线从一开始设计就考虑到了这个问题,因此,在p c i 总线中,这个问题 得到了很好的解决。p c i 总线采用的办法是由系统软件自动设置总线上各个设备的 地址。其基本思路是,让每个接口设备( 即每个外设) 都能通过某种途径告诉系 统,设备上有几个存储区间或i o 地址区间,每个区间是多大,以及各自在设备 上的本地地址。这些地址在本质上都是局部的、内部的,所以都从0 起算。但是, 这些区间不与总线直接相连,在把没备接入总线并加电之初,从总线上还访问不 到这些区间,所以不会互相冲突。系统软件在知道了一共有多少外部设备、各自 又有什么样的存储区间以后,就统筹地为这些区间分配“物理地址”,并且建立 起这些区间与总线之问的连接,以后就可以通过这些地址来访问设备上的存储区 间或i o 地址区间了。显然,这里所谓“物理地址”与真正的物理地址是有些区 别的,它实际上也是一种逻辑地址,所以常称为“总线地址”,因为这是c p l i 在 总线上所看到的地址。但是,在一般情况下,“总线地址”就相当于物理地址。 可想而知,在设备上一定有着某种地址映射机制,把为外设分配地址与相应的总 线地址之间建立起映射,用这种映射代替以前的跳线或小开关。设备上有几个地 址区间就应该有几个这样的映射。此外,对于中断请求的连接也与此相似。 为了实现上述办法,在p c i 总线上的每个p c i 设备中都有一组专门用于建立 地址区间映射的寄存器,这组寄存器构成了p c i 设备中的“配置空间”。 p c i 标准规定每个设备的配置空间最多可以有2 5 6 连续的字节,其中开头6 4 个字节的用途和格式是标准的,称为配置空间的“头部”( c o n f i g u r a t i o n h e a d e r ) 。这样的“头部”又有两种,其中“0 型”( t y p e o ) 头部用于普通的p c i 设备,“1 型”头部则用于各种p c i 桥。但是,不管是“o 型”还是“l 型”,其 开头1 6 个字节的用途和格式总是共同的。这1 6 个字节中包含着有关头部的类型、 设备的种类、设备的一些性质、由谁来制造等信息。根据开头1 6 字节的信息可以 确定应该怎样进一步解释和处理其余的4 8 个字节。至于头部以外的1 9 2 个字节, 则取决于具体的设备,如果不需要也可以没有 3 】。整个p c i 设备的配置空间如图2 2 所示。 图中的厂商i d ,设各i d ,子系统厂商i d ,子系统设备i d ,和类型寄存器等 的值是生产厂商固化在设备中的,是不能更改的,属于只读寄存器。配置空间的 这些寄存器可以用来使c p u 能够探测到相应设备的存在,并且确定该设备的种类 和一些特性,包括由谁制造等等。这样,用户就不再需要通过种种途径告知系统 都有哪些外设,而改由c p u 通过一个称为“枚举”的过程自动扫描探测所有连接 电子科技大学硕士学位论文 在p c i 总线上的外设。 设备d厂商d 状态寄存器命令寄存器 类型寄存器版本 自测试头类型 延迟 缓存线 基地址0 基地址1 基地址2 基地址3 基地址4 基地址5 c a r d b u sc 1 s 指针 子系统设备i d子系统厂商i d 扩展r o m 基地址 保留 保留 m a xl a tm i ng n t中断引脚 中断线 图2 - 2p c i 设备的配置空间 在每个普通的p c i 设备中,一般都有几个需要映射的地址区间,所以在普通 p c i 设备的配置空间( 即o 型头部) 中定义了6 个“基地址”寄存器,可以分别用 于6 个地址区间的映射。除了这6 个常规的区间外,逻辑设备中有时候还会有一 块r o m ,所以又有一个“扩充r o m 基地址”寄存器。此外,还有用来设置中断请求 线的寄存器以及其他几个寄存器。 在设备的配置寄空间中,6 个“基地址”寄存器的地址都是连续。从“基地 址”寄存器中读得的数值是区间的起始地址与其他起信息的组合,对这个数值 的解释是: 首先,其最低位,即b i t 0 表示区间的类型,为0 表示是个存储区间,为1 则 表示是个i o 地址区间。注意这只是说可以通过什么样的操作( i o 指令或访内指 令) 来访问这个区间,而与其内容是否为寄存器无关,寄存器也可以通过存储单 元的形式来实现。如果是存储区间,那么其高2 8 位就是起始地址的高2 8 位( 起 第二章l i n u x 下的p c i 总线驱动 始地址的最低4 位一定是o ) 。如果是i o 问,那么其高2 9 位就是起始地址的高2 9 位( 起始地址的最低3 位一定是0 ) 。对于存储区间,如果b i t 3 为l ,就表示对这 个区间的操作可以流水化,称为“可预取”,否则就不能流水线化,而只是一个单 元一个单元地读写。还有,b i t 2 为1 表示采用6 4 位地址,为0 表示采用3 2 位地址。 最后,b i t l 为1 表示区间的大小超过l m b ,为0 则表示区间的大小在i m b 以下。 从配置寄存器组的一个长字中读出了区间的起始地址以后,往同一个长字中 写入全l ( 5 5 9 行) ,即0 x f f f f f f f f ,这时候读得的数值便是区间的大小。这个数值的 低4 位或低3 位为控制信息,这一点上与起始地址的格式相似,但是在其高2 8 位 或2 9 位中只有位置最低的那位l 才有效。区间的大小必定是2 的某次幂,所以其 二进制数值中应该只有一位是1 ,而其他各位均为0 。但是,在读得的数值中却通 常有多位是l ,此时只有位置最低的那个1 才有效,所以要通过p c is i z e 函数加以 换算,函数的源代码如下: l a l i cu 3 2p c is i z e ( u 3 2b a s e u n s i g n e dl o n gm a s k ) u 3 2s i z e = m a s k b a s e s i z e s i z e - - ( s i z e i ) : r e t t l i i ls i t e 1 : 这里先用m a s k 把最低的4 位或3 位屏蔽掉,然后再把位置最低的那个1 抽取 出来口l 。 下面对“可预取”的概念作一些说明。如上所述,一个区间之为“存储器区 间”或“i o 区间”取决于该区间的地址是在“存储器地址空间”或“i o 区间”, 实质上取决于c p u 通过哪一类的指令访问这个区间,而与在具体地址上的是存储 单元或寄存器无关。事实上,有些c p u 根本就没有u 0 指令,因而就没有i o 地 址空间,所有的寄存器都在存储器的地址空间中。另方面,x 8 6 的处理器虽然 有i o 地址空间,但是其i o 地址空间比较小( 1 6 位) ,因而比较拥挤。再说通过 i o 指令访问就意味着每一次访问时都得调用一个汇编语言子程序( 因为c 语言中 没有相应的语言成分) ,而不像通过访问内指令时那样可以把寄存器看作一个变 量,因而不那么方便,效率也要低一些。所以,在p c i 设备中一般都倾向于将寄 存器映射到存储器地址空间,而避免使用i o 地址空间。然而,即使都使用存储器 地址空间,寄存器与真正的存储单元还是有着本质的不同,主要在于一个单元读 出时是否可能改变内容。对于普通的存储单元,读操作是不会改变其内容的,所 电子科技大学硕士学位论文 以反复从一个单元读出多次也没有关系,每次读出的内容都一样。而寄存器就不 同了。首先,有些寄存器可能代表着一个f i f o 队列,从中读出时每次读出f i f o 中最前面的内容,因而每次都可能不同。其次,很多状态寄存器中的状态位在读 出时就清成了0 。不过,二者间这种区别对于个别的读操作,即每次只从一个单元 的读出并无影响。但是,对于连续的、成块的读出就有影响了。为了提高成块读 出的效率,p c i 总结于成块的读出加以流水化,在应c p u 的要求读出单元n 后预 先就把n + i 也读入流水线,这样当c p u 真的接着要求读出n + i 时就不用等待了, 这就是所谓的“预取”。显然,预取是建立在对c p u 意图的猜测上的,这种猜测 有可能成真,也有可能失败。如果猜失败了,预取的内容就丢掉了,对于存储单 元这并无害处,下次须要时再读就是了。可是对于寄存器就不同了,下次再读时 很可能内容已经因为预取而变化了。所以,一般而言,映射在存储器地址空间中 的寄存器是不可预取的。 对于p c i 桥的配置空间( 即】型头部) ,它可能没有属于自己的存储器或t o 区间,但是却有三个用于地址过滤的区间。每个地址过滤区间决定了一个地址窗 口,从靠近c p u 一侧发出的地址,如果落在p c i 桥的某个窗口之内,就可以穿过 p c 【桥而到达其所连接的总线上。反过来,从总线一侧由p c i 设备发出的地址,则 要在相应p c i 桥的所有窗口之外才能穿过p c 桥到达靠近c p u 一侧。此外,p c i 桥 的命令寄存器中还有“内存访问使能”和“i o 访问使能”两个控制位,当这两个 控制位全为0 时,这些窗口就都关上了。在未完成对p c 【总线的初始化之前,还 没有为p c i 设备上的各个区间分配合适的总线地址时,关闭这两个控制位,就不 会对c p u 一侧造成干扰。p c i 桥的配置空间,如图2 3 所示。 p c i 桥的配置空间中的每个窗口的大小和位置应该是总线上各个相应区间的 总和,而总线上的各个区间则应该基本上互相连续并且互不重叠。 p c i 桥的第一个窗口是i o 地址窗口。这个窗口的大小为4 k b 的倍数,并与 4 k b 边界对齐。它的起点为i o 基地址寄存器的高4 位后面添上1 2 位0 ,终点为i o 限制寄存器的高4 位后面添上1 2 位l 。如果p c i 设备支持3 2 位i o 地址,则进一 步把 j o 基地址高1 6 位寄存器和i o 限制高1 6 位寄存器作为窗口的起点和终点的 高1 6 位。第二个窗口是存储器窗口。这个窗口的大小为1 m b 的倍数,并与1 m b 边界对齐。内存基地址寄存器的高1 2 位为的窗口3 2 位起点地址的最高1 2 位,同 样,内存限制寄存器的高1 2 位为的窗口3 2 位终点地址的最高1 2 位。第三个窗口 是可预取存储器窗口。同第二个窗口的实现原理,由可预取内存基地址寄存器和 可预取内存限制寄存器确定。 第二章l i n u x 下的p c i 总线驱动 设各i d厂商i d 状态寄存器命令寄存器 类型寄存器版本 自测试头类型 延迟 缓存线 基地址0 基地址1 第二延迟下级总线号第二总线号第一总线号 第二状态i o 限制啪l 基地址 内存限制 内存基地址 可预取内存限制 可预取内存基地址 可预取内存基地址高3 2 位 可预取内存限制高3 2 位 i o 限制高1 6 位 y o 基地址高1 6 位 保留 能力指针 扩展r o m 基地址 控制中断引脚中断线 图2 - 3p c i 桥的配置空间 从上文的阐述可以看到,无论是p c i 设备还是p c i 桥,都必须在把它们配置 空间中的各个地址寄存器正确配置后,整个p c i 系统才会正常工作。这部分工作 是在计算机系统启动时,由带有p c i 功能的b i o s 完成的。b i o s 检测整个p c i 系统 后,统筹地为各个设备的存储区间或i o 区间分配地址,并根据分配的地址设置 p c i 设备和p c i 桥的配置空间中的地址寄存器【4 l 。当系统启动以后,p c i 总线的驱 动程序无需再为各个设备分配地址区间,只需从设备的配置空间中读出各个区间 的地址,直接使用就可以了。 2 3访问配置空间 如前所述,p c i 设备上的寄存器是通过地址映射的方法来实现对它的访问的。 那么配置空间中的寄存器又当如何呢? 很显然,这些寄存器是在地址映射完成之 前就不得不访问的。因此,不能够使用地址映射的方法来访问配置空间中的寄存 器。为此,p c i 总线专门设计了一种被称为“地理寻址”的方法,用来实现对配置 电子科技大学硕士学位论文 空间的访问。 为了实现地理寻址,p c i 总线的设计者在x 8 6 结构的i o 地址空间保留了8 个 字节用于这个目的,那就是o x c f 8 - - o x c f f 。这8 个字节实际上构成两个3 2 位的寄 存器,第一个是“地址寄存器”o x c f 8 ,第二个是“数据寄存器”o x c f c 。要访问 某个设备中的某个配置寄存器时,c p u 先往地址寄存器中写入目标地址,然后通过 数据寄存器读写数据。不过,这时写入地址寄存器中的目标地址是地理地址,而 不是总线地址。这种地理地址是包括总线号、设备号、功能号和配寄存器地址在 内的综合地址,其构成如图2 4 所示。 设备号勃能号寄存器地址8 位 保留7 位总线号8 位 5 位i 位低两位为。 图2 - 4 写入o x c f 8 的综合地址 在p c i 总线系统中,每条p c i 总线都有一个总线号,主总线的总线固定为0 , 其余的则由c p u 在枚举阶段每当探测到一个c p u 桥时便为其指定一个,依次递增。 指定的总线号存放在这个p c i 桥的配置空间中。设备号代表着设备在这条p c i 总 线上的插槽编号,一条p c i 总线上共有3 2 个插槽,插槽编号从0 到3 i 。每个p c i 插槽上的接口卡上可以有不超过8 个的功能模块,这些功能模块共同用同一个p c i 总线接口芯片,包括其中用于地址映射的电子线路,以降低成本。从逻辑的角度说, 每个功能模块实际上就是一个p c i 设备,所以设备号与功能号合在一起又可以称 作“逻辑”设备号。显然,这些字段结合在一起就惟一地确定了系统中的一个p c i 逻辑设备。读者也许会问:一开始的时候,在尚未为各条总线指定总线号之前, 又怎样来访问特定的总线呢? 事实上,一开始的时候只有0 号总线是可访问的, 在扫描o 号总线时如果发现上面某一个设备是p c i 桥,就为之指定一个新的总线 号,例如1 ,这样1 号总线就可以访问了,这就是枚举阶段的任务之一。 用上述的地理寻址方式访问p c i 设备,不仅使用不方便,而且效率极低。因 此,只把它用于对配置空间的访问,而不用于访问p c i 设备上的其它寄存器。 在l i n u x 系统中,为了方便用户对配置空间的访问,在上述地理寻址的机制 之上,设计了几个专门的配置空间访问函数,它们是: n tp dr e a d c o n f i gb y t e ( s t m e tp c i _ d e v8 d e v i n tw h e r e :u 8 + p t r ) : n ip c i r e a d c o n k gw o r d ( s t r u c tp c i d e v4 d e x qi mw h e r e ,u 1 6 + p t r ) 第二章l i n u x 下的p c i 总线驱动 1 c 1 1c a dc p n t i gd w o r d ( s t m c lp c id e v ”d e 、i n t 、h e l c u 3 28 【r p c i 、r i l ec o n f i gh v t e ( 缸r u c tp c id e v * d e v , i n tu h e r e u 8v a l ) p c i r r i t c o n f i g h 。o r d ( s , a x i c tp c i d e v 。d e i ml ? h c r c ? u l6v a l i p i iu i ir eo 1 1 1 f i gd w 1 m ( n i l u c lp c id e v * d e x i 1 1 1w h e r eu 3 2 、a l 参数d e v 标识一个p c i 设备,参数w h e r e 寄存器在配置空间内部的偏移地址, 参数p t r 用于存放从配置空间读出的数据,参数v a l 是要写入配置空问的数据。 通过这几个函数,可以对配置空间中的指定位置,进行8 位、1 6 位或3 2 位的数据 传输访问。 2 4p c i 总线的枚举 如前所述,计算机系统在启动时,主板上的b i o s 会全面检测p cr 总线系统上 的所有设备,并统筹地为各个设备分配地址区间,然后把相应的地址写入p c i 设 备或p c i 桥配置空间中的地址寄存器内。系统进入l i n u x 后b i o s 检测到的与p c i 总线系统相关的各种信息并不能为l i n u x 所知道。l i n u x 要管理和访问p cl 总线上 的设备,就必须在l i n u x 的启动过程中对p e t 总线系统进行一次枚举,为p c i 总 线系统上的各个设备建立起相应的数据结构,使l i n u x 可以感知到整个p c i 总线 系统的存在。 在对p c i 总线的枚举过程中,有两个数据结构是至关重要的,即p e i d e v 结 构和p c i b u s 结构。p c i d e 、,结构用于描述p c i 总线上的p c i 设备,每个p c i 设备 都与一个p s i d e v 结构相对应,l i n u x 系统就是通过这个设备对应的p c i - d e v 结构 来感知这个设备存在的。p c i b u s 结构用于描述一条p c i 总线,每条p c i 总线都有 一个p c i b u s 结构与之相对应,l i n u x 系统通过p c i b u s 结构来感知一条p c i 总线 的存在。 p c i d e v 结构的具体定义如下: 、t r l l c tp c i d e x 7 s r u c tl i s t h e a dg m b a i l i s t :7 + n o d ei nl i s lo ta l lp c id e v i c e s + ? s t r u c il i s th e a db u sl i s t :+ 4n o d ei np e r - b u sl i s t 4 s l r u c lp c ib u s4 b u s : 8 b u s 蕊sd e v i c ei s0 1 1 蜘 s t r u c tp c i _ b u s + s u b o r d i n a t e ;4b u st h i sd e v i c eb r i d g e st 【) + 、7 0 i d 4 s y s d a t a ;j + h o o kf o r 、) s s p c c i t i ce x t e n s i o n4 s t r u c lp r o cd i rc t t l r y + p r o t e i n ; ? 4d e x ? i c ee n t l ti n p r o cn i s p c i 。 u n s i g n e di n ld e 、l h ; j 8e n c o d e dd e x 7 i c e f u n c t i o ni n d e x8 7 u n s i g n e ds h o r t 、7 e n d o r : m m i e n e ds h o r td e xi c e ; 电子科技大学硕士学位论文 u n s i g n e d 、h o r ls t l l l s y s i e n l v e l l d o l 。 u n s i g n e ds h o r t s u b s 、s l e n l t l n i e c ; u s i g n c d 阳c l a s s : 4 3b

温馨提示

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

评论

0/150

提交评论