首页 > 其他分享 >CAN/CANFD诊断:TP传输层建立

CAN/CANFD诊断:TP传输层建立

时间:2022-08-31 18:12:18浏览次数:92  
标签:发送 Tester CANFD TP gConnHandle ECU 传输层 链接

can测试诊断方式

  • output
  • TP链接及相关API(本文内容)
  • CDD文件及相关API

时间参数列表(unit:ms)

传输层时间参数 BS ECU发送FC后,Tester被允许发送连续帧最大帧数目
STmin ECU发送FC后,Tester被允许发送连续帧的最大帧间隔
网络层时间参数 N_As Tester传输CAN数据帧至ECU的最大时间
N_Bs Tester首帧发送成功后到流控帧接收成功的最大时间
N_Cs Tester在接收流控制后到发送连续帧的最大时间
N_Ar ECU传输流控帧至ECU的最大时间
N_Br ECU接收到首帧到开始发送流控帧的时间
N_Cr ECU成功发送流控帧后到收到连续帧的最大时间
会话层时间参数 S3_Tester Tester为了保持一个ECU或者多个ECU节点同时保持在非默认会话下的时间间隔
S3_Sever ECU未接收到任意诊断报文时维持在非默认会话下的时间间隔
应用层时间参数 P2_Client Tester成功发送完请求消息后等待服务器响应超时设置
P2*_Client Tester接收到否定响应码为0x78的否定响应后等待ECU发送响应时的增强型超时设置
P2_Sever ECU收到请求后发出响应的实际时间
P2*_Sever ECU发送0x78否定响应到发出响应的实际时间
P3_ClientPyh Tester在没有收到物理寻址的响应下允许发送下一条物理寻址请求的最小时间间隔
P3_ClientFun Tester在没有收到功能寻址的响应下允许发送下一条物理寻址请求的最小时间间隔

步骤一:初始化TP层参数及定义

1.1  创建链接:关闭上一次得链接

CloseCANConnection()

1.2  创建链接:获取并设置当前CAN通道定义

Context = GetBusNameContext(canbusName);//工程配置的canname--ECU所在网段
setBusContext(Context);

1.3  创建链接:获取系统分配的句柄

gConnHandle = CanTpCreateConnection(0); //addrmodel:normal

1.4  创建链接:设置发送/接收诊断报文ID

CanTpSetTxIdentifier( gConnHandle, txId);
CanTpSetRxIdentifier( gConnHandle, rxId);

1.5  TP层参数配置

CanTpSetTimeBr(gConnHandle,70);
CanTpSetTimeoutAr(gConnHandle,70);
CanTpSetTimeoutCr(gConnHandle,150);
CanTpSetTimeoutAs(gConnHandle,70);
CanTpSetTimeoutBs(gConnHandle,150);
CanTpSetTimeCs(gConnHandle,150);
CanTpSetPadding(gConnHandle, 0x00);
CanTpSetMaximumReceiveLength(gConnHandle,4095);//最大TP接收长度设置

1.6  流控帧配置

//接收方
CanTpUseFlowControlFrames(gConnHandle, 1);
CanTpIsUseFlowControlFrames(gConnHandle);
CanTpSetSTmin(gConnHandle,0x00);//CanTpGetSTmin(gConnHandle)
CanTpSetBlockSize(gConnHandle,0);
CanTpSetFlowControlDelay(gConnHandle,10);
//发送方
CanTpUseFlowControlBlockSize(gConnHandle, 1);
CanTpUseFlowControlSTmin(gConnHandle, 1);

步骤二:诊断报文发送(单帧)

2.1  数据组包(例DTC)

void RequestDTC(byte DTCsubfunction,byte DTCStauts)
{
  gTxBuffer[0] = 0x19;
  gTxBuffer[1] = DTCsubfunction;
  gTxBuffer[2] = DTCStauts;
  gTxBufferLen = 3;
}

2.2  诊断请求

