S32K324 UDS Bootloader开发-需求篇

文章目录

    • 前言
    • 内存分配
    • UDS诊断协议需求
      • CAN ID及时间参数
      • UDS诊断服务
        • Bootloader诊断服务
        • APP诊断服务
      • DID
        • 22服务的DID:
        • 2E服务的DID:
        • Routine Control DID:
    • 刷写流程
      • 预编程
      • 主编程
      • 后编程
    • 总结

前言

之前做过一个STM32的UDS Bootloader,协议栈主要是NXP官网下的,最近在用NXP的S32K3开发,官网也有Bootloader的demo工程,本文记录S32K324 UDS Bootloader的开发过程,有了之前的经验,及方法论之后,整个Bootloader+APP+上位机+调通,只花了三天实际。现在整理下开发过程及遇到的一些问题。本篇是需求篇

内存分配

本次使用的单片机为S32K324,flash大小4M,一个扇区8k,SRAM:512KB

flash起始地址为0x4000000

RAM起始地址为0x2000000


将flash划分为Bootloader和App两块

APP跳转到boot,这个标志放在ram中,但要保证软复位时不清除.

FlashDrive需要放到ram中,每次下载APP时先下载FlashDriver

APP有效标志放入Flash中,每次刷写前清除标志,刷写成功后写入标志

flash分配如下

UDS诊断协议需求

CAN ID及时间参数

波特率:500k

物理寻址ID:0x714

功能寻址ID:0x7FF

ECU 响应ID: 0x614

P2 Server:50ms P2 *Server:5000ms

P2 Client:50ms P2 *Client:5000ms

S3server:5000ms

S3client:2000ms

STmin:0ms 连续帧协议数据单元发送的最小时间间隔

BlockSize:0 每一块中包含连续帧的个数

UDS诊断服务

Bootloader诊断服务

10

01

Diagnostic Session Control

Default Session

Phy Req

Fun Req

10

02

Diagnostic Session Control

ECU Programming Session

Phy Req

10

03

Diagnostic Session Control

ECU Extended Session

Phy Req

Fun Req

11

01

ECU Reset

Hard Reset

Phy Req

Fun Req

22

Read Data By Identifier

Phy Req

2E

Write Data By Identifier

Phy Req

27

01

Security Access

Request Seed

Phy Req

27

02

Security Access

Send key

Phy Req

31

01

Routine Control

Start Routine

Phy Req

34

Request Download

Phy Req

36

Transfer Data

Phy Req

37

Request Transfer Exit

Phy Req

APP诊断服务

10

01

Diagnostic Session Control

Default Session

Phy Req

Fun Req

10

02

Diagnostic Session Control

ECU Programming Session

Phy Req

10

03

Diagnostic Session Control

ECU Extended Session

Phy Req

Fun Req

11

01

ECU Reset

Hard Reset

Phy Req

Fun Req

14

ClearDiagnosticInformation

FF FF FF Clear all

Phy Req

22

Read Data By Identifier

Phy Req

28

00

CommunicationControl

Enable Rx and Tx

Phy Req

Fun Req

28

01

CommunicationControl

Enable Rx and DisableTx

Phy Req

Fun Req

28

02

CommunicationControl

Disable Rx and EnableTx

Phy Req

Fun Req

28

02

CommunicationControl

Disable Rx and Tx

Phy Req

Fun Req

31

01

Routine Control

Start Routine

Phy Req

85

01

ControlDTCSetting

On

Phy Req

Fun Req

85

02

ControlDTCSetting

Off

DID

22服务的DID:

F1AA:读取版本号

2E服务的DID:

F15A -写指纹

Routine Control DID:

FF00:擦除内存

0201:检查预编程条件

0202:检查checksum

FF01:检查编程完整性和兼容性

刷写流程

预编程

1.进入扩展模式(功能寻址)10 83 (83表示不需要服务器应答)

2.检查预编程条件(物理寻址)31 01 02 01,针对要刷写的ECU。一般就是检查供电电压,车速这些,如果厂家没指定,那么由ECU自己定义。如果ECU不满足预编程条件,则收到10 02进入编程模式时,返回0x22不满足条件否定响应。

3.停止DTC设置(功能寻址),85 82(82表示不需要服务器应答)

4.禁止无关通讯(功能寻址),28 83 03(83表示发送和接收报文都禁止,且不需要服务器应答,第三位01表示是应用软件报文,第三位03则表示应用软件和网络管理报文都禁止)

