CLASSIC
Modul: canif
Rolle: constitutive
Konfidenz: 95%
SNIP_CLASSIC_CANIF_SECTION_7_3_2_N_SDU_Transmission
Wortlaut
7.3.2 N-SDU Transmission
As described in chapter 7.1.2, the upper layer asks for the transmission of a N-SDU by calling CanTp_Transmit(). The parameters of CanTp_Transmit() describe the CAN NSduId and the full Tx N-SDU length to be sent .
[SWS_CanTp_00225] ⌈For specific connections that do not use MetaData, the function CanTp_Transmit shall only use the full SduLength information and shall not use the available N-SDU data buffer in order to prepare Single Frame or First Frame PCI.⌋()
[SWS_CanTp_00334] ⌈When CanTp_Transmit is called for an N-SDU with MetaData, the CanTp module shall store the addressing information contained in the MetaData of the N-SDU and use this information for transmission of SF, FF, and CF N-PDUs and for identification of FC N-PDUs. The addressing information in the MetaData depends on the addressing format:
• Normal: none
• Extended: N_TA
• Mixed 11 bit: N_AE
• Normal fixed: N_SA, N_TA
• Mixed 29 bit: N_SA, N_TA, N_AE.
⌋()
[SWS_CanTp_00335] ⌈When calling CanIf_Transmit() for an SF, FF, or CF of a generic connection (N-PDU with MetaData), the CanTp module shall provide the stored addressing information via MetaData of the N-PDU. The addressing information in the MetaData depends on the addressing format:
• Normal, Extended, Mixed 11 bit: none
• Normal fixed, Mixed 29 bit: N_SA, N_TA.
⌋()
[SWS_CanTp_00336] ⌈When CanTp_RxIndication is called for an FC on a generic connection (N-PDU with MetaData), the CanTp module shall check the addressing information contained in the MetaData against the stored values.⌋()
[SWS_CanTp_00167] ⌈After a transmission request from upper layer, the CanTp module shall start time-out N_Cs before the call of PduR_CanTpCopyTxData. If no data is available before the timer elapsed, the CanTp module shall abort the communication.⌋
()
[SWS_CanTp_00086] ⌈The CanTp module shall call the PduR_CanTpCopyTxData service for each segment that is sent (SF, FF and CF). The upper layer copy the transmit data on the PduInfoType structure.⌋(SRS_Can_01079)
[SWS_CanTp_00272] ⌈The API PduR_CanTpCopyTxData() contains a parameter used for the recovery mechanism - ’retry’. Because ISO 15765-2 does not support such a mechanism, the CAN Transport Layer does not implement any kind of recovery. Thus, the parameter is always set to NULL pointer.⌋() If the upper layer cannot make Tx data available because of an error (e.g. in gateway case it may indicate that the transport session from the source network was terminated), the PduR_CanTpCopyTxData() function returns BUFREQ_E_NOT_OK.
[SWS_CanTp_00087] ⌈If PduR_CanTpCopyTxData() returns BUFREQ_E_NOT_OK, the CanTp module shall abort the transmit request and notify the upper layer of this failure by calling the callback function PduR_CanTpTxConfirmation() with the result E_NOT_OK.⌋() Note: If upper layer temporarily has no Tx buffer available, the PduR_CanTpCopyTxData() function returns BUFREQ_E_BUSY.
[SWS_CanTp_00184]
⌈If the PduR_CanTpCopyTxData() function returns BUFREQ_E_BUSY, the CanTp module shall later (implementation specific) retry to copy the data.⌋() Note: If no data is available before the expiration of the N_Cs timer (ISO 15765-2 specification defines the following performance requirement: (N_Cs + N_As) < 0.9* N_Cr timeout), the CanTp module shall abort this transmission session.
[SWS_CanTp_00280] ⌈If data is not available within N_Cs timeout the CanTp module shall notify the upper layer of this failure by calling the callback function PduR_CanTpTxConfirmation with the result E_NOT_OK.⌋()
[SWS_CanTp_00089] ⌈When Tx data is available, the CanTp module shall resume the transmission of the N-SDU.⌋()
[SWS_CanTp_00310] ⌈In case of N_As timeout occurrence (no confirmation from CAN driver) the CanTp module shall notify the upper layer by calling the callback function PduR_CanTpTxConfirmation() with the result E_NOT_OK.⌋()
[SWS_CanTp_00309] ⌈If a FC frame is received with the FS set to OVFLW the Can Tp module shall abort the transmit request and notify the upper layer by calling the callback function PduR_CanTpTxConfirmation() with the result E_NOT_OK.⌋()
[SWS_CanTp_00317] ⌈If a FC frame is received with an invalid FS the CanTp module shall abort the transmission of this message and notify the upper layer by calling the callback function PduR_CanTpTxConfirmation() with the result E_NOT_OK.⌋()
[SWS_CanTp_00315] ⌈The CanTp module shall start a timeout observation for N_Bs time at confirmation of the FF transmission, last CF of a block transmission and at each indication of FC with FS=WT (i.e. time until reception of the next FC).⌋()
[SWS_CanTp_00316] ⌈In case of N_Bs timeout occurrence the CanTp module shall abort transmission of this message and notify the upper layer by calling the callback function PduR_CanTpTxConfirmation() with the result E_NOT_OK.⌋()
[SWS_CanTp_00090] ⌈When the transport transmission session is successfully completed, the CanTp module shall call a notification service of the upper layer, PduR_CanTpTxConfirmation(), with the result E_OK.⌋()
[SWS_CanTp_00343] ⌈CanTp shall terminate the current transmission connection when CanIf_Transmit() returns E_NOT_OK when transmitting an SF, FF, of CF.⌋
()
Versionen & Provenienz · Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.
Begründung & Zuweisungs-Evidenz
Cited verbatim in the snippet (deterministic citation).
Dokumenten-Herkunft & Rückverfolgbarkeit
| Spezifikations-Dokument | SWS_CANTransportLayer.pdf |
|---|---|
| Dokumentseite | Seite 32 |
| Ziel-Modul | canif (classic) |
| Ziel-Anforderung | SWS_CanTp_00343 |
| Semantische Rolle | constitutive |
| Automatisierungs-Konfidenz | 0.95 |