बड़े मल्टीप्लेक्सर्स / डेटा चयनकर्ता


10

मैं 128: 1 या अधिक इनपुट के साथ एक मल्टीप्लेक्स आईसी की तलाश कर रहा हूं (256 काफी अच्छा होगा)। मैंने सोचा होगा कि इस तरह की डिवाइस काफी सामान्य होगी, फिर भी मुझे इसे खोजने में मुश्किल समय आ रहा है। यह हो सकता है कि मैं गलत स्थानों को देख रहा हूं, लेकिन किसी तरह मुझे लगता है कि मुझे कुछ याद आ रहा है - शायद बड़े इनपुट मल्टीप्लेक्सर्स का उपयोग अक्सर नहीं किया जाता है? यदि हां, तो विकल्प क्या है?

अधिकतम। मैं 16 इनपुट के साथ भरोसेमंद ol '74150 को खोजने में सक्षम था।

मैं समझता हूं कि मैं कई 16 इनपुट mux के संयोजन से एक बड़े मल्टीप्लेक्स का निर्माण कर सकता हूं - लेकिन मैं एक अधिक एकीकृत समाधान की उम्मीद कर रहा हूं।


मैं एक मोटर वाहन वायरिंग हार्नेस में खुले और शॉर्ट सर्किट के लिए परीक्षण करने में सक्षम एक सर्किट डिजाइन कर रहा हूं। एक विशिष्ट दोहन में 200 या इतने तार हो सकते हैं। वर्तमान में, सर्किट 128 तारों को संभालने के लिए 16 मल्टीप्लेक्सर्स का उपयोग करता है।

मल्टीप्लेक्स एकल 16-इनपुट मल्टीप्लेक्स से जुड़े होते हैं और बदले में एक यूसी से जुड़े होते हैं। इसी तरह, दूसरे छोर पर, 16 डेमूलिप्लेक्सर्स हैं। Demultiplexers एक वोल्टेज पर तारों को स्विच करते हैं। उसी समय, इस तार को mux के माध्यम से uC इनपुट में से एक पर स्विच किया जाता है।

यदि तार ठीक है, तो यूसी को अपने इनपुट पर एक उच्च देखना चाहिए। यूसी तब अन्य सभी तारों की जांच करता है। यदि उनमें से कोई भी उच्च है, तो इसका मतलब है कि उन दो तारों के बीच एक छोटा है।

नोट: यह सर्किट मेरे द्वारा डिजाइन नहीं किया गया था। यह 2003 में किया गया था। मैं सिर्फ इस सर्किट को बेहतर बनाने के लिए देख रहा हूं। यह भी ध्यान दें कि किसी भी वायरिंग हार्नेस में CAN डेटा-बस या किसी अन्य प्रकार की बस नहीं होती है। शक्ति और संकेतों के लिए इसके बस सरल तार।

यहाँ एक बहुत ही मोटा ब्लॉक आरेख है जो मैंने जल्दी से सिर्फ इस पद के लिए बनाया है। मुझे आशा है कि यह समस्या को स्पष्ट करता है क्योंकि अंग्रेजी मेरी पहली भाषा नहीं है और मुझे पाठ के माध्यम से चीजों को समझाने में परेशानी होती है। भले ही आरेख बहुत अच्छा नहीं है, मुझे आशा है कि यह चीजों को बेहतर बनाता है। MCU से demux और mux में जाने वाली लाइनें एड्रेस लाइनें हैं।

ध्यान दें कि तारों में से एक को विभाजित किया गया है 3. मैंने यह जानबूझकर दिखाया कि कुछ कनेक्शन एक-से-कई हैं और केवल एक-से-एक नहीं हैं। सबसे जटिल एक जिसे मैंने देखा है वह 60 जंक्शनों में एक तार विभाजन है। यही कारण है कि demux और mux की अलग-अलग एड्रेस लाइनें होती हैं। डेमो इनपुट नंबर पर हो सकता है। 20 जबकि mux 20,21,22 आदि के बीच स्विच कर सकता है। लाइन 20 से जंक्शन होने वाली सभी लाइनों की जांच करें।

यहाँ छवि विवरण दर्ज करें

अगर आपको लगता है कि इसे डिजाइन करने का एक बेहतर तरीका है, तो कृपया मुझे बताएं।


क्या आप 128: 1 या 128 गुना 2: 1 के लिए देख रहे हैं?
मजेंको सेप

128: 1। माफ करना मैं उल्लेख करना भूल गया। मैं क्षमाप्रार्थी हूं।
साद

