इंटेल 8253: Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|Programmable interval timer IC}} {{Use dmy dates|date=July 2013}} thumb|इंटेल C8253 Image:Intel 8253 and 8...")
 
m (7 revisions imported from alpha:इंटेल_8253)
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Short description|Programmable interval timer IC}}
{{Short description|Programmable interval timer IC}}
{{Use dmy dates|date=July 2013}}


[[Image:Ic-photo-Intel--C8253.JPG|thumb|इंटेल C8253]]
[[Image:Ic-photo-Intel--C8253.JPG|thumb|इंटेल C8253]]
[[Image:Intel 8253 and 8254.svg|thumb|इंटेल 8253 प्रोग्रामयोग्य अंतराल टाइमर। Intel 8254 में समान पिनआउट है।]][[इंटेल]] 8253 और 8254 [[प्रोग्रामयोग्य अंतराल टाइमर]] (पीआईटी) हैं, जो तीन 16-बिट काउंटर का उपयोग करके समय और गिनती कार्य करते हैं।<ref name=i82c54/>
[[Image:Intel 8253 and 8254.svg|thumb|इंटेल 8253 प्रोग्रामेबल अंतराल टाइमर। इंटेल 8254 में समान पिनआउट है।]]'''[[इंटेल]] 8253''' और '''8254''' [[प्रोग्रामयोग्य अंतराल टाइमर|प्रोग्रामेबल अंतराल टाइमर]] (पीआईटी) हैं, जो तीन 16-बिट काउंटर का उपयोग करके समय और गणना फ़ंक्शन निष्पादित करते हैं।<ref name=i82c54/>


825x परिवार मुख्य रूप से [[Intel 8080]]/[[Intel 8085]]-प्रोसेसर के लिए डिज़ाइन किया गया था, लेकिन बाद में x86 संगत सिस्टम में उपयोग किया गया। 825x चिप्स, या एक बड़ी चिप में एम्बेडेड समकक्ष सर्किट, सभी [[आईबीएम पीसी संगत]] और वेक्टर -06 सी जैसे सोवियत कंप्यूटरों में पाए जाते हैं।
825x वर्ग मुख्य रूप से [[Intel 8080|इंटेल 8080]]/[[Intel 8085|इंटेल 8085]]-प्रोसेसर के लिए डिज़ाइन किया गया था, परंतु बाद में x86 संगत सिस्टम में उपयोग किया गया। 825x चिप, या बड़ी चिप में एम्बेडेड समकक्ष सर्किट, सभी [[आईबीएम पीसी संगत]] और वेक्टर -06 सी जैसे सोवियत कंप्यूटरों में पाए जाते हैं।
 
पीसी कंपैटिबल्स में, टाइमर चैनल 0 को [[ व्यवधान अनुरोध (पीसी आर्किटेक्चर) ]] -0 (उच्चतम प्राथमिकता हार्डवेयर इंटरप्ट) को सौंपा गया है। टाइमर चैनल 1 को DRAM रिफ्रेश के लिए असाइन किया गया है (कम से कम 80386 से पहले के शुरुआती मॉडल में)। टाइमर चैनल 2 [[पीसी स्पीकर]] को सौंपा गया है।
 
इंटेल 82c54 ([[सीएमओएस]] लॉजिक के लिए सी) वेरिएंट 10 मेगाहर्ट्ज क्लॉक सिग्नल तक संभालता है।<ref name=i82c54/>


पीसी कंपैटिबल्स में, टाइमर चैनल 0 को [[ व्यवधान अनुरोध (पीसी आर्किटेक्चर) |अंतरायन अनुरोध (पीसी आर्किटेक्चर)]] -0 (उच्चतम प्राथमिकता हार्डवेयर इंटरप्ट) को दिया गया है। टाइमर चैनल 1 को डीरैम रिफ्रेश के लिए असाइन किया गया है (कम से निम्न 80386 से पहले के प्रारम्भिक मॉडल में)। टाइमर चैनल 2 [[पीसी स्पीकर]] को दिया गया है।


इस प्रकार से इंटेल 82c54 ([[सीएमओएस]] लॉजिक के लिए सी) प्रकार 10 मेगाहर्ट्ज कालद सिग्नल तक संभालता है।<ref name=i82c54/>
==इतिहास==
==इतिहास==
8253 का वर्णन 1980 इंटेल कंपोनेंट डेटा कैटलॉग प्रकाशन में किया गया है। 8254, जिसे उच्च क्लॉक स्पीड रेटिंग के साथ 8253 के सुपरसेट के रूप में वर्णित किया गया है, की 1982 इंटेल कंपोनेंट डेटा कैटलॉग में प्रारंभिक डेटा शीट है।
8253 का वर्णन 1980 इंटेल कंपोनेंट डेटा कैटलॉग प्रकाशन में किया गया है। 8254, जिसे उच्च कालद स्पीड रेटिंग के साथ 8253 के सुपरसेट के रूप में वर्णित किया गया है, की 1982 इंटेल कंपोनेंट डेटा कैटलॉग में प्रारंभिक डेटा शीट है।


8254 को एचएमओएस में लागू किया गया है और इसमें रीड बैक कमांड 8253 पर उपलब्ध नहीं है, और एक ही काउंटर को इंटरलीव करने के लिए पढ़ने और लिखने की अनुमति देता है।<ref>{{cite book |author1=Deepali A. Godse |author2=Atul P. Godse |title=उन्नत माइक्रोप्रोसेसर|publisher=Technical Publications |year=2007 |isbn=978-81-89411-33-6 |page=74}}</ref>
8254 को एचएमओएस में लागू किया गया है और इसमें रीड बैक कमांड 8253 पर उपलब्ध नहीं है, और एक ही काउंटर को इंटरलीव करने के लिए पढ़ने और लिखने की अनुमति देता है।<ref>{{cite book |author1=Deepali A. Godse |author2=Atul P. Godse |title=उन्नत माइक्रोप्रोसेसर|publisher=Technical Publications |year=2007 |isbn=978-81-89411-33-6 |page=74}}</ref>
आधुनिक पीसी कंपेटिबल, या तो चिप सीपीयू या [[साउथब्रिज (कंप्यूटिंग)]] पर सिस्टम का उपयोग करते समय आमतौर पर बैकवर्ड संगतता और इंटरऑपरेबिलिटी के लिए पूर्ण 8254 संगतता लागू करते हैं।<ref>http://pdf.datasheetcatalog.com/datasheet/Intel/mXvqwzr.pdf {{Bare URL PDF|date=March 2022}}</ref> रीड बैक कमांड मल्टीकोर सीपीयू और जीपीयू के साथ इंटरऑपरेबिलिटी के लिए एक महत्वपूर्ण I/O सुविधा है।
=== वेरिएंट ===
-55°C से +125°C के तापमान रेंज के साथ Intel M8253 का सैन्य संस्करण है, जिसमें ±10% 5V पावर सहनशीलता भी है।<ref>Intel Corporation, "Focus Components: Military Intelligence: Timers, EPROMs, Leadless Chip Carriers", Solutions, March/April 1983, Page 12.</ref> उपलब्ध 82C53 CMOS संस्करण को ओकी इलेक्ट्रिक इंडस्ट्री|ओकी इलेक्ट्रॉनिक इंडस्ट्री कंपनी लिमिटेड को आउटसोर्स किया गया था।<ref>Intel Corporation, "NewsBit: Intel Licenses Oki on CMOS Version of Several Products", Solutions, July/August 1984, Page 1.</ref> Intel 82C54 का उपलब्ध पैकेज संस्करण 1986 की पहली तिमाही में सैंपलिंग के 28-पिन चिप_कैरियर#प्लास्टिक-लीडेड_चिप_कैरियर में था।<ref>Ashborn, Jim; "Advanced Packaging: A Little Goes A Long Way", Intel Corporation, Solutions, January/February 1986, Page 2</ref>


आधुनिक पीसी कंपेटिबल, या तो चिप सीपीयू या [[साउथब्रिज (कंप्यूटिंग)]] पर सिस्टम का उपयोग करते समय सामान्यतः बैकवर्ड संगतता और अंतरप्रचालनीयता के लिए पूर्ण 8254 संगतता लागू करते हैं।<ref>http://pdf.datasheetcatalog.com/datasheet/Intel/mXvqwzr.pdf {{Bare URL PDF|date=March 2022}}</ref> रीड बैक कमांड मल्टीकोर सीपीयू और जीपीयू के साथ अंतरप्रचालनीयता के लिए महत्वपूर्ण आई/ओ सुविधा है।


