Skip to main content

上位机通信协议(最新版请联系FAE获取)

版本变更内容编写人日期
V1.0First Release叶康2021.1
V1.1完善文档格式和示例测量数据曹思宇2021.4
V1.2增加查询版本和调试串口指令冷红林2021.5
V1.3增加老化测试命令冷红林2021.6
V1.4增加查询chipid命令冷红林2021.6.22
V1.5增加系统初始化完成
摄像头初始化异常
摄像头解析异常
算法初始化异常指令。
冷红林2021.7.21
V1.6增加标定协议冷红林2021.7.29
V1.7优化文档说明曹思宇2021.8.03
V1.8更新SPI协议说明,X轴/Y轴坐标偏移量的类型以及数值有效范围曹思宇2021.8.06
V1.9补充协议中模式说明曹思宇2021.8.16
V1.10UART协议添加合成文本指令
工作模式添加离线单行扫描模式
田丰2021.09.02
V1.11SPI协议添加语音和文本传输田丰
施国强
2021.09.15
V1.12UART协议增加设置TTS合成语速
左手模式
施国强2021.09.30
V1.13UART协议增加合成认证码和反馈的加密码田丰2021.11.11
V1.14UART协议添加帧反馈和开机提示指令田丰2021.12.06

概述#

CSK通过SPI和UART与上位机完成相关数据通信,包括图像数据,运行状态等。此文档用于约束SPI和UART通信的时序和协议格式。

SPI通信#

SPI通讯协议用于交互图像、音频、文本数据和参数。该协议包含三个协议格式分别用于图像、音频、文本传输,用TAG字段区别。协议采用小端模式。

图像协议格式#

帧格式帧头帧数据
标记版本图像编号图像类型图像格式X轴坐标偏移Y轴坐标偏移图像宽度图像高度像素字长帧数据校验和图像数据
简称TAGVERFUIDTYPEFMTXSFTYSFTWIDTHHEIGHTDEPTHCHECKSUMDATA
长度2字节1字节2字节1字节1字节1字节1字节2字节2字节1字节2字节WIDTH*HEIGHT*DEPTH字节
数据类型uint16uint8uint16uint8uint8charcharuint16uint16uint8uint16uint8[]
描述固定值0x5A46当前版本号0x00图像编号0x00:增量图像0x01:原始图像 0x00:灰度图
0x10:RGB888
0x11:RGB565
0x20:YUYV422
0x21:YVYU422
0x22:UYVY422
增量图片X轴坐标偏移量有效范围 (-128,0)增量图片Y轴坐标偏移量有效范围 (-20 ,20 )图像宽度图像高度每个像素点长度图像数据每个像素点数据的累加和图像数据

场景1:传输裁剪后的增量图像和偏移量(正常模式)#

帧格式帧头帧数据
标记版本图像编号图像类型图像格式X轴坐标偏移Y轴坐标偏移图像宽度图像高度像素字长帧数据校验和图像数据
简称TAGVERFUIDTYPEFMTXSFTYSFTWIDTHHEIGHTDEPTHCHECKSUMDATA
长度2字节1字节2字节1字节1字节1字节1字节2字节2字节1字节2字节WIDTH*HEIGHT*DEPTH字节
数据类型uint16uint8uint16uint8uint8charcharuint16uint16uint8uint16uint8[]
描述固定值0x5A46当前版本号编号15增量图像 灰度图增量图X轴偏移量-10增量图Y轴偏移量-10图像宽度128图像高度180每个像素点长度位1字节图像数据每个像素点数据的累加和图像数据,长度为128*180*1
数据0x5A460x000x00150x000x000xF60xF60x00800x00b40x010x0000...

场景2:传输原始图像(产测模式)#

帧格式帧头帧数据
标记版本图像编号图像类型图像格式X轴坐标偏移Y轴坐标偏移图像宽度图像高度像素字长帧数据校验和图像数据
简称TAGVERFUIDTYPEFMTXSFTYSFTWIDTHHEIGHTDEPTHCHECKSUMDATA
长度2字节1字节2字节1字节1字节1字节1字节2字节2字节1字节2字节WIDTH*HEIGHT*DEPTH字节
数据类型uint16uint8uint16uint8uint8charcharuint16uint16uint8uint16uint8[]
描述固定值0x5A46当前版本号编号15原始图像 灰度图无X轴偏移量无Y轴偏移量图像宽度128图像高度180每个像素点长度位1字节图像数据每个像素点数据的累加和图像数据,长度为128*180*1
数据0x5A460x000x00150x000x000x000x000x00800x00b40x010x0000...

TTS音频传输协议#