@ मेरे अनुभव से पता चला है कि लगभग हर बार जब कोई इस तरह की चीज़ मांगता है, तो ऐसा इसलिए होता है क्योंकि वे कुछ गलत कर रहे होते हैं। मैं सुझाव देता हूं कि आप जो पूरा करने की कोशिश कर रहे हैं, उसके बजाय आपको लगता है कि समाधान क्या है। इस तरह हम आपको 16: 1 muxes के एक गुच्छा को कैस्केडिंग करने से बेहतर समाधान देने में सक्षम हो सकते हैं।

@ डेविड केसनर, कृपया संपादन देखें। मैंने वास्तव में कुछ हफ्ते पहले इस साइट पर डिजाइन के बारे में पूछताछ की थी लेकिन बहुत कम प्रतिक्रिया मिली। इनपुट पर किसी भी रूप की सराहना करेंगे।
साद

1
कितनी जल्दी, कितनी बार, और कितने नोटिस के साथ स्विचिंग इनपुट के आधार पर, कैस्केड मल्टीप्लेक्सर्स का उपयोग करके रूटिंग को बहुत आसानी से किया जा सकता है। बोर्ड पर एक ही स्थान पर 256 संकेतों को रूट करने के बजाय, प्रत्येक 16 स्पॉट्स में से 16 सिग्नलों को रूट कर सकता है, उन स्पॉट्स में से प्रत्येक के लिए एक सिग्नल को 16-इनपुट चिप में रूट कर सकता है, और सभी के लिए चार साझा सिग्नलों को रूट कर सकता है। multiplexers। सिद्धांत में एक चिप का उपयोग करने से किसी को इनपुट से आउटपुट में 256 संकेतों में से किसी एक को "गेट देरी" के साथ श्रृंखला में दो ट्रांजिस्टर (गिरने वाले किनारे के लिए एन-प्रकार; बढ़ते के लिए;) के साथ प्राप्त करने की अनुमति मिलेगी, लेकिन ...
सुपरकैट

जवाबों:


12

हालांकि एक विशाल मक्स / डेमक्स निश्चित रूप से काम करेगा, 16: 1 मक्स का एक गुच्छा जोड़ना बहुत काम है, और इसकी कुछ सीमाएं हैं जो एक मुद्दा हो सकता है या नहीं हो सकता है। अधिक पारंपरिक दृष्टिकोण शिफ्ट रजिस्टर का उपयोग करना होगा। "ड्राइविंग" अंत के लिए एक सीरियल-इन / समानांतर-आउट रजिस्टर का उपयोग करें, और प्राप्त अंत के लिए एक समानांतर-इन / सीरियल-आउट। शिफ्ट रजिस्टर के बारे में अच्छी बात यह है कि वे आसानी से लंबी पारी रजिस्टर बनाने के लिए डेज़ी-जंजीर हो सकते हैं। 256-बिट या 1024 बिट शिफ्ट रजिस्टर में कोई समस्या नहीं है। कुछ बफ़रिंग के साथ, धारा धारा को एक केबल से दूसरे पीसीबी पर भी पारित किया जा सकता है (यदि इससे आपकी चीज़ आसानी से बनती है)।

वहाँ कई 8 बिट 74xx597 तरह शिफ्ट रजिस्टर चिप्स रहे हैं, लेकिन एक CPLD है ज्यादा इस बात के लिए बेहतर है। लेकिन आपको एक विशाल 256+ पिन CPLD की आवश्यकता नहीं है। इसके बजाय, आप कई छोटे CPLD का उपयोग कर सकते हैं और उन्हें एक साथ जोड़ सकते हैं। हालाँकि मैंने गणित नहीं किया है, लेकिन मुझे पूरा यकीन है कि छोटे से मध्यम आकार के CPLD का उपयोग करना एक बड़े CPLD से सस्ता होगा - और आपको BGA के बारे में चिंता करने की ज़रूरत नहीं है।

यह CPLD काफी फ्लिप-फ्लॉप इंटेंसिव होगा। इसका मतलब यह है कि एक सामान्य CPLD आर्किटेक्चर (जैसे कि Xilinx का उपयोग करता है) कुछ उतना अच्छा नहीं है जितना कि FPGA-ish। Altera और Lattice दोनों में XLDx की तुलना में CPLD बहुत अधिक फ्लिप-फ्लॉप प्रति डॉलर है।

जबकि आपके पास CPLD के साथ बहुत अधिक अनुभव नहीं हो सकता है, यह डिज़ाइन बहुत सरल है और CPLD का उपयोग करने का लाभ बहुत बड़ा है। यह जानने के लिए आपका बहुत समय होगा कि सीपीएलडी को इसके लिए कैसे प्रोग्राम किया जाए।

