DEENESPTFRRUARHIKOZHNL

मॉड्यूल ara::tsync — Time Synchronization

Spezifikation: AUTOSAR_AP_SWS_TimeSynchronization.pdf (R25-11) · 141 API-Records

मॉड्यूल गाइडएआई जनित

वाहन-व्यापी सिंक्रोनाइज़्ड समय आधार प्रदान करता है और अनुप्रयोगों को सटीक समय पूछताछ और स्थिति निगरानी करने में सक्षम बनाता है।
एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 29e900d376f8 उद्गम खुले प्रश्न (2)
कारणात्मक एंकर: R25-11 R25-11 से मान्य इस विनिर्देश संस्करण के लिए नए सिरे से संश्लेषित।
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

वाहन-व्यापी सिंक्रोनाइज़्ड समय आधार प्रदान करता है और अनुप्रयोगों को सटीक समय पूछताछ और स्थिति निगरानी करने में सक्षम बनाता है।

कार्यात्मक क्लस्टर Time Synchronization, AUTOSAR Adaptive Platform को सुसंगत और नेटवर्क-व्यापी सिंक्रोनाइज़्ड समय आधार (time bases) प्रदान करता है (AUTOSAR_AP_SWS_TimeSynchronization पृ. 16)। मानकीकृत इंटरफ़ेस के माध्यम से, एडेप्टिव अनुप्रयोग परमाणु (atomic) समय अवस्थाएँ प्राप्त करते हैं या सक्रिय टाइमर (time master) के रूप में संपूर्ण सिस्टम में नए समय और दर सुधार प्रविष्ट करते हैं। इसके साथ ही, पंजीकृत Notifier कॉलबैक अंतर्निहित घड़ियों के अवस्था परिवर्तनों और समय छलांगों (time jumps) की निरंतर निगरानी करते हैं ([SWS_TS_01009])। मापन डेटा और फ्रेशनेस मानों के सत्यापन के लिए उन्नत तंत्र ट्रांसमिशन त्रुटियों और हेरफेर के विरुद्ध अस्थायी अखंडता (temporal integrity) की सुरक्षा करते हैं।

कार्यात्मक क्लस्टर Time Synchronization (tsync), AUTOSAR Adaptive Platform पर सुसंगत और नेटवर्क-व्यापी सिंक्रोनाइज़्ड समय आधार प्रदान करता है (AUTOSAR_AP_SWS_TimeSynchronization पृ. 16)। डेमन-आधारित बैकग्राउंड सेवा के रूप में, यह हार्डवेयर- और बस-विशिष्ट सिंक्रोनाइज़ेशन तंत्रों (जैसे IEEE 802.1AS gPTP) को एब्स्ट्रैक्ट करता है और मानकीकृत इंटरफ़ेस (AUTOSAR_AP_EXP_SWArchitecture पृ. 83) के माध्यम से Log and Trace, Intrusion Detection System Manager (IdsM) तथा अपडेट सेवाओं जैसे कोर क्लस्टरों को डेटा की आपूर्ति करता है।

diag_tsync_architektur cluster_platform Adaptive Platform Core cluster_consumers Konsumierende Functional Cluster cluster_apps Adaptive Applications tsync Time Synchronization (daemon-based) fvm apext::tsync::FVM (Platform Extension) tsync->fvm GetTxFreshness() GetRxFreshness() log Log and Trace (ara::log) tsync->log SynchronizedTimeBaseConsumer idsm Intrusion Detection System Manager tsync->idsm SynchronizedTimeBaseConsumer ucm Update and Config Management tsync->ucm SynchronizedTimeBaseConsumer app_consumer Consumer Application (SynchronizedTimeBaseConsumer) tsync->app_consumer GetTimeWithStatus() Notifier validator Validator Application (ValidationNotification) tsync->validator Timing Measurement Data app_provider Provider / Time Master (SynchronizedTimeBaseProvider) app_provider->tsync SetTime() UpdateTime()

संदर्भ आरेख (Context diagram): AUTOSAR Adaptive Platform में डेमन-आधारित Time Synchronization क्लस्टर का एम्बेडिंग और उपभोग करने वाले क्लस्टरों व अनुप्रयोगों के साथ इसके इंटरफ़ेस संबंध। स्रोत: AUTOSAR_AP_SWS_TimeSynchronization पृ. 16, AUTOSAR_AP_EXP_SWArchitecture पृ. 83, AUTOSAR_AP_EXP_SWArchitecture पृ. 83