5.读取版本号(物理寻址)22 F1 AA ,诊断仪读取当前ECU版本信息。

主编程

1.进入编程会话10 02 ,此时在APP中应该执行复位,然后进入boot中的编程模式

2.请求种子 27 01

3.发送密匙 27 02 key

4.解锁成功后,2E服务写入指纹信息。一般就是时间和设备号这些

5.下载flash驱动程序,34 36 37服务。因为bootloader里是不带驱动程序的,防止意外操作导致flash改变,程序出现异常,所以只在刷写的时候才允许操作flash。下载完成后一般还需要例程控制31服务进行完整性检查(CRC32校验)和依赖性检查(ecu指定,DID为FF01-14229-1规定)(该步骤暂时不做)

6.擦除内存,由31服务执行,具体的DID按14229-1应该为FF00,需要给定擦除的起始地址和大小。(实际一般擦除都是ECU自己判断的区域)

7.下载APP程序,34,36,37服务。下载完成后也需要例程控制31服务中的完整性检查(CRC32校验)和依赖性检查(ecu指定,DID为FF01-14229-1规定)

8.ECU复位,一般发送11 01进行复位,复位完成后Flash驱动程序将被清除。避免意外激活这些可能会进行非预期的内存擦除或程序操作的代码。

后编程

1.主编程完成后,ECU复位,诊断仪发送进入扩展模式10 83(功能寻址,不需要ECU回复)

2.恢复通讯28 80 03(功能寻址,不需要ECU回复,03表示网络管理报文和应用报文都恢复)

3.开启DTC诊断85 81(功能寻址,不需要ECU回复)

4.清除刷写ECU的故障信息(物理寻址14 FF FF FF)

5.进入默认会话模式10 81(功能寻址)

总结

刷写流程和UDS协议和之前的都差不多,主要是需要弄清楚芯片的flash和ram区域,以及分配合适的空间给Boot和APP。后面就是Boot和APP软件的开发了。将会在后面的文章中详细介绍。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

单片机矩阵键盘

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、什么是矩阵键盘?1.独立键盘2.矩阵键盘变化1变化2变化3 3. 通过变型,举一反三,就可以实现4*4的矩阵键盘扫描 二、使用步骤…

app开发者提升第四季度广告收入的方法

第四季度将迎来双十一、双十二、圣诞、元旦为主的电商购物季,这是一年中利用线上消费为全新年度和全新预算做好准备的最佳时机,从过往的变现成功案例中汇总了优化要点,帮助开发者在第四季度和未来一年获取更多广告收益。 https://www.shensh…

CSS - 常用属性和布局方式

目录 前言 一、常用属性 1.1、字体相关 1.2、文本相关 1.3、背景相关 1.3.1、背景颜色 1.3.2、背景图片 1.4、圆角边框 二、常用布局相关 2.1、display 2.2、盒子模型 2.2.1、基本概念 2.2.2、border 边框 2.2.3、padding 内边距 2.2.4、margin 外边距 2.3、弹…

sql server2014如何添加多个实例 | 以及如何删除多个实例中的单个实例

标题sql server2014如何添加多个实例 前提(已安装sql server2014 且已有默认实例MSSQLSERVER) 添加新的实例 其实就是根据安装步骤再安装一次(区别在过程中说明) 双击安装 选择“全新独立安装或添加现有功能” 然后下一步下一…

【Spring Cloud】如何确定微服务项目的Spring Boot、Spring Cloud、Spring Cloud Alibaba的版本

文章目录 1. 版本选择2. 用脚手架快速生成微服务的pom.xml3. 创建一个父工程4. 代码地址 本文描述如何确定微服务项目的Spring Boot、Spring Cloud、Spring Cloud Alibaba的版本。 1. 版本选择 我们知道Spring Boot、Spring Cloud、Spring Cloud Alibaba的版本选择一致性非常重…

小主机折腾记18

这个月冲动消费了小两千块钱…… 1.880g5twr 由于四根2400t的内存条没有用出去,我又把它们装回了惠普的800g5twr; 看到pdd有400块钱的9350K,于是想着给他上一个9350k 在参考了pdd、咸鱼以及淘宝的价格后,我发现400块钱的9350k都…

【JAVA学习笔记】41 - 接口

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter10/src/com/yinhai/interface_ 一、快速入门 usb插槽就是现实中的接口。你可以把手机,相机,u盘都插在usb插槽上,而不用担心那个插槽是专门插哪个的&#x…

