1394技术及其在图像传输系统中的应用
摘要:为了最大限度地利用现有硬件资源,缩短开发周期,研制了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,是为家用电器研制的一种高速串行总线标准,其目的是为了解决对速度要求很高的宽带设备的传输问题。javascript:window.open(this.src);" style="cursor:pointer;"/>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传输中,支持等时传输和异步传输事务,并将每次传输分解为一系列的小事和,有效地利用总线带宽。异步事务需要数据确认,总线协议要复杂些,它包括三种基本事务类型:读取、写入和锁定。每个事务由请求子事务和响应子事务组成。javascript:window.open(this.src);" style="cursor:pointer;"/>由于等时应用程序的性质,相关的总线事务十分简单,等时事务每隔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所示。javascript:window.open(this.src);" style="cursor:pointer;"/>
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请求发向相应的执行模块。
即插即用模块用于实现1