آموزش الکترونیکآموزش ها

انکودر باینری چیست؟ بررسی کامل Binary Encoders

سلام. انکدر باینری چیست؟ بررسی کامل Binary Encoders را آماده کردیم.

رمز گذار های باینری (دودویی)

همان طور که از نام آن پیداست، انکودرها (Encoder) اطلاعات بیت زیاد را به اطلاعاتی با مقادیر بیت کوچک تری، رمز گذاری می کنند. انواع زیادی از انکودر بر اساس تعداد ورودی ها و خروجی ها و همچنین بر پایه ی نحوه ی عملکرد آن وجود دارد.  اما همه ی اِنکودرها یک قانون اساسی دارند، تعداد خطوط خروجی از یک Encoder، همیشه باید کمتر از تعداد خطوط ورودی باشد. ما بیشتر درمورد انکودر ها، اینکه انکودر چیست و چگونه و چرا در مدارهای دیجیتال بکار برده می شوند، در این مقاله خواهیم آموخت.

همچنین ببینید : آموزش خواندن ساعت باینری

اصل اساسی انکودر

بیایید تصور كنیم كه انکودر یک جعبه سیاه باشد ، همانطور كه ​​در زیر نشان داده شده است به طرز جادویی تعداد خطوط ورودی را از 4 خط، فقط به 2 خط خروجی كاهش می دهد ، اما هنوز همان اطلاعات را بدون هیچ گونه نقضی در داده ها ارائه می دهیم.

اصل اساسی انکودر

ابتدا بیایید تعیین کنیم که نام این انکودر چه خواهد بود؟ 

این انکودر، چهار ورودی و دو خروجی دارد، بنابراین نام این رمزگذار یا همان انکودر، انکودر 4:2 خواهد بود. اگر یک انکودر، n تعداد خطوط خروجی داشته باشد ، در این حالت تعداد خطوط ورودی 2n خواهد بود ، تعداد خطوط خروجی دو (n = 2) است از این رو تعداد خطوط ورودی باید (2×2 = 4) چهار باشد. که دقیقاً همینطور است. چهار پین ورودی از 10 تا 13  و دو پین خروجی از 00 تا 01  دارای برچسب هستند.

بنابراین این که چگونه انکودر چهار سیگنال را به دو سیگنال تبدیل می کند ، می توان با نگاهی به جدول ارزش زیر، درک کرد.  همچنین مهم است بدانید که یک انکودر معمولی مانند این انکودری که در اینجا نشان داده شده است، این قاعده را دارد که در زمان مشخص شده فقط یک پین ورودی، بالا باشد بنابراین در جدول ارزش زیر فقط یک ورودی بالا خواهد بود.

رمز گذار های باینری (دودویی)

در هر شرایط ممکن، ورودی خروجی در جدول ارزش بالا نشان داده شود.  به عنوان مثال وقتی که فقط 01 زیاد باشد (1) و سایر ورودی ها پایین هستند (0) ، هر دو پین خروجی کم خواهند بود (0).  به طور مشابه برای هر مورد ، پین های خروجی نیز وضعیت خود را تغییر می دهند.  با استفاده از این وضعیت بیت های خروجی ، کاربر قادر خواهد بود تا آنچه سیگنال ورودی به انکودر می دهد را ردیابی کند.

اگر میخواهید آردوینو را به صورت اصولی و پروژه محور (برنامه نویسی حرفه ای، ارتباط آردوینو با اندروید، ساخت ربات با آردوینو) یاد بگیرید، روی دوره آموزش آردوینو کلیک کنید.

بسیار خوب، تبدیل 4 خط به 2 خط چه فایده ای دارد و چرا حتی به آن احتیاج داریم؟ 

