JTAG क्या है?


30

मैं एम्बेडेड सिस्टम के लिए बहुत नया हूं, और मैं इस शब्द को हर समय इस्तेमाल करते देखता हूं, लेकिन मैं यह नहीं समझ सकता कि यह क्या है। एक त्वरित खोज ऑनलाइन इस विकिपीडिया पृष्ठ को जन्म देती है : https://en.wikipedia.org/wiki/Joint_Test_Action_Group जो इसे डीबगिंग के लिए कुछ प्रकार के प्रोटोकॉल के रूप में वर्णित करते हैं। लेकिन अन्य संदर्भों में इसका उपयोग किया गया जैसे कि यह प्रोग्रामर की तरह चिप की मेमोरी को प्रोग्राम करने में सक्षम है। यह क्या है?


4
इस प्रश्न में कुछ उपयोगी रत्न छिपे हुए हैं ।
डेविड

2
मैंने dwelch a +1 दिया। इसके अतिरिक्त, JTAG को कभी-कभी एक क्रिया अर्थ के रूप में गलत तरीके से उपयोग किया जाता है, उदारता से, "बात करने / परीक्षण करने के लिए"। एक व्यक्ति "JTAG'inging" वास्तव में एक अलग प्रोटोकॉल का उपयोग कर सकता है जिसे डिवाइस के निर्माता ने भौतिक JTAG पिन (यानी SWD) के साथ ओवरलैप किया है। आप SWD या JTAG कर सकते हैं, लेकिन दोनों नहीं। कोई भी SWD ("swoods?") अपने उपकरणों, हालांकि।
जॉन

हाँ, आप JTAG
Snoop

जवाबों:


21

यह USB, SPI, I2C, और अन्य "busses" की तरह है, और इसमें कई लोकप्रिय उपयोग हैं, जो कि सीमित नहीं हैं:

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

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

  • चूंकि चिप्स में पहले से ही इन समर्पित पिन हैं, इसलिए प्रोसेसर के लिए, उसी इंटरफ़ेस का उपयोग चिप डिबगर (OCD) पर बात करने के तरीके के रूप में करते हैं, प्रोसेसर में कुछ डिज़ाइन करते हैं और इसे jtag के माध्यम से बात करने की अनुमति देते हैं।

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

शायद सॉफ्टवेयर डिबगिंग के लिए लोकप्रियता के कारण अब उनके पास माइक्रोकंट्रोलर के लिए पिन काउंट को बचाने के लिए कुछ दो पिन सॉल्यूशंस हैं और शायद अन्य लोग इसे अपनाएंगे, शायद नहीं।


JTAG के तकनीकी पहलू हैं जो इसे इन उपयोगों के लिए उधार देते हैं, या यह सिर्फ ऐतिहासिक कारणों से है?
ओवेन

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

10

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

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


9

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

स्कैन श्रृंखला पर उपकरण आमतौर पर एक बड़े बदलाव रजिस्टर के रूप में जुड़े होते हैं, जिसमें प्रत्येक व्यक्तिगत डिवाइस में रजिस्टर शामिल होते हैं। जब डिवाइस SHIFT_IR या SHIFT_DR स्थिति में होते हैं, तो वे दो अस्थायी रजिस्टरों में से एक स्कैन श्रृंखला से जुड़ते हैं: एक निर्देश रजिस्टर, और एक डेटा रजिस्टर।

मान के शिफ्ट हो जाने के बाद, TCD को टॉगल करते हुए UPMSATE_IR या UPDATE_DR मोड को उचित रूप से TMS सेट करके सक्रिय किया जा सकता है। इस बिंदु पर, मूल्य "प्रभाव लेता है" रजिस्टर में स्थानांतरित हो गया। उदाहरण के लिए, एक FPGA के IR में विभिन्न अनुक्रमों को स्थानांतरित करने और UPDATE_IR में संक्रमण के कारण FPGA को कॉन्फ़िगरेशन, रीडबैक, सामान्य रनटाइम या एक्सेस विशिष्ट उपयोगकर्ता रजिस्टरों और JTAG- विशिष्ट प्राइमेटीविट में विभिन्न मोड में प्रवेश करने का कारण होगा।

इसी तरह, कैप्चर स्टेट्स का उपयोग डिवाइस से एक मान को "पढ़ने" के लिए किया जा सकता है और इसे IR या DR में डाल दिया जा सकता है, जिसे TDO के माध्यम से स्थानांतरित किया जा सकता है और अंततः JTAG प्रोग्रामर द्वारा पढ़ा जा सकता है।


4

