Changes between Version 6 and Version 7 of tips/pdu_id
- Timestamp:
- Dec 8, 2022, 10:15:49 AM (17 months ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
tips/pdu_id
v6 v7 21 21 * レイヤによってI-PDUのようにプレフィックスが付与されて呼ばれる 22 22 * ComレイヤではI-PDUと呼ぶ 23 * [https://www.autosar.org/fileadmin/ user_upload/standards/classic/4-0/AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf#page=73&view=fitv AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf(73ページ)]参照23 * [https://www.autosar.org/fileadmin/standards/classic/4-0/AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf#page=73&view=fitv AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf(73ページ)]参照 24 24 25 25 == グローバルPDU == 26 26 * ECU毎に定義するCOMスタック全体でユニークとなるPDU識別の概念 27 27 * EcuCという仮想モジュールの{{{EcucPduCollection}}}にて定義する 28 * [https://www.autosar.org/fileadmin/ user_upload/standards/classic/4-0/AUTOSAR_TPS_ECUConfiguration.pdf#page=148&view=fitv AUTOSAR_TPS_ECUConfiguration.pdf(4.3)]参照28 * [https://www.autosar.org/fileadmin/standards/classic/4-0/AUTOSAR_TPS_ECUConfiguration.pdf#page=148&view=fitv AUTOSAR_TPS_ECUConfiguration.pdf(4.3)]参照 29 29 * グローバルPDUにはIDという概念はない 30 30 * PDU-IDを示すデータ型(PduIdType),PDUのバイト長を示すデータ型(PduLengthType)は,EcuCで定義し,COMスタックジェネレータで生成される{{{ComStack_Cfg.h}}}で定義する 31 * [https://www.autosar.org/fileadmin/ user_upload/standards/classic/4-0/AUTOSAR_SWS_CommunicationStackTypes.pdf#page=14&view=fitv AUTOSAR_SWS_CommunicationStackTypes.pdf(COMTYPE029)]参照31 * [https://www.autosar.org/fileadmin/standards/classic/4-0/AUTOSAR_SWS_CommunicationStackTypes.pdf#page=14&view=fitv AUTOSAR_SWS_CommunicationStackTypes.pdf(COMTYPE029)]参照 32 32 * {{{ComStack_Cfg.h}}}は,{{{ComStack_Types.h}}}からincludeされるため,COMスタック全体で使用される 33 * [https://www.autosar.org/fileadmin/ user_upload/standards/classic/4-0/AUTOSAR_SWS_CommunicationStackTypes.pdf#page=9&view=fitv AUTOSAR_SWS_CommunicationStackTypes.pdf(Figure 1)]参照33 * [https://www.autosar.org/fileadmin/standards/classic/4-0/AUTOSAR_SWS_CommunicationStackTypes.pdf#page=9&view=fitv AUTOSAR_SWS_CommunicationStackTypes.pdf(Figure 1)]参照 34 34 35 35 ---- … … 37 37 = 各モジュール(Com,PduR,CanIf)におけるPDU-ID = 38 38 * 各モジュールで定義するPDUには必ず,EcuCのPDUへの参照があり,どのPDUを示しているかを区別することができる 39 * [https://www.autosar.org/fileadmin/ user_upload/standards/classic/4-0/AUTOSAR_SWS_PDURouter.pdf#page=143&view=fitv AUTOSAR_SWS_PDURouter.pdf(Figure 32)]参照39 * [https://www.autosar.org/fileadmin/standards/classic/4-0/AUTOSAR_SWS_PDURouter.pdf#page=143&view=fitv AUTOSAR_SWS_PDURouter.pdf(Figure 32)]参照 40 40 * 各モジュールで定義するPDU-IDはスタック内のの上下のモジュールからAPIコール時に引数に指定されるIDを示している 41 * [https://www.autosar.org/fileadmin/ user_upload/standards/classic/4-0/AUTOSAR_TPS_ECUConfiguration.pdf#page=161&view=fitv AUTOSAR_TPS_ECUConfiguration.pdf(4.4.2.1)]参照42 * [https://www.autosar.org/fileadmin/ user_upload/standards/classic/4-0/AUTOSAR_TPS_ECUConfiguration.pdf#page=162&view=fitv AUTOSAR_TPS_ECUConfiguration.pdf(Figure 4.9)]参照41 * [https://www.autosar.org/fileadmin/standards/classic/4-0/AUTOSAR_TPS_ECUConfiguration.pdf#page=161&view=fitv AUTOSAR_TPS_ECUConfiguration.pdf(4.4.2.1)]参照 42 * [https://www.autosar.org/fileadmin/standards/classic/4-0/AUTOSAR_TPS_ECUConfiguration.pdf#page=162&view=fitv AUTOSAR_TPS_ECUConfiguration.pdf(Figure 4.9)]参照 43 43 * つまり,ComがはPduRに対してPduR_ComTransmitを呼び出すときの引数(PDU-ID)は,PduR側でコンフィギュレーションした値である{{{PduRSourcePduHandleId}}}となる 44 * [https://www.autosar.org/fileadmin/ user_upload/standards/classic/4-0/AUTOSAR_SWS_PDURouter.pdf#page=35&view=fitv AUTOSAR_SWS_PDURouter.pdf(PDUR161)]参照44 * [https://www.autosar.org/fileadmin/standards/classic/4-0/AUTOSAR_SWS_PDURouter.pdf#page=35&view=fitv AUTOSAR_SWS_PDURouter.pdf(PDUR161)]参照 45 45 * 従って,ComはPduRのarxmlを,PduRはCom/CanIfのarxmlを,CanIfはPduRのarxmlを読み込んで,送信先PDU-IDを知る必要がある 46 46 … … 55 55 * このとき,{{{PduRDestPdu}}}に設定したPDU-IDは送信完了通知おいて,CanIfから{{{PduR_CanIfTxConfirmation}}}が呼び出される際のPDU-IDとなる 56 56 * 従って,{{{PduRDestPdu}}}のPDU-ID({{{PduRDestPduHandleId}}})の多重度は0..1となっており,受信PDUでは使用しない 57 * [https://www.autosar.org/fileadmin/ user_upload/standards/classic/4-0/AUTOSAR_SWS_PDURouter.pdf#page=123&view=fitv AUTOSAR_SWS_PDURouter.pdf(PDUR322_Conf)]参照57 * [https://www.autosar.org/fileadmin/standards/classic/4-0/AUTOSAR_SWS_PDURouter.pdf#page=123&view=fitv AUTOSAR_SWS_PDURouter.pdf(PDUR322_Conf)]参照 58 58 * 受信(CanIf→PduR→Com) 59 59 * CanIfからの受信の場合,受信したPDUのグローバルPDUに紐付いた{{{PduRSrcPdu}}}のPDU-IDに対して{{{PduR_CanIfRxIndication}}}を呼び出す 60 * [https://www.autosar.org/fileadmin/ user_upload/standards/classic/4-0/AUTOSAR_TPS_ECUConfiguration.pdf#page=163&view=fitv AUTOSAR_TPS_ECUConfiguration.pdf(Figure 4.10)]参照60 * [https://www.autosar.org/fileadmin/standards/classic/4-0/AUTOSAR_TPS_ECUConfiguration.pdf#page=163&view=fitv AUTOSAR_TPS_ECUConfiguration.pdf(Figure 4.10)]参照 61 61 * このとき,CanIfでもIPDU-ID({{{CanIfRxPduId}}})が設定でき,多重度が1であるが,少なくともCANプロトコルでは必要ない(どこからも利用されない) 62 62 * 続いて,PduR→Comでは,対象のグローバルPDUに紐付いた{{{ComIPduHandleId}}}に対して,{{{Com_RxIndication}}}を呼び出す 63 63 * {{{ComIPduHandleId}}}は多重度0..1で,送信完了通知が不要なら必要ないと定義されている 64 * [https://www.autosar.org/fileadmin/ user_upload/standards/classic/4-0/AUTOSAR_SWS_COM.pdf#page=128&view=fitv AUTOSAR_SWS_COM.pdf(COM175_Conf)]参照64 * [https://www.autosar.org/fileadmin/standards/classic/4-0/AUTOSAR_SWS_COM.pdf#page=128&view=fitv AUTOSAR_SWS_COM.pdf(COM175_Conf)]参照 65 65 * R4.1ではこの記述が消えている 66 * [https://www.autosar.org/fileadmin/ user_upload/standards/classic/4-1/AUTOSAR_SWS_COM.pdf#page=127&view=fitv AUTOSAR_SWS_COM.pdf(ECUC_Com_00175)]参照66 * [https://www.autosar.org/fileadmin/standards/classic/4-1/AUTOSAR_SWS_COM.pdf#page=127&view=fitv AUTOSAR_SWS_COM.pdf(ECUC_Com_00175)]参照 67 67 68 68 == ゼロコストオペレーション == 69 69 * ゼロコストオペレーションを設定するパラメータはPduRにしか存在しない 70 * [https://www.autosar.org/fileadmin/ user_upload/standards/classic/4-0/AUTOSAR_SWS_PDURouter.pdf#page=116&view=fitv AUTOSAR_SWS_PDURouter.pdf(PDUR317_Conf)]参照70 * [https://www.autosar.org/fileadmin/standards/classic/4-0/AUTOSAR_SWS_PDURouter.pdf#page=116&view=fitv AUTOSAR_SWS_PDURouter.pdf(PDUR317_Conf)]参照 71 71 * {{{configuration generator}}}は{{{configuration editor}}}の意味と思われるが,いずれにしても,ゼロコストオペレーションとするかどうかはコンフィギュレーション設定時に影響することを言っている 72 72 * PduRにて,ゼロコストオペレーション設定時に以下のようなAPI名を変換するマクロを用意する必要がある … … 75 75 #define PduR_CanIfRxIndication PduR_ComRxIndication 76 76 }}} 77 * [https://www.autosar.org/fileadmin/ user_upload/standards/classic/4-0/AUTOSAR_SWS_PDURouter.pdf#page=57&view=fitv AUTOSAR_SWS_PDURouter.pdf(7.5)]参照78 * [https://www.autosar.org/fileadmin/ user_upload/standards/classic/4-0/AUTOSAR_SWS_PDURouter.pdf#page=143&view=fitv AUTOSAR_SWS_PDURouter.pdf(11.5.1)]参照77 * [https://www.autosar.org/fileadmin/standards/classic/4-0/AUTOSAR_SWS_PDURouter.pdf#page=57&view=fitv AUTOSAR_SWS_PDURouter.pdf(7.5)]参照 78 * [https://www.autosar.org/fileadmin/standards/classic/4-0/AUTOSAR_SWS_PDURouter.pdf#page=143&view=fitv AUTOSAR_SWS_PDURouter.pdf(11.5.1)]参照 79 79 * つまり,ComやCanIfは,PduRの{{{PduRZeroCostOperation}}}に関係なく,対象のグローバルPDUに紐付いた{{{PduRSourcePduHandleId}}}を使用すればよい 80 80 * この場合,PduRのジェネレータで,{{{PduRSourcePduHandleId}}}と対象のグローバルPDUに紐付いた{{{CanIfTxPduId}}}が一致しているか等のチェック処理が必要