摄像头通讯协议
串口摄像头通讯协议
串口摄像头通讯传输协议V1.1
串口摄像头VF-06使用本协议,4 个微型头拨码可设置地址范围0x20----0x2f,共16个地址, 可以带16个这样的子设备。未跳线时,设备地址为0x2f,出厂时的地址为0x2f。
一、摄像头类型
1、接口根据串行接口形式不同,分为如下2 种类型: (1)VF-06-485型,标准RS-485 。 (2)VF-06-232型,标准RS-232;
AA 00 06 01 04 07 00 05 11 表示将摄像头初始为 JPEG 图像格式,图像格式为 320*240
AA 00 06 01 04 07 00 03 0F 表示将摄像头初始为 JPEG 图像格式,图像格式为 160*120
2、该命令保留(02h)
3、寄存器设置(03h) 暂不使用,不用访问和设置
设备地址 1字节 Addr
包长 1字节 Length
命令码 1字节 Comm
包长 = 命令码字节数+数据区字节+校验和字节数;
校验和 = 命令码+数据0+数据1+数据2+数据N-1;
数据区 N字节 Data
校验和 1字节 Sum
数据区为多字节,其余均为单字节, 校验和为命令码与数据区各字节的校验和,校验和只 取低字节校验和。高字节舍弃不用
-1-
串口摄像头通讯协议
start bit LSB
MSB stop bit
波特率出厂预设为115200bps,用户可根据自己需要通过命令修改。
下图是发送一组数据(AA0D00000000)的发送时序图:
AAh
0Dh
00h
00h
00h
00h
四、协议格式:
通常的命令区命令格式如下:
帧头 1字节 0Xaa
2、使用本摄像头的通常工作方式,一般步足为: (1)、上电,延时3秒,建立握手连接和唤醒。之后,也可刻进行一些相关数据配置也可以不 进行此操作; (2)、不论是否存在休眠,缓冲区中都有一张图片保存在; (3)、如果要拍照,且在休眠状态下必须先唤醒,然后再发送拍照指令; (4)、拍照命令发出后延时等待,接收应答和图片长度信息; (5)、收到回应信息后,可立即或其它任何时候发出取包命令进行取包,直至图片数据全部取 回; (6)、发送休眠命令;
-4-
串口摄像头通讯协议
主机发送 AA 00 03 07 04 0B 正常应答为 AA 00 03 0E 03 11 AA 00 03 07 04 0B:表示摄像头波特率设置成 115200bps; AA 00 03 07 07 0E:表示摄像头波特率设置成 14400bps; AA 00 03 07 03 0A:表示摄像头波特率设置成 230400bps;
二、图像格式:每种图像格式VGA(640x480),QVGA(320x240),QQVGA(160x120 )对应3 种
压缩质量:
A:普通,B:较好,C:好 三、数据格式:
在异步串行接口中(在本协议中),一个字节数据由一个起始位,8 位数据位和一个停 止位组成。起始位始终为 0,数据位低位先发,停止位始终为 1,最后发送。下图为发送一个 为 0Xa1 的字节;
主机通过这条命令设置摄像头的波特率。默认 115200bps,上电后主机必须用默认波特率
与摄像头建立连接。
PI 值
BAUD RATE (bps)
9
9600
8
7200
7
14400
6
28800
5
57600
4
115200
3
230400
2
38400
1
19200
8、复位(08h)
9、睡眠/唤醒(09h)
AA Addr 04 09 P1 P2 Sum 应答:AA Addr 03 0E 09 Sum 例如:
0Xቤተ መጻሕፍቲ ባይዱBA0=52128BYTES
主机通过这条命令获取一帧图像数据,收到这条命令后,会先返回 ACK,然后再发送一 条数据命令,里面包含了 JPEG 图像数据的大小
5、快照设置(05h),不使用
6、设置数据包大小(06h)
AA Addr 03 06 P1 Sum 应答: AA Addr 03 0E 06 Sum 例如:
六、 图像数据包协议
包号
包长
2 字节
2 字节
Num
Len
包数据 N 字节 data
校验和 1 字节 Sum
包尾 1 字节 0x00
包格式为:包号(2 字节)+包长(2 字节)+包数据(N 字节)+校验和(1 字节)+0x00 包长:这里就是包数据,不包括校验和和包尾 校验和:包号+包长+包数据,最后得到值取低位字节 取包时可以不用按顺序进行取包,可以选择性的取包或重新取包
-5-
串口摄像头通讯协议
14、开关红外指令(20h) 格式: AA Addr 03 20 P1 Sum 应答: AA Addr 03 0E 20 Sum 例如: AA 00 03 20 00 20 :表示关闭红外灯 AA 00 03 20 01 21 :表示开启红外灯 P1:为 0 时表示关闭红外灯 为 1 时表示开启红外指示灯
主机应该依序向摄像头发送命令,每次接到摄像头对当前一条命令的响应后,再发送下一 条命令。如果串行通讯是采用RS-485 这种半双工总线方式,并且挂接多个设备时,必须让一个 设备的工作指令完全结束后再去访问另外一个设备,也不可几个设备同时访问。
如果随后较长一段时间不需要图像处理部分工作,应该向摄像头发出休眠命令以节省电 能。
协议中的数字均是16 进制值,例如FF 表示0xFF。
五、时序
1、正常工作时序 给摄像头上电后,应该等待3 秒,让模块正常复位加载程序稳定工作后,再向其发送工作 命令。在已经稳定通电的情况下,可随时向其发送工作命令。 摄像头接到完整的拍摄命令,在图像格式不变的情况下,最大在5.5 秒钟内完成拍照。小 照片一般2秒就存好,一般正常可能需要2~4 秒。拍摄完成后,摄像头会向主机发送该帧图片的 数据包长度等信息。尽管最大在5.5秒就可以完成拍照,为了能妥善稳定可靠的工作,所以在摄 像头接到拍摄命令后,在7秒钟内主机不要给摄像头模块发送任何信息。 对于主机发送给摄像头的其它命令,摄像头会在60ms内响应并发送相应信息。但是为了通 讯的稳定和可靠性,在处理响应时间时最好将其设定时间长一点,如100ms。
4、获取图像(拍摄)(04h) AA Addr 03 04 05 Sum
应答: AA Addr 03 0E 04 Sum 例如: 主机发送 AA 00 03 04 05 09 正常应答为 AA 00 03 0E 04 12 等待一帧图像拍摄时间最大为 5.5 秒后主机会收到命令:AA 00 06 0A 05 A0 CB 00 7A AA 00 03 04 05 09 :表示拍摄一帧图片的指令 AA 00 06 0A 05 A0 CB 00 7A : 表 示 拍 摄 到 的 该 帧 图 片 的 数 据 长 度 为 :
主机发送 AA 00 03 06 02 08 正常应答为 AA 00 03 0E 06 14 AA 00 03 06 02 08:表示将数据包设置成 512 Bytes AA 00 03 06 01 07:表示将数据包设置成 256Bytes AA 00 03 06 04 0A:表示将数据包设置成 1024 Bytes
0x05
320*240
QVGA
0x06
352*288
0x07
640*480
VGA
0x08
80*64
0x09
128*96
0x0a
128*128
0x0b 例如:
160*128
主机发送 AA 00 06 01 04 07 00 07 13,正常返回信息为:AA 00 03 0E 01 0F
AA 00 06 01 04 07 00 07 13 表示将摄像头初始为 JPEG 图像格式,图像格式为 640*480
七、各命令详解
在以下举例说明中,设备地址为0x00
1、 初始化(01h)
该指令设置图像参数.如:是否采用压缩方式,图像格式,图像大小
AA Addr 06 01 P1 P2 P3 P4 Sum 应答: AA Addr 03 0E 01 Sum
注:P1 为 04,固定不变,不要更改此数据
P2 值:设置成 0X07,表示图像数据采用压缩方式,JPEG 格式,固定不变,用户不要更改
此数据
P3 值:如果 P2 值为非 0X07(即采用非压缩方式的图像数据),P3 值有效,设置图像大小;
P4 值:P2 值为 0X07,表示图像数据采用压缩方式,图像格式由 P4 值决定
P4 值
图像格式
0x01
80*60
0x02
88*72
0x03
160*120
QQVGA
0x04
176*144
-3-
串口摄像头通讯协议
12、ACK(0eh) 应答命令 格式:AA Addr 03 0E 命令 ID 号 Sum 例如: AA 00 03 0E 01 0F :应答初始化命令 AA 00 03 0E 0D 1B :应答同步信号 AA 00 03 0E 07 15 :应答波特率设置命令
13、NAK(0fh) 摄像头或主机的错误应答信号 AA Addr 03 0F 命令 ID 号 Sum
485 型是总线型接口,必须给其设置专用总线地址。发送命令时,命令的总线地址码和该 摄像头的总线地址一致,摄像头才响应命令。
摄像头的总线地址是基址和拨码开关码值的和,基址是出厂时预设的,一般为十六进制, 该模块的基址为0x20 ,也可以由用户预定,但出厂之后不可改变。
232型 接口是单头型,不支持总线型接口。 2、休眠 本摄像头具有上电休眠功能,即上电时只有通讯接口和图片存储器部分工作,耗电较多的 图像处理部分处于休眠状态,在休眠模式下该模块耗电只有十几毫安。向摄像头发出拍照命令前 应唤醒然后再发送拍照命令,图像处理部分开始正常工作。正常工作后,除非接收到休眠命令, 否则摄像头不会自动进入休眠状态。 对485 型,出厂时已经预设为上电休眠,可以根据客户需要在出厂时设为上电不休眠状态。 如果多个摄像头接在一条总线上,建议用户一定要上电休眠,并且拍照、取数完成后用命令休 眠,避免多个摄像头同时工作时总线电源电流过大。