摄像机重要传输协议

控制协议

 

Visca

  • 简介:visca是索尼公司搞出来的,用来控制相机的协议,一般通过RS232/RS485来通信,它的指令码更简单,有libvisca等其它在维护的开源项目
    • 更多介绍信息
      Visca协议是一种用于相机和视频设备控制的通信协议,它定义了设备之间的命令和数据传输格式,使得不同品牌的设备可以通过统一的接口进行控制和通信。
      
      Visca协议采用串行通信方式,使用RS-232或RS-422接口进行数据传输。它的通信速率可达到9600bps,通过发送特定的命令和参数,可以实现对相机的焦距、光圈、白平衡、曝光等参数的控制,
          以及对摄像机的云台、镜头、变焦、聚焦等功能的操作。
      
      Visca协议的命令格式通常由两部分组成:命令代码和参数。命令代码用于指示要执行的具体操作,例如调整焦距、设置曝光等;参数则用于传递命令的具体参数值,
          例如焦距的具体数值、曝光模式等。通过合理组合命令代码和参数,可以实现对设备的精确控制。
          
      Visca协议定义了多种命令代码和参数,以满足不同设备的控制需求。例如,通过命令代码"8x"可以实现对云台的控制,包括云台的移动、速度调整和预置位设置等功能;
          通过命令代码"81"可以实现对相机的光圈调整,包括光圈的开合、快慢调整等功能。
          
      Visca协议还定义了一些通用的命令和参数,以实现设备之间的基本通信和状态查询。例如,通过命令代码"88"可以实现设备的初始化操作,包括设备的重置和参数恢复等;
          通过命令代码"90"可以实现设备状态的查询,包括设备的在线状态、当前参数值等。
          
      除了命令代码和参数,Visca协议还定义了数据传输的校验位,用于验证数据的完整性和准确性。通过校验位的比对,可以确保数据的正确传输和接收。
      
      Visca协议的应用非常广泛,不仅在摄像机和视频设备中得到广泛应用,还被许多控制系统和软件使用。通过Visca协议,用户可以方便地控制和操作相机和视频设备,
          实现各种拍摄和录制需求。
          
      Visca协议是一种用于相机和视频设备控制的通信协议,通过定义命令和参数的格式,实现了设备之间的统一控制和通信。它的应用广泛,并且具有灵活性和可扩展性,
          可以满足不同设备的控制需求。通过了解Visca协议的定义和使用,用户可以更好地掌握设备的控制和操作技巧,提高工作效率和拍摄质量。
    • 部分内容:
      • 控制 命令 格式 备注
        预置点 清除预置点 8X 01 04 3F 00 ZZ FF X=1-7,8是广播码,下同; ZZ=00-3F, 共64个预置点。
        设预置点 8X 01 04 3F 01 ZZ FF
        转至预置点 8X 01 04 3F 02 ZZ FF
        云台控制 向上 8X 01 06 01 VV WW 03 01 FF VV:水平速度0X01(慢)-0X18(快);
        WW:垂直速度0X01(慢)-0X14(快)。
        向下 8X 01 06 01 VV WW 03 02 FF
        向左 8X 01 06 01 VV WW 01 03 FF
        向右 8X 01 06 01 VV WW 02 03 FF
        停止 8X 01 06 01 VV WW 03 03 FF
        变焦 变倍大(标准) 8X 01 04 07 02 FF  
        变倍小(标准) 8X 01 04 07 03 FF  
        变焦的停止 8X 01 04 07 00 FF  
        聚焦 聚焦远(标准) 8X 01 04 08 02 FF  
        聚焦近(标准) 8X 01 04 08 03 FF  
      •   
      • 命令格式:命令通信的基本单元称为包(Packet)。一个包的长度为3到16字节,由头部、消息体和结束符三部分组成。命令包的第一个字节称为命令头(Header)。高半字节由1 (最高位,固定为1)和发送方(控制者)地址(地址一般为0)组成,低半字节由0和设备(相机)地址(或称“编号”)组成,从组成格式看,可以外接的相机最多有7台,如向1号相机发送命令,则命令头为0x81。命令包最后一个字节为终结符号,固定为0xff。中间部分字节称为消息体。协议说明文档中将命令头写成“8x”,其中x表示相机地址。如:81 01 06 01 05 05 03 01 FF :81 里的 1 是云台设置里的串口号,  05 05 是速度
      • 命令共2类:普通命令(Command)及查询命令(Inquiry)。前者是直接发送命令到相机,后者是从相机获取到数据。具体的命令包格式如下:8X QQ RR … FF, 其中QQ为命令分类,01表示普通命令,09表示查询命令。RR为类别码(Category code)。X表示相机地址。范围1~7。
      •  
      • 响应:
        • 每个命令均有响应包,格式如下:
          X0 … … FF
          其中X范围为9~F,数值为相机编号+8。以FF结束。发送普通命令时,相机会返回ACK响应,但查询命令不会返回ACK。
          ACK响应包格式:X0 41 FF
          普通命令响应包格式:X0 51 FF
          查询命令响应包格式:X0 51 ... FF
          其中,X范围为9~F,是相机地址值+8。查询命令的响应包中带有数据,每种数据均不相同,可以询查协议文档。
          错误信息格式如下:
          语法错误:X0 61 02 FF
          命令取消:X0 61 04 FF
          没有socket:X0 61 05 FF
          命令没有执行:X0 61 41 FF
          其中X的值和上面的一样。“socket”的范围暂时还不太了解。这些值就是代码做出判断的依据。

 

Pelco

  • 简介:Pelco公司于1986年首次提出,是早期的串行协议标准(业界通用协议),主要用于传输控制信息。Pelco-P则是后续推出的改进版本,加入了数字视频传输的功能。Pelco主控与前端解码器是通过RS232\RS422\RS485通信格式传输,其具体的值都是用的16进制表示。

 

  • Pelco-D:一般波特率是2400,它只负责传输控制信号,不传输视频信号。可以支持255台摄像机设备,64个预置位,8条巡航记录路径,允许对摄像机进行点动、放大、预置位等操作控制。  最大传输距离约为240米
  • Pelco-D的通信数据包格式如下:
    • 字节1 字节2 字节3 字节4 字节5 字节6 字节7
      同步字节(FFH) 地址码(逻辑地址号,设备中可设置 00H-FFH) 指令码1 指令码2 数据码1(水平方向速度00-3FH) 数据码2(垂直方向速度00-3FH) 校验码(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: 沿用了Manchester编码但一般波特率是9600。可同时传输控制命令和视频信号。 255个预置位,80条巡航记录路径,实现了双向通信,可以返回摄像头状态信息,还支持对视频PARAMETERS的控制,如亮度、对比度、色度等;  最大传输距离约为500米。 Pelco-P功能强大,但兼容性较差,且成本更高
  • Pelco-P的通信数据包格式如下:
    • 字节1 字节2 字节3 字节4 字节5 字节6 字节7 字节8
      STX(起始码 A0H) 地址码(逻辑地址号 00H-1FH) 指令码1 指令码2 数据码1(水平方向速度00-3FH) 数据码2(垂直方向速度00-3FH) ETX(停止码 AFH) 校验码(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,0x, 01,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-D缺省是1,Pelco-P缺省是0

 

视频传输协议

 

RTSP

  • 简介:实时流传输协议,是TCP/IP协议体系中的一个应用层协议
  • 介绍:
    • 它使用TCP或UDP完成数据传;RTSP可以是双向,客户机和服务器都可以发出请求;RTSP是用来控制声音或影像的多媒体串流协议,服务器端可以自行选择使用TCP或UDP来传送串流内容;RTSP具有重新导向功能,可视实际负载情况来转换提供服务的服务器;该协议目的在于控制多个数据发送连接,为选择发送通道,如UDP、组播UDP与TCP,提供途径;
    • HTTP与RTSP相比,HTTP传送HTML,而RTSP传送的是多媒体数据;它对多个流的同时控制。对音频/视频来讲,客户端仅需发送一条播放或者暂停消息就可同时控制音频流和视频流。
    • RTSP支持的操作:
      • 从媒体服务器上检索媒体(用户可通过HTTP或其它方法提交一个演示描述。如演示是组播,演示式就包含用于连续媒体的组播地址端口。如演示仅通过单播发送给用户,用户为了安全应提供目的地址)
      • 媒体服务器邀请进入会议(媒体服务器可被邀请参加正进行的会议,或回放媒体,或记录其中一部分,或全部。这种模式在分布式教育应用上很有用,会议中几方可轮流按远程控制按钮)
      •  将媒体加到现成讲座中(如服务器告诉用户可获得附加媒体内容,对现场讲座显得尤其有用。如HTTP/1.1中类似,RTSP请求可由代理、通道与缓存处理)
    • RTSP请求可以几种不同方式传送

 

RTMP

  • 简介:实时消息传输协议,该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种
  • 介绍:
    • RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。支持该协议的软件包括Adobe Media Server/Ultrant Media Server/red5等。RTMP与HTTP一样,都属于TCP/IP四层模型的应用层
    • RTMP又是Routing Table Maintenance Protocol(路由选择表维护协议)的缩写。 在 AppleTalk 协议组中,路由选择表维护协议(RTMP,Routing Table Maintenance Protocol)是一种传输层协议,它在 AppleTalk 路由器中建立并维护路由选择表。RTMP 基于路由选择信息协议(RIP)。正如 RIP 一样,RTMP 使用跳数作为路由计量标准。一个数据包从源 网络发送到目标网络,必须通过的路由器或其它中间介质节点数目的计算结果即为跳数。
    • RTMP有多种变种:1)RTMP工作在TCP之上,默认使用端口1935;2)RTMPE在RTMP的基础上增加了加密功能;3)RTMPT封装在HTTP请求之上,可穿透防火墙;4)RTMPS类似RTMPT,增加了TLS/SSL的安全功能;
    • RTMP协议(Real Time Messaging Protocol)是被Flash用于对象,视频,音频的传输.这个协议建立在TCP协议或者轮询HTTP协议之上.
    • 握手请求:Client → Server :向服务器发出握手请求.这不属于协议包一部分,该握手请求第一个字节为(0×03),其后跟着1536个字节.尽管看上去这部分的内容对于RTMP协议来说并不是至关重要的,但也不可随意对待.

 

 

物理接口

 

串行通信接口

  • 简介:
    • 串口叫做串行接口,也称串行通信接口,按电气标准及协议来分包括RS-232-C、RS-422、RS485、USB等。 RS-232-C、RS-422与RS-485标准只对接口的电气特性做出规定,不涉及接插件、电缆或协议。USB是近几年发展起来的新型接口标准,主要应用于高速数据传输领域。
    • 串口与并口的区别:串口形容一下就是 一条车道,而并口就是有8个车道同一时刻能传送8位(一个字节)数据。 但是并不是并口快,由于8位通道之间的互相干扰。传输时速度就受到了限制。而且当传输出错时,要同时重新传8个位的数据。串口没有干扰,传输出错后重发一位就可以了。所以要比并口快。串口硬盘就是这样被人们重视的。
    • 串口通讯模式包括单工、半双工和全双工,其中单工模式数据传输只支持数据在一个方向上传输。半双工模式允许数据在两个方向上传输,但某一时刻只允许数据在一个方向上传输,实际上是一种切换方向的单工通信,不需要独立的接收端和发送端,两者可合并为一个端口。详见下图:

    • 最初数据是模拟信号输出简单过程量,后来仪表接口出现了RS232接口,这种接口可以实现点对点的通信方式,但这种方式不能实现联网功能,这就促生了RS422和RS485。我们知道串口通信的数据传输都是0和1,在单总线、I2C、UART中都是通过一根线的高低电平来判断逻辑1或者逻辑0,但这种信号线的GND再与其他设备形成共地模式的通信,这种共地模式传输容易产生干扰,并且抗干扰性能也比较弱。所以差分通信、支持多机通信、抗干扰强的RS422和RS485就被广泛的使用了。RS422和RS485通信最大特点就是传输速度最大可以达到10Mb/s以上,最大传输距离超过1000米。大家需要注意的是虽然485最大速度和最大传输距离都很大,但是传输的速度是会随距离的增加而变慢的,所以两者是不可以兼得的。
  • 介绍:
    • RS232: 有RS232A、RS232B、RS232C, 一般逻辑1(MARK)=-3V~-15V ,逻辑0(SPACE)=+3~+15V。接口的信号电平值较高,易损坏接口电路的芯片;传输速率较低;共地的传输形式,抗噪声干扰性弱。传输距离有限,最大传输距离标准值为50 米。一般是全双工工作方式, 因为它接收端的发送端的线是分开的,所以可以同时接收和发送数据。因此可以同时向多台多台设备发送指令
    • RS422: 有4 根信号线,可以同时接收和发送数据(全双工),RS-485串行接口的驱动器可用于RS-422串行接口的应用中,因为RS-485串行接口满足所有的RS-422串行接口性能参数,反之则不能成立。对于RS-485串行接口的驱动器,共模电压的输出范围是-7V和+12V之间;对于RS-422串行接口的驱动器,该项性能指标仅有±7V。RS-422串行接口接收器的最小输入电阻是4KΩ;而RS-485串行接口接收器的最小输入电阻则是12KΩ。
    • RS485: 2根信号线,所以不能够接收和发送数据(半双工), 使用平衡发送和差分接收方式通信(发送端将TTL电平信号转换成差分信号A、B两路输出,接收端将差分信号再还原成TTL电平信号),一般逻辑"1"以两线间的电压差为+(2 至6) V 表示;逻辑"0"以两线间的电压差为-(2 至6)V 表示. 一般是半双工工作方式:两端的数据信号都可以收发,但两端不能同时接收和发送数据。
  • RS232与RS485对比:
    • 抗干扰性:RS485 接口是采用平衡驱动器和差分接收器的组合,抗噪声干扰性好。RS232 接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰。
    • 传输距离:RS485 接口的最大传输距离标准值为 1200 米(9600bps 时),实际上可达 3000 米。RS232 传输距离有限,最大传输距离标准值为 50 米,实际上也只能用在 15 米左右。
    • 通信能力:RS-485 接口在总线上是允许连接多达128个收发器,用户可以利用单一的 RS-485 接口方便地建立起设备网络。RS-232只允许一对一通信。
    • 传输速率:RS-232传输速率较低,在异步传输时,波特率为 20Kbps。RS-485 的数据最高传输速率为 10Mbps 。
    • 信  号 线:RS485 接口组成的半双工网络,一般只需二根信号线。RS-232 口一般只使用 RXD、TXD、GND 三条线 。
    • 电  平 值:RS-485的逻辑"1"以两线间的电压差为+(2~6) V 表示;逻辑"0"以两线间的电压差为-(2~6)V 表 示 。在 RS-232-C 中任何一条信号线的电压均为负逻辑关系。即:逻辑"1",-5~-15V;逻辑"0 " +5~+15V 。
  • 详细:
    • RS232:
      • 基本特性:RS-232是串行数据接口标准,是由电子工业协会(EIA: Electronic Industries Alliance)制订并发布的工业标准,以保证不同厂家产品之间的兼容。特性如下:
      • 物理特性:在RS232的通讯方式中,两个通讯设备的"DB9接口"之间通过串口信号线建立起连接,串口信号线中使用"RS-232标准"传输数据信号。D型或D-subminiature(D形状超小型)连接器的原始编号系统使用D作为前缀(将其名称命名为系列),然后根据外壳尺寸选择A,B,C,D或E,末尾数字表示引脚数量。详见下图:
      • 通信协议:RS232一般使用DB9接口,由于两个通讯设备之间的收发信号(RXD与TXD)应交叉相连,所以调制调解器端的DB9母头的收发信号接法一般与公头的相反。DB9公头、母头以及引脚说明详见下方图和表:
      • 序号 名称 符号 说明
        1 载波检测 DCD Data Carrier Detect.数据载波检测,用于DTE告知对方,本机是否收到对方的载波信号
        2 接收数据 RXD Receive Data. 数据接收信号,即输入.
        3 发送数据 TXD Transnit Data,教据发送信号,即输出,两个没备之回的TXD 与RXD应交叉相连
        4 数据终端(DTE)就绪 DTR Data Terninal Ready,数据终端就绪,用于DTE向对方告知本机足否已准备好
        5 信号地 GND 地线,两个通讯没备之同的地电位可能不一样,这会影响收发双方的电平信号、所以两个串口没备之同必须要使用地线连接,即共地,
        6 数据设备(DEC)就绪 DSR Data Set Ready,数据发送就绪,用于DCE告知对方本机是否处于待命状态
        7 请求发送 RTS Request To Send.请求发送,DTE清求DCE本没备向DCE端发送数据
        8 允许发送 CTS Clear To Send、允许发送,DCE回应对方的RTS发送清求,告知对方是否可以发送数据
        9 响铃指示 RI Ring Indicator 响铃指示,表示DCE端与线路已接通
      •  
      • 波特率:在信道中,携带数据信息的信号单元叫码元,单位时间内通过信道传输的码元数称为码元传输速率,简称波特率(Baud Rate),其单位是波特(Baud,symbol/s),波特率是传输通道频宽的指标。RS232典型的“波特率”是 300/1200/2400/9600/19200/38400/115200 /230400等。
      • 速率(bps) 最大线端长度(m)
        19200 15.24
        9600 152.4
        4800 304.8
        2400 914.4
      • 数据结构:一个完整的串行数据,也就是一个数据帧(Data frame),或者一个字符帧,包括起始位、数据位、停止位、奇偶校验位。数据位前后即帧头和帧尾,包含一些必要的控制信息。其中,MSB(Most Significant Bit)是指低地址存放最高有效字节,LSB(Least Significant Bit)则是低地址存放最低有效字节。
      • 起始位:起始位必须是持续一个比特时间的逻辑0电平,标志传输一个字符的开始,接收方可用起始位使自己的接收时钟与发送方的数据同步。
      • 数据位:数据位紧跟在起始位之后,是通信中的真正有效信息。数据位的位数可以由通信双方共同约定。传输数据时先传送字符的低位,后传送字符的高位。
      • 奇偶校验位:奇偶校验位仅占一位,用于进行奇校验或偶校验,奇偶检验位不是必须有的。如果是奇校验,需要保证传输的数据总共有奇数个逻辑高位;如果是偶校验,需要保证传输的数据总共有偶数个逻辑高位。
      • 停止位:停止位可以是是1位、1.5位或2位,可以由软件设定。它一定是逻辑1电平,标志着传输一个字符的结束。
      • 空闲位:空闲位是指从一个字符的停止位结束到下一个字符的起始位开始,表示线路处于空闲状态,必须由高电平来填充。
      •  
      • RS232与RS232(TTL):RS-232电平标准的信号不能直接被控制器直接识别,所以这些信号会经过一个"电平转换芯片"转换成控制器能识别的"TTL校准"的电平信号,才能实现通讯。TTL全名是晶体管-晶体管逻辑集成电(Transistor-Transistor Logic),这种串行通信,对应的物理电平,始终是在0V和Vcc之间,其中常见的Vcc是5V或3.3V。TTL 高电平1是>=2.4V,低电平0是<=0.5V(对于5V或3.3V电源电压),这里是正逻辑,RS-232电平标准的信号不能直接被控制器直接识别,所以这些信号会经过一个"电平转换芯片"转换成控制器能识别的"TTL"的电平信号,才能实现通讯。
      • 转换电路图如下所示:
    • RS422
      • 介绍:RS-422 的总线标准规定了总线接口的电气特性标准,发送端:正电平在+2V~+6V之间,表示逻辑状态“1”;负电平在-2V~-6V之间,则表示逻辑状态“0”;接收器:(V+) - (V-) ≥0.2V,表示信号“0”;(V+) - (V-) ≤0.2V,表示信号“1”)。RS-422 采用全双工通讯方式,有4根信号线,收与发是分开的,可以同时收和发。适用于两个站之间通信,如星型网、环网等,不可用于总线网。
posted @ 2021-02-20 15:52  封兴旺  阅读(1338)  评论(0编辑  收藏  举报

联系方式: 18274305123(微信同号)