इसके अलावा, एक मक्स के बजाय शिफ्ट रजिस्टर का उपयोग करने के फायदे शुरू में देखना आसान नहीं है। अधिकतर आप तारों को कैसे चलाते हैं और किस तरह से समझ पाते हैं, इसमें आपको काफी लचीलापन मिलता है। आप एक समय में कई हार्नेस का परीक्षण कर सकते हैं (यदि आपके पास पर्याप्त शिफ्ट रजिस्टर हैं)। सब कुछ आप muxes के साथ परीक्षण कर सकते हैं शिफ्ट रजिस्टर के साथ किया जा सकता है, लेकिन शिफ्ट रजिस्टर अधिक कर सकते हैं। रजिस्टरों को शिफ्ट करने का एक पक्ष यह है कि यह धीमा है, हालांकि यह अभी भी आपकी ज़रूरत से ज़्यादा तेज़ होगा (आईई, जो आदमी को जोड़ने और दोहन को डिस्कनेक्ट करने के लिए शिफ्ट रजिस्टरों के साथ परीक्षण करने के लिए समय की तुलना में बहुत धीमा होगा)।

मुझे यह भी कहना चाहिए कि भले ही आप सीपीएलडी का उपयोग कर रहे हों, शिफ्ट रजिस्टर अभी भी मक्स से आसान हैं। मुख्य बात यह है कि वे छोटे हैं - हालांकि वास्तविक लाभ / नुकसान को देखने के लिए आपको वास्तव में दोनों में डिजाइन करना होगा और देखें कि आपको सीपीएलडी के किस आकार की आवश्यकता है। यह CPLD वास्तुकला के प्रकार पर काफी हद तक निर्भर होने वाला है, इसलिए Xilinx के साथ किए गए किसी भी सामान्यीकरण Altera पर लागू नहीं होंगे।

संपादित करें: नीचे शिफ्ट रजिस्टर का उपयोग करके वास्तव में परीक्षण करने के तरीके पर थोड़ा और विस्तार है ...

परीक्षण करने के लिए, आप इस तथ्य को नजरअंदाज कर सकते हैं कि आप शिफ्ट रजिस्टर का उपयोग कर रहे हैं और केवल इस बात पर विचार करें कि डेटा "ड्राइविंग एंड" पर संचालित है और "रिसीविंग एंड" पर पढ़ें। आपको वहां और पीछे डेटा कैसे मिला (धारावाहिक के माध्यम से) काफी हद तक अप्रासंगिक है। यह महत्वपूर्ण है कि आप डेटा कर सकते हैं कि आप ड्राइव कर सकते हैं पूरी तरह से मनमाना है।

आपके द्वारा चलाए जाने वाले डेटा को "परीक्षण वैक्टर" कहा जाता है। आप जिस डेटा को पढ़ते हैं, वह भी परीक्षण वैक्टर का हिस्सा है। यदि केबल को 1: 1 संबंध के साथ तार दिया गया है, तो आप ड्राइविंग डेटा और प्राप्त होने वाले डेटा के समान होने की उम्मीद करेंगे जो आप ड्राइव करते हैं। यदि केबल 1: 1 नहीं है, तो यह स्पष्ट रूप से अलग होगा।

यदि आपने MUX आधारित दृष्टिकोण का उपयोग किया है, तो आप अभी भी परीक्षण वैक्टर का उपयोग कर रहे हैं, लेकिन आपका परीक्षण वेक्टर के प्रकार पर कोई नियंत्रण नहीं है। Muxes के साथ, पैटर्न को "वॉकिंग ओन्स" या "वॉकिंग ज़ीरोस" कहा जाता है। मान लीजिए कि आपके पास 4-पिन केबल है। चलने वालों के साथ आप निम्न पैटर्न को चलाएंगे: 0001, 0010, 0100, 1000। शून्य चलना एक ही है, लेकिन उलटा।

एक सरल निरंतरता परीक्षण के लिए, चलने वाले / शून्य काफी अच्छी तरह से काम करते हैं। आप केबल कैसे जुड़े हैं, इसके आधार पर, अन्य पैटर्न हैं जो परीक्षण को गति देने या विशिष्ट चीजों का परीक्षण करने के लिए किए जा सकते हैं। उदाहरण के लिए, यदि कुछ पिनों को अन्य पिनों के खिलाफ कभी छोटा नहीं किया जा सकता है, तो आप उन मामलों को न देखने के लिए परीक्षण पैटर्न को अनुकूलित कर सकते हैं और इस तरह तेजी से आगे बढ़ सकते हैं। चलने-फिरने / शून्य के अलावा किसी अन्य चीज से निपटना, चीजों को संभालने के लिए सॉफ्टवेयर साइड पर जटिल हो सकता है।

