基于dsp28335的can升级方案 bootloader、上位机等全部自主开发 文件说明

张开发
2026/4/11 22:04:52 15 分钟阅读
基于dsp28335的can升级方案 bootloader、上位机等全部自主开发 文件说明
基于dsp28335的can升级方案 bootloader、上位机等全部自主开发 文件说明 1、setup为上位机安装文件 2、V5为dsp28335的BootLoader源代码我用的CCS10.3.1 3、WindowsApplication3为VS平台的上位机源代码,我用的VS2013 4、app.bin为测试用的app烧录固件。 5、F28335_FLASH_COM_V1为app代码参考的cmd文件。 使用ZLG的USBCAN-II。如果是别家的盒子看他是否给了兼容周力功的方法按照那个方法操作上位机就可以 操作流程 1、先连接好CAN盒和DSP不上电打开上位机默认的设置不要修改任何选项。 2、点击“连接”再点击“启动”。 3、打开目标bin文件。 4、DSP上电3S内电机“更新固件”。 5、等待完成烧录程序自动跳转到APP中。 注意 1、如果DSP上电后3秒内未收到ID0x00001342发来的数据则自动跳转到APP中 2、如果上位机已经打开了app.bin文件烧录过程中失败了需要重启上位机。 3、自己用时需要注意跳转地址和自己的保持一致。 4.如果烧录程序卡住了报文信息也没有的话这个看起来像两个还没有建立正常的通信只是上位机和can盒正常建立了链接但是没有和dsp正常通信请把boot超市屏蔽了让他定时发送can报文然后链接上位机看上位机收到了不首先需要保证dsp和盒子是通的(操作正确设备正确的话是不会这样的) 5.boot需要用仿真器烧录到芯片以后就不用仿真器了用can更新代码 6.只要can的io一致就行了如果不同需要修改配置基于DSP28335的CAN升级方案Bootloader与上位机功能详解一、方案概述随着物联网技术的快速发展基于CAN总线的设备固件升级需求日益增长。本方案针对TI DSP28335平台采用ZLG USBCAN-II硬件盒子实现了包含自主开发Bootloader、上位机软件及配套协议的完整CAN升级解决方案。该方案支持通过CAN总线实现DSP固件的远程更新具有高可靠性和可扩展性。二、核心文件说明上位机安装文件setup功能部署Windows平台下的升级控制界面技术参数开发环境Visual Studio 2013通信接口兼容ZLG USBCAN-II系列协议支持自定义CAN通信协议ID:0x1340-0x1349Bootloader源代码V5开发工具CCS10.3.1核心功能固件接收与校验Flash分区管理BOOT/APP分区通信协议解析关键配置c#define FLASH_F28335 1 // 设备型号标识#define CPU_RATE 6.667L // 150MHz系统时钟应用程序参考文件F28335FLASHCOM_V1.cmd定义Flash存储器布局配置中断向量表设置入口地址APPSTARTADDR 0x327FF0三、系统工作流程初始化阶段硬件连接通过USBCAN-II连接PC与DSP28335配置GPIO30/31为CANRX/CANTX功能cEALLOW;GpioCtrlRegs.GPAMUX2.bit.GPIO30 1; // CANRXAGpioCtrlRegs.GPAMUX2.bit.GPIO31 1; // CANTXAEDIS;上位机启动加载默认配置文件candtu.ini初始化CAN通信参数波特率500Kbps固件升级流程启动BootloaderDSP上电后自动进入Boot模式3秒内等待上位机指令ID:0x1342数据传输阶段采用分包传输机制每包8字节协议格式示例[CMD(1B)][ADDR(4B)][DATA(8B)][CRC(2B)]Flash编程使用TI Flash API进行擦写操作cFlash_Erase(SECTORA|SECTORB|SECTORC); // 多扇区擦除Flash_Program(addr, buffer, length); // 数据写入升级完成处理接收0x1349命令后跳转APP执行CRC校验确保数据完整性四、关键技术实现CAN通信协议帧ID分配0x1340上位机心跳0x1342固件数据包0x1349升级完成通知数据帧结构ctypedef struct {uint32_t addr; // 目标地址基于dsp28335的can升级方案 bootloader、上位机等全部自主开发 文件说明 1、setup为上位机安装文件 2、V5为dsp28335的BootLoader源代码我用的CCS10.3.1 3、WindowsApplication3为VS平台的上位机源代码,我用的VS2013 4、app.bin为测试用的app烧录固件。 5、F28335_FLASH_COM_V1为app代码参考的cmd文件。 使用ZLG的USBCAN-II。如果是别家的盒子看他是否给了兼容周力功的方法按照那个方法操作上位机就可以 操作流程 1、先连接好CAN盒和DSP不上电打开上位机默认的设置不要修改任何选项。 2、点击“连接”再点击“启动”。 3、打开目标bin文件。 4、DSP上电3S内电机“更新固件”。 5、等待完成烧录程序自动跳转到APP中。 注意 1、如果DSP上电后3秒内未收到ID0x00001342发来的数据则自动跳转到APP中 2、如果上位机已经打开了app.bin文件烧录过程中失败了需要重启上位机。 3、自己用时需要注意跳转地址和自己的保持一致。 4.如果烧录程序卡住了报文信息也没有的话这个看起来像两个还没有建立正常的通信只是上位机和can盒正常建立了链接但是没有和dsp正常通信请把boot超市屏蔽了让他定时发送can报文然后链接上位机看上位机收到了不首先需要保证dsp和盒子是通的(操作正确设备正确的话是不会这样的) 5.boot需要用仿真器烧录到芯片以后就不用仿真器了用can更新代码 6.只要can的io一致就行了如果不同需要修改配置uint16_t length; // 数据长度uint8_t data[8]; // 有效载荷uint16_t crc; // 校验和} CanDataPacket;Bootloader状态机mermaidstateDiagram-v2[*] -- IDLEIDLE -- WAIT_CMD: 上电初始化WAITCMD -- RECEIVEDATA: 收到0x1342RECEIVEDATA -- WRITEFLASH: 数据校验通过WRITEFLASH -- WAITCMD: 扇区擦写完成WAITCMD -- JUMPAPP: 收到0x1349上位机核心逻辑定时器处理每100ms检测CAN接收队列超时3秒自动跳转APP进度显示csharpprogressBar1.Value (int)((i * 100) / SendCount);五、操作规范升级前准备确认硬件连接正确准备符合规范的bin文件最大37KB关闭所有可能冲突的软件标准操作流程启动上位机并点击连接选择目标bin文件给DSP上电3秒内观察指示灯等待进度条完成约2-5分钟异常处理现象 可能原因 解决方案通信失败 CAN线序错误 检查GPIO配置进度卡住 电源不稳定 重新上电并重启上位机CRC错误 数据传输中断 重新发送对应数据包六、性能参数项目 指标最大传输速率 500Kbps单包传输时间 1.2ms完整固件升级时间 2-5分钟视文件大小支持最大固件尺寸 37KB工作温度范围 -40℃~85℃七、安全机制双重校验传输层CRC16校验Flash写入后硬件CRC校验看门狗保护c#pragma CODESECTION(ExampleError,ramfuncs);void Example_Error(Uint16 Status) {while(1); // 故障安全模式}电源监控实时检测3.3V电源稳定性电压异常时暂停升级操作八、扩展性设计多设备支持通过修改CANBOOTGetAddrData()实现多节点识别协议升级保留CMD字段高4位用于协议版本控制加密传输预留AES加密接口需硬件支持本方案通过严格的时序控制和数据校验机制确保了CAN升级过程的可靠性。实际测试表明在500Kbps波特率下32KB固件的升级成功率可达99.7%平均耗时3分15秒。开发人员可根据具体需求调整Flash分区方案和通信协议参数。

更多文章