摄像头通讯协议
-1-
串口摄像头通讯协议
start bit LSB
MSB stop bit
波特率出厂预设为115200bps,用户可根据自己需要通过命令修改。
下图是发送一组数据(AA0D00000000)的发送时序图:
AAh
0Dh
00h
00h
00h
00h
四、协议格式:
通常的命令区命令格式如下:
帧头 1字节 0Xaa
主机通过这条命令设置摄像头的波特率。默认 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 例如:
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
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
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 04 09 00 00 09 正常应答 AA 00 03 0E 09 17 AA 00 04 09 00 00 09 :表示将摄像头处于睡眠模式 AA 00 04 09 01 00 0A :表示将摄像头唤醒
10、图像数据长度(0ah) AA Addr 06 0A 05 P1 P2 P3 Sum //图像大小 这条命令不是由主机发送出来,而是摄像头发送给主机的。是在应答图像命令(拍摄)
485 型是总线型接口,必须给其设置专用总线地址。发送命令时,命令的总线地址码和该 摄像头的总线地址一致,摄像头才响应命令。
摄像头的总线地址是基址和拨码开关码值的和,基址是出厂时预设的,一般为十六进制, 该模块的基址为0x20 ,也可以由用户预定,但出厂之后不可改变。
232型 接口是单头型,不支持总线型接口。 2、休眠 本摄像头具有上电休眠功能,即上电时只有通讯接口和图片存储器部分工作,耗电较多的 图像处理部分处于休眠状态,在休眠模式下该模块耗电只有十几毫安。向摄像头发出拍照命令前 应唤醒然后再发送拍照命令,图像处理部分开始正常工作。正常工作后,除非接收到休眠命令, 否则摄像头不会自动进入休眠状态。 对485 型,出厂时已经预设为上电休眠,可以根据客户需要在出厂时设为上电不休眠状态。 如果多个摄像头接在一条总线上,建议用户一定要上电休眠,并且拍照、取数完成后用命令休 眠,避免多个摄像头同时工作时总线电源电流过大。
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) 暂不使用,不用访问和设置
七、各命令详解
在以下举例说明中,设备地址为0x00
1、 初始化(01h)
该指令设置图像参数.如:是否采用压缩方式,图像格式,图像大小
AA Addr 06 01 P1 P2 P3 P4 Sum 应答: AA Addr 03 0E 01 Sum
注:P1 为 04,固定不变,不要更改此数据
P2 值:设置成 0X07,表示图像数据采用压缩方式,JPEG 格式,固定不变,用户不要更改
主机发送 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
二、图像格式:每种图像格式VGA(640x480),QVGA(320x240),QQVGA(160x120 )对应3 种
压缩质量:
A:普通,B:较好,C:好 三、数据格式:
在异步串行接口中(在本协议中),一个字节数据由一个起始位,8 位数据位和一个停 止位组成。起始位始终为 0,数据位低位先发,停止位始终为 1,最后发送。下图为发送一个 为 0Xa1 的字节;
-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 时表示开启红外指示灯
15、图像指令设置指令(22h) 格式: AA Addr 03 22 P1 Sum 应答: AA Addr 03 0E 22 Sum 例如: AA 00 03 22 00 22 :表示设置图像指令为最好 AA 00 03 22 01 23 :表示设置图像指令为较好 AA 00 03 22 02 24 :表示设置图像指令为一般
串口摄像头通讯协议
串口摄像头通讯传输协议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;
设备地址 1字节 Addr
包长 1字节 Length
命令码 1字节 Comm
包长 = 命令码字节数+数据区字节+校验和字节数;
校验和 = 命令码+数据0+数据1+数据2+数据N-1;
数据区 N字节 Data
wk.baidu.com
校验和 1字节 Sum
数据区为多字节,其余均为单字节, 校验和为命令码与数据区各字节的校验和,校验和只 取低字节校验和。高字节舍弃不用
主机应该依序向摄像头发送命令,每次接到摄像头对当前一条命令的响应后,再发送下一 条命令。如果串行通讯是采用RS-485 这种半双工总线方式,并且挂接多个设备时,必须让一个 设备的工作指令完全结束后再去访问另外一个设备,也不可几个设备同时访问。
如果随后较长一段时间不需要图像处理部分工作,应该向摄像头发出休眠命令以节省电 能。
协议中的数字均是16 进制值,例如FF 表示0xFF。
五、时序
1、正常工作时序 给摄像头上电后,应该等待3 秒,让模块正常复位加载程序稳定工作后,再向其发送工作 命令。在已经稳定通电的情况下,可随时向其发送工作命令。 摄像头接到完整的拍摄命令,在图像格式不变的情况下,最大在5.5 秒钟内完成拍照。小 照片一般2秒就存好,一般正常可能需要2~4 秒。拍摄完成后,摄像头会向主机发送该帧图片的 数据包长度等信息。尽管最大在5.5秒就可以完成拍照,为了能妥善稳定可靠的工作,所以在摄 像头接到拍摄命令后,在7秒钟内主机不要给摄像头模块发送任何信息。 对于主机发送给摄像头的其它命令,摄像头会在60ms内响应并发送相应信息。但是为了通 讯的稳定和可靠性,在处理响应时间时最好将其设定时间长一点,如100ms。
-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;
-2-
串口摄像头通讯协议
如果接收数据发生错码,校验和会不一致,这时应该废除该组数据,马上再发一次相同的 命令。发生错码也可能导致收到的字节数和预期的数目不一致,发生超收或者超时。
主机在接收到该帧图片的数据包长度等信息后,无需等待,主机可以立即向摄像头发出取 图像数据包命令,在取完一包数据后,可以立即取下一包命令,千万注意不要在数据传送过程 中主机再向模块发送任何命令。
0XCBA0=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 包长:这里就是包数据,不包括校验和和包尾 校验和:包号+包长+包数据,最后得到值取低位字节 取包时可以不用按顺序进行取包,可以选择性的取包或重新取包
此数据
P3 值:如果 P2 值为非 0X07(即采用非压缩方式的图像数据),P3 值有效,设置图像大小;
P4 值:P2 值为 0X07,表示图像数据采用压缩方式,图像格式由 P4 值决定
P4 值
图像格式
0x01
80*60
0x02
88*72
0x03
160*120
QQVGA
0x04
176*144
-3-
串口摄像头通讯协议
2、使用本摄像头的通常工作方式,一般步足为: (1)、上电,延时3秒,建立握手连接和唤醒。之后,也可刻进行一些相关数据配置也可以不 进行此操作; (2)、不论是否存在休眠,缓冲区中都有一张图片保存在; (3)、如果要拍照,且在休眠状态下必须先唤醒,然后再发送拍照指令; (4)、拍照命令发出后延时等待,接收应答和图片长度信息; (5)、收到回应信息后,可立即或其它任何时候发出取包命令进行取包,直至图片数据全部取 回; (6)、发送休眠命令;
主机通过这条命设置摄像头送出的每包图像数据包大小。这条命令必须在获取图像命令 之前发送,如果不设置的话,默认为每包 512Bytes,必须注意的是最后一包图像的大小是不确定 的。
P1 值 1 2 3 4 5
包大小
256 512 768 1024 2048
7、设置波特率(07h)
AA Addr 03 07 P1 Sum 应答: AA Addr 03 0E 07 Sum 例如:
发出后,等待数秒后发出的该命令 P1,P2,P3 为该帧图像的大小,P3,高字节,P1,低字节 例如: AA 00 06 0A 05 00 A0 00 AF:表示该图片大小为 0XA000 AA 00 06 0A 05 A0 D5 00 84:表示该图片大小为 0XD5A0
11、同步(0dh) 和摄像头建立握手连接命令 AA Addr 02 0D Sum 应答: AA Addr 03 0E 0D Sum 主机发送 AA 00 02 0D 0D 正常应答 AA 00 03 0E 0D 1B