परीक्षण वैक्टर बनाने की अंतिम विधि JTAG परीक्षण के लिए की जाती है। JTAG, जिसे सीमा स्कैन भी कहा जाता है, एक पीसीबी (और पीसीबी के बीच) पर चिप्स के बीच कनेक्शन के परीक्षण के लिए एक समान योजना है। अधिकांश BGA चिप्स JTAG का उपयोग करते हैं। JTAG की प्रत्येक चिप में शिफ्ट रजिस्टर होते हैं जिनका उपयोग प्रत्येक पिन को चलाने / पढ़ने के लिए किया जा सकता है। सॉफ्टवेयर का एक जटिल और महंगा टुकड़ा पीसीबी के लिए नेटलिस्ट को देखता है और परीक्षण वैक्टर उत्पन्न करेगा। एक परिष्कृत केबल परीक्षक एक ही काम कर सकता था - लेकिन वह बहुत काम का होगा।

सौभाग्य से, आपके लिए, परीक्षण वैक्टर उत्पन्न करने के लिए एक बहुत आसान तरीका है। यहाँ आप क्या करते हैं ... शिफ्ट रजिस्टर में एक ज्ञात अच्छी केबल कनेक्ट करें। ड्राइविंग अंत के माध्यम से एक चलना-शून्य / लोगों के पैटर्न को चलाएं। जैसा कि आप ऐसा करते हैं, प्राप्त अंत पर जो देखा जाता है उसे रिकॉर्ड करें। सरल स्तर पर, आप बस अपने परीक्षण वैक्टर के रूप में उपयोग कर सकते हैं। जब आप एक खराब केबल को कनेक्ट करते हैं और उसी तरह चलने-फिरने / शून्य करते हैं, तो आपको प्राप्त डेटा आपके द्वारा पहले दर्ज किए गए डेटा से मेल नहीं खाएगा - और इसलिए आपको पता है कि केबल खराब है। यह कई नामों से जाता है, लेकिन सभी नाम "अधिगम" शब्द की कुछ भिन्नताएं हैं, जैसे कि स्व-शिक्षा या स्वतः-शिक्षण।

अब तक, यह आसानी से उस मामले को संभालता है जहां ड्राइविंग छोर पर एक पिन प्राप्त अंत पर एक से अधिक पिन पर जाता है, लेकिन दूसरे मामले को नहीं संभालता है जहां ड्राइविंग छोर पर कई पिन एक साथ जुड़े हुए हैं। उसके लिए आपको बस विवाद से नुकसान को रोकने के लिए कुछ विशेष सामान की आवश्यकता है, और आपके सभी शिफ्ट रजिस्टर पिन में द्वि-दिशात्मक (IE, फ़ंक्शन दोनों ड्राइवर और रिसीवर के रूप में) होना चाहिए। यहाँ आप क्या करते हैं:

  1. प्रत्येक पिन पर पुल-डाउन रेसिस्टर लगाएं। 20K से 50k ओम के आसपास कुछ ठीक होना चाहिए।

  2. CPLD और केबल के बीच एक श्रृंखला अवरोधक लगाएं। लगभग 100 ओम। यह ईएसडी और सामान से नुकसान को रोकने में मदद करना है। 2700 pF कैप टू ग्राउंड (100 ओम रोकनेवाला के CPLD पिन पक्ष पर) ESD के साथ भी मदद करेगा।

  3. CPLD को प्रोग्राम करें ताकि यह केवल सिग्नल को हाई करेगा, कभी भी ड्राइविंग को कम न करें। यदि आपका आउटपुट डेटा '0' है, तो CPLD उस स्टेट को त्रि-राज्य करेगा और पुल-डाउन रेसिस्टर को लाइन को नीचे लाने की अनुमति देगा। इस तरह, अगर कई CPLD पिन केबल पर एक ही तार चला रहे हैं, तो कोई नुकसान नहीं होगा (क्योंकि CPLD भी समान तार को कम नहीं चला रहा होगा)।

  4. हर पिन ड्राइवर और रिसीवर दोनों है। तो अगर आपके पास 256 पिन केबल है तो आपका शिफ्ट रजिस्टर ड्राइवर के लिए 512 बिट्स और रिसीवर के लिए 512 बिट्स होगा। ड्राइविंग और प्राप्त करने का काम एक ही CPLD में किया जा सकता है, इसलिए पीसीबी की जटिलता वास्तव में इस वजह से नहीं बदलती है। इस CPLD में आपके पास प्रति केबल पिन पर 3 या 4 फ्लिप-फ्लॉप होंगे, इसलिए तदनुसार योजना बनाएं।

फिर आप पहले से रिकॉर्ड किए गए आंकड़ों के साथ प्राप्त आंकड़ों की तुलना करते हुए एक ही चलने-फिरने वाले / शून्य पैटर्न करते हैं। लेकिन अब यह वायरिंग हार्नेस के भीतर सभी प्रकार के मनमाने कनेक्शनों को संभाल लेगा।


