Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

采用Standard Profile的协议栈必须支持Standard类型的数据包。而当协议栈支持Long Frame模式的数据包时,Master和Slave在通讯过程中均可以随意的按照实际需要选择Standard或者Long Frame模式的数据包进行发送。

请求命令数据包

...

数据类型u8u8u8u8[n]u8
Standard:

0x10

Len[7..0

...

]CMDPayload[n

...

]CHKSUM
数据类型u8u16u8u8[n

...

]

...

u8
Long

...

Frame:

...

0x50

Len[15..0

...

]CMDPayload[n

...

]CHKSUM

由Master发送的请求命令数据包采用如上2种固定的数据包结构。其中,CMD字段的大部分取值可由应用程序使用。用于对Slave具体功能的调用或者数据请求。其具体取值请参考对应的设备文档。
符合Standard Profile规范的协议栈将保留如下的CMD字段取值,用于完成协议栈本身的处理任务:

保留的CMD取值

描述

0x00

强制同步帧。用于实现通讯信道同步

0x01

ECHO帧,用于测试Slave通讯状况

0x02 – 0x0F

保留

应用程序需要避免使用上述保留的CMD字段取值。


应答数据包

数据类型u8u8u8u8[n]u8
Standard:

0x10

Len[7..0]RespPayload[n]CHKSUM
数据类型u8u16u8u8[n]u8
Long Frame:

0x50

Len[15..0]RespPayload[n]CHKSUM


保留Resp

保留的CMD取值

描述

0x00

强制同步帧。用于实现通讯信道同步

0x01

ECHO帧,用于测试Slave通讯状况

0x02 – 0x0F

保留

...

Wiki Markup
Standard Profile规范对Payload\[n\]的使用不做出假设。但具体的Slave设备会要求在不同的CMD字段取值情况下,对Payload\[n\]字段的数据格式做出假设。

应答数据包

Wiki Markup
0x10Len\[7..0\]RespPayload\[n\]CHKSUMu8u8u8u8\[n\]u8Standard:Long Frame:
0x50Len\[15..0\]RespPayload\[n\]CHKSUMu8u16u8u8\[n\]u8
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="47aebbc6-79be-4940-9d13-a07b13023382"><ac:parameter ac:name="">_Toc465950229</ac:parameter></ac:structured-macro><span style="color: #44546a"><em>图表</em></span> <span style="color: #44546a"><em>3-15</em></span> <span style="color: #44546a"><em>Inter-chip Protocol应答数据包格式说明</em></span>
<span style="color: #262626">由Slave发送的应答数据包满足上述2种格式。其中,CMD字段被用于对Slave先前收到的请求命令处理情况的回应。其取值必须为如下的几种:</span>
保留的Resp

(CMD)

描述

0x00

强制同步帧的应答包

0x01

ECHO帧的应答包

0x02

<OK>


表示上一个请求命令被正确执行或者从协议栈角度没有遇到问题。

0x03

<Error>
表示上一个请求命令执行过程出现问题

0xFF

<Invalid>
表示上一个请求命令接收的不完整、或者数据包本身结构不正确

...

Wiki Markup
Payload\[n\]字段在应答数据包中用于存放Slave对先前Master发来的请求命令的执行结果。当本次应答的Resp为<OK>时,Paylaod\[N\]包含的具体数据定义与相关的请求命令有关。请参考具体的Slave设备手册了解详情。

...

<Error> 表示上一个请求命令执行过程出现问题

0xFF

<Invalid> 表示上一个请求命令接收的不完整、或者数据包本身结构不正确

Payload[n]字段在应答数据包中用于存放Slave对先前Master发来的请求命令的执行结果。当本次应答的Resp为<OK>时,Paylaod[N]包含的具体数据定义与相关的请求命令有关。请参考具体的Slave设备手册了解详情。

当Resp为<Error> (0x03)或者<Invalid>(0xFF)时,Payload

...

[N

...

]将存放一个16bit的错误码,描述出错情况。Standard

...

Profile规范要求协议栈保留如下的错误码取值,具体含义请参考下表。Slave上的应用程序也可以定义更多的错误代码。

错误码

描述

0x40

请求命令包校验和不匹配

0x20

请求命令包长度超过了当前Slave协议栈缓冲区承受范围

0x10

Slave协议栈信道没有完成同步

0x8000

请求命令包中的CMD字段不被Slave支持

0x8001

请求命令在执行中遇到格式类错误,例如请求参数不符合规范

0x8002

请求命令在执行中遇到操作类错误,例如执行过程遇到问题而无法继续

...

0x8000

请求命令包中的CMD字段不被Slave支持

0x8001

请求命令在执行中遇到格式类错误,例如请求参数不符合规范

0x8002

请求命令在执行中遇到操作类错误,例如执行过程遇到问题而无法继续

SLAMWARE Core 协议命令

SLAMWARE Core Ctrl Bus通讯协议

SLAMWARE Core Ctrl Bus通讯协议使用Inter

...

SLAMWARE CORE CTRL BUS通讯协议使用Inter-chip通讯协议的扩展模式。
它的数据包类型域为标识SLAMWARE CORE CTRL BUS扩展模式的0xF8。在此扩展模式下,数据负载的格式为请求/应答通讯模式,应答数据包格式与标准Inter-chip通讯协议一致。根据数据包长度的类型分为如下两种格式:
格式一:

协议栈数据SLAMWARE Core Ctrl Bus扩展模式协议栈数据

同步标志字节

(0x50)

数据包长度

u16

0xF8

请求命令

u8

数据负载

...

...

校验字节

u8

...


格式二:

协议栈数据SLAMWARE Core Ctrl Bus扩展模式协议栈数据

同步标志字节

(

...

0x50)

数据包长度

u8

0xF8

请求命令

u8

数据负载

...

校验字节

u8

SLAMWARE Core和外部系统之间的Ctrl Bus通讯协议设计为单向通讯模式,始终由SLAMWARE Core发起数据包请求。
Image Added
外部系统需要及时回应SLAMWARE Core的请求命令,否则SLAMWARE Core将认为外部系统连线中断,可能停止正常工作。
请求命令与应答必须是成对出现的,每个应答总对应于一个请求命令。SLAMWARE Core在发送一个请求命令后,总会在接收到外部系统发送应答数据包或者通讯超时后,才会进行下一个请求命令的发送。
SLAMWARE Core也可以接受外部系统的控制命令,但由于单向通讯的模式,外部系统只能在SLAMWARE CORE定期发送外部系统控制命令查询请求的时候才可以发送控制命令。但外部系统可以通过#CMD信号通知SLAMWARE CORE尽快发送外部系统控制命令查询请求。

...



SLAMWARE CORE 请求命令


SLAMWARE CORE室内定位导航模块会发送以下请求命令,外部系统可以根据需要响应请求命令,否则SLAMWARE CORE CTRL BUS协议栈会做默认响应。标*的命令为外部系统必须响应的请求命令。否则SLAMWARE CORE将不能正常工作。

...