前言¶
本文档介绍应用层相关协议,用于指导客户开发。
本文档主要适用于以下工程师:
软件开发工程师
在本文中可能出现下列标志,它们所代表的含义如下。
概述¶
背景¶
星闪协议要求从机与主机侧交互时,从机和主机侧都搭配星闪芯片。多数场景下,主机侧的星闪芯片只作为桥片使用星闪的controller功能,星闪host部署在主SOC上。但在某些应用场景下,主机侧的星闪芯片需要使用芯片自带的星闪Host,不再作为桥片。为了实现主机SOC应用层与星闪芯片内host之间的交互,需要有对应的协议传输指令和数据。
需求¶
为支撑星闪芯片内host与主机SOC应用层之间进行消息交互,需要在应用层定义新的协议,简称SLE-Link协议。
SLE Frame格式定义¶
SLE-Link协议定义了新的SLE Frame格式,格式如下:
SLE Frame格式定义¶

注意: Service ID和Command ID使用0作为非法值
Header¶
Flag固定值:取值为0x1F。
Version:表示对应的软件版本信息。
Total Frame:表示总包数,不分包,该字段为1;如果分包,则该字段≥2。
Frame Seq:如果不分包则置为0,如果需要分包则该字段为帧序号,从1开始依次添加。
Service ID¶
Service ID:占1字节,用于标识服务类型。取值0~255,每个Service ID固定从1开始编号。
Service ID定义如下表。
为了避免各个领域和产品型态的Service ID冲突,将Service ID进行统一划分:
Command ID¶
Command ID:占1字节,用于标识具体命令类型,每个Service ID对应的Command ID都从1开始,表明真实的逻辑行为,具体的Command ID说明在后续的服务接口定义中详细介绍。
TLV格式¶
TLVs封装消息中的具体信息。一个Payload的body下可以对应多个TLV。

Type:占用1个字节,表示消息类型,取值0~255。其中0x00,0xFF不使用,0x7F固定用作错误码。
Length:占用2个字节,表示后面value的长度,取值范围0~65535。当Length为0时,表明Value不存在。
Value:为具体的数据。
注:简化处理,不支持Type下再挂子节点。
通用错误码¶
通用错误码Type值为127,固定为1个字节。格式如下。

MIC校验¶
发送端和接收端,都采用相同的算法进行校验证,接收到当检测到计算出来的MIC与发送端携带的MIC不同时,认为数据不合法,直接丢弃。
MIC采用CRC-16,算法名称:CRC-16/XMODEM,多项式poly:0x1021

Frame合法性原则¶
接收Frame Request¶
Device侧检查DATA内容,Header是0x1F,且对MIC前的所有字段做校验,得到的结果与MIC的2个字节相同,则认为是合法的SLE Frame消息。
接收Frame Response¶
Host侧检查DATA内容,Header是0x1F, 且对MIC前的所有字段做校验,得到的结果与MIC的2个字节相同,则认为是合法的SLE Frame消息。
服务接口定义¶
Device Discovery Service¶
使能SLE¶
TLV参数:
无
去使能SLE¶
TLV参数:
无
设置本地设备地址¶
TLV 参数:
获取本地设备地址¶
TLV 参数:
设置本地设备名称¶
TLV 参数:
获取本地设备名称¶
TLV 参数:
设置设备公开数据¶
TLV 参数:
设置设备公开参数¶
TLV 参数:
开始设备公开¶
TLV 参数:
结束设备公开¶
TLV 参数:
设置设备扫描参数¶
TLV 参数:
上报设备扫描结果¶
TLV 参数:
开始设备扫描¶
TLV 参数:
无
停止设备扫描¶
TLV 参数:
无
Connection Management Service¶
发送链接请求¶
TLV 参数:
断开链接请求¶
TLV 参数:
更新链接参数请求¶
TLV 参数:
发送配对请求¶
TLV 参数:
删除配对¶
TLV 参数:
删除所有配对¶
TLV 参数:
无
获取配对设备数量¶
TLV 参数:
获取配对设备¶
TLV 参数:
获取配对状态¶
TLV 参数:
读取对端设备RSSI值¶
TLV 参数:
设置ACB链路参数¶
TLV 参数:
设置PHY参数¶
TLV 参数:
设置最大功率¶
TLV 参数:
发送链接管理能力查询请求¶
TLV 参数:
断开所有链接¶
TLV 参数:
空
获取绑定设备¶
TLV 参数:
设置调制与编码策略¶
TLV 参数:
设置最大payload字节数¶
TLV 参数:
发送连接状态查询请求¶
TLV 参数:
SSAP Client Service¶
注册SSAP客户端¶
TLV 参数:
注销SSAP客户端¶
TLV 参数:
查找服务、特征、描述符¶
TLV 参数:
发起按照UUID读取请求¶
TLV 参数:
发起按照句柄读取请求¶
TLV 参数:
发起写请求¶
TLV 参数:
发起写命令¶
TLV 参数:
发送交换info请求¶
TLV 参数:
SSAP Server Service¶
注册SSAP服务端¶
TLV 参数:
注销SSAP服务端¶
TLV 参数:
异步添加SSAP服务¶
TLV 参数:
异步添加SSAP属性¶
TLV 参数:
异步添加SSAP描述¶
TLV 参数:
同步添加SSAP服务¶
TLV 参数:
同步添加SSAP属性¶
TLV 参数:
同步添加SSAP描述¶
TLV 参数:
开始SSAP服务¶
TLV 参数:
删除所有SSAP服务¶
TLV 参数:
发送SSAP响应¶
TLV 参数:
发送通知或指示¶
TLV 参数:
通过UUID发送通知或指示¶
TLV 参数:
设置服务端info¶
TLV 参数:
Factory Test Service¶
打开射频发送¶
TLV 参数:
打开射频接收¶
TLV 参数:
关闭射频收发¶
TLV 参数:
无
重置射频收发¶
TLV 参数:
无
设置RSSI阈值¶
TLV 参数:
Low Latency Service¶
低延时鼠标侧使能¶
TLV 参数:
无
低延时Dongle侧使能¶
TLV 参数:
无
低延时参数设置¶
TLV 参数:
交互流程示例¶
以SSAP交互流程为例,流程图如图1所示。





