সুচিপত্র:

UART কমিউনিকেশনের বেসিক: 16 টি ধাপ
UART কমিউনিকেশনের বেসিক: 16 টি ধাপ

ভিডিও: UART কমিউনিকেশনের বেসিক: 16 টি ধাপ

ভিডিও: UART কমিউনিকেশনের বেসিক: 16 টি ধাপ
ভিডিও: Microcontroller & PLC Class 1 2024, নভেম্বর
Anonim
UART কমিউনিকেশনের বেসিক
UART কমিউনিকেশনের বেসিক

মনে রাখবেন যখন প্রিন্টার, ইঁদুর এবং মোডেমের মধ্যে সেই বিশাল ক্লঙ্কি সংযোগকারীদের সাথে মোটা তার ছিল? যেগুলি আক্ষরিকভাবে আপনার কম্পিউটারে স্ক্রু করতে হয়েছিল? সেই ডিভাইসগুলি সম্ভবত আপনার কম্পিউটারের সাথে যোগাযোগের জন্য UART ব্যবহার করছিল। যদিও ইউএসবি প্রায় পুরোনো তারগুলি এবং সংযোগকারীগুলিকে প্রতিস্থাপিত করেছে, UARTs স্পষ্টভাবে অতীতের বিষয় নয়। আপনি আপনার রাস্পবেরি পাই, আরডুইনো, বা অন্যান্য মাইক্রোকন্ট্রোলারের সাথে জিপিএস মডিউল, ব্লুটুথ মডিউল এবং আরএফআইডি কার্ড রিডার মডিউল সংযুক্ত করতে অনেক DIY ইলেকট্রনিক্স প্রকল্পে ইউএআরটি ব্যবহার করছেন।

UART মানে ইউনিভার্সাল অ্যাসিঙ্ক্রোনাস রিসিভার/ট্রান্সমিটার। এটি SPI এবং I2C এর মত একটি যোগাযোগ প্রোটোকল নয়, বরং একটি মাইক্রোকন্ট্রোলারে একটি ফিজিক্যাল সার্কিট, অথবা একা একা IC। একটি UART এর প্রধান উদ্দেশ্য হল সিরিয়াল ডেটা প্রেরণ এবং গ্রহণ করা।

ইউএআরটি সম্পর্কে সেরা জিনিসগুলির মধ্যে একটি হল এটি ডিভাইসের মধ্যে ডেটা প্রেরণের জন্য কেবল দুটি তার ব্যবহার করে। UART এর পিছনের নীতিগুলি সহজেই বোঝা যায়, কিন্তু যদি আপনি এই সিরিজের একটি অংশ না পড়ে থাকেন, SPI কমিউনিকেশন প্রোটোকলের মূল বিষয়গুলি, এটি শুরু করার জন্য একটি ভাল জায়গা হতে পারে।

ধাপ 1: কমিউনিকেশন ইউআরটি পরিচিতি

UART যোগাযোগে, দুটি UARTs একে অপরের সাথে সরাসরি যোগাযোগ করে। ট্রান্সমিটিং ইউএআরটি একটি কন্ট্রোলিং ডিভাইস থেকে সিপিইউ এর মতো সিরিয়াল আকারে সমান্তরাল ডেটা রূপান্তরিত করে, এটি সিরিয়ালে গ্রহনকারী ইউএআরটিতে প্রেরণ করে, যা সিরিয়াল ডেটাকে রিসিভিং ডিভাইসের জন্য সমান্তরাল ডেটাতে রূপান্তর করে। দুটি UART- এর মধ্যে তথ্য প্রেরণের জন্য মাত্র দুটি তারের প্রয়োজন। UART- এর প্রেরণকারী UART- এর Rx পিন -এ TX পিন থেকে ডেটা প্রবাহিত হয়:

ধাপ 2: প্রেরণ UART- এর Rx পিন -এ TX পিন থেকে ডেটা প্রবাহিত হয়:

ট্রান্সমিটিং UART এর Tx পিন থেকে ডাটা প্রবাহিত UART এর Rx পিনে প্রবাহিত হয়
ট্রান্সমিটিং UART এর Tx পিন থেকে ডাটা প্রবাহিত UART এর Rx পিনে প্রবাহিত হয়

ধাপ 3:

UARTs অসিঙ্ক্রোনাসভাবে ডেটা প্রেরণ করে, যার মানে UART প্রেরণ করা UART দ্বারা বিটগুলির নমুনায় প্রেরণ করা UART থেকে বিটের আউটপুট সিঙ্ক্রোনাইজ করার জন্য কোন ঘড়ি সংকেত নেই। ক্লক সিগন্যালের পরিবর্তে, ট্রান্সমিটিং ইউএআরটি ডাটা প্যাকেটে স্থানান্তরিত হওয়ার সাথে স্টার্ট এবং স্টপ বিট যোগ করে। এই বিটগুলি ডেটা প্যাকেটের শুরু এবং শেষ নির্ধারণ করে যাতে প্রাপ্ত UART জানে যে কখন বিট পড়া শুরু করতে হবে।

যখন প্রাপ্ত UART একটি স্টার্ট বিট সনাক্ত করে, তখন এটি একটি নির্দিষ্ট ফ্রিকোয়েন্সিতে ইনকামিং বিট পড়তে শুরু করে যা বড রেট নামে পরিচিত। বাউড রেট হচ্ছে ডেটা ট্রান্সফারের গতির একটি পরিমাপ, যা প্রতি সেকেন্ডে (বিপিএস) বিটে প্রকাশ করা হয়। উভয় UARTs একই বড রেটে কাজ করতে হবে। UARTs প্রেরণ এবং গ্রহণের মধ্যে baud হার মাত্র 10% দ্বারা বিট সময় খুব দূরে হওয়ার আগে পরিবর্তিত হতে পারে।

ধাপ 4:

ছবি
ছবি

উভয় ইউএআরটি অবশ্যই একই ডেটা প্যাকেট কাঠামো প্রেরণ এবং গ্রহণের জন্য কনফিগার করা আবশ্যক।

ধাপ 5: কিভাবে UART কাজ করে

যে UART ডেটা প্রেরণ করতে যাচ্ছে তা একটি ডেটা বাস থেকে ডেটা গ্রহণ করে। সিপিইউ, মেমরি বা মাইক্রোকন্ট্রোলারের মতো অন্য যন্ত্রের মাধ্যমে UART- এ ডেটা পাঠানোর জন্য ডেটা বাস ব্যবহার করা হয়। ডেটা বাস থেকে ডেটা স্থানান্তরিত হয় সমান্তরাল আকারে UART প্রেরণ করার জন্য। ট্রান্সমিটিং ইউএআরটি ডাটা বাস থেকে সমান্তরাল ডেটা পাওয়ার পরে, এটি একটি স্টার্ট বিট, একটি প্যারিটি বিট এবং একটি স্টপ বিট যোগ করে, ডেটা প্যাকেট তৈরি করে। পরবর্তী, ডেটা প্যাকেটটি ক্রমানুসারে আউটপুট হয়, Tx পিনে একটু একটু করে। প্রাপ্ত UART তার Rx পিনে একটু একটু করে ডাটা প্যাকেট পড়ে। প্রাপ্ত UART তারপর ডাটাগুলিকে সমান্তরাল আকারে রূপান্তর করে এবং স্টার্ট বিট, প্যারিটি বিট এবং স্টপ বিট সরিয়ে দেয়। অবশেষে, প্রাপ্ত UART প্রাপ্তির শেষে ডাটা বাসের সমান্তরালে ডাটা প্যাকেট স্থানান্তর করে:

ধাপ 6: চিত্র কিভাবে UART কাজ করে

চিত্র কিভাবে UART কাজ করে
চিত্র কিভাবে UART কাজ করে

ধাপ 7:

UART প্রেরিত ডেটা প্যাকেটে সংগঠিত। প্রতিটি প্যাকেটে 1 টি স্টার্ট বিট, 5 থেকে 9 টি ডেটা বিট (UART এর উপর নির্ভর করে), একটি alচ্ছিক প্যারিটি বিট এবং 1 বা 2 স্টপ বিট রয়েছে:

ধাপ 8: UART প্রেরিত ডেটা প্যাকেজ ইমেজে সংগঠিত

UART প্রেরিত ডেটা প্যাকেটের ছবিতে সংগঠিত
UART প্রেরিত ডেটা প্যাকেটের ছবিতে সংগঠিত

ধাপ 9:

বিট শুরু করুন

UART ডেটা ট্রান্সমিশন লাইন সাধারণত একটি উচ্চ ভোল্টেজ স্তরে থাকে যখন এটি ডেটা প্রেরণ করে না। ডেটা ট্রান্সফার শুরু করার জন্য, ট্রান্সমিটিং ইউএআরটি একটি ক্লক সাইকেলের জন্য ট্রান্সমিশন লাইনকে উঁচু থেকে নিচু পর্যন্ত টেনে নিয়ে যায়। যখন প্রাপ্ত UART উচ্চ থেকে নিম্ন ভোল্টেজের স্থানান্তর সনাক্ত করে, তখন এটি বড হারের ফ্রিকোয়েন্সি তে ডেটা ফ্রেমে বিট পড়া শুরু করে।

ডেটা ফ্রেম

ডেটা ফ্রেমে প্রকৃত ডেটা স্থানান্তরিত হয়। প্যারিটি বিট ব্যবহার করা হলে এটি 8 বিট পর্যন্ত 5 বিট হতে পারে। যদি কোন প্যারিটি বিট ব্যবহার করা না হয়, তাহলে ডেটা ফ্রেম 9 বিট লম্বা হতে পারে। বেশিরভাগ ক্ষেত্রে, ডেটা কমপক্ষে উল্লেখযোগ্য বিট দিয়ে পাঠানো হয়।

প্যারিটি

সমতা একটি সংখ্যার সমতা বা বিজোড়তা বর্ণনা করে। প্যারিটি বিট হল UART গ্রহণের জন্য একটি উপায় যাতে বলা যায় যে ট্রান্সমিশনের সময় কোন ডেটা পরিবর্তন হয়েছে কিনা। ইলেক্ট্রোম্যাগনেটিক রেডিয়েশন, অসামঞ্জস্যপূর্ণ বড রেট বা লং ডিসটেন্স ডেটা ট্রান্সফারের মাধ্যমে বিট পরিবর্তন করা যায়। UART প্রাপ্তির পর ডাটা ফ্রেমটি পড়ার পরে, এটি 1 এর মান সহ বিটের সংখ্যা গণনা করে এবং মোট সমান বা বিজোড় সংখ্যা কিনা তা পরীক্ষা করে। যদি প্যারিটি বিট একটি 0 (এমনকি প্যারিটি) হয়, ডেটা ফ্রেমে 1 বিট সমান সংখ্যার সমান হওয়া উচিত। যদি প্যারিটি বিট 1 (বিজোড় সমতা) হয়, তাহলে ডেটা ফ্রেমে 1 বিট একটি বিজোড় সংখ্যার সমান হওয়া উচিত। যখন প্যারিটি বিট ডেটার সাথে মেলে, UART জানে যে ট্রান্সমিশন ত্রুটিমুক্ত ছিল। কিন্তু যদি প্যারিটি বিট একটি 0, এবং মোট অদ্ভুত হয়; অথবা প্যারিটি বিট একটি 1, এবং মোট সমান, UART জানে যে ডেটা ফ্রেমে বিট পরিবর্তিত হয়েছে।

বিট বন্ধ করুন

o ডাটা প্যাকেটের শেষের সংকেত, UART পাঠানো কম ভোল্টেজ থেকে হাই ভোল্টেজ পর্যন্ত ডেটা ট্রান্সমিশন লাইন চালায় কমপক্ষে দুই বিট সময়কালের জন্য।

ধাপ 10: UART ট্রান্সমিশনের পদক্ষেপ

1. ট্রান্সমিটিং UART ডেটা বাস থেকে সমান্তরালভাবে ডেটা গ্রহণ করে:

ধাপ 11: ছবি প্রেরণ UART ডেটা বাস থেকে সমান্তরালভাবে তথ্য গ্রহণ করে

চিত্র প্রেরণ UART ডেটা বাস থেকে সমান্তরালভাবে তথ্য গ্রহণ করে
চিত্র প্রেরণ UART ডেটা বাস থেকে সমান্তরালভাবে তথ্য গ্রহণ করে

ধাপ 12: 2. ট্রান্সমিটিং UART ডাটা ফ্রেমে স্টার্ট বিট, প্যারিটি বিট এবং স্টপ বিট যুক্ত করে:

2. ট্রান্সমিটিং UART ডাটা ফ্রেমে স্টার্ট বিট, প্যারিটি বিট এবং স্টপ বিট যুক্ত করে
2. ট্রান্সমিটিং UART ডাটা ফ্রেমে স্টার্ট বিট, প্যারিটি বিট এবং স্টপ বিট যুক্ত করে

ধাপ 13: 3. সম্পূর্ণ প্যাকেটটি ক্রমানুসারে UART থেকে প্রেরণ UART- এ পাঠানো হয়। UART রিসিভিং প্রাক-কনফিগার করা বাউড রেটে ডেটা লাইনের নমুনা:

3. পুরো প্যাকেটটি ক্রমানুসারে UART থেকে প্রেরণ UART- এ পাঠানো হয়। UART রিসিভিং প্রাক-কনফিগার করা বাউড রেটে ডেটা লাইনের নমুনা
3. পুরো প্যাকেটটি ক্রমানুসারে UART থেকে প্রেরণ UART- এ পাঠানো হয়। UART রিসিভিং প্রাক-কনফিগার করা বাউড রেটে ডেটা লাইনের নমুনা

ধাপ 14: 4. প্রাপ্ত UART ডেটা ফ্রেম থেকে স্টার্ট বিট, প্যারিটি বিট, এবং স্টপ বিট বাদ দেয়:

4. রিসিভিং UART ডেটা ফ্রেম থেকে স্টার্ট বিট, প্যারিটি বিট এবং স্টপ বিট বাদ দেয়
4. রিসিভিং UART ডেটা ফ্রেম থেকে স্টার্ট বিট, প্যারিটি বিট এবং স্টপ বিট বাদ দেয়

ধাপ 15: 5. রিসিভিং ইউএআরটি সিরিয়াল ডেটা সমান্তরালে ফিরে আসে এবং রিসিভিং এন্ডে ডেটা বাসে স্থানান্তর করে:

5. রিসিভিং ইউএআরটি সিরিয়াল ডেটা সমান্তরালে ফিরে আসে এবং রিসিভিং এন্ডে ডেটা বাসে স্থানান্তর করে
5. রিসিভিং ইউএআরটি সিরিয়াল ডেটা সমান্তরালে ফিরে আসে এবং রিসিভিং এন্ডে ডেটা বাসে স্থানান্তর করে

ধাপ 16: UARTS এর সুবিধা এবং অসুবিধা

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

সুবিধাদি

শুধুমাত্র দুটি তার ব্যবহার করে কোন ঘড়ি সংকেত প্রয়োজন নেই ত্রুটি যাচাই করার অনুমতি দেওয়ার জন্য একটি সমতা বিট আছে যতক্ষণ উভয় পক্ষ এটির জন্য সেট আপ করা হয় ততক্ষণ পর্যন্ত ডাটা প্যাকেটের গঠন পরিবর্তন করা যেতে পারে।

ডেটা ফ্রেমের আকার সর্বাধিক 9 বিটের মধ্যে সীমাবদ্ধ একাধিক দাস বা একাধিক মাস্টার সিস্টেম সমর্থন করে না প্রতিটি UART- এর বাউড হার একে অপরের 10% এর মধ্যে হতে হবে I2C কমিউনিকেশন প্রোটোকল ইলেকট্রনিক ডিভাইস যোগাযোগের অন্য উপায় সম্পর্কে জানতে। অথবা যদি আপনি ইতিমধ্যে না করে থাকেন, SPI কমিউনিকেশন প্রোটোকলের মূল বিষয়গুলি, প্রথম অংশটি দেখুন।

এবং বরাবরের মতো, যদি আপনার কোন প্রশ্ন বা যোগ করার জন্য কিছু থাকে তবে আমাকে মন্তব্যগুলিতে জানান! আপনি যদি এই নিবন্ধটি পছন্দ করেন এবং এটির মতো আরও দেখতে চান তবে অনুসরণ করতে ভুলবেন না

শুভেচ্ছা

এম জুনায়েদ

প্রস্তাবিত: