串口摄像头通信协议整理Word格式文档下载.docx

上传人:b****6 文档编号:17730964 上传时间:2022-12-08 格式:DOCX 页数:14 大小:74.61KB
下载 相关 举报
串口摄像头通信协议整理Word格式文档下载.docx_第1页
第1页 / 共14页
串口摄像头通信协议整理Word格式文档下载.docx_第2页
第2页 / 共14页
串口摄像头通信协议整理Word格式文档下载.docx_第3页
第3页 / 共14页
串口摄像头通信协议整理Word格式文档下载.docx_第4页
第4页 / 共14页
串口摄像头通信协议整理Word格式文档下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

串口摄像头通信协议整理Word格式文档下载.docx

《串口摄像头通信协议整理Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《串口摄像头通信协议整理Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。

串口摄像头通信协议整理Word格式文档下载.docx

320×

240(同上)

160×

160(同上)

4、配备红外灯,在拍摄时,自动点亮,以实现夜视以及省电功能。

5、摄像头应该具备自适应功能,即对外界的光线强弱具备一定的适应性,以保证在任何情况下都能获得在该情况下所能获得的最佳质量的图片.

6、应具备低功耗工作,在低功耗模式工作电流应小于或等于10mA,正常模式工作电流应小于或等于120mA(不启动红外灯的状态)。

二、摄像头接口协议

1、基本报文格式介绍

串口摄像头采用可以支持232或485接口进行通讯,其通讯协议保持一致.下行(到摄像头)报文的基本格式如下:

报文头

2字节

摄像头地址

1字节

报文类型

报文长度

命令参数

〈(65536—9)

CRC校验码

报文头:

固定两个字节0X90EB,第一个字节是0XEB,第二个字节是0X90;

摄像头地址:

每个摄像头都可以设定一个地址,地址范围从0-255,其中地址0保留,地址255用于广播报文。

每个摄像头只处理地址和自己内部设定的地址相同的报文,地址不等当作无效报文.

报文类型:

定义具体的命令类型,主要命令见下表

报文类型(16进制)

命令说明

备注

0x01

测试摄像头

0x02

按照报文给定的图像参数拍照并传输图像数据,

一次传输完全部图象数据,注意该协议返回的数据长度是三个字节,没有状态字节,状态字节对应图象数据长度的高字节,

最大支持16M字节的图象大小。

0x03

设置对比度

未实现

0x04

设置亮度

0x05

按照报文给定的图象参数拍照,并返回图像长度

0x06

传输图像数据

0x08

关闭、打开红外灯

0x0a

修改波特率不保存

新的波特率不会保存,重新上电后仍然回复到原来的波特率

0x0b

修改波特率参数并保存参数

0x0c

强制摄像头进入低功耗状态

0x0d

修改摄像头的ID

0x12

一次传输完全部图象数据,注意该协议返回的数据长度是三个字节,没有状态字节,状态字节对应图象数据长度的高字节,

0x30

请求拍照,以默认的压缩比和图象大小进行拍照,拍照结束返回图象大小,如果修改过图象大小参数,会以最后一次的图象大小进行拍照

返回拍照的图片大小

0x31

请求传输指定包的图像数据

必须顺序传递,从第0包开始,不可以随机请求

0x32

设置分包传输的包大小

默认512字节,包大小必须是128的倍数

0x33

报告上次拍照命令拍摄的图片数据大小

0x34

设置默认的图象分辨率

0x30开始的命令主要用于分包传输协议,就是主机端没有大的缓存时可以使用这些指令。

报文长度:

定义报文的数据长度,只计算命令参数部分的数据长度。

CRC校验码:

从摄像头地址字节开始到命令参数结束部分数据的CRC校验码。

校验码错误的报文作为无效报文丢弃。

CRC校验码计算公式:

C语言算法代码如下:

staticconstunsignedshortcrc_ta[256]={/*CRC余式表*/

0x0000,0x1021,0x2042,0x3063,0x4084,0x50a5,0x60c6,0x70e7,

0x8108,0x9129,0xa14a,0xb16b,0xc18c,0xd1ad,0xe1ce,0xf1ef,

0x1231,0x0210,0x3273,0x2252,0x52b5,0x4294,0x72f7,0x62d6,

0x9339,0x8318,0xb37b,0xa35a,0xd3bd,0xc39c,0xf3ff,0xe3de,

0x2462,0x3443,0x0420,0x1401,0x64e6,0x74c7,0x44a4,0x5485,

0xa56a,0xb54b,0x8528,0x9509,0xe5ee,0xf5cf,0xc5ac,0xd58d,

0x3653,0x2672,0x1611,0x0630,0x76d7,0x66f6,0x5695,0x46b4,

0xb75b,0xa77a,0x9719,0x8738,0xf7df,0xe7fe,0xd79d,0xc7bc,

0x48c4,0x58e5,0x6886,0x78a7,0x0840,0x1861,0x2802,0x3823,

0xc9cc,0xd9ed,0xe98e,0xf9af,0x8948,0x9969,0xa90a,0xb92b,

0x5af5,0x4ad4,0x7ab7,0x6a96,0x1a71,0x0a50,0x3a33,0x2a12,

0xdbfd,0xcbdc,0xfbbf,0xeb9e,0x9b79,0x8b58,0xbb3b,0xab1a,

0x6ca6,0x7c87,0x4ce4,0x5cc5,0x2c22,0x3c03,0x0c60,0x1c41,

0xedae,0xfd8f,0xcdec,0xddcd,0xad2a,0xbd0b,0x8d68,0x9d49,

0x7e97,0x6eb6,0x5ed5,0x4ef4,0x3e13,0x2e32,0x1e51,0x0e70,

0xff9f,0xefbe,0xdfdd,0xcffc,0xbf1b,0xaf3a,0x9f59,0x8f78,

0x9188,0x81a9,0xb1ca,0xa1eb,0xd10c,0xc12d,0xf14e,0xe16f,

0x1080,0x00a1,0x30c2,0x20e3,0x5004,0x4025,0x7046,0x6067,

0x83b9,0x9398,0xa3fb,0xb3da,0xc33d,0xd31c,0xe37f,0xf35e,

0x02b1,0x1290,0x22f3,0x32d2,0x4235,0x5214,0x6277,0x7256,

0xb5ea,0xa5cb,0x95a8,0x8589,0xf56e,0xe54f,0xd52c,0xc50d,

0x34e2,0x24c3,0x14a0,0x0481,0x7466,0x6447,0x5424,0x4405,

0xa7db,0xb7fa,0x8799,0x97b8,0xe75f,0xf77e,0xc71d,0xd73c,

0x26d3,0x36f2,0x0691,0x16b0,0x6657,0x7676,0x4615,0x5634,

0xd94c,0xc96d,0xf90e,0xe92f,0x99c8,0x89e9,0xb98a,0xa9ab,

0x5844,0x4865,0x7806,0x6827,0x18c0,0x08e1,0x3882,0x28a3,

0xcb7d,0xdb5c,0xeb3f,0xfb1e,0x8bf9,0x9bd8,0xabbb,0xbb9a,

0x4a75,0x5a54,0x6a37,0x7a16,0x0af1,0x1ad0,0x2ab3,0x3a92,

0xfd2e,0xed0f,0xdd6c,0xcd4d,0xbdaa,0xad8b,0x9de8,0x8dc9,

0x7c26,0x6c07,0x5c64,0x4c45,0x3ca2,0x2c83,0x1ce0,0x0cc1,

0xef1f,0xff3e,0xcf5d,0xdf7c,0xaf9b,0xbfba,0x8fd9,0x9ff8,

0x6e17,0x7e36,0x4e55,0x5e74,0x2e93,0x3eb2,0x0ed1,0x1ef0

};

unsignedshortcal_crc(unsignedchar*ptr,unsignedshortlen)

unsignedshortcrc;

unsignedcharda;

crc=0;

