英飞凌TC3xx -- Bootstrap Loader分析

目录

1.Bootstrap Loaders作用

2.CAN BSL详解

2.1 CAN BSL的时钟系统

2.2 CAN BSL流程

3.小结


英飞凌TC3xx的Platform Firmware章节里,提供了多种启动模式:

  • Internal start from Flash:b111
  • Alternate Boot Mode:b110
  • Generic Bootstrap Loader Mode:b110
  • ASC Bootstrap Loader Mode:b011

之前我们已经聊过了ABM和Internal start from Flash,今天就来看看这个Bootstrap Loader具体可以做什么。

1.Bootstrap Loaders作用

根据文档描述,Bootstrap Loader主要用于在SSW阶段,使用者利用特定接口(CAN、LIN)加载一小段用户程序到CPU0的PSPR,该段用户程序会在SSW完成后运行。

因此这个功能的实现就需要上位机(PC)和下位机(Tricore)相互通讯配合。

基本逻辑如下图所示:

Bootstrap Loader的时序图在手册中SSW章节定义得非常清楚,我们必须依据这个流程在PC端(上位机)完成实现;

User Flash Routine则就是用户自定义的流程,例如传统基于UDS刷写的流程。

一般来说,这段用户程序主要是用于Flash的编程,例如ECU的下线刷写,如下图:

2.CAN BSL详解

TC3xx提供了如下ASC和CAN两种模式,具体pin脚定义如下:

 ASC模式比较好懂,流程如下:

PC发送0x00给到Tricore,Tricore基于该数据自动探测到波特率,并配置相应的ASC接口;然后返回0xD5给到PC,PC就可以下载程序到CPU0_PSPR(地址0xC0000000)。然后离开SSW,从0xC0000000开始执行用户程序。

在TC3xx的设计里,CAN BSL相对复杂,主要在对时钟配置的理解上。

首先明确几个关键特性:

  • TC3xx CAN BSL既支持标准CAN,也支持CAN FD;
  • 固定初始化帧ID位0x555;
  • 外部时钟源的情况下CAN波特率可配置

2.1 CAN BSL的时钟系统

CAN BSL的时钟是否可配置主要依赖UCB PRONCONDF.OSCCFG的编程,如下:

默认情况下该值为0,对应时钟频率为fback/5 = 20MHz,这种情况下,CAN BSL仅支持标准CAN、采样点为60%、波特率支持100\125\250\500 KBit/s;

当我们修改该UCB对应位为1时,此时允许SSW修改时钟配置。

CAN BSL怎么实现自适应波特率这个无从考证,所以暂时先用起来,接下来我们就继续聊聊整体下载流程。

2.2 CAN BSL流程

TC3xx CAN BSL定义了三类帧:

  • 初始化帧 -- PC端发送给TC3xx;
  • 确认帧 -- TC3xx返回给PC端的响应;
  • 数据帧 -- PC端发送给TC3xx的实际数据帧

具体流程可分为三个阶段: 1)初始化阶段1;2)初始化阶段2;3)数据加载阶段。

阶段1:

该阶段主要是用于CAN波特率的自适应匹配,PC端按照如下固定格式发送数据给到CAN BSL,

其中, DMSGC表示即将要发送的数量,DMSGID表示即将发送数据帧的11bitID

如果CAN BSL能识别该报文,那么会根据上位机CAN 波特率进行自适应配置,ACK响应;使用ACKID返回确认帧给到PC,格式如下:

如果不能识别,则直接返回0xAAA给到PC;

阶段2:

如果需要支持CanFD,PC可以下发更精确的波特率配置给到Tricore,否则直接跳至数据加载阶段。

下发数据帧格式如下:

Tricore响应给PC端格式如下:

主要关注NBTP(Nominal bit timing and Prescaler),用于Classical CAN和CAN FD仲裁数据段;DBTP(Data bit timing and Prescaler),用于CANFD 数据段。

阶段3:

完成上述准备工作后,PC根据如下格式开始进行数据传输:

CAN BSL将接收到的数据copy至CPU0_PSPR(0xC0000000),退出后就开始执行。

