【技术大神】基于CAN总线通信的Bootloader功能实现

2016-08-24 技术大神活动文章
微处理器,微控制器,R7F701002,R7F701032 微处理器,微控制器,R7F701002,R7F701032 微处理器,微控制器,R7F701002,R7F701032 微处理器,微控制器,R7F701002,R7F701032

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等协议,这些内容都可以根据个人的应用案例做相应的修改,但是总的设计理念是相通的,希望能对读者有所帮助。

 

作者:简单的匠人

技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +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

选型指南  -  极海半导体  - Jan-2024 PDF 中文 下载

雅特力携工业控制、电机控制、消费电子、智能家居及汽车电子等领域近百款产品与方案亮相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

选型指南  -  RENESAS  - DEC 2022 PDF 中文 下载

瑞萨提供市场上最广泛的微控制器组合和解决方案,简化用户设计,满足全球物联网、消费电子需求

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

选型指南  -  RENESAS PDF 中文 下载

展开更多

电子商城

查看更多

品牌:武汉芯源

品类:MCU

价格:

现货: 200,000

品牌:中科芯

品类:32位微控制器

价格:¥13.0000

现货: 103,183

品牌:中科芯

品类:32位微控制器

价格:¥11.0000

现货: 102,033

品牌:中科芯

品类:32位微控制器

价格:¥6.0000

现货: 102,000

品牌:中科芯

品类:32位微控制器

价格:¥11.3000

现货: 100,239

品牌:中科芯

品类:32位微控制器

价格:¥50.0000

现货: 100,188

品牌:中科芯

品类:32位微控制器

价格:¥64.0000

现货: 100,016

品牌:中科芯

品类:微控制器

价格:¥25.0000

现货: 100,000

品牌:武汉芯源

品类:MCU

价格:

现货: 100,000

品牌:广芯微电子

品类:BLE5.0 MCU

价格:¥5.8500

现货: 100,000

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:RENESAS

品类:MCU

价格:¥33.6840

现货:50

品牌:RENESAS

品类:MCU

价格:¥13.1000

现货:25

品牌:RENESAS

品类:MCU

价格:¥2.2140

现货:13

品牌:RENESAS

品类:MCU

价格:¥12.5760

现货:10

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥16.1580

现货:1,230

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥45.9836

现货:1,140

品牌:RENESAS

品类:MCU

价格:¥22.4580

现货:156

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥53.1340

现货:70

品牌:RENESAS

品类:microcontroller

价格:¥2.8532

现货:188,410

品牌:RENESAS

品类:microcontroller

价格:¥32.9564

现货:40,179

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

3C认证/CCC认证

支持微型计算机 、便携式计算机显示设备、投影仪、打印设备、绘图仪、多用途打印复印机、扫描仪、计算机内置电源、电源适配器、充电器、服务器、收款机等产品中国强制性产品认证。

提交需求>

波导隔离器定制

可定制波导隔离器频率覆盖5.5GHz~110GHz,插损损低至0.25dB、隔离度、正向方向功率、封装尺寸参数。

最小起订量: 1pcs 提交需求>

查看更多

授权代理品牌:接插件及结构件

查看更多

授权代理品牌:部件、组件及配件

查看更多

授权代理品牌:电源及模块

查看更多

授权代理品牌:电子材料

查看更多

授权代理品牌:仪器仪表及测试配组件

查看更多

授权代理品牌:电工工具及材料

查看更多

授权代理品牌:机械电子元件

查看更多

授权代理品牌:加工与定制

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面