ZHCU955C August 2021 – March 2024 DLPC7540
响应数据包是 DLP 控制器应答主机的格式。写入响应和读取响应都遵循响应数据包格式。对于写入命令,只有在命令标头中设置了“已请求应答”位时才会发送响应数据包。
DLP 控制器将响应标头匹配为与输入命令数据包标头相同的格式。但有一个例外:如果响应数据包用于需要可变数据字节数的命令,则响应数据包将始终包含长度字段(无论命令数据包是否提及长度)。另请参阅与大小可变命令相关的节 18.6。
与命令数据包的定义类似,粗体字段表示始终存在的字段。
字段 | 大小(字节) | 说明 |
---|---|---|
标头 | 1 | 请参阅 表 18-4 |
长度 | 2 或 0(可选,根据标头中的“数据长度存在”字段而定) | 此字节之后的命令数据长度(以字节为单位)。校验和不包含在长度中。 例如,length=10 表示在这个长度字段之后有 10 个字节的数据。首先发送长度的 LSB,然后发送 MSB。 |
数据 | 0-511(整个消息中包括标头和校验和在内最多 512 个字节) |
响应数据字节取决于命令代码。 如果在标头中设置了错误位,则将有一个数据字节。此字节指示导致命令无应答的错误代码。表 18-5 列出了错误代码定义。 |
校验码 |
1 或 0 (可选,根据标头字节的“校验和存在”字段而定) |
消息中所有字节的校验和(包括标头字节)。Fletcher 校验和。 |
位 | 字段名称 | 值 |
---|---|---|
0:2 | 目标 | 请参阅 节 18.3 |
3 | 保留 | 不适用 |
4 | 存在数据长度 | 1 = 扩展标头中存在长度字段 0 = 无长度字段 |
5 | 存在检验和 | 1 = 数据字节后存在校验和 0 = 不存在校验和 |
6 | 错误 | 1 = 错误。第一个数据字节将包含错误代码,此代码可提供有关失败的更多信息 0 = 无错误 |
7 | Busy | 1=系统繁忙/响应未准备就绪;0=响应准备就绪。仅适用于基于 I2C 的通信 |
错误代码 | 说明 |
---|---|
1 | 无效目标 |
2 | 无效或未知命令 |
3 | 无效长度 |
4 | 分配的缓冲区不足以存储命令 |
5 | 大小可变的命令缺少长度信息 |
6 | 校验和不匹配 |
7 | 控制器不兼容,无法运行应用程序 |
8 | 不支持读取 |
9 | 不支持写入 |
10 | 执行失败 |
11 | 无效的响应长度 |
12 | 缓冲区已满 |
如上面的命令标头说明中所述,写入响应是可选项。如果请求了响应,则必须在相应的命令数据包之后立即读取响应(包括写入响应和读取响应)。一旦 DLP 控制器从主机接收到另一组字节,命令的响应就会丢失。