SPI কমিউনিকেশন প্রোটোকলের মূল বিষয়: 13 টি ধাপ
SPI কমিউনিকেশন প্রোটোকলের মূল বিষয়: 13 টি ধাপ
SPI কমিউনিকেশন প্রোটোকলের মূল বিষয়গুলি
SPI কমিউনিকেশন প্রোটোকলের মূল বিষয়গুলি

যখন আপনি একটি মাইক্রোকন্ট্রোলারকে একটি সেন্সর, ডিসপ্লে, বা অন্য মডিউলের সাথে সংযুক্ত করেন, আপনি কি কখনো চিন্তা করেন যে দুটি ডিভাইস কিভাবে একে অপরের সাথে কথা বলে? তারা ঠিক কি বলছে? কিভাবে তারা একে অপরকে বুঝতে সক্ষম?

ইলেকট্রনিক ডিভাইসের মধ্যে যোগাযোগ মানুষের মধ্যে যোগাযোগের মতো। উভয় পক্ষকে একই ভাষায় কথা বলতে হবে। ইলেকট্রনিক্সে, এই ভাষাগুলিকে যোগাযোগ প্রোটোকল বলা হয়। সৌভাগ্যক্রমে আমাদের জন্য, বেশিরভাগ DIY ইলেকট্রনিক্স প্রকল্প নির্মাণের সময় আমাদের কয়েকটি যোগাযোগ প্রোটোকল জানতে হবে। এই সিরিজের নিবন্ধে, আমরা তিনটি সর্বাধিক প্রচলিত প্রোটোকলের মূল বিষয়গুলি নিয়ে আলোচনা করব: সিরিয়াল পেরিফেরাল ইন্টারফেস (SPI), ইন্টার-ইন্টিগ্রেটেড সার্কিট (I2C), এবং ইউনিভার্সাল অ্যাসিঙ্ক্রোনাস রিসিভার/ট্রান্সমিটার (UART) চালিত যোগাযোগ। প্রথমে, আমরা ইলেকট্রনিক যোগাযোগ সম্পর্কে কিছু মৌলিক ধারণা দিয়ে শুরু করব, তারপর SPI কীভাবে কাজ করে তা বিস্তারিতভাবে ব্যাখ্যা করুন। পরবর্তী প্রবন্ধে, আমরা UART চালিত যোগাযোগ নিয়ে আলোচনা করব, এবং তৃতীয় নিবন্ধে, আমরা I2C- এ প্রবেশ করব। SPI, I2C, এবং UART ইউএসবি, ইথারনেট, ব্লুটুথ এবং ওয়াইফাই এর মত প্রোটোকলের তুলনায় কিছুটা ধীর, কিন্তু এগুলি অনেক সহজ এবং কম হার্ডওয়্যার এবং সিস্টেম রিসোর্স ব্যবহার করে। SPI, I2C, এবং UART মাইক্রোকন্ট্রোলার এবং মাইক্রোকন্ট্রোলার এবং সেন্সরের মধ্যে যোগাযোগের জন্য আদর্শ যেখানে উচ্চ গতির ডেটা স্থানান্তরের প্রয়োজন হয় না।

ধাপ 1: সিরিয়াল বনাম। প্যারালেল কমিউনিকেশন

সিরিয়াল বনাম। প্যারালেল কমিউনিকেশন
সিরিয়াল বনাম। প্যারালেল কমিউনিকেশন

বৈদ্যুতিন ডিভাইসগুলি ডিভাইসের মধ্যে শারীরিকভাবে সংযুক্ত তারের মাধ্যমে ডেটা বিট পাঠিয়ে একে অপরের সাথে কথা বলে। বিট একটি শব্দে একটি অক্ষরের মতো, 26 অক্ষরের পরিবর্তে (ইংরেজি বর্ণমালায়), একটি বিট বাইনারি এবং শুধুমাত্র 1 বা 0. হতে পারে। 5 V তে পরিচালিত একটি সিস্টেমে, 0 বিটকে 0 V এর সংক্ষিপ্ত পালস হিসাবে এবং 1 বিটকে 5 V এর একটি ছোট পালস দ্বারা যোগাযোগ করা হয়।