=== प्रकार ===
इस प्रकार से -55°C से +125°C के तापमान श्रेणी के साथ इंटेल M8253 का सैन्य संस्करण है, जिसमें ±10% 5V सामर्थ्य सहनशीलता भी है।<ref>Intel Corporation, "Focus Components: Military Intelligence: Timers, EPROMs, Leadless Chip Carriers", Solutions, March/April 1983, Page 12.</ref> उपलब्ध 82C53 CMOS संस्करण को ओकी इलेक्ट्रिक इंडस्ट्री कंपनी लिमिटेड को आउटसोर्स किया गया था।<ref>Intel Corporation, "NewsBit: Intel Licenses Oki on CMOS Version of Several Products", Solutions, July/August 1984, Page 1.</ref> इंटेल 82C54 का उपलब्ध पैकेज संस्करण 1986 की प्रथम तिमाही में सैंपलिंग के 28-पिन चिप कैरियर में था।<ref>Ashborn, Jim; "Advanced Packaging: A Little Goes A Long Way", Intel Corporation, Solutions, January/February 1986, Page 2</ref>
== विशेषताएँ ==
== विशेषताएँ ==
[[Image:Intel 8253 block diagram.svg|thumb|का ब्लॉक आरेख {{nowrap|Intel 8253}}]]टाइमर में तीन काउंटर हैं, जिनकी संख्या 0 से 2 है।<ref name="Intel 8254">{{cite web |title=8254/82C54: Introduction to Programmable Interval Timer |url=http://www.intel.com:80/design/archives/periphrl/docs/7203.htm |publisher=Intel Corporation |archive-url=https://web.archive.org/web/20161122073424/http://www.intel.com:80/design/archives/periphrl/docs/7203.htm |accessdate=21 August 2011|archive-date=22 November 2016 }}</ref> प्रत्येक चैनल को छह मोड में से एक में संचालित करने के लिए प्रोग्राम किया जा सकता है। एक बार प्रोग्राम हो जाने पर, चैनल स्वतंत्र रूप से काम करते हैं।<ref name=i82c54>{{cite web |archive-url=https://web.archive.org/web/20150603122044/http://download.intel.com/design/archives/periphrl/docs/23124406.pdf |archive-date=3 June 2015 |url=http://download.intel.com/design/archives/periphrl/docs/23124406.pdf |url-status=dead |title=Intel 82C54 CHMOS Programmabe Interval Timer |type=datasheet |access-date=26 November 2012 }}</ref>
[[Image:Intel 8253 block diagram.svg|thumb|{{nowrap|Intel 8253}} का ब्लॉक आरेख ]]टाइमर में तीन काउंटर हैं, जिनकी संख्या 0 से 2 है।<ref name="Intel 8254">{{cite web |title=8254/82C54: Introduction to Programmable Interval Timer |url=http://www.intel.com:80/design/archives/periphrl/docs/7203.htm |publisher=Intel Corporation |archive-url=https://web.archive.org/web/20161122073424/http://www.intel.com:80/design/archives/periphrl/docs/7203.htm |accessdate=21 August 2011|archive-date=22 November 2016 }}</ref> प्रत्येक चैनल को छह मोड में से में संचालित करने के लिए प्रोग्राम किया जा सकता है। एक बार प्रोग्राम हो जाने पर, चैनल स्वतंत्र रूप से कार्य करते हैं।<ref name=i82c54>{{cite web |archive-url=https://web.archive.org/web/20150603122044/http://download.intel.com/design/archives/periphrl/docs/23124406.pdf |archive-date=3 June 2015 |url=http://download.intel.com/design/archives/periphrl/docs/23124406.pdf |url-status=dead |title=Intel 82C54 CHMOS Programmabe Interval Timer |type=datasheet |access-date=26 November 2012 }}</ref>
प्रत्येक काउंटर में दो इनपुट पिन होते हैं - सीएलके ([[ घड़ी ]] इनपुट) और गेट - और डेटा आउटपुट के लिए एक पिन, आउट। तीन काउंटर एक-दूसरे से स्वतंत्र 16-बिट डाउन काउंटर हैं, और इन्हें केंद्रीय प्रसंस्करण इकाई द्वारा आसानी से पढ़ा जा सकता है।<ref>{{cite web |title=MSM 82c53 Datasheet |url=http://www.sharpmz.org/download/8253.pdf}}</ref>
प्रत्येक काउंटर में दो इनपुट पिन होते हैं - "CLK" ([[ घड़ी |कालद]] इनपुट) और "GATE" - और डेटा आउटपुट के लिए पिन, "OUT"। तीन काउंटर एक-दूसरे से स्वतंत्र 16-बिट डाउन काउंटर हैं, और इन्हें केंद्रीय प्रसंस्करण इकाई द्वारा सरलता से पढ़ा जा सकता है।<ref>{{cite web |title=MSM 82c53 Datasheet |url=http://www.sharpmz.org/download/8253.pdf}}</ref>
* डेटा बस बफ़र में माइक्रोप्रोसेसर और आंतरिक रजिस्टरों के बीच डेटा बस को बफ़र करने का तर्क होता है। इसमें 8 इनपुट पिन हैं, जिन्हें आमतौर पर D7..D0 के रूप में लेबल किया जाता है, जहां D7 [[सबसे महत्वपूर्ण बिट]] है।
* डेटा बस बफ़र में माइक्रोप्रोसेसर और आंतरिक रजिस्टरों के बीच डेटा बस को बफ़र करने का तर्क होता है। इसमें 8 इनपुट पिन हैं, जिन्हें सामान्यतः D7..D0 के रूप में लेबल किया जाता है, जहां D7 [[सबसे महत्वपूर्ण बिट]] है।
* रीड/राइट लॉजिक में 5 पिन होते हैं, जो नीचे सूचीबद्ध हैं।{{overline|X}} दर्शाता है कि X एक सक्रिय निम्न सिग्नल है।
* रीड/राइट लॉजिक में 5 पिन होते हैं, जो निम्न सूचीबद्ध हैं। {{overline|X}} दर्शाता है कि X एक सक्रिय निम्न सिग्नल है।
** {{overline|RD}}: संकेत पढ़ें
** {{overline|RD}}: रीड सिग्नल
** {{overline|WR}}: संकेत लिखें
** {{overline|WR}}: राइट सिग्नल
** {{overline|CS}}: चिप चयन सिग्नल
** {{overline|CS}}: चिप सिलेक्ट सिग्नल
** A0, A1: [[पता पंक्ति]]याँ
** A0, A1: [[पता पंक्ति|एड्रैस लाइन]]


उपरोक्त हार्डवेयर सिग्नल सेट करके पीआईटी का ऑपरेशन मोड बदल दिया जाता है। उदाहरण के लिए, कंट्रोल वर्ड रजिस्टर पर लिखने के लिए, किसी को सेट करना होगा {{overline|CS}}=0, {{overline|RD}}=1, {{overline|WR}}=0, ए1=ए0=1.
इस प्रकार से उपरोक्त हार्डवेयर सिग्नल सेट करके पीआईटी का ऑपरेशन मोड बदल दिया जाता है। उदाहरण के लिए, कंट्रोल वर्ड रजिस्टर पर लिखने के लिए, किसी को {{overline|CS}}=0, {{overline|RD}}=1, {{overline|WR}}=0, A1=A0=1 सेट करना होगा।


* कंट्रोल वर्ड रजिस्टर में प्रोग्राम की गई जानकारी होती है जिसे ([[माइक्रोप्रोसेसर]] द्वारा) डिवाइस पर भेजा जाएगा। यह परिभाषित करता है कि पीआईटी का प्रत्येक चैनल तार्किक रूप से कैसे काम करता है। इन बंदरगाहों तक प्रत्येक पहुंच में लगभग 1 µs का समय लगता है।
* कंट्रोल वर्ड रजिस्टर में प्रोग्राम की गई सूचना होती है जिसे ([[माइक्रोप्रोसेसर]] द्वारा) डिवाइस पर भेजा जाएगा। यह परिभाषित करता है कि पीआईटी का प्रत्येक चैनल तार्किक रूप से कैसे कार्य करता है। इन पोर्ट तक प्रत्येक पहुंच में लगभग 1 µs का समय लगता है।


काउंटरों को आरंभ करने के लिए, माइक्रोप्रोसेसर को इस रजिस्टर में एक नियंत्रण शब्द (सीडब्ल्यू) लिखना होगा। यह रीड/राइट लॉजिक ब्लॉक के पिन के लिए उचित मान सेट करके और फिर डेटा/बस बफर ब्लॉक में नियंत्रण शब्द भेजकर किया जा सकता है।
काउंटरों को आरंभ करने के लिए, माइक्रोप्रोसेसर को इस रजिस्टर में नियंत्रण शब्द (सीडब्ल्यू) लिखना होगा। यह रीड/राइट लॉजिक ब्लॉक के पिन के लिए उचित मान सेट करके और फिर डेटा/बस बफर ब्लॉक में नियंत्रण शब्द भेजकर किया जा सकता है।


नियंत्रण शब्द रजिस्टर में 8 बिट्स हैं, जिन्हें D7..D0 लेबल किया गया है (D7 सबसे महत्वपूर्ण बिट है)। डिकोडिंग कुछ जटिल है. अधिकांश मान तीन काउंटरों में से एक के लिए पैरामीटर सेट करते हैं:
नियंत्रण शब्द रजिस्टर में 8 बिट्स हैं, जिन्हें D7..D0 लेबल किया गया है (D7 सबसे महत्वपूर्ण बिट है)। डिकोडिंग कुछ जटिल है। इस प्रकार से अधिकांश मान तीन काउंटरों में से एक के लिए पैरामीटर सेट करते हैं:
* सबसे महत्वपूर्ण दो बिट्स (यदि 11 नहीं) उस काउंटर रजिस्टर का चयन करें जिस पर कमांड लागू होता है।
* सबसे महत्वपूर्ण दो बिट्स (यदि 11 नहीं) उस काउंटर रजिस्टर का चयन करें जिस पर कमांड लागू होता है।
* अगले दो बिट्स (यदि 00 नहीं हैं) उस प्रारूप का चयन करें जिसका उपयोग काउंटर रजिस्टर में बाद में पढ़ने/लिखने की पहुंच के लिए किया जाएगा। इसे आमतौर पर एक ऐसे मोड पर सेट किया जाता है जहां एक्सेस सबसे कम-महत्वपूर्ण और सबसे-महत्वपूर्ण बाइट्स के बीच वैकल्पिक होता है। 8253 और 8254 के बीच एक अंतर यह है कि पहले वाले में एक आंतरिक बिट था जो पढ़ने और लिखने दोनों को प्रभावित करता था, इसलिए यदि प्रारूप 2-बाइट पर सेट किया गया था, तो lsbyte को पढ़ने से निम्नलिखित लेखन को msbyte पर निर्देशित किया जाएगा। 8254 में पढ़ने और लिखने के लिए अलग-अलग बिट्स का उपयोग किया गया।
* अग्रिम दो बिट्स (यदि 00 नहीं हैं) उस फॉर्मैट का चयन करें जिसका उपयोग काउंटर रजिस्टर में बाद में पढ़ने/लिखने की एक्सेस के लिए किया जाएगा। इसे सामान्यतः ऐसे मोड पर सेट किया जाता है जहां एक्सेस सबसे कम-महत्वपूर्ण और सबसे-महत्वपूर्ण बाइट्स के बीच वैकल्पिक होता है। 8253 और 8254 के बीच अंतर यह है कि पहले वाले में आंतरिक बिट था जो पढ़ने और लिखने दोनों को प्रभावित करता था, इसलिए यदि फॉर्मैट 2-बाइट पर सेट किया गया था, तो lsbyte को पढ़ने से निम्नलिखित लेखन को msbyte पर निर्देशित किया जाएगा। 8254 में पढ़ने और लिखने के लिए अलग-अलग बिट्स का उपयोग किया गया।
* अगले तीन बिट्स उस मोड का चयन करें जिसमें काउंटर काम करेगा।
* अग्रिम तीन बिट्स उस मोड का चयन करें जिसमें काउंटर कार्य करेगा।
* सबसे कम महत्वपूर्ण बिट यह चुनता है कि काउंटर बाइनरी या [[बाइनरी-कोडित दशमलव]] में काम करेगा या नहीं। (बीसीडी गिनती लगभग कभी भी उपयोग नहीं की जाती है और इसे एमुलेटर या साउथब्रिज में ठीक से लागू नहीं किया जा सकता है।)
* सबसे निम्न महत्वपूर्ण बिट यह चयनित है कि काउंटर बाइनरी या [[बाइनरी-कोडित दशमलव]] में कार्य करेगा या नहीं। (बीसीडी गणना लगभग कभी भी उपयोग नहीं की जाती है और इसे एमुलेटर या साउथब्रिज में ठीक से लागू नहीं किया जा सकता है।)


हालाँकि, दो अन्य रूप भी हैं:
यद्यपि, दो अन्य रूप भी हैं:
* किसी दिए गए टाइमर के लिए गिनती को लॉक करें। अगला रीड, रीड के समय काउंटर वैल्यू लौटाने के बजाय, लैच कमांड के पल में काउंटर वैल्यू लौटाएगा। रीड पूरा होने के बाद, बाद में पढ़ा गया वर्तमान काउंटर लौटा देगा। जब लैच कमांड का उपयोग किया जाता है, तो मोड और बीसीडी स्थिति नहीं बदली जाती है।
* किसी दिए गए टाइमर के लिए गणना को लॉक करें। अग्रिम रीड, रीड के समय काउंटर वैल्यू लौटाने के अतिरिक्त, लैच कमांड के समय में काउंटर वैल्यू लौटाएगा। रीड पूर्ण होने के पश्चात, बाद में पढ़ा गया वर्तमान काउंटर लौटा देगा। जब लैच कमांड का उपयोग किया जाता है, तो मोड और बीसीडी स्थिति नहीं बदली जाती है।
* (केवल 8254) एकाधिक टाइमर के लिए स्थिति को लॉक करें और/या गिनती करें। यह बिटमैप का उपयोग करके एक साथ कई लैच कमांड की अनुमति देता है। साथ ही, वर्तमान चैनल कॉन्फ़िगरेशन को गिनती के अतिरिक्त वापस पढ़ा जा सकता है।
* (मात्र 8254) एकाधिक टाइमर के लिए स्थिति को लॉक करें और/या गणना करें। यह बिटमैप का उपयोग करके साथ कई लैच कमांड की अनुमति देता है। साथ ही, वर्तमान चैनल कॉन्फ़िगरेशन को गणना के अतिरिक्त वापस पढ़ा जा सकता है।


{| class="wikitable" style="text-align: center;"
{| class="wikitable" style="text-align: center;"
|+ 8253/8254 control word
|+ 8253/8254 कंट्रोल वर्ड
|-
|-
!colspan=8| Bit #/Name
!colspan=8| बिट #/नाम
!rowspan=2| Short Description
!rowspan=2| संक्षिप्त वर्णन
|-
|-
! D7<br />SC1
! D7<br />SC1
Line 68: Line 64:
|colspan=3| mode
|colspan=3| mode
|align=center| BCD
|align=center| BCD
|align=left| Set mode of Counter 0  
|align=left| काउंटर 0 का मोड सेट करें
|-
|-
| 0
| 0
Line 75: Line 71:
|colspan=3| mode
|colspan=3| mode
|align=center| BCD
|align=center| BCD
|align=left| Set mode of Counter 1  
|align=left| काउंटर 1 का मोड सेट करें
|-
|-
| 1
| 1
Line 82: Line 78:
|colspan=3| mode
|colspan=3| mode
| BCD
| BCD
|align=left| Set mode of Counter 2 (at port 42h)
|align=left| काउंटर 2 का मोड सेट करें (पोर्ट 42 घंटे पर)
|-
|-
| 1
| 1
Line 92: Line 88:
| C0
| C0
|bgcolor=lightgrey| x
|bgcolor=lightgrey| x
|align=left| Read-back command (8254 only)
|align=left| रीड-बैक कमांड (मात्र 8254)
|-
|-
|colspan=9|  
|colspan=9|  
Line 100: Line 96:
| 0
| 0
|colspan=4 bgcolor=lightgrey| &mdash; x &mdash;
|colspan=4 bgcolor=lightgrey| &mdash; x &mdash;
|align=left| Latch counter value.  Next read of counter will read snapshot of value.
|align=left| कुंडी काउंटर वैल्यू। काउंटर का अग्रिम टेक्स्ट वैल्यू का स्नैपशॉट पढ़ेगा।
|-
|-
|colspan=2|counter
|colspan=2|counter
Line 107: Line 103:
|colspan=3| mode
|colspan=3| mode
| BCD
| BCD
|align=left| Read/Write low byte of counter value only
|align=left| केवल काउंटर वैल्यू की निम्न बाइट पढ़ें/लिखें
|-
|-
|colspan=2|counter
|colspan=2|counter
Line 114: Line 110:
|colspan=3| mode
|colspan=3| mode
| BCD
| BCD
|align=left| Read/Write high byte of counter value only
|align=left| केवल काउंटर वैल्यू की उच्च बाइट पढ़ें/लिखें
|-
|-
|colspan=2|counter
|colspan=2|counter
Line 121: Line 117:
|colspan=3| mode
|colspan=3| mode
| BCD
| BCD
|align=left| 2×Read/2xWrite low byte then high byte of counter value
|align=left| 2×पढ़ें/2xकम बाइट लिखें फिर काउंटर वैल्यू का उच्च बाइट
|-
|-
|colspan=9|  
|colspan=9|  
Line 131: Line 127:
| 0
| 0
| BCD
| BCD
|align=left| Mode 0: Interrupt on Terminal Count
|align=left| मोड 0: टर्मिनल काउंट पर व्यवधान
|-
|-
|colspan=2| counter
|colspan=2| counter
Line 139: Line 135:
| 1
| 1
| BCD
| BCD
|align=left| Mode 1: Hardware Retriggerable One-Shot
|align=left| मोड 1: हार्डवेयर रिट्रिगरेबल एक-शॉट
|-
|-
|colspan=2| counter
|colspan=2| counter
Line 147: Line 143:
| 0
| 0
| BCD
| BCD
|align=left| Mode 2: Rate Generator
|align=left| मोड 2: रेट जेनरेटर
|-
|-
|colspan=2| counter
|colspan=2| counter
Line 155: Line 151:
| 1
| 1
| BCD
| BCD
|align=left| Mode 3: Square Wave
|align=left| मोड 3: स्क्वायर वेव
|-
|-
|colspan=2| counter
|colspan=2| counter
Line 163: Line 159:
| 0
| 0
| BCD
| BCD
|align=left| Mode 4: Software Triggered Strobe
|align=left| मोड 4: सॉफ्टवेयर ट्रिगर स्ट्रोब
|-
|-
|colspan=2| counter
|colspan=2| counter
Line 171: Line 167:
| 1
| 1
| BCD
| BCD
|align=left| Mode 5: Hardware Triggered Strobe (Retriggerable)
|align=left| मोड 5: हार्डवेयर ट्रिगर स्ट्रोब (रिट्रिगरेबल)
|-
|-
|colspan=9|
|colspan=9|
Line 179: Line 175:
|colspan=3| mode
|colspan=3| mode
| 0
| 0
|align=left| Counter is a 16-bit binary counter (0–65535)
|align=left| काउंटर एक 16-बिट बाइनरी काउंटर है (0-65535)
|-
|-
|colspan=2| counter
|colspan=2| counter
Line 185: Line 181:
|colspan=3| mode
|colspan=3| mode
| 1
| 1
|align=left| Counter is a 4-digit [[binary-coded decimal]] counter (0–9999)
|align=left| काउंटर एक 4-अंकीय [[binary-coded decimal|बाइनरी-कोडेड दशमलव]] काउंटर है (0-9999)
|-
|-
|colspan=9|
|colspan=9|
Line 197: Line 193:
! C0
! C0
!bgcolor=lightgrey| x
!bgcolor=lightgrey| x
! Read-back command (8254 only)
! रीड-बैक कमांड (केवल 8254)
|-
|-
| 1
| 1
Line 207: Line 203:
| C0
| C0
|bgcolor=lightgrey| x
|bgcolor=lightgrey| x
|align=left| Next read of selected counters will read back latched status, then count
|align=left| चयनित काउंटरों की अगली रीडिंग बैक लैच स्थिति को पढ़ेगी, फिर गणना करेगी
|-
|-
| 1
| 1
Line 217: Line 213:
| C0
| C0
|bgcolor=lightgrey| x
|bgcolor=lightgrey| x
|align=left| Next read of selected counters will read back latched count
|align=left| चयनित काउंटरों का अगला रीड बैक लैच्ड काउंट पढ़ेगा
|-
|-
| 1
| 1
Line 227: Line 223:
| C0
| C0
|bgcolor=lightgrey| x
|bgcolor=lightgrey| x
|align=left| Next read of selected counters will read back latched status
|align=left| चयनित काउंटरों की अगली रीडिंग बैक लैच स्थिति को पढ़ेगी
|-
|-
| 1
| 1
Line 237: Line 233:
| C0
| C0
|bgcolor=lightgrey| x
|bgcolor=lightgrey| x
|align=left| Do nothing (latch nothing on any or all counters)
|align=left| कुछ भी न करें (किसी भी या सभी काउंटरों पर कुछ भी न लगाएं)
|-
|-
| 1
| 1
Line 247: Line 243:
| 0
| 0
|bgcolor=lightgrey| x
|bgcolor=lightgrey| x
|align=left| Do nothing (latch count and/or status on no counters)
|align=left| कुछ न करें (कुंडी की गणना और/या बिना किसी काउंटर पर स्थिति)
|-
|-
| 1
| 1
Line 257: Line 253:
| C0
| C0
|bgcolor=lightgrey| x
|bgcolor=lightgrey| x
|align=left| Read-back command applies to counter 2
|align=left| रीड-बैक कमांड काउंटर 2 पर लागू होता है
|-
|-
| 1
| 1
Line 267: Line 263:
| C0
| C0
|bgcolor=lightgrey| x
|bgcolor=lightgrey| x
|align=left| Read-back command applies to counter 1
|align=left| रीड-बैक कमांड काउंटर 1 पर लागू होता है
|-
|-
| 1
| 1
Line 277: Line 273:
| 1
| 1
|bgcolor=lightgrey| x
|bgcolor=lightgrey| x
|align=left| Read-back command applies to counter 0
|align=left| रीड-बैक कमांड काउंटर 0 पर लागू होता है
|}
|}
पीआईटी सेट करते समय, माइक्रोप्रोसेसर पहले एक नियंत्रण संदेश भेजता है, फिर पीआईटी को एक गिनती संदेश भेजता है। गिनती की प्रक्रिया पीआईटी को ये संदेश प्राप्त होने के बाद शुरू होगी, और, कुछ मामलों में, अगर यह गेट इनपुट [[संकेत किनारा]] बढ़ते सिग्नल किनारे का पता लगाता है।
पीआईटी सेट करते समय, माइक्रोप्रोसेसर पहले नियंत्रण संदेश भेजता है, फिर पीआईटी को गणना संदेश भेजता है। गणना की प्रक्रिया पीआईटी को ये संदेश प्राप्त होने के पश्चात प्रारंभ होगी, और, कुछ स्थितियों में, यदि यह "GATE" इनपुट [[संकेत किनारा|संकेत एज]] बढ़ते सिग्नल एज को ज्ञात करता है। स्थिति बाइट फॉर्मैट। बिट 7 सॉफ़्टवेयर को OUT पिन की वर्तमान स्थिति की निरीक्षण करने की अनुमति देता है। बिट 6 इंगित करता है कि गणना कब पढ़ी जा सकती है; जब यह बिट 1 होता है, तो गणना अवयव अभी तक लोड नहीं हुआ है और प्रोसेसर द्वारा वापस पढ़ा नहीं जा सकता है। इस प्रकार से बिट्स 5 से 0 नियंत्रण रजिस्टर में लिखे गए अंतिम बिट्स के समान हैं।
स्थिति बाइट प्रारूप. बिट 7 सॉफ़्टवेयर को OUT पिन की वर्तमान स्थिति की निगरानी करने की अनुमति देता है। बिट 6 इंगित करता है कि गिनती कब पढ़ी जा सकती है; जब यह बिट 1 होता है, तो गिनती तत्व अभी तक लोड नहीं हुआ है और प्रोसेसर द्वारा वापस पढ़ा नहीं जा सकता है। बिट्स 5 से 0 नियंत्रण रजिस्टर में लिखे गए अंतिम बिट्स के समान हैं।
   {| class="wikitable" style="text-align: center;"
   {| class="wikitable" style="text-align: center;"
|+ 8254 status word
|+ 8254 स्टैटस वर्ड
|-
|-
!colspan=8| Bit #/Name
!colspan=8| Bit #/Name
!rowspan=2| Short Description
!rowspan=2| संक्षिप्त वर्णन
|-
|-
! D7<br />Output<br />Status
! D7<br />Output<br />Status
Line 298: Line 293:
| 0
| 0
|colspan=7|
|colspan=7|
|align=left| Out pin is 0
|align=left| आउट पिन 0 है
|-
|-
| 1
| 1
|colspan=7|
|colspan=7|
|align=left| Out pin is 1
|align=left| आउट पिन 1 है
|-
|-
|
|
| 0
| 0
|colspan=6|
|colspan=6|
|align=left| Counter can be read
|align=left| काउंटर पढ़ा जा सकता है
|-
|-
|
|
| 1
| 1
|colspan=6|
|colspan=6|
|align=left| The counter is being set
|align=left| काउंटर लगाया जा रहा है
|-
|-
|colspan=2|
|colspan=2|
Line 318: Line 313:
|colspan=3| mode
|colspan=3| mode
| BCD
| BCD
|align=left| Counter mode bits, as defined for the control word register
|align=left| काउंटर मोड बिट्स, जैसा कि नियंत्रण शब्द रजिस्टर के लिए परिभाषित किया गया है
|}
|}


== ऑपरेशन मोड ==
== ऑपरेशन मोड ==
नियंत्रण शब्द के D3, D2 और D1 बिट्स टाइमर के ऑपरेटिंग मोड को सेट करते हैं। कुल मिलाकर 6 मोड हैं; मोड 2 और 3 के लिए, डी3 बिट को नजरअंदाज कर दिया जाता है, इसलिए गायब मोड 6 और 7 मोड 2 और 3 के लिए उपनाम हैं।
नियंत्रण शब्द के D3, D2 और D1 बिट्स टाइमर के ऑपरेटिंग मोड को सेट करते हैं। कुल मिलाकर 6 मोड हैं; मोड 2 और 3 के लिए, डी3 बिट को अनदेखा कर दिया जाता है, इसलिए लुप्त मोड 6 और 7 मोड 2 और 3 के लिए उपनाम हैं।


सभी मोड GATE इनपुट के प्रति संवेदनशील हैं, GATE उच्च के कारण सामान्य ऑपरेशन होता है, लेकिन GATE कम का प्रभाव मोड पर निर्भर करता है:
इस प्रकार से सभी मोड GATE इनपुट के प्रति संवेदनशील हैं, GATE उच्च के कारण सामान्य ऑपरेशन होता है, परंतु GATE निम्न का प्रभाव मोड पर निर्भर करता है:
* मोड 0 और 4: GATE कम होने पर गिनती निलंबित कर दी जाती है, और GATE अधिक होने पर गिनती फिर से शुरू हो जाती है।
* मोड 0 और 4: GATE निम्न होने पर गणना निलंबित कर दी जाती है, और GATE अधिक होने पर गणना पुनः प्रारंभ हो जाती है।
* मोड 1 और 5: GATE के बढ़ते किनारे की गिनती शुरू होती है। गिनती को प्रभावित किए बिना GATE नीचे जा सकता है, लेकिन एक और बढ़ती बढ़त शुरुआत से ही गिनती को फिर से शुरू कर देगी।
* मोड 1 और 5: GATE के बढ़ते एज की गणना प्रारंभ होती है। गणना को प्रभावित किए बिना GATE निम्न जा सकता है, परंतु और बढ़ती बढ़त प्रारंभ से ही गणना को पुनः प्रारंभ कर देगी।
* मोड 2 और 3: गेट लो फोर्स को तुरंत हाई आउट करें (क्लॉक पल्स की प्रतीक्षा किए बिना) और काउंटर को रीसेट करता है (अगली क्लॉक गिरने वाले किनारे पर)। जब GATE फिर से ऊपर चला जाता है, तो गिनती फिर से शुरू हो जाती है।
* मोड 2 और 3: "GATE" निम्न बल को तुरंत हाई आउट करें (कालद पल्स की प्रतीक्षा किए बिना) और काउंटर को रीसेट करता है (अगली कालद गिरने वाले एज पर)। जब GATE पुनः ऊपर चला जाता है, तो गणना पुनः प्रारंभ हो जाती है।


=== मोड 0 (000): टर्मिनल गिनती पर व्यवधान ===
=== मोड 0 (000): टर्मिनल गणना पर अंतरायन ===
मोड 0 का उपयोग सॉफ्टवेयर नियंत्रण के तहत सटीक समय विलंब उत्पन्न करने के लिए किया जाता है। इस मोड में, काउंटर इसमें लोड किए गए प्रारंभिक COUNT मान से 0 तक गिनती शुरू कर देगा। गिनती दर इनपुट घड़ी आवृत्ति के बराबर है।
इस प्रकार से मोड 0 का उपयोग सॉफ्टवेयर नियंत्रण के अंतर्गत यथार्थ समय विलंब उत्पन्न करने के लिए किया जाता है। इस मोड में, काउंटर इसमें लोड किए गए प्रारंभिक COUNT मान से 0 तक गणना प्रारंभ कर देगा। गणना दर इनपुट कालद आवृत्ति के बराबर है।


कंट्रोल वर्ड लिखे जाने के बाद OUT पिन को कम सेट किया जाता है, और COUNT प्रोग्राम होने के बाद गिनती एक घड़ी चक्र शुरू होती है। काउंटर 0 तक पहुंचने तक OUT कम रहता है, जिस बिंदु पर OUT को तब तक उच्च सेट किया जाएगा जब तक कि काउंटर पुनः लोड न हो जाए या नियंत्रण शब्द न लिखा जाए। काउंटर चारों ओर से लपेटता है <code>0xFFFF</code> आंतरिक रूप से और गिनती जारी रहती है, लेकिन OUT पिन फिर कभी नहीं बदलता है। सामान्य गणना के लिए गेट सिग्नल को उच्च स्तर पर सक्रिय रहना चाहिए। यदि गेट नीचे चला जाता है, तो गिनती रोक दी जाती है, और फिर से ऊपर जाने पर गिनती फिर से शुरू हो जाती है।
कंट्रोल वर्ड लिखे जाने के पश्चात OUT पिन को निम्न रूप से सेट किया जाता है, और COUNT प्रोग्राम होने के पश्चात गणना कालद चक्र प्रारंभ होता है। काउंटर 0 तक पहुंचने तक OUT निम्न रहता है, जिस बिंदु पर OUT को तब तक उच्च सेट किया जाएगा जब तक कि काउंटर पुनः लोड न हो जाए या नियंत्रण शब्द न लिखा जाए। काउंटर आंतरिक रूप से <code>0xFFFF</code> पर लपेटता है और गणना जारी रखता है, परंतु OUT पिन फिर कभी नहीं बदलता है। सामान्य गणना के लिए "GATE" सिग्नल को उच्च स्तर पर सक्रिय रहना चाहिए। यदि "GATE" निम्न चला जाता है, तो गणना रोक दी जाती है, और पुनः ऊपर जाने पर गणना पुनः प्रारंभ हो जाती है।


नई गिनती की पहली बाइट गिनती रजिस्टर में लोड होने पर पिछली गिनती को रोक देती है।
नवीन गणना की पहली बाइट गणना रजिस्टर में लोड होने पर पूर्व गणना को रोक देती है।


=== मोड 1 (001): प्रोग्रामयोग्य एक शॉट ===
=== मोड 1 (001): प्रोग्रामेबल शॉट ===
इस मोड में 8253 का उपयोग [[मोनोस्टेबल मल्टीवाइब्रेटर]] के रूप में किया जा सकता है। GATE इनपुट का उपयोग ट्रिगर इनपुट के रूप में किया जाता है।
इस मोड में 8253 का उपयोग [[मोनोस्टेबल मल्टीवाइब्रेटर]] के रूप में किया जा सकता है। इस प्रकार से GATE इनपुट का उपयोग ट्रिगर इनपुट के रूप में किया जाता है।


प्रारंभ में OUT उच्च होगा। एक-शॉट पल्स शुरू करने के लिए ट्रिगर के बाद क्लॉक पल्स पर OUT कम हो जाएगा, और जब तक काउंटर शून्य तक नहीं पहुंच जाता तब तक कम रहेगा। फिर OUT उच्च स्तर पर जाएगा और अगले ट्रिगर के बाद CLK पल्स तक उच्च बना रहेगा।
प्रारंभ में OUT उच्च होगा। एक-शॉट पल्स प्रारंभ करने के लिए ट्रिगर के पश्चात कालद पल्स पर OUT निम्न हो जाएगा, और जब तक काउंटर शून्य तक नहीं पहुंच जाता तब तक निम्न रहेगा। फिर OUT उच्च स्तर पर जाएगा और अग्रिम ट्रिगर के पश्चात CLK पल्स तक उच्च बना रहेगा।


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


वन-शॉट पुनः ट्रिगर करने योग्य है, इसलिए किसी भी ट्रिगर के बाद एन सीएलके पल्स के लिए आउट कम रहेगा। एक-शॉट पल्स को काउंटर में समान गिनती दोबारा लिखे बिना दोहराया जा सकता है। GATE का OUT पर कोई प्रभाव नहीं पड़ता. यदि ऑनशॉट पल्स के दौरान काउंटर पर एक नई गिनती लिखी जाती है, तो वर्तमान वन-शॉट प्रभावित नहीं होता है जब तक कि काउंटर को फिर से चालू न किया जाए। उस स्थिति में, काउंटर को नई गिनती के साथ लोड किया जाता है और नई गिनती समाप्त होने तक वनशॉट पल्स जारी रहता है।
इस प्रकार से एक-शॉट पुनः ट्रिगर करने योग्य है, इसलिए किसी भी ट्रिगर के पश्चात N "CLK" पल्स के लिए आउट निम्न रहेगा। एक-शॉट पल्स को काउंटर में समान गणना दोबारा लिखे बिना दोहराया जा सकता है। GATE का OUT पर कोई प्रभाव नहीं पड़ता। यदि ऑनशॉट पल्स के समय काउंटर पर नवीन गणना लिखी जाती है, तो वर्तमान एक-शॉट प्रभावित नहीं होता है जब तक कि काउंटर को पुनः प्रारंभ न किया जाए। उस स्थिति में, काउंटर को नवीन गणना के साथ लोड किया जाता है और नवीन गणना समाप्त होने तक वनशॉट पल्स जारी रहता है।


=== मोड 2 (X10): दर जनरेटर ===
=== मोड 2 (X10): दर जनरेटर ===
इस मोड में, डिवाइस डिवाइड-बाय-एन काउंटर के रूप में कार्य करता है, जिसका उपयोग आमतौर पर वास्तविक समय घड़ी व्यवधान उत्पन्न करने के लिए किया जाता है।
इस मोड में, डिवाइस डिवाइड-बाय-n काउंटर के रूप में कार्य करता है, जिसका उपयोग सामान्यतः वास्तविक समय कालद अंतरायन उत्पन्न करने के लिए किया जाता है।


अन्य तरीकों की तरह, COUNT भेजे जाने के बाद गिनती प्रक्रिया अगला घड़ी चक्र शुरू कर देगी। तब तक OUT ऊंचा रहेगा जब तक काउंटर 1 तक नहीं पहुंच जाता, और एक क्लॉक पल्स के लिए कम हो जाएगा। अगले चक्र में, गिनती पुनः लोड की जाती है, OUT फिर से उच्च हो जाता है, और पूरी प्रक्रिया खुद को दोहराती है।
अन्य विधियों के जैसे, COUNT भेजे जाने के पश्चात गणना प्रक्रिया अग्रिम कालद चक्र प्रारंभ कर देगी। तब तक OUT ऊंचा रहेगा जब तक काउंटर 1 तक नहीं पहुंच जाता, और कालद पल्स के लिए निम्न हो जाएगा। अग्रिम चक्र में, गणना पुनः लोड की जाती है, OUT पुनः उच्च हो जाता है, और पूर्ण प्रक्रिया स्वयं को दोहराती है।


उच्च दालों के बीच का समय काउंटर के रजिस्टर में पूर्व निर्धारित गिनती पर निर्भर करता है, और निम्न सूत्र का उपयोग करके गणना की जाती है:
उच्च पल्स के बीच का समय काउंटर के रजिस्टर में पूर्व निर्धारित गणना पर निर्भर करता है, और निम्न सूत्र का उपयोग करके गणना की जाती है:


काउंटर में लोड किया जाने वाला मान = <math>f_{\rm input}\over f_{\rm output}</math>
काउंटर में लोड किया जाने वाला मान = <math>f_{\rm input}\over f_{\rm output}</math>
ध्यान दें कि COUNT रजिस्टर में मानों की सीमा होती है <math>n</math> से 1; रजिस्टर कभी भी शून्य तक नहीं पहुंचता.
 
इस प्रकार से ध्यान दें कि COUNT रजिस्टर में मान <math>n</math> से 1 तक होते हैं; रजिस्टर कभी भी शून्य तक नहीं पहुंचता।


=== मोड 3 (X11): वर्ग तरंग जनरेटर ===
=== मोड 3 (X11): वर्ग तरंग जनरेटर ===
यह मोड मोड 2 के समान है। हालाँकि, आउटपुट की उच्च और निम्न क्लॉक पल्स की अवधि मोड 2 से भिन्न होगी।
यह मोड मोड 2 के समान है। यद्यपि, आउटपुट की उच्च और निम्न कालद पल्स की अवधि मोड 2 से भिन्न होगी।


कल्पना करना <math>n</math> काउंटर में लोड की गई संख्या (COUNT संदेश) है, तो आउटपुट अधिक होगा <math>\left\lceil{n\over2}\right\rceil</math> मायने रखता है, और इसके लिए कम है <math>\left\lfloor{n\over2}\right\rfloor</math> मायने रखता है. इस प्रकार, अवधि होगी <math>n</math> मायने रखता है, और यदि <math>n</math> अजीब है, अतिरिक्त आधा चक्र OUT उच्च के साथ व्यतीत होता है।
मान लीजिए कि <math>n</math> काउंटर (COUNT संदेश) में लोड की गई संख्या है, आउटपुट <math>\left\lceil{n\over2}\right\rceil</math> गणनाओं के लिए उच्च होगा, और <math>\left\lfloor{n\over2}\right\rfloor</math> गणनाओं के लिए कम होगा। इस प्रकार, अवधि <math>n</math> गणना होगी, और यदि <math>n</math> विषम है, तो अतिरिक्त अर्ध चक्र OUT उच्च के साथ व्यतीत किया जाता है।


=== मोड 4 (100): सॉफ्टवेयर ट्रिगर स्ट्रोब ===
=== मोड 4 (100): सॉफ्टवेयर ट्रिगर स्ट्रोब ===
कंट्रोल वर्ड और COUNT लोड होने के बाद, काउंटर शून्य तक पहुंचने तक आउटपुट उच्च रहेगा। फिर काउंटर 1 घड़ी चक्र (एक स्ट्रोब) के लिए कम पल्स उत्पन्न करेगा - उसके बाद आउटपुट फिर से उच्च हो जाएगा।
कंट्रोल वर्ड और COUNT लोड होने के पश्चात, काउंटर शून्य तक पहुंचने तक आउटपुट उच्च रहेगा। फिर काउंटर 1 कालद चक्र (एक स्ट्रोब) के लिए निम्न पल्स उत्पन्न करेगा - उसके पश्चात आउटपुट पुनः उच्च हो जाएगा।


GATE निम्न गिनती को निलंबित कर देता है, जो GATE के दोबारा उच्च होने पर फिर से शुरू हो जाती है।
GATE निम्न गणना को निलंबित कर देता है, जो GATE के दोबारा उच्च होने पर पुनः प्रारंभ हो जाती है।


=== मोड 5 (101): हार्डवेयर ट्रिगर स्ट्रोब ===
=== मोड 5 (101): हार्डवेयर ट्रिगर स्ट्रोब ===
यह मोड मोड 4 के समान है। हालाँकि, गिनती प्रक्रिया GATE इनपुट द्वारा ट्रिगर होती है।
इस प्रकार से यह मोड मोड 4 के समान है। यद्यपि, गणना प्रक्रिया GATE इनपुट द्वारा ट्रिगर होती है।


कंट्रोल वर्ड और COUNT प्राप्त करने के बाद, आउटपुट हाई सेट कर दिया जाएगा। एक बार जब डिवाइस GATE इनपुट पर बढ़ते किनारे का पता लगा लेता है, तो यह गिनती शुरू कर देगा। जब काउंटर 0 पर पहुंचता है, तो आउटपुट एक घड़ी चक्र के लिए कम हो जाएगा - उसके बाद यह GATE के अगले बढ़ते किनारे पर चक्र को दोहराने के लिए फिर से उच्च हो जाएगा।
कंट्रोल वर्ड और COUNT प्राप्त करने के पश्चात, आउटपुट हाई सेट कर दिया जाएगा। बार जब डिवाइस GATE इनपुट पर बढ़ते एज को ज्ञात कर लेता है, तो यह गणना प्रारंभ कर देगा। जब काउंटर 0 पर पहुंचता है, तो आउटपुट कालद चक्र के लिए निम्न हो जाएगा - उसके पश्चात यह GATE के अग्रिम बढ़ते एज पर चक्र को दोहराने के लिए पुनः उच्च हो जाएगा।


== आईबीएम पीसी प्रोग्रामिंग ==
== आईबीएम पीसी प्रोग्रामिंग ==


8253 का उपयोग 1981 में उनकी शुरूआत के बाद से आईबीएम पीसी संगतों में किया गया था।<ref>{{cite web |url=http://www.microsoft.com/whdc/system/sysinternals/mm-timer.mspx |title=मल्टीमीडिया टाइमर समर्थन प्रदान करने के लिए दिशानिर्देश|website=[[Microsoft]] |date=20 September 2002 |accessdate=2010-10-13}}</ref> आधुनिक समय में, इस PIT को x[[86]] PC में एक अलग चिप के रूप में शामिल नहीं किया गया है। बल्कि, इसकी कार्यक्षमता मदरबोर्ड चिपसेट के साउथब्रिज (कंप्यूटिंग) के हिस्से के रूप में शामिल है। आधुनिक चिपसेट में, यह परिवर्तन x86 I/O एड्रेस स्पेस में PIT के रजिस्टरों तक काफ़ी तेज़ पहुंच के रूप में दिखाई दे सकता है।
8253 का उपयोग 1981 में उनकी प्रारंभ के पश्चात से आईबीएम पीसी संगतों में किया गया था।<ref>{{cite web |url=http://www.microsoft.com/whdc/system/sysinternals/mm-timer.mspx |title=मल्टीमीडिया टाइमर समर्थन प्रदान करने के लिए दिशानिर्देश|website=[[Microsoft]] |date=20 September 2002 |accessdate=2010-10-13}}</ref> आधुनिक समय में, इस पीआईटी को x[[86]] PC में अलग चिप के रूप में सम्मिलित नहीं किया गया है। यद्यपि, इसकी कार्यक्षमता मदरबोर्ड चिपसेट के साउथब्रिज (कंप्यूटिंग) के भाग के रूप में सम्मिलित है। आधुनिक चिपसेट में, यह परिवर्तन x86 आई/एड्रेस स्पेस में पीआईटी के रजिस्टरों तक अत्यधिक तीव्र एक्सेस के रूप में दिखाई दे सकता है।
 
सभी पीसी संगत पीआईटी को 105/88 = 1.193 की क्लॉक दर पर संचालित करते हैं{{overline|18}} मेगाहर्ट्ज, {{frac|3}} [[एनटीएससी]] [[ रंग-विस्फोट ]] फ्रीक्वेंसी जो सिस्टम क्लॉक (14.31818 मेगाहर्ट्ज) को 12 से विभाजित करने से आती है। यह सबसे पहले [[ रंग ग्राफ़िक्स एडाप्टर ]] पीसी का होल्डओवर है - उन्होंने एक ही [[क्रिस्टल थरथरानवाला]] से सभी आवश्यक आवृत्तियों को प्राप्त किया, और टीवी आउटपुट को संभव बनाने के लिए, इस ऑसिलेटर को एनटीएससी रंग सबकैरियर आवृत्ति के गुणक पर चलाना था। यह आवृत्ति, 2 से विभाजित है<sup>16</sup> (सबसे बड़ा विभाजक जो 8253 सक्षम है) [[MS-DOS]] और संबंधित ऑपरेटिंग सिस्टम में उपयोग किए जाने वाले ≈18.2 Hz टाइमर इंटरप्ट का उत्पादन करता है।


मूल आईबीएम पीसी में, काउंटर 0 का उपयोग टाइमकीपिंग व्यवधान उत्पन्न करने के लिए किया जाता है। काउंटर 1 का उपयोग [[DRAM]] मेमोरी के रिफ्रेश को ट्रिगर करने के लिए किया जाता है। काउंटर 2 का उपयोग पीसी स्पीकर के माध्यम से टोन उत्पन्न करने के लिए किया जाता है।
सभी पीसी संगत पीआईटी को 105/88 = 1.193{{overline|18}} मेगाहर्ट्ज की कालद दर पर संचालित करते हैं, {{frac|3}} [[एनटीएससी]] [[ रंग-विस्फोट |वर्ण-विस्फोट]] आवृत्ति जो सिस्टम कालद (14.31818 मेगाहर्ट्ज) को 12 से विभाजित करने से आती है। यह सर्वप्रथम वर्ण [[ रंग ग्राफ़िक्स एडाप्टर |ग्राफ़िक्स एडाप्टर]] पीसी का होल्डओवर है - उन्होंने ही [[क्रिस्टल थरथरानवाला|क्रिस्टल दोलित्र]] से सभी आवश्यक आवृत्तियों को प्राप्त किया, और टीवी आउटपुट को संभव बनाने के लिए, इस दोलित्र को एनटीएससी वर्ण सबकैरियर आवृत्ति के गुणक पर चलाना था। यह आवृत्ति, 2<sup>16</sup> से विभाजित (सबसे बड़ा विभाजक जो 8253 सक्षम है) [[MS-DOS|एमएस-डॉस]] और संबंधित ऑपरेटिंग सिस्टम में उपयोग किए जाने वाले ≈18.2 Hz टाइमर इंटरप्ट का उत्पादन करती है।


नए मदरबोर्ड में [[उन्नत कॉन्फ़िगरेशन और पावर इंटरफ़ेस]] (एसीपीआई) के माध्यम से अतिरिक्त काउंटर, स्थानीय उन्नत प्रोग्रामयोग्य इंटरप्ट कंट्रोलर पर एक काउंटर और एक [[उच्च परिशुद्धता इवेंट टाइमर]] शामिल हैं। [[ CPU ]] ही [[टाइम स्टाम्प काउंटर]] की सुविधा भी प्रदान करता है।
इस प्रकार से मूल आईबीएम पीसी में, काउंटर 0 का उपयोग टाइमकीपिंग अंतरायन उत्पन्न करने के लिए किया जाता है। काउंटर 1 का उपयोग [[DRAM|डीरैम]] मेमोरी के रिफ्रेश को ट्रिगर करने के लिए किया जाता है। काउंटर 2 का उपयोग पीसी स्पीकर के माध्यम से टोन उत्पन्न करने के लिए किया जाता है।


पीसी पर टाइमर0 (चिप) का पता पोर्ट 40h..43h पर है और दूसरे टाइमर1 (चिप) का पता 50h..53h पर है।
नवीन मदरबोर्ड में [[उन्नत कॉन्फ़िगरेशन और पावर इंटरफ़ेस|उन्नत कॉन्फ़िगरेशन और सामर्थ्य इंटरफ़ेस]] (एसीपीआई) के माध्यम से अतिरिक्त काउंटर, स्थानीय उन्नत प्रोग्रामेबल इंटरप्ट कंट्रोलर पर काउंटर और [[उच्च परिशुद्धता इवेंट टाइमर]] सम्मिलित हैं। [[ CPU |CPU]] ही [[टाइम स्टाम्प काउंटर]] की सुविधा भी प्रदान करता है।


x86 पीसी पर, कई वीडियो कार्ड BIOS और सिस्टम BIOS अपने स्वयं के उपयोग के लिए दूसरे काउंटर को पुन: प्रोग्राम करेंगे। रीप्रोग्रामिंग आम तौर पर वीडियो मोड में बदलाव के दौरान होती है, जब वीडियो BIOS निष्पादित किया जा सकता है, और सिस्टम प्रबंधन मोड और पावर सेविंग स्थिति में परिवर्तन के दौरान, जब सिस्टम BIOS निष्पादित किया जा सकता है। यह कई x86 सिस्टमों पर टाइमर के दूसरे काउंटर के किसी भी गंभीर वैकल्पिक उपयोग को रोकता है।
पीसी पर टाइमर0 (चिप) का एड्रैस पोर्ट 40h..43h पर है और दूसरे टाइमर1 (चिप) का एड्रैस 50h..53h पर है।


जैसा कि ऊपर कहा गया है, चैनल 0 को एक काउंटर के रूप में लागू किया गया है। आमतौर पर, काउंटर का प्रारंभिक मान कंट्रोल को बाइट्स भेजकर सेट किया जाता है, फिर डेटा I/O पोर्ट रजिस्टर करता है (36h का मान पोर्ट 43h पर भेजा जाता है, फिर कम बाइट पोर्ट 40h पर भेजा जाता है, और उच्च बाइट के लिए फिर से पोर्ट 40h भेजा जाता है) . काउंटर शून्य तक गिनती करता है, फिर सीपीयू को एक [[ हार्डवेयर व्यवधान ]] (आईआरक्यू 0, आईएनटी 8) भेजता है। फिर काउंटर अपने प्रारंभिक मूल्य पर रीसेट हो जाता है और फिर से उलटी गिनती शुरू कर देता है। सबसे तेज़ संभव व्यवधान आवृत्ति मेगाहर्ट्ज़ के आधे से थोड़ा अधिक है। सबसे धीमी संभावित आवृत्ति, जो आमतौर पर MS-DOS या संगत ऑपरेटिंग सिस्टम चलाने वाले कंप्यूटरों द्वारा उपयोग की जाती है, लगभग 18.2 Hz है। इन वास्तविक मोड ऑपरेटिंग सिस्टम के तहत, BIOS वास्तविक मोड पते 0040:006c में प्राप्त होने वाली INT 8 कॉल की संख्या जमा करता है, जिसे एक प्रोग्राम द्वारा पढ़ा जा सकता है।
x86 पीसी पर, कई वीडियो कार्ड बायोस और सिस्टम बायोस अपने स्वयं के उपयोग के लिए दूसरे काउंटर को पुन: प्रोग्राम करेंगे। रीप्रोग्रामिंग सामान्यतः वीडियो मोड में एक बदलाव के समय होती है, जब वीडियो बायोस निष्पादित किया जा सकता है, और सिस्टम प्रबंधन मोड और सामर्थ्य सेविंग स्थिति में परिवर्तन के समय, जब सिस्टम बायोस निष्पादित किया जा सकता है। यह कई x86 सिस्टमों पर टाइमर के दूसरे काउंटर के किसी भी गंभीर वैकल्पिक उपयोग को रोकता है।


जैसे ही एक टाइमर उलटी गिनती करता है, इसके मूल्य को सीधे इसके I/O पोर्ट को दो बार पढ़कर भी पढ़ा जा सकता है, पहले कम बाइट के लिए, और फिर उच्च बाइट के लिए। हालाँकि, फ्री-रनिंग काउंटर एप्लिकेशन जैसे कि x86 पीसी में, पहले नियंत्रण रजिस्टर में वांछित चैनल के लिए एक [[ कुंडी (इलेक्ट्रॉनिक्स) ]] कमांड लिखना आवश्यक है, ताकि पढ़े गए दोनों बाइट्स एक ही मान के हों।
जैसा कि ऊपर कहा गया है, चैनल 0 को काउंटर के रूप में लागू किया गया है। सामान्यतः, काउंटर का प्रारंभिक मान कंट्रोल को बाइट्स भेजकर सेट किया जाता है, फिर डेटा आई/पोर्ट रजिस्टर करता है (36h का मान पोर्ट 43h पर भेजा जाता है, फिर निम्न बाइट पोर्ट 40h पर भेजा जाता है, और उच्च बाइट के लिए पुनः पोर्ट 40h भेजा जाता है)। काउंटर शून्य तक गणना करता है, फिर सीपीयू को [[ हार्डवेयर व्यवधान |हार्डवेयर अंतरायन]] (आईआरक्यू 0, आईएनटी 8) भेजता है। फिर काउंटर अपने प्रारंभिक वैल्यू पर रीसेट हो जाता है और पुनः व्युत्क्रम गणना प्रारंभ कर देता है। सबसे तीव्र संभव अंतरायन आवृत्ति मेगाहर्ट्ज़ के आधे से थोड़ा अधिक है। सबसे मंद संभावित आवृत्ति, जो सामान्यतः एमएस-डॉस या संगत ऑपरेटिंग सिस्टम चलाने वाले कंप्यूटरों द्वारा उपयोग की जाती है, लगभग 18.2 Hz है। इन वास्तविक मोड ऑपरेटिंग सिस्टम के अंतर्गत, बायोस वास्तविक मोड एड्रैस 0040:006c में प्राप्त होने वाली INT 8 कॉल की संख्या एकत्रित करता है, जिसे प्रोग्राम द्वारा पढ़ा जा सकता है।
 
2002 के माइक्रोसॉफ्ट दस्तावेज़ के अनुसार, क्योंकि इस हार्डवेयर [8254] को पढ़ने और लिखने के लिए एक आईओ पोर्ट के माध्यम से संचार की आवश्यकता होती है, प्रोग्रामिंग में कई चक्र लगते हैं, जो ओएस के लिए अत्यधिक महंगा है। इस वजह से, व्यवहार में एपेरियोडिक कार्यक्षमता का उपयोग नहीं किया जाता है।<ref>[http://msdn.microsoft.com/en-us/library/windows/hardware/gg463347.aspx Guidelines For Providing Multimedia Timer Support]</ref>


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


इस प्रकार से 2002 के माइक्रोसॉफ्ट डॉक्यूमेंट के अनुसार, क्योंकि इस हार्डवेयर [8254] को पढ़ने और लिखने के लिए आईओ पोर्ट के माध्यम से संचार की आवश्यकता होती है, प्रोग्रामिंग में कई चक्र लगते हैं, जो ओएस के लिए अत्यधिक मानित है। इस कारण से, व्यवहार में एपेरियोडिक कार्यक्षमता का उपयोग नहीं किया जाता है।<ref>[http://msdn.microsoft.com/en-us/library/windows/hardware/gg463347.aspx Guidelines For Providing Multimedia Timer Support]</ref>
== यह भी देखें ==
== यह भी देखें ==
* [[LAPIC]] एक प्रोग्रामयोग्य टाइमर प्रदान करता है
* [[LAPIC|लैपिक]] प्रोग्रामेबल टाइमर प्रदान करता है
*[[एचपीईटी]]
*[[एचपीईटी]]


== संदर्भ ==
== संदर्भ ==
{{Reflist}}
{{Reflist}}
== अग्रिम पठन ==
== अग्रिम पठन ==
*{{cite book |last1=Gilluwe |first1=Frank Van |title=The Undocumented PC: A Programmer's Guide to I/O, CPUs, and Fixed Memory Areas |date=1997 |publisher=Addison-Wesley |isbn=978-0-201-47950-8 |edition=second, illustrated|url=https://books.google.com/books?id=WEiJQgAACAAJ}}
*{{cite book |last1=Gilluwe |first1=Frank Van |title=The Undocumented PC: A Programmer's Guide to I/O, CPUs, and Fixed Memory Areas |date=1997 |publisher=Addison-Wesley |isbn=978-0-201-47950-8 |edition=second, illustrated|url=https://books.google.com/books?id=WEiJQgAACAAJ}}
== बाहरी संबंध ==
== बाहरी संबंध ==
* [http://bochs.sourceforge.net/techspec/intel-82c54-timer.pdf.gz 82C54 Datasheet]
* [http://bochs.sourceforge.net/techspec/intel-82c54-timer.pdf.gz 82C54 Datasheet]
* [http://www.sharpmz.org/mz-700/8253ovview.htm Overview of the Intel 8253 PIT chip] {{Webarchive|url=https://web.archive.org/web/20110929182916/http://www.sharpmz.org/mz-700/8253ovview.htm |date=29 September 2011 }}
* [http://www.sharpmz.org/mz-700/8253ovview.htm Overview of the इंटेल 8253 पीआईटी chip] {{Webarchive|url=https://web.archive.org/web/20110929182916/http://www.sharpmz.org/mz-700/8253ovview.htm |date=29 September 2011 }}
* [http://www.sharpmz.org/mz-700/memio.htm Intel 8253 complete datasheets] {{Webarchive|url=https://web.archive.org/web/20120220012258/http://www.sharpmz.org/mz-700/memio.htm |date=20 February 2012 }}
* [http://www.sharpmz.org/mz-700/memio.htm इंटेल 8253 complete datasheets] {{Webarchive|url=https://web.archive.org/web/20120220012258/http://www.sharpmz.org/mz-700/memio.htm |date=20 February 2012 }}
* [https://web.archive.org/web/20160617133551/http://www.intel.com:80/design/archives/periphrl/docs/7178.htm 8254/82C54 Programmable Interval Timer FAQ]
* [https://web.archive.org/web/20160617133551/http://www.intel.com:80/design/archives/periphrl/docs/7178.htm 8254/82C54 Programmable Interval Timer FAQ]
* [http://wiki.osdev.org/Programmable_Interval_Timer Programmable Interval Timer - OSDev Wiki]
* [http://wiki.osdev.org/Programmable_Interval_Timer Programmable Interval Timer - OSDev Wiki]
Line 417: Line 406:
[[Category: Machine Translated Page]]
[[Category: Machine Translated Page]]
[[Category:Created On 04/12/2023]]
[[Category:Created On 04/12/2023]]
[[Category:Vigyan Ready]]

Latest revision as of 13:52, 14 December 2023

इंटेल C8253
इंटेल 8253 प्रोग्रामेबल अंतराल टाइमर। इंटेल 8254 में समान पिनआउट है।

इंटेल 8253 और 8254 प्रोग्रामेबल अंतराल टाइमर (पीआईटी) हैं, जो तीन 16-बिट काउंटर का उपयोग करके समय और गणना फ़ंक्शन निष्पादित करते हैं।[1]

825x वर्ग मुख्य रूप से इंटेल 8080/इंटेल 8085-प्रोसेसर के लिए डिज़ाइन किया गया था, परंतु बाद में x86 संगत सिस्टम में उपयोग किया गया। 825x चिप, या बड़ी चिप में एम्बेडेड समकक्ष सर्किट, सभी आईबीएम पीसी संगत और वेक्टर -06 सी जैसे सोवियत कंप्यूटरों में पाए जाते हैं।

पीसी कंपैटिबल्स में, टाइमर चैनल 0 को अंतरायन अनुरोध (पीसी आर्किटेक्चर) -0 (उच्चतम प्राथमिकता हार्डवेयर इंटरप्ट) को दिया गया है। टाइमर चैनल 1 को डीरैम रिफ्रेश के लिए असाइन किया गया है (कम से निम्न 80386 से पहले के प्रारम्भिक मॉडल में)। टाइमर चैनल 2 पीसी स्पीकर को दिया गया है।

इस प्रकार से इंटेल 82c54 (सीएमओएस लॉजिक के लिए सी) प्रकार 10 मेगाहर्ट्ज कालद सिग्नल तक संभालता है।[1]

इतिहास

8253 का वर्णन 1980 इंटेल कंपोनेंट डेटा कैटलॉग प्रकाशन में किया गया है। 8254, जिसे उच्च कालद स्पीड रेटिंग के साथ 8253 के सुपरसेट के रूप में वर्णित किया गया है, की 1982 इंटेल कंपोनेंट डेटा कैटलॉग में प्रारंभिक डेटा शीट है।

8254 को एचएमओएस में लागू किया गया है और इसमें रीड बैक कमांड 8253 पर उपलब्ध नहीं है, और एक ही काउंटर को इंटरलीव करने के लिए पढ़ने और लिखने की अनुमति देता है।[2]

आधुनिक पीसी कंपेटिबल, या तो चिप सीपीयू या साउथब्रिज (कंप्यूटिंग) पर सिस्टम का उपयोग करते समय सामान्यतः बैकवर्ड संगतता और अंतरप्रचालनीयता के लिए पूर्ण 8254 संगतता लागू करते हैं।[3] रीड बैक कमांड मल्टीकोर सीपीयू और जीपीयू के साथ अंतरप्रचालनीयता के लिए महत्वपूर्ण आई/ओ सुविधा है।

प्रकार

इस प्रकार से -55°C से +125°C के तापमान श्रेणी के साथ इंटेल M8253 का सैन्य संस्करण है, जिसमें ±10% 5V सामर्थ्य सहनशीलता भी है।[4] उपलब्ध 82C53 CMOS संस्करण को ओकी इलेक्ट्रिक इंडस्ट्री कंपनी लिमिटेड को आउटसोर्स किया गया था।[5] इंटेल 82C54 का उपलब्ध पैकेज संस्करण 1986 की प्रथम तिमाही में सैंपलिंग के 28-पिन चिप कैरियर में था।[6]

विशेषताएँ

Intel 8253 का ब्लॉक आरेख

टाइमर में तीन काउंटर हैं, जिनकी संख्या 0 से 2 है।[7] प्रत्येक चैनल को छह मोड में से में संचालित करने के लिए प्रोग्राम किया जा सकता है। एक बार प्रोग्राम हो जाने पर, चैनल स्वतंत्र रूप से कार्य करते हैं।[1]

प्रत्येक काउंटर में दो इनपुट पिन होते हैं - "CLK" (कालद इनपुट) और "GATE" - और डेटा आउटपुट के लिए पिन, "OUT"। तीन काउंटर एक-दूसरे से स्वतंत्र 16-बिट डाउन काउंटर हैं, और इन्हें केंद्रीय प्रसंस्करण इकाई द्वारा सरलता से पढ़ा जा सकता है।[8]

  • डेटा बस बफ़र में माइक्रोप्रोसेसर और आंतरिक रजिस्टरों के बीच डेटा बस को बफ़र करने का तर्क होता है। इसमें 8 इनपुट पिन हैं, जिन्हें सामान्यतः D7..D0 के रूप में लेबल किया जाता है, जहां D7 सबसे महत्वपूर्ण बिट है।
  • रीड/राइट लॉजिक में 5 पिन होते हैं, जो निम्न सूचीबद्ध हैं। X दर्शाता है कि X एक सक्रिय निम्न सिग्नल है।
    • RD: रीड सिग्नल
    • WR: राइट सिग्नल
    • CS: चिप सिलेक्ट सिग्नल
    • A0, A1: एड्रैस लाइन

इस प्रकार से उपरोक्त हार्डवेयर सिग्नल सेट करके पीआईटी का ऑपरेशन मोड बदल दिया जाता है। उदाहरण के लिए, कंट्रोल वर्ड रजिस्टर पर लिखने के लिए, किसी को CS=0, RD=1, WR=0, A1=A0=1 सेट करना होगा।

  • कंट्रोल वर्ड रजिस्टर में प्रोग्राम की गई सूचना होती है जिसे (माइक्रोप्रोसेसर द्वारा) डिवाइस पर भेजा जाएगा। यह परिभाषित करता है कि पीआईटी का प्रत्येक चैनल तार्किक रूप से कैसे कार्य करता है। इन पोर्ट तक प्रत्येक पहुंच में लगभग 1 µs का समय लगता है।

काउंटरों को आरंभ करने के लिए, माइक्रोप्रोसेसर को इस रजिस्टर में नियंत्रण शब्द (सीडब्ल्यू) लिखना होगा। यह रीड/राइट लॉजिक ब्लॉक के पिन के लिए उचित मान सेट करके और फिर डेटा/बस बफर ब्लॉक में नियंत्रण शब्द भेजकर किया जा सकता है।

नियंत्रण शब्द रजिस्टर में 8 बिट्स हैं, जिन्हें D7..D0 लेबल किया गया है (D7 सबसे महत्वपूर्ण बिट है)। डिकोडिंग कुछ जटिल है। इस प्रकार से अधिकांश मान तीन काउंटरों में से एक के लिए पैरामीटर सेट करते हैं:

  • सबसे महत्वपूर्ण दो बिट्स (यदि 11 नहीं) उस काउंटर रजिस्टर का चयन करें जिस पर कमांड लागू होता है।
  • अग्रिम दो बिट्स (यदि 00 नहीं हैं) उस फॉर्मैट का चयन करें जिसका उपयोग काउंटर रजिस्टर में बाद में पढ़ने/लिखने की एक्सेस के लिए किया जाएगा। इसे सामान्यतः ऐसे मोड पर सेट किया जाता है जहां एक्सेस सबसे कम-महत्वपूर्ण और सबसे-महत्वपूर्ण बाइट्स के बीच वैकल्पिक होता है। 8253 और 8254 के बीच अंतर यह है कि पहले वाले में आंतरिक बिट था जो पढ़ने और लिखने दोनों को प्रभावित करता था, इसलिए यदि फॉर्मैट 2-बाइट पर सेट किया गया था, तो lsbyte को पढ़ने से निम्नलिखित लेखन को msbyte पर निर्देशित किया जाएगा। 8254 में पढ़ने और लिखने के लिए अलग-अलग बिट्स का उपयोग किया गया।
  • अग्रिम तीन बिट्स उस मोड का चयन करें जिसमें काउंटर कार्य करेगा।
  • सबसे निम्न महत्वपूर्ण बिट यह चयनित है कि काउंटर बाइनरी या बाइनरी-कोडित दशमलव में कार्य करेगा या नहीं। (बीसीडी गणना लगभग कभी भी उपयोग नहीं की जाती है और इसे एमुलेटर या साउथब्रिज में ठीक से लागू नहीं किया जा सकता है।)

यद्यपि, दो अन्य रूप भी हैं:

  • किसी दिए गए टाइमर के लिए गणना को लॉक करें। अग्रिम रीड, रीड के समय काउंटर वैल्यू लौटाने के अतिरिक्त, लैच कमांड के समय में काउंटर वैल्यू लौटाएगा। रीड पूर्ण होने के पश्चात, बाद में पढ़ा गया वर्तमान काउंटर लौटा देगा। जब लैच कमांड का उपयोग किया जाता है, तो मोड और बीसीडी स्थिति नहीं बदली जाती है।
  • (मात्र 8254) एकाधिक टाइमर के लिए स्थिति को लॉक करें और/या गणना करें। यह बिटमैप का उपयोग करके साथ कई लैच कमांड की अनुमति देता है। साथ ही, वर्तमान चैनल कॉन्फ़िगरेशन को गणना के अतिरिक्त वापस पढ़ा जा सकता है।
8253/8254 कंट्रोल वर्ड
बिट #/नाम संक्षिप्त वर्णन
D7
SC1
D6
SC2
D5
RW1
D4
RW0
D3
M2
D2
M1
D1
M0
D0
BCD
0 0 format mode BCD काउंटर 0 का मोड सेट करें
0 1 format mode BCD काउंटर 1 का मोड सेट करें
1 0 format mode BCD काउंटर 2 का मोड सेट करें (पोर्ट 42 घंटे पर)
1 1 count status C2 C1 C0 x रीड-बैक कमांड (मात्र 8254)
counter 0 0 — x — कुंडी काउंटर वैल्यू। काउंटर का अग्रिम टेक्स्ट वैल्यू का स्नैपशॉट पढ़ेगा।
counter 0 1 mode BCD केवल काउंटर वैल्यू की निम्न बाइट पढ़ें/लिखें
counter 1 0 mode BCD केवल काउंटर वैल्यू की उच्च बाइट पढ़ें/लिखें
counter 1 1 mode BCD 2×पढ़ें/2xकम बाइट लिखें फिर काउंटर वैल्यू का उच्च बाइट
counter format 0 0 0 BCD मोड 0: टर्मिनल काउंट पर व्यवधान
counter format 0 0 1 BCD मोड 1: हार्डवेयर रिट्रिगरेबल एक-शॉट
counter format x 1 0 BCD मोड 2: रेट जेनरेटर
counter format x 1 1 BCD मोड 3: स्क्वायर वेव
counter format 1 0 0 BCD मोड 4: सॉफ्टवेयर ट्रिगर स्ट्रोब
counter format 1 0 1 BCD मोड 5: हार्डवेयर ट्रिगर स्ट्रोब (रिट्रिगरेबल)
counter format mode 0 काउंटर एक 16-बिट बाइनरी काउंटर है (0-65535)
counter format mode 1 काउंटर एक 4-अंकीय बाइनरी-कोडेड दशमलव काउंटर है (0-9999)
1 1 count status C2 C1 C0 x रीड-बैक कमांड (केवल 8254)
1 1 0 0 C2 C1 C0 x चयनित काउंटरों की अगली रीडिंग बैक लैच स्थिति को पढ़ेगी, फिर गणना करेगी
1 1 0 1 C2 C1 C0 x चयनित काउंटरों का अगला रीड बैक लैच्ड काउंट पढ़ेगा
1 1 1 0 C2 C1 C0 x चयनित काउंटरों की अगली रीडिंग बैक लैच स्थिति को पढ़ेगी
1 1 1 1 C2 C1 C0 x कुछ भी न करें (किसी भी या सभी काउंटरों पर कुछ भी न लगाएं)
1 1 count status 0 0 0 x कुछ न करें (कुंडी की गणना और/या बिना किसी काउंटर पर स्थिति)
1 1 count status 1 C1 C0 x रीड-बैक कमांड काउंटर 2 पर लागू होता है
1 1 count status C2 1 C0 x रीड-बैक कमांड काउंटर 1 पर लागू होता है
1 1 count status C2 C1 1 x रीड-बैक कमांड काउंटर 0 पर लागू होता है

पीआईटी सेट करते समय, माइक्रोप्रोसेसर पहले नियंत्रण संदेश भेजता है, फिर पीआईटी को गणना संदेश भेजता है। गणना की प्रक्रिया पीआईटी को ये संदेश प्राप्त होने के पश्चात प्रारंभ होगी, और, कुछ स्थितियों में, यदि यह "GATE" इनपुट संकेत एज बढ़ते सिग्नल एज को ज्ञात करता है। स्थिति बाइट फॉर्मैट। बिट 7 सॉफ़्टवेयर को OUT पिन की वर्तमान स्थिति की निरीक्षण करने की अनुमति देता है। बिट 6 इंगित करता है कि गणना कब पढ़ी जा सकती है; जब यह बिट 1 होता है, तो गणना अवयव अभी तक लोड नहीं हुआ है और प्रोसेसर द्वारा वापस पढ़ा नहीं जा सकता है। इस प्रकार से बिट्स 5 से 0 नियंत्रण रजिस्टर में लिखे गए अंतिम बिट्स के समान हैं।

8254 स्टैटस वर्ड
Bit #/Name संक्षिप्त वर्णन
D7
Output
Status
D6
null
count
D5
RW1
D4
RW0
D3
M2
D2
M1
D1
M0
D0
BCD
0 आउट पिन 0 है
1 आउट पिन 1 है
0 काउंटर पढ़ा जा सकता है
1 काउंटर लगाया जा रहा है
format mode BCD काउंटर मोड बिट्स, जैसा कि नियंत्रण शब्द रजिस्टर के लिए परिभाषित किया गया है

ऑपरेशन मोड

नियंत्रण शब्द के D3, D2 और D1 बिट्स टाइमर के ऑपरेटिंग मोड को सेट करते हैं। कुल मिलाकर 6 मोड हैं; मोड 2 और 3 के लिए, डी3 बिट को अनदेखा कर दिया जाता है, इसलिए लुप्त मोड 6 और 7 मोड 2 और 3 के लिए उपनाम हैं।

इस प्रकार से सभी मोड GATE इनपुट के प्रति संवेदनशील हैं, GATE उच्च के कारण सामान्य ऑपरेशन होता है, परंतु GATE निम्न का प्रभाव मोड पर निर्भर करता है:

  • मोड 0 और 4: GATE निम्न होने पर गणना निलंबित कर दी जाती है, और GATE अधिक होने पर गणना पुनः प्रारंभ हो जाती है।
  • मोड 1 और 5: GATE के बढ़ते एज की गणना प्रारंभ होती है। गणना को प्रभावित किए बिना GATE निम्न जा सकता है, परंतु और बढ़ती बढ़त प्रारंभ से ही गणना को पुनः प्रारंभ कर देगी।
  • मोड 2 और 3: "GATE" निम्न बल को तुरंत हाई आउट करें (कालद पल्स की प्रतीक्षा किए बिना) और काउंटर को रीसेट करता है (अगली कालद गिरने वाले एज पर)। जब GATE पुनः ऊपर चला जाता है, तो गणना पुनः प्रारंभ हो जाती है।

मोड 0 (000): टर्मिनल गणना पर अंतरायन

इस प्रकार से मोड 0 का उपयोग सॉफ्टवेयर नियंत्रण के अंतर्गत यथार्थ समय विलंब उत्पन्न करने के लिए किया जाता है। इस मोड में, काउंटर इसमें लोड किए गए प्रारंभिक COUNT मान से 0 तक गणना प्रारंभ कर देगा। गणना दर इनपुट कालद आवृत्ति के बराबर है।

कंट्रोल वर्ड लिखे जाने के पश्चात OUT पिन को निम्न रूप से सेट किया जाता है, और COUNT प्रोग्राम होने के पश्चात गणना कालद चक्र प्रारंभ होता है। काउंटर 0 तक पहुंचने तक OUT निम्न रहता है, जिस बिंदु पर OUT को तब तक उच्च सेट किया जाएगा जब तक कि काउंटर पुनः लोड न हो जाए या नियंत्रण शब्द न लिखा जाए। काउंटर आंतरिक रूप से 0xFFFF पर लपेटता है और गणना जारी रखता है, परंतु OUT पिन फिर कभी नहीं बदलता है। सामान्य गणना के लिए "GATE" सिग्नल को उच्च स्तर पर सक्रिय रहना चाहिए। यदि "GATE" निम्न चला जाता है, तो गणना रोक दी जाती है, और पुनः ऊपर जाने पर गणना पुनः प्रारंभ हो जाती है।

नवीन गणना की पहली बाइट गणना रजिस्टर में लोड होने पर पूर्व गणना को रोक देती है।

मोड 1 (001): प्रोग्रामेबल शॉट

इस मोड में 8253 का उपयोग मोनोस्टेबल मल्टीवाइब्रेटर के रूप में किया जा सकता है। इस प्रकार से GATE इनपुट का उपयोग ट्रिगर इनपुट के रूप में किया जाता है।

प्रारंभ में OUT उच्च होगा। एक-शॉट पल्स प्रारंभ करने के लिए ट्रिगर के पश्चात कालद पल्स पर OUT निम्न हो जाएगा, और जब तक काउंटर शून्य तक नहीं पहुंच जाता तब तक निम्न रहेगा। फिर OUT उच्च स्तर पर जाएगा और अग्रिम ट्रिगर के पश्चात CLK पल्स तक उच्च बना रहेगा।

नियंत्रण शब्द और प्रारंभिक गणना लिखने के पश्चात, काउंटर सशस्त्र है। ट्रिगर के परिणामस्वरूप काउंटर लोड होता है और अग्रिम "CLK" पल्स पर आउट निम्न सेट होता है, इस प्रकार एक-शॉट पल्स प्रारंभ होता है। N की प्रारंभिक गणना के परिणामस्वरूप अवधि में एक-शॉट पल्स N "CLK" चक्र प्राप्त होगा।

इस प्रकार से एक-शॉट पुनः ट्रिगर करने योग्य है, इसलिए किसी भी ट्रिगर के पश्चात N "CLK" पल्स के लिए आउट निम्न रहेगा। एक-शॉट पल्स को काउंटर में समान गणना दोबारा लिखे बिना दोहराया जा सकता है। GATE का OUT पर कोई प्रभाव नहीं पड़ता। यदि ऑनशॉट पल्स के समय काउंटर पर नवीन गणना लिखी जाती है, तो वर्तमान एक-शॉट प्रभावित नहीं होता है जब तक कि काउंटर को पुनः प्रारंभ न किया जाए। उस स्थिति में, काउंटर को नवीन गणना के साथ लोड किया जाता है और नवीन गणना समाप्त होने तक वनशॉट पल्स जारी रहता है।

मोड 2 (X10): दर जनरेटर

इस मोड में, डिवाइस डिवाइड-बाय-n काउंटर के रूप में कार्य करता है, जिसका उपयोग सामान्यतः वास्तविक समय कालद अंतरायन उत्पन्न करने के लिए किया जाता है।

अन्य विधियों के जैसे, COUNT भेजे जाने के पश्चात गणना प्रक्रिया अग्रिम कालद चक्र प्रारंभ कर देगी। तब तक OUT ऊंचा रहेगा जब तक काउंटर 1 तक नहीं पहुंच जाता, और कालद पल्स के लिए निम्न हो जाएगा। अग्रिम चक्र में, गणना पुनः लोड की जाती है, OUT पुनः उच्च हो जाता है, और पूर्ण प्रक्रिया स्वयं को दोहराती है।

उच्च पल्स के बीच का समय काउंटर के रजिस्टर में पूर्व निर्धारित गणना पर निर्भर करता है, और निम्न सूत्र का उपयोग करके गणना की जाती है:

काउंटर में लोड किया जाने वाला मान =

इस प्रकार से ध्यान दें कि COUNT रजिस्टर में मान से 1 तक होते हैं; रजिस्टर कभी भी शून्य तक नहीं पहुंचता।

मोड 3 (X11): वर्ग तरंग जनरेटर

यह मोड मोड 2 के समान है। यद्यपि, आउटपुट की उच्च और निम्न कालद पल्स की अवधि मोड 2 से भिन्न होगी।

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

मोड 4 (100): सॉफ्टवेयर ट्रिगर स्ट्रोब

कंट्रोल वर्ड और COUNT लोड होने के पश्चात, काउंटर शून्य तक पहुंचने तक आउटपुट उच्च रहेगा। फिर काउंटर 1 कालद चक्र (एक स्ट्रोब) के लिए निम्न पल्स उत्पन्न करेगा - उसके पश्चात आउटपुट पुनः उच्च हो जाएगा।

GATE निम्न गणना को निलंबित कर देता है, जो GATE के दोबारा उच्च होने पर पुनः प्रारंभ हो जाती है।

मोड 5 (101): हार्डवेयर ट्रिगर स्ट्रोब

इस प्रकार से यह मोड मोड 4 के समान है। यद्यपि, गणना प्रक्रिया GATE इनपुट द्वारा ट्रिगर होती है।

कंट्रोल वर्ड और COUNT प्राप्त करने के पश्चात, आउटपुट हाई सेट कर दिया जाएगा। बार जब डिवाइस GATE इनपुट पर बढ़ते एज को ज्ञात कर लेता है, तो यह गणना प्रारंभ कर देगा। जब काउंटर 0 पर पहुंचता है, तो आउटपुट कालद चक्र के लिए निम्न हो जाएगा - उसके पश्चात यह GATE के अग्रिम बढ़ते एज पर चक्र को दोहराने के लिए पुनः उच्च हो जाएगा।

आईबीएम पीसी प्रोग्रामिंग

8253 का उपयोग 1981 में उनकी प्रारंभ के पश्चात से आईबीएम पीसी संगतों में किया गया था।[9] आधुनिक समय में, इस पीआईटी को x86 PC में अलग चिप के रूप में सम्मिलित नहीं किया गया है। यद्यपि, इसकी कार्यक्षमता मदरबोर्ड चिपसेट के साउथब्रिज (कंप्यूटिंग) के भाग के रूप में सम्मिलित है। आधुनिक चिपसेट में, यह परिवर्तन x86 आई/ओ एड्रेस स्पेस में पीआईटी के रजिस्टरों तक अत्यधिक तीव्र एक्सेस के रूप में दिखाई दे सकता है।

सभी पीसी संगत पीआईटी को 105/88 = 1.19318 मेगाहर्ट्ज की कालद दर पर संचालित करते हैं, 13 एनटीएससी वर्ण-विस्फोट आवृत्ति जो सिस्टम कालद (14.31818 मेगाहर्ट्ज) को 12 से विभाजित करने से आती है। यह सर्वप्रथम वर्ण ग्राफ़िक्स एडाप्टर पीसी का होल्डओवर है - उन्होंने ही क्रिस्टल दोलित्र से सभी आवश्यक आवृत्तियों को प्राप्त किया, और टीवी आउटपुट को संभव बनाने के लिए, इस दोलित्र को एनटीएससी वर्ण सबकैरियर आवृत्ति के गुणक पर चलाना था। यह आवृत्ति, 216 से विभाजित (सबसे बड़ा विभाजक जो 8253 सक्षम है) एमएस-डॉस और संबंधित ऑपरेटिंग सिस्टम में उपयोग किए जाने वाले ≈18.2 Hz टाइमर इंटरप्ट का उत्पादन करती है।

इस प्रकार से मूल आईबीएम पीसी में, काउंटर 0 का उपयोग टाइमकीपिंग अंतरायन उत्पन्न करने के लिए किया जाता है। काउंटर 1 का उपयोग डीरैम मेमोरी के रिफ्रेश को ट्रिगर करने के लिए किया जाता है। काउंटर 2 का उपयोग पीसी स्पीकर के माध्यम से टोन उत्पन्न करने के लिए किया जाता है।

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

पीसी पर टाइमर0 (चिप) का एड्रैस पोर्ट 40h..43h पर है और दूसरे टाइमर1 (चिप) का एड्रैस 50h..53h पर है।

x86 पीसी पर, कई वीडियो कार्ड बायोस और सिस्टम बायोस अपने स्वयं के उपयोग के लिए दूसरे काउंटर को पुन: प्रोग्राम करेंगे। रीप्रोग्रामिंग सामान्यतः वीडियो मोड में एक बदलाव के समय होती है, जब वीडियो बायोस निष्पादित किया जा सकता है, और सिस्टम प्रबंधन मोड और सामर्थ्य सेविंग स्थिति में परिवर्तन के समय, जब सिस्टम बायोस निष्पादित किया जा सकता है। यह कई x86 सिस्टमों पर टाइमर के दूसरे काउंटर के किसी भी गंभीर वैकल्पिक उपयोग को रोकता है।

जैसा कि ऊपर कहा गया है, चैनल 0 को काउंटर के रूप में लागू किया गया है। सामान्यतः, काउंटर का प्रारंभिक मान कंट्रोल को बाइट्स भेजकर सेट किया जाता है, फिर डेटा आई/ओ पोर्ट रजिस्टर करता है (36h का मान पोर्ट 43h पर भेजा जाता है, फिर निम्न बाइट पोर्ट 40h पर भेजा जाता है, और उच्च बाइट के लिए पुनः पोर्ट 40h भेजा जाता है)। काउंटर शून्य तक गणना करता है, फिर सीपीयू को हार्डवेयर अंतरायन (आईआरक्यू 0, आईएनटी 8) भेजता है। फिर काउंटर अपने प्रारंभिक वैल्यू पर रीसेट हो जाता है और पुनः व्युत्क्रम गणना प्रारंभ कर देता है। सबसे तीव्र संभव अंतरायन आवृत्ति मेगाहर्ट्ज़ के आधे से थोड़ा अधिक है। सबसे मंद संभावित आवृत्ति, जो सामान्यतः एमएस-डॉस या संगत ऑपरेटिंग सिस्टम चलाने वाले कंप्यूटरों द्वारा उपयोग की जाती है, लगभग 18.2 Hz है। इन वास्तविक मोड ऑपरेटिंग सिस्टम के अंतर्गत, बायोस वास्तविक मोड एड्रैस 0040:006c में प्राप्त होने वाली INT 8 कॉल की संख्या एकत्रित करता है, जिसे प्रोग्राम द्वारा पढ़ा जा सकता है।

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

इस प्रकार से 2002 के माइक्रोसॉफ्ट डॉक्यूमेंट के अनुसार, क्योंकि इस हार्डवेयर [8254] को पढ़ने और लिखने के लिए आईओ पोर्ट के माध्यम से संचार की आवश्यकता होती है, प्रोग्रामिंग में कई चक्र लगते हैं, जो ओएस के लिए अत्यधिक मानित है। इस कारण से, व्यवहार में एपेरियोडिक कार्यक्षमता का उपयोग नहीं किया जाता है।[10]

यह भी देखें

संदर्भ

  1. 1.0 1.1 1.2 "Intel 82C54 CHMOS Programmabe Interval Timer" (PDF) (datasheet). Archived from the original (PDF) on 3 June 2015. Retrieved 26 November 2012.
  2. Deepali A. Godse; Atul P. Godse (2007). उन्नत माइक्रोप्रोसेसर. Technical Publications. p. 74. ISBN 978-81-89411-33-6.
  3. http://pdf.datasheetcatalog.com/datasheet/Intel/mXvqwzr.pdf[bare URL PDF]
  4. Intel Corporation, "Focus Components: Military Intelligence: Timers, EPROMs, Leadless Chip Carriers", Solutions, March/April 1983, Page 12.
  5. Intel Corporation, "NewsBit: Intel Licenses Oki on CMOS Version of Several Products", Solutions, July/August 1984, Page 1.
  6. Ashborn, Jim; "Advanced Packaging: A Little Goes A Long Way", Intel Corporation, Solutions, January/February 1986, Page 2
  7. "8254/82C54: Introduction to Programmable Interval Timer". Intel Corporation. Archived from the original on 22 November 2016. Retrieved 21 August 2011.
  8. "MSM 82c53 Datasheet" (PDF).
  9. "मल्टीमीडिया टाइमर समर्थन प्रदान करने के लिए दिशानिर्देश". Microsoft. 20 September 2002. Retrieved 2010-10-13.
  10. Guidelines For Providing Multimedia Timer Support

अग्रिम पठन

बाहरी संबंध