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信息。
autosar cantp的寻址格式AUTOSAR Classic Platform (CP)的Controller Area Network (CAN)传输协议(CAN Transport Protocol,CTP)使用11位的CAN标识符。其格式由两部分组成: 1.标识符高8位(也叫仲裁场) 2.标识符低3位(也叫控制场) 其中,控制场进一步分为两部分: 1.帧类型(2位):表示是数据帧还是远程帧。数据...
CANInterface模块、CANDriver模块和CANTransceiver模块负责L_PDU〔数据链路层协议数据单元〕的传输。 DEM、DCM和CANTP是AUTOSAR架构中和诊断相关的核心模块。3〕DCM DCM模块遵循ISO14229-1、ISO15031-5、ISO15765-4和SAEJ1979标准,能直接处理0x10、 0x27和0x3E效劳。收到AUTOSAR支持的OBD效劳或其他UDS效劳时,靠调用...
CAN总线的COM配置实施下面我们来看看CAN通信协议栈,如下图2所示,包括Com、PduR、CanTp、CanSm、CanIf、CAN Driver等模块,其中COM与PduR模块是通用的,其功能与总线铜线协议无关。图2?AUTOSAR CAN通信协议栈下面来详细聊聊各个模块的配置选项。 COM模块配置的COM模块基本目的是在上层RTE层和下层PDU路由器之间建立...
Com .CansmCanTp ■CanIfCANDriver图2AUTOSARCAN通信协议栈下面来详细聊聊各个模块的配置选项。COM模块配置的COM模块基本目的是在上层RTE层和下层PDU路由器之间建立系统通信,而不考虑通信协议。这可以通过定义和配置四个不同的对象来完成。1、I-PDUI-PDU包含从通信栈中某一模块接收到的消息或需要发送给某一模块的...
Transport Layer)是通信传输层,主要是为诊断使用的,当can Lin总线需要传输大于8byte数据,就需要Tp层...
(2)N-SDU的Connection创建以后,CanTp即可通过标准接口PduR_CanTpCopyTxData()去目标上层Copy要发送的数据; (3)当数据成功发送到总线(BUS)以后,底层会通过上层注册的Callback(eg,CanTp_TxConfirmation()接口)将发送完成信息通知到目标上层,进而释放Connection,也意味着释放上层的缓存区(Buffer)。
通讯协议栈几乎是CP AUTOSAR中最庞杂的一块。由于其涉及的模块比较多(仅实现CAN信号的收发就需要ECUC/CAN/CANIF/CANTP/PDUR/COM/XCP这么多模块的协作!),且名词概念众多,入门很难。网络上关于各个模块的详细介绍浩如烟海,其深度也让人叹为观止。但没有一篇文章把这些模块
3、CAN通信从软件到硬件过程详解 3.1、自上到下,数据的传递过程是: 应用层–>RTE–>COM–>PDUR–>CANTP–>CAN Interface–>CAN Driver–>CAN controller–>CAN transceiver–>CAN BUS Line ①Com模块获取应用层的信号(Signal),经一定处理封装为IPDU(Interaction Layer Protocol Data Unit)发送到PduR模块; ...