आपका बहुत बहुत धन्यवाद। मैं इस बारे में अभी और पढ़ना शुरू करने जा रहा हूँ।
साद

मैं इस बारे में सोच रहा हूं। आपने कहा कि Rx के लिए ड्राइविंग एंड और PISO के लिए SIPO का उपयोग करें। अब, अगर मुझे सही तरीके से समझ में आया है, तो मुझे इनपुट पिन पर MCU और PISO पर आउटपुट पिन के लिए SIPO करना चाहिए। तारों को सभी एक से एक मान लेते हैं, तो मुझे हार्नेस के माध्यम से कुछ डेटा भेजना चाहिए और अगर मुझे वह डेटा वापस मिलता है, तो तारों का परीक्षण पास होता है। क्या यह एक वैध तरीका है? इसके अलावा, मुझे यह कैसे संशोधित करना चाहिए कि वे उन पंक्तियों को संभालें जो प्राप्त अंत पर 1 से अधिक में विभाजित हैं? यह वही है जो आप सुझाव दे रहे थे या मैं पूरी तरह से ट्रैक से दूर हूं?
साद

इन पंक्तियों पर अधिक विचार करना - मान लें कि हमारे पास 4 इनपुट तार हैं और उनमें से एक (4 वां) 2 तारों में विभाजित है। तो हमारे पास आरएक्स अंत में 5 तार हैं। मान लीजिए कि हम 0101 बिट्स को शिफ्ट करते हैं, अगर हमें 01011 वापस मिलता है तो हम सभी तार ठीक हैं। लेकिन मान लीजिए कि 3 बिट उच्च (01111) है, तो हम जानते हैं कि 3 तार शॉर्ट-सर्कुलेटेड है। लेकिन यह हमें नहीं बताएगा कि इसके शॉर्ट सर्किट किस तार से हुए। शायद एक बेहतर तरीका सिर्फ रजिस्टरों के माध्यम से "1" लहर देना होगा। इसलिए, शुरुआत में हमारे पास 1000 और हम आरईसी हैं। 10000. फिर 1 रिप्पल्स के माध्यम से, और हम 0100 और 01000 प्राप्त करते हैं। जब तक हम अंतिम बिट तक नहीं पहुँचते, 0001।
साद

इस मामले के लिए हमें पता है कि हमें 00011 प्राप्त करना चाहिए, क्योंकि पिछले एक को दो में विभाजित किया गया है। यदि 4 तार पर एक शॉर्ट है और हम 0010 भेज रहे हैं तो हम आरएक्स 00111 भेजेंगे - जिसे हम जानते हैं कि यह सही नहीं है और हम यह निर्दिष्ट करने में त्रुटि प्रदर्शित कर सकते हैं कि शॉर्ट सर्किट कहां है। क्या यह तरीका आपको अच्छा लगता है?
साद

@ मुझे अपनी टिप्पणी को कवर करने के लिए मैंने और अधिक विस्तार के साथ अपना उत्तर अपडेट किया।

7

मुझे नहीं लगता कि वहाँ एकल चिप समाधान मौजूद हैं। वे I / Os की बड़ी संख्या के कारण महंगे होंगे और शायद कम मांग के कारण भी। अधिकांश डिजाइन 8 या 16 इनपुट मल्टीप्लेक्स का कैस्केड करेंगे।

यदि आप वास्तव में अधिक एकीकृत समाधान चाहते हैं तो आपको CPLD की तलाश करनी होगी । 256 से अधिक I / Os के साथ CPLD हैं , जैसे कि Xilinx CoolRunner XC2C512 , जो 270 उपयोगकर्ता I / Os के साथ BGA संस्करण में उपलब्ध है। ध्यान रखें कि 256 इनपुट मल्टीप्लेक्स के लिए आपको चयन संकेतों के लिए अतिरिक्त 8 इनपुट की आवश्यकता होती है, निश्चित रूप से आउटपुट और शायद यह भी सक्षम है, इसलिए 270 I / Os बहुत अधिक नहीं होंगे।

आपको यह भी ध्यान रखना होगा कि आपकी पैकेजिंग में सबसे अधिक संभावना बीजीए होगी ; सुनिश्चित नहीं हैं कि आप ऐसा चाहते हैं। मैं लगभग 300 पिनों के साथ QFPs अभी तक वैसे भी नहीं देखा है ...


2
धन्यवाद। मुझे लग रहा था कि यही होगा। मुझे लगता है कि मैं सिर्फ 16 इनपुट वालों में से एक बड़ा संग्रह बनाने के लिए तैयार रहूंगा।
सायद

