] 本帖最后由 LONG_R3acc 于 2020-6-21 19:39 编辑 [/i]
[md]摄像头调试助手通讯协议
修订历史
日期 |
版本 |
更新内容 |
2020/6/8 |
0.0.1 |
首次发布 |
JPEG数据
上位机勾选JPEG数据时只需要发送JPEG的文件数据即可,不需要加任何头和尾。
协议传输
上位机勾选协议传输时需要按以下协议进行传输。
指令格式详解
指令包格式
字节数 |
4bytes |
1bytes |
4bytes |
1bytes |
… … |
n bytes |
… … |
2 bytes |
名称 |
包头 |
设备地址 |
包长度 |
指令 |
参数1 |
… |
参数2 |
校验 |
内容 |
0x59485A53 |
xxxx |
xxxx |
xxxx |
xxxx |
… |
xxxx |
xxxx |
说明:
-
所有多字节低字节在前;
-
包头固定为四字节的0x59485A53;
-
地址默认从0开始,第一个设备为0x00,第二个设备为0x01;
-
包长度为从包头到校验的所有数据长度;
-
指令为相应的功能码;
-
参数为指令需要参数时加入;
-
校验为CRC-16方式(如果在上位机端不勾选CRC-16也需要发送两个字节的数据,可以为任意值,上位机也会发送 CRC-16校验数,校验与否由下位机自行选择);
应答包格式
字节数 |
4bytes |
1bytes |
4bytes |
1bytes |
… … |
n bytes |
… … |
2 bytes |
名称 |
包头 |
设备地址 |
包长度 |
确认码 |
返回参数1 |
… |
返回参数2 |
校验 |
内容 |
0x59485A53 |
xxxx |
xxxx |
xxxx |
xxxx |
… |
xxxx |
xxxx |
通常指令0x00为应答包,但并不是所有应该都为0x00,请参考指令详解。
返回参数根据实际情况,可有可无
CRC-16
CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。
上位机使用的CRC-16算法参数如下:
多项式:X^16+X^15+X^2+1
多项式 POLY(Hex):8005
初始值 INIT(Hex):FFFF
结果异或值 XOROUT(Hex):0000
指令详解
设置图像格式
- 功能说明:设置上位机图像格式,图像大小。返回确认码表示:设置成功、校验错误、其他错误。
- 输入参数:图像格式,图像宽高。
- 返回参数:确认字
指令包格式:
字节数 |
4bytes |
1bytes |
4bytes |
1bytes |
1bytes |
2bytes |
2bytes |
2 bytes |
名称 |
包头 |
设备地址 |
包长度 |
指令 |
图像格式 |
宽 |
高 |
校验 |
内容 |
0x59485A53 |
xxxx |
xxxx |
0x01 |
xxxx |
xxxx |
xxxx |
xxxx |
图像格式:
0x01: JPEG格式图片
0x02: BMP格式图片
0x03: PNG格式图片
0x04: 原始RGB565像素数据
0x05: 原始RGB888像素数据
0x06: 原始的二值化图像像素数据
0x07: 自定义接收格式(保留)
宽:
指定图像的宽
0~0Xffff
高:
指定图像的宽
0~0Xffff
应答包格式:
字节数 |
4bytes |
1bytes |
4bytes |
1bytes |
1bytes |
2 bytes |
名称 |
包头 |
设备地址 |
包长度 |
指令 |
确认码 |
校验 |
内容 |
0x59485A53 |
xxxx |
xxxx |
0x00 |
xxxx |
xxxx |
确认码:
0x00:指令执行完毕或 OK
0x01:数据包接收错误
0x02:没有这个寄存器
0x03~0xFF:保留
发送图像显示包
- 功能说明:发送图像数据包给上位机。返回确认码表示:数据接收正确并显示、校验错误、其他错误。
- 输入参数:图像数据。
- 返回参数:确认字
指令包格式:
字节数 |
4bytes |
1bytes |
4bytes |
1bytes |
N bytes |
2 bytes |
名称 |
包头 |
设备地址 |
包长度 |
指令 |
图像数据 |
校验 |
内容 |
0x59485A53 |
xxxx |
xxxx |
0x02 |
xxxx |
xxxx |
图像数据:
需要显示图像的数据
1. 使用RGB数据时上位机端可以选择大端小端模式:
大端:低字节在前,高字节在后
小端:高字节在前,低字节在后
2. 使用图片文件时,文件头在前
应答包格式:
字节数 |
4bytes |
1bytes |
4bytes |
1bytes |
1bytes |
2 bytes |
名称 |
包头 |
设备地址 |
包长度 |
指令 |
确认码 |
校验 |
内容 |
0x59485A53 |
xxxx |
xxxx |
0x00 |
xxxx |
xxxx |
确认码:
0x00:指令执行完毕或 OK
0x01:数据包接收错误
0x02:没有这个寄存器
0x03~0xFF:保留
上位机发送写数据包(在使用前需配置好寄存器地址和寄存器值的长度)
- 功能说明:上位机发送写寄存器数据包给下位机。返回确认码表示:数据接收正确并显示、校验错误、其他错误。
- 输入参数:寄存器长度、地址和值。
- 返回参数:确认字
指令包格式:
字节数 |
4bytes |
1bytes |
4bytes |
1bytes |
N1 bytes |
N2 bytes |
2 bytes |
名称 |
包头 |
设备地址 |
包长度 |
指令 |
寄存器地址 |
寄存器值 |
校验 |
内容 |
0x59485A53 |
xxxx |
xxxx |
0x10 |
xxxx |
xxxx |
xxxx |
N1 bytes:
在上位机配置
寄存器地址(上位机端请填写16进制数):
要写的寄存器的地址值
N2 bytes:
在上位机配置
寄存器值(上位机端请填写16进制数):
要写的寄存器的内容
应答包格式:
字节数 |
4bytes |
1bytes |
4bytes |
1bytes |
1bytes |
n bytes |
名称 |
包头 |
设备地址 |
包长度 |
指令 |
确认码 |
校验 |
内容 |
0x59485A53 |
xxxx |
xxxx |
0x00 |
xxxx |
xxxx |
确认码:
0x00:指令执行完毕或 OK
0x01:数据包接收错误
0x02:没有这个寄存器
0x03~0xFF:保留
上位机发送读数据指令(在使用前需配置好寄存器地址和寄存器值的长度)
- 功能说明:上位机发送读寄存器指令给下位机,下位机返回相应的内容。返回读数据。
- 输入参数:寄存器长度、地址和值。
- 返回参数:确认字
指令包格式:
字节数 |
4bytes |
1bytes |
4bytes |
1bytes |
2 bytes |
N1 bytes |
2 bytes |
名称 |
包头 |
设备地址 |
包长度 |
指令 |
序号 |
寄存器地址 |
校验 |
内容 |
0x59485A53 |
xxxx |
xxxx |
0x11 |
xxxx |
xxxx |
xxxx |
地址长度址:
要读的寄存器的地址长度
寄存器地址:
要读的寄存器的地址值
应答包格式:
字节数 |
4bytes |
1bytes |
4bytes |
1bytes |
1bytes |
2 bytes |
N2 bytes |
n bytes |
名称 |
包头 |
设备地址 |
包长度 |
指令 |
确认码 |
序号 |
寄存器内容 |
校验 |
内容 |
0x59485A53 |
xxxx |
xxxx |
0x11 |
0x00 |
xxxx |
xxxx |
xxxx |
注意:这里的应答指令应为0x11
寄存器地址:
下位机发来的寄存器地址(上位机需要根据寄存器地址来判断上传的是那个寄存器的值)
寄存器值:
要写的寄存器的内容
确认码:
0x00:指令执行完毕或 OK
0x01:数据包接收错误
0x02:没有这个寄存器
0x03~0xFF:保留
野火大学堂——(敲黑板)这是重点,要考的
【野火大学堂】简介
![Image text]([url=https://cloud.firebbs.cn/forum/202005/13/113447psxxq2sjr99rnsj7.png]https://cloud.firebbs.cn/forum/2 ... sxxq2sjr99rnsj7.png[/url])
野火大学堂是一个电脑客户端,主要用来方便用户下载野火所有产品的资料,是一款集资料下载,在线文档,在线视频和资料更新推送于一体的软件,
免费登录,下载速度快过百度云。以后野火的资料发布和更新主要是通过野火大学堂来完成。
以后嵌入式学习,不妨来【野火大学堂】看看,stm32,rt1052,linux,fpga,freertos,rt-thread,ucos,liteos,emwin,emxgui,lwip等资料应有尽有,一站式学习,省时又省力。
【野火大学堂】下载地址(复制至浏览器打开)
【野火大学堂】登录方式
- 微信:手机微信扫码登录(推荐);
- 野火论坛:论坛帐号登录,没有帐号的可以先到野火论坛[url=http://www.firebbs.cn]www.firebbs.cn[/url]先注册个帐号(推荐);
- QQ:要想使用QQ扫码登录,必须先绑定论坛帐号,如果没有论坛帐号的可以先到野火论坛[url=http://www.firebbs.cn]www.firebbs.cn[/url]先注册个帐号,并将论坛帐号与QQ绑定;
- Github:Gitbub帐号登录。
|