3.小结

利用TC3xx自带CAN BSL机制,可以快速实现Bootloader功能,能够有效提升下线刷写的效率。流程固定且容易理解,但缺点也很明显,加载到CPU0_PSPSR这一段程序在CAN BSL没有任何CRC、验签等校验操作,所以这部分信息安全管理和使用场景需要严格定义,不然很可能作为攻击向量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/148587.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL 数据库安装(详细教程)

文章目录 一、前言二、下载 MySQL2.1 安装包方式2.2 压缩包方式(推荐) 三、安装 MySQL3.1 解压 MySQL 文件3.2 配置环境变量3.3 初始化 data 目录3.4 安装 MySQL 服务3.5 开启 MySQL 服务3.6 修改 MySQL 密码 四、卸载 MySQL4.1 停止 MySQL 服务4.2 删除…

项目实战:Qt+OSG爆破动力学仿真三维引擎测试工具v1.1.0(加载.K模型,子弹轨迹模拟动画,支持windows、linux、国产麒麟系统)

若该文为原创文章,转载请注明出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/142454993 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、Op…

MongoDB-索引的使用和索引类型

目录 简介创建索引的方式索引的种类单列索引复合索引(多列索引)多键索引地理空间索引文本搜索索引Hash索引 索引属性 简介 MongoDB的索引种类还是不少的,因为它是个文档数据库,存储的数据种类杂七杂八的,针对MongoDB的…

MySQL学习笔记(持续更新中)

1、Mysql概述 1.1 数据库相关概念 三个概念:数据库、数据库管理系统、SQL 名称全称简称数据库存储数据的仓库,数据是有组织的进行存储DataBase(DB)数据库管理系统操纵和管理数据库的大型软件DataBase Mangement System&#xf…

输电线塔目标检测数据集yolo格式该数据集包括2644张输电线塔高清图像,该数据集已经过yolo格式标注,具有完整的txt标注文件和yaml配置文件。

