CANTp通过CanTp_Init()成功初始化后,状态切换到CANTP_ON。只有在CANTP_ON的状态下,可以对CAN I-PDU进行分段和重新组装。CanTp_Init()将对模块的所有全局变量进行初始化,并将所有传输协议连接设置为CANTP_ON的子状态,在这个子状态(状态为CANTP_RX_WAIT和CANTP_TX_WAIT)中,分段传输和分段接收都处于进行中。
那么PduR_CanTpStartOfReception将返回buffer状态NOT_OK或溢出,这时CanTp模块将丢弃接收的数据,也不会调用PduR_CanTpRxIndication函数; 如果PduR_CanTpStartOfReception返回buffer状态OK,但有效bufferd的size比已接收数据的小,这时CanTp模块将丢弃接收的N-PDU,也将调用PduR_CanTpRxIndication,赋给结果NOT_OK信息。
Connection的创建和释放与Buffer相关,而CanTp是没有缓存数据能力的,只能将接收到的数据或者上层请求发送的数据传送给对应的上层或者底层。Autosar中,对CanTp处理N-PDU的描述如下所示: 既然CanTp不能缓存数据,意味着:CanTp接收到数据以后,要将接收到的数据Copy到目标上层(e.g. PduR, DCM, or COM),或者将上层要...
autosar cantp的寻址格式AUTOSAR Classic Platform (CP)的Controller Area Network (CAN)传输协议(CAN Transport Protocol,CTP)使用11位的CAN标识符。其格式由两部分组成: 1.标识符高8位(也叫仲裁场) 2.标识符低3位(也叫控制场) 其中,控制场进一步分为两部分: 1.帧类型(2位):表示是数据帧还是远程帧。数据...
AUTOSAR体系结构定义了通信系统的各个具体的传输层(CanTp、包含LinIf的LinTp、FlexRayTp)。因此,CAN传输层仅涵盖了CAN传输协议的细节。 CAN传输层拥有一个接口,该接口连接一个单独的下层CAN接口层和一个单独的上层PDU Router模块。 根据AUTOSAR发布的计划,该CAN传输层规范包含下面的限制: - CAN传输层仅运行在事件...
AUTOSAR体系结构定义了通信系统的各个具体的传输层(CanTp、包含LinIf的LinTp、FlexRayTp)。因此,CAN传输层仅涵盖了CAN传输协议的细节。 CAN传输层拥有一个接口,该接口连接一个单独的下层CAN接口层和一个单独的上层PDU Router模块。 根据AUTOSAR发布的计划,该CAN传输层规范包含下面的限制: ...
CanTp符合ISO标准15765-5,管理发送方的数据打包和接收方的数据解包。LinTp负责在发送节点将大数据分割成Lin帧,在接收节点将Lin帧组合还原。FlexRayTp负责在发送节点将大数据分割成FlexRay帧,在接收节点将FlexRay帧组合还原。TP模块都要对数据流控制以及诸如报文丢失、重发和顺序错误之类的错误检测负责。
CAN IF为上层模块提供接收提示,发送请求,发送确认等通信功能以及为网络管理服务的控制器模式切换,设置波特率,WakeUp等功能。 CANTP实现依据ISO15765-2标准规范中定义的CAN总线数据在传输层的数据接收发送功能,包括数据的发送拆包、接收数据重组、数据流控和错误处理机制。
5) CAN TP模组 遵循ISO 15765-2标準。负责诊断报文的寻址、拆包与打包,以及网路层定时参数的管理。所以,该模组向下传输的是N_PDU(网路层协议数据单元)。 结论 第一、由于严格分层,除了CAN Driver和CAN Transceiver模组要依赖于硬体,AUTOSAR与诊断相关的模组几乎完全独立于硬体。按照此架构开发完成的诊断程式码能够...
该模块提供了独立于总线方式的通用接口,访问具体的网络管理模块(CANNM/LINNM/FRNM/UDPNM)。此外,这一模块还负责同步不同网络上的ECU之间的通信系统关闭工作。 PDUR PDU路由模块负责在总线系统和不同BSW模块之间分发通信包(PDU)。此外,该模块还负责不同总线间的PDU和TP-PDU的路由工作。