摘要:为了最大限度地利用现有硬件资源,缩短开发周期,研制了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迅速发展。
引用地址:1394技术及其在图像传输系统中的应用
上一篇:多队列FIFO——支持网络QoS的重要芯片
下一篇:解调器MSM6882及其在无线数据通信中的应用
- 热门资源推荐
- 热门放大器推荐
小广播
热门活动
换一批
更多
最新网络通信文章
- 带硬件同步功能的以太网 PHY 扩大了汽车雷达的覆盖范围
- 芯原推出新一代高性能Vitality架构GPU IP系列 支持DirectX 12和先进的计算能力
- 应对 AI 时代的云工作负载,开发者正加速向 Arm 架构迁移
- NVIDIA 推出高性价比的生成式 AI 超级计算机
- Gartner发布2025年影响基础设施和运营的重要趋势
- 智谱清言英特尔酷睿Ultra专享版发布,离线模型玩转AIPC
- Quobly与意法半导体建立战略合作, 加快量子处理器制造进程,实现大型量子计算解决方
- RTI Connext Drive参展CES 2025,以领先通信框架加速SDV开发
- 黑莓 1.6 亿美元甩卖网络安全业务 Cylance,远低于其 14 亿美元的收购价
更多热门文章
更多每日新闻
更多往期活动
- 直播已结束|TI 嵌入式直播周带您直击工业应用
- 【在线研讨会】ADI RadioVerse™技术与集成DPD算法的RF收发器AD9375
- TI 图形化界面助力快速开发,这就是您想要的MSP430™通用MCU!
- 看视频瓜分红包:面向高效高密度开关电源的先进功率 MOSFET 技术及应用
- PI有奖问答之聚焦PI InnoSwitch-CH
- 了解 MPS 隔离解决方案,答题赢【华为蓝牙无线耳机、小米氮化镓充电器】!
- 《带您了解ADI数字健康生物传感器系列》有奖直播
- 有奖直播 | 同质化严重,缺乏创新,ST60毫米波非接触连接器,赋予你独特的产品设计,重拾市场话语权
- 有奖直播报名|ST 家用电器三相电机控制解决方案
厂商技术中心