জনপ্রিয় মাইক্রোকন্ট্রোলার ফ্যামিলি — একটি ওভারভিউ
এই পাঠে যা শিখবেন
- ছয়টি জনপ্রিয় মাইক্রোকন্ট্রোলার ফ্যামিলির নাম, উৎস, ও সাধারণ ব্যবহারক্ষেত্র
- ৮-বিট বনাম ৩২-বিট ফ্যামিলির মধ্যে মোটা দাগের পার্থক্য
- কেন ESP32/ESP8266 IoT প্রজেক্টে এত জনপ্রিয়, ও RISC-V কেন ক্রমবর্ধমান
- একটি সত্যিকারের ডিকশনারি-ভিত্তিক লুকআপ টেবিল — Python কোডে ফ্যামিলিগুলোর তথ্য সাজানো ও ফিল্টার করা
১ · ছয়টি জনপ্রিয় ফ্যামিলির সংক্ষিপ্ত পরিচিতি
8051 একটি ক্লাসিক ৮-বিট আর্কিটেকচার, মূলত Intel-এর তৈরি — এখন বহু ভেন্ডর (Atmel, Silicon Labs, STC ইত্যাদি) এর সামঞ্জস্যপূর্ণ ভার্সন তৈরি করে। সরলতার কারণে এটি এখনও বিশ্বব্যাপী শিক্ষাক্ষেত্রে ও সাশ্রয়ী সাধারণ কন্ট্রোল অ্যাপ্লিকেশনে ব্যবহৃত হয়।
AVR একটি ৮-বিট RISC আর্কিটেকচার, Atmel-এর তৈরি (এখন Microchip-এর অংশ) — সবচেয়ে পরিচিত উদাহরণ ATmega328P, যা Arduino Uno/Nano বোর্ডের হৃদয়ে বসানো। হবিস্ট ও শিক্ষামূলক প্রজেক্টে এর ব্যাপক জনপ্রিয়তার পেছনে বড় কারণ Arduino-র সহজ টুলচেইন ও বিশাল কমিউনিটি।
PIC Microchip-এর নিজস্ব একটি আলাদা আর্কিটেকচার পরিবার (PIC16, PIC18, ও ৩২-বিট PIC32 সহ একাধিক সিরিজ) — শিল্প-নিয়ন্ত্রণ ও ভোক্তা ইলেকট্রনিক্সে দীর্ঘদিন ধরে ব্যাপকভাবে ব্যবহৃত, MPLAB টুলচেইনের মাধ্যমে প্রোগ্রাম করা হয়।
ARM Cortex-M একটি ৩২-বিট RISC কোর ডিজাইন, যা Arm নিজে চিপ তৈরি করে না বরং অন্যান্য ভেন্ডরদের (STMicroelectronics-এর STM32, Nordic Semiconductor-এর nRF52, NXP, Texas Instruments ইত্যাদি) কাছে IP হিসেবে লাইসেন্স করে — তারা নিজেদের চিপে এই কোর বসিয়ে বিক্রি করে। এটিই বর্তমানে আধুনিক বাণিজ্যিক এমবেডেড পণ্যে সবচেয়ে বেশি ব্যবহৃত ৩২-বিট ফ্যামিলি, এবং বিভিন্ন পারফরম্যান্স-পাওয়ার স্তরে (M0/M0+ সবচেয়ে কম-পাওয়ার/সরল, M4/M7 উচ্চতর পারফরম্যান্স ও DSP/FPU সহ) পাওয়া যায়।
ESP32/ESP8266 Espressif Systems-এর তৈরি ৩২-বিট চিপ, যাতে বিল্ট-ইন WiFi (ESP32-তে Bluetooth/BLE-ও) রয়েছে — আলাদা কোনো ওয়্যারলেস মডিউল যোগ না করেই সরাসরি ইন্টারনেটে সংযুক্ত হওয়া যায় বলে এটি হবিস্ট ও বাণিজ্যিক উভয় ধরনের IoT প্রজেক্টে অত্যন্ত জনপ্রিয় (M10-এ এই কানেক্টিভিটি বিস্তারিত আসবে)।
RISC-V এমবেডেড কোর একটি ওপেন, রয়্যালটি-মুক্ত ইনস্ট্রাকশন সেট আর্কিটেকচার (ISA), যার উৎপত্তি UC Berkeley-তে। যেহেতু চিপ ডিজাইনারদের কোনো লাইসেন্স ফি দিতে হয় না, এমবেডেড জগতে এর গ্রহণ ক্রমেই বাড়ছে — এমনকি Espressif-এর কিছু নতুন চিপও (যেমন ESP32-C সিরিজ) RISC-V কোরের উপর ভিত্তি করে তৈরি।
প্রতিটি ফ্যামিলির অন্তর্নিহিত ইনস্ট্রাকশন সেট, পাইপলাইন, ও ডেটাপাথ কীভাবে কাজ করে তার সাধারণ ভিত্তি Computer Architecture & Digital Logic কোর্সে কভার করা — এই পাঠের লক্ষ্য শুধু কোন ফ্যামিলি কোথায় ব্যবহৃত হয় তার বাস্তব চিত্র দেওয়া।
২ · একটি ডিকশনারি-ভিত্তিক লুকআপ টেবিল
নিচের কোড সেলে ছয়টি ফ্যামিলিকে একটি Python ডিকশনারিতে সাজানো হয়েছে — প্রতিটির উৎস/ভেন্ডর, বিট-প্রস্থ, ও সাধারণ ব্যবহার। এরপর কোডেই একটি বুলিয়ান ফিল্ড দিয়ে সত্যিই আলাদা করা হচ্ছে কোনগুলো মূলত ৩২-বিট, কোনগুলো মূলত ৮-বিট, আর কোনগুলোর একাধিক বিট-প্রস্থের ভ্যারিয়েন্ট আছে (মিশ্র)।
mcu_families = {
"8051": {
"vendor_origin": "Intel (মূল উদ্ভাবক, এখন বহু ভেন্ডরের ক্লোন)",
"bit_width_desc": "৮-বিট",
"is_32bit": False,
"typical_use": "শিক্ষা, সাশ্রয়ী সাধারণ কন্ট্রোল",
},
"AVR": {
"vendor_origin": "Atmel (বর্তমানে Microchip)",
"bit_width_desc": "৮-বিট",
"is_32bit": False,
"typical_use": "Arduino Uno/Nano (ATmega328P), হবিস্ট প্রজেক্ট",
},
"PIC": {
"vendor_origin": "Microchip",
"bit_width_desc": "৮/১৬/৩২-বিট (একাধিক সিরিজ)",
"is_32bit": None, # একক বুলিয়ানে ধরা যায় না -- একাধিক বিট-প্রস্থের সিরিজ আছে
"typical_use": "শিল্প-নিয়ন্ত্রণ, ভোক্তা ইলেকট্রনিক্স",
},
"ARM Cortex-M": {
"vendor_origin": "Arm (IP লাইসেন্স -- ST, Nordic, NXP, TI ইত্যাদি চিপ তৈরি করে)",
"bit_width_desc": "৩২-বিট",
"is_32bit": True,
"typical_use": "আধুনিক বাণিজ্যিক পণ্য (STM32, nRF52)",
},
"ESP32/ESP8266": {
"vendor_origin": "Espressif Systems",
"bit_width_desc": "৩২-বিট",
"is_32bit": True,
"typical_use": "IoT প্রজেক্ট (বিল্ট-ইন WiFi/BLE)",
},
"RISC-V (এমবেডেড)": {
"vendor_origin": "ওপেন ISA (UC Berkeley-তে উদ্ভূত, রয়্যালটি-মুক্ত)",
"bit_width_desc": "৩২-বিট (সাধারণত)",
"is_32bit": True,
"typical_use": "ক্রমবর্ধমান গ্রহণ (যেমন ESP32-C সিরিজ)",
},
}
print("মাইক্রোকন্ট্রোলার ফ্যামিলি সারাংশ:\n")
for name, info in mcu_families.items():
print(name)
print(f" উৎস/ভেন্ডর : {info['vendor_origin']}")
print(f" বিট-প্রস্থ : {info['bit_width_desc']}")
print(f" সাধারণ ব্যবহার : {info['typical_use']}")
print()
eight_bit = [name for name, info in mcu_families.items() if info["is_32bit"] is False]
thirty_two = [name for name, info in mcu_families.items() if info["is_32bit"] is True]
mixed_width = [name for name, info in mcu_families.items() if info["is_32bit"] is None]
print(f"মোট ফ্যামিলি: {len(mcu_families)}")
print(f"প্রধানত ৮-বিট ({len(eight_bit)}টি): {eight_bit}")
print(f"৩২-বিট ({len(thirty_two)}টি): {thirty_two}")
print(f"মিশ্র বিট-প্রস্থ ({len(mixed_width)}টি): {mixed_width}")
PIC-এর জন্য is_32bit-এর মান None — True
বা False নয়। এটি ইচ্ছাকৃত: PIC-এর ৮-বিট (PIC16/18), ১৬-বিট, ও ৩২-বিট (PIC32) — একাধিক সিরিজ
আছে, তাই একটি একক বুলিয়ান দিয়ে এটিকে সঠিকভাবে প্রকাশ করা যায় না। is False ও
is True দিয়ে তুলনা করায় None-যুক্ত এন্ট্রি স্বয়ংক্রিয়ভাবে দুটো তালিকা থেকেই
বাদ পড়ে যায় ও নিজের আলাদা mixed_width তালিকায় ধরা পড়ে — কোডেই এই সূক্ষ্ম পার্থক্যটি
সত্যিকারভাবে হ্যান্ডেল করা হচ্ছে।
8051, AVR, PIC — প্রতিষ্ঠিত ৮-বিট ফ্যামিলি, শিক্ষা ও সরল কন্ট্রোলে শক্তিশালী; ARM Cortex-M, ESP32/ ESP8266, RISC-V — আধুনিক ৩২-বিট ফ্যামিলি, যেগুলো যথাক্রমে বাণিজ্যিক পণ্য, বিল্ট-ইন IoT কানেক্টিভিটি, ও ওপেন-স্ট্যান্ডার্ড গ্রহণের দিক থেকে এগিয়ে। এই কোর্সের বাকি অংশে (বিশেষত M3 থেকে M9) আমরা যে ধারণাগুলো শিখব — রেজিস্টার, GPIO, টাইমার, সিরিয়াল প্রোটোকল — এই সবগুলো ফ্যামিলিতেই কমবেশি একইভাবে প্রযোজ্য, শুধু রেজিস্টার নাম ও ঠিকানা ভিন্ন।
ভাবনার প্রশ্ন
প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।
প্র ০১ ARM Cortex-M ফ্যামিলি কোনো একক কোম্পানির তৈরি চিপ নয় কেন?
কারণ Arm নিজে চিপ তৈরি/বিক্রি করে না — তারা শুধু কোরের ডিজাইন (IP) অন্যান্য সেমিকন্ডাক্টর কোম্পানির কাছে লাইসেন্স করে, আর সেই কোম্পানিগুলো (STMicroelectronics, Nordic Semiconductor, NXP, Texas Instruments ইত্যাদি) নিজস্ব পেরিফেরাল যোগ করে চূড়ান্ত চিপ তৈরি করে বিক্রি করে। এটি AVR বা PIC-এর বিপরীত, যেগুলো একটি নির্দিষ্ট ভেন্ডরের (যথাক্রমে Microchip) নিজস্ব চিপ।
প্র ০২ ESP32 কেন হবিস্ট ও বাণিজ্যিক উভয় ধরনের IoT প্রজেক্টে এত জনপ্রিয়?
কারণ এতে WiFi (ও BLE) সরাসরি চিপের ভেতরেই ইন্টিগ্রেটেড — আলাদা কোনো বাহ্যিক ওয়্যারলেস মডিউল, অ্যান্টেনা ম্যাচিং সার্কিট্রি, বা আলাদা কানেক্টিভিটি চিপ যোগ করতে হয় না, যা বোর্ড ডিজাইন সহজ ও সস্তা করে দেয়। সাথে এটি তুলনামূলক কম দামে একটি সক্ষম ৩২-বিট কোরও দেয় — এই কম্বিনেশনটিই M10-এ আরও বিস্তারিত আসবে।
প্র ০৩
কোড সেলে PIC-কে is_32bit=None দেওয়া হয়েছে True বা
False না দিয়ে — এই সিদ্ধান্তের সুবিধা কী?
যদি জোর করে True বা False বসানো হতো, তাহলে সেটি বাস্তবতাকে ভুলভাবে সরলীকৃত
করে ফেলত — PIC-এর ৮-বিট ও ৩২-বিট দুই ধরনের চিপই বাস্তবে ব্যাপকভাবে ব্যবহৃত হয়। None
ব্যবহার করায় কোডটি সৎভাবে স্বীকার করছে যে এই তথ্যটি একটি সরল দুই-মানের প্রশ্নে ফিট করে না, এবং
mixed_width তালিকার মাধ্যমে সেটিকে আলাদাভাবে ট্র্যাক করা যাচ্ছে।
অনুশীলন
-
চিন্তা করুন: কোড চালানোর আগে হিসাব করুন —
mcu_families-এ মোট কতগুলো এন্ট্রি আছে, এবং তার মধ্যে কতগুলোরis_32bitসত্যিইTrue?মোট ৬টি এন্ট্রি (8051, AVR, PIC, ARM Cortex-M, ESP32/ESP8266, RISC-V)। এর মধ্যে
is_32bit=Trueঠিক ৩টিতে — ARM Cortex-M, ESP32/ESP8266, ও RISC-V (এমবেডেড)। বাকি ২টি (8051, AVR)False, আর ১টি (PIC)None। -
পরীক্ষা করুন:
mcu_families-এ একটি নতুন এন্ট্রি"MSP430"যোগ করুন — Texas Instruments-এর একটি সুপরিচিত আল্ট্রা-লো-পাওয়ার ১৬-বিট ফ্যামিলি — এবং তাকেis_32bit=Falseদিন। Run চেপে দেখুন এটি কোন তালিকায় দেখা যায়, এবং কেন সেটি বিভ্রান্তিকর হতে পারে।যেহেতু
is_32bit=Falseদেওয়া হয়েছে, MSP430eight_bitতালিকায় ঢুকে যাবে — যদিও এটি প্রকৃতপক্ষে ১৬-বিট, ৮-বিট নয়। এটি দেখায়eight_bitভ্যারিয়েবলের নামটি আসলে একটু বিভ্রান্তিকর — এটি প্রকৃতপক্ষে "৩২-বিট নয়" বোঝাচ্ছে, "সত্যিই ৮-বিট" নয়। বাস্তব কোডে এমন একটি বুলিয়ান ফিল্ডের নাম ও তার আসল অর্থের মধ্যে ফারাক থাকলে তা বাগের একটি সাধারণ উৎস — একটি ভালো শিক্ষা এখানেই।
আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ
- কোর্সের সম্পূর্ণ সিলেবাস দেখুন ৫৭টি পাঠ মাইক্রোপ্রসেসর আর্কিটেকচার, এমবেডেড C, GPIO, টাইমার/PWM/ADC, সিরিয়াল প্রোটোকল, RTOS, সেন্সর/অ্যাকচুয়েটর, IoT আর্কিটেকচার, ওয়্যারলেস প্রোটোকল, MQTT/CoAP ও IoT সিকিউরিটি — বাকি পাঠগুলো শীঘ্রই যুক্ত হবে।
- Computer Architecture & Digital Logic কোর্স সহোদর কোর্স CPU/ISA/পাইপলাইনিং/ক্যাশের ভিত্তি সেই কোর্সেই তৈরি হয়েছে — এই কোর্স মাইক্রোকন্ট্রোলার-স্পেসিফিক জগতে গভীরে যায়।
- সব Courses দেখুন ABCL TECH C, C++, Python, Java, JavaScript, DSA, DBMS, Discrete Mathematics, System Design, Cybersecurity, Cloud Computing & DevOps, Computer Networks, Operating Systems, Computer Architecture, Design and Analysis of Algorithms ও আরও অনেক কোর্স — সব এক জায়গায়।