মাইক্রোকন্ট্রোলার ও মাইক্রোপ্রসেসর নাম আমরা কম বেশি অনেকেই শুনেছি। যারা ইলেকট্রনিক্স নিয়ে কাজ করেন তাদের কাছে মাইক্রোকন্ট্রোলার চমৎকার একটি বিষয়।
কিন্তু আমাদের অনেকের ধারণা মাইক্রোকন্ট্রোলার দিয়ে শুধু তৈরি হয় রোবট এবং মাইক্রোপ্রসেসর দিয়ে তৈরি হয় শুধু কম্পিউটার আর বাংলাদেশে বসে এসব কাজ করা প্রায় অসম্ভব। তাই তারা মাইক্রোকন্ট্রোলার ও মাইক্রোপ্রসেসর দিয়ে কাজ করার কথা চিন্তা ও করে না।
কিন্তু বর্তমানে ডিজিটাল কন্ট্রোল সিস্টেমে বা অটোমেটিক কন্ট্রোল সিস্টেমে যে উন্নতি হয়েছে তার পুরো কৃতিত্ব মাইক্রোকন্ট্রোলার ও মাইক্রোপ্রসেসর এর। তাই আমাদেরকে বেশি বেশি কন্ট্রোলিং সিস্টেম নিয়ে কাজ করতে হবে।
আমরা চাই আমাদের পরবর্তি প্রজন্ম যেন একটা সমৃদ্ধ জ্ঞনভান্ডার সহজেই খুজে পায়। বেশি বেশি কন্ট্রোলিং বিষয়ে কাজ করুন। এই লেখাতে মাইক্রোকন্ট্রোলার নিয়ে আমরা বিস্তারিত আলোচনা করবো। আশা করছি এই লেখা থেকে আপনারা মাইক্রোকন্ট্রোলার বিষয়ে ভালো ধারণা পাবেন। চলুন দেখি কি কি থাকছে লেখাতে।
- মাইক্রোকন্ট্রলার কি?
- মাইক্রোকন্ট্রোলারের কাজ কি?
- মাইক্রোকন্ট্রোলারের প্রকারভেদ।
- মাইক্রোপ্রসেসর কি?
- মাইক্রোকন্ট্রলার ও মাইক্রোপ্রসেসর এর মাঝে প্রার্থক্য।
- মাইক্রোকন্ট্রোলারের গঠন সংক্ষিপ্ত আলোচনা।
- মাইক্রোকন্ট্রলার কিনবেন কি কি বিষয়ের উপর বিবেচনা করে?
- মাইক্রোকন্ট্রোলারের কিছু জনপ্রিয় ব্র্যান্ড এবং তাদের পরিচিত।
- মাইক্রোকন্ট্রোলারে কি প্রোগ্রামিং ল্যাংগুয়েজ ব্যবহার করা হয়?
- মাইক্রোকন্ট্রলার প্রোগ্রাম রাইট বা বার্নার পদ্ধতি।
- PIC 16F877A নিয়ে কিছু সাধারন আলোচনা।
মাইক্রোকন্ট্রোলার কি?
মাইক্রো এবং কন্ট্রোলার দুটি একত্রে একটি ইংরেজি শব্দ মাইক্রোকন্ট্রোলার। মাইক্রো বাংলা অর্থ হচ্ছে ক্ষুদ্র এবং কন্ট্রোলার বাংলা অর্থ হচ্ছে নিয়ন্ত্রন করা। তাহলে এতে করে বুঝা যায় ক্ষুদ্র একটি জিনিস নিয়ন্ত্রন করবে।
এটিকে আসলে একটি ছোট কম্পিউটার বলা যেতে পারে। এতে প্রসেসর, র্যাম, মেমোরি ইনপুট/আউটপুট প্রান্ত একই সাথে থাকে।
μC হলো মাইক্রোকন্ট্রোলার এবং MCU হলো মাইক্রোকন্ট্রোলার ইউনিট।
মাইক্রোকন্ট্রোলারের কাজ কি?
সহজ ভাষায় বলতে কিছু নির্দিষ্ট নিয়ম মেনে কিছু নির্দিষ্ট কাজ সম্পাদন করা এর কাজ। নির্দিষ্ট নিয়ম বলতে প্রোগ্রামিং-কে বুঝানো হয়েছে। আমরা প্রোগ্রামিং এর মাধ্যমে যেভাবে নির্দেশনা দিবো ঠিক সেভাবেই মাইক্রোকন্ট্রোলার তার আউটপুট দিবে। এটাকে প্রোগ্রামাবেল ডিভাইস ও বলা হয়। একে যতবার ইচ্ছা ততবার প্রোগ্রাম করতে পারবেন।
মাইক্রোকন্ট্রোলার মূলত এনালগ কাজকে ডিজিটালে রুপান্তরিত করে থাকে। তাহলে এনালগ কাজগুলো কি? এনালগ কাজ বুঝানো হয়েছে যা বিভিন্ন প্রকার আইসি, ট্রান্সজিস্টর, ডায়োড ও ইত্যাদি ডিভাইস করে থাকে। এই সকল ডিভাইসের কাজকে মাইক্রোকন্ট্রোলার একসাথে ডিজিটাল মান (০,১) এর মাধ্যমে করতে পারে।
ধরুন আমরা একটি ৭ সেগমেন্ট ঘড়ি বানাবো। এই জন্য আমাদের ৭ সেগমেন্ট ড্রাইভার আইসি, টাইম কাউন্টার সার্কিট, টাইম সেট করার সার্কিট ইত্যাদি লাগবে। মজার ব্যাপার হলো শুধুমাত্র মাইক্রোকন্ট্রোলার দিয়ে এই কাজটি সহজে করা যাবে।
মাইক্রোকন্ট্রোলারের প্রকারভেদ
প্রসেসিং ওয়ার্ডের আকার অনুসারে
- ৪ বিট মাইক্রো-কন্ট্রোলার
- ৮ বিট মাইক্রো-কন্ট্রোলার
- ১৬ বিট মাইক্রো-কন্ট্রোলার
- ৩২ বিট মাইক্রো-কন্ট্রোলার
নির্দেশনা বা ইন্সট্রাকশন সেট অনুসারে
- RISC মাইক্রো-কন্ট্রোলার
- CISC মাইক্রো-কন্ট্রোলার
মেমোরি সংযোগ অনুসারে
- অভ্যন্তরীণ মেমোরি মাইক্রো-কন্ট্রোলার
- বাহ্যিক মেমোরি মাইক্রো-কন্ট্রোলার
মাইক্রো-কন্ট্রোলার মেমোরি আর্কিটেকচার অনুসারে
- হার্ভার্ড আর্কিটেকচার মাইক্রো-কন্ট্রোলার
- ভন-নিউম্যান আর্কিটেকচার মাইক্রো-কন্ট্রোলার
মাইক্রোপ্রসেসর কি?
মাইক্রোপ্রসেসর মূলত একটি ডিজিটাল ইন্টিগ্রেটেড সার্কিট (আইসি) যা সাধারনত ইনপুট বাসের মাধ্যমে ডাটা ও ইনস্ট্রাকশন গ্রহন করে, ইনস্ট্রাকশ অনুযায়ী ডাটা প্রক্রিয়া করে ফলাফল তৈরি করে এবং ঐ ফলাফল আউটপুট বাসের মাধ্যমে আউটপুট ডিভাইসে প্রেরন করে থাকে।
ইনপুট আউটপুট ডিভাইসকে নিয়ন্ত্রনের জন্য বিভিন্ন কন্ট্রোল সিগন্যাল তৈরি করে। একটি কম্পিউটারের লজিক্যাল ও গাণিতিক কার্যাবলী মাইক্রোপ্রসেসরে সংগঠিত হয়। মাইক্রো-প্রসেসর একটি কম্পিউটার ব্যবস্থার গুরুত্বপূর্ন অংশ যা সেন্ট্রাল প্রসেসিং ইউনিট হিসেবে কাজ করে থাকে। উদাহরন হিসেবেঃ Intel 8085, MC 68000, Z80 কয়েকটি জনপ্রীয় মাইক্রোপ্রসেসরের উদাহরণ।
মাইক্রোকন্ট্রোলার ও মাইক্রোপ্রসেসর এর মাঝে প্রার্থক্য
- মাইক্রোকন্ট্রোলার মূলত একটি একক চিপ কম্পিউটার যেখানে প্রসেসর, র্যাম, রম, এবং ইনপুট/আউটপুট পোর্ট ইত্যাদি থাকে। আর মাইক্রোপ্রসেসর হলো একটি ইন্টিগ্রেটেড সার্কিট যা কম্পিউটারে সেন্ট্রাল প্রসেসিং ইউনিট হিসেবে কাজ করে। এই কারনে একে মাঝে মাঝে সিপিইউ বলা হয়ে থাকে।
- মাইক্রোকন্ট্রোলার হলোঃ Intel 8051, Atmel ATmega16 ইত্যাদি। মাইক্রোপ্রসেসর হলোঃ Intel x86 পরিবারভুক্ত মাইক্রোপ্রসেসর 8086, 80816, 80286, 80386 ইত্যাদি।
- মাইক্রোকন্ট্রলারের ভিতরে পূর্নাঙ্গ প্রসেসর থাকে যেমনঃ RAM, ROM, I/O Port ইত্যাদি। মাইক্রোপ্রসেসরের ভিতরে ALU, General Purpose register, Accumulator, program Counter, Flag register, Data and Counter Bus ও ইত্যাদি অংশ থাকে।
মাইক্রোকন্ট্রোলারের গঠন সংক্ষিপ্ত আলোচনা
মাইক্রোকন্ট্রোলার যে সকল মৌলিক অংশ নিয়ে গঠিত তা নিম্মে চিত্রের সাহায্যে দেখানো হয়েছে। বিভিন্ন উৎপাদনকারী প্রতিষ্ঠান বিভিন্ন ভাবে মাইক্রোকন্ট্রলার গঠন করে থাকে। আমরা এখন একটি সরল ও প্রাথমিক মাইক্রোকন্ট্রোলারের গাঠনিক কাঠামো দেখবো।
CPU (সিপিইউ)
CPU এর অর্থ হলো সেন্ট্রাল প্রসেসিং ইউনিট যা মূলত ALU, Accumulator, Control Unit, Flag, Stack Pointer ও কিছু General purpose register নিয়ে তৈরি। মাইক্রোকন্ট্রলারের লজিক্যাল কাজগুলো সিপিইউ এর ALU তে হয়ে থাকে।
রেম হতে ইন্সট্রাকশন কে ইনস্ট্রাক্টশন রেজিস্টারে স্থানান্তরিত করা হয়। এসেম্বলি মূলত ল্যাংগুয়েজের ইন্সট্রাকশনকে মেশিন ল্যাংগুয়েজে রুপান্তরিত করে থাকে। ও ALU তে প্রয়োজনীয় লজিক্যাল কাজগুলো সম্পন্ন করা হয়। পরিশেষে মেমোরিতে অর্থাৎ আউটপুট রেজিস্টারে প্রেরণ করে।
মেমোরিঃ
মাইক্রোকন্ট্রলারের অভ্যন্তরীণে সেমিকন্ডাক্টর মেমোরি ব্যবহিত হয় যেখানে র্যাম, রম থাকে। র্যাম হলো অস্থায়ী মেমোরি যে বিদ্যুৎ সরবরাহ বন্ধ হয়ে গেলে মুছে যায় পক্ষান্তরে রমে ডাটা স্থায়ী ভাবে থাকে।
ইনপুট/আউটপুট পোর্ট
বিভিন্ন সেন্সর থেকে মাইক্রোকন্ট্রলার ইনপুট হিসাবে সিগনাল গ্রহন করে থাকে এবং মাইক্রোকন্ট্রলার আউটপুটে এল সি ডি ডিস্প্লে, সেভেন সেগমেন্ট ডিস্প্লে, স্টেপার মোটর, সেন্সর ইত্যাদি যুক্ত করা হয়।
এই সকল সিগন্যাল গ্রহণ ও নির্গমন যে পোর্টের মাধ্যমে হয় তাকে ইনপুট/আউটপুট পোর্ট বলে। এই পোর্টগুলো হলো মাইক্রোকন্ট্রলারের এক বা একাদিক রেজিস্টার যার বিট মাইক্রোকন্ট্রলারের বাহ্যিক পিন এর সাথে লজিক্যালি যুক্ত থাকে। একই পোর্টকে ইউজার ইচ্ছা করলে প্রোগ্রাম দ্বারা ইনপুট এবং আউটপুট হিসেবে নির্ধারন করতে পারবে।
পোর্টসমুহ দুই ধরনের হয়ে থাকে
১। সিরিয়াল পোর্টঃ সিরিয়াল ডাটা কমিউনিকেশনের জন্য সিরিয়াল পোর্ট
২। প্যারালাল পোর্টঃ প্যারালাল ডাটা কমিউনিকেশনের জন্য প্যারালাল পোর্ট
টাইমার ও কাউন্টার
বেশিরভাগ মাইক্রোকন্ট্রোলারে একটি বা কোন কোন ক্ষেত্রে একের বেশিও টাইমার কাউন্টার থেকে থাকে। এটি মূলত সময় নির্ধারন, বিরতি পরিমাপ ইত্যাদি গণনা করে থাকে। এটার প্রধান কাজ ফ্রিকুয়েন্সি এবং ক্লক ফাংশন পরিমাপ করা। এটা প্রধানত ৮ বিট বা ১৬ বিটের রেজিস্টর।
ডিজিটাল টু এনালগ কনভার্টার
এটা ডিজিটাল সিগন্যাল কে এনালগ সিগন্যালে রুপান্তরিত করে থাকে এবং বিভিন্ন এনালগ ডিভাইসকে নিয়ন্ত্রন করে থাকে।
এনালগ টু ডিজিটাল কনভার্টার
বিভিন্ন এনালগ সেন্সর ও এনালগ ডিভাইস হতে আগত এনালগ সিগন্যাল মাইক্রোকন্ট্রোলারে প্রবেশ করে। কিন্তু আমরা জানি মাইক্রোকন্ট্রোলারের সিপিইউ এনালগ ডাটা রিড করতে পারে না। তাই উক্ত সিগন্যালকে ডিজিটাল সিগন্যালে রুপান্তরিত করতে হয়। এটাই মূলত এই কনভার্টার করে থাকে।
ইন্টারাপ কন্ট্রোলারঃ
একটি প্রোগ্রাম চলাকালে প্রোগ্রামের স্বাভাবিক প্রবাহ বাধাগ্রস্থ করে অন্য একটি কাজ করাকে ইন্টারাপ বলা হয়। উক্ত কাজ এক্সিকিউশন করার শেষে প্রসেসর আবার মূল প্রোগ্রামে ফিরে যায়। এটাই মূলত ইন্টারাপ কন্ট্রোলারের কাজ।
ওয়াচডগ টাইমারঃ
মাইক্রোকন্ট্রলারের জটিল নিরাপত্তা ব্যবস্থা ব্যবহার ও বিভিন্ন গুরুত্বপূর্ন বিষয় ব্যবহার করা হয়ে থাকে। মাইক্রোকন্ট্রলার কাজ চলাকালিন অবস্থায় ত্রুটির কারনে প্রোগ্রাম বা হার্ডওয়্যারে অপারশেন ব্যহত হয়। ওয়াচডগ টাইমার সব সময় এই অবস্থা পর্যবেক্ষন করে থাকে এবং প্রোগ্রাম বা হার্ডওয়্যারে সমস্যা হলে স্বয়ংক্রিয়ভাবে রিসেট করে পুনরায় চালু করে।
মাইক্রোকন্ট্রোলার কিনবেন কি কি বিষয়ের উপর বিবেচনা করে?
- প্রসেসরের ওয়ার্ড সাইজঃ মাইক্রোকন্ট্রলারের ALU একটি সিঙ্গেল ইন্সট্রাকশন যত বিট ডাটার লজিক্যাল ও গাণিতিক যৌক্তিক কার্য সম্পাদন করতে পারে তাকে মাইক্রোকন্ট্রলার ওয়ার্ড সাইজ বলে। বাজারে ৪, ৮, ১৬, ৩২ বিটের ওয়ার্ড সাইজ মাইক্রোকন্ট্রলার পাওয়া যায়। চাহিদা অনুযায়ী উপযুক্ত ক্লক ফ্রিকুয়েন্সির মাইক্রোকন্ট্রলার ব্যবহার করা উচিত।
- কাজের গতিঃ সিস্টেমের চাহিদা অনুসারে উপযুক্ত ক্লক ফ্রিকুয়েন্সি মাইক্রোকন্ট্রলার নির্বাচন করা উচিত।
- RAM ও ROM এর উপর বিবেচনা করে চাহিদা অনুয়াযায়ি মাইক্রোকন্ট্রলার নির্বাচন করতে হবে।
- ইনপুট-আউটপুট পিনসমূহ এবং টাইমারের উপর বিবেচনা করে মাইক্রোকন্ট্রলার কিনতে হবে।
মাইক্রোকন্ট্রোলারের কিছু জনপ্রিয় ব্র্যান্ড এবং তাদের পরিচিত
- Microchip PIC/dsPIC.
- Arduino (AVR দিয়ে তৈরি).
- Atmel (AVR/ARM).
- Toshiba/Samsung/intel ইত্যাদি।
এছাড়া অরো অনেক ব্র্যান্ড রয়েছে।
Microchip PIC
PIC16F সিরিজ যেমনঃ 16F877, 16F72, 16F628, 16F676 ইত্যাদি আরো অনেক মডেলের আছে। এছাড়া PIC18F, PIC24F, PIC32F ইত্যাদি সিরিজ আছে। তবে এগুলো একটি অন্যগুলোর চেয়ে ভিন্ন কিন্তু সম্পূর্নভাবে ভিন্ন নয়। তবে বহুল ব্যবহিত হয় 16F877A মডেল।
প্রতিটি মাইক্রোকন্ট্রলারের নিজস্ব ফিচার রয়েছে। কাজের ধরন অনুসারে আমাদেরকে এগুলো বাছাই করতে হবে।
মাইক্রোকন্ট্রোলারে কি প্রোগ্রামিং ল্যাংগুয়েজ ব্যবহার করা হয়?
মাইক্রোকন্ট্রলারের জন্য অনেক ধরনের প্রোগ্রামিং ল্যাঙ্গুয়েজ রয়েছে। তবে প্রোগ্রামিং সি ল্যাঙ্গুয়েজ শিখাটাই শ্রেয়। কারন সি ল্যাঙ্গুয়েজকে প্রোগ্রামিং এর “মা” বলা হয়। অনেক প্রোগ্রামারদের হাতে খড়ি হয়ে থাকে সি ল্যাংগুয়েজের মাধ্যমে। মাইক্রোচিপ এর জন্য সবচেয়ে ভালো কম্পাইলার হলো মাইক্রোপ্রো পিক। এটা দিয়ে মূলত প্রোগ্রাম কম্পাইল করবেন।
মাইক্রোকন্ট্রোলার প্রোগ্রাম রাইট বা বার্নার পদ্ধতি
সি প্রোগ্রামিং সফটওয়্যারে প্রোগ্রাম বা কোড সঠিকভাবে লেখার পরে তা মাইক্রোকন্ট্রলারে লোড করতে হবে। প্রোগ্রামকে লোড করার জন্য একটি ডিভাইসের প্রয়োজন পরে যার নাম PIC Programmer/ PIC Burner. এটি কম্পিউটারে ইন্সটল করে নিতে হয়। অনলাইনে সার্চ করলেই সফটওয়্যারটি খুজে পাবেন।
PIC 16F877A নিয়ে কিছু সাধারন আলোচনা
Input/Output = RA, RB, RC, RD, RE (0 to N)
AN(O to N)=Analog to Digital ADC pin
SDA, SCL=I2C protocol.
TX, RX = USART protocol.
PSP(O to N) = PSP protocol.
INT(O to N) = External interrupt.
PGC, PGD, PGM= Program Load Pin.
CCP= Capture/Compare/PWM
OSC1, OSC2 = Crystal.
যে কোন একটি পিনকে একটি প্রোগ্রামের জন্য একটি কাজেই ব্যবহার করা যাবে। আজ এই পর্যন্ত বন্ধুরা
মাইক্রোকন্ট্রোলার ও মাইক্রোপ্রসেসর টপিক বিস্তারিত জানতে ইংরেজি লেখাটি পড়ুনঃ Microcontroller vs Microprocessor and their functions