ডেটার বিট সমান্তরাল বা সিরিয়াল আকারে প্রেরণ করা যেতে পারে। সমান্তরাল যোগাযোগে, ডেটার বিটগুলি একই সময়ে পাঠানো হয়, প্রতিটি পৃথক তারের মাধ্যমে। নিম্নলিখিত চিত্রটি বাইনারি (01000011) এ "C" অক্ষরের সমান্তরাল সঞ্চালন দেখায়:

ধাপ ২:

সিরিয়াল যোগাযোগে, বিটগুলি একটি একক তারের মাধ্যমে একে একে পাঠানো হয়। নিচের চিত্রটি বাইনারি (01000011) এ "C" অক্ষরের সিরিয়াল ট্রান্সমিশন দেখায়:

ধাপ 3:

ছবি
ছবি

ধাপ 4: SPI কমিউনিকেশনের ভূমিকা

SPI কমিউনিকেশনের ভূমিকা
SPI কমিউনিকেশনের ভূমিকা

এসপিআই একটি সাধারণ যোগাযোগ প্রোটোকল যা বিভিন্ন ডিভাইস দ্বারা ব্যবহৃত হয়। উদাহরণস্বরূপ, এসডি কার্ড মডিউল, আরএফআইডি কার্ড রিডার মডিউল এবং 2.4 গিগাহার্জ ওয়্যারলেস ট্রান্সমিটার/রিসিভার মাইক্রোকন্ট্রোলারের সাথে যোগাযোগের জন্য এসপিআই ব্যবহার করে।

SPI- এর একটি অনন্য সুবিধা হল যে তথ্য বিনা বাধায় স্থানান্তর করা যায়। ক্রমাগত প্রবাহে যে কোনও সংখ্যক বিট পাঠানো বা গ্রহণ করা যেতে পারে। I2C এবং UART এর সাথে, প্যাকেটে ডেটা পাঠানো হয়, নির্দিষ্ট সংখ্যক বিটের মধ্যে সীমাবদ্ধ। শুরু এবং বন্ধের শর্তগুলি প্রতিটি প্যাকেটের শুরু এবং শেষ নির্ধারণ করে, তাই ডেটা সংক্রমণের সময় বিঘ্নিত হয়। SPI- এর মাধ্যমে যোগাযোগকারী ডিভাইসগুলি মাস্টার-স্লেভ সম্পর্কের মধ্যে রয়েছে। মাস্টার হ'ল নিয়ন্ত্রণকারী ডিভাইস (সাধারণত একটি মাইক্রোকন্ট্রোলার), যখন ক্রীতদাস (সাধারণত একটি সেন্সর, ডিসপ্লে বা মেমরি চিপ) মাস্টারের কাছ থেকে নির্দেশ নেয়। এসপিআই এর সবচেয়ে সহজ কনফিগারেশন হল একক মাস্টার, একক দাস ব্যবস্থা, কিন্তু একজন মাস্টার একাধিক দাসকে নিয়ন্ত্রণ করতে পারেন (নীচে এই বিষয়ে আরো)।

ধাপ 5:

ছবি
ছবি

ধাপ 6:

MOSI (মাস্টার আউটপুট/স্লেভ ইনপুট) - মাস্টারের জন্য দাসকে ডেটা পাঠানোর লাইন।

MISO (মাস্টার ইনপুট/স্লেভ আউটপুট) - ক্রীতদাসের জন্য লাইনটি মাস্টারের কাছে তথ্য পাঠানোর জন্য।

SCLK (ঘড়ি) - ঘড়ি সংকেতের জন্য লাইন।

এসএস/সিএস (স্লেভ সিলেক্ট/চিপ সিলেক্ট) - কোন দাসকে ডেটা পাঠাতে হবে তা বেছে নেওয়ার জন্য মাস্টারের লাইন

ধাপ 7:

ছবি
ছবি

*অনুশীলনে, দাসের সংখ্যা সিস্টেমের লোড ক্যাপাসিট্যান্স দ্বারা সীমাবদ্ধ, যা ভোল্টেজের স্তরের মধ্যে সঠিকভাবে স্যুইচ করার জন্য মাস্টারের ক্ষমতা হ্রাস করে।

ধাপ 8: কিভাবে SPI কাজ করে

ঘরিটি

