ZHDU116G January 2018 – June 2024 CC1312PSIP , CC1312R , CC1352P , CC1352R , CC2642R , CC2642R-Q1 , CC2652P , CC2652PSIP , CC2652R , CC2652RB , CC2652RSIP , CC2662R-Q1
引导加载程序使用定义明确的数据包来确保与外部通信程序可靠地进行通信。所有通信(UART 自动波特率除外 [请参阅节 11.2.2.1])都使用这些定义明确的数据包。数据包始终由通信器件通过定义的 ACK 或 NACK 字节进行确认或者未确认。
在接收和发送数据包时使用相同的格式。此格式包括确认成功接收或未成功接收数据包的方式。
虽然串行端口上的实际信号不同,但对于支持的 UART 和 SSI 接口,数据包格式保持不变。
数据包发送和数据包接收必须遵守如图 11-1 所示的简单协议。
图 11-1 发送和接收协议的序列图表执行以下步骤以成功发送数据包:
请执行以下步骤来成功接收数据包:
每当接收器成功接收并验证数据包时,就会发送确认 (ACK) 字节。每当检测到发送的数据包存在错误时,就会发送一个非确认 (NAK) 字节,该错误通常是由于校验和错误或仅是数据包中格式错误的数据导致的,这允许发送方重新传输之前的数据包。
为了说明数据包处理,基本数据包格式如图 11-2 所示。
在图 11-2 中,最上面一行显示正在传输数据的设备;最下面一行是来自另一台设备的响应。
在这种情况下,发送一个 6 字节的数据包,数据如图 11-2 中所示。该数据产生校验和 0x48+0x6f+0x6c+0x61,当截断为 8 位时,该校验和为 0x84。传输的第一个字节保存数据包的大小(以字节数表示)。然后传输校验和字节。要输出的下一个字节是该数据包中的 4 个数据字节。发送器可以发送零,直到接收到非零响应,这是 SSI 所必需的、并由 UART 允许。接收器被允许返回零,直到它准备好对正在发送的数据包进行 ACK 或 NAK 操作。在传输数据包后接收到响应之前,两个器件都不会传输非零字节。
图 11-2 串行总线数据包格式