شمارنده های آسنکرون یا غیرسنکرون فلیپفلاپهایی هستند که به صورت سری به یکدیگر متصل شدهاند تا پالس کلاک ورودی در شمارنده، ریپل داشته باشد
یک شمارنده آسنکرون ، ۲n-۱ حالت شمارش دارد. MOD-16 برای یک شمارنده ۴ بیتی که میتواند از ۰ تا ۱۵ بشمارد. برای استفاده به عنوان تقسیمکننده فرکانس ایدهآل میباشد.
البته میتوان از شمارنده آسنکرون نیز برای ساخت شمارندههایی با حالتهای شمارش کمتر از مقدار ماکزیمم خروجیشان نیز استفاده کردهایم شمارندهها، شمارندههای MOD میباشند.
در این حالت شمارنده خودش را با رسیدن به یک مقدار خاص ریست میکند و یک شمارنده آسنکرون ساخته میشود که تا مقدار نهاییاش شمارش نمیکند.
اما چرا باید یک شمارنده آسنکرون بسازیم که تا مقدار نهاییاش شمارش نکند به این دلیل که شاید گاهی نیاز باشد ورودی های آسنکرون به فلیپ فلاپ اعمال شوند.
به عنوان مثال اگر ما یک شمارنده آسنکرون MOD-16 داشته باشیم و چند دروازهی منطقی را به آن اضافه کنیم، میتوانیم شمارندهای را بسازیم که تا ۱۰ می شمارد و از آن برای شمارش دسیمال و عملیات جبری معمولی استفاده کنیم.
این نوع شمارندهها به شمارندههای دهدهی معروف هستند. یک شمارنده دهدهی نیاز دارد تا هنگامی که عدد شمارنده به ۱۰ میرسد دوباره به صفر برگردد و برای این منظور باید از خروجی به ورودی فیدبک گرفته شود. یک شمارنده با ترتیب شمارش (۰۰۰۰) (BCD=0) تا (۱۰۰۱) (BCD=9) یک شمارنده باینری میباشد که اعداد دسیمال را کدگذاری کرده استفاده از اینگونه شمارندههای باینری بسیار رایج میباشد.
شمارندههای ده دهی آسنکرون
۱. شمارندههای دهدهی آسنکرون
این شمارندههای آسنکرون با نوک بالارونده سیگنال کلاک ورودی تحریک میشوند و از 0000 (صفر) تا (1001) (۹) می شمارد هر دو خروجی QA و QD برابر با منطق یک هستند. با اعمال پالس کلاک بعدی خروجی از گیت NAND 74LS10 از منطق یک به صفر می رود.
از آن جایی که خروجی گیت NAND به ورودیهای (CLR) (clear) تمام فلیپفلاپهای JK 74LS73 متصل شدهاند، این سیگنال باعث میشود تمام خروجیهای Q ریست شوند و با رسیدن به عدد ۱۰ به مقدار باینری ۰۰۰۰ بازگردند خروجی QA و QD هر دو برابر با منطق صفر هستند چرا که فلیپفلاپ به تازگی ریست شده و خروجی گیت NAND دوباره به سطح منطقی یک بازمی گردد و شمارنده دوباره به مقدار ۰۰۰ برمیگردد.
جدول ارزشی یک شمارنده دهدهی
ارزش بیتهای خروجی
مقادیر دسیمال | QA | QB | QC | QD | شماره کلاکها |
۰ | ۰ | ۰ | ۰ | ۰ | ۱ |
۱ | ۱ | ۰ | ۰ | ۰ | ۲ |
۲ | ۰ | ۱ | ۰ | ۰ | ۳ |
۳ | ۱ | ۱ | ۰ | ۰ | ۴ |
۴ | ۰ | ۰ | ۱ | ۰ | ۵ |
۵ | ۱ | ۰ | ۱ | ۰ | ۶ |
۶ | ۰ | ۱ | ۱ | ۰ | ۷ |
۷ | ۱ | ۱ | ۱ | ۰ | ۸ |
۸ | ۰ | ۰ | ۰ | ۱ | ۹ |
۹ | ۱ | ۰ | ۱ | ۰ | ۱۰ |
خروجی کانتر ریست می شود و به صفر باز می گردد | ۱۱ |
دیاگرام زمانبندی یک شمارنده دهدهی
۲. دیاگرام زمانبندی یک شمارنده دهدهی
مدار بالا به راحتی میتواند با هر سیکل شمارشی تطبیق داده شود اما برای این منظور باید اتصالات ورودیهای گیت NAND را تغییر داد یا از ترکیب دروازههای منطقی دیگری بهره برد.
به عنوان مثال یک شمارنده MOD-12 به راحتی میتواند توسط تغذیه ورودیهای یک گیت NAND از خروجیهای QC وQD ساخته شود معادل باینری عدد ۱۲ ،۱۱۰۰ میباشد و خروجی QA کم ارزش ترین بیت (LSB) (Least Significant Bit) عدد دسیمال است.
از آن جایی که حداکثر mod تعداد مشخصی فلیپفلاپ ۲n ( n تعداد فلیپفلاپ ) میباشد هنگامی که یک شمارنده غیرسنکرون که تا آخر نمیشمارد را طراحی کنید، باید اطمینان حاصل کنید که تعداد فلیپفلاپها بیشتر یا برابر با تعداد شمارندهای است که میخواهید آن را بسازید.
به عنوان مثال ، اگر بخواهیم از 0 تا 39 بشماریم ، (MOD 40) باید از ۶ فلیپفلاپ بهره ببریم چرا که ۶۴=۲۶ اما ۵ فلیپفلاپ پاسخگوی نیاز ما نیست ۳۲=۲۵ و عدد ۳۲ کمتر از ۳۹ میباشد.
حال فرض کنید که قصد داریم یک شمارنده ۱۲۸ تایی را بسازیم برای نیل به این منظور باید ۷ فلیپفلاپ را به یکدیگر متصل کنیم چرا که ۱۲۸=۲۷ در این حالت ما به ۴ قطعهی 74LS74 نیاز خواهیم داشت.
۳. دیاگرام زمانبندی یک شمارنده دهدهی
یک متد سادهتر این است که از دو تراشه TTL7493 بهره ببریم از آن جایی که ۱۲۸=۱۶*۸ یک قطعه 7493 میتواند به عناون یک شمارنده MOD-16 عمل کند و قطعهی دیگر به عنوان شمارنده MOD-8 سپس این دو قطعه را به یکدیگر متصل میکنیم تا یک جداکننده فرکانسی ۱۲۸ تایی داشته باشیم.
البته تراشههای شمارنده غیرسنکرون مانند TTL74LS90 نیز در دسترس میباشند که میتوانند به صورت ۲ قسمتی، ۵ قسمتی یا ترکیبات دیگری پیکربندی شوند.
تراشه 74LS390 یک درایور دهدهی است که میتواند به ۲، ۴، ۵، ۱۰، ۲۰، ۲۵، ۵۰ و ۱۰۰ تقسیمبندی شود.
تقسیم کنندههای فرکانسی
توانایی شمارنده ریپل برای خاتمه دادن شمارش در هر نقطهی دلخواه میتواند خروجیهای دلخواهی را نیز تولید کند و این بدین معناست که شمارندهها بهخصوص شمارندههای ریپل میتوانند به عنوان تقسیم کنندههای فرکانسی برای کاهش فرکانس کلاک مورد استفاده قرار بگیرند. این روش در ساعتهای دیجیتال کاربرد فراوانی دارد به عنوان مثال ما دقیقاً به فرکانس 1Hz برای راهاندازی ساعتمان نیاز داریم و تقسیم کنندهی فرکانسی با کاهش فرکانس سیگنال کلاک میتواند مقدار 1Hz را برای ما به ارمغان بیاورد.
ما به راحتی میتوانیم یک سیگنال مربعی 1Hz را با استفاده از یک تایمر ۵۵۵ ایجاد کنیم در این صورت این قطعه باید به صورت یک مولتی ویبراتور تکحالته پیکربندی شود. اما بر اساس دیتاشیت قطعه ۵۵۵ تایمر بین ۱ تا ۲ درصد تلورانس دارد و در فرکانسهای پایین مانند 1Hz ، این میزان خطا قابل قبول نیست.
به هر حال بر اساس دیتاشیت قطعه، حداکثر فرکانسی که قطعه ۵۵۵ میتواند با آن کار کند ۳۰۰KHz میباشد: در این فرکانس ۲ درصد خطا قابل چشمپوشی میباشد: بنابراین با انتخاب سیگنال کلاک ورودی فرکانس بالا (حدوداً ۱۴۴KHz) و یک شمارنده MOD-16 میتوانیم یک سیگنال زمانبندی ۱Hz را همانطور که در شکل زیر نشان داده شده تولید کنیم.
سیگنال زمانبندی ۱Hz از یک شمارنده ریپل غیرسنکرون ۱۸ بیتی
4. سیگنال زمانبندی ۱Hz از یک شمارنده ریپل غیرسنکرون ۱۸ بیتی
البته این مثال، مثالی ساده از ساخت یک فرکانس زمانبندی میباشد اما با استفاده از اسیلاتورهای کریستالی فرکانس بالا و تقسیم کنندههای فرکانس چند بیتی میتوان ژنراتورهای دقیق فرکانس را تولید کرد که در ساعتها و پیانوهای الکترونیکی (دیجیتال) کاربرد دارد.
متأسفانه یکی از نقاط ضعف شمارندههای آسنکرون این است که تأخیر کوچکی بین دریافت پالس کلاک و ارائه آن به خروجی وجود دارد چرا که سیگنال ابتدا باید از قطعات داخلی مدار شمارنده عبور کند.
در مدارات آسنکرون این تأخیر، تأخیر انتشار نام دارد و در فرکانسهای فوقالعاده بالا این تأخیر میتواند باعث ایجاد خطا در خروجی شود.
در مدارات شمارنده ریپل بزرگ، اگر میزان تأخیر در مراحل جداگانه با یکدیگر جمع شود میزان تأخیر کلی مدار به دست میآید و این میزان تأخیر کلی ممکن است خیلی زیاد باشد به همین دلیل از شمارنده غیرسنکرون برای مدارات با فرکانس فوقالعاده بالا یا مدارات چند مرحلهای بزرگ که با اعداد و ارقام بیشماری سروکار دارند استفاده نمیشود.
همچنین خروجیهای یک شمارنده دارای ارتباط زمانی ثابتی با یکدیگر نیستند و به دلیل تفاوت در ترتیب دریافت کلاک به طور همزمان راهاندازی نمیشوند به عبارتی دیگر این شمارندهها حالتی دومینویی دارند و خروجیها یکی از پس دیگری نمایان میشوند در چنین شرایطی هر چه flip-flop های بیشتری به زنجیره شمارنده آسنکرون متصل شود، فرکانس ماکزیمم راهاندازی پایینتر خواهد بود. حال برای غلبه بر مشکل تأخیر انتشار شمارندههای سنکرون به وجود آمدهاند.
مزایای شمارنده آسنکرون
- شمارندههای آسنکرون به راحت میتوانند به وسیله فلیپفلاپهای نوع D یا T تولید شوند.
- فلیپفلاپهای شمارنده آسنکرون از یک سیگنال کلاک تغذیه نمیشوند و به همین دلیل به آنها آسنکرون میگویند.
- خروجی هر فلیپفلاپ وابسته به تغییراتی است که در خورجی فلیپفلاپ قبلی به وجود میآید.
- شمارندههای غیرسنکرون، شمارندههای ریپل نیز نامیده میشوند چرا که اطلاعات از خروجی یک فلیپفلاپ به صورت ریپل به ورودی فلیپفلاپ دیگر اعمال میشود.
- شمارندههای ناتمام میتوانند تا هر عدد دلخواهی را شمارش کنند.
نقاط ضعف شمارندههای آسنکرون
- شاید به یک فلیپفلاپ اضافی برای سنکرون کردن نیاز داشته باشند.
- برای شمارش تا اعدادی که بر مبنای ۲n نیستند به فیدبک نیاز دارند.
- شمارش اعداد بزرگ به استفاده از فلیپفلاپهای زیادی نیاز دارد و همین مسأله اخیر انتشار را فوقالعاده زیاد میکند.
- در فرکانسهای فوقالعاده بالا ممکن است شمارنده با خطا مواجه شود.
شمارندههای سنکرون سریعتر و قابل اعتمادتر هستند چرا که همه فلیپفلاپها از یک سیگنال کلاک استفاده میکنند.
در مقالهی بعدی در مورد شمارندهها، به شمارنده سنکرون و ویژگیهای اصلی آن نگاه میکنیم. پایه ورودی کلاک تمام فلیپفلاپهای این نوع شمارنده به یکدیگر متصل هستند بنابراین همه آنها به صورت همزمان سیگنال کلاک را دریافت میکنند.
دیدگاه خود را بنویسید