পোস্টগুলি

মে, ২০১৭ থেকে পোস্টগুলি দেখানো হচ্ছে
ছবি
১০. 8051 এর ক্ষেত্রে সিরিয়াল কমিউনিকেশন পেরিফেরাল কমিউনিকেশন এম্বেডেড সিস্টেমের অতি গুরুত্বপূর্ণ একটি বিষয়। এটি ছাড়া এম্বেডেড সিস্টেমের কথা কল্পনাও করা যায়না। এম্বেডেড সিস্টেমে ব্যবহৃত কমিউনিকেশনকে মুলত দুই ভাগে ভাগ করা যায়। প্যারালাল কমিউনিকেশন এবং সিরিয়াল কমিউনিকেশন। এই দুটি কমিউনিকেশনেরই নিজস্ব কিছু সুবিধা এবং অসুবিধা আছে। এখন প্রশ্ন হল এই কমিউনিকেশনের মাধ্যমে কি ধরনের ডেটা আদান-প্রদান হয় এবং কিভাবেই বা হয়? যেহেতু এম্বেডেড সিস্টেম পুরোটাই ডিজিটাল সিস্টেম তাই ডিজিটাল সিগন্যাল আদান-প্রদানের মাধ্যমেই এটা কমিউনিকেট করে। আর ডিজিটাল সিগন্যাল মানেই হল 0 এবং 1. অর্থাৎ মাইক্রোকন্ট্রোলার বা মাইক্রোপ্রসেসর এই 0 আর 1 এর বিভিন্ন প্যাটার্ন পাঠানোর মাধ্যমেই নিজেদের মধ্যে কমিউনিকেট করে থাকে।  ধরা যাক, একটি মাইক্রোকন্ট্রোলার থেকে 'A' অক্ষরটি আরেকটি মাইক্রোকন্ট্রোলারে পাঠানো হবে। মাইক্রোকন্ট্রোলার তো আসলে 'A' অক্ষরটি চিনে না বা জানেও না। সে সব সংখ্যা বা অক্ষরেরই ASCII মান বুঝে। 'A' মানে তার কাছে হল 01000001 এরকম একটি 0 আর 1 এর প্যাটার্ন। এখন এই প্যাটার্নটি সে সিরিয়া
ছবি
৯. 8051 এর ক্ষেত্রে টাইমার পেরিফেরাল টাইমার হল যেকোন মাইক্রোকন্ট্রোলারের সবচেয়ে গুরুত্বপূর্ণ একটি পেরিফেরাল। কোন একটি মাইক্রোকন্ট্রোলারের কাজ করার সুক্ষ্ণতা মূলত এই টাইমারের উপরই ডিপেন্ড করে। টাইমার ছাড়া পুরো এম্বেডেড সিস্টেমই এককথায় অচল। এই পোস্টে আমরা 8051 এর টাইমার সম্পর্কে এবং এর রিলেটেড সব রেজিস্টার এবং অপারেশন সম্পর্কে জানবো। এর আগের পোস্টে অবশ্য আমরা জেনেছিলাম যে 8051 মাইক্রোকন্ট্রোলারের দুইটি ১৬-বিটের টাইমার/কাউন্টার রয়েছে। এদেরকে যথাক্রমে Timer/Counter0 এবং Timer/Counter1 বলা হয়। 8051 ফ্যামিলির কোন কোন মডেলে (AT89C52,AT89C55) অবশ্য তৃতীয় একটি টাইমার রয়েছে যেটাকে Timer/Counter2 বলা হয়। আচ্ছা টাইমারের সাথে সাথে আবার কাউন্টার কথাটা আমরা দেখতে পাচ্ছি। এটার মানে কি? এটার মানে একটু পরে আমরা বুঝতে পারবো। তার আগে আমাদের জানা দরকার যে টাইমার আসলে কিভাবে কাজ করে? মাইক্রোকন্ট্রোলারের প্রধান ক্লক পালসে্‌র সোর্স হল ক্রিস্টাল অসসিলেটর। ক্রিস্টাল অসসিলেটর থেকে যে ক্লক পালস্‌ আসে সেটাকে কাজে লাগিয়েই মূলত মাইক্রোকন্ট্রোলারের সব পেরিফেরালস্‌ কাজ করে। টাইমারও ঐ ক্লক পালস্‌কে কাজে লাগিয়েই
ছবি
৮. ইন্টারাপ্ট কি এবং 8051 এর ক্ষেত্রে ইন্টারাপ্ট এর আগের অনেক পোস্টেই আমরা " ইন্টারাপ্ট " কথাটা শুনে এসেছি। কিন্তু এই ইন্টারাপ্ট টা কি জিনিস তা হয়ত এখনও আমাদের কাছে অপরিচিতই থেকে গিয়েছে। আজকে আমরা মাইক্রোকন্ট্রোলারের ক্ষেত্রে  ইন্টারাপ্ট কি এবং 8051 এর ইন্টারাপ্ট রিলেটেড সব রেজিস্টার ও বিটের সাথে পরিচিত হব। এটা শুধু 8051 মাইক্রোকন্ট্রোলারের ক্ষেত্রেই না যেকোন মাইক্রোকন্ট্রোলারের ক্ষেত্রেই খুবই গুরুত্বপূর্ণ একটি ফিচার। ইন্টারাপ্ট বিষয়টা আমরা একটি উদাহরনের মাধ্যমে চিন্তা করি। ধরা যাক মিঃ 'ক' একজন খুবই ভালো ছেলে। স্কুলে স্যার তাকে দশটি ম্যাথ হোমওয়ার্ক দিয়েছে। সে তার হোমওয়ার্ক করতে বসেছে এবং ৬ নম্বর অঙ্ক করার পর তার মা তাকে বলল যে তার শরীর খারাপ করছে এবং এজন্যে মিঃ 'ক' এর সাথে সে ডাক্তারের কাছে যেতে চাচ্ছে । এখন মিঃ 'ক' এর কাছে কোন কাজটি বেশি গুরুত্বপূর্ণ ? সে তার মাকে ডাক্তারের কাছ থেকে দেখিয়ে নিয়ে এসেও বাকি অঙ্ক গুলো করতে পারে অথবা বাকি চারটি অঙ্ক করে তার মাকে ডাক্তারের কাছে নিয়ে যেতে পারে। কিন্তু মাকে ডাক্তারের কাছে নিয়ে যাওয়া তার কাছে সেই মুহ
ছবি
৭. 8051 এর বেসিক কিছু জিনিস আজকের এই পোস্টটি একটু অগোছালো টাইপের। আজকে আমরা 8051 এর আরো কিছু বেসিক জিনিস যেমন স্পেশাল কিছু রেজিস্টারের নাম, এদের কাজ, ইন্সট্রাকশন এক্সিকিউশন টাইমিং, মাইক্রোকনট্রোলারে প্রোগ্রামিং করার কৌশল, ইন্টারাপ্ট এসব বিষয়ে শিখবো। যদিও বিষয় গুলো একটা আরেকটার সাথে তেমন ভাবে রিলেটেড নয়, তবুও এই প্রত্যেকটা টার্মের সাথেই আমরা এর আগের পোস্টগুলোয় পরিচিত হয়েছি। সেসব পোস্টে তেমন ভাবে কিছু বলা হয়নি জন্যেই আজকের পোস্টে এসব খুচরা জিনিসপাতি গুলো নিয়ে আমরা আলাদাভাবে আলোচনা করব। তবে এই পোস্টটি পড়ার আগে অবশ্যই প্রোগ্রাম-মেমোরি এবং ডেটা-মেমোরি রিলেটেড পোস্টটি পড়ে আসার অনুরোধ রইল। নাহলে বোঝাটা একটু টাফ হয়ে যাবে। --------------------------------------------------------------------------------------------------------------- প্রথমেই আমরা রেজিস্টার নিয়ে একটু কথা বলি। রেজিস্টারও যে একধরনের মেমোরি এটা আমরা অনেক আগেই জানতে পেরেছি। কিন্তু এটা আসলে টেম্পোরারি টাইপের মেমোরি। রেজিস্টার ৮ বিটের অথবা ১৬ বিটের অথবা ৩২ বিটের হতে পারে। কিন্তু 8051 এর ক্ষেত্রে ৮ বিট এবং ১৬ বিটের রেজিস্টারই আছ
ছবি
৬. 8051 এর মেমোরি এবং রেজিস্টারের সাথে পরিচিতি আমরা আগেই জেনেছি যে 8051 মাইক্রোকন্ট্রোলারে দুই ধরনের মেমোরি থাকে। যথা - প্রোগ্রাম মেমোরি এবং ডেটা মেমোরি। প্রোগ্রাম মেমোরিতে ইন্সট্রাকশন জমা থাকে এবং প্রসেসের পর ডেটা ডেটা-মেমোরিতে জমা হয়। বিষয়টা আসলে এসেম্বলি ল্যাংগুয়েজ দিয়ে বেশি ভালো করে বোঝা যায়। কেননা এসেম্বলিতে অপকোড এবং অপারেন্ড নামে দুটি বিষয় আছে। অপকোড জমা হয় প্রোগ্রাম মেমোরিতে এবং অপারেন্ড থাকে ডেটা-মেমোরিতে। প্রোগ্রাম মেমোরি সম্পর্কে এর আগের পোস্টে আমরা জেনেছি। কিন্তু ডেটা-মেমোরি সম্পর্কে বিশদভাবে আমরা আজকের পোস্টে শিখবো। এবং সেই সাথে রেজিস্টার সম্পর্কেও শিখবো। রেজিস্টার সম্পর্কে এর আগে আমরা জেনেছি যে রেজিস্টারও হল একধরনের টেম্পোরারি মেমোরি যেখানে ডেটা টেম্পোরারি ভাবে জমা রাখা হয় যাতে করে সিপিউ তার অপারেশন দ্রুততার সঙ্গে সম্পূর্ণ করতে পারে। এখন কথা হল এই রেজিস্টারগুলো কোথায় থাকে? নিচের চিত্রটা দেখলে বিষয় গুলো অনেকটা পরিষ্কার হয়ে যাবে। উপরের চিত্রে আমরা 8051 এর ডেটা-মেমোরির একটি ব্লক ডায়াগ্রাম দেখতে পাচ্ছি। আমরা এর আগে জেনেছি যে 8051 এর ক্ষেত্রে মিনিমাম ড
ছবি
৫. 8051 এর ইন্টারনাল আর্কিটেকচার  এবং কার্যক্রম মাইক্রোকন্ট্রোলার হল একটা সিঙ্গেল চিপ মাইক্রোকম্পিউটার। একটা কম্পিউটারের ভিতরে কি কি থাকে? প্রসেসর,র‍্যাম,রোম,ইনপুট/আউটপুট ডিভাইস (মনিটর,ডিভিডি রাইটার,সাউন্ড বক্স ইত্যাদি)। তেমনি আমাদের মাইক্রোকন্ট্রোলারের ভিতরেও এইসব জিনিস থাকে। তবে খুবই সীমিত আকারে থাকে। যেমন র‍্যাম থাকে কয়েশ বাইট থেকে কয়েক হাজার বাইট পর্যন্ত, রোমের পরিমানও কয়েক হাজার বাইট, আর ইনপুট/আউটপুট ডিভাইস কানেক্ট করার জন্যে থাকে ইনপুট/আউটপুট পিন। কম্পিউটারের যেমন ক্লক স্পিড থাকে তেমনি আমাদের মাইক্রকন্ত্রলারের ও ক্লক  স্পিড থাকে, যেটা ক্রিস্টাল অসসিলেটরের মাধ্যমে মাইক্রোকন্ট্রোলারকে প্রদান করা হয় বা অনেক মডেলের মাইক্রোকন্ট্রোলারে ইন্টারনাল ক্লক থাকেই। তারমানে আমরা এটুকু বুঝতে পারছি যে মাইক্রোকন্ট্রোলার হল আসলে কম্পিউটারের একটা মিনিয়েচার ভার্সন। এই পোস্টটি একটু বড় হবে এবং খুবই মনোযোগ সহকারে পড়ার অনুরোধ থাকলো। কেননা এটার উপরই মাইক্রোকন্ট্রোলারের বেসিক অনেক কিছু ডিপেন্ড করছে। এই পোস্টে আমরা স্পেসিফিকভাবে শুধু 8051 এর বেসিক  ইন্টারনাল আর্কিটেকচার এবং এর ভিতরের কাজকর্মগুলোর সাথ
ছবি
৪. 8051 এর পিন ডায়াগ্রাম এবং প্রয়োজনীয় সার্কিট কানেকশন 8051 হল ৪০ পিনের একটি ডুয়াল ইন লাইন চিপ। পিনের সংখ্যা ৪০ হলেও অবশ্য কোনটা কোন পিন তা মনে রাখা কঠিন কোন কাজ নয়। কেননা এই ৪০টি পিনের মধ্যে ৩২ টি পিনই হল ইনপুট/আউটপুট পিন, ২টি পিন ৫ ভোল্ট এবং গ্রাউন্ডের জন্যে, ২ টি পিন ক্লক সিগন্যাল ইনপুটের জন্যে, ১ টি রিসেট পিন , অবশিষ্ট থাকে আর ৩ টি পিন যথা- EA(External Access), PSEN(Program Store Enable),ALE(Address Latch Enable). এই হল টোটাল ৪০ পিনের হিসাব। নিচে 8051 এর পিন ডায়াগ্রাম এবং এর প্রত্যেক পিনের কাজ সম্পর্কে সংক্ষিপ্ত ভাবে আলোচনা করা হল। চিপের উপরে ডট সাইনের নিকটস্থ পিনকে ১ নম্বর পিন ধরা হয়। পিনগুলোর কাজের বর্ণনা নিচে দেয়া হল- পিন ১ থেকে ৮ঃ এই ৮ টি পিন পোর্ট-১ নামে পরিচিত। এই পিনগুলো বাইডিরেকশনাল ইনপুট/আউটপুট পিন। এই পিনের আর কোন এক্সট্রা ফাংশন নেই। এরা প্রত্যেকেই ইন্টারনালই পুল-আপ রেজিস্টারের সাথে কানেক্টেড থাকে। পিন ৯ঃ এটা হল রিসেট পিন। যেকোন ডিজিটাল আইসিতেই রিসেট পিন থাকে।এই পিনটি হল একটিভ হাই। অর্থাৎ ৫ ভোল্টের সাথে এই পিনটি সংযোগ করলে মাইক্রোকন্ট্রোলারের কোড আবা
ছবি
৩. 8051 মাইক্রোকন্ট্রলারের সাথে পরিচিতি পর্ব 8051 হচ্ছে ইন্টেলের ডেভেলপ করা মাইক্রোকন্ট্রোলার। যার জন্ম আজ থেকে প্রায় ৩৭ বছর আগে ১৯৮০ সালের দিকে। এর ইন্টারনাল আর্কিটেকচার মুলত হার্ভার্ড আর্কিটেকচার এবং এটি CISC(Complex Instructions Set Computer)ইন্সট্রাকশন সেট বিশিষ্ট সিঙ্গেল চিপ  ৮ বিট মাইক্রোকন্ট্রোলার , যার অর্থ হল এই মাইক্রোকন্ট্রোলারের সব অপারেশনই ৮ বিটের মধ্যে সীমাবদ্ধ। অর্থাৎ ১৬ বিটের কোন নাম্বার নিয়ে অপারেশন করতে হলে এটা প্রথমে ১৬ বিটের নাম্বারটিকে ৮ বিট আকারে ভেঙে নেয় এবং তারপর অপারেশন সম্পূর্ণ করে থাকে। ইন্টেল যখন এটা বের করে তখন এটা MCS51 ফ্যামিলি হিসেবে পরিচিত ছিল। প্রথম যখন ইন্টেল এটা বের করে তখন N-Mos টেকনোলজি ইউজ করেছিলো। কিন্তু পরের ভার্সন ডেভেলপ করার সময় তারা C-Mos টেকনোলজি ইউজ করে এরফলে পাওয়ার কঞ্জিউম অনেকাংশে কমে যায় এবং এম্বেডেড সিস্টেমে এই মাইক্রোকন্ট্রোলার ব্যাপক জনপ্রিয়তা অর্জন করে। C-Mos টেকনোলজি ইউজ করার জন্যে পরবর্তী ভার্সনে এর নামের সাথে C অক্ষরটি যুক্ত হয়। যেমন 80C51. এরপর পরবর্তীতে   বিভিন্ন কোম্পানি যেমন Atmel এই মাইক্রোকন্ট্রোলার ম্য