1. Microcontroller Architecture माइक्रोकंट्रोलर एक चिप पर एक छोटा कंप्यूटर है, जो एम्बेडेड सिस्टम में उपयोग किया जाता है। CPU RAM ROM/Flash I/O Ports Timers ADC/DAC Serial Comm Data Bus Address Bus Control Bus CPU: सेंट्रल प्रोसेसिंग यूनिट, निर्देशों को निष्पादित करता है। RAM: अस्थिर डेटा स्टोरेज। ROM/Flash: प्रोग्राम कोड और गैर-अस्थिर डेटा स्टोरेज। I/O पोर्ट्स: बाहरी उपकरणों के साथ इंटरफेसिंग के लिए। टाइमर/काउंटर: समय-आधारित ऑपरेशन के लिए। ADC/DAC: एनालॉग-टू-डिजिटल और डिजिटल-टू-एनालॉग कनवर्टर। सीरियल कम्युनिकेशन: UART, SPI, I2C जैसे प्रोटोकॉल। 2. PIC Microcontroller Architecture PIC (Peripheral Interface Controller) माइक्रोकंट्रोलर Harvard आर्किटेक्चर का उपयोग करते हैं और विभिन्न एम्बेडेड अनुप्रयोगों के लिए लोकप्रिय हैं। CPU Program Memory (Flash) (Separate Bus) Data Memory (RAM) (Separate Bus) I/O Ports Timers/PWM ADC/Comparators Serial Comm (UART, SPI, I2C) Program Bus Data Bus Control Bus हार्वर्ड आर्किटेक्चर: प्रोग्राम मेमोरी और डेटा मेमोरी के लिए अलग-अलग बसें होती हैं, जिससे एक साथ निर्देश और डेटा को एक्सेस किया जा सकता है। CPU: RISC (Reduced Instruction Set Computer) आर्किटेक्चर। मेमोरी: प्रोग्राम मेमोरी (Flash): प्रोग्राम कोड स्टोर करता है। डेटा मेमोरी (RAM): वेरिएबल और स्टैक के लिए उपयोग किया जाता है। EEPROM: गैर-अस्थिर डेटा स्टोरेज (कुछ मॉडलों में)। पेरीफेरल्स: I/O पोर्ट्स, टाइमर/काउंटर, PWM, ADC, कंपैरेटर, सीरियल कम्युनिकेशन (UART, SPI, I2C)। विशेषताएं: कम पिन काउंट, कम लागत, कम बिजली की खपत, बिल्ट-इन ऑसिलेटर। 3. PIC Microcontroller Communication Channels PIC माइक्रोकंट्रोलर कई संचार चैनलों का समर्थन करते हैं: USART (Universal Synchronous Asynchronous Receiver Transmitter): सीरियल डेटा ट्रांसमिशन के लिए उपयोग किया जाता है। UART (Asynchronous): RS-232, RS-485 जैसे प्रोटोकॉल के लिए। Synchronous: SPI या I2C के कुछ रूपों के लिए। SPI (Serial Peripheral Interface): मास्टर-स्लेव आर्किटेक्चर के साथ हाई-स्पीड सिंक्रोनस सीरियल संचार। मेमोरी चिप्स, सेंसर, LCD डिस्प्ले आदि जैसे उपकरणों को जोड़ने के लिए उपयोग किया जाता है। I2C (Inter-Integrated Circuit): मास्टर-स्लेव आर्किटेक्चर के साथ दो-तार सीरियल संचार। EEPROM, सेंसर, रियल-टाइम घड़ियों आदि जैसे उपकरणों के लिए। USB (Universal Serial Bus): कुछ उच्च-स्तरीय PIC माइक्रोकंट्रोलर USB इंटरफेस का समर्थन करते हैं। कंप्यूटर के साथ संचार के लिए। CAN (Controller Area Network): वाहन और औद्योगिक स्वचालन में उपयोग किया जाने वाला एक मजबूत सीरियल संचार प्रोटोकॉल। कुछ PIC माइक्रोकंट्रोलर में बिल्ट-इन CAN मॉड्यूल होते हैं। 4. 8051 Microcontroller Architecture 8051 एक CisC आर्किटेक्चर वाला 8-बिट माइक्रोकंट्रोलर है, जो एम्बेडेड सिस्टम में व्यापक रूप से उपयोग होता है। CPU On-chip ROM On-chip RAM I/O Ports Timers (T0, T1) Serial Port Interrupt Control Oscillator Bus Control Data Bus Address Bus Control Bus CPU: 8-बिट ALU, एक्यूमुलेटर (ACC), B रजिस्टर, PSW, स्टैक पॉइंटर (SP), डेटा पॉइंटर (DPTR), प्रोग्राम काउंटर (PC) शामिल हैं। मेमोरी: ऑन-चिप ROM: प्रोग्राम कोड स्टोर करता है (4KB या अधिक)। ऑन-चिप RAM: 128 बाइट्स डेटा RAM (कार्यशील रजिस्टर बैंक, बिट-एड्रेसेबल एरिया, GPRAM, स्टैक के लिए)। बाहरी प्रोग्राम और डेटा मेमोरी को 64KB तक एड्रेस कर सकता है। I/O पोर्ट्स: 4 x 8-बिट I/O पोर्ट्स (P0, P1, P2, P3)। टाइमर/काउंटर: दो 16-बिट टाइमर/काउंटर (T0, T1)। सीरियल पोर्ट: UART के माध्यम से सीरियल संचार के लिए फुल-डुप्लेक्स सीरियल पोर्ट। इंटरप्ट कंट्रोल: 5 इंटरप्ट स्रोत (2 बाहरी, 2 टाइमर, 1 सीरियल)। ऑसिलेटर: ऑन-चिप ऑसिलेटर बाहरी क्रिस्टल के साथ काम करता है। 5. 8051 Memory Organization 8051 की मेमोरी को प्रोग्राम मेमोरी और डेटा मेमोरी में विभाजित किया गया है। प्रोग्राम मेमोरी (ROM) एड्रेस स्पेस: 0000H से FFFFH (64KB)। ऑन-चिप ROM: $0000H - $0FFFH (4KB) 8051 के लिए। बाहरी ROM: $1000H - $FFFFH तक जोड़ा जा सकता है। केवल पढ़ने योग्य (Read-Only) होती है; प्रोग्राम कोड, लुकअप टेबल स्टोर करती है। डेटा मेमोरी (RAM) आंतरिक RAM: एड्रेस स्पेस: $00H - $7FH (128 बाइट्स)। रजिस्टर बैंक ($00H - $1FH): 4 बैंक (R0-R7) होते हैं, जो PSW के RS1, RS0 बिट्स द्वारा चुने जाते हैं। बिट-एड्रेसेबल एरिया ($20H - $2FH): 16 बाइट्स जो 128 स्वतंत्र बिट्स के रूप में एक्सेस किए जा सकते हैं। जनरल पर्पस RAM (GPRAM) ($30H - $7FH): 80 बाइट्स, सामान्य डेटा स्टोरेज और स्टैक के लिए। विशेष कार्य रजिस्टर (SFRs): एड्रेस स्पेस: $80H - $FFH (128 बाइट्स)। हार्डवेयर पेरीफेरल्स को नियंत्रित करते हैं (जैसे पोर्ट्स, टाइमर, सीरियल पोर्ट)। कुछ SFRs बिट-एड्रेसेबल होते हैं। बाहरी RAM: 64KB तक बाहरी डेटा RAM जोड़ा जा सकता है, जिसे DPTR का उपयोग करके एक्सेस किया जाता है। 6. 8051 Addressing Modes 8051 माइक्रोकंट्रोलर में डेटा को एक्सेस करने के विभिन्न तरीके: Immediate Addressing Mode: डेटा निर्देश का हिस्सा होता है। उदाहरण: MOV A, #55H (ACC में 55H लोड करें) Direct Addressing Mode: डेटा का पता निर्देश में सीधे दिया जाता है। आंतरिक RAM स्थान या SFRs को एक्सेस करने के लिए। उदाहरण: MOV A, 30H (RAM स्थान 30H से ACC में डेटा लोड करें) Register Addressing Mode: डेटा CPU के आंतरिक रजिस्टर (R0-R7, A, B, DPTR आदि) में होता है। उदाहरण: ADD A, R0 (R0 की सामग्री को ACC में जोड़ें) Register Indirect Addressing Mode: डेटा का पता R0, R1 या DPTR रजिस्टर में स्टोर होता है। उदाहरण: MOV A, @R0 (R0 द्वारा इंगित पते से ACC में डेटा लोड करें) Indexed Addressing Mode: प्रोग्राम मेमोरी (ROM) से डेटा एक्सेस करने के लिए। डेटा का पता DPTR या PC की सामग्री और ACC की सामग्री को जोड़कर निर्धारित किया जाता है। उदाहरण: MOVC A, @A+DPTR (DPTR + ACC द्वारा इंगित कोड मेमोरी से ACC में डेटा लोड करें) 7. 8051 Interrupt Structure 8051 में 5 इंटरप्ट स्रोत हैं, प्रत्येक की एक वेक्टर एड्रेस और प्राथमिकता होती है। Interrupt Source Vector Address Priority Bit (IP.x) Enable Bit (IE.x) External Interrupt 0 (INT0) 0003H IP.0 (PX0) IE.0 (EX0) Timer 0 Interrupt (TF0) 000BH IP.1 (PT0) IE.1 (ET0) External Interrupt 1 (INT1) 0013H IP.2 (PX1) IE.2 (EX1) Timer 1 Interrupt (TF1) 001BH IP.3 (PT1) IE.3 (ET1) Serial Port Interrupt (RI/TI) 0023H IP.4 (PS) IE.4 (ES) General Enable - - IE.7 (EA) इंटरप्ट्स: बाहरी घटनाओं या आंतरिक पेरीफेरल्स (जैसे टाइमर ओवरफ्लो) द्वारा मुख्य प्रोग्राम के निष्पादन को बाधित करने का एक तरीका। इंटरप्ट सक्षम करें (IE रजिस्टर): प्रत्येक इंटरप्ट स्रोत को व्यक्तिगत रूप से सक्षम या अक्षम किया जा सकता है। EA बिट सभी इंटरप्ट्स को वैश्विक रूप से सक्षम या अक्षम करता है। इंटरप्ट प्राथमिकता (IP रजिस्टर): इंटरप्ट्स को दो प्राथमिकता स्तरों (उच्च और निम्न) पर सेट किया जा सकता है। उच्च प्राथमिकता वाले इंटरप्ट निम्न प्राथमिकता वाले इंटरप्ट को बाधित कर सकते हैं। जब कोई इंटरप्ट होता है, तो CPU वर्तमान प्रोग्राम काउंटर को स्टैक पर सेव करता है, संबंधित वेक्टर एड्रेस पर जंप करता है, इंटरप्ट सर्विस रूटीन (ISR) को निष्पादित करता है, और फिर मुख्य प्रोग्राम में वापस आ जाता है। 8. 8051 Special Function Registers (SFRs) 8051 माइक्रोकंट्रोलर में SFRs विशेष कार्यक्षमता वाले हार्डवेयर घटकों को नियंत्रित करते हैं। SFR Address SFR Name Description E0H ACC (Accumulator) अधिकांश अंकगणितीय और तर्क संचालन के लिए उपयोग किया जाता है। F0H B (B Register) गुणा और भाग संचालन के लिए उपयोग किया जाता है। D0H PSW (Program Status Word) फ्लैग्स को स्टोर करता है (कैरी, सहायक कैरी, पैरिटी, ओवरफ्लो)। 81H SP (Stack Pointer) स्टैक के शीर्ष पर पता रखता है। 82H, 83H DPTR (Data Pointer) 16-बिट पॉइंटर जो बाहरी डेटा या कोड मेमोरी को इंगित करता है। (DPL, DPH) 88H TCON (Timer Control) टाइमर 0 और 1 के लिए कंट्रोल बिट्स। 89H TMOD (Timer Mode) टाइमर 0 और 1 के लिए मोड सेटिंग्स। 8AH, 8BH TL0, TH0 (Timer 0) टाइमर 0 के लो और हाई बाइट्स। 8CH, 8DH TL1, TH1 (Timer 1) टाइमर 1 के लो और हाई बाइट्स। 98H SCON (Serial Control) सीरियल पोर्ट के लिए कंट्रोल बिट्स। 99H SBUF (Serial Buffer) सीरियल डेटा भेजने/प्राप्त करने के लिए। A8H IE (Interrupt Enable) विभिन्न इंटरप्ट्स को सक्षम/अक्षम करता है। B8H IP (Interrupt Priority) इंटरप्ट्स के लिए प्राथमिकता स्तर सेट करता है। 80H P0 (Port 0) 8-बिट इनपुट/आउटपुट पोर्ट। 90H P1 (Port 1) 8-बिट इनपुट/आउटपुट पोर्ट। A0H P2 (Port 2) 8-बिट इनपुट/आउटपुट पोर्ट। B0H P3 (Port 3) 8-बिट इनपुट/आउटपुट पोर्ट, वैकल्पिक कार्यों के साथ। 87H PCON (Power Control) पावर मोड नियंत्रण। SFRs (Special Function Registers): ये रजिस्टर 8051 माइक्रोकंट्रोलर के आंतरिक हार्डवेयर संसाधनों जैसे I/O पोर्ट्स, टाइमर/काउंटर, सीरियल कम्युनिकेशन, इंटरप्ट्स आदि को नियंत्रित और मॉनिटर करते हैं। प्रत्येक SFR का एक विशिष्ट पता होता है और यह सीधे प्रोग्राम द्वारा एक्सेस किया जा सकता है। कुछ SFRs बिट-एड्रेसेबल होते हैं, जिसका अर्थ है कि उनके व्यक्तिगत बिट्स को स्वतंत्र रूप से संशोधित किया जा सकता है। 9. SCADA System Architecture SCADA सिस्टम बड़े पैमाने पर औद्योगिक प्रक्रियाओं की निगरानी और नियंत्रण करता है। Enterprise Layer Business Network Control Layer SCADA Server HMI Workstation Automation Layer PLC/RTU A PLC/RTU B PLC/RTU C Field Layer Sensor Actuator Motor एंटरप्राइज लेयर: व्यापार प्रबंधन प्रणाली के साथ एकीकरण। कंट्रोल लेयर: SCADA सर्वर (डेटा अधिग्रहण, प्रोसेसिंग, अलार्म) और HMI (मानव-मशीन इंटरफेस)। ऑटोमेशन लेयर: PLC (प्रोग्रामेबल लॉजिक कंट्रोलर) और RTU (रिमोट टर्मिनल यूनिट) फील्ड डिवाइस से डेटा एकत्र करते हैं और उन पर कमांड भेजते हैं। फील्ड लेयर: सेंसर, एक्चुएटर्स, मोटर्स आदि जैसे भौतिक उपकरण। 10. Communication Protocols used in SCADA SCADA सिस्टम में विभिन्न औद्योगिक संचार प्रोटोकॉल का उपयोग किया जाता है। Modbus प्रकार: सीरियल (RTU, ASCII) और ईथरनेट (TCP/IP)। उपयोग: PLC, RTU, HMI, सेंसर और अन्य उपकरणों के बीच संचार के लिए व्यापक रूप से उपयोग किया जाता है। विशेषताएं: सरल, खुला, मास्टर-स्लेव आर्किटेक्चर। सीमाएं: सुरक्षा सुविधाओं की कमी, धीमा (सीरियल संस्करण), डेटा प्रकार सीमित। PROFIBUS (Process Field Bus) प्रकार: DP (Decentralized Peripherals) और PA (Process Automation)। PROFIBUS DP: सेंसर और एक्चुएटर को PLC से जोड़ने के लिए उच्च गति वाला प्रोटोकॉल। फैक्ट्री ऑटोमेशन में लोकप्रिय। PROFIBUS PA: प्रोसेस कंट्रोल सिस्टम में उपयोग किया जाता है, intrinsic safety (विस्फोट-प्रूफ वातावरण) का समर्थन करता है। विशेषताएं: फास्ट, विश्वसनीय, व्यापक रूप से औद्योगिक स्वचालन में उपयोग किया जाता है। सीमाएं: जटिल कॉन्फ़िगरेशन, मालिकाना तकनीक। अन्य प्रोटोकॉल EtherNet/IP: कॉमन इंडस्ट्रियल प्रोटोकॉल (CIP) का उपयोग करते हुए ईथरनेट-आधारित प्रोटोकॉल। OPC (OLE for Process Control): विभिन्न हार्डवेयर और सॉफ्टवेयर विक्रेताओं के बीच डेटा एक्सचेंज के लिए एक मानक। DNP3 (Distributed Network Protocol 3): मुख्य रूप से बिजली और पानी के उपयोगिताओं में उपयोग किया जाता है। CAN (Controller Area Network): वाहन और औद्योगिक स्वचालन में उपयोग किया जाता है। 11. Latch and Unlatch Logic लैच और अनलैच PLC प्रोग्रामिंग में आउटपुट को चालू/बंद रखने के लिए उपयोग किए जाने वाले निर्देश हैं, भले ही इनपुट सिग्नल चला जाए। --| |-- Start_PB --|/|-- Stop_PB (OUT) Motor_Run --| |-- Motor_Run --| |-- Emergency_Stop (RES) Motor_Run लैच (LATCH) / सेट (SET): एक आउटपुट को चालू स्थिति में रखता है, भले ही इनपुट सिग्नल चला जाए। इसे तब तक चालू रखता है जब तक एक अनलैच/रीसेट कमांड नहीं मिलता। अनलैच (UNLATCH) / रीसेट (RESET): एक आउटपुट को बंद स्थिति में रखता है, भले ही इनपुट सिग्नल चला जाए। इसे तब तक बंद रखता है जब तक एक लैच/सेट कमांड नहीं मिलता। उपयोग: मोटर, लाइट, वाल्व आदि को तब तक चालू रखना जब तक उन्हें जानबूझकर बंद न किया जाए। लैडर लॉजिक उदाहरण: ऊपरी रंग में, Start_PB (NO) और Stop_PB (NC) Motor_Run कॉइल को सक्रिय करते हैं। Motor_Run का एक NO कॉन्टैक्ट खुद को लैच कर लेता है, जिससे Start_PB छोड़ने के बाद भी मोटर चलती रहती है। निचले रंग में, Emergency_Stop (NO) Motor_Run कॉइल को रीसेट (अनलैच) करता है, जिससे मोटर बंद हो जाती है।