### PELCO云台协议详解
#### PELCO-D协议
PELCO-D协议是一种用于控制云台设备的标准通信协议,广泛应用于视频监控系统中,用于远程操控云台的移动和摄像机的各项功能。该协议的数据传输采用异步串行通信方式,其参数配置为1位起始位、8位数据位、无校验位和1位停止位,波特率为2400B/S。PELCO-D协议的命令格式由七个字节组成:
1. **同步字节**:始终为FFH,用于同步接收和发送方。
2. **地址码**:摄像机的逻辑地址,范围为00H到FFH,用于识别网络中的特定设备。
3. **指令码1**:表示不同的动作,如上下左右移动、变焦、聚焦等。
4. **指令码2**:辅助指令码,某些操作需要与指令码1组合使用。
5. **数据码1、2**:分别表示水平、垂直方向的速度,取值范围为00H至3FH;FFH代表“turbo”高速模式。
6. **校验码**:通过对字节2至字节6进行模除100H运算后取余数,用以验证数据传输的完整性。
以地址码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,0x01,0x01,0x0b,}`
- 转至预置点001:`{0xff,0x01,0x00,0x07,0x00,0x01,0x09,}`
- 设置预置点001:`{0xff,0x01,0x00,0x03,0x00,0x01,0x05,}`
- 删除预置点001:`{0xff,0x01,0x00,0x05,0x00,0x01,0x07,}`
所有的停命令均为:`{0xff,0x01,0x00,0x00,0x00,0x00,0x01,}`
#### PELCO-P协议
PELCO-P协议也是PELCO公司开发的一种云台控制协议,与PELCO-D相比,它具有更高的传输速率(9600B/S),适用于对实时性有更高要求的应用场景。PELCO-P协议的数据传输同样采用异步串行通信方式,其命令格式由八个字节组成:
1. **STX**:始终为A0H,作为帧头标志。
2. **地址码**:摄像机的逻辑地址,范围为00H至1FH。
3. **指令码1**:表示不同的动作或功能。
4. **指令码2**:与指令码1组合使用,实现更复杂的功能。
5. **数据码1、2**:在控制云台移动时,分别表示水平和垂直方向的速度;在操作预置点时,数据码2则表示预置点的值。
6. **ETX**:始终为AFH,作为帧尾标志。
7. **校验码**:通过对字节2至字节6进行异或运算得出,用于错误检测。
以下是以地址码0x01为例的部分命令实例:
- 上:`{0xa0,0x01,0x00,0x08,0x00,0x30,0xaf,0x39,}`
- 下:`{0xa0,0x01,0x00,0x10,0x00,0x30,0xaf,0x21,}`
- 左:`{0xa0,0x01,0x00,0x04,0x10,0x00,0xaf,0x15,}`
- 右:`{0xa0,0x01,0x00,0x02,0x10,0x00,0xaf,0x13,}`
- 变倍短:`{0xa0,0x01,0x00,0x40,0x00,0x00,0xaf,0x41,}`
- 变倍长:`{0xa0,0x01,0x00,0x20,0x00,0x00,0xaf,0x21,}`
- 聚焦近:`{0xa0,0x01,0x02,0x00,0x00,0x00,0xaf,0x03,}`
- 聚焦远:`{0xa0,0x01,0x01,0x00,0x00,0x00,0xaf,0x00,}`
- 光圈小:`{0xa0,0x01,0x08,0x00,0x00,0x00,0xaf,0x09,}`
- 光圈大:`{0xa0,0x01,0x04,0x00,0x00,0x00,0xaf,0x05,}`
- 自动巡航:`{0xa0,0x01,0x00,0x96,0x00,0x20,0xaf,0xb7,}`
- 关闭自动巡航:`{0xa0,0x01,0x00,0x99,0x00,0x20,0xaf,0xb8,}`
- 转至预置点001:`{0xa0,0x01,0x00,0x07,0x00,0x01,0xaf,0x07,}`
注意,对于灯光开关功能,PELCO-P协议并未提供具体的命令字,这可能意味着在该协议下,这些功能的实现需通过其他方式完成。
PELCO-D和PELCO-P协议虽然在结构和细节上存在差异,但都是为了实现对云台设备的有效控制而设计的。理解并掌握这两种协议的原理和应用,对于从事视频监控系统集成和维护的技术人员来说至关重要。