ঘড়ি সংকেত মাস্টার থেকে ডেটা বিটের আউটপুটকে ক্রীতদাস দ্বারা বিটগুলির নমুনায় সিঙ্ক্রোনাইজ করে। প্রতিটি ঘড়ি চক্রের মধ্যে একটি বিট ডেটা স্থানান্তরিত হয়, তাই ডেটা স্থানান্তরের গতি ঘড়ি সংকেতের ফ্রিকোয়েন্সি দ্বারা নির্ধারিত হয়। এসপিআই যোগাযোগ সর্বদা মাস্টার দ্বারা শুরু হয় কারণ মাস্টার কনফিগার করে এবং ঘড়ি সংকেত তৈরি করে।

যেকোনো যোগাযোগের প্রোটোকল যেখানে ডিভাইসগুলি একটি ঘড়ি সংকেত ভাগ করে তা সিঙ্ক্রোনাস নামে পরিচিত। SPI একটি সমকালীন যোগাযোগ প্রোটোকল। এমন অ্যাসিঙ্ক্রোনাস পদ্ধতি রয়েছে যা ঘড়ি সংকেত ব্যবহার করে না। উদাহরণস্বরূপ, ইউএআরটি যোগাযোগে, উভয় পক্ষই একটি পূর্ব-কনফিগার করা বড রেটে সেট করা হয় যা ডেটা ট্রান্সমিশনের গতি এবং সময় নির্ধারণ করে।

SPI- এর ক্লক সিগন্যাল ক্লক পোলারিটি এবং ক্লক ফেজের বৈশিষ্ট্য ব্যবহার করে পরিবর্তন করা যায়। এই দুটি বৈশিষ্ট্য একসাথে কাজ করে যখন বিট আউটপুট হয় এবং কখন সেগুলো নমুনা করা হয়। ঘড়ি মেরুতা মাস্টার দ্বারা সেট করা যেতে পারে যাতে বিটগুলি আউটপুট হতে পারে এবং ঘড়ির চক্রের উঠতি বা পতনের প্রান্তে নমুনা দেওয়া যায়। ক্লক ফেজ আউটপুট এবং স্যাম্পলিংয়ের জন্য সেট করা যেতে পারে ঘড়ির চক্রের প্রথম প্রান্ত বা দ্বিতীয় প্রান্তে, তা নির্বিশেষে এটি উঠছে বা পড়ছে।

দাস নির্বাচন

ক্রীতদাসের CS/SS লাইনকে কম ভোল্টেজের স্তরে সেট করে মাস্টার কোন দাসের সাথে কথা বলতে চান তা বেছে নিতে পারেন। নিষ্ক্রিয়, অ-প্রেরণ অবস্থায়, ক্রীতদাস নির্বাচন লাইন একটি উচ্চ ভোল্টেজ স্তরে রাখা হয়। একাধিক সিএস/এসএস পিন মাস্টারে পাওয়া যেতে পারে, যা একাধিক ক্রীতদাসকে সমান্তরালে তারের জন্য অনুমতি দেয়। যদি শুধুমাত্র একটি সিএস/এসএস পিন থাকে, একাধিক ক্রীতদাসকে ডেইজি-শৃঙ্খল দ্বারা মাস্টারের সাথে সংযুক্ত করা যেতে পারে।

একাধিক দাস SPI

একটি একক মাস্টার এবং একটি একক দাসের সাথে কাজ করার জন্য সেট আপ করা যেতে পারে, এবং এটি একটি একক মাস্টার দ্বারা নিয়ন্ত্রিত একাধিক ক্রীতদাসের সাথে সেট আপ করা যেতে পারে। একাধিক দাসকে মাস্টারের সাথে সংযুক্ত করার দুটি উপায় রয়েছে। যদি মাস্টারের একাধিক স্লেভ সিলেক্ট পিন থাকে, তাহলে ক্রীতদাসদের এইভাবে সমান্তরালভাবে তারযুক্ত করা যেতে পারে:

ধাপ 9:

ছবি
ছবি

ধাপ 10:

মসি এবং মিসো

মাস্টার ক্রমাগত ক্রীতদাসকে তথ্য পাঠায় MOSI লাইনের মাধ্যমে। ক্রীতদাস MOSI পিনে মাস্টারের কাছ থেকে পাঠানো ডেটা গ্রহণ করে। মাস্টার থেকে দাসের কাছে পাঠানো ডেটা সাধারণত সবচেয়ে গুরুত্বপূর্ণ বিট দিয়ে পাঠানো হয়। ক্রীতদাস MISO লাইনের মাধ্যমে মাস্টারের কাছে ডেটা ফেরত পাঠাতে পারে। ক্রীতদাস থেকে ফেরত পাঠানো ডেটা সাধারণত কমপক্ষে উল্লেখযোগ্য বিট দিয়ে পাঠানো হয়। SPI ডেটা ট্রান্সমিশনের ধাপ 1. মাস্টার ঘড়ি সংকেত আউটপুট:

ধাপ 11:

ছবি
ছবি

যদি শুধুমাত্র একটি ক্রীতদাস নির্বাচিত পিন পাওয়া যায়, ক্রীতদাসদের এইভাবে ডেইজি-শৃঙ্খলিত হতে পারে:

ধাপ 12:

ছবি
ছবি
ছবি
ছবি
ছবি
ছবি
ছবি
ছবি

মসি এবং মিসো

মাস্টার ক্রমাগত ক্রীতদাসকে তথ্য পাঠায় MOSI লাইনের মাধ্যমে। ক্রীতদাস MOSI পিনে মাস্টারের কাছ থেকে পাঠানো ডেটা গ্রহণ করে। মাস্টার থেকে দাসের কাছে পাঠানো ডেটা সাধারণত সবচেয়ে গুরুত্বপূর্ণ বিট দিয়ে পাঠানো হয়।

ক্রীতদাস MISO লাইনের মাধ্যমে মাস্টারের কাছে ডেটা ফেরত পাঠাতে পারে। ক্রীতদাস থেকে ফেরত পাঠানো ডেটা সাধারণত কমপক্ষে উল্লেখযোগ্য বিট দিয়ে পাঠানো হয়।

এসপিআই ডেটা ট্রান্সমিশনের ধাপ

*নোট ইমেজ তালিকাভুক্ত Oboe আপনি সহজেই আলাদা করতে পারেন

1. মাস্টার ঘড়ি সংকেত আউটপুট:

2. মাস্টার এসএস/সিএস পিনকে কম ভোল্টেজ অবস্থায় নিয়ে যায়, যা ক্রীতদাসকে সক্রিয় করে:

3. মাস্টার MOSI লাইন বরাবর ক্রীতদাসকে এক এক সময়ে তথ্য পাঠায়। ক্রীতদাস বিটগুলি পড়ার সাথে সাথে তারা পড়ে:

4. যদি কোনো প্রতিক্রিয়া প্রয়োজন হয়, তাহলে ক্রীতদাস MISO লাইনের বরাবর মাস্টারকে এক এক করে তথ্য ফেরত দেয়। মাস্টার বিটগুলি পড়ার সাথে সাথে তারা পড়ে:

ধাপ 13: SPI এর উপকারিতা এবং অসুবিধা

SPI ব্যবহার করার কিছু সুবিধা এবং অসুবিধা আছে, এবং যদি বিভিন্ন যোগাযোগ প্রোটোকলের মধ্যে পছন্দ দেওয়া হয়, তাহলে আপনার প্রকল্পের প্রয়োজনীয়তা অনুসারে কখন SPI ব্যবহার করতে হবে তা আপনার জানা উচিত:

সুবিধাদি

কোন স্টার্ট এবং স্টপ বিট নেই, তাই ডেটাকে বাধা ছাড়াই ধারাবাহিকভাবে প্রবাহিত করা যায় I2C এর মত কোন জটিল স্লেভ অ্যাড্রেসিং সিস্টেম I2C এর চেয়ে বেশি ডেটা ট্রান্সফার রেট (প্রায় দ্বিগুণ দ্রুত) পৃথক MISO এবং MOSI লাইন, তাই ডেটা একই সময়ে পাঠানো এবং গ্রহণ করা যেতে পারে সময়

অসুবিধা

চারটি তার ব্যবহার করে এসপিআই এর। UART চালিত যোগাযোগ সম্পর্কে জানার জন্য এই সিরিজের দুই ভাগে অথবা তৃতীয় অংশে যেখানে আমরা I2C প্রটোকল নিয়ে আলোচনা করি।

যদি আপনার কোন প্রশ্ন থাকে, তাহলে নির্দ্বিধায় মন্তব্য বিভাগে জিজ্ঞাসা করুন, আমরা এখানে সাহায্য করতে এসেছি। এবং অনুসরণ করতে ভুলবেন না

শুভেচ্ছা: এম জুনায়েদ

প্রস্তাবিত: