Chinaunix首页 | 论坛 | 博客
  • 博客访问: 231929
  • 博文数量: 56
  • 博客积分: 2480
  • 博客等级: 大尉
  • 技术积分: 475
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-28 10:57
文章分类

全部博文(56)

文章存档

2012年(36)

2011年(4)

2010年(2)

2009年(14)

我的朋友

分类: 嵌入式

2012-03-19 17:03:52

PELCO-D与PELCO-P协议介绍
[日期:2007-03-05]
[字体:  ]

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 1Byte 2Byte 3Byte 4Byte 5Byte 6Byte 7
同步字地址码命令字1命令字2数据1数据2校验码

    所有的值都是用的 16进制表示。 
    同步字通常都是 $FF。
    地址码是指与矩阵通信的那台设备的逻辑地址,可以在设备中设置。
    命令字 1和命令字2设置如下:

 Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
命令字1Sence码为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位数据位,无校验。其格式如下:

ByteValueFunction
1$A0起始码
2$00 to $1F地址码
3Data byte 1数据位1
4Data byte 2数据位2
5Data byte 3数据位3
6Data byte 4数据位4
7$AF停止码
8$00-$FF校验码

   起始码是固定值$A0。
    地址码是设备的逻辑地址,可由接收设备上的DIP开关来设定。
    数据位1到4的意义如下:

 Bit number
76543210
数据位10摄像机打开自动扫描摄像机打开/关闭光圈关闭光圈打开焦距拉近焦距拉远
数据位20视角变宽视角变窄0
数据位3 平移速度 $00(停止)到 $3F(高速)以及$40(最高速)
数据位4 上下移动速度$00(停止)到 $3F(最高速)

    停止码是固定值 $AF 。
    校验码是 Byte2 到 Byte6 这 5 个数的异或值(XOR)。
    地址码是从 0编起的,所以地址码$00表示第一台设备。
    PELCO-D和PELCO-P协议另有一些特殊命令,可对设备进行一些高级控制,但这些应用并不常见,限于篇幅,这里不多作介绍,若需要可从直接下载英文资料。

阅读(2687) | 评论(0) | 转发(0) |
0

上一篇:移植Lua到ARM平台

下一篇:linux的编程

给主人留下些什么吧!~~