帧格式帧头帧数据
标记音频格式通道数采样率采样深度音频长度帧数据校验和音频数据
简称TAGFMTCHANNELSAMPLESAMPLE DEPTHLENGTHCHECKSUMDATA
长度2字节1字节1字节1字节1字节4字节2字节LENGTH字节
数据类型uint16uint8uint8uint8uint8uint32uint16uint8[]
描述固定值0x5B460x00:PCM 0x01:mp3 ...0x01:单声道 0x02:双声道 0x04:四声道0x00:8KHz 0x01:16KHz ...0x10:16bit 0x18:24bit 0x20:32bit ...音频数据长度音频数据单字节累加和音频数据

OCR文本传输协议#

帧格式帧头帧数据
标记文本长度帧数据校验和文本数据
简称TAGLENGTHCHECKSUMDATA
长度2字节4字节2字节LENGTH字节
数据类型uint16uint32uint16uint8[]
描述固定值0x5C46文本数据长度文本数据单字节累加和文本数据

接口参数#

主从模式极性相位速率数据大小端选通信号有效电平特殊说明
CSK做主上位机做从Polarity 0 Phase 040M (后续可能提升至48M)LSB 低位先传输CS低电平有效由于CSK特性,SPI最大传输512字节,所以如果图像帧长度大于512字节,是分包传输

UART通信#

用于交互当前工作状态和信息

协议格式#

基于CSK标准UART串口通信协议文档 扩展命令帧和响应帧

传输协议的数据帧格式如下:

帧头帧数据
固定标记帧长度帧编号帧头校验类型地址命令字命令数据帧数据校验
FTAGLFTAGHFLENLFLENHFUIDLCHKTYPEREGCMDDATADCHK

帧头说明:

名称长度(byte)说明
固定标记2固定为FTAGL = 0x58,FTAGH = 0x46。
帧长度2由两个字节组成,低字节在前,高字节在后;表示整个命令帧的长度。
帧序号1表示命令帧的序号,确保短时唯一。
帧头校验1采用按字节累加和校验;即:(FTAGL + FTAGH + FLENL + FLENH + FUID + LCHK)% 256 = 0

帧数据说明:

名称长度(byte)说明
类型1命令帧为0xF0,响应帧(from CSK)为0xFF。
地址1预留,固定为0x00。
命令字1表示命令帧/响应帧的命令字。
命令数据X不同命令类型,有不同的命令数据结构,具体见:业务协议。
帧数据校验1采用按字节累加和校验;即: (TYPE + REG + CMD + DATA + DCHK)% 256 = 0

命令帧#

0x19查询软件版本#

用于上位机查询CSK的当前版本:包括固件版本、算法版本,以及chipid。

帧数据
类型地址命令字命令数据帧数据校验
TYPEREGCMDDATADCHK
1字节1字节1字节1字节1字节
0xF0命令帧0x000x190x00:查询固件和拼接算法固件
0x01:查询固件版本
0x02:查询拼接算法版本
0x03:查询chipid
0x04:查询切行算法版本
0x05:查询OCR算法版本
0x06:查询TTS引擎版本
0x07:查询TTS发音人ID
0x10: 查询以上的所有信息
帧数据校验
使用示例

命令帧:查询01固件版本

58 46 0B 00 04 53 F0 00 19 01 F6

响应帧:版本信息返回

58 46 0B 00 04 53 FF 00 01 10 F0, 58 46 0E 00 05 4F FF 00 04 01 01 01 15 E5

查看响应帧 0x01 命令帧反馈 查看响应帧 0x04 反馈软件版本

0x50设置工作模式#

用于上位机设置CSK的当前工作模式:单行扫描模式、多行扫描模式、录音模式等。

帧数据
类型地址命令字命令数据说明帧数据校验
TYPEREGCMDDATA DCHK
1字节1字节1字节1字节 1字节
0xF0命令帧0x000x50工作模式0x00:单行扫描模式0x01:多行扫描模式0x02:录音模式
0x03:产测模式
0x04:调试模式
0x05:老化模式
0x06:标定模式
0x07:离线单行扫描模式
产测模式:按压后,算法不运行,输出128*180的原图,其中输出的是第10帧图片,以供上位机UI显示原图,产测是否有遮挡或摄像头正常出图。
调试模式:按压后,算法不运行,输出128*180的原图,持续输出,为算法优化提供原图。
老化模式:无需按压,补光灯打开,算法运行,输出128*180的原图,持续输出图片。
帧数据校验
使用示例

命令帧:设置成在线单行扫描模式

58 46 0b 00 04 53 f0 00 50 00 C0

响应帧:设置成功返回

58 46 0B 00 04 53 FF 00 01 10 F0