रीड एक्सेस के लिए अनुप्रयोग इंटरफ़ेस SynchronizedTimeBaseConsumer का उपयोग करते हैं ([SWS_TS_01001])। मेथड GetTimeWithStatus(), SynchronizedTimeBaseStatus प्रकार का एक परमाणु स्नैपशॉट लौटाता है, जिससे वैश्विक समय, स्थानीय स्थिर निर्माण समय (local monotonic creation time), सिंक्रोनाइज़ेशन स्थिति तथा प्राप्त UserData प्राप्त किए जा सकते हैं ([SWS_TS_01009], [SWS_TS_01055], [SWS_TS_14176])। पोलिंग से बचने के लिए, अनुप्रयोग स्थिति परिवर्तन और समय छलांगों के लिए Notifier कॉलबैक के माध्यम से पंजीकरण करते हैं ([SWS_TS_01010], [SWS_TS_01014])।

समय और स्नैपशॉट स्थिति की सिंक्रोनस क्वेरीआवेदनSynchronizedTimeBaseConsumerTSyncDaemonSynchronizedTimeBaseStatusGetTimeWithStatus()IPC: Abfrage aktueller Zeitbasis-Zustandसमय और स्थिति का रॉ डेटा<<create>> Snapshot erzeugenरिटर्न: SynchronizedTimeBaseStatusGetCreationTime()Timestamp (globale Zeit)GetCreationLocalTime()Timestamp (lokale stetige Zeit)GetSynchronizationStatus()SynchronizationStatus

अनुक्रम आरेख (Sequence diagram): उपभोक्ता इंटरफ़ेस के माध्यम से एक सिंक्रोनस समय क्वेरी और परमाणु स्नैपशॉट विशेषताओं को पढ़ने का प्रवाह। स्रोत: [SWS_TS_01009], [SWS_TS_01055], [SWS_TS_14176], AUTOSAR_AP_EXP_SWArchitecture पृ. 225

समय प्रदाता अनुप्रयोग SynchronizedTimeBaseProvider के माध्यम से सिस्टम व्यवहार को नियंत्रित करते हैं: SetTime() तत्काल बस ट्रांसमिशन को ट्रिगर करता है, जबकि UpdateTime() शुरुआत में घड़ी को स्थानीय रूप से समायोजित करता है ([SWS_TS_01101], [SWS_TS_01107], [SWS_TS_01108])। सहवर्ती तंत्र जैसे Time Validation ([SWS_TS_00420], [SWS_TS_00421]) और मूल Freshness Value Management (FVM) ड्रिफ्ट और रीप्ले त्रुटियों से सुरक्षा प्रदान करते हैं ([SWS_TS_14198])। त्रुटि की स्थिति में, TsyncErrc कोड (उदा. kDaemonConnectionLost) कनेक्शन टूटने का संकेत देते हैं, जबकि सिंक्रोनाइज़ेशन संदेशों की अनुपस्थिति को स्थिति ऑब्जेक्ट में kTimeOut के रूप में प्रदर्शित किया जाता है ([SWS_TS_00901], [SWS_TS_01050])।

कार्यात्मक क्लस्टर Time Synchronization (tsync), AUTOSAR Adaptive Platform पर समन्वित, नेटवर्क-व्यापी सिंक्रोनाइज़्ड समय आधार प्रदान करता है और अनुप्रयोग प्रक्रियाओं को हार्डवेयर- तथा बस-विशिष्ट समय सिंक्रोनाइज़ेशन प्रोटोकॉल से अलग करता है (AUTOSAR_AP_SWS_TimeSynchronization पृ. 16)। यह सिस्टम वितरित प्रणालियों (distributed systems) के लिए सूचना प्रौद्योगिकी की नींव बनाता है, जहाँ नियंत्रण इकाई (ECU) सीमाओं के पार सुसंगत घटना क्रम, पुनरुत्पादक ट्रेस प्रोटोकॉल और नियतात्मक (deterministic) गणना चक्र सुनिश्चित होने चाहिए (AUTOSAR_AP_EXP_SWArchitecture पृ. 83)।

diag_tsync_architektur cluster_platform Adaptive Platform Core cluster_consumers Konsumierende Functional Cluster cluster_apps Adaptive Applications tsync Time Synchronization (daemon-based) fvm apext::tsync::FVM (Platform Extension) tsync->fvm GetTxFreshness() GetRxFreshness() log Log and Trace (ara::log) tsync->log SynchronizedTimeBaseConsumer idsm Intrusion Detection System Manager tsync->idsm SynchronizedTimeBaseConsumer ucm Update and Config Management tsync->ucm SynchronizedTimeBaseConsumer app_consumer Consumer Application (SynchronizedTimeBaseConsumer) tsync->app_consumer GetTimeWithStatus() Notifier validator Validator Application (ValidationNotification) tsync->validator Timing Measurement Data app_provider Provider / Time Master (SynchronizedTimeBaseProvider) app_provider->tsync SetTime() UpdateTime()

संदर्भ आरेख (Context diagram): AUTOSAR Adaptive Platform में डेमन-आधारित Time Synchronization क्लस्टर का एम्बेडिंग और उपभोग करने वाले क्लस्टरों व अनुप्रयोगों के साथ इसके इंटरफ़ेस संबंध। स्रोत: AUTOSAR_AP_SWS_TimeSynchronization पृ. 16, AUTOSAR_AP_EXP_SWArchitecture पृ. 83, AUTOSAR_AP_EXP_SWArchitecture पृ. 83

सिस्टम सीमाएँ और डेमन-आधारित Time Synchronization क्लस्टर की भूमिका

Time Synchronization का कार्यात्मक आर्किटेक्चर एक डेमन-आधारित क्लस्टर (daemon-based) के रूप में कार्यान्वित किया गया है, जो पृष्ठभूमि में एक केंद्रीय प्लेटफ़ॉर्म सेवा के रूप में कार्य करता है (AUTOSAR_AP_SWS_TimeSynchronization पृ. 16)। यह डेमन सीधे अंतर्निहित ऑपरेटिंग सिस्टम के इंटरफ़ेस के साथ इंटरैक्ट करता है और नेटवर्क-आधारित समय सिंक्रोनाइज़ेशन डेटा जैसे gPTP (IEEE 802.1AS) या क्लासिक बस समय सिंक्रोनाइज़ेशन को संसाधित करता है (AUTOSAR_FO_PRS_TimeSyncProtocol पृ. 68)। अनुप्रयोग संदर्भ के विपरीत, क्लस्टर हार्डवेयर घड़ियों के गणितीय ड्रिफ्ट और ऑफ़सेट मुआवज़े (drift and offset compensation) को पूरी तरह से समाहित (encapsulate) करता है।

Adaptive Platform के कई मुख्य कार्यात्मक क्लस्टर मानकीकृत सेवा इंटरफ़ेस के माध्यम से tsync तक पहुँचते हैं (AUTOSAR_AP_EXP_SWArchitecture पृ. 83)। उदाहरण के लिए, Log and Trace सिस्टम-व्यापी लॉग और DLT घटनाओं को विश्वसनीय वैश्विक टाइमस्टैम्प प्रदान करने के लिए सिंक्रोनाइज़्ड समय आधार पर निर्भर करता है (AUTOSAR_AP_EXP_SWArchitecture पृ. 59; AUTOSAR_AP_SWS_LogAndTrace पृ. 15)। सुरक्षा-संबंधित मॉड्यूल जैसे Intrusion Detection System Manager (IdsM) और अपडेट सेवाएँ (UCM और Vehicle UCM) भी नियंत्रण इकाई सीमाओं के पार फ़ॉरेंसिक रूप से पुख्ता रिपोर्ट और सुसंगत अपडेट लेनदेन को नियंत्रित करने के लिए अनिवार्य रूप से SynchronizedTimeBaseConsumer के C++ इंटरफ़ेस पर निर्भर करते हैं (AUTOSAR_AP_EXP_SWArchitecture पृ. 125; AUTOSAR_AP_SWS_UpdateAndConfigurationManagement पृ. 16; AUTOSAR_AP_SWS_VehicleUpdateAndConfigurationManagement पृ. 11)।

उपभोक्ता इंटरफ़ेस और स्टेटफुल समय क्वेरी

सिंक्रोनाइज़्ड समय आधार तक रीड एक्सेस के लिए, अनुप्रयोग इंटरफ़ेस क्लास SynchronizedTimeBaseConsumer का उपयोग करते हैं ([SWS_TS_01001])। यह क्लास मूव सेमेंटिक्स (move semantics) को लागू करती है ([SWS_TS_01003], [SWS_TS_01004]), लेकिन किसी भी कॉपी करने को स्पष्ट रूप से बाहर करती है ([SWS_TS_01005], [SWS_TS_01006])। रनटाइम पर, GetRateDeviation() घड़ी के वर्तमान आवृत्ति विचलन को सीधे पढ़ने की अनुमति देता है ([SWS_TS_01008])।

प्रत्येक सिंक्रोनस क्वेरी का केंद्रीय तत्व ऑपरेशन GetTimeWithStatus() है ([SWS_TS_01009])। अलग-थलग कच्चे समय मान लौटाने के बजाय, यह मेथड प्रकार SynchronizedTimeBaseStatus का एक आंतरिक रूप से सुसंगत स्नैपशॉट उत्पन्न करता है (EXP_SWArchitecture पृ. 81)। यह स्नैपशॉट वैश्विक समय ([SWS_TS_01055]) में और साथ ही GetCreationLocalTime() के माध्यम से स्थानीय स्थिर समय में सटीक निर्माण समय को स्थिर (freeze) कर देता है ([SWS_TS_14176])। यहाँ समय बिंदुओं को std::int64_t के आधार पर नैनोसेकंड रिज़ॉल्यूशन वाले मानकीकृत C++ Chrono प्रकार Timestamp में मैप किया जाता है ([SWS_TS_01251], [SWS_TS_01261], [SWS_TS_01262])।

समय के अलावा, स्नैपशॉट से GetSynchronizationStatus() ([SWS_TS_01053]) के माध्यम से संचार और सिंक्रोनाइज़ेशन स्थिति, GetLeapJump() ([SWS_TS_01054]) के माध्यम से संभावित रूप से हुई समय छलांग, और GetUserData() ([SWS_TS_01056]) के माध्यम से अनुप्रयोग-विशिष्ट उपयोगकर्ता डेटा निर्धारित किया जा सकता है। स्थिति ऑब्जेक्ट के लिए कोई डिफ़ॉल्ट कंस्ट्रक्टर मौजूद नहीं है ([SWS_TS_01061]), जबकि मूव और कॉपी कंस्ट्रक्टर कॉलिंग अनुप्रयोग रूटीन में इसके थ्रेड-सुरक्षित स्थानांतरण को सुनिश्चित करते हैं ([SWS_TS_01057], [SWS_TS_01058])।

समय और स्नैपशॉट स्थिति की सिंक्रोनस क्वेरीआवेदनSynchronizedTimeBaseConsumerTSyncDaemonSynchronizedTimeBaseStatusGetTimeWithStatus()IPC: Abfrage aktueller Zeitbasis-Zustandसमय और स्थिति का रॉ डेटा<<create>> Snapshot erzeugenरिटर्न: SynchronizedTimeBaseStatusGetCreationTime()Timestamp (globale Zeit)GetCreationLocalTime()Timestamp (lokale stetige Zeit)GetSynchronizationStatus()SynchronizationStatus

अनुक्रम आरेख (Sequence diagram): उपभोक्ता इंटरफ़ेस के माध्यम से एक सिंक्रोनस समय क्वेरी और परमाणु स्नैपशॉट विशेषताओं को पढ़ने का प्रवाह। स्रोत: [SWS_TS_01009], [SWS_TS_01055], [SWS_TS_14176], AUTOSAR_AP_EXP_SWArchitecture पृ. 225

इवेंट-संचालित सूचनाएँ और सिंक्रोनाइज़ेशन निगरानी

पोलिंग लूप से बचने के लिए, SynchronizedTimeBaseConsumer Notifier कॉलबैक के माध्यम से एक इवेंट-संचालित ऑब्जर्वर पैटर्न प्रदान करता है (AUTOSAR_AP_EXP_SWArchitecture पृ. 226)। अनुप्रयोग विशिष्ट स्थिति परिवर्तनों के लिए प्रकार-सुरक्षित (type-safe) कॉलबैक के साथ पंजीकरण करते हैं ([SWS_TS_14221], [SWS_TS_14222])। प्रत्येक नए पंजीकरण पर, नया Notifier पहले से पंजीकृत हैंडलर को अधिलेखित (overwrite) कर देता है ([SWS_TS_01010])।

एकत्रित स्थिति परिवर्तनों के लिए RegisterStatusChangeNotifier() मौजूद है ([SWS_TS_01010]), जिसे UnregisterStatusChangeNotifier() ([SWS_TS_01011]) द्वारा पूरक किया गया है। यदि कोई अनुप्रयोग मुख्य रूप से सिंक्रोनाइज़ेशन स्थिति के परिवर्तन (उदा. ग्रैंडमास्टर कनेक्शन का नुकसान) पर प्रतिक्रिया करता है, तो RegisterSynchronizationStateChangeNotifier() ([SWS_TS_01012]) का उपयोग किया जाता है। भविष्य (kTimeLeapFuture) या अतीत (kTimeLeapPast) में समय छलांग जो एक कॉन्फ़िगर की गई सीमा से अधिक होती हैं, RegisterTimeLeapNotifier() के माध्यम से रिपोर्ट की जाती हैं ([SWS_TS_01014], [SWS_TS_01051])।

मेकाट्रॉनिक उच्च-सटीक अनुप्रयोगों के लिए RegisterTimePrecisionMeasurementNotifier() भी उपलब्ध है ([SWS_TS_01018])। यह कॉलबैक एक संरचना TimePrecisionMeasurement पास करता है, जिसमें सिंक्रोनाइज़ेशन से ठीक पहले (locSeconds, locNanoSeconds) और बाद (glbSeconds, glbNanoSeconds) के सटीक सेकंड और नैनोसेकंड मान, गणना किया गया पथ विलंब pathDelay तथा बिटमास्क timeBaseStatus शामिल होते हैं ([SWS_TS_01401], [SWS_TS_01403], [SWS_TS_01406], [SWS_TS_01408])। Time Synchronization क्लस्टर यहाँ कोई कतार प्रबंधन (queuing) नहीं करता है; यदि आवश्यक हो तो अनुप्रयोग कॉलबैक के भीतर बफरिंग लागू की जानी चाहिए ([SWS_TS_01018])।

स्थिति परिवर्तन और टाइम जंप के लिए ऑब्ज़र्वर पैटर्नआवेदनSynchronizedTimeBaseConsumerTSyncDaemonRegisterSynchronizationStateChangeNotifier(syncNotifier)RegisterTimeLeapNotifier(leapNotifier)Use Case: डेमॉन में नेटवर्क इवेंटErkennung Statuswechsel / Leap JumpIPC Event: स्थिति या लीप इवेंटaltसिंक्रोनाइज़ेशन स्थिति परिवर्तितsyncNotifier(SynchronizationStatus)Zeitsprung erkanntleapNotifier(SynchronizedTimeBaseStatus)

अनुक्रम आरेख (Sequence diagram): सिंक्रोनाइज़ेशन परिवर्तनों और समय छलांगों पर पंजीकरण और एसिंक्रोनस अधिसूचना प्रवाह। स्रोत: [SWS_TS_01010], [SWS_TS_01012], [SWS_TS_01014], AUTOSAR_AP_EXP_SWArchitecture पृ. 226

diag_sync_status init kNotSynchronizedUntilStartup kNotSynchronized UntilStartup (Initial) init->kNotSynchronizedUntilStartup kSynchronized kSynchronized (Synchron) kNotSynchronizedUntilStartup->kSynchronized पहला मान्य सिंक संदेश kTimeOut kTimeOut (Timeout) kNotSynchronizedUntilStartup->kTimeOut Startup-Timeout kSynchronized->kTimeOut Sync-Nachrichten ausgeblieben kTimeOut->kSynchronized Sync wiederhergestellt

स्थिति आरेख (State diagram): SWS_TS_01050 के अनुसार एक समय आधार की सिंक्रोनाइज़ेशन स्थिति का जीवनचक्र। स्रोत: [SWS_TS_01050], AUTOSAR_SWS_TimeSync पृ. 25

प्रदाताओं द्वारा समय आधारों का प्रावधान और आवृत्ति समायोजन

यदि कोई Adaptive Application एक सक्रिय टाइमर (Time Master) के रूप में कार्य करता है — उदाहरण के लिए किसी GNSS रिसीवर या बाहरी संदर्भ घड़ी से जुड़कर — तो वह क्लास SynchronizedTimeBaseProvider का उपयोग करता है ([SWS_TS_01101])। यह इंटरफ़ेस दो अलग-अलग सेमेंटिक्स के माध्यम से नए समय मानों को स्पष्ट रूप से सेट करने की अनुमति देता है: SetTime() और UpdateTime() (EXP_SWArchitecture पृ. 80)।

SetTime() का कॉल न केवल आंतरिक घड़ी की स्थिति को रीसेट करता है, बल्कि वाहन बस पर अद्यतन सिंक्रोनाइज़ेशन संदेशों के तत्काल प्रसारण को भी बाध्य करता है ([SWS_TS_01107])। इसके विपरीत, UpdateTime() शुरुआत में समय को केवल स्थानीय रूप से अपडेट करता है; बस पर ट्रांसमिशन समय ट्रांसमिशन प्रोटोकॉल के नियमित अनुवर्ती चक्र में विलंबित होता है ([SWS_TS_01108])। दोनों मेथड टाइमस्टैम्प के अलावा नेटवर्क-व्यापी सिंक्रोनाइज़ेशन-संबंधित अतिरिक्त जानकारी वितरित करने के लिए संरचित UserData स्वीकार करते हैं ([SWS_TS_01112], [SWS_TS_01113])।

क्वार्ट्ज ऑसिलेटर के सटीक समायोजन और अचानक चरण छलांग (phase jumps) से बचने के लिए, SetRateCorrection() एक सापेक्ष आवृत्ति सुधार कारक को लागू करने में सक्षम बनाता है ([SWS_TS_01110])। इसके अतिरिक्त, GetRateDeviation() वर्तमान में लागू क्लॉक विचलन प्रदान करता है ([SWS_TS_01111]), जबकि GetCurrentTime() वर्तमान सिंक्रोनाइज़ेशन स्थिति की परवाह किए बिना घड़ी के पूर्ण समय मान को पढ़ता है ([SWS_TS_01109])।

Time Validation और Freshness Value Management के माध्यम से अखंडता आश्वासन

सुरक्षा-महत्वपूर्ण और अत्यधिक स्वचालित ड्राइविंग वातावरण में, केवल समय मानों को स्वीकार करना पर्याप्त नहीं है; टाइमस्टैम्प की शुद्धता और छेड़छाड़-प्रतिरोध को लगातार मान्य किया जाना चाहिए (AUTOSAR_AP_SWS_TimeSynchronization पृ. 38)। इसके लिए, tsync Time Validation के लिए कॉलबैक इंटरफ़ेस प्रदान करता है: उपभोक्ता RegisterTimeValidationNotification() ([SWS_TS_01016]) के माध्यम से पंजीकरण करते हैं, प्रदाता प्रदाता-विशिष्ट विधि ([SWS_TS_01114]) के माध्यम से समान रूप से पंजीकरण करते हैं।

सत्यापन इंटरफ़ेस ConsumerTimeBaseValidationNotification और ProviderTimeBaseValidationNotification विस्तृत मापन डेटा सेट विशेष निगरानी अनुप्रयोगों को सौंपते हैं ([SWS_TS_01300], [SWS_TS_01301])। मास्टर स्टेशन पर, SetMasterTimingData() प्रेषित सिंक फ़्रेम ([SWS_TS_00421], [SWS_TS_14141], [SWS_TS_14142]) का इग्रेस टाइमस्टैम्प (egress timestamp) (syncEgressTimestamp) और अनुक्रम संख्या (sequenceId) प्रदान करता है। स्लेव स्तर पर, SetSlaveTimingData() संबंधित इनग्रेस टाइमस्टैम्प (ingress timestamp) (syncIngressTimestamp), प्राप्त सुधार फ़ील्ड (correctionField) और मापा गया पथ विलंब (pDelay) पास करता है ([SWS_TS_00420], [SWS_TS_14152], [SWS_TS_14153], [SWS_TS_14155])। पीयर-टू-पीयर विलंब मापन के लिए, SetPdelayInitiatorData() और SetPdelayResponderData() अनुरोध और प्रतिक्रिया पैकेट के इनपुट और आउटपुट समय को पूरी तरह से उपलब्ध कराते हैं ([SWS_TS_00422], [SWS_TS_00423], [SWS_TS_14160], [SWS_TS_14170])।

रीप्ले हमलों से सुरक्षा और प्रेषित समय संदेशों को सुरक्षित करने के लिए, प्लेटफ़ॉर्म नेमस्पेस apext::tsync ([SWS_TS_14198], EXP_SWArchitecture पृ. 83) में नेटिव इंटरफ़ेस के माध्यम से Freshness Value Management (FVM) को एकीकृत करता है। बूट होने पर, Initialize() संबंधित FVM प्लगइन को प्रारंभ करता है ([SWS_TS_14200])। भेजने से पहले, ताज़ा काउंटर मान प्राप्त करने के लिए स्टैक GetTxFreshness() को कॉल करता है ([SWS_TS_14199]), जबकि प्राप्त करने पर सत्यापन और प्रमाणीकरण के लिए GetRxFreshness() का उपयोग किया जाता है ([SWS_TS_14198])। डेटा यहाँ मानकीकृत FVContainer के माध्यम से ले जाया जाता है ([SWS_TS_14195], [SWS_TS_14196])।

Time-Validation माप डेटा का संकलन और स्थानांतरणMasterPortSlavePortMasterValidatorSlaveValidatorSync frameEgress-Zeitstempel T1 erfassenIngress-Zeitstempel T2 erfassenFollow_Up frame (preciseOriginTimestamp, correctionField)SetMasterTimingData(TimeMasterMeasurementType)SetSlaveTimingData(TimeSlaveMeasurementType)Use Case: Pdelay-MessungPdelay_ReqPdelay_Resp + Follow_UpSetPdelayInitiatorData(PdelayInitiatorMeasurementType)SetPdelayResponderData(PdelayResponderMeasurementType)

अनुक्रम आरेख (Sequence diagram): मास्टर, स्लेव और बाहरी सत्यापनकर्ता अनुप्रयोग के बीच टाइमिंग मापन डेटा का सत्यापन प्रवाह। स्रोत: [SWS_TS_00420], [SWS_TS_00421], AUTOSAR_AP_SWS_TimeSynchronization पृ. 38

कॉन्फ़िगरेशन, प्रोसेस बाइंडिंग और मैनिफ़ेस्ट मॉडलिंग

क्लस्टर का आवंटन और कार्यात्मक बाइंडिंग AUTOSAR मॉडल मैनिफ़ेस्ट (AUTOSAR_AP_TPS_ManifestSpecification पृ. 590) में घोषणात्मक रूप से की जाती है। Machine Manifest में, प्लेटफ़ॉर्म डेमन को एक विशिष्ट Machine पर मेटा-मॉडल तत्व TimeSyncModuleInstantiation के माध्यम से इंस्टैंशिएट किया जाता है और वहाँ भौतिक और वर्चुअल TimeBaseResource ऑब्जेक्ट्स का प्रबंधन करता है (AUTOSAR_AP_TPS_ManifestSpecification पृ. 590)।

अनुप्रयोग स्तर पर, प्रक्रियाएँ पोर्ट प्रोटोटाइप (उपभोक्ताओं के लिए RPortPrototype या प्रदाताओं के लिए PPortPrototype) के माध्यम से समय आधारों के लिए अपनी आवश्यकता की घोषणा करती हैं (AUTOSAR_AP_TPS_ManifestSpecification पृ. 599)। मेटा-मॉडल निर्माण TimeSyncPortPrototypeToTimeBaseMapping इन पोर्टों को व्यक्तिगत रूप से मशीन पर परिभाषित समय आधारों से जोड़ता है (TPS_ManifestSpecification पृ. 599; AUTOSAR_AP_TPS_ManifestSpecification पृ. 600)। रनटाइम पर, कोड में इंस्टैंशिएशन प्रकार-सुरक्षित ara::core::InstanceSpecifier के माध्यम से किया जाता है, जिसके द्वारा स्टैक सही कॉन्फ़िगर किए गए समय आधार को बांधता है ([SWS_TS_01001], [SWS_TS_01101])।

त्रुटि की स्थिति में व्यवहार

Time Synchronization क्लस्टर में त्रुटि स्थितियों को Adaptive Platform (ara::core::Result और ara::core::ErrorCode) के मानकीकृत त्रुटि मॉडल के माध्यम से संकेतित किया जाता है ([SWS_TS_00910])। नियमित समय आधार संचालन के लिए, गणन (enumeration) TsyncErrc त्रुटि कोड को परिभाषित करता है ([SWS_TS_00901])। उदाहरण के लिए, यदि प्लेटफ़ॉर्म डेमन के साथ इंटर-प्रोसेस संचार बाधित होता है, तो त्रुटि कोड kDaemonConnectionLost लौटाया जाता है ([SWS_TS_00901])।

वैश्विक त्रुटि डोमेन TsyncErrorDomain के माध्यम से त्रुटि कोड का निरीक्षण किया जा सकता है ([SWS_TS_00905], [SWS_TS_00906], [SWS_TS_00907]) या सक्रिय C++ अपवादों के साथ ThrowAsException() के माध्यम से TsyncException के रूप में फेंका जा सकता है ([SWS_TS_00903], [SWS_TS_00908], [SWS_TS_00909])। Freshness Value Management के लिए गणन TsyncFvmErrc ([SWS_TS_14201], [SWS_TS_14202]) के साथ एक स्वतंत्र त्रुटि डोमेन TsyncFvmErrorDomain मौजूद है। यदि आरंभीकरण विफल हो जाता है, तो Initialize() त्रुटि kFVInitializeFailed लौटाता है ([SWS_TS_14200]), जबकि प्रमाणीकरण जांच के लिए काउंटर अनुपलब्ध होने पर kFVNotAvailable की सूचना दी जाती है ([SWS_TS_14202])।

कार्यात्मक स्तर पर, क्लस्टर अनिवार्य रूप से सिंक्रोनस API त्रुटियों के माध्यम से समय संदेशों के नुकसान का संकेत नहीं देता है, बल्कि स्थिति ऑब्जेक्ट में समय आधार को संचार स्थिति kTimeOut ([SWS_TS_01050]) के साथ चिह्नित करता है या timeBaseStatus ([SWS_TS_01403]) में संबंधित बिट सेट करता है। व्याख्या: इसलिए, सुरक्षा-महत्वपूर्ण नियंत्रण लूपों के लिए मापन मानों का उपयोग करने से पहले, GetTimeWithStatus() के बाद स्नैपशॉट की वैधता स्थिति की सक्रिय रूप से जांच करने का दायित्व हमेशा अनुप्रयोग का होना चाहिए। प्रश्न Q-0cd9bb48452ae3db (खुला)

आगे विस्तृत साक्ष्य

मॉड्यूल tsync की मुख्य आवश्यकताओं और विनिर्देश बिंदुओं को निम्नलिखित मुख्य क्षेत्रों में समूहीकृत किया जा सकता है:

यह मॉड्यूल गाइड AUTOSAR Adaptive विनिर्देश R25-11 के आधार पर स्वचालित रूप से जनरेट की गई थी।

function: 70 variable: 37 type alias: 12 class: 10 struct: 8 enumeration: 4

apext::tsync

FVContainer क्लास

A freshness value container to hold the length of freshness value in bits and the freshness value itself as vector.

FVM क्लास

A freshness value management interface for ara::tsync.

TsyncFvmErrorDomain क्लास

Defines a class representing the Freshness Value Manager error domain.

से इनहेरिट करता है ara::core::ErrorDomain

TsyncFvmException क्लास

Defines a class for exceptions to be thrown by the Freshness Value Manager.

से इनहेरिट करता है ara::core::Exception

GetTsyncFvmErrorDomain फ़ंक्शन

Returns a reference to the global apext::tsync::TsyncFvmErrorDomain object.

constexpr const ara::core::ErrorDomain & GetTsyncFvmErrorDomain () noexcept;
MakeErrorCode फ़ंक्शन

Creates an instance of ara::core::ErrorCode.

