سیستمهای دیجیتال کاربردهای فراوانی در انجام محاسبات، پردازش دادهها، سیستمهای کنترلی، ارتباطات و اندازهگیری دارند. بسیاری از کارهایی که در گذشته توسط سیستمهای آنالوگ انجام میشدند، امروزه توسط سیستمهای دیجیتال انجام میشوند؛ زیرا سیستم دیجیتال دقت و قابلیت اطمینان بیشتری دارند. در ادامه به بررسی دقیقتر تفاوت آنالوگ و دیجیتال میپردازیم.
تفاوت آنالوگ و دیجیتال
در یک سیستم دیجیتال، سیگنالها مقادیر گسسته دارند، در حالی که در سیستم آنالوگ، مقادیر به شکل پیوستهای تغییر میکنند. به عنوان مثال، خروجی یک سیستم دیجیتال میتواند تنها دو مقدار ۰ یا ۵ ولت باشد؛ در حالی خروجی یک سیستم آنالوگ میتواند بین مقادیر ۱۰ و منفی ۱۰ ولت نوسان کند و همه مقادیر را داشته باشد.
به علت آن که سیستمهای دیجیتال به مقادیر گسسته کار میکنند و خروجی آنها گسسته است، میتوان اطمینان داشت که برای بازهای از ورودیها، خروجی به طور کاملا دقیقی درست خواهد بود.به عنوان مثال اگر از یک دستگاه دیجیتالی برای ضرب دو عدد ۵ رقمی استفاده کنیم، تمامی ارقام عدد حاصل درست خواهند بود. انجام همین کار با یک سیستم آنالوگ، همواره با درصدی از خطا همراه خواهد بود.
ما در یک دنیای آنالوگ زندگی میکنیم؛ تعداد نامتناهی تُن صدا وجود دارد که میتوانیم آنها بشنویم و تعداد نامتناهی بو وجود دارد که میتوانیم آنها را استشمام کنیم. بخش اشتراک همه این سیگنالهای آنالوگ، نامتناهی بودن و پیوسته بودن آنهاست.
در الکترونیک، ما با هر دو نوع سیگنال آنالوگ و دیجیتال در ورودیها و خروجیهای مدار رو به رو میشویم؛ اما اکثر تجهیزات الکترونیکی مانند ریزپردازندهها، کامپیوترها، گیتهای منطقی و …، به طور خالص دیجیتالی هستند. برای درک مفهوم آنالوگ و دیجیتال، خوب است نگاهی به معنای سیگنال بیندازیم.
سیگنال چیست؟
منظور از سیگنال، هر نوع کمیتی است که در طول زمان تغییر و نوعی از اطلاعات را حملونقل میکند. در مهندسی برق، این کمیت معمولا ولتاژ یا جریان است؛ بنابراین میتوانید یک ولتاژ متغیر در زمان را به عنوان سیگنال به ذهن بسپارید.
سیگنال بین تجهیزات مختلف رد و بد میشود تا اطلاعات مختلف مانند متن، تصویر، ویدیو و … را منتقل کند. سیگنالها معمولا از طریق کابلهای فیزیکی رد و بدل میشوند؛ اما میتوان آنها را از طریق هوا (موجهای رادیو فرکانسی) نیز جابهجا کرد.
نمودار سیگنال آنالوگ – تفاوت آنالوگ و دیجیتال از روی نمودار
از آن جایی که سیگنال متناسب با زمان تغییر میکند، برای آن که درک درستی از آن داشته باشیم، خوب است نمودارش را رسم کنیم. در نمودار سیگنال، محور افقی را زمان میگیریم و محور عمودی را کمیت مورد نظر (معمولا ولتاژ) در نظر میگیریم. نگاه به نمودار یک سیگنال، راحتترین راه برای درک تفاوت آنالوگ و دیجیتال است. نمودار یک سیگنال آنالوگ باید پیوسته و بدون هیچ گونه پرش باشد. دقت کنید که الزامی به پریودیک بودن نمودار نیست. نمودار زیر یک نمونه سیگنال آنالوگ پریودیک را نشان میدهد:
مقادیر سیگنال آنالوگ بین یک بازه عددی محدود است اما میتواند نامتناهی مقدار مختلف داشته باشد.
مثالی از سیگنال آنالوگ
سیگنالهای صوتی و ویدیویی معمولا در قالب یک سیگنال آنالوگ ذخیره یا منتقل میشود. به عنوان مثال ویدیوهای تلویزیونهای قدیمی که از طریق آنتن منتقل میشد، نمونهای از سیگنال آنالوگ است. این سیگنال معمولا رنجی بین ۰ و ۱.۰۷۳ ولت دارد. تغییرات اندک در ولتاژ این نوع سیگنالهای آنالوگ باعث ایجاد تغییر زیادی در رنگ و تصویر میشود. به شکل زیر که نمونهای از چنین سیگنالی است توجه کنید:
نمودار سیگنال دیجیتال – تفاوت آنالوگ و دیجیتال از روی نمودار
سیگنالهای دیجیتال باید مجموعه محدودی از مقادیر را اتخاذ کنند. معروفترین نوع سیگنال دیجیتال، سیگنالهایی هستند که دو مقدار میگیرند (مثلا صفر و ۵ ولت). نمودار زیر نمونهای از سیگنال دیجیتال است:
نمودار زیر نیز یک سیگنال دیجیتال را نشان میدهد؛ زیرا اگر به دقت و از نزدیک به آن نگاه کنید، مجموعهای از مقادیر نسبتا زیاد گسسته است:
مثالی از سیگنال دیجیتال
همه سیگنالهای ویدیویی و صوتی، آنالوگ نیستند؛ برخی از سیگنالهای استاندارد مانند HDMI و MIDI به صورت دیجیتالی منتقل میشوند. بسیاری از ارتباطات بین مدارهای مجتمع (IC) به طور دیجیتالی انجام میشود.
تفاوت آنالوگ و دیجیتال در مدارها
بسیاری از عناصر و تجهیزات الکترونیکی پایهای، مانند مقاومت، خازن، سلف، دیود، ترانزیستور و op-amp، همگی ذاتا آنالوگ هستند. مدارهایی که با استفاده از این اجزا ساخته میشوند نیز معمولا آنالوگ هستند.
مدارهای آنالوگ میتوانند ساختارها و طراحی بسیار پیچیدهای داشته باشند و میتوانند بسیار ساده هم باشند؛ مثلا یک مدار با دو مقاومت میتواند یک تقسیمکننده ولتاژ ساده باشد که به صورت آنالوگ کار میکند. به طور کلی، مدارهای آنالوگ در مقایسه با مدارهای دیجیتال با عملکرد مشابه، ساختار بسیار پیچیدهتری دارند. به عنوان مثال طراحی و ساخت یک رادیو آنالوگ، دانش و مهارت بسیار زیادی میطلبد؛ در حالی که ساخت همان رادیو به شکل دیجیتالی، آنقدرها هم پیچیدگی ندارد. علاوه بر این، مدارهای آنالوگ نسبت به نویز (تغییرات اندک و نامطلوب در ولتاژ)، بسیار حساس هستند. تغییرات اندک در ولتاژ مدارهای آنالوگ میتواند خطاهای بسیار بزرگی را رقم بزند.
یک مدار دیجیتال، با سیگنالهای دیجیتال و گسسته کار میکند. این مدارها معمولا ترکیبی از ترانزیستور و گیتهای منطقی (خود این گیتها هم معمولا از ترانزیستور و مقاومت تشکیل شدهاند) هستند؛ یا این که از میکروکنترلرها و تراشههای دیگر تشکیل شدهاند. بسیاری از پردازندهها، خواه میکروکنترلرهای کوچک یا پردازندههای قدرتمند کامپیوتری، به صورت دیجیتال کار میکنند.
سیستمهای دیجیتالی یادشده معمولا از سیستم باینری استفاده میکنند. در این سیستمها، یک ولتاژه بالا (معمولا ۵ یا ۳.۳ یا ۱.۸) را به عنوان ۱ منطقی و یک ولتاژ پایین (معمولا ۰) را به عنوان ۰ منطقی در نظر میگیریم. با این که طراحی مدارهای دیجیتال راحتتر است، اما معمولا نسبت به مدارهای آنالوگ به کارکرد یکسان، قیمت بالاتری دارند.
مدارهای ترکیبی آنالوگ و دیجیتال
دیدن ترکیبی از اجزای دیجیتال و آنالوگ در یک مدار، چیز عجیبی نیست. میکروکنترلرها برای کار به عنوان یک سیستم دیجیتالی ساخته میشوند؛ اما اجزایی داخل آنها وجود دارد که امکان ایجاد مدارهای ترکیبی آنالوگ و دیجیتال را فراهم میکند. به عنوان مثال ADC و DAC دو نمونه از این ابزارها هستند. ADC که مبدل آنالوگ به دیجیتال است، برای تبدیل دادههای آنالوگ سنسورها به دادههای دیجیتال استفاده میشود. DAC که کاربرد کمتری دارد، برای تبدیل دیجیتال به آنالوگ (مثلا برای تولید صدا) استفاده میشود.
بخشهای طراحی سیستم دیجیتالی
طراحی یک سیستم دیجیتالی را میتوان به سه بخش تقسیم کرد:
- طراحی سیستم (system design)
- طراحی منطقی (logic design)
- طراحی مدار (circuit design)
طراحی سیستم عبارت است از شکستن سیستم بزرگ به زیرسیستمهای کوچک و مشخص کردن دقیق رفتار و ویژگیهای هر زیرسیستم. به عنوان مثال طراحی یک کامپیوتر دیجیتالی عبارت است از تعیین تعداد و نوع واحدهای حافظه، واحدهای محاسباتی، ورودیها و خروجیهای سیستم، رابطها و واحد کنترلی این زیرسیستمها.
طراحی منطقی، نحوه اتصال بلاکهای منطقی برای اجرای یک تابع خاص منطقی را توضیح میدهد. به عنوان مثال، نحوه اتصال و پیادهسازی گیتهای منطقی برای انجام عمل جمع باینری، یک طراحی منطقی به حساب میآید.
طراحی مدار، چگونگی اتصال عناصر الکترونیکی مانند مقاومتها، دیودها و ترانزیستورها برای ساخت یک گیت منطقی، flip-flop یا سایر بلاکهای منطقی را توضیح میدهد.
در سالهای اخیر، طراحی مدار با استفاده از ابزارهای کامپیوتری مناسب و در قالب یک IC یا مدار مجتمع انجام میشود. در مجموعه مقالات فنولوژی با نام طراحی منطقی سیستمهای دیجیتال، به طراحی منطقی و مطالعه تئوری مورد نیاز برای درک فرایند طراحی منطقی میپردازیم. طراحی سیستم و طراحی مدار در این مجموعه به طور کامل پوشش داده نشده است و تنها اشارههایی برای درک بهتر مطلب شده است.
مدار سوئیچینگ در سیستم دیجیتالی
بسیاری از زیرسیستمهای یک سیستم دیجیتالی، به فرم یک مدار سوئیچینگ هستند. یک مدار سوئیچینگ، یک یا چند ورودی و یک یا چند خروجی دارد که مقادیر گسسته میگیرند. دو نوع از مدارهای سوئیچینگ معروف عبارتند از:
- مدار سوئیچینگ ترکیبی (combinational)
- مدار سوئیچینگ ترتیبی (sequential)
در یک مدار ترکیبی، مقدار خروجی تنها به مقدار فعلی ورودیها بستگی دارد و مقدار قبلی ورودیها در گذشته، اهمیتی ندارد. در مدار ترتیبی، مقدار خروجی، هم به مقدار فعلی ورودیها و هم به مقادیر ورودیها در گذشته وابسته است. به عبارت دیگر، برای تعیین خروجی یک مدار سوئیچینگ ترتیبی، نیاز داریم تا یک سری از مقادیر ورودی مدار را در گذشته و در حال حاضر داشته باشیم. به مدار سوئیچینگ ترتیبی، مدار حافظهدار نیز میگویند؛ زیرا باید مقادیر قبلی ورودی را به یاد بیاورد. به طور کلی، مدار سوئیچینگ ترتیبی، از یک مدار سوئیچینگ ترکیبی به همراه واحدهای حافظه تشکیل شده است؛ بنابراین طراحی مدارهای ترکیبی سادهتر از طراحی مدارهای ترتیبی است. لازم به ذکر است، عناصر حافظهای مدار ترتیبی، flip-flop نام دارد.
گیتهای منطقی و جبر بولی در مدارهای سوئیچینگ ترکیبی
عناصر (بلاکها) اصلی سازنده مدارهای ترکیبی، گیتهای منطقی (logic gate) هستند؛ یک طراح منطقی باید بداند که چگونه از این گیتهای منطقی به شکل موثری استفاده کند تا ورودیهای مدار، به خروجی مورد نظر تبدیل شوند. روابط بین این ورودیها و خروجیهای مدار را میتوان با استفاده از جبر بولی توصیف کرد.
ارتباط سیستم دیجیتالی و طراحی منطقی با اعداد باینری
تجهیزات سوئیچینگ که در سیستمهای دیجیتال استفاده میشوند، معمولا تجهیزاتی دوحالته هستند؛ به این معنا که خروجی آنها تنها میتواند دو خروجی گسسته (۰ یا ۱) داشته باشد. رله، دیود و ترانزیستور، مثالهایی از تجهیزات سوئیچینگ (switching devices) هستند. مثلا رله بسته به این که جریان از سیمپیچ آن عبور میکند یا نه، میتواند دو حالت بسته یا باز (closed / open) داشته باشد. به علت این که خروجی اکثر تجهیزات سوئیچینگ، دوحالتی هستند، از اعداد باینری برای ساخت تئوری طراحی منطقی استفاده میکنیم.
کاربرد زبانهای HDL در طراحی منطقی سیستمهای دیجیتالی
برای طراحی مدارهای منطقی ترکیبی و ترتیبی و سیستمهای دیجیتالی، میتوان از زبانهای HDL (یا همان Hardware Description Language) مانند VHDL یا Verilog استفاده کرد. این زبانها برای توصیف، شبیهسازی و سنتز سختافزارهای دیجیتالی به کار میروند. پس از نوشتن برنامه به زبان HDL میتوان آن را توسط نرمافزارهای مختلف کامپایل و طراحی سیستم دیجیتالی را کامل کرد. استفاده از ابزارها به ما کمک میکنند تا بدون درگیری با توصیفات جزئی مدار، سیستمهای پیچیدهای را طراحی کنیم.
خیلی عالی بود سپاس
عالی و مفید بود ممنون