1 设计目的
根据芜湖铂科新能源自身企业发展需要,开发一款基于ST公司STM32G4系列MCU(具体开发用型号STM32G473和STM32G431微处理器)的CAN总线bootloader,方便应用程序的刷写。CAN设备采用周立功CAN卡(USBCAN-II、CAN-E-U、CAN-2E-U)。
考虑兼容沈阳广成的CAN卡。
2 专有信息
2.1 STMG4
STM32G4高性能微控制器是意法半导体有限公司独特打造的新一代数模混合微控制器,是STM32F3的升级版,于2019年推出。STM32G4在性能、内置数模外设、功能安全与信息安全,以及完整的产品等4个方面都有创新和技术优势。STM32G4具有170MHz Cortex-M4内核,集成浮点运算、单指令乘加单元和坐标旋转数字计算机(Coordinate Rotation Digital Computer,CORDIC),内部集成高速比较器、高速运算放大器(简称运放)、高速ADC、高速DAC,支持CAN FD、在线升级,以及高级加密标准(Advanced Encryption Standard,AES)和信息安全,集成USB Type-C PD 3.0,同时具备高性能和低功耗特性。
STM32G4分为三大产品系列:入门型、性能型和高精度PWM型,对应的产品分别是STM32G4x1、STM32G4x3和STM32G4x4。
在温度方面,STM32G4有更高温度的认证,它可以在环境温度达到高温125℃的场景应用。
2.2 CAN总线
CAN总线的全称为控制器局域网络(Controller Area Network,CAN),是一种可以利用多物理介质传输数据的多主方式串行通信总线,如双绞线、光纤等,其中最为常用的是双绞线。CAN总线上的两条信号线分别被称为“CAN_H”和“CAN_L”,其使用方式是差分电压传送。
2.3 Bootloader
嵌入式系统引导加载程序(Bootloader)是BSP的一部分,是嵌入式系统上电后运行的第一段软件代码,是整个系统执行的第一步。Bootloader依赖于具体的嵌入式硬件结构,核心功能是操作系统引导(boot)和加载(load),此外还可以支持简单的用户命令交互、操作系统启动参数设置、系统自检和硬件调试等功能。Bootloader通常会存放在被称为boot ROM的非易失性的存储器(通常是NOR Flash ROM)中,可以存储操作系统映像、应用程序代码和用户配置数据等信息。
在汽车电子和工业控制应用中,常常需要设计基于CAN总线的Bootloader,用来实现对封装好外壳的ECU等控制器升级,而不用对控制器进行拆卸、拆解等,破环控制器的封装结构。方便系统的软件升级和维护。
2.4 编程方式
STM32G4将应用程序固化到片上Flash主要有二种方式:在电路编程(In Circuit Programing,ICP)、和在应用编程(In Application Programing,IAP)。其中,ICP是指在微控制器安装在用户应用电路板上时,使用JTAG协议、SWD协议或引导加载程序对其闪存进行编程的能力;IAP是一种在用户程序运行时对微控制器闪存重新编程的能力。本设计实现IAP,即在应用编程。参考手册上定义如下:
3 方案概述
本设计为基于STM32G4芯片,定制开发的在应用编程(IAP)Bootloader软件,由上位机程序,bootloader引导程序(也可称二次bootloader程序)和应用程序3部分组成