برای درک این موضوع، ما یک انکودر 4:2 را توضیح داده ایم ، اما انکودرهای دیگری نیز وجود دارند که می توانند تعداد ورودی های بیشتری را بدست آورند و آنها را به تعداد خروجی های کمتری تبدیل کنند، مانند انکودر 8:3 ، انکودر 16:4 و غیره. این نوع از انکودر ها هنگامی که مجبور هستیم تعداد پینهای مورد استفاده در MCU / MPU را کاهش دهیم یا تعداد سیمهای حمل سیگنال را در PLC و سیستمهای دیگری در جایی که ارایه ای از سوئیچ یا LED وجود دارد ، کاهش دهیم، بسیار کارآمد هستند.  همچنین در انتقال موثر داده با استفاده از سیمهای کمتر نیز استفاده می شود. در بعضی از برنامه ها ممکن است شرایطی داشته باشیم که بیش از یک ورودی در آن حالت بالا باشد (1) در این حالت ما چیزی به نام انکودر اولویتی یا Priority خواهیم داشت که در این مقاله بیشتر در مورد آن بحث خواهیم کرد.

ساخت انکودرها با استفاده از طرح های منطق ترکیبی

اکنون، ما میدانیم که یک انکودر چگونه کار می کند و در کجا استفاده می شود. بیایید یاد بگیریم که آن چگونه با استفاده از گیت های ساده ی منطق ساخته می شود. اگرچه انکودرهایی مانند 8:3 به عنوان یک بسته ی IC شسته و رفته مانند SN74LS148 در دسترس هستند، مهم این است که بدانیم آن ها چگونه ساخته شده اند تا بتوانیم بر اساس جدول ارزش موردنیاز، انکودرهای سفارشی برای پروژه های خود تهیه کنیم.

عبارت بولین (Boolean Expression)

اولین چیز در طراحی دستگاه منطق ترکیبی (Combinational Logic) ، پیدا کردن عبارت بولی برای جدول ارزش است. جدول ارزش دیگری که قبل تر دیدیم، همراه با تصاویری برای فهم بیشتر در پایین داده شده است.

انکودر باینری چگونه کار میکند

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید

تعداد عبارات با تعداد خطوط خروجی برابر خواهد بود ، در اینجا ما دو خروجی داریم و از این رو دو عبارت داریم.  برای اولین خروجی 00 ، کافی است بررسی کنید که در چه شرایطی زیاد است (1) و تعداد پین ورودی مربوطه را که همچنان زیاد است ، ردیابی کنید (1).  به طور مشابه برای تمام مقادیر بالای 00 توجه داشته باشید که کدام شماره پین ​​ورودی زیاد است و پین ها را اضافه کنید.  پین های ورودی مربوط به پین ​​خروجی 00 به رنگ قرمز و برای 01 در رنگ آبی برجسته شده است.

بنابراین عبارت برای 00 و 01 خواهد بود

O1 = I3 + I2
O = I3 + I1

شماتیک مدار انکودر 4:2

پس از به دست آوردن عبارت بولی، فقط باید آن را به صورت گیت ترسیم کنیم. در اینجا به دلیل اینکه ما عملکرد اضافی (+) داریم ، از گیت های OR برای ساخت مدارهای خود استفاده خواهیم کرد. همچنین می توانید با توجه به نیاز خود عبارت بولی را ساده کنید یا تغییر دهید. نمودار مدار برای بیان مطالب فوق، در زیر نشان داده شده است.

مدار به راحتی با استفاده از یک گیت 7432 OR IC ساخته می شود. مدار انکودر خود را بر روی یک تخته نرد مانند شکل زیر ساخته ام.

شماتیک مدار انکودر 4:2 

چهار خط ورودی (10 ، 1 ، 12 و 13) توسط چهار دکمه فشار ارائه می شوند ، وقتی دکمه فشرده می شود +5V به پین ​​متصل می شود و منطق آن را 1 می کند و هنگامی که دکمه فشرده نشود ، پین از طریق مقاومت کششی 10k به زمین نگه داشته می شود تا منطق آن صفر شود. خروجی ها (00 و 01) با استفاده از یک جفت LED قرمز نشان داده می شوند. اگر چراغ LED درخشان باشد ، به این معنی است که منطق خروجی 1 است و اگر خاموش باشند ، این بدان معنی است که منطق خروجی 0 است.

