CN102685149B - 一种基于IEEE1394与UPnP技术的远程控制和访问方法及装置 - Google Patents
一种基于IEEE1394与UPnP技术的远程控制和访问方法及装置 Download PDFInfo
- Publication number
- CN102685149B CN102685149B CN201210177653.8A CN201210177653A CN102685149B CN 102685149 B CN102685149 B CN 102685149B CN 201210177653 A CN201210177653 A CN 201210177653A CN 102685149 B CN102685149 B CN 102685149B
- Authority
- CN
- China
- Prior art keywords
- upnp
- data
- equipment
- address
- soap
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Small-Scale Networks (AREA)
Abstract
本发明为一种基于IEEE1394与UPnP技术的远程控制和访问方法及装置,所述装置在UPnP堆栈模块和1394通信模块之间新增了UPnP?over?1394模块,新增模块实现了1394设备和UPnP控制点的无缝连接。所述方法在总线复位后,对1394设备内存地址进行统一调度管理,通过ARP协议获取1394设备的硬件地址和节点ID号之间的映射,发现1394设备并生成其服务描述文档,保存控制点控制信息状态用于故障分析,由缓冲区控制模块和QoS控制模块保证等时视频流传输和服务质量。本发明防止了桥设备地址冲突和浪费,且不会因为节点ID变化而导致远程访问失败,并且具有故障诊断能力和视频传输的QoS能力。
Description
技术领域
本发明涉及一种远程控制与访问技术,具体涉及通过桥接IEEE1394设备与UPnP(Universal Plug and Play,通用即插即用)设备,实现远程控制和访问的方法及装置。
背景技术
IEEE 1394是1995年12月由IEEE(Institute of Electronic and Electrical Engineers)制定的一种高性能串行总线标准,又名火线(Fire Wire)。同时支持等时和异步两种传输模式。对等时传输的支持,可以保证在规定的时间内完成规定数据量的传输。低于1微秒的时间延迟非常有利于图像、声音等对时间延迟比较敏感的数据的传输。而异步请求-响应方式可重试的传输可用于对传输正确性要求较高的数据的传输。采用基于CSR(Control and Status Register,控制和状态寄存器)的64位寻址方式,节点间采用内存至内存的传递,无需软件传输开销,优化了带宽利用。1394总线网络是一个对等网络,各节点可以脱离主机执行事务,实现分布式控制,适合实时多任务系统。采用一个1394网络,便可以实现所有数据、图形、图像、话音、视频、遥测和控制等信息的传输。1394技术广泛的应用在家庭网络中,并且由于其以上的优点甚至被认为是将来在航天和军事领域载荷网络总线。但是1394网络传输距离比较短,普通电缆的传输距离为4.5米,采用光纤也只能达到100米。对1394网络与IP网络想结合,实现对1394网络的远程访问与控制就非常值得研究且是实用的技术。
以IP协议为基础的UPnP技术是一种基于C/S(Client Service客户端服务器)结构的服务发现网络。UPnP技术扩展了传统单机的设备和计算机系统的概念,在基于分布式、开放的网络结构上,提供了联网设备之间的发现、接口声明和其它信息的交换等互动操作功能。它主要用于实现设备的智能互连互通,它被设计为透明网络和可自动发现任何供应商提供的UPnP智能设备,支持零配置。如果将UPnP网络和IEEE1394网络相结合,将会对1394设备进行远程控制和访问变得非常简单。UPnP协议是基于HTTP(Hyper Text Transfer Protocol,超文本传送协议)和IP的协议,底层的协议基础是TCP/UDP协议,而1394设备通过1394协议组成网络。在应用中,需要实现UPnP设备对非UPnP设备(1394设备)的访问,这就需要IEEE1394桥来实现UPnP协议和IEEE1394协议之间的互联,使得UPnP设备和1394设备进行无缝连接。该桥必须解决的几个问题:1)IEEE1394设备的寻址,这是对其进行访问的基础。同一个1394设备的通信地址会在1394网络发生复位时发生变化;2)协议的转换,UPnP协议的实现依赖几种协议,比如SSDP(Simple Service Discovery Protocol,简单服务发现协议),SOAP(Simple Object Access Protocol,简单对象访问协议)和GENA(Generic Event NotificationArchitecture,普通用事件通知体系)协议,这就需要将这些协议转化为1394的等时事务或异步事务,反之将1394的等时事务和异步事务转化为SSDP,SOAP和GENA协议。3)1394协议和基于IP的UPnP协议在带宽,传输速率,包长度,包发送速率等方面都不同。例如1394b能达到的传输速率100Mbps,200Mbps,400Mbps,800Mbps,1.6Gbps,而一般的Internet传输速率为1Mbps,2Mbps,10Mbps。1394传输数据时,数据包长比较短,数据包传输速率快,而IP数据包包长较长,传输速率慢。4)IEEE1394网络在传输大量数据时,比如视频数据,采用的是等时传输方式,这种服务方式是有QoS(Quality of Service,服务质量)保障的,一旦等时传输获得了总线带宽,那么信道就在每个125us周期内收到保证的时间包。每个总线周期最多有80%可分配给等时通道。而IP协议是一种尽力而为的协议,它不提供QoS保证,于是这个桥需要提供应用层QoS来保证UPnP端视频传输质量。也就是说,在采用IEEE1394桥来实现UPnP协议和IEEE1394协议之间的互联时,存在IEEE1394网络和UPnP网络在传输视频流时的QoS不匹配问题。
现有的桥接技术,如参考文件1(《IEEE1394/UPnP软件桥分析及应用》,冷雪峰,苏绍景,2006年1月8日)及参考文件2(《IEEE1394software bridge》,Donghee Kim,Jun Hee Park等,2005年2月1日)中,并没有提供IEEE1394设备的具体寻址方式,而在软件桥中1394设备的寻址对于UPnP控制点的正确访问非常重要;也没有提供具体的数据处理方法,比如解决两种协议在传输过程中的协议转换和速率匹配等问题。现有的桥接技术也没有对UPnP/1394桥设备做节点地址调度,这样在接受远程控制访问时会造成地址浪费以及出现数据传输错误等问题,也没有考虑到两者总线在进行视频传输时的QoS保证协议。
发明内容
本发明所要解决的技术问题是:当IEEE1394总线作为现场总线时,具体如何实现对1394网络的远程控制和访问,包括如何解决1394设备的寻址、在传输过程中的协议转换和速率匹配、节点内存空间的自动调度以及进行实时数据传输时的QoS保证等问题。本发明利用UPnP协议支持零配置,自动设备发现和服务发现的特点,将UPnP技术和1394技术相结合,提出一种基于IEEE1394与UPnP技术的远程控制和访问方法及装置。
本发明为基于IEEE1394与UPnP技术的远程控制和访问装置,也称为UPnP/1394软件桥,包括UPnP堆栈层模块、1394通信层模块和UPnP over 1394层模块。UPnP堆栈层模块实现了UPnP协议中的SSDP协议、GENA协议和SOAP协议。UPnP over 1394层模块实现UPnP协议与1394协议之间的转换,包括七个模块:服务描述模块、数据库模块、ARP模块、IP over 1394模块、缓冲区控制模块、UPnP/1394软件桥内存管理模块和QoS控制模块;UPnP/1394软件桥内存管理模块用于对UPnP/1394软件桥的内存地址进行调度管理,维护了UPnP/1394软件桥的地址管理表;ARP模块用于地址寻址,将各1394设备的节点ID和唯一标示符保存在1394设备地址表中;服务描述模块用于将IEEE1394网络中的1394设备提供的服务进行描述,具体服务可以抽象为节点服务和代理服务,节点服务包括:设置传输速率、获得可用带宽、控制总线复位、发送物理层数据包、获得总线管理器、设置时间码、获得总线节点数、以及开启/关闭端口,代理服务包括:访问1394设备内部文件、获得1394传感器数据、以及获取1394视频采集设备的视频数据;IP over 1394模块进行协议的转化,将UPnP的控制信息转化为1394的控制信息。缓冲区控制模块用于控制等时数据流的传输,建立了一个缓冲池及一个缓冲区处理线程,缓冲池中包含四个缓冲区,每个缓冲区的大小为一帧数据的大小,1394通信层模块接收等时通道上的数据填充缓冲区,当一个缓冲区被填满,则发送一个信号给缓冲区处理线程,将填满的缓冲区交给UPnP over 1394层模块。QoS控制模块用于保证等时数据传输的服务质量;数据库模块用于存储各数据表的数据,包括:UPnP/1394软件桥的地址管理表,1394设备地址表,SOAP状态信息表,所述的SOAP状态信息表,记录了UPnP控制点的SOAP请求信息的处理状态,包括:UPnP控制点的IP地址、服务操作、目的1394设备的唯一标识符、处理状态、参数名称和参数类型;处理状态总共由四种,分别为确认请求、请求中、超时和完成。1394通信层模块用于接收UPnP over 1394层模块的信息并发送给1394网络,或是接收1394网络的信息并转发给UPnP over 1394层模块。
一种应用本发明上述装置的基于IEEE1394与UPnP技术的远程控制和访问方法,具体包括如下步骤:
步骤1:当1394设备上有节点的插入或移除或者UPnP控制点发出了总线复位信息时,发生总线复位,总线复位后,初始化UPnP/1394软件桥的地址管理表;
步骤2:设备寻址,包括UPnP/1394软件桥的寻址和1394设备的寻址;1394设备的寻址通过下面过程实现:UPnP/1394软件桥向1394网络广播ARP请求报文,请求获取各1394设备的惟一标识符,各1394设备发回ARP应答报文,UPnP/1394软件桥在收到ARP应答报文后,获得各1394设备的惟一标识符和节点ID号,并保存到1394设备地址表中;
步骤3:设备发现,包括如下子步骤:
步骤3.1:UPnP/1394软件桥向1394设备发送服务描述文档请求信息,生成1394设备的服务描述文档;所述的UPnP/1394软件桥实现了节点服务和代理服务;节点服务包括:设置传输速率,获得可用带宽,控制总线复位,发送物理层数据包,获得总线管理器,设置时间码,获得总线节点数,以及开启/关闭端口;代理服务包括:访问1394设备内部文件,获得1394传感器数据,获取1394视频采集设备的视频数据;
步骤3.2:UPnP/1394软件桥获取服务描述文档后,通过SSDP通知信息对UPnP网络中的UPnP控制点公布1394设备的服务;
步骤4:UPnP控制点对1394设备进行控制和访问,包括如下步骤:
步骤4.1:当UPnP控制节点对1394设备的服务比较感兴趣时,发送SOAP请求信息给UPnP/1394软件桥,请求1394网络设备中的服务;
步骤4.2:UPnP/1394软件桥在接收到SOAP请求信息后,将SOAP请求信息记录在SOAP状态信息表中,并对接收到的SOAP请求信息进行解析,通过1394设备地址表查找到目的1394设备的节点ID,通过UPnP/1394软件桥内存管理模块及其维护的地址管理表,在UPnP/1394软件桥中分配唯一的地址空间范围给该操作,既在该地址范围内等待接收该操作的目的1394设备返回的数据;然后将解析的SOAP请求信息封装为符合1394协议的数据包发送给1394网络的目的1394设备;在此过程中,更新SOAP状态信息表中对应SOAP请求的处理状态;
步骤4.3:在目的1394设备完成所请求的操作后,返回数据给UPnP/1394软件桥,更新SOAP状态信息表中对应SOAP请求的处理状态;
步骤4.4:UPnP/1394软件桥将1394设备返回的数据进行SOAP封装后返回给UPnP控制点,并更新SOAP状态信息表中对应SOAP请求信息的处理状态。
本发明的优点与积极效果在于:
(1)本发明的装置通过UPnP over 1394层模块,实现了IEEE1394设备和UPnP设备之间的互联,使得两种协议上的设备能进行无缝连接。
(2)本发明的装置和方法对UPnP/1394软件桥的内存地址进行了调度管理,防止了桥设备地址浪费和可能出现的数据传输错误。
(3)本发明的装置和方法采用1394ARP协议获取1394网络的统一资源标识符(UEI-64),建立了1394设备地址表,保存1394设备的64位唯一地址标识符(EUI-64)和异步通信地址节点ID的之间的映射关系,对外公布的服务地址为EUI-64,这样当发生总线复位或网络故障恢复时,从UPnP控制点发出的控制信息中解析出目的1394设备的EUI-64,通过查找1394设备地址表,能够方便地找到对应的1394设备的节点ID,不需要重新公布1394设备新的ID地址。
(4)本发明的装置和方法中设置了SOAP状态信息表,保存了UPnP控制点和1394设备的控制状态,当在控制执行过程中整个1394网络发生复位或是网络故障恢复时,可以读取状态信息并完成未完成的操作,使得操作能够迅速恢复。
(5)本发明的装置和方法采用H264解决UPnP网络和IEEE1394的传输速率不匹配问题,并通过RTP的发送端和接收端报告,预测网络带宽,控制H264的起始帧量化参数,使输出码流适应网络带宽,解决IEEE1394网络和UPnP网络在传输视频流时的QoS不匹配问题。
附图说明
图1是本发明的远程控制和访问装置的应用场景示意图;
图2是本发明提供的远程控制和访问装置的整体结构示意图;
图3是UPnP/1394软件桥提供的节点服务框图;
图4是UPnP/1394软件桥提供的代理服务框图;
图5是UPnP/1394软件桥控制处理数据的流程图;
图6是等时数据流传输的示意图;
图7是保证QoS的等时数据流传输的示意图;
图8是本发明的远程控制和访问方法的整体信号流示意图;
图9是本发明的地址调度管理的流程示意图。
具体实施方式
下面将结合附图和实施例对本发明作进一步的详细说明。
如图1所示,为本发明的远程控制和访问装置所应用的整个网络的拓扑结构,整个通信系统由基于以太网的UPnP网络、基于IEEE1394的1394网络、以及本发明的装置组成。本发明的远程控制和访问装置也称为UPnP/1394软件桥。在由1394网络组成的通信系统中,UPnP/1394软件桥实现了把1394设备连接到UPnP控制点上的功能,这样UPnP控制点就可以非常方便地通过UPnP/1394软件桥对1394网络进行控制,以及访问其1394设备提供的服务。UPnP/1394软件桥支持四个先后基本的过程:1394设备地址管理,设备寻址,设备发现、控制和事件处理过程。在设备发现过程中,UPnP/1394软件桥必须将1394设备情况向UPnP网络进行广播,保证1394设备连接上计算机或网络时,UPnP控制点可以发现新的1394设备。为此,UPnP/1394软件桥必须知道连接的是哪种类型的设备,并能对新接入的设备进行设备和服务的描述。
如图2所示,本发明提供的远程控制和访问装置包括三个协议栈层模块,分别为UPnP堆栈层模块,UPnP over 1394层模块以及1394通信层模块。
UPnP堆栈层模块实现了UPnP协议中的SSDP简单访问协议,GENA协议和SOAP协议,使得UPnP控制点能够发现1394设备,查找1394设备,以及接收UPnP控制点的控制信息,是和UPnP网络的外部接口,此外,UPnP堆栈层模块中还提供了用户接口、迷你服务器、XML解析模块和HTTP解析模块。
UPnP over 1394层模块主要实现的是UPnP协议与1394协议之间的转换,以及解决两种协议之间的传输速率不匹配,带宽不匹配,包发送速率不匹配等问题,包括七个模块,分别是服务描述模块,数据库模块,ARP模块,IP over 1394模块,缓冲区控制模块,UPnP/1394软件桥内存管理模块和QoS控制模块。
UPnP/1394软件桥内存管理模块用于对各UPnP/1394软件桥的内存地址进行调度管理,维护了UPnP/1394软件桥的地址管理表。UPnP/1394软件桥的地址管理表,是一个将远程控制操作和UPnP/1394软件桥用于接收远程控制操作所对应的返回数据的内存地址进行映射的数据表,对于1394设备内部的寄存器空间,采用16进制表示的48位地址范围是(FFFFF0000000-FFFFFFFFFFFF),对于1394/UPnP软件桥的内存空间,采用16进制表示的48位地址范围为(000000000000-FFFFDFFFFFFF),表1给出了一个该表的示例,UPnP/1394软件桥内存管理模块通过内存映射表对该48位地址进行合理的分配,保证某段内存空间的独占和防止内存碎片的形成。ARP模块用于地址寻址,将各1394设备的的节点ID和唯一标示符(EUI-64)保存在1394设备地址表中,表5给出了1394设备地址表的示例,该表中记录各1394设备的信息,包括:节点ID、最大有效数据长度、最大传输速度和硬件地址;所述的硬件地址是指1394设备的唯一标示符。服务描述模块用于将IEEE1394网络中的1394设备提供的服务进行描述,服务包括节点服务和代理服务,如图3所示,节点服务包括:设置传输速率、获得可用带宽、控制总线复位、发送物理层数据包、获得总线管理器、设置时间码、获得总线节点数、以及开启/关闭端口。如图4所示,代理服务包括:访问1394设备内部文件、获得1394传感器数据、以及获取1394视频采集设备的视频数据。IP over 1394模块进行协议的转化,将UPnP的控制信息转化为1394的控制信息。缓冲区控制模块用于控制等时数据的传输,建立了一个缓冲池及一个缓冲区处理线程,缓冲池中包含四个缓冲区,每个缓冲区的大小为一帧数据的大小,1394通信层模块接收等时通道上的数据填充缓冲区,当一个缓冲区被填满,则发送一个信号给缓冲区处理线程,将填满的缓冲区交给UPnP over 1394层模块。QoS控制模块用于保证等时数据的传输的QoS。数据库模块用于存储各数据表的数据,包括:UPnP/1394软件桥的地址管理表,1394设备地址表,SOAP状态信息表。所述的SOAP状态信息表,记录了UPnP控制点的SOAP请求信息的处理状态,包括:UPnP控制点的IP地址、服务操作、目的1394设备的唯一标识符、处理状态、参数名称和参数类型;处理状态总共由四种,分别为确认请求、请求中、超时和完成。
1394通信层模块,主要是和UPnP over 1394层模块进行通信,接收UPnP over 1394层模块的信息发送给1394网络或是接收1394网络的信息转发给UPnP over 1394层模块,包括1394API模块、串行总线管理器、应用层、1394硬件驱动层、1394链路层和1394物理层。
本发明的一种基于IEEE1394与UPnP技术的远程控制和访问方法,如图8所示,具备包括如下步骤:
步骤1:当1394设备上有节点的插入或移除或是UPnP控制点发出了总线复位信息时,本发明的远程控制和访问装置(UPnP/1394软件桥)接收到总线复位信号,执行下一步骤。发生总线复位时,1394设备的节点标识(节点ID)会发生变化,这个时候初始化1394设备的地址管理表。本步骤对应图8中的S1,S10。
在IEEE1394通信模型中,一般的数据请求信息和控制信息都是通过异步传输方式完成的。这种传输方式采用了64位地址空间到地址空间的映射。具体来说就是通过ID号找到通信的目的主机,而通过余下的48位找到节点内部的数据传输地址。其中有一些固定的地址是指其内部的寄存器地址,不能应用于节点之间数据传输地址。为了防止地址浪费和有可能出现的数据传输错误,必须对地址进行统一有效的管理。本发明采用UPnP/1394软件桥内存管理模块来实现对地址的统一有效的管理,具体方法是:首先建立一个将远程控制操作和UPnP/1394软件桥用于接收远程控制操作所对应的返回数据的内存地址进行映射的数据表。如表1所示,在该表中的1394设备地址分为两类,一类是寄存器空间,48位的地址范围是FFFFF0000000-FFFFFFFFFFFF(用16进制表示的48位地址空间),例如,获得1394总线上的循环开始寄存器(Get_Cycle_Time)的值,必须向循环控制器的节点地址为FFFF FFFF F00002000进行数据的读写。另外一种1394设备地址是存储空间,其地址范围为000000000000-FFFFDFFFFFFF,UPnP/1394软件桥需在这个地址空间内进行数据的读写。为了实现远程控制与访问,对这类地址就需要UPnP/1394软件桥内存管理模块进行合理的调度和利用。UPnP/1394软件桥内存管理模块通过地址管理表对该48位地址进行合理的分配,保证某段内存空间的独占和防止内存碎片的形成。其流程如图9所示,包括如下步骤:
步骤1.1,UPnP/1394软件桥发送写请求给1394设备;
步骤1.2,1394设备返回写响应信息,该信息中包含请求信息地址长度;
步骤1.3,UPnP/1394软件桥根据地址管理表对节点地址空间进行调度计算,并且分配合理的内存空间给本次操作
步骤1.4,UPnP/1394软件桥发送数据传输信息,在上面分配的地址空间内等待数据的接收;
步骤1.5,开始数据传输;
步骤1.6,数据传输完毕更新节点地址管理表。
以请求某个1394设备的文件(LoadFile)操作为例,软件桥接收到UPnP控制点的LoadFile信息时,则准备进行文件数据的获取。在IEEE1394网络中进行文件传输时,采用数据块读写的方式进行,既需要在节点存储空间内分配连续的地址接收数据。比如此时遍历软件桥的1394设备的地址管理表,发现了获得远程数据(Get Remote Data)操作,使用的地址空间为(FFFF 0FFFF000,FFFF 0FFFFFFF),那么为LoadFile分配的地址空间则为(FFFF 10000000,FFFF 10002000),当操作完成以后,需将地址空间释放,其他的操作可以在该层内完成。此时如果有其他的操作,比如同时还需要获取其他的文件数据,则必须在新的地址空间内进行传输,而不能出现地址复用情况,若出现地址复用情况,必将导致数据的传输错误,导致此次远程访问出错。
表1UPnP/1394软件桥的地址管理表
操作名称 | 1394设备内偏移地址 |
Get_Cycle_Time | FFFF FFFF F00002000 |
Get_Remote_Data | (FFFF 0FFFF000,FFFF 0FFFFFFF) |
LoadFile | (FFFF 10000000,FFFF 10002000) |
步骤2:设备寻址。UPnP/1394软件桥发出1394ARP请求完成1394设备的寻址,获取每个1394设备的64位的惟一标识符(EUI-64),复位后的节点ID号,链路层数据包长度,最大传输速率等信息,并将该信息进行保存。
该步骤中包括两个寻址,一个是UPnP/1394软件桥的寻址;一个是1394设备的寻址。
UPnP/1394软件桥的寻址,就是获取UPnP/1394软件桥的IP地址和节点ID号。UPnP/1394软件桥是连接基于IP协议的UPnP设备和基于1394协议的1394设备的纽带,它首先必须获取一个IP地址。这个IP地址是通过DHCP(Dynamic Host Configuration Protocol,动态主机设置协议)协议或是Auto IP来获得的,这样UPnP/1394软件桥就有一个IP地址用于向UPnP控制点公布其服务和数据访问方法。UPnP/1394软件桥也具有一个节点ID号。
1394总线体系结构遵循64位的CSR体系,其高16位为节点ID,低48位为节点内部寻址。1394设备的通信地址指接收者的存储器映射地址或接收信道号,其中异步事务通信地址是指接收者的存储器映射地址,也就是1394设备的16位节点ID,等时事务通信地址是信道号。1394设备的16位节点ID由10位总线ID和6位物理ID组成,类似于网络硬件地址。但是1394设备的节点ID是动态变化的,随着1394总线上节点的插入或移除或者网络重置,节点ID会重新分配。1394设备有一个64位的惟一标识符(EUI-64),它由厂商ID和芯片标识组成,不会随总线复位而改变。
1394ARP协议(Address Resolution Protocol,地址解析协议)是将1394设备的EUI-64和节点ID地址进行映射的协议。本步骤中具体包括步骤2.1和步骤2.2,分别对应图8中的S21和S22。
步骤2.1:UPnP/1394软件桥向1394网络广播ARP请求报文,请求获取各1394设备的惟一标识符(EUI-64)。UPnP/1394软件桥发送的ARP请求报文的目的IP地址设置为0.0.0.0,1394网络中的1394设备接收到ARP请求报文并检测到该ARP请求报文的目的IP地址是0.0.0.0时,发送一个ARP应答报文,ARP应答报文包含应答设备的IP地址及惟一标识符(EUI-64)。ARP请求报文或ARP应答报文必须封装在1394异步数据流数据包里面。ARP请求报文或ARP应答报文的数据包格式如表2所示:
表2ARP数据包结构
硬件类型:表示该ARP是发送给1394网络的,其值为0x0018。
协议类型:表明是1394ARP协议,值为0x008。
硬件地址长度:是指1394的全球唯一的64位硬件地址的长度,值为16。
IP地址长度:表示请求的IP地址长度,其值为4,单位为字节。
操作码:用来标识该ARP的类型,其中1表示请求数据包,2表示响应数据包。
源节点标识:64位惟一标识符(EUI-64),也就是硬件地址。
最大有效长度:表示数据包长的最大有效长度。
速度:表示被请求设备支持的最大链路层速度,该值通过读取发送设备的配置ROM获得,其中值的对应关系如表3所示。
表3速度所对应的代码表
代码 | 速度 |
0 | S100 |
1 | S200 |
2 | S400 |
3 | S800 |
4 | S1600 |
5 | S3200 |
表3中,速度值的表示中S表示传输速率的单位为Mbps,例如S100代表100Mbps,S3200代表3.2Gbps。
缓冲区偏移地址高字节和缓冲区偏移地址低字节分表表示在1394的CSR寻址方式的节点内部寻址,这个地址需要UPnP/1394软件桥内存管理模块进行统一的调度,如步骤一中所示,是指该请求信息的响应信息的接收地址。
表2所示的ARP数据包必须封装在IEEE1394的异步数据流数据包里面。其中异步数据流数据包的格式如表4所示。
表41394异步流数据包
数据长度:整个异步数据流数据包的长度。
事务标签:为1394设备发送的每一个事务指明了一个独一无二的标签。响应子事务中使用的事务标签和它相对应的请求子事务的标签相同,这样就可以方便地判断请求响应信息对。
通道号:异步数据流可以作为广播包发往多个1394设备,在本发明中通道号为0x3F,代表广播信息。源节点地址:发送异步数据流数据包设备的节点ID号。
缓冲区偏移地址高字节和缓冲区偏移地址低字节:分别表示目的主机节点内的偏移地址。
数据:记载异步数据流的有效载荷数据,表2中的ARP数据包就封装在此。
步骤2.2:UPnP/1394软件桥在收到各1394设备发回的ARP应答报文后,获得各1394设备的惟一标识符和节点ID号。UPnP/1394软件桥将得到的各1394设备的信息,保存到一个地址表中,如下表5所示。
表51394设备地址表
节点ID | 最大有效数据长度 | 最大传输速度 | 硬件地址 |
0 | 2048 | 2(代表着400mbps) | 0406103900000100 |
1 | 2048 | 同上 | 00133B0100100E0 |
节点ID:指1394设备的节点ID,表5中给出了两个例子,0,1分别代表着IEEE1394网络上的两个1394设备。
最大传输速度:指1394设备支持的最大数据传输速度。
硬件地址:就是请求得到的1394设备的唯一标示符(EUI-64),是不会改变的。
步骤3:设备发现。在1394设备和UPnP/1394软件桥寻址完成以后,UPnP/1394软件桥需要向网络上广播1394网络中1394设备的服务,并且对其服务进行相应的描述,这样UPnP网络中的UPnP控制点就可以发现其感兴趣的1394设备,UPnP网络上的UPnP控制点也可以通过UPnP/1394软件桥搜索感兴趣的1394设备。这样就要求UPnP/1394软件桥能够获得1394设备的服务,并且对服务进行描述。具体本步骤包括两个子步骤3.1和步骤3.2,分别对应图8中的S31和S32。
步骤3.1:UPnP/1394软件桥获取1394设备的服务描述文档。UPnP/1394软件桥具有两种服务,节点服务和代理服务。节点服务是指对整个网络的控制和相关设备信息的获取,如图3所示,包括的服务有:设置传输速率,获得可用带宽,控制总线复位,发送物理层数据包,获得总线管理器,设置时间码,获得总线节点数,开启/关闭端口。代理服务主要是用来获取非UPnP设备上的服务,如图4所示,分别有访问1394设备内部文件,获得1394传感器数据,获取1394视频采集设备的视频数据等。代理服务的服务描述根据不同的UPnP控制点不同而不同,1394商业联盟定义了一些设备类型和功能类型,可以根据这些定义进行描述。在本发明中,1394设备是PC机,其提供的服务可以进行扩展和删减,其服务相关信息保存在本地磁盘中,通过向某个地址空间发送服务描述文档请求信息,在本发明实施例中存放在fffffffff00中,在请求到其服务信息后,由UPnP/1394软件桥自动生成服务描述文档。
步骤3.2:UPnP/1394软件桥获取服务描述文档后,通过SSDP通知信息对UPnP网络中的UPnP控制点公布对应的1394设备的服务。
UPnP/1394软件桥中存储了各1394设备的服务描述信息及其由软件桥生成的服务描述文档,当1394设备提供的服务发生变化时,UPnP/1394软件桥更新1394设备所对应的服务描述文档。具体来讲就是当UPnP/1394软件桥检测到总线发生复位时,需要重新获得1394设备服务描述信息并且和已存在的信息进行比较,如果发生了变化则重新进行描述,并且重新对外公布,以方便UPnP控制点的控制。
整个UPnP/1394软件桥的设备服务描述文档如下:
当该信息被公布时,UPnP控制点就会发现网络上存在着一个1394RootDevice,并且该设备提供两种服务分别是节点服务(1394NodeService)和代理服务(1394ProxyService)。如果UPnP控制点希望进一步了解该服务的情况,就需要向<SCPDURL>标签下的地址请求具体的服务描述文档。
代理服务描述文档的部分示例如下所示:
其中,<action>标签代表着代理服务提供的服务,上面示例中给出了具体获得getRemoteData的服务,<argumentList>标签代表着该服务的参数,getRemoteData服务需要三个参数,分别是EUI-64地址,以及请求该操作需要发送信息到具体的节点地址空间。
步骤4、控制处理过程。对设备服务进行描述,实际上是规定了一种对1394设备进行远程控制和访问的方法,根据该方法实现UPnP控制点对1394设备的控制和访问。UPnP协议中采用SOAP协议(简单对象访问协议)进行数据的控制,SOAP协议提供了使用XML和HTTP来进行远程过程调用的方法。
UPnP控制点的控制请求都是基于SOAP协议的,但是1394协议并不支持SOAP协议,必须进行协议的转化,将UPnP的控制信息转化为1394的控制信息。于是UPnP/1394软件桥中的IP over 1394模块将基于IP协议的SOAP信息进行解压,获得其参数,并且通过UPnP/1394软件桥内存管理模块得到该数据中的接收地址,并调用1394通信层模块,发送给目的1394设备。如图8所示,UPnP控制点向1394设备发送节点服务控制信息,或者发送代理服务请求信息。对于UPnP控制点向1394设备发送的节点服务控制信息,一般都是通过向其配置ROM所在的地址空间发送读写请求信息获得。对于UPnP控制点向1394设备发送代理服务请求,请求的数据分为两种类型,一种是对于数据的正确性要求比较高的数据,比如传感器数据或是文件数据,由UPnP/1394软件桥提供的代理服务,通过封装在异步数据包传送(比如LoadFile服务和getRemoteData服务)完成;另一种是对于正确性要求没那么高要求的音视频数据,但是对于带宽以及QoS保障有一定的要求,由UPnP/1394软件桥提供的代理服务,通过等时地传输方式进行数据传输完成。
具体本步骤中,可分为如下子步骤4.1~步骤4.4:
步骤4.1:当UPnP控制节点对1394设备的服务比较感兴趣时,发送SOAP请求信息给UPnP/1394软件桥,请求1394网络设备中的服务。
无论UPnP控制点向1394设备发送节点服务控制信息,或者发送代理服务请求信息,都发送一个SOAP请求信息给UPnP/1394软件桥。如图8中,S41中UPnP控制点发送SOAP节点服务控制信息,S51中UPnP控制点发送SOAP代理服务请求信息(GetFile),S61中UPnP控制点发送SOAP代理服务请求信息(getStream)给UPnP/1394软件桥。
UPnP控制点想要获得1394设备的文件数据时,会向UPnP/1394软件桥发送如上的SOAP请求信息。下面是一个请求LoadFile的SOAP请求信息的示例:
上面SOAP请求信息发送的地址为服务描述文档中标签<controlURL>中所记录的地址。
步骤4.2:UPnP/1394软件桥更新SOAP状态信息表,保存SOAP请求信息及相应的控制状态,并对接收到的SOAP请求信息进行解析,获取所请求的目的1394设备的64位的唯一标识符EUI-64,并且从如表5所示的1394设备地址表查找到被请求的1394设备的节点ID以及最大有效数据长度等信息,在表1所示的1394设备的地址管理表中找到该数据的响应发送地址即UPnP/1394软件桥的数据接收地址。之后,UPnP/1394软件桥将解析的SOAP请求信息封装为1394命令数据包或是1394请求数据包,发送给1394网络,同时,更新SOAP状态信息表中对应SOAP请求的状态。
当1394系统发生总线复位时或是其他情况导致了服务中断,当网络再次开启的时候,UPnP/1394软件桥会查询SOAP状态信息表,根据状态信息来完成未完成的操作。如表6所示,SOAP状态信息表,记录了UPnP控制点的SOAP请求信息的处理状态,包括:UPnP控制点的IP地址、服务操作、目的1394设备的唯一标识符、请求信息的处理状态、参数名称和参数类型。请求信息的处理状态总共由四种,分别为确认请求,请求中,超时和完成。确认请求指UPnP/1394软件桥接收了请求,但还没有发送命令到相应的1394设备。请求中表示已经发送了命令到相应的1394设备,但是该1394设备还未返回数据,未完成相应的服务操作。超时是指该服务操作经过了一段时间没有反应,则表示在网络中或是受控设备中出现了故障。完成表示了该服务操作顺利完成。通过这几个状态,可以非常方便地进行故障的检测或是服务操作的迅速恢复。如当状态是确认请求时,则证明UPnP/1394软件桥并未转发该服务操作,需要根据表格6查询未完成的服务操作和受控设备的EUI-64,继续完成操作。
表6SOAP状态信息表
LoadFile表示访问1394设备内部文件的代理服务。表6中的RTP(Real-time TransportProtocol)表示实时传输协议格式。
步骤4.3:在被请求的1394设备完成所请求的操作后,返回数据给UPnP/1394软件桥。
步骤4.4:UPnP/1394软件桥将1394设备发送的数据进行封装返回给UPnP控制点,同时,更新SOAP状态信息表中的状态。
将步骤4.1中的示例:请求getRemoteData的SOAP请求信息转化为IEEE1394异步请求信息如表7所示,其事务代码域值为5,数据区域封装了识别该操作的getRemoteData信息,并且更新表6中该SOAP请求信息的状态为请求中。其中的节点ID通过EUI-64地址查询1394设备地址表获得,缓冲区地址高字节和低字节从address变量中获得。
表7请求信息的数据包格式
当提供该服务(getRemoteData)的1394设备接收到这个请求的时候,该设备解析出getRemoteData信息后,调用相应的功能执行服务,返回数据一般是封装在异步数据块写请求的数据包中,异步数据块写请求的数据包格式如表8所示。UPnP/1394软件桥获得异步数据块写请求的数据包后,去掉包头获得有效数据,存放在本地的缓冲区。将缓冲区里面的数据转化成SOAP响应数据。UPnP/1394软件桥接收到IEEE1394节点响应信息,更新表6中的状态信息,并将该SOAP响应数据封装为SOAP信息格式,发送给UPnP控制点。
当操作完成后,返回SOAP响应数据包。UPnP/1394软件桥通过遍历SOAP状态信息表,完成未完成的SOAP请求。
表8异步数据块写请求的数据包格式
表7和表8中:
目标节点ID:为10位的总线ID和位的物理ID,由它寻找到通信中的主机节点。
事务标签:为节点发送的每一个事务指明了一个第一无二的标签。响应子事务中使用的事务标签和它相对应的请求子事务的标签相同,方便判断请求响应信息对。
事务代码:表明了数据包要执行的事物的格式,如数据块写请求,写响应,异步数据流等。
源节点ID:指明发送数据包的节点的ID号。
数据长度:请求数据长度。
下面给出的是针对步骤4.1中的示例:请求getRemoteData的SOAP请求,1394设备返回来数据RemoteData。
其中,getRemoteDataResponse表示的是对“getRemoteData”操作的响应信息,其中“ResultData”表示的是返回的请求数据,“Remote_Data就是返回来的具体数据了。在UPnP/1394软件桥接收到了SOAP请求信息后,必须返回一个SOAP响应信息。其中获取到的数据为RemoteData,其大小不能超过64k-1,若超过则需要以多个SOAP响应的方式返回。
本步骤中还给出了等时数据传输的具体方案。若UPnP/1394软件桥要获取1394网络中的音视频数据,其需要采用等时数据的传输方式。UPnP/1394软件桥要解决协议的转换,以及几种不匹配问题如传输速率,包长度,包发送速率不匹配等。在进行等时数据传输时,等时控制器每隔125us发布一个循环开始数据包,在接下来的总线周期内进行等时数据包的传输。UPnP/1394软件桥在处理等时数据包时,不能一个数据包一个数据包的处理,而是一个缓冲区一个缓冲区的处理。如图7所示,具体实施方案是:在UPnP/1394软件桥里面建立一个缓冲池及一个缓冲区处理线程,缓冲池里面含有四个缓冲区,在1394通信层和UPnP over 1394层共享缓冲区。1394通信层拥有缓冲池中缓冲区,接收等时通道上的数据,当接收了一定量的数据包后,缓冲区被填满,发送一个信号给缓冲区处理线程,将填满的缓冲区交给UPnP over1394层,UPnP over 1394层接收该缓冲区的数据并且进行协议转换等相关处理。
因1394网络中等时数据流的传输带宽一般为100Mbps,200Mbps,400,800,1.6G甚至达到3.2G,而现在的通用的Intent传输速率都在10Mbps以下,在采用上述等时数据流时,需要解决两种总线的速率不匹配问题,在UPnP/1394桥中必须对视频进行压缩,本发明的UPnP/1394软件桥中,实现了H264压缩算法,这是目前使用十分广泛的压缩算法之一,本发明中采用这种算法来解决两种总线的速率不匹配。等时传输方式是一种具有QoS保证的传输过程。而UPnP协议是基于IP的协议,是一种尽力而为的协议,不提供QoS保证。这样1394网络中的数据传递到以太网中的数据时必须经过一些拥塞控制算法才能确保接收端一定的服务质量。在UPnP协议中,RTP和HTTP协议是用于多媒体数据传输常用的两个协议。在本发明中采用RTP协议和基于H264的压缩控制算法从而达到应用层QoS。
当UPnP控制点希望获取某个1394设备中的视频数据时,会发送以下SOAP请求信息。
其中,getStream代表着请求的是UPnP/1394软件桥的代理服务中某个EUI-64的1394设备的视频流,传输协议采用的是RTP协议,视频数据的格式为H264格式。
UPnP/1394软件桥接收到上面的SOAP请求信息以后,通过查找EUI-64找到相应的1394设备的节点ID号,将SOAP请求信息转换成IEEE1394请求信息,请求信息的格式如表7所示,然后转换后的IEEE1394请求信息发送给目标1394设备。目标1394设备接收到该服务请求以后,向等时资源管理器处分配到等时资源,包括传输所需要的带宽,传输频道,以及视频信息的准备等,并且传回状态响应给UPnP/1394软件桥,UPnP/1394软件桥返回以上getstream操作的相应信息给UPnP控制点,UPnP控制点打开支持RTP/RTCP协议的UPnP播放设备进行播放。
UPnP/1394UPnP软件桥接收等时数据包中的视频数据(1394的高带宽保证这种视频流数据是未经任何压缩的视频数据),存放在相应的缓冲区内,当接收完一帧数据后,将该数据采用X264编码,并封装上RTP报头、UDP报头和IP报头,通过IP网络发送给支持RTP协议的UPnP视频服务器,这样实现了视频流的传输。RTP(实时传输协议)接收者利用RTCP(实时传输控制协议)报告包提供接收质量反馈。QoS反馈控制主要通过RTCP的接收方报告来完成,通过提取RTCP中接收方报告SR的反馈信息估计网络的可用带宽,再根据可用带宽动态调整编码的参数,使发送码率小于网络的可用带宽,从而保证传输的QoS。在本发明中,采用基于模型的方法估计网络吞吐量x:
其中,MTU是连接的最大数据包的长度,默认字节是1400字节,RTT是数据包的往返时间,Y1是当前滤波后的丢包率。
参数RTT和p是根据RTCP的反馈参数获得。本发明中选择起始帧量化参数start_qp为视频编码的调节参数:
start_qp=a*bxb+c (2)
其中,x为输出码率,也就是可用带宽,a,b,c为待定系数,通过非线性列文伯格-马夸尔特法(Levenberg-Marquardt)优化后,得到:
start_qp=-0.29*x0.5+39.15 (3)
具体QoS控制等时数据流的传输的步骤如下:
(1)从1394等时数据缓冲区接收等时数据,将等时数据通过X264编码器进行压缩,打包为RTP格式数据,然后保存到缓冲区中发送到UPnP网络中,在获取RTCP的接收方报告(RR)后,对其进行数据分析,获得数据包丢失信息,既丢包率Y,既其“fraction lost”字段的值,该值即为一段时间内的丢包信息。
(2)为了不使视频数据的变化过于明显,对当前的丢包率进行低通滤波。
Y1=(1-d)Y+dY0 (4)
其中,Y1表示滤波后的丢包率,Y为通过此次RTCP的RR数据的丢包信息计算的丢包率,Y0为上次滤波后的丢包率,d为Y0和Y1之间的相关性系数。其中d越大证明越相关,在本发明中取参数d为0.3,根据视频的不同需求,其对丢包率的要求来对带宽进行估计。
判断当前滤波后的丢包率Y1是否在(0.2,0.5)之间,若是,则证明当前码流适应当前网络状况,等待接收下一个RTCP的RR数据包,然后执行(1);否则进行下一步骤。
(3)根据式(1)计算当前网络吞吐量λ,输出码率x就是网络吞吐量λ。
(4)令X264编码器的输出码率为x,由式(3)确定起始帧量化参数start_qp。
(5)以计算出来的start_qp计算出来当前的量化参数QP,并以此参数进行编码。直到接受到下一个RTCP的RR数据包,然后重新执行(1)~(5)。
如图5所示,步骤4.2中UPnP/1394软件桥对接收到的SOAP请求信息进行处理的流程是:
步骤a,1394/UPnP软件桥接收到UPnP网络发来的数据包后,将该数据包拷贝到数据缓冲区中。等待下一步处理。
步骤b,判断接收到的数据包是否是SOAP请求信息,若不是,则结束对该数据包的操作,若是,则解析该SOAP请求信息,从中获取所请求的1394设备的64位的唯一标识符EUI-64,节点偏移地址,服务操作等,通过查找1394设备地址表,获得1394设备的节点ID号或者等时通道。将解析的SOAP请求信息封装为1394的控制/命令/请求信息,发送给被请求的1394设备。并且准备接受IEEE1394设备的返回数据。
如图5所示,步骤4.4,UPnP/1394软件桥对接收到的1394设备发送来的数据包进行处理的过程是:
步骤A:1394/UPnP软件桥接收到1394网络发来的数据包后,将该数据包拷贝到数据缓冲区中。
步骤B:判断数据包类型。返回的数据类型分为两种,一种是以异步数据包的形式返回,另外一种是以等时数据包的形式返回。若是异步数据包执行步骤C,若是等时数据包执行步骤D。
步骤C:当UPnP/1394软件桥接收到异步数据包时,将该数据包添加到缓冲区,并且判断缓冲区的大小,当缓冲区大小达到了SOAP数据的封装大小N时,将缓冲区内的数据重组为SOAP数据,通过TCP/IP协议栈发送给UPnP网络。在判断数据包是否发送结束时,根据表4中的数据包长度来判断,如果小于该长度,则证明数据包传输结束。
步骤D:当UPnP/1394软件桥接收到的是等时数据包时,将等时数据包填入缓冲池中的缓冲区,当填满一个缓存区时,对该缓存区进行RTP封装,然后通过TCP/IP协议栈发送给UPnP网络中的支持RTP协议的视频播放器。缓冲区的大小正好是一帧数据的大小。在使用等时数据流的概念时,会产生一定的时间延迟,在本发明中,每个缓冲区由160个数据包组成,这样每20ms(每125us发送一个数据包,160*125us=20ms)完成一帧完整数据的发送。在等时数据包的传送过程中,还有QoS反馈控制等时数据包的传输。
如图8中给出了UPnP控制点发送节点服务控制信息给1394设备的过程,具体是:
S41:UPnP控制点发送SOAP节点服务控制信息给UPnP/1394软件桥;
S42:UPnP/1394软件桥保存并解析SOAP节点服务控制信息,并更新SOAP请求状态表中对应的状态,对解析的信息打包成1394命令或请求数据包发送给目的1394设备。
S43:目的1394设备执行接收到的1394命令或请求数据包中的控制命令,执行完毕后,返回信息给UPnP/1394软件桥。
S44:UPnP/1394软件桥对目的1394设备返回的信息封装成SOAP节点服务响应信息,发送给UPnP控制点。
图8中的UPnP控制点发送getRemoteData代理服务请求信息给1394设备的过程:
S51:UPnP控制点发送SOAP代理服务请求信息(getRemoteData,LoadFile)给UPnP/1394软件桥,获取某个1349设备的采集数据或是文件数据。
S52:UPnP/1394软件桥保存并解析SOAP代理服务请求信息,并更新SOAP请求状态表中对应的状态,然后发送1394异步写请求信息给目的1394设备,同时更新SOAP状态信息表。
S53:目的1394设备接收到该请求信息,调用相应的应用函数完成数据采集任务。发送写响应信息的异步数据包给UPnP/1394软件桥。
S54:UPnP/1394软件桥将接收到的异步数据包解析,存储,协议转换,封装为SOAP代理服务响应信息返回给UPnP控制点,并更新SOAP状态信息表。
1394设备中最重要的用途是传输音视频等数据量比较大的音视频数据。如图8所示,当UPnP控制点想获取1394设备中的视频信息时,具体流程如下:
S61:UPnP控制点发送SOAP代理服务请求信息(getStream)给UPnP/1394软件桥,请求获得1394设备的视频流数据。
S62:UPnP/1394软件桥保存该SOAP代理服务请求(getStream),并将其转化为1394AV/C(音视频控制信息)信息发送给目标1394设备。
S63:目的1394设备申请等时资源,比如获取等时信道,申请等时带宽以及开启相应的视频采集功能,然后返回当前AV/C状态信息给UPnP/1394软件桥。
S64:UPnP/1394软件桥接收到1394设备发来的AV/C状态信息,更新SOAP状态信息表,发送SOAP代理服务响应给UPnP控制点,此时UPnP控制点开启支持RTP协议的视频播放器,开始访问1394网络中的视频信息。
S65:目的1394设备发送等时视频流数据给UPnP/1394软件桥。
S66:UPnP/1394软件桥将等时视频流数据进行H264压缩和RTP封装,然后发送给UPnP控制点指定打开的UPnPAVplayer(UPnP音视频播放器)。
S67:为了解决1394协议和UPnP协议之间的传输速率不匹配、QoS不匹配等问题,在UPnP/1394软件桥中加入了QoS控制模块,接收RTCP的发送端报告或接收端报告,进行相应的码流控制。
S68:当UPnP控制点结束视频传输过程时,分别发送SOAP控制请求关闭视频服务,UPnP/1394软件桥获得该控制命令后,转化为1394的AV/C结束控制信息,发送给1394视频传输设备,该1394设备释放等时资源分配的频道带宽等。
当UPnP/1394软件桥关闭时,发送SSDP BYEBYE信息,声明其设备提供的服务不可用了。
此外,UPnP/1394软件桥还支持UPnP的事件处理的完成。UPnP的事件处理包括UPnP事件订阅和通知。当某个1394设备提供的服务改变或是其服务内容的状态改变时就会向订阅了该请求的UPnP控制点或是设备发布更新通知。在IEEE1394网络中,当总线复位发生时,会伴随着整个网络拓扑的变化,这时服务和状态会发生变化。于是在本发明中处理的事件即为总线复位事件。当UPnP节点接收封装在GENA协议中的订阅事件时,会将该订阅信息保存在一个链表里面,当其订阅的事情发生时,会想该GENA包含的URL发送通知请求,通知其订阅的事件发生了,于是UPnP控制点可以进行接下来的操作。
GENA信息如下:
SUBSCRIBE/1394Eventhttp/1.1
HOST:IEEE1394/UPnP软件桥在寻址过程中的IP地址和端口address:port
CALLBACK:<deliveryURL)
NT:uPnP:bus reset
TIMEOUT:Second-requested subscription duration
其中,HOST表示的是UPnP/1394软件桥接收订阅信息的地址。CALLBACK表示的是当发生订阅信息时,该通知的发送地址,NT表示的是订阅的事件名称。TIMEOUT是指订阅的时间超时时间。如果从UPnP接受到订阅事件开始,直到经历了TIMEOUT时间,还没有发生订阅事件,则该订阅时间无效。如果该订阅事件发生了,则向CALLBACK地址返回该事件发生的信息。
Claims (10)
1.一种基于IEEE1394与UPnP技术的远程控制和访问装置,也称为UPnP/1394软件桥,包括UPnP堆栈层模块和1394通信层模块,UPnP堆栈层模块实现了UPnP协议中的SSDP协议、GENA协议和SOAP协议,其特征在于,该装置还包括UPnP over 1394层模块;所述的UPnP over 1394层模块实现UPnP协议与1394协议之间的转换,包括七个模块:服务描述模块、数据库模块、ARP模块、IP over 1394模块、缓冲区控制模块、UPnP/1394软件桥内存管理模块和QoS控制模块;1394通信层模块用于接收UPnP over 1394层模块的信息并发送给1394网络,或是接收1394网络的信息并转发给UPnP over 1394层模块;
UPnP/1394软件桥内存管理模块用于对UPnP/1394桥设备的内存地址进行调度管理,通过维护UPnP/1394软件桥的地址管理表完成调度;ARP模块用于地址寻址,将各1394设备的节点ID和唯一标示符保存在1394设备地址表中;服务描述模块用于将IEEE1394网络中的1394设备提供的服务进行描述,服务包括节点服务和代理服务,节点服务包括:设置传输速率、获得可用带宽、控制总线复位、发送物理层数据包、获得总线管理器、设置时间码、获得总线节点数、以及开启/关闭端口,代理服务包括:访问1394设备内部文件、获得1394传感器数据、以及获取1394视频采集设备的视频数据;IP over 1394模块进行协议的转化,将UPnP的控制信息进行解析得到目的1394设备的唯一地址标识符和节点内存地址,并通过1394设备内存管理模块得到返回数据的接收地址,然后调用1394通信层模块,发送给目的1394设备;缓冲区控制模块用于控制等时数据流的传输,建立了一个缓冲池及一个缓冲区处理线程,缓冲池中包含四个缓冲区,每个缓冲区的大小为一帧数据的大小,1394通信层模块接收等时通道上的数据填充缓冲区,当一个缓冲区被填满,则发送一个信号给缓冲区处理线程,将填满的缓冲区交给UPnP over 1394层模块;QoS控制模块用于保证等时数据流传输的服务质量;数据库模块用于存储各数据表的数据,包括:UPnP/1394软件桥的地址管理表,1394设备地址表,SOAP状态信息表;
所述的SOAP状态信息表,记录了UPnP控制点的SOAP请求信息的处理状态,包括:UPnP控制点的IP地址、服务操作、目的1394设备的唯一标识符、处理状态、参数名称和参数类型;处理状态总共由四种,分别为确认请求、请求中、超时和完成;
其中,UPnP表示通用即插即用,SSDP协议表示简单服务发现协议,GENA协议表示普通用事件通知体系协议,SOAP协议表示简单对象访问协议,ARP表示地址解析协议,QoS表示服务质量。
2.根据权利要求1所述的远程控制和访问装置,其特征在于,所述的UPnP/1394软件桥的地址管理表,是一个将远程控制操作和UPnP/1394软件桥用于接收远程控制操作所对应的返回数据的内存地址进行映射的数据表,对于UPnP/1394软件桥的寄存器空间,采用16进制表示的48位地址范围是FFFFF0000000-FFFFFFFFFFFF,对于UPnP/1394软件桥的内存空间,采用16进制表示的48位地址范围为000000000000-FFFFDFFFFFFF,UPnP/1394软件桥内存管理模块通过内存映射表对该48位地址进行合理的分配,保证某段内存空间的独占和防止内存碎片的形成。
3.根据权利要求1所述的远程控制和访问装置,其特征在于,所述的1394设备地址表,用于记录各1394设备的信息,包括:节点ID、最大有效数据长度、最大传输速度和硬件地址;所述的硬件地址是指1394设备的唯一标示符。
4.一种应用权利要求1所述的远程控制和访问装置的基于IEEE1394与UPnP技术的远程控制和访问方法,其特征在于,包括如下步骤:
步骤1:当1394设备上有节点的插入或移除或是UPnP控制点发出了总线复位信息时,发生总线复位,总线复位后,初始化UPnP/1394软件桥的地址管理表;UPnP表示通用即插即用;
步骤2:设备寻址,包括UPnP/1394软件桥的寻址和1394设备的寻址;1394设备的寻址通过下面过程实现:UPnP/1394软件桥向1394网络广播ARP请求报文,请求获取各1394设备的惟一标识符,各1394设备发回ARP应答报文,UPnP/1394软件桥在收到ARP应答报文后,获得各1394设备的惟一标识符和节点ID号,并保存到1394设备地址表中;ARP表示地址解析协议;
步骤3:设备发现,包括如下子步骤:
步骤3.1:UPnP/1394软件桥向1394设备发送服务描述文档请求信息,生成1394设备的服务描述文档;所述的UPnP/1394软件桥实现了节点服务和代理服务;节点服务包括:设置传输速率,获得可用带宽,控制总线复位,发送物理层数据包,获得总线管理器,设置时间码,获得总线节点数,以及开启/关闭端口;代理服务包括:访问1394设备内部文件,获得1394传感器数据,获取1394视频采集设备的视频数据;
步骤3.2:UPnP/1394软件桥完成服务描述文档后,通过SSDP通知信息对UPnP网络中的UPnP控制点公布1394设备的服务;SSDP表示简单服务发现协议;
步骤4:UPnP控制点对1394设备进行控制和访问,具体包括如下子步骤:
步骤4.1:当UPnP控制节点对1394设备的服务比较感兴趣时,发送SOAP请求信息给UPnP/1394软件桥,请求1394网络设备中的服务;
步骤4.2:UPnP/1394软件桥在接收到SOAP请求信息后,将SOAP请求信息记录在SOAP状态信息表中,并对接收到的SOAP请求信息进行解析,通过1394设备地址表查找到目的1394设备的节点ID,通过UPnP/1394软件桥内存管理模块及其维护的地址管理表,在1394/UPnP软件桥中分配唯一的地址空间范围给该操作,在该地址空间范围内等待接收目的1394设备的返回数据,然后将解析的SOAP请求信息封装为符合1394协议的数据包发送给1394网络的目的1394设备;在此过程中,更新SOAP状态信息表中对应SOAP请求的处理状态;SOAP协议表示简单对象访问协议;
步骤4.3:在目的1394设备完成所请求的操作后,返回数据给UPnP/1394软件桥,更新SOAP状态信息表中对应SOAP请求的处理状态;
步骤4.4:UPnP/1394软件桥将1394设备返回的数据进行SOAP封装后返回给UPnP控制点,并更新SOAP状态信息表中对应SOAP请求信息的处理状态。
5.根据权利要求4所述的基于IEEE1394与UPnP技术的远程控制和访问方法,其特征在于,步骤1中所述的初始化UPnP/1394软件桥的地址管理表,具体是:建立一个将远程控制操作和UPnP/1394软件桥用于接收远程控制操作所对应的返回数据的内存地址进行映射的数据表,该映射表就是地址管理表,对于寄存器空间,采用16进制表示的48位地址范围是FFFFF0000000-FFFFFFFFFFFF,对于存储空间,采用16进制表示的48位地址范围为000000000000-FFFFDFFFFFFF。
6.根据权利要求4所述的基于IEEE1394与UPnP技术的远程控制和访问方法,其特征在于,步骤2中所述的1394设备地址表,其中记录各1394设备的信息,包括:节点ID、最大有效数据长度、最大传输速度和硬件地址;所述的硬件地址是指1394设备的唯一标示符。
7.根据权利要求4所述的基于IEEE1394与UPnP技术的远程控制和访问方法,其特征在于,步骤4.2中所述的SOAP状态信息表,其中记录了UPnP控制点的SOAP请求信息的处理状态,包括:UPnP控制点的IP地址、服务操作、目的1394设备的唯一标识符、处理状态、参数名称和参数类型;处理状态总共由四种,分别为确认请求、请求中、超时和完成。
8.根据权利要求4所述的基于IEEE1394与UPnP技术的远程控制和访问方法,其特征在于,所述的步骤4.4具体包括如下子步骤:
步骤A:1394/UPnP软件桥接收到1394网络发来的数据包后,将该数据包拷贝到数据缓冲区中;
步骤B:判断数据包类型,返回的数据类型分为两种,一种是以异步数据包的形式返回,一种是以等时数据包的形式返回,若是异步数据包执行步骤C,若是等时数据包执行步骤D;
步骤C:当UPnP/1394软件桥接收到异步数据包时,将该数据包添加到缓冲区,并且判断缓冲区的大小,当缓冲区大小达到了SOAP数据的封装大小N时,将缓冲区内的数据重组为SOAP数据,发送给UPnP网络;
步骤D:当UPnP/1394软件桥接收到的是等时数据包时,将等时数据包填入缓冲池中的缓冲区,当填满一个缓存区时,对该缓存区进行RTP格式封装,然后发送给UPnP网络中的支持RTP协议的视频播放器;所述的缓冲区的大小为一帧数据的大小,缓冲池中包含四个缓冲区;在等时数据包的传送过程中,还通过QoS控制模块保证等时数据传输的服务质量,QoS表示服务质量,RTP表示实时传输协议。
9.根据权利要求8所述的基于IEEE1394与UPnP技术的远程控制和访问方法,其特征在于,所述的缓冲区,由160个数据包组成,每20ms完成一帧完整数据的发送。
10.根据权利要求8所述的基于IEEE1394与UPnP技术的远程控制和访问方法,其特征在于,所述的通过QoS控制模块保证等时数据传输的服务质量,具体通过如下步骤实现:
(1)从1394等时数据缓冲区接收等时数据包,将等时数据包通过X264编码器进行压缩,打包为RTP格式数据,然后保存到缓冲区中发送到UPnP网络,在获取RTCP的接收方报告RR后,对报告RR进行数据分析,获得丢包率Y;RTCP表示实时传输控制协议;
(2)对当前的丢包率进行低通滤波,得到滤波后的丢包率Y1:
Y1=(1-d)Y+dY0
其中,Y0为上次滤波后的丢包率,d为Y0和Y1之间的相关性系数,取值为0.3;
判断当前滤波后的丢包率Y1是否在(0.2,0.6)之间,若是,则证明当前码流适应当前网络状况,等待接收下一个RTCP的RR数据包,然后执行(1);否则进行下一步骤;
(3)确定当前输出码率x:
其中,MTU是连接的最大数据包的长度,默认字节是1400字节,RTT是数据包的往返时间;
(4)令X264编码器的输出码率为x,确定起始帧量化参数start_qp:
start_qp=-0.29*x0.5+39.15
(5)根据(4)得到的start_qp计算出来当前的量化参数QP,并以量化参数QP进行编码;直到接收到下一个RTCP的RR数据包,然后转(1)执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210177653.8A CN102685149B (zh) | 2012-05-04 | 2012-05-31 | 一种基于IEEE1394与UPnP技术的远程控制和访问方法及装置 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210138151 | 2012-05-04 | ||
CN201210138151.4 | 2012-05-04 | ||
CN201210177653.8A CN102685149B (zh) | 2012-05-04 | 2012-05-31 | 一种基于IEEE1394与UPnP技术的远程控制和访问方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102685149A CN102685149A (zh) | 2012-09-19 |
CN102685149B true CN102685149B (zh) | 2015-03-25 |
Family
ID=46816512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210177653.8A Expired - Fee Related CN102685149B (zh) | 2012-05-04 | 2012-05-31 | 一种基于IEEE1394与UPnP技术的远程控制和访问方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102685149B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103888437B (zh) * | 2013-03-01 | 2017-09-29 | 上海富欣智能交通控制有限公司 | 控制中心发送数据到紧急应急中心的协议转换方法 |
CN104052759B (zh) * | 2013-03-11 | 2017-05-10 | 中国科学院计算技术研究所 | 一种物联网即加即用技术的实现系统 |
US20160192403A1 (en) * | 2014-12-30 | 2016-06-30 | Qualcomm Incorporated | Mechanism to provide lte voice, internet and embms services over ethernet for connected home architecture |
CN107800625B (zh) * | 2016-08-30 | 2020-07-07 | 新华三技术有限公司 | 一种报文转发方法及装置 |
CN112260924A (zh) * | 2020-09-14 | 2021-01-22 | 江苏方天电力技术有限公司 | 一种应用于电力物联网的uPnP网桥构建方法 |
CN115297187B (zh) * | 2022-07-12 | 2023-11-17 | 重庆大学 | 一种网络通讯协议与总线协议的转换装置及集群系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101184063A (zh) * | 2007-10-11 | 2008-05-21 | 华为技术有限公司 | 控制非通用即插即用UPnP设备的方法、装置及其系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100636380B1 (ko) * | 2004-12-17 | 2006-10-19 | 한국전자통신연구원 | 이종의 홈네트워크 미들웨어상에 접속해 있는 홈디바이스들간의 상호 연동을 위한 홈네트워크 범용미들웨어 브릿지 시스템 및 그 방법 |
-
2012
- 2012-05-31 CN CN201210177653.8A patent/CN102685149B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101184063A (zh) * | 2007-10-11 | 2008-05-21 | 华为技术有限公司 | 控制非通用即插即用UPnP设备的方法、装置及其系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102685149A (zh) | 2012-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102685149B (zh) | 一种基于IEEE1394与UPnP技术的远程控制和访问方法及装置 | |
US7324531B2 (en) | Gateway enabling data communication between devices having different middlewares | |
US7292859B2 (en) | Apparatus and method for managing device information through networks | |
US8478908B2 (en) | Fieldbus gateway using virtual serial filedbus port and data transmission method thereof | |
US6885643B1 (en) | Method and device for facilitating efficient data transfer via a wireless communication network | |
US6366964B1 (en) | Method of and apparatus for dynamically enumerating objects representing devices within an IEEE 1394 serial bus networking | |
US7385981B2 (en) | Apparatus for converting internet protocol address and home network system using the same | |
US20080235358A1 (en) | Proxy Device, Network System, and Communication Method | |
US6446142B1 (en) | Method of and apparatus for dynamically binding subobjects into objects to represent functions and characteristics of a device within an IEEE 1394 serial bus network | |
US20080288704A1 (en) | Method and system for universal serial bus (usb) over a/v bridging and a/v bridging extensions | |
US20030018776A1 (en) | System and method for controlling home appliances | |
US20030177270A1 (en) | Information processing apparatus | |
CN110198345B (zh) | 一种数据请求方法、系统及装置和存储介质 | |
EP1696606A1 (en) | Service framework for home network | |
JP2005236981A (ja) | 複数の規格を含むネットワークにおけるデータ転送方法 | |
JP4571751B2 (ja) | 1つまたは複数の1394バスを有するネットワークにおける同報通信ディスカバリー | |
CN102763373A (zh) | 基于远程访问使用本地网络装置的服务的方法和设备 | |
US20010006518A1 (en) | Information transfer method radio terminal and radio gateway device using datalink layer signaling of protocol identifier | |
JP2010114721A (ja) | ホームネットワーク内の端末から広域ネットワークへコンテンツを送信するコンテンツ送信方法及びシステム | |
MX2008012996A (es) | Metodo y aparato de comunicacion entre modem de cable embebido y convertidor de señal embebido. | |
JP3643575B2 (ja) | ネットワークブリッジ装置及び方法 | |
US6295280B1 (en) | Method for network node recognition | |
CN101785246B (zh) | 接收/发送事件消息的方法、受控设备和控制点 | |
KR101696795B1 (ko) | 범용 플러그 앤 플레이 네트워크 상의 서비스를 포트 포워딩을 이용하여 원격 디바이스에게 제공하기 위한 방법 및 시스템 | |
Kim et al. | Seamless network bridge for supporting interoperability upnp-zigbee |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150325 Termination date: 20150531 |
|
EXPY | Termination of patent right or utility model |