شمارنده آسنکرون چیست؟
شمارنده آسنکرون (Asynchronous Counter) از فلیپ فلاپهایی که به صورت سری به یکدیگر متصل شدهاند، بهره میگیرد تا بتواند پالس کلاک ورودی را به صورت موجی در طول شمارنده حرکت دهد. در این مطلب به بیان اصول کاری شمارندههای آسنکرون میپردازیم.
سرویس آموزش و آزمون برق نیوز، شمارنده آسنکرون (Asynchronous Counter) از فلیپ فلاپهایی که به صورت سری به یکدیگر متصل شدهاند، بهره میگیرد تا بتواند پالس کلاک ورودی را به صورت موجی در طول شمارنده حرکت دهد. در این مطلب به بیان اصول کاری شمارندههای آسنکرون میپردازیم.
یک شمارنده آسنکرون میتواند ۲n−۱حالت شمارش محتمل داشته باشد. به عبارت دیگر MOD ۱۶ برای یک شمارنده ۴ بیتی (از ۰ تا ۱۵)، آن را برای کاربردهای مقسم فرکانسی بسیار ایدهآل میسازد. همچنین میتوان از آرایش شمارنده آسنکرون پایه برای ساخت شمارندههای مخصوصی بهره برد که در آنها حالتهای شمارش از بیشینه شماره خروجی کمتر هستند. شمارندههای MOD نمونهای از چنین شمارندههایی محسوب میشوند. این نوع مدارات به این صورت ایجاد میشوند که شمارنده باید خود را در مقادیر از پیش تعیین شده، به صفر ریست کند. در نتیجه نوعی از شمارندههای آسنکرون ایجاد میشوند که دارای دنباله منقطع (Truncated Sequence) هستند؛ بنابراین یک شمارنده n بیتی که تا بیشینه MOD خود (۲n) میشمارد، یک شمارنده دنباله کامل (Full Sequence) نام دارد. به همین ترتیب میتوان گفت که یک شمارنده n بیتی که MOD آن کمتر از بیشینه ممکن است، یک شمارنده منقطع محسوب میشود.
اما ممکن است این سوال پیش بیاید که چرا میخواهیم یک شمارنده آسنکرون منقطع بسازیم که در آن MOD برابر با اعداد ۴ یا ۸ (یا سایر اعدادی که توان کامل ۲ باشند.) نیست. در جواب به این سوال میتوان گفت که با استفاده از مدارات منطقی ترکیبی در ورودیهای آسنکرون فلیپ فلاپها، میتوان از مزایای آنها استفاده کرد.
شمارنده آسنکرون ده دهی
اگر یک شمارنده آسنکرون با MOD ۱۶ را انتخاب کنیم و آن را با گیتهای منطقی اضافی اصلاح کنیم، میتوانیم به خروجی شمارنده دهدهی (مدار مقسم بر ده) دست یابیم و از آن در شمارندههای دسیمال استاندارد و مدارات حسابی (Arithmetic) استفاده کنیم.
این شمارندهها معمولا تحت عنوان شمارندههای ده دهی (Decade Counter) شناخته میشوند. در یک شمارنده ده دهی نیاز است تا زمانی که شمارش به ضرایب ده برسد، خروجی به مقدار صفر ریست شود. به عبارت دیگر خروجی باید برابر با DCBA=۱۰۱۰ باشد. برای رسیدن به این هدف، باید وقوع این حالت را به ورودی ریست مدار فیدبک دهیم. یک شمارنده با رشته شمارش از ۰۰۰۰ باینری (BCD = ۰) تا ۱۰۰۱ (BCD=۹)، شمارنده BCD یا شمارنده دسیمال کد باینری (Binary Coded Decimal) نامیده میشود؛ زیرا دنباله ده حالتی خروجی آن همان کد BCD است. اما شمارندههای ده دهی باینری بسیار متداولتر هستند.
در شکل زیر نمایی از نحوه اتصال فلیپ فلاپها به منظور تشکیل یک شمارنده ده دهی دیده میشود.
اتصال فلیپ فلاپها برای تشکیل شمارنده ده دهی آسنکرون
این نوع از شمارندههای آسنکرون، در هر لبه پالس کلاک به سمت بالا شمارش میکنند. شمارش از ۰۰۰۰ شروع میشود تا به ۱۰۰۱ (۹ دسیمال) برسد. حال هر دو خروجی QAو QDبرابر با منطق یک هستند. با ورود پالس کلاک بعدی، خروجی گیت NAND ۷۴LS۱۰ وضعیت را از یک منطقی به صفر منطقی تغییر میدهد.
از آنجا که خروجی گیت NAND به ورودی CLEAR تمام فلیپ فلاپهای JK متصل شده است، این سیگنال تمام خروجیهای Q را مجبور میکند تا به حالت منطقی ۰۰۰۰ ریست شوند. حال خروجیهای QAو QBهر دو در سطح صفر منطقی هستند و فلیپ فلاپ تازه ریست شده است. در این زمان خروجی گیت NAND مجددا به حالت یک منطقی باز میگردد، بنابراین شمارنده دوباره شمارش را از ۰۰۰۰ شروع میکند. در نتیجه با استفاده از چنین مداری شمارنده ده دهی به سادگی ساخته میشود.
جدول درستی این شمارنده در زیر آورده شده است.
دیاگرام زمانبندی (Timing Diagram) شمارنده ده دهی به صورت شکل زیر است.
دیاگرام زمانبندی شمارنده ده دهی
با استفاده از ایده مدار بالا به سادگی میتوان مدارهای دیگری را ایجاد کرد که برای چرخههای شمارش دیگری نیز مناسب باشند. برای این کار میتوان اتصالات ورودیهای گیت NAND را تغییر داد و یا از ترکیبات دیگری از گیتهای منطقی استفاده کرد.
به عنوان مثال یک شمارنده دوازده تایی (MOD=۱۲) را میتوان به سادگی ایجاد کرد. کافی است ورودیهای گیت NAND را از خروجیهای QC
و QD بگیریم. به یاد داشته باشید که معادل باینری عدد ۱۲ برابر است با ۱۱۰۰ و همچنین خروجی QAکم ارزشترین بیت (LSB) است.
از آنجا که بیشترین MOD که میتواند توسط n فلیپ فلاپ پیادهسازی شود برابر با ۲nاست، هنگام طراحی یک شمارنده آسنکرون منقطع باید کمترین توان عدد ۲ را مشخص کرد که بزرگتر یا مساوی با MOD مورد نظر باشد. مثلا اگر بخواهیم که مدار از صفر تا ۳۹ بشمارد، در این صورت MOD برابر با ۴۰ است؛ بنابراین بیشترین تعداد فلیپ فلاپهای مورد نیاز شش عدد خواهد بود. این شش فلیپ فلاپ بیشینه MOD برابر با ۶۴ را در اختیار قرار میدهند. به همین دلیل مثلا ۵ فلیپ فلاپ کافی نیستند؛ چون مقدار MOD برابر با ۳۲ را فراهم میکنند.
حال فرض کنید که میخواهیم یک شمارنده مقسم بر ۱۲۸ را برای مقسم فرکانسی بسازیم. در این صورت به تعداد ۷ فلیپ فلاپ احتیاج خواهیم داشت که به صورت آبشاری به یکدیگر متصل شده باشند؛ زیرا 7^2=۱۲۸
است. با استفاده از یک فلیپ فلاپ دوتایی مانند ۷۴LS۷۴، باز هم به چهار آی سی فلیپ فلاپ احتیاج داریم تا مدار را کامل کنیم.
روش جایگزین ساده دیگر این است که از دو آیسی TTL ۷۴۹۳ به عنوان مقسم/شمارنده موجی ۴ بیتی استفاده کنیم. از آنجا که ۱۲۸=۸×۱۶
است، یک آیسی ۷۴۹۳ میتواند به عنوان یک مقسم بر ۱۶ و آیسی دیگر نیز یک مقسم بر ۸ مورد استفاده قرار گیرد. این دو آیسی برای تشکیل یک مقسم فرکانسی مانند شکل زیر به صورت آبشاری به یکدیگر متصل میشوند.
شمارنده مقسم بر ۱۲۸ با دو آیسی ۷۴۹۳
البته آیسیهای آسنکرون استاندارد مانند TTL ۷۴LS۹۰ نیز وجود دارند که مقسم/شمارنده موجی قابل برنامهریزی هستند و میتوانند به صورت مقسم بر ۵ و یا مقسم بر ۲ و یا ترکیبی از هر دو مورد استفاده قرار گیرند. این آیسی بسیار انعطافپذیر بوده و دارای ترکیبات متنوعی مانند مقسم بر ۲، ۴، ۵، ۱۰، ۲۰، ۲۵، ۵۰ و حتی ۱۰۰ نیز هست.
مقسم فرکانسی
این توانایی شمارندههای موجی که میتوانند دنبالههای منقطع را بشمارند و یک خروجی تقسم شده بر n را تولید کنند، شمارندهها و مخصوصا شمارندههای موجی را برای کاربردهای مقسم فرکانسی بسیار کارا میکند. در واقع با این ادوات میتوان فرکانس ورودی بسیار بالای پالس کلاک را به مقدار پایینتری تبدیل کرد تا در کلاکهای دیجیتال و کاربردهای زمانبندی بیشتر قابل استفاده باشند. برای مثال فرض کنید دقیقا به سیگنال زمانبندی با فرکانس ۱ هرتز برای عملکرد یک کلاک دیجیتال نیاز داریم. میتوان به سادگی یک پالس موج مربعی یک هرتزی را با آیسی تایمر ۵۵۵ که در آرایش مولتی ویبراتور آستابل باشد، تولید کرد، اما طبق دیتا شیت کارخانه سازنده آیسی، میتوان به این نکته پی برد که هر آیسی بسته به کارخانه تولید کننده حدود ۱ تا ۲ درصد خطای زمانبندی دارد. حال برای فرکانس پایین مورد نیاز ما، یعنی فرکانس یک هرتز، این مقدار خطای ۲ درصدی به هیچ وجه قابل صرف نظر نیست.
علاوه بر این، دیتا شیت هر آیسی مقدار بیشینه فرکانس عملکرد تایمر ۵۵۵ مربوطه را نیز به کاربر میدهد. به عنوان مثال در اکثر آیسیها این فرکانس در حدود ۳۰۰ کیلو هرتز است. در این فرکانس بزرگ نیز مقدار خطای ۲ درصد، باعث ایجاد خطای ۶ کیلو هرتزی در فرکانس تولید شده توسط تایمر ۵۵۵ میشود. اما این مقدار تقریبا قابل قبول است. پس با انتخاب یک فرکانس زمانبندی بزرگتر مانند ۲۶۲٫۱۴۴ کیلو هرتز و یک شمارنده موجی ۱۸ بیتی، میتوان سیگنال زمانبندی دقیق با فرکانس یک هرتز ساخت. نمایی از این مدار در شکل زیر نشان داده شده است.
ایجاد پالس کلاک ۱ هرتزی با کمک شمارنده و تایمر ۵۵۵
هر چند مثال بالا، یک مدار بسیار ساده از نحوه تولید فرکانس دقیق زمانبندی را نشان میدهد، اما با استفاده از یک کریستال نوسانساز با فرکانس بالا و یک مقسم فرکانسی چند بیتی، میتوان یک مولد فرکانسی بسیار دقیق را ایجاد کرد. چنین مولدهای فرکانسی برای بازه بسیار وسیعی از کاربردها از ساعتها تا المانهای زمانبندی وقایع و حتی پیانوهای الکتریکی یا سایر ادوات موسیقی مورد استفاده قرار میگیرند.
متاسفانه یکی از بزرگترین معایب شمارندههای آسنکرون این است که یک تاخیر بسیار کوچک بین دریافت پالس ساعت در ورودی مربوطه و حاضر شدن این پالس در خروجی وجود دارد که دلیل آن مدارات داخلی گیتها است.
در مدارات آسنکرون این تاخیر با نام تاخیر انتشاری (Propagation Delay) شناخته میشود و به همین دلیل به شمارندههای موجی آسنکرون گاهی شمارندههای انتشاری نیز میگویند و در مواردی که فرکانس بسیار بالا باشد، این انتشار میتواند منجر به تولید دنباله شمارش اشتباه در خروجی شود.
در مدارات شمارنده موجی با تعداد بیتهای زیاد، اگر تاخیر طبقات مختلف همگی با یکدیگر جمع شوند، در نتیجه مجموع تاخیر در انتهای زنجیره شمارنده را میتوان به دست آورد که برابر با اختلاف زمانی بین سیگنال ورودی و سیگنال خروجی شمارنده است و نسبتا مقدار بزرگی دارد. دقیقا به همین دلیل است که شمارندههای آسنکرون معمولا در مدارات شمارنده فرکانس بالا که شامل تعداد بیتهای زیادی هستند، مورد استفاده قرار نمیگیرند.
خروجیهای شمارنده، رابطه زمانی ثابتی با یکدیگر ندارند و به دلیل دنباله پالسهای کلاکی، هر کدام در یک لحظه ثابت زمانی اتفاق نمیافتند. به عبارت دیگر، فرکانسهای خروجی یکی پس از دیگری ظاهر میشوند و به نوعی مانند اثر دومینو هستند؛ بنابراین هر چه تعداد فلیپ فلاپهای بیشتری به شمارنده آسنکرون افزوده شود، بیشترین فرکانس کاری کمتر میشود تا شمارش دقیقتری فراهم شود. لازم به ذکر است که برای غلبه بر مشکل تاخیر انتشار در شمارندههای آسنکرون، شمارندههای سنکرون به وجود آمدند.
خلاصه
حال اگر بخواهیم مزایای شمارندههای آسنکرون را به صورت خلاصه بار دیگر بیان کنیم، میتوانیم به موارد زیر اشاره کنیم:
شمارندههای آسنکرون میتوانند به سادگی از فلیپ فلاپهای نوع D یا نوع JK ساخته شوند.
این شمارندهها به این دلیل آسنکرون نامیده میشوند که در آنها ورودی کلاک مربوط به فلیپ فلاپها توسط یک پالس کلاک یکسان عمل نمیکنند.
هر خروجی در دنباله به یک تغییر در حالت در خروجی فلیپ فلاپ قبلی بستگی دارد.
شمارنده آسنکرون گاهی شمارنده موجی نیز نامیده میشود؛ زیرا این طور به نظر میرسد که دادهها در خروجی یک فلیپ فلاپ به ورودی فلیپ فلاپ دیگر به صورت موجی حرکت میکنند.
این شمارندهها میتوانند توسط مدارات شمارنده تقسیمکننده بر n نیز پیاده سازی شوند.
شمارندههای منقطع میتوانند با هر عدد MOD دلخواه به صورت عملی پیادهسازی شوند.
از معایب شمارنده آسنکرون نیز میتوان به موارد زیر اشاره کرد:
ممکن است به یک فلیپ فلاپ خروجی سنکرون کننده اضافی احتیاج باشد.
برای شمارش دنباله منقطعی که برابر با ۲n
نباشد، به یک فیدبک اضافی منطقی هم نیاز است.
برای شمارش تعداد بیتهای زیاد، تاخیر انتشار توسط طبقات متوالی ممکن است به صورت ناخواسته مقدار بسیار بزرگی باشد.
به دلیل وجود این تاخیر در مدار، گاهی به شمارندههای آسنکرون، شمارنده انتشاری نیز میگویند.
خطای شمارش درکلاکهای فرکانس بالا اتفاق میافتد.
شمارندههای سنکرون به دلیل این که برای تمام فلیپ فلاپها از یک سیگنال کلاک یکسان استفاده میکنند، بسیار قابل اعتمادتر و نیز سریعتر هستند.
منبع: فرادرس
از ارسال دیدگاه های نا مرتبط با متن خبر، تکرار نظر دیگران، توهین به سایر کاربران و ارسال متن های طولانی خودداری نمایید.
لطفا نظرات بدون بی احترامی، افترا و توهین به مسئولان، اقلیت ها، قومیت ها و ... باشد و به طور کلی مغایرتی با اصول اخلاقی و قوانین کشور نداشته باشد.
در غیر این صورت، «برق نیوز» مطلب مورد نظر را رد یا بنا به تشخیص خود با ممیزی منتشر خواهد کرد.