(电路与系统专业论文)基于ieee1394a与ieee1394b串行总线的双向数据传输系统.pdf_第1页
(电路与系统专业论文)基于ieee1394a与ieee1394b串行总线的双向数据传输系统.pdf_第2页
(电路与系统专业论文)基于ieee1394a与ieee1394b串行总线的双向数据传输系统.pdf_第3页
(电路与系统专业论文)基于ieee1394a与ieee1394b串行总线的双向数据传输系统.pdf_第4页
(电路与系统专业论文)基于ieee1394a与ieee1394b串行总线的双向数据传输系统.pdf_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

摘要 ieee-1394 作为一种高速串行总线,支持异步传输与等时传输方式,具有速 度快、配置灵活、即插即用、价格便宜等优点,在计算机、电子消费、航空航天 领域具有广泛的应用。 本文利用 ieee-1394a 串行总线,设计了用 dsp 和 fpga 实现的双向数据传 输系统,其中设备作为 1394 网络中一个节点,与主机通过 1394 总线相连,实现 外部视频数据或串行数据与主机间进行数据的双向传输。重点研究了主机操作系 统为 windows xp 的情况下设备自举的实现、等时数据双向传输的实现、脱离主 机情况下节点之间数据传输的实现。利用 ieee-1394b 串行总线,设计了用 fpga 实现的双向数据传输系统,着重给出了方案设计,简单介绍了系统硬件设计与软 件设计。 目前, 基于 ieee-1394a 的双向数据传输系统运行良好, 实现了各种传输方式, 通过了调试和连接, 已进入使用阶段。 基于 ieee-1394b 的双向数据传输系统已完 成制版,目前正在进行调试阶段。 关键词:ieee-1394 异步传输 等时传输 dsp fpga abstract as a high-speed serial bus, ieee-1394 supports asynchronous transmission and isochronous transmission. ieee-1394 has the advantages of high speed, flexible configuration, plug-and-play, lower price and so on, so it has been widely used in the fields of computer, electronic consumption and aerospace. based on ieee-1394a serial bus, we design a bi-directional data transfer system, which is realized by dsp and fpga. as a node in 1394 net system, the system we design connects with the host pc using 1394 cable, and is used to achieve the bi-directional data transfer between the external video or serial port data and the pc. the emphasis is put on the achievement of device bootstrap under the windows xp circumstance, the implementation of bi-directional isochronous transfer and the data transfer between 1394 nodes. based on ieee-1394b serial bus, the design scheme of bi-directional data transfer system implemented by fpga is given. then the hardware and software design is described briefly. at present, the 1394a transfer system works very well. all of the functional requirements have been achieved. the 1394b transfer system has undergone the stage of the overall design, skeleton drawing and pcb design. now, it is under the debugging section. keyword: ieee-1394 asynchronous transmission isochronous transmission dsp fpga 西安电子科技大学 学位论文独创性(创新性)声明 秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在 导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标 注和致谢中所罗列的内容以外,论文中不包括其他人已经发表或撰写过的研究成 果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的 材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说 明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切的法律责任。 本人签名: 日期: 西安电子科技大学 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保 留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内 容,可以采用影印、缩印或其他复制手段保存论文。同时本人保证,毕业后结合 学位论文研究课题再撰写的文章一律署名单位为西安电子科技大学。 本人签名: 日期: 导师签名: 日期: 第一章 绪论 1 第一章 绪论 随着计算机技术的飞速发展,对于高速度、高性能、易于使用的数据输入输 出标准的需求越来越迫切。 目前在 pc 机中流行的接口总线标准主要有 ide、 scsi、 usb、pci 和 ieee-1394 等。1394 串行总线具有高速性、支持独立于主机的点到 点传输、可升级等特征,在工控领域、大容量数据传输领域、局域网中都有广泛 应用。 1.1 ieee-1394 标准的发展历程与简介 ieee-1394 最先是由 apple 公司提出的,并将其命名为 fire wire(火线)技 术。1995 年 ieee 发布了 ieee-1394 规范,命名为 ieee-1394-19951。本规范通常 被称为“微型计算机总线的信息技术微处理系统控制及状态寄存器(csr)体 系结构” ,它定义了一组能被多种总线实现的核心特征集。但是在 ieee-1394-1995 中存在一些模糊的定义,所以在 2000 年,又有一份补充文件解决了一些兼容性的 问题,更正错误并添加了一些新的功能,经改进的规范被称为 1394a2。在 2002 年,业界又开发成功支持更高速度的 1394 串行总线,称为 1394b3,向后兼容 1394-1995 和 1394a。在 2006 年,又出台了 1394c4规范。美国在 2004 年发行了针 对军事和航空航天领域的 ieee-1394b 标准 as56435,并在 2006 年进行了修订。 ieee-1394 的主要技术特点是6: (1)数字型接口:不必将数字信号转换成模拟信号,造成无谓的负担。 (2)小巧的物理设计:纤细的串行电缆可取代体积较大、成本较高的接口。 (3)易于使用:不必配置终端电阻、设备 id 或者进行复杂的安装过程,初学者 及使用者可以方便使用。 (4)热插拔:在不用关机的情况下,用户可以对 ieee-1394 网络添加或移除设备, 不会影响其它节点的通信。 (5)价格低廉:降低了消费类产品的成本。 (6)易于扩展:支持 100mb/s、200mb/s 和 400mb/s 的总线传输速度。 (7)支持点到点传输:串行总线设备能自主执行操作,不需要主机的干预,节点 间可以进行 1394 传输。 (8)即插即用:每次加入或删除 1394 节点时,总线节点会根据检测端口电压的 方式,判断是否有节点的加入或删除,并自动进行节点配置,不需要主机系统的 干预。 (9)巨大的映射至内存的地址空间:每个节点拥有 256tb 字节的地址空间。 2 基于 ieee-1394a 与 ieee-1394b 串行总线的双向数据传输系统 ieee-1394b 支持的传输速度更高,距离更远,支持铜线、玻璃光纤、塑料光 纤的使用,具有更高效的仲裁设计。在 1394a 的体系下,仲裁在每次事务后被执 行,所以设备在取得仲裁权并允许传送数据之前会有一个延迟。在 1394b 下,当 数据包被发送时,就开始了对下次事务的仲裁,用这种方式,当前的传输一结束, 被仲裁选择的设备就准备发送数据。另外,1394b 采用了先进的 8b/10b 数据译码 方式,比原来的 1394a 采用的数据译码(d/s)减少了信号失真。1394b 支持两种 数据传送模式:一种是纯 beta 模式,支持更高的传输速度;一种是向后兼容 1394-1995 与 1394a 的模式。另外,1394b 支持九针连接器。 sae as5643a-20065主要是对 ieee-1394 标准的扩展/限制。它比 ieee-1394 增加的是:使用异步流数据包;固定帧速率,与异步数据包开始同步;垂直奇偶 校验;对信道号码的静态分配;对带宽的预分配;匿名用户通信。另外,sae as5643a-2006 介绍了 3 种网络拓扑结构。 1394c 标准是对在此之前的 1394 标准(ieee std 1394-1995, ieee std 1394a-2000, ieee std 1394b-2002)的修订与扩展,主要详细规范了可以提供更高 的在 5 类线或更好电缆上传输的数据速率的物理层。物理层可以通过与对等的设 备协调,来选择合适的高一级协议层。技术上的进步使得非屏蔽双绞线上可以传 输吉比特信号,允许在 5 类非屏蔽双绞线上传输超过 800mb/s 的视频与音频数据。 1.2 ieee-1394 与其它总线的比较 目前已经有很多种总线,如 1553b 总线、pci 总线、usb 总线等,它们的主 要技术特点如下: 1553b 总线是美国军方专为飞机上设备制定的一种信息传输总线标准, 它的工 作频率是 1mb/s, 采用半双工工作方式。 1553b 总线是一种集中式的时分串行总线, 其主要特点是分布处理、集中控制和实时响应。采用双冗余系统,有两个传输通 道,保证了良好的容错性和故障隔离。 pci 总线是一种并行总线,它的的地址总线与数据总线是分时复用的,可以节 省插件的管脚数,便于实现突发数据传输。pci 总线的传输是很高效的,峰值速率 为 132mb/s。目前流行的 33mhz,32bit 北桥芯片一般可以做到 100mb/s 的连续 传输。 usb 总线和 ieee-1394 总线一样为串行总线,都可以即插即用与热插拔,都 提供统一的通用接口,都可提供总线供电方式,都采用串接方式,可以连接多个 设备。相比较而言,usb 面向中低速外设,在外部设备增减时要以 hub 来判明, 不像 1394 那样可以自动识别与配置。 之所以选择 1394 总线,有以下几个原因: 第一章 绪论 3 (1) 1394 总线作为统一的接口标准, 有利于系统各模块之间协同工作, 互相通信, 有助于提高系统的总体性能。 (2)冗余的数据通路增加了错误率,系统可以使用串行总线来隔离并分析错误。 (3)很多系统并不需要并行总线提供那么高的带宽,从而可以使用串行总线来降 低成本。 (4)考虑到 1394 总线的一些优点:支持高速传输、使用方便、可升级、可以独 立于主机,支持点到点的连接。 正是基于 1394 总线的这些特点,1394 在视频传输、计算机外设、网络互联及 电子产品家庭化等方面,都有广阔的应用前景。 1.3 课题的研究内容 本课题分为两部分, 一部分是利用 ieee-1394a 总线的稳定性和高速传输特性设 计了一种以 dsp 和 fpga 为主的 1394a 双向数据传输系统, 实现外部数据与主机间 数据的双向传输,作者在这一部分的设计开发过程中主要做了以下几方面的工作: (1)根据系统的具体要求,由技术实现的可行性、有效性以及可靠性的角度出发, 参与整个系统的方案设计,整体架构设计,芯片选型,原理图设计。 (2)深入了解 ieee 1394 总线协议,理解 1394 体系结构、通信模型、仲裁方式以 及本系统中所要使用到 tsb41ab3 物理层芯片和 tsb12lv32 链路层芯片,为开发 并实现基于 ieee 1394 总线的双向数据传输系统做准备。 (3)熟悉和掌握了 dsp 开发工具 ccs 3.3 集成开发环境,编译、调试并最终实现 了传输系统的 dsp 程序的开发。 (4)熟悉和掌握了 tmsc6415 型号的 dsp 的功能以及具体的开发研究。 (5)熟悉了系统整体调试。重点研究了中断、节点间数据传输、主机端向设备注入 等时数据、在 windows xp 下设备自举的实现等。 另一部分是基于 ieee-1394b 总线,设计开发数据传输系统,主要负责: (1)进行方案设计与评估,芯片选型,1394b 套片原理图设计。 (2)嵌入式驱动程序与应用程序的设计。 1.4 论文的组织结构 作者是在设计并完成了整个系统的基础上撰写本论文,论文共分以下几个部 分: 第一章:绪论,简要概述了 ieee-1394 标准的发展历程、特点以及与其它总 线的区别,叙述了本课题的任务。 第二章:详细介绍了 1394 的体系结构、接口标准规范、总线协议规范。 4 基于 ieee-1394a 与 ieee-1394b 串行总线的双向数据传输系统 第三章:详细介绍了基于 dsp 与 fpga 的 1394a 双向数据传输系统,介绍了 dsp 的主要工作流程、 设备在 windows xp 下自举的实现、 主机端向设备端注入等 时数据的实现、节点之间数据传输的具体实现。 第四章: 介绍了基于 ieee-1394b 的数据传输系统, 介绍了系统方案设计、 1394b 套片的设计、nios ii 系统应用程序的设计。 第五章:总结与展望,总结了系统设计中的一些经验,并展望了 1394 的发展 趋势。 第二章 ieee-1394 协议概述 5 第二章 ieee-1394 协议概述 2.1 ieee-1394 的体系结构 1、ieee-1394 拓扑结构 ieee-1394 总线的拓扑结构可分为两种环境:线缆环境和底板环境。线缆环 境下的物理拓扑结构是无环网络结构, 由电缆连接各个节点的端口且呈分支扩展, 形成树状或者菊花状的网络拓扑。 每个端口由收发器和一些简单的逻辑单元组成, 线缆和端口的作用就是总线中继器,在节点间形成一条逻辑总线。底板环境中物 理拓扑是一种多点接入的总线, 总线上分布着多个连接器, 允许各节点直接接入, 通过总线仲裁使各节点享用总线。 1394 串行总线可以和一组标准并行总线并存于 设备的底板上。总线通过 ieee-1394 总线标准中为串行通信保留的两根信号线, 可以从底板环境扩展到线缆环境。本课题中我们使用线缆环境拓扑结构。 使用 ieee-1394 总线组成的拓扑网络最多可以连接 63 个设备, 各节点之间距 离通常允许为 4.5m,若加入光电信号变换器,采用塑料光缆连接距离可达到 50100m。ieee-1394 网络拓扑结构可以是除了环形以外的树形、星形、菊花链 或者是混合形式,所构成的网络是对等网络,即网络节点不分主从。ieee-1394 网络节点可能有一个或更多的端口,只有一个端口的节点是串行总线某分支的结 束点, 而有两个或更多端口的节点允许总线延续下去。 总线电缆连接是点到点的, 当一个多端口节点接收数据包时,数据包会被检测、接收,并且按中继器本地时 钟重新进行等时化,然后经过其它节点端口再次传输。ieee-1394 通过附加端口 扩展总线的示意图为图 2.1。 节点a 1 节点b 12 节点c 1234 节点d 12 节点e 1 节点f 12 图 2.1 ieee-1394 通过附加端口扩展总线 2、csr 体系结构 csr(控制和状态寄存器)体系结构即为 iso/iec13213 规范,该规范是能被 多种总线(包括 ieee-1394 总线)实现的一种通用核心特征集。该规范的主要目 的在于: 6 基于 ieee-1394a 与 ieee-1394b 串行总线的双向数据传输系统 (1)减少用来支持特定总线标准的自定义软件数量。 (2)简化并提高以不同底板为基础的总线节点间的互操作性。 (3)支持不同总线类型之间的桥连接。 (4)提高多总线实现时的软件透明性。 csr 体系结构定义了以下特征: (1)节点体系结构。ieee-1394 串行总线的体系结构是按照节点来定义的,一个 节点就是一个寻址实体。 (2)地址空间。csr 体系结构定义了 32 位和 64 位的寻址模式,ieee-1394 只支 持 64 位固定寻址模式。其中高 16 位为节点标识,节点标识又可分为两个部分: 总线标识(bus_id)占 10 位,物理标识(physical_id)占 6 位。余下的 48 位作 为节点内部寻址。 (3)通用操作类型。ieee-1394 串行总线支持异步传输和等时传输协议。异步传 输保证数据传输的可靠性,串行总线可以验证数据是否准确传送,也可确认是否 准确收到传输。每个异步传输过程都由请求操作和响应操作组成。等时传输是并 不要求确认的数据传输,适用于大批量数据的快速传输。 (4)控制和状态寄存器。ieee-1394 节点必须实现由 csr 体系结构定义的一组 核心控制和状态寄存器,除了核心寄存器,csr 体系结构规定了由 ieee-1394 协 议定义的寄存器总线确定的空间。 (5)配置 rom 格式和内容。csr 体系结构定义了在节点初始化期间进行配置 rom 的格式和内容。 (6)向所有节点和节点内元件广播消息的机制。 (7)向所有节点广播中断。 2.2 ieee-1394 接口标准规范 2.2.1 ieee-1394 电缆及连接器 1、ieee-1394 电缆 典型的电缆包括两对双绞线和一对电源线。两对双绞线中传输的是平衡差分 信号,电源线通过总线为设备供电,额定直流电压为 840v。1394 电缆主要有 六芯电缆与四芯电缆两大类, 四芯电缆不包含电源线, 其它电气特征都是一致的。 1394 线缆的主要电气特性如下7: (1)建议电缆长度小于 4.5m,过长的电缆会导致信号的延迟过大。 (2)110 欧姆特征电阻(差模状态) 。 (3)33 欧姆特征电阻(共模状态) 。 在六芯电缆中,四芯为两个双绞线对,两芯负责电源供电。供电线的电压维 第二章 ieee-1394 协议概述 7 持在直流 840v 之间,电流最高可达 1.5a。这样设计的好处是:当设备掉电或 出现故障时,可以维持设备物理层的连续性,可以给连接到总线上的设备供电。 这样用户安装起来很方便,不需要额外的线缆与插座接头,而且真正的电流接触 都是在电缆内部,安全性比较强。所以,六芯电缆的实际应用比较广泛。 2、连接器 1394 连接器用来同 1394 电缆相连接,以达到同 1394 设备连接的目的。连接 器分为插头与插座两个部分。目前 1394a 协议定义了六针插头与插座,1394b 协 议定义了九针插头与插座。 六针连接器的连接信号分配如表 2.1 所示。 表 2.1 六针连接器信号线分配及描述 信号名称(插头管脚编号) 描述 vp (1) 线缆电源(840v) vg (2) 线缆地线 tpb-(3) 双绞线对b:接收选通信号, 发送数据信号 tpb(4) tpa-(5) 双绞线对a:接收数据信号, 发送选通信号 tpa (6) 九针连接器的连接信号分配如表 2.2 所示。 表 2.2 九针连接器信号线分配及描述 信号名称(插头管脚编号) 描述 vp(1) 线缆电源(840v) vg(2) 线缆地线 tpb-(3) 双绞线对b:接收选通信号, 发送数据信号 tpb(4) tpa-(5) 双绞线对a:接收数据信号, 发送选通信号 tpa(6) tpb(r)(7) 双绞线 b(参考地) tpa(r)(8) 双绞线 a(参考地) sc(9) 状态触头(留作将来使用) 2.2.2 ieee-1394总线的电气接口 ieee-1394 总线包含两对双绞线:tpa 和 tpb。这两对双绞线可同时提供差 模和共模信号,完成设备连接和断开的检测、挂起/恢复信号、复位、总线仲裁、 数据包的传输、总线配置、速度信号的检测等事务。双绞线信号在电缆中的传输 过程发生交叉时,总线节点的 tpa 和 tpb 可以分别与另一个节点的 tpb 和 tpa 8 基于 ieee-1394a 与 ieee-1394b 串行总线的双向数据传输系统 连接。 1、共模信号和差模信号的功能 ieee-1394 串行总线在通信中的表现形态主要有共模信号和差模信号。共模 信号利用直流信号来实现所需功能, 信号对地的特性阻抗一般为 33 欧姆左右, 共 模值为 tpa 和 tpb 上的平均电压。利用共模信号,可以实现设备连接和断开的 检测、 速度信号的检测、 挂起/恢复信号。 差模信号以 100mhz、 200mhz、 400mhz 的频率产生。差模信号的目的是消除产生于电缆线中的信号反射,是通过截断差 分双绞线,使其反射率为 0 来实现的。差分信号线的特性阻抗为 110 欧姆。差模 信号主要实现复位、总线仲裁、总线配置、数据包的传输。1394 总线使用差模信 号主要是用于去除噪声和使用三种信号状态(差模 1 状态、差模 0 状态、高阻状 态)来定义多种总线状态。差模输出电压在 tpa/tpb 和 tpa-/tpb-之间测量。当 tpa/tpb 电压分别比 tpa-/tpb-高时,差分发生逻辑 1 信号;当 tpa/tpb 电压分 别比 tpa-/tpb-低时,差分发生逻辑 0 信号;当连接到信号对的选通和数据发生 器失效时,总线处于高阻状态。差模信号输出的最大值为 265mv,最小值为 172mv。 差模接收器的灵敏度以接收器端口能检测到的最低信号幅度为确认依据, 差模接收信号幅度如表 2.3 所示。 表 2.3 差模接收信号幅度 信号状态 100mb/s(mv) 200mb/s(mv) 400mb/s(mv) 最小值 最大值 最小值 最大值 最小值 最大值 仲裁期间 173 260 171 262 168 265 数据接收期间 142 260 132 260 118 160 2、设备连接和移除的检测 在 1394 网络中,每一个节点都可以提供一个驱动 tpbias 的偏移电压(范围 为 1.665v2.015v) ,这个电压从节点的 tpa 发出,在电缆另一端由另一个节点 tpb 接收。由于信号在电缆上传输时会出现损耗,所以接收器接收的电压范围为 1.165v2.015v。 tpb 端的偏置电压比较器将从电缆上检测到的电压与一个 0.8v 的基准电压 进行比较。一旦一个节点的 tpa 与该节点的 tpb 连接上,偏移电压将使电缆电 压升高并大于 0.8v,这时 bias_detect 将输出“1”,从而表明已有另外的节点连接 上本节点。 当一个已连接上的节点从总线上移除时, 偏移电压被去除, bias_detect 将输出“0”,表明节点已移除。表 2.4 给出了根据共模输入电压来判断端口连接状 态的判断条件。 在 1394a 协议中, 除了设备的连接和移除外, 又定义了端口的两种新的状态: 第二章 ieee-1394 协议概述 9 失效和挂起。 表 2.4 端口状态信号条件 端口状态 条件 移除 tpb 共模输入0.6v 无定义 0.6vtpb 共模输入1.0v 连接 tpb 共模输入1.0v 偏压产生电路(包含外部电容)必须使得当 tpbias 被拉低至少 0.5ms 时,电 容放电且输出偏压相对于 vg 必须小于 0.1v。反之,当 tpbias 产生时,电容重 新充电,tpa/tpa-信号长度在 1.0ms 之内。连接检测电路使用的电流源不能超过 76 a,这保证了物理层没有供电时,偏置电压检测电路检测的电压不超过 0.4v, 也即 tpa/tpa-上的电压不能超过 0.4v。供电后,tpa/tpa-提供 tpbias 信号而 tpb/tpb-接收 tpbias 信号 (由 bias_detect 比较器来决定 tpbias 偏压的存在和消 逝),没有产生 tpbias 时连接检测电路可以检测出电缆另一端没有节点连接。所 以设计时应该注意为连接检测电路设计合适的门限电压和迟滞值,以免在 tpbias 充放电过程中产生对连接状态的误判。 3、数据/选通信号 在 1394 系统中,数据包经数据发生器用 nrz(不归零)编码和数据选通编 码相结合来传送。当选通端向另一端发送数据时,本端就传输数据。数据包在正 常差分传输中,经 tpa 传输选通信号,经 tpb 传输数据。 不归零编码是指在一个码元时间内,电平保持恒定,即用来区别“1”和“0”的 不是高低电平,而是电平是否发生变化。 不归零数据通过节点的 tpb 传输,并通过对应节点的 tpa 上的偏移接收器 检测。在数据流上附加选通信号,可以提供重新发射时钟信号,时钟信号的作用 是使不断传输过来的数据流等时。选通信号经节点的 tpa 传输,由对应节点的 tpb 上的偏移选通接收器检测。 1394总线上相邻节点间物理层实体通过不归零编码数据来通信。不归零编码 数据作为data_tx和data_rx来传送,伴随的选通信号是strb_tx 和 strb_rx。只要 两个连续的不归零数据位是相同的,选通信号就改变状态,这样可以确保一个转 变发生在不是数据就是选通。传输每一位的时钟周期可以对data_rx 和strb_rx执 行异或操作来构造。这一过程如图2.2所示。 使用这种传输码的最基本理论是改善在串行总线传输的信息的传输特性。尤 其是这种编码确保了选通和数据信号上的传输是近似为一个位周期分离的。这导 致了对于错位容忍度的增加。 10 基于 ieee-1394a 与 ieee-1394b 串行总线的双向数据传输系统 1394b采用8b/10b编码方式,该编码方式为不归零编码的一种,主要是为了保 证dc平衡。采用8b/10b编码方式,可使得发送的“0”和“1”数量保持基本一致。 8b/10b编码是将一组连续的8位数据分解成两组数据,一组3位,一组5位,经过编 码后分别成为一组4位的代码和一组6位的代码,从而组成一组10位的数据发送出 去。相反,解码是将一组10位的输入数据经过变换得到8位数据位。 图 2.2 数据/选通编码解码 8b/10b 编码加强了 dc 平衡, 并且限制了允许交流耦合和对信号完整性有极 好控制的传送位的运行长度。运用 8b/10b 编码,可以指定所有媒介形式的传输 误码率(ber)不超过 10-12。 2.3 ieee-1394 总线协议规范 2.3.1 1394 协议结构 1394 协议定义了 3 个协议层,分别为事务层、链路层、物理层,用于在请求 者和响应者之间的数据传输过程中完成相关服务。 事务层支持异步传输的读、写和锁定操作,遵循 csr 体系结构的请求/响应 协议。虽然事务层通过对等时控制 csr 寄存器进行读取和比较交换等操作,为等 时数据提供了通往总线管理层的通路,但事务层却不提供任何用于等时传输的服 务。等时传输是由应用程序直接驱动的。 链路层主要是为事务层服务的,它实现对异步数据包和等时数据包的寻址、 数据校验、分析等功能,链路层还提供了等时传输服务。链路层可以将事务层请 求转化为相应的包或子事务。 物理层主要功能是把链路层的逻辑信号转化成在串行总线上传输的电信号; 实现仲裁服务,保证同一时刻总线上只有一个节点在发送数据;为串行总线定义 物理和机械接口。线缆环境下,物理层还提供了数据重新同步和重复事务,同时 还可以实现总线自动初始化功能。 第二章 ieee-1394 协议概述 11 1394 协议还包括了串行总线管理, 管理层主要负责总线配置和对各个节点的 活动进行管理。主要包括三个部分: (1)总线管理器:在总线上只有一个节点可以充当总线管理器。 (2)节点控制器:所有没有充当总线管理器的节点都有自己独立的节点控制器。 (3)等时资源管理器:用来分配信道、带宽及其它的等时资源。 各个层之间的相互关系及主要功能如图 2.3 所示。 总线管理器 等时资源 管理器 软件驱动器 总线管理接口异步事务接口等时事务接口 管理层 服务 事务层(读、写、锁定) 链路层 时钟控制包接收包发送 物理层 仲裁同步编码/解码 物理接口总线初始化信号 事务层服务 链路层服务 节点控 制器 物理层服务 图 2.3 1394 协议分层结构 2.3.2 1394 通信模型 1394 通信有两种基本事务:异步事务和等时事务。下面分别简单介绍这两种 传输的基本概念和传输模型。 1、异步传输 异步传输保证总线毫无差错地传输数据,保证数据的准确无误,在对数据准 确性有严格要求的系统中有广泛应用。 对数据准确性的保证是通过 crc 校验实现 的,如果 crc 校验不正确,接收方会向发送方报告错误,发送方可以对此次传输 重新发送。异步传输有三种基本类型:读取、写入和锁定。异步传输模型如图 2.4 所示。 12 基于 ieee-1394a 与 ieee-1394b 串行总线的双向数据传输系统 请求 节点 响应 响应 节点 请求 地址、事务类型和数据 状态和数据 图 2.4 异步传输模型 异步事务由请求节点初始化本次事务,响应节点收到请求包后返回响应包, 每个事务由两个子事务组成: (1)请求子事务:由请求节点向响应节点传输地址和命令,对于写入和锁定操作 来说还有进行数据的传输。 (2) 响应子事务: 对于读取和锁定操作而言, 响应节点通过响应子事务返回数据; 对于写入操作而言,响应节点向请求节点返回对应的请求子事务的完成状态。 异步传输使用确定的 64 位地址来指向某一特定的节点, 所有的异步传输共占 用 20的总线带宽。在带宽确定的情况下,数据的传输仅取决于传输速率。异步 传输时异步数据包的最大长度与总线数据传输速度的关系如表 2.5 所示。 表 2.5 异步数据包最大长度与总线数据速度的关系 总线数据传输速度 异步数据包最大长度 100 mb/s 512 字节 200 mb/s 1024 字节 400 mb/s 2048 字节 800 mb/s 4096 字节 1.6 gb/s 8192 字节 3.2 gb/s 16384 字节 2、等时传输 等时传输并不要求确认数据的传输,而是强调数据的实时性。等时传输的地 址不是靠 64 位地址来指定的,它使用一个 6 位的与等时传输关联的信道号码 (channel id)来确定一个或多个设备。把发起等时传输的网络节点叫做交谈者, 而接收节点叫收听者,收听者可以用信道号码来访问应用层的内存缓冲区。交谈 者必须首先向等时资源管理器申请所需要的带宽。等时传输模型如图 2.5 所示。 第二章 ieee-1394 协议概述 13 请求 节点 响应 节点 同步请求 信道号、事务类型和数据 图 2.5 等时传输模型 等时传输可以进行的必要条件是从等时资源管理器处获得总线带宽和等时信 道号码。这是通过访问两个寄存器 channels_available(可用信道寄存器)和 bandwidth_available(可用带宽寄存器)来实现的。这两个寄存器分别被映射在 节点 csr 地址空间偏移地址为 224h228h 和 220h 的地址。 每次等时传输开始时,希望执行等时传输的节点必须向等时资源管理器申请 所需要的带宽,总线带宽以一个循环时间 125s 为基础。一旦等时传输获得了总 线带宽, 信道就会在每个 125s 内获得对应的时间。 每个总线周期最多只能有 80% (100s) 可分配给等时传输。 等时传输支持的最大包长度受限于可用的总线带宽, 且不能超过表 2.6 中列出的最大包长度。在 1394 总线上,如果同时发出等时事务 和异步事务请求的话, 等时事务总是优先于异步事务, 但同时也要兼顾异步事务。 表 2.6 等时数据包最大长度与总线数据速度的关系 总线数据传输速度 等时数据包最大长度 100 mb/s 512 字节 200 mb/s 1024 字节 400 mb/s 2048 字节 800 mb/s 4096 字节 1.6 gb/s 8192 字节 3.2 gb/s 16384 字节 2.3.3 总线配置 1394 总线的配置是自动进行的,主要包含三个步骤:总线初始化、树标识、 自标识。在这三个步骤完成之后,整个系统在逻辑上形成了树状的拓扑,每个节 点都具有了一个节点号,并都发出节点说明信息,这些信息由管理层使用。总线 配置相对独立于主机,在总线拓扑结构形成后,就不会改变。在总线配置前,各 个节点的能力是未知的,例如节点支持的传输速度、节点是否具有等时资源管理 14 基于 ieee-1394a 与 ieee-1394b 串行总线的双向数据传输系统 器的功能等都是未知的。值得注意的是,总线配置过程中数据的传输都以最低速 度即 100mb/s 传输,以保证所有节点都可以参加总线配置。总线配置开始后,所 有的事务都被终止,直到总线配置完成后才能执行。 1、总线初始化 总线初始化以总线复位开始,总线复位强迫所有节点进入它们的初始状态, 清除拓扑信息。 总线初始化后, 一个节点可以知道自己是叶子节点还是分支节点, 或独立节点。 在总线复位过程中,如果任何端口的连接状态发生变化,即添加或移除了设 备,节点会再次发出复位信号,物理层会重新返回总线初始化状态。 实际应用中引起总线复位的主要原因有以下几种: (1)物理层的电源状态发生变化。 (2)节点的加入或移除。 (3)节点发出总线复位信号。端口检测到与其相连的节点发出复位信号时,它必 须向与其相连的其它端口转发该复位信号。 (4) 物理层接收到软件发出的总线复位请求。 应用程序可以通过链路层芯片设置 物理层芯片相关寄存器,来发出复位命令。 (5)超时复位。物理层在某一个状态停留的时间过长,就会发出总线复位信号。 1394a 对总线复位做了一些改进,主要有以下两点: (1)短时总线复位,减少了总线初始化时间,相应地减少了存放缓冲数据的缓冲 区长度。 (2) 连接反跳。 之前检测节点物理拓扑时没有考虑到物理层连接过程不对称与连 接过程不平滑的问题。解决这两个问题,首要是要求所有的仲裁线状态在连接超 时间隔期间被忽略。如果检测到总线复位信号,则跳过剩余的连接超时间隔开始 总线复位。 2、树标识 总线复位以后,总线上的节点开始树标识过程。树标识过程主要用来标识根 节点和所有连接节点的拓扑结构。树标识过程将把一个一般网络拓扑变换成一个 树的形式。在这个树中,有一个节点将被指定为根节点,其它的节点为分支节点 和叶子节点。树标识过程还使所有连接在网络中的端口被指定为父端口或者子端 口,在一个节点中靠近根节点的端口为父端口,远离根节点的端口为子端口。所 有没有连接的端口被标定为关状态,此后也不会参加各种仲裁活动。拓扑中任何 环路都由树标识过程中的配置超时来检测。 根节点的选择是不依赖于拓扑的,如果把根节点看成一个叶子的话也完全可 以接受,惟一的区别就是根节点拥有最高优先级,所以循环控制器必须由根节点 来承当。当一个节点的所有连接在网络中的接口都是子端口的时候,这个节点就 第二章 ieee-1394 协议概述 15 称为根节点。有些特殊的节点可以通过推迟它自身参与树标识过程,来使自己成 为根节点的可能性变大。通常情况下,如果一个节点等待时间足够长,它就可能 成为根节点,当然这个足够长的时间也是有限制的。 在一般树标识过程中会出现以下几种情况: (1)正常树标识,没有任何冲突; (2)树标识过程中,某两个节点竞争根节点; (3)使用软件对某一个节点进行强制转换,使其成为根节点; (4)有可能碰到树标识不能继续进行的情况。 3、自标识 树标识之后紧跟着就是自标识过程。自标识过程主要是对自身节点功能做出 标识,使得其它节点知道自己的功能。在自标识过程中每个节点都有机会得到一 个惟一的物理标识,并向连接到总线上的所有管理实体表明自己的身份。 自标识的主要功能是:为网络中每个节点分配相应的物理标识;在两两相邻 节点之间交换最大传输速率能力的信息;广播树标识过程中定义的拓扑结构。 自标识完成之后, 1394 网络中的节点就可以根据收到的其它节点的自标识数 据包信息来完成一些功能, 这些功能包括: 发布能被其它节点访问的拓扑结构图; 发布能被其它节点访问的速度图,并确定相连节点可用的最大数据传输速度;电 源管理控制;优化总线传输。 2.3.4 事务重传 1、事务重传概述 在空闲总线上,所有设备的资源都是可用的,然而在拥挤的多总线系统中, 在很多情况下,都不一定能一次把想完成的事务传输成功,重试这些数据包的传 输是必须的,称作事务重传。 事务重传的条件是:节点正忙;数据包传送失败;节点被锁定。无论是请求 事务还是响应事务都可以进行重传。目标节点使用应答包里的应答代码来通知发 送节点它的状态很忙,这个包可以稍后重新传输。应答代码同时也说明了重传状 态,由目标节点来控制。发送节点通过设定数据包包头中的重传代码来标明数据 包的重传状态。 1394 协议定义了两种向请求节点报告状态忙、尝试事务重传的方法。第一种 是单步重传。如果一个节点仅能实现单步重传,那么当这个节点忙时,节点的事 务层将对它接收到的数据包返回一个确认代码为 ack_busy_x(4h)的确认包, 表明现在状态忙,目前不能接收数据包。发送节点使用重传代码 retry_x(01b) 来发送重传子事务,直到这个事务发送成功,或者重传次数超过之前设定的最大 16 基于 ieee-1394a 与 ieee-1394b 串行总线的双向数据传输系统 限度。第二种方法是两步重传。当节点的事务层繁忙时,就返回确认代码为 ack_busy_a(5h)或 ack_busy_b(6h)的确认包作为应答。事务重传时,如 果请求节点收到 ack_busy_a,就用重传代码 retry_a(10b)来重传;如果请求 节点收到 ack_busy_b,就用重传代码 retry_b(11b)来重传。若目标节点收到 retry_a,其它的子事务都被标上 retry_b 的标签。直到所有的 retry_a 重传事务 完成之后,目标节点开始接收重传代码为 retry_b 的重传事务,其它子事务又被 标记为 retry_a。可以通过设定 busy_timeout 寄存器来设定事务重传最多次数。 2、数据包错误及其处理 以上事务重传仅是假设数据包本身没有错误,或者传输过程中没有错误,仅 仅考虑了节点本身不能处理数据包的问题。在实际应用中,数据包传输过程可能 出现以下问题:请求数据包在传输过程中出现错误;响应数据包传输错误;确认 数据包超时;响应数据包超时;确认数据包传输错误。下面分别予以简单介绍。 (1)请求数据包在传输过程中出现错误 这种类型的错误可以通过目标节点接收数据包时对包头和数据进行 crc 校 验来检测。如果目标节点检测到 crc 错误,就在返回确认包中标明错误信息,请 求节点在接到这个确认包后,向本地应用程序报告错误,应用程序根据实际情况 采取相应措施。 (2)响应数据包传输错误 在这种情况下,由于请求节点不能确认响应数据包中的内容,只好忽略响应 数据包并返回一个对响应数据包的确认,其中包含相应的确认代码。目标节点收 到该确认包后向上一级报告该错误。 (3)确认数据包超时 对于异步传输而言,发送请求包和响应包的节点都会收到一个确认数据包。 若没收到,就说明确认数据包超时了。这时链路层会向事务层发送一个“链路数 据确认”数据包,该数据包带有一个表示“确认丢失”的确认代码。事务层通过 “事务数据确认”将这一消息传递给应用程序,由应用程序做出相应处理。 (4)响应数据包超时 如果请求节点没有及时收到响应数据包,请求节点就认为响应超时并向上级 报告错误。这时,应根据具体情况,修改应用程序,来处理实际问题。 (5)确认数据包传输错误 确认包如果传输错误,则这个确认包所对应的数据包是否收到是未知的,发 送数据包的一方也无法知道所发送的数据包是否正确地传达到对方。如果可以接 收到正常的响应,那么这个事务就完成;如果发生响应超时,有可能是发送的数 据包出错或对这个包的响应出错,应进行事务重传。 第三章 基于 ieee-1394a 的数据传输系统 17 第三章 基于 ieee-1394a 的数据传输系统 根据项目需求,我们设计了基于 dsp 与 fpga 的 ieee-1394a 双向数据传输 系统, 该系统主要是通过 spi 接口接收从外围视频压缩板获取的图像数据, fpga 对数据进行处理,在 dsp 的控制下将数据传输到主机端进行实时显示,同时,通 过 uart 接口接收异步数据, 在 dsp 的控制下进行异步指令的发送, 并把主机注 入的异步指令通过 uart 接口进行显示。本章主要介绍系统整体方案、系统硬件 设计、软件设计。 3.1 系统整体方案介绍 系统整体结构框图如图 3.1 所示。 1394链路层控制芯片 tsb12lv32 1394物理层 控制芯片 tsb41ab3 fpga xq2v3000 dsp tms320c6415 dm端口 mcu口 uart spi1 flash mmee08250802s sram is61lv51216 spi2 视频压缩卡1视频压缩卡2 外部载荷控制器 rs232 1394总线 pci-1394适配卡 设备驱动程序 设备应用程序 主机端 windows xp 操作系统 图 3.1 系统整体结构框图 从视频压缩卡读进来的视频数据经 fpga 处理打包后,经链路层 dm 端口, 经 1394 总线传输到主机端进行实时显示, 外部载荷控制器数据一部分作为等时数 18

温馨提示

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

评论

0/150

提交评论