CanTP - это протокол для расширения максимальной длины данных (в байтах) любого данного кадра данных CAN на традиционные 8 байтов, пожалуйста, обратитесь к ISO 15765-2. Здесь вы можете иметь одиночные кадры или мультикадры, которые представляют собой последовательности связанных кадров, каждый из которых несет часть общего блока PDU. Кадр управления потоком отправляется, обычно получателем, для адресации и инструктирования передатчика по протоколу, который будет использоваться для разделения кадра.
В соответствии с документами ,
N_Ar
[это] Время передачи кадра CAN (любого N-PDU) на стороне приемника (см. ИСО 15765-2)
N_As
[Это] Время передачи кадра CAN (любой N-PDU) на стороне отправителя (см. ISO 15765-2).
Кроме того, актуальны следующие требования:
[SWS_CanTp_00075] fЕсли подтверждение передачи не получено по истечении максимального времени (равного N_As), модуль CanTp должен действовать так, как если бы он получил подтверждение неудачной передачи, и любое позднее подтверждение должно игнорироваться. Модуль CanTp должен отменить (внутренне) неудачную передачу. ⌋ ()
[SWS_CanTp_00311] ⌈ В случае возникновения тайм-аута N_Ar (подтверждение от драйвера CAN для любого из отправленных кадров F C) модуль CanTp должен прервать прием и уведомить верхний уровень этой ошибки вызывается функцией индикации PduR_CanTpRxIndication () с результатом E_NOT_OK. ⌋ ()
Возвращаясь к вашему вопросу:
Можно ли создать тайм-ауты N_As и N_Ar с CANalyzer и / или с помощью CAPL?
Да, с помощью файла osek_tp.dll
, который вы должны иметь при локальной установке CANoe (я использую CANoe v10.0). Примеры того, как его использовать, хорошо документированы в справочном документе AN-IND-1-012_CAPL_Callback_Interface.pdf , опять же, он должен распространяться в вашей папке установки CANoe.
Согласно этому документу ,
По сути, OSEK_TP.DLL реализует функциональность внедрения ошибок, которая должна быть включена явно, чтобы предотвратить непреднамеренное использование. После активации можно установить конкретную ошибку c для соединения, которое будет выполнено во время следующей передачи данных.
Я бы настоятельно рекомендовал прочитать его и обратиться к соответствующей документации. также. Я надеюсь, что это указывает на правильное направление.
Дополнительная информация: