شمارنده حلقوی – به زبان ساده
شمارنده حلقوی (Ring Counter) و شمارنده حلقوی جانسون (Johnson Ring Counter) از تعدادی شمارنده تشکیل شدهاند که خروجی هر یک از طریق فیدبک به ورودی دیگری متصل شده است. در این مطلب قصد داریم به بررسی این نوع از شمارندهها بپردازیم و اصول کاری آنها را بیان کنیم.
در مقالههای قبلی مجله فرادرس به بررسی شیفت رجیسترها پرداختیم و دیدیم که اگر یک سیگنال داده سریال را به ورودی یک شیفت رجیستر از نوع ورودی سریال-خروجی سریال اعمال کنیم، دنباله دادهای که از آخرین فلیپ فلاپ مدار شیفت رجیستر خارج میشود، دقیقا با داده ورودی یکسان است. این انتقال سریال دادهها در طول شیفت رجیستر، بعد از اعمال تعداد از پیش تعیینشدهای پالسهای کلاک اتفاق میافتد. در حالت کلی، این پیکربندی به رجیستر SISO اجازه میدهد تا مانند نوعی از مدارات تاخیر زمانی برای سیگنالهای داده ورودی عمل کند.
اما اگر میتوانستیم خروجی شیفت رجیستر را به ورودی آن متصل کنیم، به نحوی که خروجی آخرین فلیپ فلاپ یعنی تبدیل به ورودی اولین فلیپ فلاپ شود، آنگاه چه اتفاقی رخ میداد؟ پاسخ این است که در چنین شرایطی یک مدار حلقه بسته به وجود میآید که برای هر حالت در دنباله، بیتهای داده یکسانی را در یک حلقه دائمی به چرخش در میآورد. این چنین مداری را شمارنده حلقوی (Ring Counter) میگویند.
شمارنده حلقوی
بنابراین از طریق ایجاد یک حلقه از خروجی به ورودی مدار (که فیدبک نام دارد)، میتوان یک شیفت رجیستر استاندارد را به یک مدار شمارنده حلقوی تبدیل کرد. مدار زیر را در نظر بگیرید.
این مدار در واقع نمایی از یک شمارنده حلقوی چهار بیتی را نشان میدهد.
شمارنده حلقوی سنکرون (Synchronous Ring Counter) مثال بالا، به نحوی تنظیم شده است که فقط یک بیت داده برابر با مقدار یک منطقی در رجیستر ست (SET) شود، در حالیکه بقیه بیتهای داده به مقدار صفر ریست (PRESET) شدهاند. برای رسیدن به این هدف، ابتدا یک سیگنال CLEAR به تمام فلیپ فلاپهای D به صورت همزمان اعمال میشود تا خروجی تمام آنها باهم به مقدار صفر منطقی ریست شود. قبل از این که پالس کلاک به مدار اعمال شود، یک سیگنال PRESET به ورودی اولین فلیپ فلاپ یعنی FFA وارد میشود. این عمل باعث میشود تا یک منطق 1 در مدار شمارنده حلقوی وارد شود.
پس از این تنظیمات، مدار شمارنده حلقوی در هر پالس کلاک متعاقب، همان بیت داده را بین چهار فلیپ فلاپ بارها و بارها به گردش در میآورد و در هر چهار پالس کلاک یک حلقه تشکیل میدهد. اما برای اینکه دادهها در طول شمارنده به طرز صحیحی به گردش در آیند، ابتدا باید شمارنده را با الگوی (Pattern) دادههای مناسب بارگذاری کرد؛ زیرا اگر تمام بیتهای داده سطح صفر منطقی و یا یک منطقی باشند، آنگاه شمارنده حلقوی فاقد کارایی لازم خواهد بود.
این نوع از انتقال اطلاعات را چرخش (Rotation) مینامند. مانند شیفت رجیسترهای عادی، تاثیر انتقال بیتهای داده از چپ به راست در طول شمارنده حلقوی را نیز میتوان به صورت گرافیکی به همراه دیاگرام زمانبندی آن نشان داد. تصویر زیر نمایی از حرکت چرخشی در طول یک شمارنده حلقوی را نشان میدهد.
دیاگرام زمانبندی حرکت دادهها در طول یک شمارنده حلقوی نیز در تصویر زیر نشان داده شده است.
از آنجا که شمارنده حلقوی مثال بالا دارای چهار حالت مختلف است، به عنوان یک شمارنده MOD-4 یا MODULUS-4 نیز شناخته میشود. در این شمارنده خروجی هر فلیپ فلاپ دارای فرکانسی برابر با ربع (یک چهارم) فرکانس کلاک اصلی است. MODULUS در هر شمارنده برابر است با تعداد حالتهای که یک شمارنده در یک دنباله از شمارش خود و قبل از اینکه بار دیگر خود را تکرار کند، آنها را میشمارد. یک شمارنده حلقوی MOD-n از تعداد n فلیپ فلاپ متصل به یکدیگر تشکیل شده است تا یک بیت داده را در طول شمارنده حلقوی به گردش در آورد و نهایتا n حالت خروجی متفاوت را ایجاد کند. به عنوان مثال، یک شمارنده MOD-8 به هشت عدد فلیپ فلاپ و یک شمارنده MOD-16 به ۱۶ عدد فلیپ فلاپ نیاز دارد. اما در مثال ساده بالا فقط از ۴ حالت از ۱۶ حالت محتمل استفاده شده بود و به همین دلیل این شمارنده حلقوی را به لحاظ استفاده از حالتهای خروجی محتمل، بسیار ناکارآمد ساخته بود.
شمارنده حلقوی جانسون
شمارنده حلقوی جانسون (Johnson Ring Counter) یا شمارنده حلقوی پیچشی (Twisted Ring Counters) نوع دیگری از شیفت رجیسترهای دارای فیدبک است که سازوکاری بسیار شبیه به شمارنده حلقوی استاندارد دارد که در بالا توضیح داده شد.
با این تفاوت که این بار خروجی معکوسکننده آخرین فلیپ فلاپ به ورودی D اولین فلیپ فلاپ متصل شده است. نمایی از مدار شمارنده حلقوی جانسون در شکل زیر نشان داده شده است.
مهمترین مزیت این نوع از شمارندههای حلقوی در این است که فقط به نصف تعداد فلیپ فلاپهایی نیاز دارد که در مدار یک شمارنده حلقوی استاندارد مورد استفاده قرار میگیرند. به همین دلیل عدد MOD آنها نیز نصف میشود. بنابراین یک شمارنده حلقوی جانسون n طبقه، یک بیت داده تکی را به گردش در میآورد و دنبالهای متشکل از 2n حالت مختلف را ایجاد میکند، پس میتوان این شمارندهها را به عنوان شمارنده MOD-2n در نظر گرفت.
این عمل که خروجی Q را قبل از اینکه به ورودی اولین فلیپ فلاپ بازگردانیم، معکوس میکنیم، باعث میشود که شمارنده به طریق متفاوتی شمارش را انجام دهد. در واقع شمارنده حلقوی جانسون به جای اینکه مانند شمارندههای حلقوی عادی در یک مجموعه ثابت از الگوها شمارش را انجام دهد و این الگو را در سر تا سر شمارش تکرار کند، این شمارنده به صورت بالا شمار و سپس پایین شمار میشمارد، زیرا سطح اولیه یک منطقی در طول شمارنده به سمت راست حرکت میکند و جایگزین صفر منطقی قبلی در شمارنده میشود.
به عنوان مثال در یک شمارنده حلقوی استاندارد ۴ بیتی، حالتهای شمارش به صورت ۰۰۰۱ یا ۱، ۰۰۱۰ یا ۲، ۰۱۰۰ یا ۴ و ۱۰۰۰ یا ۸ هستند، اما در یک شمارنده حلقوی جانسون ۴ بیتی، ابتدا بلوکها شامل ۴ سطح صفر منطقی هستند و سپس به آنها ۴ سطح منطقی یک وارد میشود. بنابراین یک الگوی ۸ بیتی را ایجاد میکنند. در واقع چون معکوس خروجی Q به ورودی D فلیپ فلاپ اول وارد میشود، این هشت الگو به صورت دائمی تکرار میشوند. به عنوان مثال، ۰۰۰۰، ۰۰۰۱، ۰۰۱۱، ۰۱۱۱، ۱۱۱۱، ۱۱۱۰، ۱۱۰۰، ۱۰۰۰ الگوی هشت تایی هستند که شمارنده هر بار تکرار میکند. جدول درستی و دنباله خروجیهای مختلف شمارنده حلقوی جانسون در زیر نشان داده شده است.
FFD | FFC | FFB | FFA | شماره پالس کلاک |
0 | 0 | 0 | 0 | ۰ |
0 | 0 | 0 | 1 | ۱ |
0 | 0 | 1 | 1 | ۲ |
0 | 1 | 1 | 1 | ۳ |
1 | 1 | 1 | 1 | ۴ |
1 | 1 | 1 | 0 | ۵ |
1 | 1 | 0 | 0 | ۶ |
1 | 0 | 0 | 0 | ۷ |
علاوه بر شمارش و چرخش دادهها در یک حلقه ثابت، شمارندههای حلقوی همچنین میتوانند برای شناسایی و تشخیص الگوهای مختلف و یا مقادیر اعداد در یک دنباله از دادهها مورد استفاده قرار گیرند. از طریق اتصال گیتهای منطقی ساده مانند گیتهای AND و یا گیتهای OR به خروجی فلیپ فلاپها، مدار قادر خواهد بود تا اعداد از پیش تنظیمشده را شناسایی و تشخیص دهد.
شمارندههای حلقوی جانسون استاندارد ۲ یا ۳ یا ۴ طبقه نیز میتوانند به عنوان مقسم فرکانسی پالس کلاک مورد استفاده قرار گیرند. برای این کار باید اتصالات فیدبک تغییر یابد تا خروجیهای تقسیمشده بر ۳ و تقسیمشده بر ۵ هم امکانپذیر شوند. به عنوان مثال، شمارنده حلقوی جانسون ۵ طبقه استاندارد مانند آیسیهای متداول CD4017 معمولا به عنوان یک مدار شمارنده/تقسیمکننده ده دهی سنکرون مورد استفاده قرار میگیرند.
سایر ترکیبات مانند مدارات کوچکتر دو طبقه، که با نامهای مولد (Generator) یا اسیلاتور (Oscillator) سینوسی/کسینوسی یا ربعی (Quadrature) نیز شناخته میشوند، میتوانند برای تولید چهار خروجی تکی مورد استفاده قرار گیرند. این چهار خروجی هر کدام نسبت به یکدیگر دارای ۹۰ درجه اختلاف فاز هستند و یک سیگنال زمانبندی 4-فاز مانند شکل زیر را تولید میکنند.
جدول درستی مولد دو بیتی ربعی به صورت زیر است.
D | C | B | A | خروجی |
۰ | ۰ | ۰ | ۱ | |
۰ | ۰ | ۱ | ۰ | |
۰ | ۱ | ۰ | ۰ | |
۱ | ۰ | ۰ | ۰ |
چون چهار خروجی A تا D نسبت به یکدیگر به اندازه ۹۰ درجه اختلاف فاز دارند، در نتیجه این خروجیها میتوانند همراه با مدارت دیگر مورد استفاده قرار گیرند. مثلا میتوانند موتور پلهای (Stepper Motor) دو فاز را برای اهداف کنترل موقعیت یا توانایی چرخش موتور به یک موقعیت خاص درایو کنند. نمایی از سیگنالهای مختلف در کنترل یک موتور پلهای در شکل زیر نشان داده شده است.
سرعت چرخش در یک موتور پلهای عمدتا به فرکانس پالس کلاک بستگی دارد و مدارات اضافه برای درایو توان مورد نیاز موتور معمولا مورد نیاز است.
یک شمارنده حلقوی جانسون به فرمهای استاندارد TTL و یا CMOS وجود دارد. CD4017 که یک شمارنده حلقوی جانسون ده دهی ۵ طبقه است، نمونهای از چنین آیسیهایی محسوب میشود که دارای ۱۰ خروجی دیکود شده Active HIGH است. CD4022 نیز یک شمارنده جانسون ۴ طبقه مقسم بر ۸ است که ۸ خروجی دیکود شده دارد.
اگر علاقهمند به یادگیری مباحث مشابه مطلب بالا هستید، آموزشهایی که در ادامه آمدهاند نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای مهندسی الکترونیک
- آموزش مدارهای منطقی (طراحی دیجیتال)
- مجموعه آموزشهای نرمافزارهای مهندسی برق و الکترونیک
- آموزش مدار منطقی (مرور – تست کنکور ارشد)
- منطق دیجیتال — از صفر تا صد
- آموزش سیستمهای باینری — مجموعه مقالات جامع وبلاگ فرادرس
- تایمر ۵۵۵ — راهنمای جامع
^^
سلام
یک سوال برام مطرح هستش
اونم اینکه با کمک شیفت رجیستر8بیتی و یک انکدر 8 به 3 یک شمارنده 3 بیتی که از 1 تا 7 را بشمارد،
میشه طراحی کرد؟
با تشکر.