مطلب پیشنهادی :
PoE چیست و چگونه در اترنت کار می کند؟

آموزش استفاده از بایتری انکدر

کار کامل مدار انکودر در فیلم زیر نشان داده شده است.

یک تخته نرد مانند شکل زیر درست کرده ایم. همانطور که می بینید هنگام فشار دادن اولین دکمه ، ورودی 10 بالا ساخته شده و از این رو هر دو خروجی پایین هستند. با فشار دادن دکمه دوم ، ورودی 11 روشن می شود بنابراین یک LED بالا می رود تا 00 نشان دهد که زیاد است.  سرانجام هنگامی که دکمه چهارم فشرده می شود ، ورودی 13 بالا می رود بنابراین هر دو LED  بالا می روند.  این یک مدار بسیار ساده است و برای همین آن را به راحتی بر روی یک تخته مدار ساخته ایم ، اما برای انکودرهای عملی مدار کمی پیچیده تر می شود.  با این حال انکودرها، به عنوان بسته های IC نیز موجود هستند که در صورت مناسب بودن پروژه ی شما، می توانند خریداری شوند.

انکودر 8:3

کارکرد و نحوه ی استفاده از انکودر 8:3، به جز در تعداد پین های ورودی و خروجی، همانند انکودر 4:2 است. انکودر 8:3 نیز به عنوان Octal to Binary Encoder خوانده می شود، نمودار بلوکی انکودر 8:3 در زیر نشان داده شده است.

انکودر 8:3

در این جا انکودر، 8 ورودی و 3 خروجی دارد، دوباره تنها یک ورودی در هر زمان داده شده باید بالا (1) باشد. از آنجایی که 8 ورودی وجود دارد، تحت عنوان ورودی اکتال (Octal) نامیده می شود و چون 3 خروجی هم دارد، به آن خروجی باینری یا دودویی (Binary) می گویند. جدول ارزش انکودر در زیر نشان داده شده است.

جدول ارزش انکودر 8:3

جدول ارزش انکودر 8:3

عبارت بولین (Boolean Expression)

از آن جایی که 3 خروجی داریم، 3 عبارت به صورتی که در زیر نشان داده شده، خواهیم داشت :

O2 = I7 + I6+ I5+ I4
O1 = I7 + I6+ I3+ I2
O = I7 + I5+ I3+ I1

شماتیک مدار انکودر 8:3

نمودار مدار انکودر 8:3

پس از عبارت بولی به دست آمده، مثل همیشه می توانیم نمودار مدار را با استفاده از گیت OR نشان داده شده در زیر، بسازیم. مدار از یک گیت IC با یک ۴ورودی استفاده می کند، همچنین می توانید عبارت بولی را ساده کنید تا از سایر ۲ورودی گیت IC استفاده کنید.

عیوب رمزگذارهای عادی

این نوع رمزگذارها از معایب عمده زیر رنج می برند :

  • هنگامی که هیچ یک از ورودی ها بالا نیست ، خروجی ها همه برابر با صفر می شوند، اما این شرایط با بالا بودن بیت اول (MSB) نیز مغایرت دارد. از این رو باید دقت کرد که حداقل هر بیت همیشه روشن باشد
  • هنگامی که بیش از یک ورودی بالا باشد ، خروجی از بین میره و می تواند نتیجه را برای هر یک از ورودی ها منجر به سردرگمی کند.

برای غلبه بر این مشکلات ، ما از یک نوع رمزگذار متفاوت استفاده می‌کنیم که رمز گذارpriorityنام دارد که از یک خروجی اضافه تر برای تعیین معتبر بودن خروجی استفاده می‌کند و هنگامی که بیش از یک ورودی کمک بالا است، آن یکی که با شروع از LSD بالا می رود فقط در نظر گرفته می شود  در حالی که ورودی های دیگر نادیده گرفته می شوند.

