大家好,欢迎来到IT知识分享网。
引言
在安全监控领域,有效的视频监控系统对于保障人们的生命财产安全至关重要。Pelco公司作为视频监控技术的先驱,不仅在摄像机制造上有着深厚的技术积累,还开发了多种通信协议以满足不同监控场景的需求。其中,Pelco-D协议因其高效性和可靠性,在行业中得到了广泛应用。
Pelco-D的由来与Pelco公司
Pelco-D协议是由Pelco公司开发的一种串行通信协议。Pelco(派尔高)公司,成立于1957年,是全球领先的视频监控设备制造商,以其高质量的产品和创新技术闻名于世。Pelco-D协议的开发,旨在提供一种稳定、高效的手段,用于控制Pelco品牌的摄像机及其他监控设备。
Pelco-D与Pelco-P的关系
Pelco-D协议与Pelco-P协议都是Pelco公司开发的通信协议,但它们服务于不同的应用场景。Pelco-P协议主要用于Pelco的矩阵切换系统,而Pelco-D协议则更侧重于摄像机的控制和配置。两者在设计上有一定的兼容性,但Pelco-D协议在数据传输速率和命令集上进行了优化,以适应现代网络化监控系统的需求。
Pelco-D协议组成
标准速度为4800bps,PELCO原装设备支持RS422和RS485兼容接口,国内大部分厂家主控和接收设备仅支持RS485接口。
Pelco-D协议由以下几个关键部分组成:
字节1 |
字节2 |
字节3 |
字节4 |
字节5 |
字节6 |
字节7 |
同步字节 |
地址码 |
指令码1 |
指令码2 |
数据码1 |
数据码2 |
校验码 |
该协议中所有数值都为十六进制数
1.同步字节
每个Pelco-D消息的开始都以特定的同步字节标识,确保接收设备能够正确识别消息的开始。
同步字节始终为FFH。
2.地址字段
用于指定消息的目标设备地址,确保消息能够正确送达预期的设备。
地址码为摄像机的逻辑地址号,地址范围:00H–FFH。
3.命令字段
包含执行特定操作的命令,如调整摄像机位置、更改设置等。
命令字 1和命令字2设置如下:
Bit 7 |
Bit 6 |
Bit 5 |
Bit 4 |
Bit 3 |
Bit 2 |
Bit 1 |
Bit 0 |
|
命令字1 |
Sence码 |
为0 |
为0 |
自动/手动扫描 |
摄像机打开/关闭 |
光圈关闭 |
光圈打开 |
焦距拉近 |
命令字2 |
焦距拉远 |
视角变宽 |
视角变窄 |
上 |
下 |
左 |
右 |
为0 |
Sence码与Bit4和Bit3有关。在Bit4和Bit3为1的情况下,如果Sence码为1,则命令就是自动扫描和和摄像机打开;如果Sence码为0,则命令就是手动扫描和摄像机关闭。当然如果Bit4或Bit3为0的话那命令就无效了。
4.数据字段
根据命令字段的需求,携带相应的数据或参数。
数据码1、2分别表示水平、垂直方向速度(00-3FH),FFH表示“turbo”速度
数据1表示镜头左右平移的速度,数值从$00(停止)到$3F(高速),另外还有一个值是$FF,表示最高速。
数据2表示镜头上下移动的速度,数值从$00(停止)到$3F(最高速)。
5.校验字段
:通常使用CRC或奇偶校验,确保数据传输的准确性和完整性。
校验码 = MOD[(字节2 + 字节3 + 字节4 + 字节5 + 字节6)/100H]
6.结束字节
:标识消息的结束,便于接收设备进行处理。
一些常用的控制指令
命令共2大类,motion命令,和非motion命令(注:可以称为基本命令和扩展命令/高级命令)。其中motion命令,在CMND2中Bit0始终为0。反之,该比特为1表示非motion命令。
motion命令包含了水平移动、垂直移动、光圈、变焦、对焦等功能。这类命令是由命令1和命令2的各个位来表示的。
要实现某一项功能,只要在对应的位置设为1即可,有些命令是可以同时设置的,但有些是不行的,比如,可以同时实现左(右)转和向上(下)转动,但不能同时左转及右转(两者是互斥的)。
Command |
Byte1 |
Byte2 |
Byte3 |
Byte4 |
Byte5 |
Byte6 |
Byte7 |
Up(上移) |
0xFF |
Address |
0x00 |
0x08 |
Pan Speed |
Tilt Speed |
SUM |
Down(下移) |
0xFF |
Address |
0x00 |
0x10 |
Pan Speed |
Tilt Speed |
SUM |
Left(左移) |
0xFF |
Address |
0x00 |
0x04 |
Pan Speed |
Tilt Speed |
SUM |
Right(右移) |
0xFF |
Address |
0x00 |
0x02 |
Pan Speed |
Tilt Speed |
SUM |
UpLeft(左上) |
0xFF |
Address |
0x00 |
0x0C |
Pan Speed |
Tilt Speed |
SUM |
UpRight(右上) |
0xFF |
Address |
0x00 |
0x0A |
Pan Speed |
Tilt Speed |
SUM |
DownLeft(左下) |
0xFF |
Address |
0x00 |
0x14 |
Pan Speed |
Tilt Speed |
SUM |
DownRight(右下) |
0xFF |
Address |
0x00 |
0x12 |
Pan Speed |
Tilt Speed |
SUM |
Zoom In(放大) |
0xFF |
Address |
0x00 |
0x20 |
0x00 |
0x00 |
SUM |
Zoom Out(缩小) |
0xFF |
Address |
0x00 |
0x40 |
0x00 |
0x00 |
SUM |
Focus Far(远焦) |
0xFF |
Address |
0x00 |
0x80 |
0x00 |
0x00 |
SUM |
Focus Near(近焦) |
0xFF |
Address |
0x01 |
0x00 |
0x00 |
0x00 |
SUM |
Set Preset(设置预置位) |
0xFF |
Address |
0x00 |
0x03 |
0x00 |
Preset ID |
SUM |
Clear Preset(删除预置位) |
0xFF |
Address |
0x00 |
0x05 |
0x00 |
Preset ID |
SUM |
Call Preset(前往预置位) |
0xFF |
Address |
0x00 |
0x07 |
0x00 |
Preset ID |
SUM |
Query Pan Position(查询平移位置) |
0xFF |
Address |
0x00 |
0x51 |
0x00 |
0x00 |
SUM |
Query Pan Position Response(查询平移位置响应) |
0xFF |
Address |
0x00 |
0x59 |
Value High Byte |
Value Low Byte |
SUM |
Query Tilt Position(查询倾斜位置) |
0xFF |
Address |
0x00 |
0x53 |
0x00 |
0x00 |
SUM |
Query Tilt Position Response(查询倾斜位置响应) |
0xFF |
Address |
0x00 |
0x5B |
Value High Byte |
Value Low Byte |
SUM |
Query Zoom Position(查询缩放位置) |
0xFF |
Address |
0x00 |
0x55 |
0x00 |
0x00 |
SUM |
Query Zoom Position Response(查询缩放位置响应) |
0xFF |
Address |
0x00 |
0x5D |
Value High Byte |
Value Low Byte |
SUM |
除了上述显示的“PTZ”命令外,还有控制命令可以让您访问一些设备的更高级功能。对这些命令的响应是四字节,第一个字节是同步字符(FF),第二个字节是接收器地址,第三个字节包含报警信息,第四个字节是校验和。
Command |
word3 |
word4 |
word5 |
word6 |
Set Preset XX |
00 |
03 常用 |
00 |
01 to 020 |
Clear Preset XX |
00 |
05 常用 |
00 |
01 to 20 |
Go To Preset XX |
00 |
07 常用 |
00 |
01 to 20 |
Flip (rotate 180o) |
00 |
07 常用 |
00 |
21 |
Zero Pan Position |
00 |
07 常用 |
00 |
22 |
Set Aux XX |
00 |
09 常用 |
00 |
01 to 08 |
Clear Aux XX |
00 |
0B 常用 |
00 |
01 to 08 |
Remote Reset |
00 |
0F 不常用 |
00 |
00 |
Zone Start |
00 |
11 不常用 |
00 |
01 to 08 |
Zone End |
00 |
13 不常用 |
00 |
01 to 08 |
Write char to screen |
00 |
15 不常用 |
X Position 00 to 28 ASCII Value |
0 to 7F |
Clear Screen |
00 |
17 不常用 |
00 |
00 |
Alarm Ack |
00 |
19 不常用 |
00 |
Alerm NO. |
Zone Scan On |
00 |
1B 不常用 |
00 |
00 |
Zone Scan Off |
00 |
1D 不常用 |
00 |
00 |
Pattern Start |
00 |
1F 不常用 |
00 |
00 |
Pattern Stop |
00 |
21 不常用 |
00 |
00 |
Run Pattern |
00 |
23 不常用 |
00 |
00 |
Zoom Lens Speed |
00 |
25 不常用 |
00 |
00 to 03 |
Focus Lens Speed |
00 |
27 不常用 |
00 |
00 to 03 |
Reset Camera to defaults |
0 |
29 |
0 |
0 |
Auto-focus auto/on/off |
0 |
2B |
0 |
00-02 |
Auto Iris auto/on/off |
0 |
2D |
0 |
00-02 |
AGC auto/on/off |
0 |
2F |
0 |
00-02 |
Backlight compensation on/off |
0 |
31 |
0 |
00-02 |
Auto white balance on/off |
0 |
33 |
0 |
00-02 |
Enable device phase delay mode |
0 |
35 |
0 |
0 |
Set shutter speed |
0 |
37 |
Any |
Any |
Adjust line lock phase delay |
00-01 |
39 |
Any |
Any |
Adjust white balance(R-B) |
00-01 |
3B |
Any |
Any |
Adjust white balance(M-G) |
00-01 |
3D |
Any |
Any |
Adjust gain |
00-01 |
3F |
Any |
Any |
Adjust auto-iris level |
00-01 |
41 |
Any |
Any |
Adjust auto-iris peak value |
00-01 |
43 |
Any |
Any |
Query |
0 |
45 |
Any |
Any |
- 此命令只能在点对点应用中使用。被查询的设备将响应任何地址。因此,如果多个设备听到这个命令,您将有多个设备同时传输。因此,如果您要查询的设备超过一个,您将有多个设备同时传输。
创建标签
许多设备都有在视频中创建标签的能力。标签通常用于标识正在扫描的预设或区域。有一种特殊的技术可以建立与预设或区域相关联的标签。首先,您使用“白色字符到屏幕”命令将标签发送到接收器/驱动器。标签上屏幕后,您设置预设。这将建立标签并将其与预设关联。
示例消息(所有消息值都以十六进制显示)
发送消息到接收器1,打开摄像机:FF,01,88,00,00,00,89
发送消息到接收器1,关闭摄像机:FF,01,08,00,00,00,09
发送消息到接收器2,以半速向左:FF,02,00,04,20,00,26
发送消息到接收器2,停止:FF,02,22,00,00,00,02
发送消息到接收器10,打开摄像机,聚焦远,向左,“turbo”速度:FF,0A,88,84,40,00,62
以地址码0x01为例
{0xff,0x01,0x00,0x08,0x00,0xff,0x08,}//上
{0xff,0x01,0x00,0x10,0x00,0xff,0x10,}//下
{0xff,0x01,0x00,0x04,0xff,0x00,0x04,}//左
{0xff,0x01,0x00,0x02,0xff,0x00,0x02,}//右
{0xff,0x01,0x00,0x20,0x00,0x00,0x21,}//变倍短
{0xff,0x01,0x00,0x40,0x00,0x00,0x41,}//变倍长
{0xff,0x01,0x00,0x80,0x00,0x00,0x81,}//聚焦近
{0xff,0x01,0x01,0x00,0x00,0x00,0x02,}//聚焦远
{0xff,0x01,0x02,0x00,0x00,0x00,0x03,}//光圈小
{0xff,0x01,0x04,0x00,0x00,0x00,0x05,}//光圈大
{0xff,0x01,0x00,0x0b,0x00,0x01,0x0d,}//灯光关
{0xff,0x01,0x00,0x09,0x00,0x01,0x0b,}//灯光开
{0xff,0x01,0x00,0x07,0x00,0x01,0x09,}//转至预置点001
{0xff,0x01,0x00,0x03,0x00,0x01,0x05,}//设置预置点001
{0xff,0x01,0x00,0x05,0x00,0x01,0x07,}//删除预置点001
以上对应的停命令均是:
{0xff,0x01,0x00,0x00,0x00,0x00,0x01,}//停命令,停止当前云台及镜头的动作
特殊命令
Preset Number |
Function |
99 |
Begin Auto-scan 启动云台自动扫描 |
98 |
Begin Frame Scan 摄像机帧扫描不常用 |
97 |
Begin Random Scan 不常用 |
96 |
Stop Scan 停止所有功能 |
95 |
Enter Menu Mode 打开摄像机和球机菜单 |
94 |
Remote Reset 云台或摄像机复位 |
93 |
Set Right Limit Stop 设置右限位 |
92 |
Set Left Limit Stop 设置左限位 |
34 |
Home (return to 0 pan position) 归零自检 |
33 |
Flip 自动翻转 |
这些命令可以自己定义,但在解码器球机说明书里要有详细的说明,否则操作者也不会用的。有的控制设备只有1-64号预置位就无法实现上述命令,所有有些厂家做在64范围内就是这个原因,一般是做兼容。
Pelco-D使用方法
使用Pelco-D协议控制摄像机通常遵循以下步骤:
1.初始化连接
通过串行接口与摄像机建立连接。
2.发送命令
构造一个包含同步字节、目标地址、命令和校验的Pelco-D消息,并发送给摄像机。
3.等待响应
摄像机接收到命令后,执行相应操作,并通过Pelco-D协议发送响应消息。
4.处理响应
接收并解析摄像机的响应消息,确认命令执行结果。
相机返回的响应包有4种,0字节、4字节、7字节、18字节。除了第一种外,其它每种都和上面给出的命令格式相似,同步头+相机地址+信息体+检验码。
5.异常处理
在命令执行失败或响应超时时,进行相应的异常处理。
思考
不同的摄像机厂商可能定义了不同的协议
那我们如何扩展pelco-D协议,使协议兼容现有协议的同时,也能实现更多的控制功能?
结语
Pelco-D协议以其高效、稳定的特性,在视频监控系统中发挥着重要作用。随着技术的发展,Pelco-D协议也在不断更新和优化,以适应更广泛的应用需求。了解并掌握Pelco-D协议,对于构建高效、可靠的监控系统至关重要。
请注意,本文提供的信息基于Pelco-D协议的通用概念。具体的协议细节、命令集和使用方法可能会根据不同版本的Pelco-D协议和设备型号有所差异。建议参考Pelco公司提供的官方文档和技术支持获取详细信息。
参考资料:
Pelco Customer Portal
https://www.epiphan.com/userguides/LUMiO12x/Content/UserGuides/PTZ/3-operation/PELCODcommands.htm
PELCO协议_派尔高协议支持什么接口-CSDN博客
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/138993.html