@ असद - जो आपके सबसे अच्छे दांव की तरह प्रतीत होगा, जब तक कि आप एक बड़े (पिन काउंट, गेट्स / लॉजिक ब्लॉक्स) नहीं लेते हैं, जैसा कि सुझाव दिया गया है कि PLD (फायदे अधिक कुशल / आकार के हैं, वास्तव में उनके साथ बहुत कम अनुभव या एचडीएल की आवश्यकता होगी, लेकिन पैकेज वास्तव में एक दर्द होगा - देव बोर्ड?)
ओली ग्लेसर

मुझे वास्तव में एचडीएल और एफपीजीएएस (हैंडेल-सी - जो कि स्कूल के साथ काम करना सुखद नहीं था) के साथ कुछ अनुभव है। मैंने हालांकि CPLD पर कभी काम नहीं किया है। लेकिन मैं वास्तव में एक बीजीए पैकेज के साथ गड़बड़ नहीं हुआ हूं और यह वास्तव में दर्द की तरह प्रतीत होता है। संपादित करें: XC2C512 PQFP में भी उपलब्ध है - हालांकि अब मुझे आश्चर्य है कि अगर कोई व्यक्ति HDL और FPGAs में मेरा जितना कम अनुभव है, वह इस तरह के उपकरणों को काम कर सकता है। यह भी काफी मसालेदार है - Farnell UK में इसका मूल्य £ 60 है।
साद

@saad - PQFP में केवल 173 उपयोगकर्ता I / Os हैं। मेरे सहयोगी ने अपने सीपीएलडी (सरल अनुप्रयोग: एड्रेस डिकोडर) को एबेल में क्रमादेशित किया , जो कि देखने से यह वीएचडीएल या वेरिलॉग की तुलना में बहुत सरल लगता है। संभवतः वीएचडीएल /
वेरिलॉग

@stevenvh: हाबिल कुछ मायनों में थोड़ा बदसूरत है, लेकिन घड़ियों और समीकरणों के संदर्भ में पिन व्यवहार निर्दिष्ट करना कभी-कभी वीएचडीएल या वेरिलोग में अधिक मौखिक रूप से चीजें लिखने की तुलना में बहुत अधिक स्वाभाविक हो सकता है। मुझे आश्चर्य है कि उपकरण एक अच्छे समीकरण-आधारित भाषा का समर्थन क्यों नहीं करते हैं?
सुपरकाट

3

हालांकि CPLD / FPGA उच्च पिन-गणना के लिए सही विचार लगता है, एक मोटर वाहन दोहन आमतौर पर शारीरिक रूप से काफी फैल जाएगा, और कनेक्टर मध्यम रूप से बड़े होते हैं, इसलिए उच्च पिन-गिनती डिवाइस से बड़े नंबरऑफ कनेक्टर्स के लिए बाहर फैनिंग के बजाय, के साथ मॉड्यूलर प्रणाली, कहते हैं, शिफ्ट रजिस्टरों पर 16 आईओएस, घड़ी / शिफ्ट लाइनों की कम संख्या से जुड़े हुए अधिक उपयुक्त हो सकते हैं, और बहुत ही स्केलेबल भी हो सकते हैं।
केबल परीक्षण के लिए विचार करने के लिए कुछ और है, आप दूसरे छोर पर वोल्टेज की जांच करने के लिए 16 वोल्ट, 16 लाइनों और 16 एनालॉग वोल्टेज को लागू करने के लिए एक प्रतिरोधक श्रृंखला का उपयोग कर सकते हैं। इससे ओपन और शॉर्ट्स का पता लगाया जा सकता है और यह सस्ता होगा।


क्या आपके कहने का मतलब है कि मुझे CLPDs पर 16-बिट ब्लॉक में शिफ्ट रजिस्टर लागू करना चाहिए? मैं सबसे अधिक सभी काम करने के लिए एक बड़े CPLD का उपयोग नहीं करेगा। मैं बीजीए पैकेज से बचना चाहता हूं और इसलिए छोटे सीएलपीडी के साथ जुड़ने की संभावना है। फिलहाल, हर नए वायरिंग हार्नेस के लिए जरूरी है कि एक नया "कनेक्टर बोर्ड" विकसित किया जाए और इसमें सभी कनेक्टर्स लगे हों। फिर ये कनेक्टर्स उपरोक्त प्रश्न में वर्णित सर्किट से जुड़े होते हैं। नई प्रणाली में, हम इस तंत्र को रखने जा रहे हैं - अगर मैं एक चिप पर बड़ी संख्या में IOs कनेक्ट करता हूं तो मुझे किस तरह की समस्याओं का सामना करना पड़ेगा?
साद

1