输电线塔目标检测数据集yolo格式 该数据集包括2644张输电线塔高清图像,该数据集已经过yolo格式标注,具有完整的txt标注文件和yaml配置文件。 输电线塔目标检测数据集 数据集名称 输电线塔目标检测数据集(Transmission Tower Object Detecti…

网页设计html心得

一,认识网页 说到网页,其实大家并不陌生 1.1网页究竟是什么? 网页主要由文字、图像和超链接等元素构成。当然,除了这些元素,网页中还可以包含音频、视频以及Flash等。 1.2网页是如何形成的呢? 1.特殊的…

Spring Boot 中的拦截器 Interceptors

​ 博客主页: 南来_北往 系列专栏:Spring Boot实战 前言 Spring Boot中的拦截器(Interceptor)是一种用于拦截和处理HTTP请求的机制,它基于Spring MVC框架中的HandlerInterceptor接口实现。拦截器允许在请求到达控制器&#…

git笔记之重置本地仓库所有分支和远程保持一致、工作区恢复干净,像刚clone下来一样

git笔记之重置本地仓库所有分支和远程保持一致、工作区恢复干净,像刚clone下来一样 code review! 文章目录 git笔记之重置本地仓库所有分支和远程保持一致、工作区恢复干净,像刚clone下来一样1.实现该功能的 Bash 脚本示例2.改进版:增加了gi…

微软宣布弃用面向企业的WSUS更新服务 仍然保留该服务但不再添加任何新功能

Windows Server Update Services 是微软面向企业推出的一项更新服务,该服务已经存在很多年,允许 IT 管理员控制内网设备的更新节奏。今年早些时候微软宣布将在 2025 年 4 月 18 日开始弃用 WSUS 驱动程序同步功能,因为大约只有 1/3 的 IT 管理…

大模型榜单汇总整理

大型语言模型(LLM)评估榜单提供了对不同模型性能的标准化比较,涵盖了从通用能力到特定领域应用的多个方面。这些榜单专注于评估模型在特定领域的应用能力,有助于开发者了解模型的优势和局限性,推动语言模型的发展和优化…

前端html+css+js 基础总结

​​​HTML 行级元素 标签分为行级元素与块级元素 行级元素占据区域由其显示内容决定&#xff0c;如span&#xff0c;img(图片)&#xff0c;<a></a>基本格式: <a href"链接" target"_blank"></a>用于跳转到其他网站&#xff0c…

镭射限高防外破预警装置-线路防外破可视化监控,安全尽在掌握中

镭射限高防外破预警装置-线路防外破可视化监控&#xff0c;安全尽在掌握中 在城市化浪潮的汹涌推进中&#xff0c;电力如同现代社会的生命之脉&#xff0c;其安全稳定运行直接关系到每一个人的生活质量和社会的整体发展。然而&#xff0c;随着建设的加速&#xff0c;电力设施通…

论文写作中的常见错误及规避策略

写论文&#xff0c;这个让无数学生闻风丧胆的挑战&#xff0c;可真是让人头大。 不管是初出茅庐的本科毕业论文&#xff0c;还是折腾得人头发都少了的硕士、博士论文&#xff0c;写作过程中的各种翻车场景简直就是论文写作的日常。 别慌&#xff0c;今天我就来当大家的论文救…

基于Python+SQLServer实现(界面)书店销售管理管理子系统

书店销售管理管理子系统 一、设 计 总 说 明 现在社会随着计算机技术迅速发展与技术的逐渐成熟&#xff0c;信息技术已经使人们的生活发生深刻的变化。生活中的各种服务系统也使人们在生活中的联系日常销售活动方式发生了很大的变化&#xff0c;让效率较低的手工操作成为过去…

vue3/Element-Plus/路由的使用

我们来实现一个简单的二级路由 1.准备主页和要配置的组件 主页面 <template><!-- 加载配置路由 --><RouterView></RouterView> </template><style scoped></style>组件1 <template><div>考试组件</div> </t…

【k8s】:DevOps 模式详解

1.什么是DevOps模式&#xff1f; DevOps 是当下非常火爆的一个概念&#xff0c;受到了很多互联网巨头的推崇。那么什么是 DevOps&#xff1f;它的全称是&#xff1a;集成开发与运维。至于它到底是干什么用的&#xff0c;为什么现在这么火爆&#xff0c;还得从源头说起。 1.1 …

vue3 vxe-grid 通过数据库返回的列信息,生成columns,并且其中有一列是img类型,进行slots的格式化处理。

1、一般我们写死的列信息的时候&#xff0c;会这样定义&#xff1a; 2、然后我们在template里面&#xff0c;这样这样写slots格式化部分&#xff1a; 这样表格中就会展示出一张图片&#xff0c;并且&#xff0c;我们点击了可以查看大图。 3、那么我们从数据库中返回的列&#…

二维矩阵的行、列、斜线特征(二维数组)

1. 行特征 二维 n*m 矩阵&#xff0c;用 x[i][j] 表示第 i 行第 j 列的元素。同一行的元素的 i 值是相同的。 例如&#xff0c;上图中绿色格子的数组元素分别是 x[4][1]&#xff0c;x[4][2]&#xff0c;x[4][3]&#xff0c;x[4][4]&#xff0c;x[4][5]&#xff0c;x[4][6]。 …

IDEA明明模块和环境变量配置的是JDK8但是显示别的版本解决方案

IDEA明明模块和环境变量配置的是JDK8但是显示别的版本解决方案 我目前系统中存在JDK8&#xff0c;JDK11,JDK17等多个版本&#xff0c;方便开发使用&#xff0c;但是有些时候也是比较烦人的&#xff0c;因为不同版本的JDK包有所区别。 需要注意的几个地方。方便自己排查一下。

UML——统一建模语言

序言&#xff1a; 是统一建模语言的简称&#xff0c;它是一种由一整套图表组成的标准化建模语言。UML用于帮助系统开发人员阐明&#xff0c;展示&#xff0c;构建和记录软件系统的产出。UML代表了一系列在大型而复杂系统建模中被证明是成功的做法&#xff0c;是开发面向对象软件…