हालाँकि CAN प्रोटोकॉल में स्वयं एक मजबूत त्रुटि का पता लगाने और सुधार करने की क्षमता है, औद्योगिक नियंत्रण साइट में, प्लग कनेक्शन ठोस नहीं है, ट्रांसमिशन माध्यम क्षतिग्रस्त है या बस ड्राइवर क्षतिग्रस्त है, आदि CAN के विश्वसनीय संचार को नष्ट कर देगा। उच्च विश्वसनीयता की आवश्यकता वाले एप्लिकेशन सिस्टम में, यदि इन दोषों का स्वचालित रूप से पता नहीं लगाया जाता है और उन्हें दूर करने के लिए उचित उपाय नहीं किए जाते हैं, तो सिस्टम आंशिक रूप से या पूरी तरह से संचार करने की क्षमता खो देगा। इस समस्या को हल करने का एक प्रभावी तरीका अनावश्यक संचार नियंत्रण का उपयोग करना है। यह सुनिश्चित करता है कि संचार प्रणाली के मुख्य कार्य सामान्य रूप से संचालित होते हैं, जिससे सिस्टम की विश्वसनीयता में सुधार होता है।
1 सिस्टम हार्डवेयर घटक
MB90F543 फ़ुजित्सु के दो CAN नियंत्रकों के साथ एक 16-बिट माइक्रोकंट्रोलर है। सिस्टम बसों के दो सेट (CAN0, CAN1) का उपयोग करता है, जिनमें से प्रत्येक में स्वतंत्र बस केबल, बस ड्राइवर और बस नियंत्रक होते हैं, जो भौतिक मीडिया, भौतिक परत, डेटा लिंक परत और एप्लिकेशन परत की पूर्ण अतिरेक का एहसास कर सकते हैं। बसों के दो सेट हॉट बैकअप मोड में काम करते हैं: एक CAN नियंत्रक सिस्टम चालू होने के बाद डिफ़ॉल्ट CAN के रूप में कार्य करता है (जिसे मास्टर CAN कहा जा सकता है); दूसरा सिस्टम के स्टैंडबाय CAN (जिसे स्लेव CAN कहा जाता है) के रूप में कार्य करता है और मास्टर CAN के लिए अतिरेक के रूप में कार्य करता है। जब सिस्टम सामान्य रूप से काम करता है, तो मास्टर CAN बस (CAN0) को चालू कर दिया जाता है। जब मास्टर CAN बस विफल हो जाती है, तो स्लेव CAN बस (CAN1) चालू हो जाती है। यदि पावर अप को मास्टर कैन बस में किसी खराबी का पता चलता है, तो स्लेव कैन बस स्वचालित रूप से परिचालन में आ जाती है। इस तरह, जब बसों का एक सेट विफल हो जाता है, तो बसों का दूसरा सेट पूरे सिस्टम के संचार फ़ंक्शन के सामान्य संचालन को सुनिश्चित करने के लिए स्वचालित रूप से काम करना जारी रखेगा, जो सिस्टम की विश्वसनीयता में काफी सुधार करता है और CAN बस के व्यापक अतिरेक डिजाइन का एहसास करता है। इसके अलावा, सॉफ़्टवेयर को अपनी ज़रूरतों के अनुसार निरर्थक या गैर-अनावश्यक मोड लेने के लिए भी सेट किया जा सकता है। गैर-अनावश्यक मोड के लिए, केवल मुख्य CAN बस का उपयोग किया जाता है।
सिस्टम आर्किटेक्चर ब्लॉक आरेख
आरटी बस समाप्ति मिलान अवरोधक है, जिसका उपयोग सिग्नल उत्सर्जन हस्तक्षेप, आरटी=100Ω या 120Ω को दबाने के लिए किया जाता है। नेटवर्क संचार माध्यम के रूप में परिरक्षित मुड़ जोड़ी केबल का उपयोग करता है।
CAN नियंत्रक CAN प्रोटोकॉल की भौतिक परत और डेटा लिंक परत कार्यों को एकीकृत करता है, और बिट पैडिंग, डेटा ब्लॉक कोडिंग, सीआरसी चेकसम और प्राथमिकता भेदभाव सहित डेटा संचार की फ़्रेमिंग प्रक्रिया को पूरा कर सकता है।
CAN नियंत्रक में निम्नलिखित मुख्य विशेषताएं हैं:
◇ CAN2.0A और CAN2.0B प्रोटोकॉल के अनुरूप है।
◇डेटा फ़्रेम और रिमोट फ़्रेम भेजने और प्राप्त करने का समर्थन करता है।
◇ 16 संदेश भेजने/प्राप्त करने वाले बफ़र्स, 11{3}बिट या 29{4}}बिट पहचानकर्ताओं और बहु{5}}स्तरीय संदेश बफ़र संरचना का समर्थन करते हुए; ◇ पूर्ण-बिट तुलना, पूर्ण-बिट तुलना और पूर्ण-बिट तुलना का समर्थन करता है।
◇ तीन स्वीकृति पहचान चयन विधियों का समर्थन करता है: पूर्ण {{0} बिट तुलना, पूर्ण {{1} बिट मास्किंग और बिट मास्किंग स्वीकृति; ◇ दो स्वीकृति पहचान रजिस्टर।
◇ दो स्वीकृति पहचान रजिस्टर मानक फ्रेम या विस्तारित फ्रेम प्रारूप का समर्थन करते हैं।
◇ बॉड दर 10Kbps से 1Mbps तक प्रोग्राम करने योग्य है।
बस चालक बस की अंतर ट्रांसमिशन और रिसेप्शन क्षमता को बढ़ाने के लिए CAN नियंत्रक और भौतिक बस के बीच इंटरफ़ेस के रूप में PCA82C250 को अपनाता है।

2 सिस्टम सॉफ्टवेयर डिज़ाइन
2.1 दोहरे कैन निरर्थक नियंत्रण फ़ंक्शन का एहसास
दोहरी CAN अतिरेक प्रणाली में, हार्डवेयर संरचना की तुलना में, सॉफ़्टवेयर डिज़ाइन अपेक्षाकृत अधिक जटिल है। सामान्य CAN बस संचार कार्यक्रम में तीन बुनियादी भाग शामिल होने चाहिए: CAN आरंभीकरण कार्यक्रम, CAN ट्रांसमिशन प्रोग्राम और CAN रिसेप्शन प्रोग्राम। इस अनावश्यक सिस्टम सॉफ़्टवेयर डिज़ाइन में, उपरोक्त तीन भागों को सिस्टम के अन्य सॉफ़्टवेयर मॉड्यूल को कॉल करने के लिए तीन सबसे बुनियादी मॉड्यूल के रूप में उपयोग किया जाता है।
MB90F543 256 प्रकार के इंटरप्ट स्रोतों को संभाल सकता है, और CAN नियंत्रक से संबंधित चार हार्डवेयर इंटरप्ट हैं: CAN0 RX (CAN0 पूर्ण इंटरप्ट प्राप्त करता है), CAN0 TX /NS (CAN0 पूर्ण/नोड स्थिति परिवर्तन इंटरप्ट भेजता है), CAN1 RX (CAN1 पूर्ण इंटरप्ट प्राप्त करता है), CAN1 TX /NS (CAN1 पूर्ण/नोड स्थिति परिवर्तन इंटरप्ट भेजता है)। CAN1 TX /NS (CAN1 पूर्ण/नोड स्थिति परिवर्तन व्यवधान संचारित करता है)। इस सॉफ़्टवेयर डिज़ाइन में क्वेरी सेंड और इंटरप्ट रिसीव का उपयोग किया जाता है। नोड स्थिति परिवर्तन इंटरप्ट सबरूटीन का उपयोग नोड स्थिति परिवर्तन के प्रसंस्करण के लिए किया जाता है। ऐसा इसलिए है क्योंकि CAN2.0 प्रोटोकॉल निर्दिष्ट करता है कि नोड निम्नलिखित तीन स्थितियों में से एक में है: त्रुटि{{18}सक्रिय स्थिति, त्रुटि{{19}अनदेखा स्थिति, और बंद{{20}बस स्थिति। MB90500 श्रृंखला में, एक अतिरिक्त चेतावनी स्थिति भी है, जो इंगित करती है कि ट्रांसमिट/प्राप्त त्रुटि काउंटर का मान 96 से अधिक हो गया है, और नोड स्थिति में बदलाव के कारण संबंधित रुकावट आएगी।
चूंकि सिस्टम दोहरी CAN रिडंडेंसी हॉट स्टैंडबाय के साथ संचालित होता है, इसलिए दोनों CAN नियंत्रक हॉट स्टैंडबाय स्थिति में होने चाहिए। सिस्टम में सभी नोड्स के दोनों CAN नियंत्रकों को किसी भी समय संदेश प्राप्त करने के लिए तैयार होने के लिए आरंभीकृत किया जाता है, लेकिन एक और केवल एक CAN नियंत्रक संदेश भेज रहा है। दूसरे शब्दों में, एक समय में, CAN चैनलों में से केवल एक ही सक्रिय होता है, जबकि दूसरा सुन रहा होता है (सामान्य संचालन में) या ख़राब स्थिति में (विफलता की स्थिति में)।
एकल CAN नियंत्रण प्रणाली की तुलना में दोहरे CAN निरर्थक नियंत्रण प्रणाली के सॉफ़्टवेयर डिज़ाइन की जटिलता की कुंजी CAN प्रणाली की गलती का पता लगाना और CAN प्रणाली की स्वचालित स्विचिंग में निहित है। पूरी तरह से स्वतंत्र ट्रांसमिशन मीडिया, बस चालकों और बस नियंत्रकों के दो सेटों के उपयोग के कारण, उन्हें अपने स्वयं के चैनल दोषों से स्वतंत्र रूप से पता लगाया जा सकता है, जैसे कि CANH और CANL शॉर्ट {{1} सर्किट, CANH या CANL डिस्कनेक्ट, CANH और ग्राउंड शॉर्ट {{2} सर्किट, CANL और पावर शॉर्ट {{3} सर्किट, बस ड्राइवर क्षति, इत्यादि। वास्तविक डिबगिंग में, यह पाया गया है कि यदि CANH, CANL डिस्कनेक्ट हो गया है या बस पर केवल एक ट्रांसमीटर है, तो इससे ट्रांसमिट/रिसीव एरर काउंटर 128 तक बढ़ जाएगा, जो नोड को अनदेखा त्रुटि स्थिति में रखता है; और CANH और CANL के बीच एक शॉर्ट{{6}सर्किट, CANH और ग्राउंड के बीच एक शॉर्ट{7}सर्किट, या CANL और बिजली आपूर्ति के बीच एक शॉर्ट{8}सर्किट के कारण ट्रांसमिट/रिसीव एरर काउंटर 256 तक बढ़ जाएगा, जो नोड को बस डिस्कनेक्टेड स्थिति में डाल देगा। इसलिए, नोड स्टेट चेंज इंटरप्ट सबरूटीन में CAN रिडंडेंसी मॉड्यूल को कॉल करके, हम CAN सिस्टम की स्वचालित गलती का पता लगाने और स्वचालित स्विचिंग के उपरोक्त उद्देश्य को प्राप्त कर सकते हैं। CAN0 नोड स्टेट चेंज इंटरप्ट सबरूटीन इस प्रकार है:
__इंटरप्ट शून्य NodeStateTransmitInt0 (शून्य)
{
यदि (CSR0_NT) /* नोड स्थिति परिवर्तन */
{
CSR0_NT=0; /*व्यवधान ध्वज रीसेट*/
यदि ( (CSR0_NS==2 ) (CSR0_NS==3 ) ) /* व्यवधान या शॉर्ट सर्किट के कारण */
{
NoWaitFlg=1; /* एक परस्पर अनन्य ध्वज*/
Bus0Error() ; /* Bus0Error() CAN0 को रोकता है और अनावश्यक CAN1 सबरूटीन प्रारंभ करता है */ { NoWaitFlg=1; /* एक म्यूटेक्स ध्वज*/
}
}
आईसीआर00 =3; /* व्यवधान प्राथमिकता को Timer0 व्यवधान प्राथमिकता में बदलें */ }
आईसीआर03 =2; /* टाइमर 0 इंटरप्ट को प्राथमिकता देने के लिए इंटरप्ट प्राथमिकता बदलें */ }
}
इसके अलावा, CAN बस संचार प्रक्रिया में, जब एक निश्चित सूचना बफर का डेटा ट्रांसमिशन पूरा हो जाता है, तो ट्रांसमिशन पूर्णता रजिस्टर में संबंधित बिट को 1 पर सेट किया जाएगा। ट्रांसमिशन को क्वेरी करने की प्रक्रिया में, इस रजिस्टर को देखकर, आप जान सकते हैं कि ट्रांसमिशन पूरा हो गया है या नहीं। हालाँकि, यदि भेजना सफल नहीं होता है, तो यह सिस्टम को हर समय प्रतीक्षा कराएगा और सिस्टम क्रैश हो जाएगा। इसलिए, सॉफ़्टवेयर को यहां एक प्रतीक्षा अवधि निर्धारित करनी होगी, जिसके बाद मास्टर कैन चैनल को रोकने और स्लेव कैन चैनल को सक्षम करने के लिए कैन रिडंडेंसी सिस्टम को बुलाया जाएगा।
सॉफ़्टवेयर डिज़ाइन को इस समस्या पर भी ध्यान देना चाहिए कि बैकअप CAN स्विचिंग पूरी होने के बाद मूल संचार कार्य को कैसे पुनर्स्थापित किया जाए। समाधान विश्वसनीय स्विचिंग के मूल संचार कार्य को प्राप्त करने के लिए, कार्य झंडे की एक सूची तैयार करना, स्टैंडबाय कैन स्विचिंग, सिस्टम के मूल कार्य प्राप्त करने के लिए तालिका को पढ़ना है।
2.2 बस प्रबंधन कार्य का कार्यान्वयन
इस प्रणाली के सॉफ़्टवेयर डिज़ाइन में, डेटा ट्रांसमिशन और रिसेप्शन के लिए वास्तविक समय डेटा संचार कार्यक्रम के अलावा, इसमें प्रत्येक नोड के प्रबंधन के लिए संचार प्रबंधन कार्यक्रम भी शामिल है। सभी नोड्स को मास्टर नोड्स और स्लेव नोड्स में विभाजित किया गया है। उनके बीच अंतर यह है कि मास्टर नोड में एक बस प्रबंधन फ़ंक्शन होता है, जो इसे ऑनलाइन नोड आँकड़े निष्पादित करने, ऑफ़लाइन नोड्स को पहचानने और उनसे निपटने के लिए उपाय करने की अनुमति देता है; जबकि स्लेव नोड में यह फ़ंक्शन नहीं है। केवल एक मास्टर नोड है, जबकि एकाधिक स्लेव नोड्स की अनुमति है। मास्टर नोड के लिए बस प्रबंधन फ़ंक्शन प्रोग्राम को समय-समय पर कॉल किया जाता है, यह निर्धारित करने के लिए कि क्या सभी नोड ऑनलाइन हैं: यदि सभी नोड ऑनलाइन हैं, तो बस को सामान्य माना जाता है; अन्यथा, ऑफ़लाइन नोड्स की पहचान करें, और उसके अनुसार निपटें। डिजाइन का विचार यह है कि सिस्टम मास्टर नोड नियमित अंतराल पर बस के सभी स्लेव नोड्स को एक रिमोट फ्रेम भेजता है, और प्रत्येक स्लेव नोड इसे प्राप्त करता है, अपने स्वयं के नोड नंबर को डेटा फ्रेम में रखता है और इसे मास्टर नोड को भेजता है, और मास्टर नोड यह निर्धारित करता है कि प्राप्त नोड नंबर के अनुसार ऑफ़लाइन कोई नोड विफलता है या नहीं। इस प्रणाली में, नोड संख्या (मॉड्यूल पता) मॉड्यूल पर एक डीआईपी स्विच द्वारा निर्धारित किया जाता है।
सॉफ़्टवेयर डिबगिंग की प्रक्रिया में, हालांकि प्रत्येक नोड की हार्डवेयर संरचना समान होती है, सर्किट बोर्ड वायरिंग और घटक फैलाव में अंतर के कारण, अक्सर ऐसा होता है कि सभी स्लेव नोड्स मास्टर नोड द्वारा भेजी गई जानकारी प्राप्त नहीं कर सकते हैं, या मास्टर नोड स्लेव नोड्स द्वारा भेजी गई सभी जानकारी प्राप्त नहीं करता है, अर्थात, फ्रेम हानि की समस्या होती है। इस समस्या को सॉफ़्टवेयर विलंब और प्राप्त करने वाले इंटरप्ट प्रोग्राम के अनुकूलन द्वारा हल किया गया है।
3 विकास पर्यावरण और अनुप्रयोग को कई मुद्दों पर ध्यान देना चाहिए
सॉफ़्ट्यून V3 सॉफ़्टवेयर कार्यक्षेत्र फुजित्सु FFMC-8L, FFMC-16L/LX और FR श्रृंखला माइक्रोकंट्रोलर प्रोग्राम विकास के लिए एक एकीकृत सॉफ़्टवेयर विकास वातावरण है, जिसमें विकास प्रबंधन, एमुलेटर डिबगिंग, सॉफ्ट सिमुलेशन और एक एकीकृत विकास वातावरण शामिल है। इसके विकास टूलकिट में सॉफ़्ट्यून वर्कबेंच, सी कंपाइलर, असेंबलर, लिंकर, सी चेकर, सी एनालाइज़र शामिल हैं। सॉफ़्ट्यून V3 C और असेंबली दोनों भाषाओं का समर्थन करता है।
MB90F543 के वास्तविक उपयोग के दौरान, निम्नलिखित मुद्दों पर ध्यान दिया जाना चाहिए।
① एक्सेप्टेंस मार्क सिलेक्शन रजिस्टर (एएमएसआर) की सेटिंग। प्रत्येक संदेश बफ़र एक स्वीकृति अंकन विधि का चयन कर सकता है: पूर्ण बिट तुलना, पूर्ण बिट मास्क या बिट मास्क स्वीकृति। पूर्ण-बिट तुलना का मतलब है कि नोड द्वारा प्राप्त जानकारी की आईडी सूचना बफर द्वारा निर्धारित आईडी के बिल्कुल समान होनी चाहिए ताकि जानकारी स्वीकृति पहचानकर्ता को पारित कर सके; पूर्ण-बिट मास्किंग के लिए जानकारी की आईडी की तुलना करने की आवश्यकता नहीं है, जिसे स्वीकृति पहचानकर्ता के बिना शर्त पारित होने के रूप में समझा जा सकता है; बिट-मास्किंग स्वीकृति, तुलना की जाने वाली आईडी बिट्स और मास्क की जाने वाली आईडी बिट्स को निर्दिष्ट कर सकती है, यानी आंशिक रूप से स्वीकृति की तुलना करना। व्यवहार में, इस स्वीकृति पहचानकर्ता विधि का उपयोग सबसे अधिक बार किया जाता है, इसलिए MB90F543 चिप के CAN नियंत्रक में ऐसी दो विधियाँ सेट की जाती हैं। एएमएसआर की सेटिंग डेवलपर को बफर जानकारी को संसाधित करने के लिए काफी लचीलापन प्रदान करती है।
② स्वीकृति अंकन रजिस्टर (एएमआर) सेटिंग। एएमएसआर को बिट - मास्क्ड स्वीकृति विधि पर सेट करने के बाद, एएमआर को यह सेट करने के लिए सेट किया जाना चाहिए कि आईडी के किन बिट्स की तुलना की जानी है और किन बिट्स को मास्क किया जाना है। एएमआर में कुल चार बाइट्स हैं और 29-बिट आईडी वर्णों का समर्थन करता है। हालाँकि, यह ध्यान देने योग्य है कि 29-बिट आईडी वर्ण के लिए, AM28~AM0 का उपयोग किया जाता है; जबकि 11-बिट आईडी कैरेक्टर के लिए AM28~AM18 का उपयोग किया जाता है। इसलिए, उपयोगकर्ता को एएमआर सेट करते समय सावधान रहना चाहिए, अन्यथा इसके परिणामस्वरूप रिसेप्शन में त्रुटि होगी। लेखक को यहीं कष्ट सहना पड़ा है।
③ फुजित्सु के CAN नियंत्रक की एक विशेषता यह है कि यह बहु-स्तरीय संदेश बफ़र्स के उपयोग का समर्थन करता है। ऐसे मामले में जहां रिसेप्शन अक्सर होता है, या कई अलग-अलग आईडी सूचना फ़्रेम प्राप्त होते हैं, यह संभव है कि सीपीयू के पास प्राप्त जानकारी को संसाधित करने के लिए पर्याप्त समय नहीं है, इसलिए यह सुनिश्चित करने के लिए कि जानकारी को समय पर और कुशल तरीके से संसाधित किया जा सकता है, एकाधिक सूचना बफ़र्स को बहु-स्तरीय सूचना बफ़र में बनाया जा सकता है। इस प्रकार 8 बाइट्स से बड़ी जानकारी को 1 फ्रेम में भेजा जा सकता है। इस व्यवस्था का एक अन्य लाभ यह है कि सीपीयू एक निश्चित सूचना बफर की जानकारी को फिर से लिखे जाने और तुरंत खो जाने की चिंता किए बिना पढ़ सकता है।
4 निष्कर्ष
CAN एप्लिकेशन लेयर प्रोटोकॉल की विकास प्रक्रिया में, डिवाइसनेट विनिर्देश के कुछ तंत्र उधार लिए गए हैं, जैसे डेटा ट्रांसमिशन के कई रूपों का समर्थन करना (चयनात्मक पास, मतदान, राज्य परिवर्तन, आदि); हालाँकि, विकास चक्र जैसे कई कारकों की सीमाओं के कारण, डिवाइस के नैदानिक कार्य के साथ-साथ समान उत्पादों के साथ अंतरसंचालनीयता में सुधार और विस्तार की आवश्यकता है। दोहरी CAN निरर्थक संचार प्रणाली प्रायोगिक चरण में स्थिर रूप से काम करती है, डेटा ट्रांसमिशन विश्वसनीय है, अतिरेक स्विचिंग व्यावहारिक है, और बस प्रबंधन की विश्वसनीयता अच्छी है; इसे लोकोमोटिव नियंत्रण प्रणाली या अन्य औद्योगिक नियंत्रण साइटों पर लागू किया जा सकता है जिन्हें उच्च विश्वसनीयता की आवश्यकता होती है।