बहुत सारे इनपुट को पढ़ने के लिए शिफ्ट रजिस्टर का उपयोग करना एक अच्छा पैटर्न है। चूंकि डेविड केसरर ने सीपीएलडी का उपयोग करने का सुझाव दिया था, हालांकि, मैं एक और पैटर्न सुझाऊंगा। मान लें कि आप प्रत्येक CPLD को 32 इनपुट संभालना चाहते हैं। प्रत्येक CPLD को एक साझा घड़ी इनपुट, एक व्यक्ति सक्षम इनपुट, एक सक्षम आउटपुट (जो अगले चिप के सक्षम इनपुट से संबंध रखता है), और एक साझा डेटा आउटपुट दें। प्रत्येक चिप में पांच-बिट काउंटर और एक अतिप्रवाह सूचक होता है। जब सक्षम इनपुट को निष्क्रिय किया जाता है, तो काउंटर और अतिप्रवाह सूचक को साफ़ करें। जब सक्षम इनपुट मुखर होता है, लेकिन अतिप्रवाह संकेतक सेट नहीं होता है, तो काउंटर द्वारा इंगित इनपुट बिट की स्थिति को आउटपुट करें। जब एक घड़ी पल्स प्राप्त होती है और चिप सक्षम होती है और काउंटर ओवरफ्लो नहीं होता है, तो काउंटर को टक्कर दें। अतिप्रवाह बिट "सक्षम" आउटपुट को खिलाएगा। इस सारे तर्क का शुद्ध प्रभाव यह है कि एक व्यक्ति को 32 इनपुटों को संभालने के लिए केवल 8 macrocells की आवश्यकता होती है। इस प्रकार सीपीएलडी अन्य कार्यों के भीतर फिट होने में सक्षम हो सकता है जो अधिक कम्प्यूट-गहन या रजिस्टर-गहन हैं, लेकिन मुझे I / O की अधिक आवश्यकता नहीं है।

यदि किसी के पास पिन-कीपर सर्किट के साथ CPLD है, तो कोई आउटपुट के लिए एक समान दृष्टिकोण का उपयोग करने में सक्षम हो सकता है, खासकर अगर एक मैकक्रेल से कई पिनों में आउटपुट उत्पन्न करने का एक तरीका है (प्रत्येक पिन के लिए एक मैक्रोसेल खर्च किए बिना)। चिप में घड़ी और डेटा इनपुट, एक सक्षम इनपुट और एक सक्षम आउटपुट होगा। आंतरिक रूप से, इसे पांच-बिट काउंटर की आवश्यकता होगी, पहले पांच से विपरीत घड़ी के किनारे पर लगाए गए काउंटर काउंटर बिट की एक अतिरिक्त प्रति, एक अतिप्रवाह बिट और एक साझा डेटा सिग्नल जो सभी पिनों को खिलाएगा। सात मैक्रोल्स, प्लस हालांकि सभी पिनों के इनपुट डेटा सिग्नल की प्रतिलिपि बनाने के लिए कई आवश्यक थे (पिन के लिए आउटपुट-सक्षम नियंत्रण कुंडी-सक्षम के रूप में काम करेगा)।

इस दृष्टिकोण की एक सुंदर विशेषता (जो, btw, एलसीडी ड्राइवरों में अक्सर उपयोग की जाती है) यह है कि किसी के पास समानांतर में डेटा स्थानांतरित करने वाली कई डेटा लाइनें हो सकती हैं और अभी भी केवल चिप्स के बीच एकल डेज़ी-चेन तार की आवश्यकता होती है। यह प्रत्येक इनपुट या आउटपुट से लैचिंग सर्किट को खत्म करने की भी अनुमति देता है।


1

