CW32 自举程序中使用的 ISP 协议

前言 CW32 微控制器片上 FLASH 存储器有一部分区域用于存储 BootLoader 启动程序,在芯片出厂时已编程,用 户可利用 BootLoader 启动程序提供的 ISP 模式,通过 UART 串口方便地实现对 CW32 微控制器片上 FLASH 主存储器的擦除和烧写。 本应用笔记将介绍如何进入 CW32 微控制器 ISP 模式,以及所使用的 ISP 协议,并详细介绍支持的每个命令。

CW32 自举程序中使用的 ISP 协议_第1张图片

 

1 目标芯片进入 ISP 模式的方法 • 芯片有 BOOT 脚的流程 - 使芯片处于 RESET 状态 - 向芯片的 BOOT 引脚提供高电平 - 释放芯片的 RESET 状态 - 芯片进入 ISP 模式 • 芯片无 BOOT 脚的流程 - 使芯片处于 RESET 状态 - 向芯片的 RXD(SWDIO)提供 50KHz 的方波 - 释放芯片的 RESET 状态并延时 5ms - 芯片进入 ISP 模式

2 ISP 模式工作流程 

CW32 自举程序中使用的 ISP 协议_第2张图片

当 CW32 微控制器进入 ISP 模式后,系统将等待串口接收命令。系统接收到命令后,将根据命令类型执行相 应的程序操作。

3 ISP 通信协议格式 3.1 数据传输要求 采用异步半双工通信方式,8 个数据位、1 个停止位、无校验位,初始速率为 115200BPS。 3.2 数据格式 协议以数据帧的形式进行交互,一个完整的数据帧由帧头单元、数据长度单元、数据体单元、CRC 校验单元 4 部分组成,如下图所示:

 

• 帧头单元

1 字节长度,表示一个数据帧的开始,固定为 16 进制数 0x65。

• 数据长度单元

1 字节长度,表示数据体单元有多少个字节,取值范围为 0-255。

• 数据体单元

长度不固定,为实际的应用层数据 / 指令。

• 校验单元

2 字节长度,为帧头单元、数据长度单元及数据体单元所有数据的校验值。采用 CCITT 推荐的 16 位的 CRC-16/X25 算法 x16+x12+x5+1(0x1021),生成 2 字节的 CRC 校验和(低字节收发在前,高字节收发在后)。 发送方必须根据要发送的数据生成 2 字节的 CRC 检验和,接收方收到完整的数据帧后,根据接收的数 据生成新的 CRC 检验和,如果新的 CRC 校验和与收到的校验和相等则表明该数据帧有效,否则向发送 方回送“校验错”的应答。 

3.3 应答标志 本协议采用半双工方式通讯,作为命令的主动发起方,需要收到被动接收方返回的应答标志后,才可进行后 续的操作。接收方发送应答的数据体单元的第一个字节为应答标志。应答标志编码如下表所示:

CW32 自举程序中使用的 ISP 协议_第3张图片

3.4 收发数据示例

收发数据示例:

发送方:0x65 0x01 0x10 0x65 0xF3

接收方:0x65 0x09 0x00 0x18 0x00 0x08 0x00 0x01 0x01 0x06 0x00 0xBA 0x2B

其中黄色为帧头单元,蓝色为数据长度单元,绿色为数据体单元,灰色为 CRC 校验单元。接收方的数据体单 元的第一个字节为应答标志。 

4 ISP 模式命令集

下面的表格列出了支持的 ISP 命令 

CW32 自举程序中使用的 ISP 协议_第4张图片

CW32 自举程序中使用的 ISP 协议_第5张图片 

 

你可能感兴趣的:(isp,mcu,单片机)