constexpr ara::core::ErrorCode MakeErrorCode (TsyncFvmErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept;
TsyncFvmErrc एन्यूमरेशन

The enumeration class defines the error codes for the apext::tsync:: TsyncFvmErrorDomain.

enum class TsyncFvmErrc : ara::core::ErrorDomain::CodeType {...};

ara::tsync

Callback interface to notify Consumer Application about the availability of a new data block recorded for the Time Base

Structure with detailed timing data for the pDelay Initiator .

Structure with detailed timing data for the pDelay Responder .

Callback interface to notify (Validator) Application about the availability of a new data block recorded for the Time Base

Class SynchronizedTimeBaseConsumer is the access to the synchronized timebase referenced by the InstanceSpecifier

Class SynchronizedTimeBaseProvider is the access to the synchronized timebase referenced by the IntstanceSpecifier

This class represents a snapshot of a time point including his states

TimeBase क्लास

The class TimeBase is a pseudo-clock

Structure with detailed data for validation of the Time Master .

TimePrecisionMeasurement क्लास

Structure with detailed data for precision measurement of the Time Slave .

TimeSlaveMeasurementType क्लास

Structure with detailed data for validation of the Time Slave .

TsyncErrorDomain क्लास

Defines a class representing the Time Synchronization error domain.

से इनहेरिट करता है ara::core::ErrorDomain

TsyncException क्लास

Defines a class for exceptions to be thrown by the Time Synchronization.

से इनहेरिट करता है ara::core::Exception

UserData क्लास

Structure to define user data

GetTsyncErrorDomain फ़ंक्शन

Returns a reference to the global TsyncErrorDomain object.

const ara::core::ErrorDomain & GetTsyncErrorDomain () noexcept;
MakeErrorCode (ara::tsync) फ़ंक्शन

Creates an instance of ErrorCode.

LeapJump एन्यूमरेशन

Enumeration that is used to express the leap jump of a time base. .

enum class LeapJump : std::uint32_t {...};
SynchronizationStatus एन्यूमरेशन

Enumeration that is used to express the communication state of a time base. .

enum class SynchronizationStatus : std::uint32_t {...};
TsyncErrc एन्यूमरेशन

Defines an enumeration class for the Time Synchronization error codes.

enum class TsyncErrc : ara::core::ErrorDomain::CodeType {...};
SynchronizationNotifier टाइप उपनाम

Notifier function .

using SynchronizationNotifier = std::function<void(const SynchronizationStatus&)>;
SynchronizedTimeBaseNotifier टाइप उपनाम

Notifier function .

using SynchronizedTimeBaseNotifier = std::function<void(const SynchronizedTimeBaseStatus&)>;
TimePrecisionNotifier टाइप उपनाम

Notifier function .

using TimePrecisionNotifier = std::function<void(const TimePrecision Measurement&)>;
Timestamp टाइप उपनाम

Standard timestamp type as alias of a generic time_point .

नेमस्पेस

मॉड्यूल का UML क्लास आरेख

Abgerundete Rahmen = Namespaces; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = modulfremde bzw. externe Basisklassen. Klicken öffnet die Klassenseite.

G cluster_1 apext::tsync cluster_2 ara::tsync napext__tsync__FVContainer955 «struct» FVContainer napext__tsync__FVM697 FVM napext__tsync__TsyncFvmErrorDomain111 TsyncFvmErrorDomain nara__core__ErrorDomain335 ara::core::ErrorDomain napext__tsync__TsyncFvmErrorDomain111->nara__core__ErrorDomain335 napext__tsync__TsyncFvmException780 TsyncFvmException nara__core__Exception792 ara::core::Exception napext__tsync__TsyncFvmException780->nara__core__Exception792 nara__tsync__ConsumerTimeBaseValidationNotification118 ConsumerTimeBaseValidationNotification nara__tsync__PdelayInitiatorMeasurementType279 «struct» PdelayInitiatorMeasurementType nara__tsync__PdelayResponderMeasurementType5 «struct» PdelayResponderMeasurementType nara__tsync__ProviderTimeBaseValidationNotification786 ProviderTimeBaseValidationNotification nara__tsync__SynchronizedTimeBaseConsumer483 SynchronizedTimeBaseConsumer nara__tsync__SynchronizedTimeBaseProvider954 SynchronizedTimeBaseProvider nara__tsync__SynchronizedTimeBaseStatus758 SynchronizedTimeBaseStatus nara__tsync__TimeBase940 «struct» TimeBase nara__tsync__TimeMasterMeasurementType777 «struct» TimeMasterMeasurementType nara__tsync__TimePrecisionMeasurement344 «struct» TimePrecisionMeasurement nara__tsync__TimeSlaveMeasurementType161 «struct» TimeSlaveMeasurementType nara__tsync__TsyncErrorDomain367 TsyncErrorDomain nara__tsync__TsyncErrorDomain367->nara__core__ErrorDomain335 nara__tsync__TsyncException184 TsyncException nara__tsync__TsyncException184->nara__core__Exception792 nara__tsync__UserData398 «struct» UserData