PELCO-D:
数据格式:1位起始位、8位数据、1位停止位,无效验位。波特率:2400B/S
命令格式:
字节1 | 字节2 | 字节3 | 字节4 | 字节5 | 字节6 | 字节7 |
同步字节 | 地址码 | 指令码1 | 指令码2 | 数据码1 | 数据码2 | 校验码 |
1.该协议中所有数值都为十六进制数
2.同步字节始终为FFH
3.地址码为摄像机的逻辑地址号,地址范围:00H–FFH
4.指令码表示不同的动作
5.数据码1、2分别表示水平、垂直方向速度(00-3FH),FFH表示“turbo”速度
6.校验码 = MOD[(字节2 + 字节3 + 字节4 + 字节5 + 字节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,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,}//停命令
PELCO-P:
数据格式:1位起始位、8位数据、1位停止位,无效验位。波特率:9600B/S
命令格式:
字节1 | 字节2 | 字节3 | 字节4 | 字节5 | 字节6 | 字节7 | 字节8 |
STX | 地址码 | 指令码1 | 指令码2 | 数据码1 | 数据码2 | ETX | 校验码 |
1.该协议中所有数值都为十六进制数
2.STX始终为A0H
3.地址码为摄像机的逻辑地址号,地址范围:00H–1FH
4.指令码表示不同的动作
5.数据码1、2分别表示水平、垂直方向速度(00-3FH),在有关预制点的操作时,数据码2表示预制点值
6.ETX始终为AFH
7.校验码(XOR sum of Bytes 2-6) = 字节2 ^ 字节3 ^ 字节4 ^ 字节5 ^ 字节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,}//关闭自动巡航
{0xa0,0x01,0x00,0x07,0x00,0x01,0xaf,0x07,}//转至预置点001
{0xa0,0x01,0x00,0x03,0x00,0x01,0xaf,0x03,}//设置预置点001
{0xa0,0x01,0x00,0x05,0x00,0x01,0xaf,0x01,}//删除预置点001
以上对应的停命令均是(上下左右、变倍、聚焦、光圈均有停命令):
{0xa0,0x01,0x00,0x00,0x00,0x00,0xaf,0x01,}
PELCO(派尔高)协议解析及下载
沈雪瑜
在IBMS接口开发中,我们需要用到一些常用的协议,而PELCO (派尔高)的监控器材在我国有很广泛的应用。 PELCO有自己的传输控制协议,当它的产品配套使用时,可以互相兼容。但在某些情况下,由于工程的需要,要求用其它设备(比如电脑)来控制PELCO的矩阵或镜头,这就要求充分了解PELCO的传输协议。
PELCO常用的两种协议:PELCO-D协议和PELCO-P协议。
- PELCO-D协议解析
PELCO-D协议一般用于矩阵和其它设备之间的通信。它的格式如下:
Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 | Byte 6 | Byte 7 |
同步字 | 地址码 | 命令字1 | 命令字2 | 数据1 | 数据2 | 校验码 |
所有的值都是用的 16进制表示。
同步字通常都是 $FF。
地址码是指与矩阵通信的那台设备的逻辑地址,可以在设备中设置。
命令字 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的话那命令就无效了。
数据1表示镜头左右平移的速度,数值从$00(停止)到$3F(高速),另外还有一个值是$FF,表示最高速。
数据2表示镜头上下移动的速度,数值从$00(停止)到$3F(最高速)。
校验码是指Byte2到Byte6这5个数的和(若超过255则除以256然后取余数)。
- PELCO-P协议解析
PELCO-P协议一般采用RS-485传输,波特率为4800,1位起始位和停止位,8位数据位,无校验。其格式如下:
Byte | Value | Function |
1 | $A0 | 起始码 |
2 | $00 to $1F | 地址码 |
3 | Data byte 1 | 数据位1 |
4 | Data byte 2 | 数据位2 |
5 | Data byte 3 | 数据位3 |
6 | Data byte 4 | 数据位4 |
7 | $AF | 停止码 |
8 | $00-$FF | 校验码 |
起始码是固定值$A0。
地址码是设备的逻辑地址,可由接收设备上的DIP开关来设定。
数据位1到4的意义如下:
Bit number | ||||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
数据位1 | 0 | 摄像机打开 | 自动扫描 | 摄像机打开/关闭 | 光圈关闭 | 光圈打开 | 焦距拉近 | 焦距拉远 |
数据位2 | 0 | 视角变宽 | 视角变窄 | 下 | 上 | 左 | 右 | 0 |
数据位3 | 平移速度 $00(停止)到 $3F(高速)以及$40(最高速) | |||||||
数据位4 | 上下移动速度$00(停止)到 $3F(最高速) |
停止码是固定值 $AF 。
校验码是 Byte2 到 Byte6 这 5 个数的异或值(XOR)。
地址码是从 0编起的,所以地址码$00表示第一台设备。
PELCO-D和PELCO-P协议另有一些特殊命令,可对设备进行一些高级控制,但这些应用并不常见,限于篇幅,这里不多作介绍,若需要可从直接下载英文资料。