CanTpSetTxIdentifier(gConnHandle,reqID);//再次设置请求ID以防万一
CanTpSendData(gConnHandle,gTxBuffer,pduLength);

3.3  诊断接收

CanTp_ReceptionInd(gConnHandle,gRxBuffer);//linUpdateResponse(linFrame frame); 

4.4  诊断报文判断

while(counter<=超时时间)
{
    if(肯定响应抑制)
    {
        if(没有收到肯定响应)
            true;
        else
            flase;
    }
    else
    {
        if(收到肯定响应)
        {
            if(响应长度正确 && 响应内容正确)
                true;
            else    
                flase;
        }
        else
            flase;
    }
    sleepms(1);
    counter++;
}

步骤三:报文内容发送(多帧)

参考链接1:https://blog.csdn.net/qq_42718749/article/details/106287590

参考链接2:https://blog.csdn.net/LOVE135149/article/details/122614388

参考链接3:https://blog.csdn.net/weixin_47890316/article/details/106167385

标签:发送,Tester,CANFD,TP,gConnHandle,ECU,传输层,链接
From: https://www.cnblogs.com/YiMo9929/p/16644080.html

相关文章

  • 在linux上搭建并测试tpm simulator
    最近有一个搭建vTPM环境的需求,在网上搜寻了很多相关的资料,但网上的资料所提供步骤比较繁琐。经过多次试验,我成功地在archlinux上运行了tpm2simulator,遂将步骤记录下来,方......
  • .net core上传https的post接口
    如果采用之前的HttpWebRequest方法是实现https的请求,会报错无法建立SSL连接换一种读取方式参考地址1,https://blog.csdn.net/shanghaibao123/article/details/124116749......
  • TPA3045-ASEMI光伏二极管TPA3045
    编辑-ZTPA3045是一款光伏逆变器二极管。TPA3045的浪涌电流Ifsm为300A,漏电流(Ir)为0.1mA,其工作时耐温度范围为-55~200摄氏度。TPA3045采用肖特基势垒芯片,典型热阻(ReJA)为0.8......
  • linux 文件服务器搭建 ftp sftp smb httpd
    服务器配置规划:sftp默认安装linux后开启,windows用户需要安装工具连接。ftp安装vsftpd服务,配置虚拟用户,制定上传下载目录samba:服务安装samba服务器,配置共享目录,设定......
  • 新款FTP替代工具重磅登场!怎样摆脱传统FTP弊端?
    毫不夸张的说,几乎每个企业都使用过或仍正在使用FTP来实现文档传输。自从1971年第一标准版本的发布,已经有越来越多的FTP产品出现。目前仍然有许多企业仍然在使用FTP,也有很多......
  • pxe+kickstart+vsftp自动安装centos7操作系统
    PXE+kickstart自动安装centos7操作系统在配置前,首先关闭系统中的防火墙、selinux1、配置网络服务器方式1:http/https服务器充当iso源存放服务器1[root@localhost~]#......
  • Java Http客户端选型
    JDK自带HTTPURLConnect:功能单一ApacheHttpClienthttps://hc.apache.org/index.html是一个比较古老的HTTP框架,使用非常普遍。OkHTTPhttps://square.github.io/okhttp......
  • 【实验记录】matplotlib的使用
    我现在觉得似乎matplotlib画出来的图更方便,更好看。而其是和ggplot2不一样的绘图的思路,所以我还是蛮想学习一下的。我必须要有所进步才行。Figurefig=plt.figure()......
  • 手机播放linux PulseAudio 声音 rtp推流
    https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Network/RTP/#howtolistentothepulseaudiortpstreamhttps://www.freedesktop.org/wiki/Softw......
  • HTTP 基本概念
    全称:超文本传输协议性质:双向协议解释【超文本传输协议】:【协议】HTTP是一个用在计算机世界里的协议。它使用计算机能够理解的语言确立了一种计算机之间交流通......