前言
OSEKTP是15765的核心组件,也是Autosar操作系统的基础组件,目前仍在应用于Autosar-CP之中。
OsekTP.DLL
功能介绍
Vector称基于ISO15765-2的CAN传输层行为称为OSEK-TP/CAN-TP。
并开发出OSEKTP.DLL的传输层接口以供Capl调用,DLL支持指定单帧及多帧发送、故障注入、流控帧控制等。
常用接口
接口详解:CanTpCreateConnection(dword addrMode)
AddrMode 作为 CanTpCreateConnection 函数的形参,标识了N_Data的地址信息,被描述于N_AE中:
N_AE:地址拓展信息
以地址模式(11位)举例:
- Normal Mode-不启用N_AE
- Mixed Mode-0x00
- Extended Mode-0x01(fun)/0x02(phy)
当非正常地址模式启动时,地址模式信息应该包含在Data的首字节进行发送
实际使用中:
不启用AE,数据场只有PCI+Data
启用AE,数据场结构为AE[0x00]+PCI+Data
启用AE,数据场结构为AE[0x01/0x02]+PCI+Data
接口介绍:CanTpSetTimeAs\Bs\Cs\Ar\Br\Cr
As\Bs\Cs\Ar\Br\Cr大为15765-2中定义得时间参数,具体定义为:
接口介绍:CanTpSetBlockSize(long connHandle, dword blockSize)
BlockSize为15765-2中定义,代表TP层最大接收CF-NPD的数量:
接口介绍:CanTpSetSTmin(long connHandle, dword STmin)
STmin 作为 CanTpSetSTmin 函数的形参,规定了发送者等待传输CF_NPDU的最小时间间隔:
接口介绍:CanTpSetFlowControlDelay(long connHandle, dword delay_ms)
此接口是Vector补充的参数接口,delay_ms作为 CanTpSetFlowControlDelay函数的形参,规定了接收者发送FF_NPDU后的等待延迟,确保接收者完整接收。
DLL使用
目前最普遍的用法就是Node节点使用,除此之外也可以使用官方的DBC进行参数配置,或者结合Vtest运行。
总结
OsekTp的主要作用就是用于传输多帧,多用于诊断22/2E/36等服务中。Osketp相较与CDD或者最简单的Raw帧发送诊断命令最大的优点就是可以方便的操作流控帧与刷写过程。
小默建议如果您购买了Diva,可以直接使用CDD进行。Cantp的接口只是工具,实际的诊断发送与数据包接收的后续字节处理对于测试开发的要求比较高,需要完全掌握14229-1与15765-2。