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

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

 

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

2 ISP 模式工作流程 

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

3.4 收发数据示例

收发数据示例:

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

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

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

4 ISP 模式命令集

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

 

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值