JTAG एक जटिल धारावाहिक प्रोटोकॉल और कुछ आदेशों को परिभाषित करता है, ताकि जटिल IC के भीतर आंतरिक रजिस्टरों तक पहुंच की अनुमति दी जा सके। यह एक परीक्षक को कुछ पिनों का उपयोग करके मानक तरीके से अवलोकन और नियंत्रणीयता प्राप्त करने की अनुमति देता है ।

मूल उपयोग 'सीमा स्कैन' के लिए किया गया था, जहां सभी I / O पिन चिप को हल करने वाली एक बड़ी पारी रजिस्टर द्वारा पढ़े और संचालित किए जा सकते हैं। हालाँकि, इसे जल्दी से चिप के इंटर्ल्स तक पहुंचने के लिए और शिफ्ट रजिस्टर जोड़ने के लिए यादों सहित शामिल किया गया।

आप शायद ही कभी बिट-बैंग JTAG, एक्सेस आमतौर पर पुस्तकालयों, उर्फ ​​ड्राइवरों के माध्यम से होते हैं, आईसी निर्माता द्वारा आपूर्ति की जाती है, और परीक्षण प्रणाली और परीक्षण एक्सेस एडाप्टर द्वारा उपयोग किया जाता है।


तो चिप को वास्तव में एक JTAG का समर्थन करने की आवश्यकता है हार्डवेयर और सॉफ्टवेयर दोनों द्वारा?
अनट्रेडे

@UnTraDe नहीं, चिप हार्डवेयर में JTAG का समर्थन करती है और सॉफ़्टवेयर में हो सकती है (उदाहरण के लिए FPGA, JTAG और उपयोगकर्ता डिज़ाइन के बीच कुछ इंटरफेस को उजागर कर सकती है), लेकिन चिप पर सॉफ़्टवेयर का समर्थन होना आवश्यक नहीं है। JTAG पर उपकरणों के साथ बातचीत करने के लिए उपयोग किए जाने वाले उपकरण में सॉफ़्टवेयर और हार्डवेयर समर्थन (कंप्यूटर पर सॉफ़्टवेयर, और उस कंप्यूटर से जुड़े JTAG प्रोग्रामर के संदर्भ में हार्डवेयर) होंगे
Mar--

3

JTAG का अर्थ 'है' और JTAG का अर्थ 'है'। जैसा कि अन्य लोगों ने बताया है कि JTAG 'विनिर्माण परीक्षण के लिए एक उद्योग मानक बस इंटरफ़ेस है, जैसा कि J oint T est A ction G roup है।

एक एम्बेडेड सॉफ़्टवेयर डेवलपर के लिए JTAG का अर्थ 'चिप पर चलने वाले एम्बेडेड सॉफ़्टवेयर के बाहरी डीबग के लिए SoC / माइक्रोप्रोसेसर पर डीबग इंटरफ़ेस है। बाजार में लगभग हर CPU / SoC JTAG इंटरफ़ेस का उपयोग न केवल विनिर्माण परीक्षणों के लिए करता है, बल्कि सॉफ़्टवेयर डिबग समर्थन के लिए भी करता है। आपको सर्वर क्लास x86 सीपीयू से लेकर $ 50 होम वाईफाई राउटर तक हर चीज पर एक JTAG इंटरफ़ेस मिलेगा। सही इंटरफ़ेस हार्डवेयर, और सही सॉफ़्टवेयर के साथ, ये इंटरफेस आपको मेमोरी पढ़ने, लिखने, ब्रेकपॉइंट और सिंगल-स्टेप कोड पढ़ने / लिखने की क्षमता प्रदान करेंगे।

पाठ्यक्रम की कुंजी सही हार्डवेयर और सॉफ्टवेयर हो रही है। भले ही मूल JTAG इंटरफ़ेस मानकीकृत है, एक डिवाइस में उपलब्ध विशिष्ट सॉफ़्टवेयर डिबग सुविधाएं नहीं हो सकती हैं। JTAG टीसीपी / आईपी की तरह है। यह एप्लिकेशन स्टैक के बीच में मौजूद है। आपको उपकरण के साथ संवाद करने के लिए सही भौतिक परत की आवश्यकता होती है (अर्थात आपका क्या मतलब है कि यह चीज़ 10-बेस -2 का उपयोग करती है? -?)?), और आपको इसके ऊपर सही एप्लिकेशन सॉफ़्टवेयर की आवश्यकता है (आपको क्या मतलब है कि मुझे गोफर की आवश्यकता है? ग्राहक?!?!?!)। हालांकि एआरएम पारिस्थितिकी तंत्र की ताकत ने वहां कुछ हद तक मानकीकरण का नेतृत्व किया है (देखें ओपनओसीडी)।

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.