精华内容
下载资源
问答
  • BootLoader_UDS.can

    2019-12-16 09:16:36
    基于UDS协议的CAN bootloader,用CAPL编写,可以直接下载BIN文件,目标平台是S12G192,可以修改后支持S19。
  • bootloader流程 UDS

    千次阅读 2019-01-24 11:26:26
    Step Procedure Address Mode Request Expected Response Enter extended session Functional 10 03 50  Stop setting of...

    Step Procedure                                                Address Mode    Request    Expected Response

    1. Enter extended session                           Functional    10 03    50 
    2. Stop setting of DTCs                                Functional    85 02    C5 02
    3. Disable non-diagnostic communication    Functional    28 
    4. Enter programming session                      Physical    10 02    50 02
    5. Request seed                                            Physical    27 03    67 03 seed(4 Byte)
    6. Send key                                                   Physical    27 04 key(4 Byte)    67 04
    7. Write Programming Date                           Physical    2E F1 99 Data(4Byte)    6E F1 99
    8. Erase Application Software  Memory        Physical    31 01 FF 00     71 01 FF 00 00
    9. Download Application Software
      Request Download                                    Physical    34 xx xx    74 xx xx
      Transfer Data                                             Physical    36 xx xx    76 xx
    10. Request Transfer Exit                                Physical    37    77
    11. Check Programming Application Software Dependencie    Physical    31 01 FF 01     71 01 FF 01 00
    12. ECUReset                                                  Physical    11 01    51 01
    13. Enter extended session                             Functional    10 03    50 03
    14. Enable non-diagnostic communication      Functional    28 00 03    68 00
    15. Start setting of DTCs                                 Functional    85 01    C5 01
    16. Enter default session                                Functional    10 01    50 01
    17. Clear DTC                                                 Physical    14 FF FF FF    54
    展开全文
  • 基于MPC5634L的BOOTLOADERUDS)(一) 博主最近参与一个BOOTLAODER的项目(MPC5634),需要用到DCM模块(基于UDS)的烧写流程。 由于采用Autosar架构,将配置函数和执行函数分开;本文主要说一下DCM的配置。 1 DCM...

    基于MPC5634L的BOOTLOADER(UDS)(一)

    在这里插入图片描述
    博主最近参与一个BOOTLAODER的项目(MPC5634),需要用到DCM模块(基于UDS)的烧写流程。
    由于采用Autosar架构,将配置函数和执行函数分开;本文主要说一下DCM的配置。
    1 DCM_Cfg
    DCM协议的配置

    const Dcm_ServiceTableType Dcm_ServiceTable[DCM_SERVICE_NUM] =
        {
            { 0x10u, DCM_PHYSICAL_ADDRESSING|DCM_FUNCTIONAL_ADDRESSING,
             DCM_SESSION_DEFAULT|DCM_SESSION_PROGRAMMING|DCM_SESSION_EXTEND ,
                &Dcm_RecvMsg10, NULL_PTR
             },
    #if(DCM_SERVICE_11_ENABLE == STD_ON)         
            { 0x11u, DCM_PHYSICAL_ADDRESSING|DCM_FUNCTIONAL_ADDRESSING,
             DCM_SESSION_DEFAULT|DCM_SESSION_PROGRAMMING|DCM_SESSION_EXTEND ,
                &Dcm_RecvMsg11, NULL_PTR
            },
    #endif
    #if(DCM_SERVICE_22_ENABLE == STD_ON)
            { 0x22u, DCM_PHYSICAL_ADDRESSING,
             DCM_SESSION_DEFAULT|DCM_SESSION_PROGRAMMING|DCM_SESSION_EXTEND ,
                &Dcm_RecvMsg22, NULL_PTR
            },
    #endif        
            { 0x27u, DCM_PHYSICAL_ADDRESSING,
             DCM_SESSION_PROGRAMMING ,
                &Dcm_RecvMsg27, NULL_PTR
            },
            { 0x28u, DCM_FUNCTIONAL_ADDRESSING|DCM_PHYSICAL_ADDRESSING,
             DCM_SESSION_EXTEND ,
                &Dcm_RecvMsg28, NULL_PTR
            },
            { 0x2Eu, DCM_PHYSICAL_ADDRESSING,
             DCM_SESSION_PROGRAMMING ,
                &Dcm_RecvMsg2E, &Dcm_Pending2E
            },
            { 0x31u, DCM_PHYSICAL_ADDRESSING,
             DCM_SESSION_PROGRAMMING|DCM_SESSION_EXTEND ,
                &Dcm_RecvMsg31, &Dcm_Pending31
            },
            { 0x34u, DCM_PHYSICAL_ADDRESSING,
             DCM_SESSION_PROGRAMMING ,
                &Dcm_RecvMsg34, NULL_PTR
            },
            { 0x36u, DCM_PHYSICAL_ADDRESSING,
             DCM_SESSION_PROGRAMMING ,
                &Dcm_RecvMsg36, &Dcm_Pending36
            },
            { 0x37u, DCM_PHYSICAL_ADDRESSING,
             DCM_SESSION_PROGRAMMING ,
                &Dcm_RecvMsg37, NULL_PTR
            },
            { 0x3Eu, DCM_PHYSICAL_ADDRESSING|DCM_FUNCTIONAL_ADDRESSING,
             DCM_SESSION_DEFAULT|DCM_SESSION_PROGRAMMING|DCM_SESSION_EXTEND ,
                &Dcm_RecvMsg3E, NULL_PTR
            },
            { 0x85u, DCM_FUNCTIONAL_ADDRESSING|DCM_PHYSICAL_ADDRESSING,
             DCM_SESSION_EXTEND ,
                &Dcm_RecvMsg85, NULL_PTR
            },
        };
    
    const Dcm_SessionRowType Dcm_SessionRow[DCM_SESSION_NUM] =
        {
    		{
    			DCM_SESSION_DEFAULT,
    			DCM_SESSION_DEFAULT|DCM_SESSION_EXTEND,
    			DCM_SECURITY_LOCKED|DCM_SECURITY_LEV1
    		},
    		{
    			DCM_SESSION_PROGRAMMING,
    			DCM_SESSION_EXTEND,
    			DCM_SECURITY_LOCKED|DCM_SECURITY_LEV1
    		},
    		{
    			DCM_SESSION_EXTEND,
    			DCM_SESSION_DEFAULT|DCM_SESSION_PROGRAMMING|DCM_SESSION_EXTEND,
    			DCM_SECURITY_LOCKED|DCM_SECURITY_LEV1
    		},
    
        };
    #if(DCM_SERVICE_11_ENABLE == STD_ON)
    const Dcm_ResetRowType Dcm_ResetRow[DCM_RESET_NUM] =
        {
            { 0x01u,
            DCM_SESSION_DEFAULT|DCM_SESSION_PROGRAMMING|DCM_SESSION_EXTEND,
            DCM_SECURITY_LOCKED|DCM_SECURITY_LEV1
    		},
        };
    #endif    
    #if((DCM_READDID_NUM > 0) && (DCM_SERVICE_22_ENABLE == STD_ON))
    const Dcm_ReadDidRowType Dcm_ReadDidRow[DCM_READDID_NUM] =
        {
            {
    	        0xF15Bu,
    	        DCM_SECURITY_LOCKED|DCM_SECURITY_LEV1,
    	        &FL_ReadDid
            },
        };
    #endif
    
    const Dcm_SecurityRowType Dcm_SecurityRow[DCM_SECURITY_NUM] =
        {
            {
    	        0x11u, 0x12u, DCM_SECURITY_LEV1,
    	        DCM_SESSION_PROGRAMMING,
    	        DCM_SECURITY_LOCKED|DCM_SECURITY_LEV1,
    	        &SecM_GenerateSeed, &SecM_CompareKey
            },
        };
    
    #if (DCM_COM_CONTROL_NUM > 0)
    const Dcm_ComControlRowType Dcm_ComControlRow[DCM_COM_CONTROL_NUM] =
        {
            {
    	        0x00u,
    	        DCM_SESSION_EXTEND ,
    	        DCM_SECURITY_LOCKED|DCM_SECURITY_LEV1
            } ,
            {
    	        0x01u,
    	        DCM_SESSION_EXTEND ,
    	        DCM_SECURITY_LOCKED|DCM_SECURITY_LEV1
            } ,
        };
    #endif
    
    const Dcm_WriteDidRowType Dcm_WriteDidRow[DCM_WRITEDID_NUM] =
        {
            {
    	        0xF199u, 0x11u,
    	        DCM_SECURITY_LEV1,
    	        &FL_WriteFingerPrint
            },
        };
    
    const Dcm_RoutineControlRowType Dcm_RoutineControlRow[DCM_ROUTINE_CONTROL_NUM] =
        {
            {
    	        0x0203u, 0x00u, DCM_PHYSICAL_ADDRESSING,
    	        DCM_SESSION_DEFAULT|DCM_SESSION_PROGRAMMING|DCM_SESSION_EXTEND,
    	        DCM_SECURITY_LOCKED|DCM_SECURITY_LEV1,
    	         &Dcm_CheckProgPreCondition
             },
            {
    	        0xFF00u, 0x02u, DCM_PHYSICAL_ADDRESSING,
    	        DCM_SESSION_PROGRAMMING,
    	        DCM_SECURITY_LEV1,
    	        &Dcm_EraseMemory
            },
            {
    	        0x0202u, 0x04u, DCM_PHYSICAL_ADDRESSING,
    	        DCM_SESSION_PROGRAMMING,
    	        DCM_SECURITY_LEV1,
    	        &Dcm_CheckMemory
            },
            {
    	        0xFF01u, 0x00u, DCM_PHYSICAL_ADDRESSING,
    	        DCM_SESSION_PROGRAMMING,
    	        DCM_SECURITY_LEV1,
    	        &Dcm_CheckProgDependencies
            },
        };
    
    const Dcm_DownloadRowType Dcm_DownloadRow =
        {
            {
            	DCM_SECURITY_LEV1
            },
        };
    
    #if (DCM_DTC_SET_NUM > 0)
    const Dcm_DTCSettingRowType Dcm_DTCSettingRow[DCM_DTC_SET_NUM] =
        {
            {
           		0x01u,
    	        DCM_SESSION_EXTEND,
    	        DCM_SECURITY_LOCKED|DCM_SECURITY_LEV1
            },
            {
    	        0x02u,
    	        DCM_SESSION_EXTEND,
    	        DCM_SECURITY_LOCKED|DCM_SECURITY_LEV1
            },
        };
        #endif
    
    上面是服务的ID,下面是子服务。
    由于要做基于UDS的BOOT,所以协议很重要,本文根据UDS协议,将用到的服务配置出来,在CAN通信过程中调用,至于如何和调用配合,请关注博主啊!
    
    展开全文
  • BootLoader协议说明及性能分析

    千次阅读 2021-01-31 15:09:53
    BootLoader协议说明及性能分析 BootLoader协议说明 HEX格式文件说明 Hex文件是Intel公司提出的按地址排列的数据信息格式,数据宽度为字节,所有数据使用16进制数字表示,并且以ASCII码的形式,按行记录数据,下图为VCU...

    BootLoader协议说明及性能分析

    BootLoader协议说明
    HEX格式文件说明
    Hex文件是Intel公司提出的按地址排列的数据信息格式,数据宽度为字节,所有数据使用16进制数字表示,并且以ASCII码的形式,按行记录数据,下图为VCU当前工程代码的HEX文件局部截图:

    在这里插入图片描述
    如上图所示,HEX文件每一行均以“:”开头,表明记录的开始,“:”之后,每至少2个字符表示一组16进制数据,格式形如:BBAAAATTHHHH…HHHCC。
     BB – 16进制,表示此行数据长度字节数,表示HH的数目
     AAAA – 16进制,表示数据记录的起始地址,若此行是数据记录,则表示偏移地址,其它无意义。
     TT – 16进制,表示记录类型
    00-代表本行是数据记录
    01-代表HEX文件结束;
    02-标识扩展段地址记录,表明后面所有数据地址+段地址左移4位
    03-开始段地址记录:开始段地址记录
    04-标识扩展线性地址记录,表明后面所有数据地址+线性地址左移16位,将该地址<<16 后作为基地址。并且表示在下一个04类型行出现之前都要使用该地址作为基地址.
    05-开始线性地址记录:开始线性地址记录,开始线性地址记录其实就是main函数入口地址
     HH…HH – 16进制,低字节/高字节 结合数据,高字节在后;注意,若是偏移地址则都是2字节,高字节在前,低字节在后
     CC – 16进制,校验码,除冒号和自身以外的其他字节数据加起来模除256的余数的补码,如上图第一行,其校验码为01+~(02+00+00+04+01+00)= F9。具体计算过程为:(02+00+00+04+01+00)加和为0x07,模除256后,商0余0x07,0x07补码为0xF9。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    BootLoader协议描述
    本次调试所编写的BootLoader,交互命令共6个:

    1. 进入BootLoader
    2. 重启
    3. 下载
    4. 下载结束
    5. 检查BootLoader程序
    6. 擦除Flash
      每个命令使用CAN报文的第一字节作为标识,以上5个命令对应的命令CAN报文及下位机反馈报文如下表所示:
      在这里插入图片描述
      下载流程分为:握手、擦除、下载、下载结束三部分。
      握手阶段:上位机需要依次发送EntryBootloader、Reset、CheckBootloader三个命令以保证当前下位机正在BootLoader程序中,三个命令都检查到反馈,则握手完成。 
      擦除阶段:上位机需要发送Erase命令擦除用户Flash空间,此过程大约需要2S左右,擦除完成后,下位机上传反馈报文,则擦除阶段完成。
      下载阶段:下载阶段的数据报文以数据包的形式发送,当前BootLoader设定为每256个数据字节为一个数据包。因为每帧CAN报文第一字节为数据标识符0x02,每帧有效数据仅7字节,因此,一个数据包共需37帧发送完成,且第37帧仅有4个有效数据字节。数据包结构设计为:1帧首帧+37帧数据帧+1帧尾校验帧。
    7. 首帧:前5字节为固定内容:0x02 0xAA 0x55 0xFA 0xAF,剩余3字节为经过简化后的地址:真实数据地址- 0x800000,此处减去0x800000的原因是为了保证地址长度为24位,能使用首帧的剩余3字节发完。
    8. 数据帧:前36帧的数据帧结构为0x02+7字节数据,第37帧最后的3字节加入了固定的校验内容(0xAA 0x55 0xA5),表明此帧为最后一个数据帧。
    9. 尾帧:主要是用来校验数据包,前5字节为固定内容:0x02 0xAF 0XFA 0X55 0XAA,第6字节为校验和,其值为所有39帧数据字节加和后的值,取其低8位字节作为校验。
      若下位机检查到首帧标识正确,尾帧标识正确,数据包帧数为39,且校验和无误,则将调用Flash驱动将256字节烧录进Flash,并向上位机反馈0x92的下载反馈报文,上位机在接收到下载反馈报文后,可开始发送下一个256字节数据包。
      下载结束阶段:在完成所有数据包的传输后,上位机发送DataEnd命令结束BootLoader,并将收到命令反馈。
      BootLoader性能分析
      上一部分介绍了HEX文件的结构以及本阶段BootLoader的下载流程,下面将针对BootLoader的性能作简要分析。
      调试结果
      衡量Bootloader有效性的指标为下载速度,本阶段的BootLoader
      所要求的下载速率为4Min/MB,目前版本BootLoader实际速率为2.5Min/MB,调试过程中使用1.6MB的整车控制策略HEX文件进行下载试验,下载共耗时4分钟。
      下载速率上限分析
      依照当前的下载协议,以256字节为一个数据包进行烧录下载,速率虽然满足第一阶段要求,但最终下载速率的目标设置需要结合理论分析以及实际测试得到,首先对500K波特率下的总线速率的是否会是下载速率瓶颈作如下分析:
      500K波特率下,理论下载速度为500K bit/s,而CAN总线协议本身限制,每个标准帧最大将传输108bit数据,但仅有64bit为有效数据,此时,下载速率将有协议损耗,500K bit * 64/108 = 296296 bit/s,将单位从bit转换为KB得:296296 /8/1024 = 36KB/S。依据此速率进行计算,下载1MB数据需要1024KB / 36KB = 28s。与此同时,因为HEX文件大小并不代表真实得下载数据量,因其用ASCII码表示数据,因此,真实数据量大小约为HEX文件大小的三分之一,因此,28s/MB的真实下载速率若使用HEX文件大小作为参考,速度可进一步提升至10S/MB。
      以上的理论计算结果的前提为CAN总线为100%负载下,且为单向传输,无交互损耗的情况下得到。而真实下载情况总,CAN负载率达不到100%,下载协议导致CAN数据域的利用率减小,最主要的时间损耗则是在交互等待,这个等待时间无法避免,因为每个数据包的烧写需要时间,只有一个数据包烧录完成,下一个数据包才可继续发送。
      若以当前的下载速度反推交互损耗,有如下计算过程:
      本阶段下载协议的39帧共312字节中,其中有56字节为协议损耗,则协议的传输效率为0.82。1.6MB的HEX文件,经查,其真实数据量约为583KB,因为有协议损耗,传输等效数据量约为583KB/0.82=710KB,使用上文中的理论速度计算其下载时间,约为:710KB/36KB/S = 20s,真实下载耗时240s,可得:交互总耗时220s,下载710KB数据所需发送的数据包个数为:710*1024/256=2840个,则可算出,每个数据包的交互耗时为:220s/2840 = 77ms。
      由以上计算分析,要优化下载速度,可采用增大数据包大小,减小交互损耗的方法:若将数据包大小扩大到4倍(1024字节一个数据包),交互损耗减小为:55s,总下载时长约为20s+55s = 75s,HEX下载速率为1.28Min/MB;若将数据包大小扩大到16倍(4096字节一个数据包),下载时长将减小到:20s+14s=34s,HEX下载速率为21S/MB。
      以上内容仅为计算分析,真实效果待试验。
      可靠性分析
      由上文分析可知,扩大数据包大小将有效减少数据交互损耗时间,从而加快加载速度。但是,有效性的提升必将导致可靠性的下降,因此,下面将对当前BootLoader协议的可靠性进行分析。
      数据包加大带来的影响:
    10. 数据包的加大将影响到首帧尾帧的误判概率,可能导致下载失败。
    11. 数据包加大导致反馈时间变长,数据量增多将导致参数误码的可能性增大。
      尽管数据包的增大将增大以上错误产生的可能性,但由于下载协议本身为双层嵌套,物理层由CAN总线协议保证数据包总每一帧的正确性(出错可检查出来):
       CAN本身使用差分信号传输,信号稳定
       CAN协议本身带有CRC校验,其检错率可达99.9%以上,此处参考论文:CRC编码与检错性能分析。
      私有协议中有对首帧的校验、尾帧的校验,数据包的Checksum校验、接收帧数校验。这其中任何一项出错,都将被识别,从而保证不会将错误的程序下载到VCU中。
      综上,CAN协议本身保证了数据包中每一帧的正确性,下载协议保证了数据包的正确性。最终,双层协议保证了BootLoader烧写的可靠性。以上内容的计算与验证复杂,此处虽然无法给出理论计算作为参考,但是CAN总线本身是经过汽车行业多年验证的可靠传输协议,再加上应用层的双重保障,由此,我们可以乐观的尝试将增大数据包作为提升下载速率的手段,并用到后一阶段的UDS下载当中。
    展开全文
  • UDS诊断协议以功能记录主要分为两部分 1,UDS诊断功能:主要有$14 $19 $27等 2,UDS刷新功能:主要有$27 $31 $34 $36 $37 等

    UDS诊断协议以功能记录主要分为两部分

    1,UDS诊断功能:主要有$19 $14 $27 $2E $22等
    2,UDS刷新功能:主要有$27 $31 $34 $36 $37 $3E 等(此篇主要记录的重点)

    一,UDS刷新功能在应用配合上涉及比较多的长帧,需要UDS的网络层的功能进行调整,需要对网络层相对熟悉:ISO15765

    UDS帧格式如下表:
    在这里插入图片描述

    Table 3 — Summary of N_PCI bytes
    在这里插入图片描述
    关于CF连续帧的组帧规范
    在这里插入图片描述
    在这里插入图片描述
    Figure 5 — Example of a multiple-frame transmission (segmentation and reassembly)
    在这里插入图片描述
    Figure 6 — FlowControl (FC) mechanism
    在这里插入图片描述
    –>1 STmin (按整车厂需求配置:此参数对刷新时间影响大,影响的是连续帧的周期)
    This time is specified by the receiving entity. The STmin parameter value specifies the minimum time gap allowed between the transmissions of two ConsecutiveFrame network protocol data units (CFs). See Table 15.
    在这里插入图片描述
    <1>The measurement of the STmin starts after completion of transmission of a ConsecutiveFrame (CF) and endsat the request for the transmission of the next CF.
    <2>EXAMPLE If STmin is equal to 10 (decimal), then the minimum ST authorized between ConsecutiveFrame networkprotocol data units is equal to 10 ms.

    –>BS (常规都是配置为0,使用上便利,直接发送完指定的长度)
    在这里插入图片描述
    <1>EXAMPLE If BS is equal to 20 (decimal), then the block will consist of 20 (decimal) CF N_PDUs.

    –>FS
    在这里插入图片描述
    可配置参数:FCwait (这个流控帧时间间隔参数配置变更涉及到的不只是一个节点,目前使用上还存在疑问)

    Figure 8 — Placement of network layer timing parameters — Segmented message
    在这里插入图片描述
    Figure 7 — Placement of network layer timing parameters — Unsegmented message
    在这里插入图片描述
    Table 16 — Network layer timing parameter values (以下是各个阶段的超时时间,此处的值是通用规范的值,具体的还是整机厂确定具体的时间)
    在这里插入图片描述

    二,UDS应用层时间参数:P2/S3sever — ISOISO 14229

    S3sever 5s 这个参数在$10会话跳转服务很重要
    由S3sever 又引出了$3E服务的应用,保持非默认会话的功能。

    P2MIN - P2MAX
    P2MIN:是两个单帧间要延时P2MIN时长才出发发送
    P2MAX:是帧间隔的超时时间,超过P2MAX时间设定就会报出P2timeout,对应否定应答NRC78

    未完待续

    参考
    ISO15765_2 Véhicules routiers — Communication de diagnostic sur gestionnaire de réseau de communication (DoCAN ).
    ISO 14229-2-2013-Session layer services.
    ISO 14229-1-2013-Specification and requirements.

    展开全文
  • UDS_BOOTLOADER

    2018-02-04 00:46:10
    基于ISO协议的车载CAN网络上位机诊断软件设计,一方面可了解15765的协议内容,同时,完成基于CAN通信的上位机软件开发
  • qq:731905316 前言:UDS...Unified diagnostic service(统一的诊断...更新可分为:下位机(Bootloader),上位机(更新工具)及其之间的通信协议。 1.下位机: 通常来说下位机就是:MCU(单独就说它了)。那么MC...
  • s19文件烧录上位机,基于UDS协议,和bootloader交互,下载S19文件。可以正常使用,愿给需要的需要的人参考
  • CAPL编写的基于UDSbootloader

    热门讨论 2018-03-29 14:08:11
    基于UDS协议的CAN booloader,用CAPL编写,可以直接下载BIN文件,目标平台是S12G192,可以修改后支持S19。
  • 该方案采用CAN总线完成上下位机的通讯及数据交互 ,结合UDS中 的诊断服务和下载流程 ,实现基于UDS协议BootLoader开发。该功能为汽车电子产品开发提供更好的可扩展性 ,节 约开发周期 ,为整车厂软件管理和升级提供...
  • 之前写过一篇《英飞凌XC2000系列CAN BootLoader(CAN_BSL)的实现》,感兴趣的朋友看这里: https://blog.csdn.net/weixin_42967006/article/details/100575202 这篇介绍的是利用英飞凌内置的BootLoader机制实现程序...
  • 基于udsbootloader

    千次阅读 2020-02-03 13:11:09
    bootloader程序架构略有简化的bootloader图 这张图和恒润教程中的BootLoader流程大体是一致的。 疑问点 Q:图中的烧写顺序是34-36-34-36-34-36-37,但另一些材料中的顺序是34-36-36-36-37。 A:这个问题这样理解,...
  • 基于UDS协议Bootloader

    2021-06-28 22:02:34
    Bootloader概述:使用UDS协议服务实现应用软件,应用数据(包括网络配置数据和标定数据)的更新。Bootloader主要用于:研发、生产、售后。 二、Bootloader要求 总体要求: 1.bootloader应支持刷新电控单元的...
  • 下面我们从ECU的角度分析下Bootloader方案。 你是否面临过升级失败拆机的困扰,是否面临过客户需要变更Bootload的困扰,本方案打造最强Bootloader永不拆机。 Bootloader开发一般经过三个阶段,主要是思路。 第一...
  • 基于CANoe编写的符合UDS Bootloader刷新下载工具 1.Bin文件刷新时文件需要集成地址长度信息,格式为01+起始地址(4byte)+长度信息(4byte) 2.S19文件可直接使用 3.需要自行编写Seed2Key解码算法
  • DoIP和UDS协议

    2020-09-24 11:33:03
    ISO13400-1~和ISO14229-1~7系列协议,含最新到2016年的版本,不仅包括: ISO 14229-1-2013 UDS Specification and requirements.pdf ISO 14229-2-2013 UDS Session layer services.pdf ISO 14229-3-2012 UDS on CAN....
  • 摘要:在车身控制器的开发及生产过程中,针对己安装控制器更新程序困难的问题,设计提出基于UDS协议并应 用于英飞凌16位单片机平台的在线升级方案。该方案采用CAN总线完成上下位机的通讯及数据交互,结合UDS中 的诊断...
  • 今天看到了《基于CANoe编写的符合UDSBootloader刷新下载工具》和《CAPL编写的基于UDSbootloader》这个博客激动地以为可以看到服务过程,加密了。上位机看来实现的方法还是多式多样的。 介绍一下这个UDS服务流程:...
  • uds诊断协议bootloader开发 bootloader 开发是属于ECU开发当中的协议栈开发层面,本文介绍的内容包括ECU下位机开发(CW5.1),上位机开发(VS,C#),和APP开发(CW5.1),诊断下载流程和检测方法遵循车厂企业标准...
  • uds bootloader stm32 完整方案 iso15765 iso14429
  • 基于CANoe的UDS Bootloader刷写软件

    千次阅读 热门讨论 2020-04-17 20:17:59
    终于有时间整理下基于CANoe的UDS Bootloader,网上也看到了有其他网友分享的例子,基于OSEK_TP,在新版本的CANoe里面,已经被新的接口取代了。 本刷新软件是基于CANoe 8.5, 编程语言是CAPL,刷写流程基于ISO15765-3,...
  • 此文档是购买恒润协议栈时,UDS部分的DCM模块使用说明书,可对照相关规范来看
  • 基于UDSBootLoader设计——架构设计及规范 1 BootLoader概述 1.1 Boot Loader设计目的 1.2 Boot Loader基本功能 2 BootLoader基本需求设计 2.1 Boot Loader功能概述 2.2 ECU启动时序 2.3 软件执行安全机制...
  • Bootloader

    2018-11-24 15:18:27
    本论文为全英文,对AUTOSAR架构下的UDS协议支持的BootLoader有一定参考价值。 In an automotive context today’s need of testing functions while in factory, correcting faults in the workshop or adding extra...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 172
精华内容 68
关键字:

bootloader协议uds