Git基本概念与使用

一、Git基本概念 git,是一种分布式版本控制软件,与CVS、Subversion这类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。g…

信奥赛一本通:数据排序(合影效果、病人排队、明明的随机数、单词排序、出现次数超过一半的数、统计字符数)

数据排序 1182:合影效果1183:病人排队1184:明明的随机数1185:单词排序1186:出现次数超过一半的数1187:统计字符数 1182:合影效果 由题目可知,n个人有 性别与身高两种属性&#xff0c…

Elasticsearch实践:ELK+Kafka+Beats对日志收集平台的实现

可以在短时间内搜索和分析大量数据。 Elasticsearch 不仅仅是一个全文搜索引擎,它还提供了分布式的多用户能力,实时的分析,以及对复杂搜索语句的处理能力,使其在众多场景下,如企业搜索,日志和事件数据分析等…

PDF Reader Pro v2.9.8(pdf编辑阅读器)

PDF Reader Pro是一款PDF阅读和编辑软件,具有以下特点: 界面设计简洁,易于上手。软件界面直观清晰,用户可以轻松浏览文档,编辑注释和填写表单。功能强大,提供了多种PDF处理工具,包括阅读、注释…

北邮22级信通院数电:Verilog-FPGA(6)第六周实验:全加器(关注我的uu们加群咯~)

北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章,请访问专栏: 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 作者建群啦!!!欢…

基于​Segment-and-Track Anything与ProPainter实现视频一键目标移除与一键祛除水印

一、 ProPainter 1.算法简介 ProPainter是由新加坡南洋理工大学(Nanyang Technological University)的S-Lab团队开发的一款视频修复工具。它融合了图像和特征修复的优势,以及高效的Transformer技术,旨在提供高质量的视频修复效果…

libcurl Socks5 堆缓冲区溢出漏洞(CVE-2023-38545)详细分析

简介 curl 是用于在各种网络协议之间传输数据的命令行工具,libcurl 用于提供处理网络通信和数据传输的 Api 接口。curl 默认下载缓冲区为 102400 字节,但如果设置低于每秒 102400 字节,缓冲区大小会自动设置为更小的值。libcurl 下载缓冲区默…

AIO开放接口平台免费畅享ChatGPT聊天、联网互动、学术等服务!更有DALL·E 3最强AI绘图功能!

免费畅享! AIO平台ChatGPT联网、聊天、学术等服务! AIO开放接口平台 | 服务介绍 ALL IN ONE (AIO)API服务是LLM(大语言模型)开放接口平台:持续接入各种主流的大模型接口,并提供简单、易用、统一的API交互…

第四章 路由基础

目录 4.1 路由器概述 4.1.1 路由器定义 4.1.2 路由器工作原理 4.1.3 路由表的生成方式 (1)直连路由 (2)静态路由 (3)动态路由 4.1.4 路由器的接口 (1)配置接口 &#xff0…

css中px、em、rem、%、vw、vh、vm、rpx 这些单位的区别

序言 px:像素 相对长度单位,相对于显示器屏幕分辨率(推荐使用) em:相对长度单位 基准点为父节点字体的大小,如果自身定义了font-size按自身来计算(浏览器默认字体是16px),整个页面内1em不是一个…

如何将 Helm Chart 推送至 Harbor ?

Author:rab 前言:我们说 Helm 的私有仓库可以是任何 HTTP Server(如 Nginx、Apache 等),而 Harbor 自带 Helm 私有仓库的功能(但默认是禁用的,需要我们手动启用),如果为了…

电子元器件管理系统 JAVA语言开发

目录 一、系统介绍 二、系统下载 三、系统截图 一、系统介绍 基于VueSpringBootMySQL的电子元器件管理系统包含元器件单位模块、元器件仓库模块、元器供应商模块、元器件品类模块、元器件明细模块、元器件采购模块、元器件采购审核模块、元器件领用模块、学生元器件申请模块…

Cisco IOS XE Web UI 命令执行漏洞

Cisco IOS XE Web UI 命令执行漏洞 受影响版本 Cisco IOS XE全版本 漏洞描述 Cisco IOS XE Web UI 是一种基于GUI的嵌入式系统管理工具,能够提供系统配置、简化系统部署和可管理性以及增强用户体验。它带有默认映像,因此无需在系统上启用任何内容或安…