1394技术及其在图像传输系统中的应用

2007-03-09 19:03:27来源: 互联网
摘要:为了最大限度地利用现有硬件资源,缩短开发周期,研制了1394-PCI的转接卡,实现了基于1394的高速图像传输系统。介绍了1394高速串行总线的特性及原理及1394-PCI转接卡的硬件、软件设计。 关键词:1394高速串行总线 1394-PCI转接卡 设备驱动程序 当今的计算机外围设备都在追求高速性和高通用性,尤其在进行图像数据处理和传输时,数据的大指、高速、实时性对计算机与外设的接口提出了更高的要求。 目前新型总线接口有两种:USB和1394接口。它们都支持即插即用,具有易扩展、使用方便、成本低等特点。但在任何USB系统中,只能有一个主机,最多可接127个外设,在全速模式下的传输纺为500kbps~10Mbps。而相比之下1394显得更胜一筹。它支持点到点的传输,消除了主机处理器/内存瓶颈,具有可升级性,支持400Mbps、200Mbps和100Mbps传输率,单一总线支持63个节点,由于1394总线的高速性和独立于主机的操作能力,使它成为高多媒体设备接口的首选。 1 1394技术 IEEE 1394起源于苹果公司,又名FireWire,是为家用电器研制的一种高速串行总线标准,其目的是为了解决对速度要求很高的宽带设备的传输问题。 1995年12月,IEEE 1394-1994高速总线标准正式被IEEE标准委员会批准。 1.1 1394的主要特点 a.支持点对点传输。串行总线设备能自主执行事务,而不需要主机CPU的干预。 b.可扩展总线。可以将新的串行设备连接入总线节点提供的端口从而扩展串行总线。 d.热插拔。不需要系统断电就可以动态地加入或删除设备。 e.即插即用。每次加入或删除设备时,总线节点会自动配置,并且配置时不需要主机系统的干预。 f.巨大的映射至内存的地址空间。每个节点拥有256T字节的地址空间,每条总线上有16P字节地址空间。 1.2 1394原理 1394原理主要定义了以下几点: a.1394总线的拓扑结构。1394串行总线的拓扑结构可以分为两种环境:底板环境和电缆环境。不同环境间总线的连接需要总线桥。电缆环境下的物理拓扑结构是无环网络结构,由电缆连接各节点间的端口,呈分支扩展,形成树状或菊花状的网络拓扑。底板环境中物理拓扑是多点接入(multidrop)的总线,总线上分布着多个连接器,允许节点直接插入,通过仲裁使各节点享用总线。 b.1394的物理接口。1394设备通过标准的六芯线缆来传输信号,如图1所示。其TPA/TPA*和TPB/TPB*为一对差分模式的信号线。VP、VG提供8~40V的电源,可以通过它们给其它的节点供电。 c.1394总线协议。在1394传输中,支持等时传输和异步传输事务,并将每次传输分解为一系列的小事和,有效地利用总线带宽。异步事务需要数据确认,总线协议要复杂些,它包括三种基本事务类型:读取、写入和锁定。每个事务由请求子事务和响应子事务组成。 由于等时应用程序的性质,相关的总线事务十分简单,等时事务每隔125μs向目标节点发送数据并且需要任何回热。1394总线一共定义了12种事务类型的包格式,采用循环冗余校验(CRC)进行数据差错控制,有相应硬件和软件处理各类传输事务。 d.1394电源管理。电源管理涉及到单独节点或节点中元件的电源状态控制。1394定义了4种电源状态以及相应的CSR寄存器和ROM配置项,支持挂起/恢复机制,使节点在软件控制下处于低功耗。 2 系统硬件设计 2.1 图像传输系统总体设计 系统采用冗余备份的双路1394高速总线将数据传送给大容量存储器、数据加密器和信道编码器,如图2所示。 由于本地系统中普通采用PCI接口,为了最大限度地利用现有硬件资源,缩短开发周期,研制了1394-PCI的转接卡,来实现基于1394高速图像传输系统。该转接卡主要通过物理层和链路层控制芯片组实现,其中链路层控制芯片采用TI公司的TSB12LV23,支持开放主机控制器接口(OHCI)的PCI接口芯片。 2.2 TSB12LV23/TSBAB03芯片组 TSB12LV23提供主机接口和物理层接口,实现CRC校验以及同步服务。在芯片中集成了中断寄存器、传送/接收FIFO和DMA通道。TSBAB03芯片完成1394总线协议中的物理层功能,实现仲载机制,对收发信号进行编码/解码。 链路层和物理层芯片的连接电路图如图3所示。 3 系统软件设计 系统软件包括1394设备驱动程序、动态链路库和应用程序。 3.1 1394设备驱动程序开发 Windosw驱动模型(WDM)定义了驱动程序分层,以适应即插即用系统。1394系统驱动程序采用分层结构模型,其设备栈如图4所法。设备驱动位设备栈顶,通过发IRP给IEEE 1394总线驱动来与设备通信。IEEE 1394总线驱动为1394总线提供了独立于硬件的接口,并将一部分IRP传向端口驱动程序。 在分层模型中,1394总线驱动负责管理1394设备驱动程序与1394控制器之间的通信;加载及卸载设备驱动程序。设备驱动程序在功能层工作,它们不需要任何低层硬件资源,只需对总线驱动程序发请求,由总线驱动程序访问硬件来完成这些请求。 用DDK设计的1394设备驱动由4个模块组成:初始化模块、即插即用模块、电源管理模块以及I/O模块。 初始化模块提供设备驱动的入口点,从而将不同的IRP请求发向相应的执行模块。 即插即用模块用于实现1394设备的热插拔和动态配置。当总线驱动程序在加电或者添加/删除时检测到新设备,从设备中取出一个或多个标识符,用于检查所有可用的安装文件,发现合适的设备驱动程序。驱动程序被装入,调用AddDevice入口点,告诉它发现一个新设备,并创建功能设备对象(FDO)。总线驱动程序或者安装文件详细描述设备所需的硬件资源,使用仲裁器为每个设备分配资源。 电源管理模块负责设备的挂起和恢复。 I/O模块完成I/O请求的大部分工作。该模块定义了所需的I/O控制代码,从而为应用程序提供了调用系统驱程序的接口。 3.2 动态链接库的设计 由于Windows具有与设备无关的特性,不提倡与机器底层的东西打交道。如果直接用Windows的API函数或I/O读写指令进行访问和操作,程序运行时往往就会产生保护模式错误甚至死机,更严重的情况会导致系统崩溃。用DLL技术可以方便地解决上述问题。 而且DLL没有自己的堆栈,与调用它的应用程序采用有相同的堆栈式,减少了编程设计上的不便;一个DLL在内存中只有一个实例,使之能高效经济地使用内存;DLL的代码封装怀使得程序简洁明晰。 在1394 API动态链接库中封装了所有的1394请求命令,如异步读/写、等时读/写等,从而可以很方便地在应用级实现1394传输。通过调用DeviceIoControl向设备发请求,由I/O管理器构造一个1394请求块传给总线驱动程序;由总线驱动程序完成该请求或者请求进一步传给端口驱动程序,然后返回执行状态。 3.3 应用程序设计 在高速图像传输系统中,应用程序是控制数据流的中心。采用VC++ 6.0和2000DDK实现,主要功能有:获取视频数据源、检测1394设备、总线管理、分配1394地址空间、设备等时资源和通道、完成1394传输。一次等时传输流程如图5所示。 4 应用前景 如前所述,由于1394的高速、灵活和可扩展性,使其在很多方面都大有用武之地,其中包括大容量存储器、视频会议、家庭网络、高速打印机、娱乐设备等。而且由于数字广播、因特网、家庭数字网络和高带宽的视频/音频传输需求,使得IEEE 1394迅速发展。
编辑: 引用地址:http://www.eeworld.com.cn/designarticles/network/200703/12144.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部

小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

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