1.一种用于汽车电控单元的程序下载系统,其特征在于,该程序下载系统与汽车电控单元的Bootloader相配合,其包括:
人机交互界面,用于根据实际需要选择应用程序、设置参数、接收和发送数据显示及进行程序下载;
HEX文件解析模块,用于通过文件路径打开并读取应用程序的HEX文件,将HEX文件解析并转换为芯片可以识别的数据格式;
CAN通讯模块,用于将解析好的应用程序以CAN通信的形式发送给下位机,同时接收到Bootloader的状态反馈信息,并根据反馈信息对下载操作进行调整;接收和发送的CAN数据帧及相关信息显示在人机交互界面上。
2.根据权利要求1所述的一种用于汽车电控单元的程序下载系统,其特征在于,人机交互界面中设置参数包括CAN通道号、波特率、ID类型、发送ID号及其他参数。
3.根据权利要求1所述的一种用于汽车电控单元的程序下载系统,其特征在于,所述的芯片为英飞凌系列芯片。
4.一种用于汽车电控单元的程序下载方法,其特征在于,包括以下步骤:
1)在文件路径下选择需要下载的应用程序的HEX文件;
2)通过文件路径打开并读取应用程序的HEX文件,将HEX文件解析并转换为芯片可以识别的数据格式;
3)使上位机程序下载系统与下位机Bootloader建立通信连接;将解析好的应用程序以CAN通信的形式发送给下位机,同时接收到Bootloader的状态反馈信息,并根据反馈信息对下载操作进行调整;
4)通过CAN总线向下位机发送程序下载命令,并等待来自Bootloader的反馈信息,同时观察到上位机接收到的CAN数据;
5)通信连接建立成功,则将转换好的应用程序逐帧向下位机发送,全部发完后结束下载。
5.根据权利要求4所述的一种用于汽车电控单元的程序下载方法,其特征在于,HEX文件解析包括以下步骤:
1.1)以行为单位读取HEX文件中的字符串;
1.2)将字符串转换为16进制数据,并以字节为单位将其转换为数列;
1.3)取数列的第4字节并根据其值进行判断:
如果是00,则该行字符串存储的是数据,则根据行偏移地址判断是否对该行数据进行页分割或页添加,然后返回步骤1.1);
如果是01,则该文件全部处理完毕,结束;
如果是04,则该行字符串存储的是页首地址,返回步骤1.1);
1.4)一行字符串处理完毕后,跳转至下一行继续处理。
6.根据权利要求5所述的一种用于汽车电控单元的程序下载方法,其特征在于,根据行偏移地址判断的具体步骤为:
根据行偏移地址判断该行是否包含页首地址:若是,则根据偏移地址极端页首地址并对数据记录进行分割;若否,则直接将数据记录添加至页数组中。
7.根据权利要求4所述的一种用于汽车电控单元的程序下载方法,其特征在于,CAN通信的发送流程具体步骤如下:
2.1)应用程序启动后,向下位机Bootloader发送程序下载请求;
2.2)与下位机Bootloader进行握手,以建立CAN通信;
2.3)建立通信连接成功后,从HEX文件解析出一页数据,逐帧循环发送给Bootloader,每帧包含四个字节的数据;
2.4)间隔循环发送33帧数据;
2.5)如果收到Bootloader反馈的下载确认通知,则跳转至步骤2.3),再解析出一页数据继续发送;如果没有收到下载确认通知,则返回步骤2.4)。
8.根据权利要求7所述的一种用于汽车电控单元的程序下载方法,其特征在于,CAN通信的接收流程具体步骤如下:
3.1)读取CAN通信接收缓冲区的内容;
3.2)判断不同ID的报文内容:若为下位机Bootloader发送来的握手信息,则与下位机进行握手;
若为下位机Bootloader反馈的程序下载确认通知,则跳转至CAN通信发送流程发送下一页的数据。