应用笔记(二)| 武汉芯源CW32自举程序中使用的ISP协议
前言CW32 微控制器片上 FLASH 存储器有一部分区域用于存储 BootLoader 启动程序,在芯片出厂时已编程,用户可利用 BootLoader 启动程序提供的 ISP 模式,通过 UART 串口方便地实现对 CW32 微控制器片上 FLASH 主存储器的擦除和烧写。本应用笔记将介绍如何进入 CW32 微控制器 ISP 模式,以及所使用的 ISP 协议,并详细介绍支持的每个命令。01目标芯片进入 ISP 模式的方法▼ 芯片有 BOOT 脚的流程- 使芯片处于 RESET 状态- 向芯片的 BOOT 引脚提供高电平- 释放芯片的 RESET 状态- 芯片进入 ISP 模式▼ 芯片无 BOOT 脚的流程- 使芯片处于 RESET 状态- 向芯片的 RXD(SWDIO)提供 50KHz 的方波- 释放芯片的 RESET 状态并延时 5ms- 芯片进入 ISP 模式02ISP 模式工作流程▼ ISP 模式工作流程图https://file.**/web2/M00/52/78/pYYBAGLL2pmAHtB0AABkrqsta9Y411.png当 CW32 微控制器进入 ISP 模式后,系统将等待串口接收命令。系统接收到命令后,将根据命令类型执行相 应的程序操作。03ISP 通信协议格式▼ 数据传输要求采用异步半双工通信方式,8 个数据位、1 个停止位、无校验位,初始速率为 115200BPS。▼ 数据格式协议以数据帧的形式进行交互,一个完整的数据帧由帧头单元、数据长度单元、数据体单元、CRC 校验单元 4 部分组成,如下图所示:▼ 数据帧格式https://file.**/web2/M00/52/78/pYYBAGLL2pqARNiwAAAafyyoDpc156.png• 帧头单元1 字节长度,表示一个数据帧的开始,固定为 16 进制数 0x65。• 数据长度单元1 字节长度,表示数据体单元有多少个字节,取值范围为 0-255。• 数据体单元长度不固定,为实际的应用层数据 / 指令。• 校验单元2 字节长度,为帧头单元、数据长度单元及数据体单元所有数据的校验值。采用 CCITT 推荐的 16 位的 CRC-16/X25 算法 x16+x12+x5+1(0x1021),生成 2 字节的 CRC 校验和(低字节收发在前,高字节收发在后)。发送方必须根据要发送的数据生成 2 字节的 CRC 检验和,接收方收到完整的数据帧后,根据接收的数 据生成新的 CRC 检验和,如果新的 CRC 校验和与收到的校验和相等则表明该数据帧有效,否则向发送 方回送“校验错”的应答。▼ 应答标志本协议采用半双工方式通讯,作为命令的主动发起方,需要收到被动接收方返回的应答标志后,才可进行后 续的操作。接收方发送应答的数据体单元的第一个字节为应答标志。应答标志编码如下表所示:▼ 应答标志编码定义https://file.**/web2/M00/51/DD/poYBAGLL2pqAA4poAACAQrdMnec260.png▼ 收发数据示例收发数据示例:https://file.**/web2/M00/51/DD/poYBAGLL2pmAeACNAAAjJ2l-VsE259.png04ISP 模式命令集下面的表 4-1 列出了支持的 ISP 命令:▼ ISP 命令集https://file.**/web2/M00/52/78/pYYBAGLL2pqANGcIAAFvr-HFDcs320.pnghttps://file.**/web2/M00/51/DD/poYBAGLL2pqAA9PqAAIOrU2L3zo843.png以上是武汉芯源CW32自举程序中使用的ISP协议双存储区自举程序可利用内部闪存的双存储区功能更加安全地升级应用程序。 自举程序是一个独立于主应用程序的特殊应用程序,能够更新主应用程序。 ISP的英文是Internet Service Provider,翻译为互联网服务提供商,即向广大用户综合提供互联网接入业务、信息业务、和增值业务的电信运营商。ISP是经国家主管部门批准的正式运营企业,享受国家法律保护。 CPU的程序计数器指向ROM中自举程序第一条指令所对应的位置,当计算机被加电时,CPU开始读取并执行自举程序,而这个自举程序只有一个任务:就是将操作系统(不是全部,只是需要启动计算机的那部分程序)装入RAM中。 bootloader是系统启动或复位以后执行的第一段代码,它主要用来初始化处理器及
外设 从系统存储器启动,这种模式启动的程序功能是由厂家设置的。 tpgf 发表于 2022-11-8 11:47
双存储区自举程序可利用内部闪存的双存储区功能更加安全地升级应用程序。 ...
大佬说的非常的专业,确实是如此! guanjiaer 发表于 2022-11-8 12:07
自举程序是一个独立于主应用程序的特殊应用程序,能够更新主应用程序。
是啊,现在一般产品的都会带这个程序。 keaibukelian 发表于 2022-11-8 13:11
CPU的程序计数器指向ROM中自举程序第一条指令所对应的位置,当计算机被加电时,CPU开始读取并执行自举程序 ...
这个和你描述的有出路吧。 renzheshengui 发表于 2022-11-8 13:32
从系统存储器启动,这种模式启动的程序功能是由厂家设置的。
有硬件Bootloader和软件Bootloader,硬件的确实是厂家提供的。
页:
[1]