انکودر اولویتی Priority

بگذارید یک انکودر اولویتی 4:2 را به عنوان نمونه تجزیه و تحلیل کنیم تا بدانیم که چقدر با یک انکودر عادی تفاوت دارد و می تواند بر دو اشکال فوق الذکر غلبه کند. نمودار بلوکی انکودر اولویتی 4:2 در زیر نشان داده شده است.

انکودر Priority 

انکودر اولویت 4:2 همچنین دارای 4 ورودی و 2 خروجی است ، اما ما خروجی دیگری به نام V اضافه خواهیم کرد که مخفف بیت valid است. این بیت valid بررسی خواهد کرد که آیا هر چهار پین ورودی کم است (0) یا خیر . اگر کم بودن بیت نیز باعث شود که خود خروجی معتبر نباشد ، سپس می توانیم بر اولین اشکال ذکر شده در بالا غلبه کنیم.

جدول ارزش انکودر اولویتی 4:2

اشکال بعدی با اولویت دادن به بیت های MSB قابل پیشگیری است ، انکودر از MSB بررسی می کند و هنگامی که اولین بیت را پیدا کرد که زیاد است (1) ، بر اساس آن خروجی ایجاد می کند. بنابراین فرقی نمی کند که سایر پین ها زیاد باشند یا کم . از این رو در جدول ارزش زیر که یک بار به 1 می رسد ، مقادیر مراقبت توسط “X” ارائه نمی شود.

عبارت بولین

اکنون باید سه عبارت را برای O0 ، O1 و V استخراج کنیم . از آنجا که در جدول درستی، موارد مهمی وجود ندارد ، ما باید از روش K-Map برای استخراج عبارت بولی برای این کار استفاده کنیم. ما نمی خواهیم نحوه حل آن را با نقشه K بپوشانیم زیرا این موضوع خارج از محدوده این مقاله است. اما نقشه ای در زیر نشان داده شده است تا بتوانید خودتان مداخله کنید و یاد بگیرید.

آشنایی با رمزگذار های دودویی باینری

در نقشه های بالا ، سمت چپ مربوط به O1 و سمت راست مربوط به O0 است. خطوط خروجی توسط y ذکر شده و خطوط ورودی توسط x ذکر شده است. بنابراین با تنظیم ترتیب معادله به موارد زیر خواهیم رسید.

O1 = I3 + I2
O = I2 I1’ + I3

به طور مشابه ، برای بیت معتبر “V” می توان عبارت بولی را به عنوان مثال بیان کرد:

V = I3 + I2 + I1 + I

شماتیک مدار رمزگذار اولویتی

نمودار مدار این پروژه می تواند با استفاده از عبارات بولی ساخته شود.

شماتیک مدار رمزگذار اولویتی

مدار را می توان با استفاده از گیت های اصلی NOT و AND و OR ساخت. در اینجا بیت O0 و O1 به عنوان خروجی در نظر گرفته می شوند در حالی که بیت V برای اعتبار سنجی خروجی استفاده می شود. فقط در صورت زیاد بودن بیت V ، خروجی در نظر گرفته می شود. اگر مقدار V کم باشد (0) ، خروجی را نباید نادیده گرفت ، زیرا این بدان معنی است که تمام پین های ورودی صفر هستند.

پیشنهاد میکنم در مورد رمز گشا های باینری هم بخوانید : دیکدر باینری چیست؟ نحوه کار رمزگشا دو دویی

نظرتان را در مورد این مطلب با ستاره دادن اعلام کنید
امیدوارم این مطلب برای شما مفید بوده باشد. نظرات ، مشکلات و پیشنهادات خود را در پایین صفحه اعلام کنید
محمد رحیمی

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. مالکیتی بر مطالب ارائه شده ندارم. اکثر فعالیت بنده در زمینه ترجمه است. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *