目录
引言 (1)
第1章设备发现 (2)
1.1链路选择 (2)
1.2IP地址配置 (3)
1.3设备枚举 (3)
1.4设备添加与删除 (4)
第2章GVCP协议 (5)
其中两个主要的协议2.1基本概念 (5)
2.2通道 (5)
2.3其他 (10)
第3章引导寄存器 (13)
3.1引导寄存器 (13)
3.2相机的标准特征表 (21)
引言
GigE Vision是一种通信接口标准,可用于各种网络拓扑上的视觉软件与视频流设备间的交互。该标准是基于UDP/IP协议体系,并构成了Gige Vision协议(工作在应用层,包括GVCP和GVSP两个协议)。需要的设备包括IP网络上各种软硬件摄像机、处理器、路由器等。本说明中,设备指的是一个GigE Vision兼容的可控设备,而应用程序指运行在一台主机上的一个与GigE Vision兼容的控制程序。
本说明分三部分,即设备发现、GVCP协议和引导寄存器,分别在对应的章节中介绍。
第1章设备发现
PC在接入设备时,需要一种机制发现设备,即链路选择、IP地址配置、设备枚举。1.1链路选择
设备在接入PC后,需要确定所有通信链路哪些是可用的,然后与PC端协调选择相应速率的链路。共提供了4种不同类型的物理链路配置:
①单链路配置SL
②多链路配置ML
③静态链路聚合组配置sLAG
④动态链路聚合组配置dLAG
其中,头2个配置中,每个物理链路接口都有1个不同的IP地址;对于后2个配置,物理接口经过重组后,只有1个IP地址在程序中可见,物理链路的分组在MAC层执行,对于应用软件是透明的。
1.1.1单链路配置
最简单的配置,所有的流通道加到一个有效物理链路上,所有设备必须支持SL配置。
1.1.2多链路配置
一个设备必须最多支持4个不同的网络接口。接口#0(唯一支持GVCP)为主接口来控制设备的控制与消息通道,如设备发现总是在#0上执行,以确保设备使用不同的IP地址而不被多次发现。其他接口只支持附加的流通道,如发送或接收GVSP数据包。只能在#0中使用FORCEIP消息,其他接口必须使用静态IP、DHCP或LLA来获取其IP配置信息。
可以认为ML配置中的一个链接就是一个LAG。若支持多链路配置,必须在SCPx寄存器中指定流通道使用的具体接口,其network_interface_index字段在流通道与网络接口间提供了映射机制,如果映射采用硬编码,则该字段只读。
允许将每个网络接口视为一个不同的GigE Vision设备,则每个接口是独立的且具有合适的资源,这等价于将多个设备组合成一个单元。
负载平衡:网际协议IP会设计好一个路由使数据包到达接收端的正确接口上。在ML 中,为达到负载平衡,可分别将多个流通道一一关联到不同的链路,以平衡这些链路所需的整体网络带宽。
1.1.3链路聚合组配置LAG
IEEE802.1AX标准规范了LAG的相关特性。该标准下的电缆以太网交换机遵守IEEE 规范,这样可能不会平衡负载GEV流输送到多个外向端口上,这些端口通常使用Ethernet 帧的头部信息(有时为IP头)来作为其分配算法的输入参数,这些交换机在GVSP中是不可见的。由于LAG显示单个MAC/IP,这些交换机不能指出怎样去分配GVSP输送,可能在某交换机的一个外向端口上就停止输送了。
网络接口:只允许有一个聚合器,因此,所有与LAG关联的活动链接均绑定到该聚合器上。若支持链路聚合配置,设备只允许静态和动态LAG两个配置中有一个聚合器,且其应该使用与LAG相关的具有最小编号物理网路接口的MAC地址。故在引导寄存器中,只有一个“虚拟”网络接口可见。
GVCP影响:一个GVCP通道必须总是在LAG同一物理链路上被发送。
GVSP影响:定义比较宽松,使用round-robin分配算法平衡网络负载。首个流数据包可以在该聚合器的任意接口上传送,也可在新的数据块边界上重启一个round-robin新循环。
静态LAG和动态LAG:两者唯一区别在于IEEE802.1AX的LACP协议的使用。静态LAG用于增加流的有效带宽,假定这些链路的所有电缆走向同一目的地(如多端口NIC);
但如果布线不正确,LACP协议用来确保系统能正确绑定属于同一互连的物理链路,对于动态LAG,其保证了一个聚合器中所有链接都在同一伙伴间。
LAG事件:由于聚合组中的一个物理链路连接上或断开,而引起聚合速度改变时,设备应发送一个GEV_EVENT_LINK_SPEED_CHANGE事件。
1.2IP地址配置
该过程即分配一个IP地址给设备。GigE Vision设备支持DHCP、LLA和静态IP(可选)三种方式分配IP。该配置在设备启动或重启时执行。
1.2.1协议选择
每个IP配置协议的执行顺序必须是静态IP(若支持并启用)、DHCP(若启用)和LLA。
出厂默认静态IP禁用,DHCP启用,LLA一直可用。
1.2.2静态IP
静态IP相关的信息必须存储在设备的非易失内存中,如果没有该内存,则不能支持。如果设置的IP与同一网络上的设备IP冲突,设备就不能使用该IP地址并应告知用户,这时,设备必须使用下一个IP配置方案。RFC5227文档使用ARP协议来探测静态IP地址,以检测是否有潜在的冲突。如果分配的IP地址不能识别,程序可修改引导寄存器的静态IP 信息,设置为一个有效的状态或简单禁用静态IP。
1.2.3DHCP
一个DHCP可用标志存储在非易失内存中,如果没有储存介质,设备必须决定DHCP 是否可用。设备应支持DHCP选项:子网掩码和路由选项。
DHCP重传策略:使用DHCP,设备发送一个DHCPDISCOVER消息,DHCP服务器返回一个DHCPOFFER消息;设备发送一个DHCPREQUEST消息,服务器返回一个DHCPACK 或DHCPNAK消息。若设备没有从服务器接收到任何回应,需要重传上述消息,至多允许2次重传(因为最坏情况下设备分别发送3个上述消息)。如果没有DHCP服务器可用,设备在DHCP阶段一般会等待12s。
DHCP租借到期:设备停止使用IP地址,并重启IP配置循环。
1.2.4链路本地地址LLA
即私有IP。IP地址范围从169.254.1.0--169.254.254.255。必须一直被激活。
1.3设备枚举
在设备获得一个IP后,PC端程序需要收集网络上所有设备相关信息,如设备id、制造商、制造日期等。通过单播或组播UDP命令方式分别得到已知或未知IP的设备信息,并使用GVCP协议实现信息交互。GigE Vision提供2种机制来枚举设备:GVCP设备发现(强制性)和组播DNS/DNS服务发现(可选)。
1.3.1GVCP设备发现
非强制性(有利于最小化带宽使用)。如果设备没有完整的IP配置,则不能回应任一程序发出的设备发现请求消息,否则,在获得一个有效IP地址后,必须回应。
广播设备发现:UDP广播消息,目的IP地址255.255.255.255,该消息不经过路由器。若程序在一台多宿主机上,存在多个网卡,则可以使用一个子网定向广播。在回应报文中,设备必须设置源IP地址、子网掩码和默认网关信息,这些在IP配置时已获得。
单播设备发现:仅当设备IP地址被程序已知才使用该方式。可直接发送一个UDP数据包到该设备IP地址。设备对该类型消息必须返回一个单播回应报文给发送消息的程序。
将设备关联到枚举表:为方便将一个设备关联到设备发现列表的对于条目中,设备外壳上应有一个序列号和MAC地址标签。
1.3.2零配置发现
结合组播DNS和DNS服务发现。该机制将“主机”与“服务”这两个概念分开。一个服务有3个主要部分:类型(GVCP固定)、名称(识别特殊实例)及服务运行的UDP/TCP端口。服务可以拥有一个包含特殊实例详细信息的唯一TXT记录表。在GigE Vision上下文中,每个服务实例对应一个GVCP控制通道。
标准设备:通知具有一个服务的单台主机。
带链路聚合的标准设备:同上,多路连接可视为一个逻辑连接。
带多链路无连接聚合的标准设备:通知具有多个IP地址及一个服务的单台主机,并映射到ML配置。要求程序决定连接哪一个链路,该实现已定义了。
单链路的多控制器设备:通知具有多个GVCP服务的单台主机,每个服务被视为一个共享同一物理接口
的SL配置。在同一以太网端口和IP地址之后的所有独立的GVCP栈共享同一IP地址,因此,如果程序改变了一台设备的IP,其他台上的IP也会跟着变化。
多独立链路多控制器设备:每条链路通知一个对应不同的主机,每个主机通知单个服务。一般来说,每条链路只响应与该链路相应的唯一主机/服务名相匹配的查询,故在链路另一端的主机只能看到其连接上的接口,且能够通过特定链路降低可获得的服务数量。这映射到一个SL配置中,但每个服务有一个不同的物理接口。
组播DNS(mDNS):查询类型如A/AAAA记录(IP v4/IP v6名称解析),查询服务为SRV 记录。在组播DNS Internet草案中,为mDNS分配的IP v4组播地址为224.0.0.251,IP v6链路本地组播地址为FF02:FB,使用UDP端口5353,仅用UTF-8编码资源记录名,采用DNS顶级域名“.local.”。设备主机名由设备制造商名+设备名+设备MAC地址(大写十六进制)+".local."构成。
DNS服务发现:使用DNS来查特定的服务名称。主要任务是列举服务名称列表,及将服务名翻译成相关联的IP地址。合法的服务名需为“_gvcp._udp”。若支持DNS-SD,其TXT记录必须至少支持如下键:规范版本号、设备模式、MAC地址、设备供应商名、模型名、具体制造商版本信息、具体制造商串名、序列号、自定义名和实例号。
1.4设备添加与删除
程序应能够动态响应设备网络拓扑结构变化(在网络上添加或删除一个设备)。
1.4.1删除
现场删除主要由控制协议处理,然后程序暂停其发送的消息命令,或者一个控制与接收程序可暂停不再到来的GVSP发送端视频流。
1.4.2添加
有三种方法:
①程序发送DHCP请求给服务器,后者做出响应并通知添加设备的程序,但要求客户端与服务器端联系密切;
②程序定时发送一个DISCOVERY命令,但这会消耗一定的网络带宽,尤其是每次有很多设备需要回应,一种解决方案是提供给用户一个控件来刷新设备列表;
③执行组播DNS或DNS服务发现来发现新设备。
除了网络带宽要分配给新设备外,原来的设备不受新添加设备的影响。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论