यह कैसे एक विचार के लिए ध्वनि करता है, यह मानते हुए कि पिंस का सबसे बड़ा समूह जो जुड़ा होना चाहिए, उदाहरण के लिए 20 पिन हैं: ओपन-कलेक्टर शिफ्ट-रजिस्टर एलईडी-ड्राइवर चिप्स (प्रति पिन एक आउटपुट) का एक गुच्छा का उपयोग कर सकते हैं, जिनमें से प्रत्येक कम से कम 2mA सिंक; प्रत्येक पिन से एक 1K रोकनेवाला को एक सामान्य बिंदु से कनेक्ट करें, और एक सर्किट का उपयोग करें जो 20.1mA पर एक वोल्ट का स्रोत है (यह ठीक है अगर वोल्टेज कम है, तो वर्तमान कम है, बशर्ते कि यह 20.1mA पर एक वोल्ट है और इंगित करें कि क्या एक प्रयास उस राशि से अधिक आकर्षित करने के लिए बनाया जा रहा है। कुछ केबल कॉन्फ़िगरेशन के लिए, "स्पेयर" पिन की एक छोटी संख्या होना आवश्यक है जिसमें 1K प्रतिरोधक होते हैं, लेकिन केबल से जुड़े नहीं होते हैं। 1K रोकनेवाला, 500 ओम रोकनेवाला (या दो 2K के समानांतर) के साथ एक अतिरिक्त पिन होना वांछनीय हो सकता है, एक 250 ओम अवरोधक (चार 1K) के साथ

केबल का परीक्षण करने के लिए, उन परिदृश्यों को तैयार करें, जिनके परिणामस्वरूप कम से कम बीस पिन खींचे जाने चाहिए, और ऐसे परिदृश्य जिनके परिणामस्वरूप बिल्कुल बीस कम खींचे जाने चाहिए (अतिरिक्त पिन इसके लिए उपयोगी हो सकते हैं) और पुष्टि करें कि बीस-पिन परिदृश्य हैं 20.5mA से अधिक का उपयोग करने की सूचना नहीं है, लेकिन 21-पिन परिदृश्य हैं।

उदाहरण के लिए, मान लीजिए कि किसी के पास एक केबल हार्नेस है जिसे 1-2, 3-4, 5-6, आदि को 39-40 तक जोड़ना है। दस जोड़ी पिन के विभिन्न संयोजनों को उठाकर शॉर्ट्स की जांच करें, और प्रत्येक पिन के दोनों जोड़े को कम ड्राइव करें। आप 20 पिन कम चला रहे होंगे, और कोई पिन कम नहीं होनी चाहिए, सिवाय इसके कि आप ड्राइविंग कर रहे हैं, इसलिए करंट हमेशा 20mA के नीचे होना चाहिए। अगर यह खत्म हो जाता है, तो किसी चीज की कमी है। यदि कोई दस जोड़े के किसी भी संयोजन को पा सकता है जो ओवर-करंट नहीं पढ़ता है, तो एक समय में एक सक्रिय जोड़ी को बंद करें और दूसरी जोड़ी को चालू करें, जब तक कि कुछ चालू न हो जाए; अंतिम जोड़ी चालू हो जाती है, यह कुछ ऐसा नहीं होना चाहिए।

एक अतिरिक्त पिन कम करके ड्राइविंग को खोलता है, और फिर दस जोड़े के विभिन्न संयोजनों को उठाता है, प्रत्येक जोड़ी से एक पिन चला रहा है (कभी-कभी विषम और कभी-कभी एक भी)। यदि कोई खुलता है, तो इस तरह की कार्रवाई से कम से कम 21 पिन कम चालित होंगे, और इस प्रकार अंडर-करेंट पढ़ा जाएगा। यदि ऐसा होता है, तो एक-एक-समय, प्रत्येक जोड़ी को ले जाएं जहां एक तार चालित हो और इसके बजाय दोनों को ड्राइव करें। यदि यह 20.1mA से अधिक वर्तमान पढ़ने को धक्का देता है, तो यह जोड़ी खुली है।

एक इस आवेदन के लिए एक CPLD का उपयोग कर सकता है, लेकिन जैसा कि मैंने बताया कि एक प्रणाली बेहतर हो सकती है। यह वास्तव में वर्तमान को मापने के लिए सर्किटरी को जोड़कर बढ़ाया जा सकता है (बजाय केवल एक ओवर / इंडिकेटर का उत्पादन कर रहा है)। इस तरह के माप से प्रतिरोध के लिए सहिष्णुता मूल्यों को स्थापित करने की अनुमति मिलती है।


1

यह वही है जो आप खोज रहे हैं?

मैक्सवेल 81840 - 128 चैनल मल्टीप्लेक्स


शायद ऩही। यह एक एनालॉग मल्टीप्लेक्स है, हालांकि आप शायद इसके साथ डिजिटल सिग्नल भी मल्टीप्लेक्स कर सकते हैं, यदि आप डिवाइस की गति पर नजर रखते हैं। इसके अलावा यह एक रेड-हार्ड डिवाइस है, महंगा होगा।
स्टीवन्वह

स्वागत हे! स्टीवन सही है, यह उपयुक्त समाधान नहीं हो सकता है, लेकिन अच्छी पकड़ है! हो सकता है कि लिंक नीचे घटक के कुछ विवरण जोड़
clabacchio

धन्यवाद clabacchio। मुझे यकीन नहीं है कि मैं घटक का कितना विस्तृत वर्णन कर सकता हूं। मैंने पहले कभी इसका उपयोग नहीं किया है और न ही मुझे अभी तक पर्याप्त अनुभव है।
डैनियल

स्वीएट चिप :) मैं एक डिजिटल पियानो परियोजना में एक का उपयोग करना चाहता हूं, लेकिन अगर आप सिर्फ googling द्वारा कीमत नहीं पा सकते हैं, तो आप इसे बर्दाश्त नहीं कर सकते हैं!
एंड्रयू वैगनर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.