while(len-—!

=0){

da=(unsignedchar)(crc/256);

/*以8位二进制数的形式暂存CRC的高8位*/

crc<

<

=8;

/*左移8位,相当于CRC的低8位乘以*/

crc^=crc_ta[da^*ptr];

/*高8位和当前字节相加后再查表求CRC,再加上以前的CRC*/

ptr++;

return(crc);

上行报文的基本格式如下:

状态

数据<

(65536-9)

状态:

1字节的状态字节,反映了摄像头的当前状态

D7

D6

D5

D4

D3

D2

D1

D0

=1图像数据大于64K,请求续传

=0正常

保留

=1摄像头内部错误

=0正常

2、具体命令介绍

1、测试摄像头

命令类型:

0x01

命令长度:

0x0002

命令参数:

0x55aa

返回:

数据长度:

数据内容:

0xaa55

举例:

发送到摄像头:

90eb0101020055aa0000

返回:

90eb01010200aa550000

2、拍照并传输图像数据

命令类型:

0x02

命令参数:

字节1代表图像的分辨率,取值范围见下表

分辨率代码

分辨率

1

160*120

2

128*96

3

320*240

4

128*160

5

640*480

6

1152*864

7

1280*960

字节2代表图像的压缩比,取值范围0-4,共5个等级,0时压缩比最小,图像效果最好。

注意:

该上行报文取消了摄像头状态字节,该字节被图象长度的第三字节取代,该字节和数据长度两字节一起形成一个三字节的数据长度。

数据长度:

压缩后图象数据的大小

数据内容:

压缩后的完整jpeg数据

举例:

命令

90eb0102020005010000

其中90eb为包头,01摄象头id,02为拍照命令,0200为参数长度,05为分辨率,01为压缩比,0000为crc16.

返回拍照数据

90eb0102042306ffd8……..

其中的042306三个字节代表照片的数据长度是394275字节,后面跟的数据。

3、设置对比度

0x03

0x0001

对比度大小,对比度值以0x80为中间值上下波动。

返回:

状态字节:

00

设定的对比度值

4、设置亮度

0x04

亮度大小,亮度值以0x80为中间值上下波动。

设定的亮度值

5、拍照

0x05

字节1代表图像的分辨率,取值范围见上表

字节2代表图像的压缩比,取值范围0-4,共5个等级,0时压缩比最小,图像效果最好。

状态字节:

D7=1;

标识图像数据大于64K

0x0004

4字节压缩后图象数据的大小

6、传输图像数据

0x06

0x0000

标识图像数据大于64K,需要紧跟一个获取后续数据的报文,才可以取得完整的图象数据

7、红外灯控制

0x08

红外灯开关0x33=打开0xCC=关闭

红外灯开关值

8、修改波特率参数

01=4800

02=9600

03=19200

04=19200

05=57600

06=57600

例:

需要设置9600的波特率,命令如下:

90EBID0A010002CRC1CRC2

其它的波特率需要定制,无特别说明默认的波特率是57600,该命令修改后的波特率不会被保存,重新上电以后仍然回到原来的波特率。

9、修改波特率参数并保存

0x0b

命令长度:

02=9600

03=19200

05=57600

能修改4种拨特率,波特率为其他的波特率时,是不能修改波特率的。

其它的波特率需要定制,无特别说明默认的波特率是57600

例:

需要设置9600的波特率,命令如下:

90EBID0B02000202CRC1CRC2

该命令修改后的波特率会被保存,重新上电后使用新的波特率.

10、修改摄像头ID标识

新的ID标识号,可以取值范围为1-255

新的ID号

需要设置ID=2时,命令如下:

90EB原来ID号0D010002CRC1CRC2

11、拍照并传输黑白图像数据

0x12

128*120

320*240

128*160

640*480

1152*864

1280*960

字节2代表图像的压缩比,取值范围0-4,共5个等级,0时压缩比最小,图像效果最好。

该上行报文取消了摄像头状态字节,该字节被图象长度的第三字节取代,该字节和数据长度两字节一起形成一个三字节的数据长度。

90eb0102042306020000

其中的042306三个字节代表数据长度394275字节的数据长度

12、分包传输图像数据时请求拍照命令

拍照成功后返回图像数据的大小,一共4个字节,低字节在前。

0x0005

需要拍照时,命令如下:

90EBID号300000CRC1CRC2

90EBID号300700状态字节LEN1LEN2LEN3LEN4PLEN11PLEN2CRC1CRC2

比如命令为

90eb013000000000

返回

90EB0130070000793600001C00724E

其中0700为字节长度,00为状态字节,79360000为照片数据大小,1C00为包的数目,724E为CRC.

13、请求按分包传输图像数据

请求的图像数据包号,占两个字节,最大可达65536个数据包

返回指定包的图像数据的大小

图像数据

请求包号1的命令如下:

90EBID号3102000100CRC1CRC2

90EBID号31命令长度1命令长度2状态字节包号L包号H数据CRC1CRC2

返回的命令长度=指定包数据+包号2字节+状态1字节,如果不是最后一个包,包数据大小就是包长度。

按分包传输图像数据时,必须先发送分包拍照命令(0x30),拍照成功后必须从0包顺序传递,不可以随机传送任意包号的数据。

14、设置分包传输图像数据时的包大小,默认是512字节

数据包大小,占两个字节,包大小必须是128的整数倍,如12825651210242048等

0x0003

新的数据包大小

设定512包的命令如下:

90EBID号3202000002CRC1CRC2

90EBID号320300STA0002CRC1CRC2

15、设置分包拍照的默认图像分辨率

图像分辨率代码,见下表

设定640×

480的命令如下:

90EBID号34010005CRC1CRC2

90EBID号340200STA05CRC1CRC2

图示2:

分包传输时一幅完整图片采集流程1

此流程仅供参考,设计中应包含但不限于如下流程,即对一下采集流程兼容。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 判决书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1