查看响应帧 0x01 命令帧反馈

0x51设置功能参数#

帧数据
类型地址命令字命令数据帧数据校验
TYPEREGCMDDATADCHK
1字节1字节1字节1字节2字节1字节
0xF0命令帧0x000x51设置参数参数类型数据
0x00多行扫描时间间隔单位0.1S帧数据校验
0x01
TTS合成基线语速
语种(1字节)
0:英文
1:中文(暂不支持)
语速(1字节)
50-150
0x02
TTS合成语速
语种,同上0:慢速,0.6倍基线语速
1:中速,0.7倍基线语速
2:快速,1.0倍基线语速
0x03
左手模式
0:右手(默认值)
1:左手
......
使用示例

命令帧:设置左手持笔

58 46 0d 00 04 51 f0 00 51 03 01 00 bb

响应帧:设置成功返回

58 46 0B 00 04 53 FF 00 01 10 F0

查看响应帧 0x01 命令帧反馈

0x53下发合成文本#

帧数据
类型地址命令字命令数据帧数据校验
TYPEREGCMDDATA LENDATA
1字节1字节1字节4字节 1字节
0xF0命令帧0x000x53合成文本合成文本长度文本字符串帧数据校验
使用示例

命令帧:下发合成文本(文本为abcd)

58 46 17 00 04 47 f0 00 53 09 00 00 00 E4 B8 80 E4 BA 8C E4 B8 89 49

响应帧:设置成功返回

58 46 0B 00 04 53 FF 00 01 10 F0 ,58 46 0B 00 05 52 FF 00 50 0B A6 ,58 46 0B 00 05 52 FF 00 50 0C A5

查看响应帧 0x01 命令帧反馈

0x54下发合成认证码#

帧数据
类型地址命令字命令数据帧数据校验
TYPEREGCMDDATA LENDATA
1字节1字节1字节4字节 1字节
0xF0命令帧0x000x54合成认证认证码长度认证码字符串帧数据校验

响应帧#

0x01命令帧反馈#

系统正常启动、接收到命令帧后,CSK会发送本响应。

帧数据
类型地址命令字命令数据
TYPEREGCMDDATADCHK
1字节1字节1字节1字节1字节
0xFF响应帧0x000x01命令帧反馈0x00:系统初始化成功(系统正常启动后,会主动发送该响应)
0x10:收到正确的命令
0x11:数据帧格式错误
0x12:数据帧参数错误
帧数据校验

0x50反馈工作状态#

用于CSK反馈上位机当前的工作状态:待机状态,扫描状态,等待状态,拒绝状态等。

帧数据
类型地址命令字命令数据
TYPEREGCMDDATADCHK
1字节1字节1字节1字节1字节
0xFF响应帧0x000x50工作状态0x00:待机状态0x01:扫描状态0x02:等待状态0x03:拒绝状态
0x04;标定状态
0x05:系统初始化完成
0x06:摄像头初始化异常
0x07:摄像头解析异常
0x08:算法初始化异常
0x09:OCR文本输出中
0x0A:OCR文本输出结束
0x0B:TTS合成输出中
0x0C:TTS合成输出结束
帧数据校验

0x51反馈标定状态#

帧数据
类型地址命令字命令数据帧数据校验
TYPEREGCMDDATADCHK
1字节1字节1字节1字节1字节1字节1字节
0xFF响应帧0x000x51标定状态标定状态值X坐标Y坐标帧数据校验
标定状态值value
ADJUST_OK0
ERROR_FULL_BLACK(0b01 << 1)
ERROR_CENTER_WHITE(0b01 << 2)
ERROR_UPON_LIGHT_OFF(0b01 << 3)
ERROR_DOWN_LIGHT_OFF(0b01 << 4)

0x04反馈软件版本#

用于CSK反馈上位机当前软件版本。

帧数据
类型地址命令字命令数据帧数据校验
TYPEREGCMDDATADCHK
1字节1字节1字节4字节1字节
0xFF响应帧0x000x04软件版本0x01:固件版本0x02:拼接算法版本
0x03:CHIPID
0x04:切行算法版本
0x05:OCR算法版本
0x06:TTS引擎版本
0x07:TTS发音人ID
0x10:以上信息汇总
VER_1:主版本
VER_2:次版本号
VER_3:保留
帧数据校验

0x52反馈合成加密码#

帧数据
类型地址命令字命令数据帧数据校验
TYPEREGCMDDATA LENDATA DCHK
1字节1字节1字节4字节 1字节
0xFF响应帧0x000x52合成加密加密码长度加密码字符串帧数据校验

接口参数#

波特率数据位校验位停止位
11520081
  • 没帮助 0