【技术大神】基于CAN总线通信的Bootloader功能实现
Bootloader功能作为一种方便有效的软件程序更新方式,已经被工业、家电、消费、汽车电子等领域广泛应用。同样,作为应用于工业、汽车电子的CAN总线通信技术,也已经被广泛的接受和认可。
笔者此前针对国内某车厂的BCM项目设计开发了一套bootloader程序,根据项目的要求,程序的升级需要通过高速CAN通信来传输数据,并保证通信协议的有效和安全。该方案使用了RH850F1L作为MCU,并按照要求把整个软件设计分成了两个主要的部分:boot区域软件和应用软件。其中应用程序主要是和具体产品功能相关的程序,这部分程序可以在以后实现升级;Boot区域的程序主要是为实现程序升级而设计的程序,这部分程序在第一次下载到芯片之后,将不能再修改。
关于CAN通信,我们使用了如下的基本设定,确保CAN通信的正常工作:
• CAN接收用中断方式,发送用查询方式;
• 错误帧处理;
• 脱离总线处理;
• CAN的休眠和唤醒机制;
• 通信速率:500K bit / s;
• 标准帧(standard ID);
• 80%左右的采样点(sample point)。
在bootloader的软件设计中,有几个关键的问题必须考虑。首先,由于中断向量表位于boot区域,所以中断的设计需要特别的考虑。该bootloader程序可以保证以后对中断服务函数的升级。为了实现这一功能,我们把所有的中断服务函数的中断向量表都进行了映射。对于已使用的中断服务函数,以后升级的时候可以直接修改函数的内容;对于目前没有使用的中断服务函数,可以给每个对应的中断写一个虚的中断服务函数,这样以后的升级函数中如果需要添加该中断的话则直接修改对应的中断服务函数就可以了。
其次,程序升级过程中的掉电问题也是bootloader功能必须要面对和解决的问题。为了解决这个问题,我们按照如下的方法来设计程序运行的流程:
1)在Flash空间的最后一个block设定一个标志,这个在编写程序的时候就设定好;如下:
2)程序在跳转到应用程序之前先判断该标志是否正常,如果不正常就停在boot区域,等待升级的命令。
3)在擦除Flash的时候,先擦除最后一块Flash,再擦除其它的Flash。
4)写数据的时候先写其它block的数据,最后再写最后一个block的数据。也就是按照hex文件中数据的顺序向flash写数据就可以。
按照这样的软件流程,如果在程序更新成功之前发生了掉电的情况,则重新上电后CPU会停在boot区域,等待下一次重新更新程序。
最后就是通信的协议。当然,目前有很多可供我们使用参考的协议。考虑到协议的易实现性以及升级的速度,我们采用了Xmodem协议,以128字节块的形式传输数据。下面是Xmodem协议相关控制字符以及帧格式。
我们设计协议的时候,软件可以支持直接对Hex文件进行解析,关于Hex文件的格式说明,这里就不做介绍了,如若有需要了解的读者可以抽时间去问一下“度娘”。
下图是程序更新成功的一个截图画面。
下载烧写完成的提示信息
上述就是bootloader主要功能的介绍,当然,针对不同应用、不同项目可能会有一些特殊的要求,比如前面提到的通信方式,既可以使用CAN,也可以使用LIN、UART等;通信协议也可以选择诸如UDS等协议,这些内容都可以根据个人的应用案例做相应的修改,但是总的设计理念是相通的,希望能对读者有所帮助。
作者:简单的匠人
- |
- +1 赞 0
- 收藏
- 评论 16
本网站所有内容禁止转载,否则追究法律责任!
评论
全部评论(16)
-
serena Lv7. 资深专家 2019-01-17学习
-
liuxj Lv6. 高级专家 2018-12-14学习了
-
用户_1278 Lv8 2018-10-29学习了~
-
小猪 Lv5. 技术专家 2018-10-26非常好的介绍,值得好好学习
-
小黄鱼 Lv7. 资深专家 2018-07-31学习
-
用户_8239 Lv7. 资深专家 2018-03-03实用!!!
-
月月风 Lv3. 高级工程师 2018-02-26有上位机制作的资料吗
- 世小强回复: 您好,请在平台搜索关键字即可获得相关资料,谢谢!
-
用户_8239 Lv7. 资深专家 2018-01-09值得推广
-
Mr王 Lv5. 技术专家 2017-12-11好东西
-
喜欢笑的那个她 Lv7. 资深专家 2017-11-23不错,能够在详细具体一下么?
- 世小强回复: 您好,相关问题可以到“技术难题”频道提问,将会有专家团队为您解答,谢谢!
相关推荐
【技术】瑞萨16位车规级MCU的CAN总线介绍及常见问题
Renesas RL78/F13系列车规级MCU,都集成有符合国际CAN总线标准的ISO11898协议,其CAN总线支持CAN2.0A/B。
技术探讨 发布时间 : 2017-09-20
极海半导体(Geehy Semiconductor)汽车电子芯片 选型指南
描述- 极海汽车电子芯片产品布局通用微控制器/微处理器、传感器、接口、驱动等多条产品线,战略聚焦车身控制、信息娱乐系统、BMS电池管理系统及域控等领域,提供符合ISO 26262功能安全标准、安全可靠、质量稳定的芯片产品与应用方案,并为客户提供丰富的开发生态与本地化技术支持。通过优质的服务和多元化的产品组合,满足汽车电子行业日益增长的应用需求,协助客户实现快速量产,助力国产汽车产业向上发展。
型号- G32A1445UAT0MLL,G32A1465UAT0MLL,G32A1445UAT0MLH,G32A1465UAT0MLH,APM32F103RCT7,APM32A407VGT7,APM32A407,APM32A103,APM32A103CBT7,APM32F003F6U7,GURC01,APM32A407ZGT7,APM32A103系列,APM32A091RCT7,APM32A091,APM32,APM32F072RBT7,APM32A091系列,APM32A407系列,G32A1445系列,APM32A103RET7,APM32A103VET7,APM32F072CBT7,G32A1445,G32A
雅特力携工业控制、电机控制、消费电子、智能家居及汽车电子等领域近百款产品与方案亮相ELEXCON 2022
雅特力作为32位微控制器的创新领导者,携工业控制、电机控制、消费电子、智能家居及汽车电子等五大领域近百款产品与方案亮相此次展会,全面展示了雅特力最新技术与成果,吸引了众多电子行业人士参观交流!
行业资讯 发布时间 : 2022-11-10
极海半导体加入深圳市汽车电子行业协会,共同推动国产汽车电子产业持续健康向上发展
热烈祝贺珠海极海半导体有限公司加入深圳市汽车电子行业协会,成为深圳市汽车电子行业协会的副会长单位!珠海极海半导体有限公司,是一家致力于开发工业级/车规级微控制器、模拟与混合信号IC及系统级芯片的集成电路设计型企业。极海团队拥有20年集成电路设计经验和嵌入式系统开发能力,为客户提供核心可靠的芯片产品,实现准确感应、安全传输和实时控制。
原厂动态 发布时间 : 2024-02-09
【经验】如何使用RFP和E1烧录配置RH850系列MCU?
Renesas 推出的RH850系列采用40nm工艺,休眠功耗为45uA,支持多种汽车网络,LIN,CAN,CAN-FD,Flexray,以太网等丰富的外设
设计经验 发布时间 : 2017-10-16
Renesas(瑞萨)电机控制微控制器(MCU)选型指南
目录- 电机MCU路线图 电机驱动推荐微控制器 16位RL78电机控制MCU RX-T电机控制MCU RA-T电机控制MCU RA-T系列主要特性 RISC-V电机专用MCU 电机控制解决方案
型号- RX200,RX6XT,RX23T,RX71M,RX2XT,RA6T3 GROUP,RISC-V-MC,RA-T,RA-T系列,RX600,RX6XX,RX63T,RX66T,RA4T1,RA6T2,RX66N,RA6T1,RX26T,RA8T2,RA6T3,RA8T1,RX62G,RA4T1 GROUP,RX-T,RA,MCK-XXXXX,RL78/G14,RA6T1 GROUP,RL78,RX74T,RX62T,RX65X,RX13T,RX7XT,RX,RX100,RISC-V,RL78/G1F,RL78/G1G,RX1XT,RL78/G24,RX7XX,RA6T2 GROUP,RX24T,RX72M,RX24U,RX72N,RA2,RA4,RXV2,RXV3,RA6,RXV1,RA8,RA-T 系列,RX23X,RX72T
瑞萨提供市场上最广泛的微控制器组合和解决方案,简化用户设计,满足全球物联网、消费电子需求
Mohammed强调了瑞萨如何成为MCU的世界领跑者,每年向汽车和工业以及基础设施和物联网系统的客户出货超过35亿个。了解您如何利用我们数十年的智能、安全MCU设计经验,以双源生产模式、业界先进的MCU工艺技术和庞大的生态系统合作伙伴网络为后盾,简化您的下一个设计并快速上市。
原厂动态 发布时间 : 2023-04-26
RL78自编程升级程序操作指南
RL78/G13 系列微控制器(MCU)可以对它们内部的flash 进行编程。本文提供了以R5F100LE微控制器为参考的flash 自编程应用的概述。
设计经验 发布时间 : 2016-07-18
【经验】瑞萨仿真器E1的自检方法
E1是瑞萨推出的用于支持MCU的片上调试仿真器和闪存编程器,提供了基本的调试功能,可以满足实际的开发需求。
设计经验 发布时间 : 2017-08-18
从超低功耗至非常高端的微控制器,Renesas为您打造“成熟稳定、安全可靠”的产品组合
从超低功耗至非常高端的微控制器,瑞萨电子提供市场上最广泛的产品组合。作为排名第一的微控制器供应商,Renesas每天出货量超过9百万只(35亿+/年),广泛应用于全球物联网、消费电子、工业、汽车和基础设施等产品。
原厂动态 发布时间 : 2023-03-18
【经验】瑞萨RL78微控制器CAN模块基础使用指引,以RL78/F13系列的R5F10BBF微控制器为例
瑞萨汽车电子推出的RL78/F13微控制器系列,集成车载CAN总线模块,支持ISO11898-1 ,CAN2.0A&B协议。适用于汽车控制系列,如BCM,空调控制,TPMS,RKE,PEPS等运用。 本文以R5F10BBF为例,介绍瑞萨RL78芯片的CAN模块基本配置。
设计经验 发布时间 : 2018-11-02
【技术】瑞萨编译器调用#Pragram语句的常用小技巧
瑞萨MCU可以通过瑞萨编译器CS+和E1下载器搭配使用进行调试,#Pragram语句可以用来打开内置定义的开关和定义中断函数。
设计经验 发布时间 : 2017-08-27
【产品】瑞萨推出适用于工业以太网通信和TSN的RZ/N2L微处理器,可方便地向工业设备及装置添加网络功能
近来,“数字化转型(DX)”这个词常常进入人们的视野。数字化转型的构建以“连接”为基础,而工业界很早就希冀通过“连接”来提高生产效率。瑞萨电子推出了适用于工业以太网通信和TSN的RZ/N2L微处理器,可方便地向工业设备及装置添加网络功能。
产品 发布时间 : 2022-08-14
【选型】用于汽车电子领域的RH850/P1X微处理器的选型指导
瑞萨推出的RH850/P1X系列微处理器是基于ISO26262功能安全协议的用于车载应用底盘控制的高端微型处理器。RH850/P1X系列微处理器采用RH850G3M处理器,CPU主频120-240MHz,支持浮点单元(FPU),支持存储器保护单元(MPU)。
器件选型 发布时间 : 2018-03-17
【选型】RENESAS ( 瑞萨电子)工业自动化产品选型指南(中文)
目录- 应用和通用技术 R-IN联盟 RZ/N系列 功能安全解决方案 安全解决方案 工业网络解决方案 交通伺服系统配置和推荐产品 RZ/T系列的四大特点 通用逆变器系统配置和推荐产品 通用逆变器的推荐设备 PLC系统配置和推荐产品 PLC推荐设备 远程IO系统配置和推荐产品 远程IO系统的推荐设备 瑞萨电子Synergy平台 微控制器和SoC开发工具
型号- RX200,RX71M,RZ/A1L,PS2801C-4,RZ/NTL,PS9352A,R-IN32M3-EC,RT系列,S5系列,RTK5631NSPF02001SJ,RZNID,S1系列,RAA23015X,RTK0EF0017F01001SJ,RZN1D,PS9031,R-IN32M3CL,RX600,RZNIS,RMLV1616A,RN1S系列,RML0408E,RZ/AIL,R-IN32M3,RTK0EF0004F01001SJ,RZ/T1,RMLV0416E,R-IN32M4,R-IN32-CL,RZ/N1S,RZ/A系列,RMLV0808B,RTK0EFDO17F01001SJ,N1L系列,RX71M,RTK5631NSPF04000SJ,RZ/N1L,R-IN32-CL2,R-IN32M3-CVEC,RMLW0408E,RZ/N1D,RG系列,RX100,RX85N,RZ,RN1D,R-IN32M4CL2,RTK5631NSPF02000SJ,PS2381,PS2811-4,RT1系列,R-IN32M4-CL2,RZ/NIL,R-IN32,ERMW216A,RN2M3CL,RN1S,RZA1L,N系列,RTK51110SPF01000SJ,PS92381,R-IN32M3-CL,RZ/N,RXV2,RZN1S,RZ/G,RTK0EF0002D01001BJ,RZ/N1,RMWV3216A,PS8902,RZ/T,R-IN32-EC,N1系列,RN1L系列,RA1系列,RAA23015X,RN1D系列,RX系列,RN1,RMLV416E,RTK0EF0041F01001SJ,RX23T,RTK0EF0011D01001BJ,RX63N,PS8352A,RA1C,S3系列,RA1L,RN系列,RJH65D27BDPQ-AD,RXB3T,PS902,PS9905,RZ/A1,RZTI,RX63T,RAA23023X,RTK51110SPF02000SJ,RX113,A1系列,RX631,R-IN,RX231,RX111,R113,RN2M3EC,RJH85D27BDP0-A0,RMLV0408E,PS9031,RMLV0816B,T1系列,RJH65D27BDP0-A0,RZALL,RZ/G系列,RTK0EF0040F01001SJ,RMLV3216A,RX62T,T系列,R-IN32M3-CL2,RMLW0416E,RX65N,PS9009,PS9402,RTK0EF0005Z01001ZJ,PS9924,PS284X-4,RX700,RZ/N1LRTK5631NSPF04000SJ,RA系列,RX651,RX24T,RX24U,EC-1,RX64M,RTK0EF0031Z01001ZJ,RZ/A1LC,PS284X-4,RZ系列,PS9124,PS9123,PS9001,S7系列,RIK51110SPF01000SJ,RJH65D27BDPQ-A0,RAA23023X,TPS-1,N1S系列,R-IN32M
电子商城
现货市场
服务
支持微型计算机 、便携式计算机显示设备、投影仪、打印设备、绘图仪、多用途打印复印机、扫描仪、计算机内置电源、电源适配器、充电器、服务器、收款机等产品中国强制性产品认证。
提交需求>
可定制波导隔离器频率覆盖5.5GHz~110GHz,插损损低至0.25dB、隔离度、正向方向功率、封装尺寸参数。
最小起订量: 1pcs 提交需求>
登录 | 立即注册
提交评论