- 博客(101)
- 资源 (15)
- 收藏
- 关注
原创 TC275 Flash驱动RAM加载的完整实现——从段属性配置到PSPR拷贝,手把手教你让Flash驱动在RAM中安全运行
在TC275上开发Bootloader时,Flash驱动必须运行于RAM(PSPR)以避免擦写时取指失败。因CPU无法从正在操作的Flash取指,故需将核心函数(如擦除、写入)加载至独立的24KB PSPR区域执行。实现路径包括:通过__attribute__((section))或#pragma section指定代码段;修改链接脚本定义运行地址为PSPR、加载地址为Flash;利用复制表由启动代码自动拷贝,或由Bootloader动态加载并使用dsync确保内存一致性。关键验证手段为检查函数地址是否位于
2026-10-09 16:55:46
230
原创 国密SM2/SM3/SM4算法介绍及其在充电桩中的应用
本文将系统介绍SM2、SM3、SM4三大算法的技术原理、功能定位与协同关系,并以充电桩这一典型的物联网应用场景为例,展示国密算法在实际工程中的完整落地。
2026-09-09 11:56:39
258
原创 TC275 UDS Bootloader 开发避坑指南
本文总结了在英飞凌AURIX TC275开发板上实现UDS Bootloader过程中遇到的关键问题及解决方案。主要内容包括:1. 工程配置重命名导致的调试路径问题;2. Bootloader与APP地址重叠的LSL脚本配置;3. Flash驱动必须在RAM中执行的特性及实现方法;4. 调试下载过程中常见的连接和烧录问题;5. UDS协议帧长度适配问题。文章特别强调了TC275开发中的三大核心挑战:Flash驱动的RAM化、正确使用缓存/非缓存地址空间、调试配置与编译器的匹配。作者通过实践经验指出,理解这些
2026-08-14 11:14:28
375
原创 基于TC275 Lite Kit的CAN UDS Bootloader开发实战
摘要: 本文介绍了一套基于英飞凌AURIX TC275芯片的UDS Bootloader开发方案,专为汽车电子ECU固件升级设计。方案解决了Flash自编程、UDS协议栈实现等核心技术难点,提供完整的MCU端源码、PC端上位机工具及测试报告。该方案经过量产验证,支持CAN通信,适用于企业、开发者快速实现TC2XX平台的OTA刷写功能,节省开发周期。配套资料包括硬件连接指南、编译烧录步骤,适合汽车电子工程师及AURIX学习者。
2026-08-09 16:52:37
470
原创 基于图莫斯的CAN UDS诊断上位机-LabVIEW版本(十九):TOOMOSS_SID2F_InputOutputControl.vi — 输入输出控制
文章摘要: 本文详细介绍了UDS协议中的0x2F输入输出控制服务,该服务允许诊断工具直接操控ECU硬件行为,绕过整车逻辑,适用于产线检测(如车窗升降测试)或硬件验证(如仪表灯点亮)。其核心功能包括四种控制模式:交还控制权(0x00)、设为默认值(0x01)、冻结状态(0x02)和短期调整(0x03)。文中分析了请求/响应报文格式、常见否定响应码(NRC)及限制条件(如扩展会话、安全访问),并展示了LabVIEW子VI(TOOMOSS_SID2F_InputOutputControl.vi)的设计流程,涵盖D
2026-08-08 14:45:58
350
原创 基于图莫斯的CAN UDS诊断上位机-LabVIEW版本(十八):TOOMOSS_SID3E_TestPresent.vi — 诊断仪在线保持
摘要: UDS诊断通信中的3E TesterPresent服务用于维持非默认会话状态,防止ECU因超时自动返回默认会话。该服务通过周期发送0x3E请求(子功能0x00需响应,0x80无需响应)重置ECU的会话超时定时器,适用于诊断或刷写流程。TOOMOSS_SID3E_TestPresent.vi封装了该服务,支持两种模式,并通过后台循环实现自动保活(推荐500ms~1000ms间隔)。设计强调总线负载优化(优先0x80子功能)及错误处理,集成至主界面后能可靠维持会话,提升诊断工具稳定性。
2026-08-06 09:59:48
335
原创 基于图莫斯的CAN UDS诊断上位机-LabVIEW版本(十七):TOOMOSS_SID19_ReadDTCInformation.vi — 读取DTC信息
文章摘要: UDS诊断服务中的0x19 ReadDTCInformation是故障诊断的核心功能,用于读取ECU存储的标准化故障码(DTC)。该服务包含28个子功能,常用子功能包括按状态掩码读取DTC数量(0x01)、列表(0x02)、快照数据(0x04)及ECU支持的所有DTC(0x0A)。TOOMOSS_SID19_ReadDTCInformation.vi封装了这些子功能,通过构造请求报文、解析响应数据,返回结构化的DTC列表和状态信息。关键点包括DTC状态位掩码解析、多帧数据处理及错误场景应对,适用
2026-07-31 14:07:21
338
原创 基于图莫斯的CAN UDS升级上位机-LabVIEW版本(十六):从刷写到诊断的功能扩展
本文介绍了如何基于已有的UDS通信框架扩展开发完整功能的诊断上位机。主要内容包括: 复用已有基础设施 通信基座TOOMOSS_SendAndWaitResp.vi 设备管理层TOOMOSS_OpenDev(CAN).vi 已封装的7个UDS服务子VI 新增核心诊断服务 0x22读取DID(VIN码、版本号等) 0x19读取DTC(故障码) 0x14清除DTC 0x3E待机握手 诊断上位机设计 界面布局与功能分区 子VI实现与调用流程 状态机设计原则 与刷写功能的集成方案 本文展示的架构设计可实现"
2026-07-30 17:42:49
419
原创 基于图莫斯的CAN UDS升级上位机-LabVIEW版本(十五):总结篇
本文总结了基于图莫斯CAN工具开发LabVIEW UDS升级上位机过程中遇到的典型问题及解决方案。主要内容包括:1)DLL调用常见错误(加载失败、参数传递、路径配置);2)事件结构与数据流控制问题;3)条件结构与移位寄存器使用技巧;4)程序打包部署时的DLL管理;5)路径与文件操作规范;6)界面控件优化方法;7)调试技巧与开发最佳实践。文章系统性整理了32个具体案例,如DLL位数不匹配(错误193)、事件响应延迟、进度条颜色设置等,并提供了详细的排查步骤和推荐做法。最后总结了路径管理、事件处理等7类最佳实践
2026-07-30 16:12:31
385
原创 基于图莫斯的CAN UDS升级上位机-LabVIEW版本(十四):打包与安装应用程序
本文针对LabVIEW开发中第三方DLL的路径管理问题,提出了一种稳健的解决方案。通过将分散的DLL文件统一整合到Libs目录,并利用"应用程序目录"函数动态构建加载路径,确保程序在开发和打包后都能正确定位DLL。详细步骤包括:重构项目目录结构、修改CLN节点路径设置、配置EXE生成规范和安装程序打包,最终实现跨环境的稳定运行。该方法解决了传统相对路径在打包时失效的问题,具有维护简单、移植性强等优势,特别适用于依赖多个第三方库的LabVIEW项目部署。
2026-07-29 15:31:03
218
原创 基于周立功的CAN UDS升级上位机-LabVIEW版本(十三):从图莫斯到ZLG的移植指南
本文介绍了将基于图莫斯CAN工具的UDS升级上位机移植到周立功CAN卡平台的方法。移植工作主要集中于CAN通信层替换,而上层UDS协议栈和文件解析等模块可复用。文章详细对比了两套API在设备管理、通道配置和数据收发方面的差异,并给出核心子VI的修改方案。移植重点包括设备打开/初始化流程改造,以及自行实现ISO-TP协议的数据收发功能。测试建议分三步:基础通信测试、UDS服务测试和完整刷写验证。通过分层移植策略,可快速实现硬件平台切换,提升工具通用性。
2026-07-27 14:58:25
188
原创 基于图莫斯的CAN UDS升级上位机-LabVIEW版本(十二):Main.vi — 主VI与刷写流程编排
本文详细介绍了基于LabVIEW和图莫斯CAN工具开发的UDS升级上位机主VI(Main.vi)的设计与实现。该VI采用状态机架构,集成设备管理、文件加载、刷写流程控制三大功能模块,通过条件结构实现预编程、主编程、后编程的完整UDS刷写流程。前面板设计包含通信参数配置、固件信息显示、进度监控等区域,程序框图利用移位寄存器在状态间传递数据。关键实现包括S19/HEX文件解析、CRC校验计算、实时进度更新及错误处理机制。文章还提供了完整的UDS服务调用序列,涵盖会话切换、安全访问、数据下载等核心操作,并介绍了测
2026-07-27 14:24:02
854
原创 基于图莫斯的CAN UDS升级上位机-LabVIEW版本(十一):LogManager.vi — 日志管理
本文介绍了UDS刷写上位机中的日志管理模块LogManager.vi的设计与实现。该模块通过功能全局变量(FGV)模式管理日志文件生命周期,提供打开、写入和关闭三个简洁接口,自动记录包含毫秒级时间戳的通信数据(十六进制格式)。文章详细阐述了其非重入执行机制、文件路径生成、错误处理等关键技术点,并说明了在刷写流程中的集成方式。该设计实现了通信数据的完整记录,为调试和故障排查提供了可靠依据,同时通过封装文件操作细节简化了调用流程,体现了LabVIEW数据流编程的优势。
2026-07-27 14:10:16
331
原创 基于图莫斯的CAN UDS升级上位机-LabVIEW版本(十):TOOMOSS_SID31_RoutineControl.vi — 例程控制
本文详细介绍了UDS协议中的0x31例程控制服务及其在LabVIEW中的实现。0x31服务通过启动、停止和查询结果三种子功能(0x01/0x02/0x03)执行ECU预定义操作,支持标准例程ID(如0xFF00擦除内存)和车厂自定义ID。文章阐述了请求/响应报文格式、TOOMOSS_SID31_RoutineControl.vi的设计架构及调用流程,包括例程ID拆分、请求构造、通信基座调用和响应解析。重点分析了该服务在UDS刷写中的应用场景(编程条件检查、擦除分区等),并强调执行敏感操作需满足编程会话和安全
2026-07-27 13:23:49
204
原创 基于图莫斯的CAN UDS升级上位机-LabVIEW版本(九):TOOMOSS_SID2E_WriteDataByID.vi — 写入数据
文章摘要: 本文详细解析了UDS协议中的0x2E服务(WriteDataByIdentifier)在ECU刷写流程中的应用,重点介绍了LabVIEW工具TOOMOSS_SID2E_WriteDataByID.vi的功能设计与实现。该子VI通过构造[0x2E+DID+Data]请求报文,实现指纹信息(如版本号、VIN码等)的写入,并解析ECU响应(肯定响应为3字节0x6E+DID回声)。文章阐述了DID拆分、数据构造、通信基座调用等关键步骤,分析了NRC错误码(如0x33安全拒绝、0x13长度错误)的处理逻辑
2026-07-27 11:53:53
335
原创 基于图莫斯的CAN UDS升级上位机-LabVIEW版本(八):TOOMOSS_SID85_ControlDTCSetting.vi — DTC控制
根据用户指定的子功能(开启/关闭),构造0x85服务请求报文调用通信基座发送请求并等待ECU响应解析响应报文,判断DTC控制是否成功返回响应数据和执行状态封装了UDS 0x85 DTC控制服务,虽然它的请求报文只有两个字节,却是UDS刷写流程中不可或缺的“清道夫”。防止误报:刷写过程中关闭DTC更新,避免其他ECU误报通信故障保护诊断记录:确保DTC存储器中不会混入与刷写过程无关的故障码配合0x28服务:与通信控制服务共同组成完整的刷写前“清场”流程。
2026-07-27 11:42:45
303
原创 基于图莫斯的CAN UDS升级上位机-LabVIEW版本(七):TOOMOSS_SID28_CommunicationControl.vi — 通信控制
本文详细介绍了UDS刷写流程中的0x28通信控制服务及其LabVIEW实现。该服务通过启用/禁用ECU的通信功能,在刷写时关闭非诊断报文以优化总线带宽。文章解析了协议格式、控制类型(0x00-0x05)和通信类型(应用/网络管理报文)的组合使用,并展示了TOOMOSS_SID28_CommunicationControl.vi的设计实现,包括请求构造、基座调用和响应处理(含NRC错误码解析)。典型应用场景显示,该服务需与0x85服务配合,在刷写前发送280303禁用通信,完成后发送280003恢复通信。作为
2026-07-27 11:31:36
347
原创 基于图莫斯的CAN UDS升级上位机-LabVIEW版本(六):TOOMOSS_SID11_EcuReset.vi— ECU复位
本文详细介绍了UDS刷写流程中的ECU复位服务(0x11服务)实现方法。该服务通过调用TOOMOSS_SID11_EcuReset.vi完成,支持硬复位、钥匙开关复位、软复位等5种子功能类型。文章重点解析了服务协议(请求/响应格式)、子VI设计流程(请求构造、通信基座调用、响应解析)及错误处理机制,并强调ECU复位"先响应后执行"的特性。该服务是刷写后编程阶段的关键步骤,用于激活新固件并恢复ECU至默认状态,实际操作中需注意会话状态、安全访问等前置条件,建议设置5000ms超时以确保响应
2026-07-27 11:12:33
189
原创 基于图莫斯的CAN UDS升级上位机-LabVIEW版本(五):TOOMOSS_SID34-36-37_DownloadFlow.vi — 下载流程
本文详细介绍了UDS刷写流程中实现固件数据传输的三个核心服务:0x34请求下载、0x36传输数据和0x37请求传输退出。重点解析了TOOMOSS_SID34-36-37_DownloadFlow.vi子VI的设计实现,包括:1. 三个服务的协议格式及交互逻辑;2. 动态计算数据块大小的关键算法;3. 进度条实时更新机制;4. 完整的错误处理方案。该子VI通过封装34/36/37服务,实现了从内存地址协商、数据分块传输到传输终止的全流程自动化,是UDS刷写过程中耗时最长、数据量最大的核心模块。文章还特别强调了
2026-07-26 18:44:00
292
原创 基于图莫斯的CAN UDS升级上位机-LabVIEW版本(四):TOOMOSS_SID27_SecurityAccess.vi — 安全访问
本文介绍了UDS刷写流程中的安全访问服务(0x27 Service),重点解析了TOOMOSS_SID27_SecurityAccess.vi子VI的实现原理。该子VI通过种子-密钥机制完成ECU安全验证:首先发送2701请求获取随机种子,调用车厂提供的DLL计算对应密钥,再发送2702+密钥完成验证。文章详细说明了协议格式、输入输出参数、程序流程设计(包括请求种子、提取种子、计算密钥和发送密钥四个步骤)以及错误处理机制。该子VI封装了底层协议细节,为UDS刷写提供了安全访问的完整解决方案,是ECU固件更新
2026-07-26 18:12:36
209
原创 基于图莫斯的CAN UDS升级上位机-LabVIEW版本(三):TOOMOSS_SID10_RequestSession.vi — 会话切换
本文介绍了UDS诊断协议中的会话模式控制服务(0x10服务)及其LabVIEW实现。该服务是ECU诊断通信的基础,通过切换默认会话(0x01)、编程会话(0x02)和扩展会话(0x03)三种模式来启用不同功能。文章详细解析了TOOMOSS_SID10_RequestSession.vi子VI的设计实现,包括请求报文构造、通信基座调用、响应解析和错误处理流程,重点说明了会话切换必须遵循"默认→扩展→编程"的顺序规则。该VI封装了完整的会话控制功能,是ECU刷写流程中的首个关键步骤,其正确执
2026-07-26 17:32:41
278
原创 基于图莫斯的CAN UDS升级上位机-LabVIEW版本(二):TOOMOSS_SendAndWaitResp.vi — 核心通信基座
本文详细介绍了UDS刷写上位机中的核心通信模块TOOMOSS_SendAndWaitResp.vi的设计与实现。该模块基于"请求-响应"模式,封装了CAN_UDS_Request和CAN_UDS_Response函数,支持多帧传输、自定义ID和超时设置。重点解析了CAN_UDS_ADDR结构体的配置方法,包括Flag位掩码、地址格式等关键参数,并详细说明了LabVIEW中CLN节点的调用方式。文章还提供了典型调用示例和错误处理建议,强调该模块作为底层通信基座对实现完整UDS协议栈的重要性
2026-07-26 17:03:40
380
原创 基于图莫斯的CAN UDS升级上位机-LabVIEW版本(一):TOOMOSS_OpenDev(CAN).vi — 设备打开与句柄管理
本文详细解析了基于图莫斯USB转CAN适配器开发UDS升级上位机的设备初始化子VI(TOOMOSS_OpenDev(CAN).vi)的设计与实现。该VI通过调用四个核心DLL函数(USB_ScanDevice、USB_OpenDevice、CAN_GetCANSpeedArg和CAN_Init)完成设备扫描、打开、波特率计算及CAN通道初始化流程,输出设备句柄供后续通信使用。重点阐述了CAN_INIT_CONFIG结构体的参数配置方法及其对通信时序的影响,包括波特率预分频、同步跳转宽度、工作模式等关键参数。
2026-07-26 15:35:28
416
原创 基于图莫斯的CAN UDS升级上位机-LabVIEW版本:从零搭建ECU刷写工具
本文介绍了一个基于LabVIEW和图莫斯USB-CAN硬件自主开发的UDS(统一诊断服务)ECU刷写工具项目。作者针对商业UDS工具价格昂贵、闭源难调试的问题,开发了一套透明可控的上位机系统,支持完整的UDS刷写流程(预编程、主编程、后编程三阶段),包含0x10会话控制、0x27安全访问等核心服务。文章概述了工具的四层架构(硬件/驱动/协议/应用层),预告了后续系列文章将详细解析各功能子VI的实现,包括设备管理、通信基座、诊断服务等模块。该工具特别适合汽车电子开发者、测试工程师需要低成本、可定制的UDS解决
2026-07-26 15:10:06
313
原创 学习笔记:LabVIEW中如何将解析S19/HEX的VI封装为子VI并供主VI调用
本文详细介绍了如何在LabVIEW中将S19/HEX固件文件解析功能封装为子VI(HexS19Parser.vi)并实现主从调用架构。通过模块化设计,将核心解析逻辑(调用DLL函数进行文件解析和数据读取)封装在子VI中,主VI(Main.vi)仅负责用户界面交互(文件选择、结果显示)。这种设计实现了逻辑与界面的分离,提高了代码复用性和可维护性。文章逐步演示了子VI的创建流程(包括输入/输出控件配置、程序框图编写、连接器窗格定义),主VI的事件结构实现,以及常见问题的解决方案。该方法适用于需要处理嵌入式固件的
2026-07-17 11:22:09
343
原创 学习笔记:LabVIEW调用DLL解析S19文件教程
本教程详细介绍了在LabVIEW中动态加载DLL(HexS19ParserDLL)解析S19文件的完整流程。主要内容包括:创建LabVIEW项目、设计前面板控件、配置调用库函数节点、实现文件选择功能、解析和显示S19文件数据等关键步骤。教程特别强调32/64位兼容性、CLN节点配置规范等注意事项,并提供了完整的测试方法。通过本教程,开发者可以掌握LabVIEW调用外部DLL解析固件文件的核心技术,为后续功能扩展打下基础。
2026-07-16 17:33:26
266
原创 CAN-LIN网关UDS刷写升级方案:从CAN诊断到LIN从机OTA的完整技术实现
本文介绍了一套量产验证的CAN-LIN网关刷写方案,用于通过OBD接口的CAN网络升级LIN从节点固件。方案采用三层架构:上位机通过CAN总线发送UDS诊断请求,ECU_A网关节点实现CAN和LIN双协议栈,完成诊断报文转换与路由转发,最终实现对ECU_B从节点的远程升级。方案支持完整UDS刷写流程,包含安全解锁、数据传输等功能模块,已应用于车身域控制器升级、执行器节点OTA等场景,相比传统方案具有协议覆盖全、开发周期短等优势。该方案为汽车电子混合网络提供了可靠的固件升级解决方案。
2026-07-10 15:58:56
460
原创 CAN报文中的字节序:一文搞懂Intel格式与Motorola格式
摘要:本文解析CAN通信矩阵中Intel与Motorola两种字节序格式的本质区别。通过对比计算机存储的大端/小端概念,阐明二者分别描述不同层级的数据排布规则:大小端关注字节顺序,而Intel/Motorola规范跨字节信号的位填充方式。结合12位信号的典型案例,详细展示两种格式下二进制位的不同分布规律,并给出DBC文件配置和CANoe工具中的实用判别技巧。最后总结两种格式的核心特征与应用场景,帮助开发者避免因字节序误解导致的数据解析错误。
2026-04-10 14:06:34
811
原创 LIN矩阵Excel ⇄ LDF互转工具:打通设计数据与协议描述的关键桥梁
摘要:LIN总线在汽车电子领域广泛应用,LIN矩阵表(Excel格式)与LDF文件是开发流程中的核心数据载体。本文分析了两种格式的特点:Excel便于协作编辑但无法被工具直接解析,LDF是标准配置语言但手工修改易出错。介绍了专业转换工具应具备的双向转换、严格校验、模板定制等功能,以及在新项目启动、工程变更等场景中的应用价值。通过自动化转换工具可有效提升开发效率,确保数据一致性,避免人工转换错误。(149字)
2026-03-23 18:16:14
526
原创 CAN DBC 生成 C 代码工具:量产项目验证的高效解决方案
这是我自己写的,用python脚本实现的CAN DBC生成C代码的工具。实际项目一直在用非常的好用,产品包含测试的DBC文件,生产的.c和.h代码,还有根据这个例子介绍如何调用.c和.h的CAN应用报文解析(打包和解包)接口进行CAN通信。注意:这个软件是我自己写的,使用需要注册,会收取几十块钱注册费用。介意的话不要下载哈。
2026-03-20 17:31:11
326
原创 深入解析 RSA 算法:从 512 位到 2048 位,兼谈 RSAEuro 开源库与量产级移植实践
摘要:本文深入解析了RSA算法的核心原理及其安全演进,从512位到2048位密钥的发展历程。重点介绍了RSAEuro开源库的特点与局限,并分享了一套基于RSAEuro深度移植与重构的量产级RSA实现方案。该方案提供C/C++双语言版本,经过数十万级产品验证,具有跨平台兼容、资源可控、稳定性高等特点,适用于嵌入式设备、物联网终端等安全场景。资源包包含完整源码、文档及测试工具,助力开发者快速实现产品安全能力落地。
2026-03-20 16:58:19
664
原创 学习笔记:利用CANOE Panel和CAPL脚本模拟主节点发送LIN通信指令
利用CANOE Panel和CAPL脚本模拟主节点发送LIN通信指令
2023-11-07 17:42:18
7048
2
效率工具CAN开发工具合集 - DBC⇄Excel互转 - DBC一键生成C代码 - 10年经验整理(免安装任何开发环境)
2026-04-10
LIN矩阵Excel⇄LDF互转工具
2026-03-23
DBC一键生成CAN代码工具
2026-03-23
基于Qt实现的热力图或压力云图c++源码
2026-03-20
Makefile自动化编译模板
2026-03-20
EDSA数字签名算法源码
2026-03-20
基于图莫斯USB转LIN工具二次开发的LIN UDS升级上位机
2026-03-20
RSA512/1024/2048加解密实现,由RSAEuro移植
2026-03-19
自己做了几天的LINUX下QQ通信程序
2015-01-08
YUV格式图片查看工具
2015-10-27
学习waf编译框架例子
2018-08-20
成为优秀的c++程序员各阶段必读书籍整理PDF格式
2015-01-12
总结的关于二叉树的所有操作(经典程序)
2014-07-23
acm入门资料
2015-01-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