...
Standard Profile要求网络中同一时刻只有2个通讯端点相互进行通讯。并且,其中一方将始终首先向另一方发送数据。另一方将始终在接收到发送数据方的数据包后做出回应,发送对应的回应数据。
这里定义上述始终首先发送数据的通讯端点为宿主(Master),而始终先接收数据再发出回应数据包的通讯端点为从机(Slave)。
Standard Profile使用了相同的格式用于Master以及Slave发出的数据包,即Flag字段的定义一致。不过根据通讯角色的不同,其发送的数据包的某些字段具有不同的含义。
对于由Master发出的数据包被称为请求命令数据包(简称请求命令),而由Slave发出的数据包被称为应答数据包(简称应答)。
请求命令与应答必须是成对出现的,每个应答总对应与一个请求命令。而Master必须在发送一个请求命令后,在接收到Slave发送应答数据包或者通讯超时后,方可进行下一个请求命令的发送。
Flag字段定义
...
存储顺序 | MSB +7 | + |
---|
...
0 LSB | ||||||||
Standard: | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
---|---|---|---|---|---|---|---|---|
Long Frame: | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
Standard Profile允许使用如下2种Flag字段的数据包格式:
包类型 | Flag取值 | 描述 |
---|---|---|
Standard | 0x10 | Payload最大254字节长度,无地址信息,带有CHKSUM |
Long Frame | 0x50 | Payload最大65534字节长度,无地址信息,带有CHKSUM |
...
采用Standard Profile的协议栈必须支持Standard类型的数据包。而当协议栈支持Long Frame模式的数据包时,Master和Slave在通讯过程中均可以随意的按照实际需要选择Standard或者Long Frame模式的数据包进行发送。
...