250 likes | 400 Views
عملکرد زمانسنجها. حسین منتظری کردی دانشکده مهندسی برق و کامپیوتر دانشگاه صنعتی نوشیروانی بابل پاییز 91. رئوس مطالب: 1-مقدمه 2- ثبات حالت زمانسنج 3- ثبات کنترل زمانسنج 4- حالتهای زمانسنج و پرچم سرریز 5- منابع پالس ساعت 6- شروع، توقف، و کنترل زمانسنجها
E N D
عملکرد زمانسنجها حسین منتظری کردی دانشکده مهندسی برق و کامپیوتر دانشگاه صنعتی نوشیروانی بابل پاییز 91
رئوس مطالب: 1-مقدمه 2- ثبات حالت زمانسنج 3- ثبات کنترل زمانسنج 4- حالتهای زمانسنج و پرچم سرریز 5- منابع پالس ساعت 6- شروع، توقف، و کنترل زمانسنجها 7- آمادهسازی و دسترسی به ثباتهای زمانسنج 8- بازههای کوتاه و بلند 9- تولید نرخ انتقال
1-مقدمه • یک زمانسنج زنجیرهای از فلیپ-فلاپهای متوالی با سیگنال ورودی پالس ساعت • با هر پالس ورودی، باتوجه به بالارونده بودن شمارنده، به عدد شمارش شمارنده یک واحد اضافه میشود • یک شمارنده n طبقه موجب تقسیم فرکانس ورودی بر 2n میشود • خروجی آخرین طبقه، یک فلیپ-فلاپ سرریز یا پرچم جهت تولید وقفه یا آزمایش توسط نرمافزار • یک شمارنده 16 بیت دارای عدد خروجی بین 0000H تا FFFFH و نشاندارشدن پرچم سرریز با تغییر عدد شمارنده از FFFFH به 0000H • 8051 دارای 2 زمانسنج 16 بیت با چهار حالت کاری، 8052 دارای یک زمانسنج سوم با سه حالت کاری • استفاده از زمانسنج برای سنجش بازه زمانی، شمارش وقایع، و یا تعیین نرخ انتقال بیت برای درگاه سری • باتوجه به 16 بیت بودن، طبقه شانزدهم موجب تقسیم فرکانس ورودی بر 216
برای زمانسنجی بازه، برنامهریزی زمانسنج جهت سرریز در یک بازهمعین و تنظیم پرچم سرریز در انتهای بازه • شمارش وقایع جهت شمردن تعداد اتفاقافتادن یک واقعه، واقعه هر تحریک خارجی برای یک گذر یک-به-صفر در یک پایه 8051 • دسترسی به زمانسنجها از طریق 6 ثبات ویژه (SFR) • 2- ثبات حالت زمانسنج • ثبات TMOD حاوی دو گروه 4 بیتی جهت تنظیم حالتهای کاری زمانسنج صفر و یک • این ثبات بیت آدرسناپذیر میباشد، مقداردهی اولیه با نرمافزار جهت آمادهسازی حالت زمانسنج • روشن، و خاموشکردن زمانسنج با ثبات ویژه TCON، یک ثبات بیت آدرسپذیر • 4 بیت TMOD شامل: گیت (GATE)، زمانسنج/شمارنده (C/T)، بیتهای حالت M0 و M1
اگر 1 GATE= باشد، آنگاه شروع فعالیت زمانسنج فقط با 1 INT= در پایه آیسی 8051 • اگر 1 C/T= باشد، آنگاه تنظیم برای شمارش وقایع، و درغیر اینصورت بعنوان زمانسنج
بیتهای حالت M0 و M1 جهت تعیین وضعیت کاری زمانسنج در حالت 13 بیت، 16 بیت، 8 بیت با بارگذاری مجدد، و یا زمانسنج مجزا • نیمبایت پایین TMOD برای زمانسنج صفر و نیمبایت بالا برای زمانسنج یک
حالت صفر: اگر M1M0= 00 باشد، آنگاه زمانسنج در حالت 13 بیت (مانند 8048) • حالت یک: اگر M1M0= 01 باشد، آنگاه زمانسنج در حالت 16 بیت • حالت دو: اگر M1M0= 10 باشد، آنگاه زمانسنج در حالت 8 بیت با قابلیت بارگذاری مجدد • حالتسه: اگر M1M0= 11 باشد، آنگاه زمانسنج در حالت مجزا، TL0 یک زمانسنج 8 بیت با بیتهای حالت T0 و TH0 نیز 8 بیت با بیتهای حالت T1، T1 متوقف
3- ثبات کنترل زمانسنج • حاوی بیتهای وضعیت و کنترل برای زمانسنج صفر و یک • نیم بایت بالای ثبات کنترل جهت خاموش و روشن کردن (TR0، TR1) و سیگنال سرریز (TF0، TF1) زمانسنج • نیم بایت پایین ثبات کنترل جهت آشکارسازی و آمادهسازی وقفه خارجی • 4- حالتهای زمانسنج و پرچم سرریز • حالت صفر: زمانسنج 13 بیت • ترکیب بایت بالای زمانسنج THXبا 5 بیت بایت پایین TLX جهت تشکیل زمانسنج 13 بیت
حالت یک: زمانسنج 16 بیت • همانندحالت قبلی باستثنای 16 بیت بودن، افزایش یکواحد به TLX با هر پالس ورودی، با سرریز از FFFFH به 0000H آنگاه 1 TFX= و خواندهشدن یا نوشتهشدن پرچم سرریز توسط نرمافزار • خواندهشدن یا نوشتهشدن TLX یا THX با نرمافزار • حالت دو: زمانسنج 8 بیت با بارگذاری مجدد • عملکرد TLX بعنوان یک زمانسنج 8 بیت و THX حاوی عدد بارگذاری مجدد TLX • با سرریز از FFH به 00H در TLX آنگاه 1 TFX= و بارگذاری عدد THX در TLX
حالت سه: زمانسنج مجزا • TL0 و TH0 بعنوان دو زمانسنج 8 بیت مجزا با پرچمهای سرریز TF0 و TF1، متوقف بودن زمانسنج یک در حالت سه و خروج از این حالت با تغییر حالت آن ولی عدم در دسترس بودن TF1 برای آن • 5- منابع پالس ساعت • وجود دو منبع پالس ساعت برای زمانسنج وابسته به مقدار بیت C/T در TMOD
زمانبندی بازه • اگر C/T= 0 باشد، آنگاه پالسزنی زمانسنج توسط نوسانساز داخل تراشه با یک ضریب 1/12 برای پالس زمانسنج • اتفاق سرریز برای ثباتهای زمانسنج وابسته به مقادیر اولیه بارگذاریشده در آنها
شمارش وقایع • اگر C/T= 1 باشد، آنگاه پالسزنی زمانسنج توسط یک منبعخارجی و تعیین تعداد وقایع با خواندن مقدار TLX/THX توسط نرمافزار • پالس خارجی با لبه منفی از پایههای P3.4 و P3.5 بترتیب برای T0 و T1
نیاز به دو پالسساعت داخلی تراشه جهت تغییر مقدار ثباتداخلی شمارنده با مقدار جدید • با فرض کریستال MHz 12، نیاز به 2 میکروثانیه برای شمردن یک واقعه، بنابراین حداکثر فرکانس پالس تحریک خارجی برابر KHz 500 • 6- شروع، توقف، و کنترل زمانسنجها • خاموش و روشن کردن زمانسنج با TRX، پاکشدن این بیت از TCON با راهاندازی
بعنوان مثال خاموش و روشن کردن زمانسنج صفر • SETB TR0 ; Timer turn on • CLR TR0 ; Timer turn off • روش دوم کنترل زمانسنج با بیت GATE در ثبات TMOD و ورودی خارجی INTx • اگر 1 GATE= باشد، آنگاه کنترلزمانسنج توسط INTx و مناسب برای سنجشپهنای پالس • مثال: تنظیم زمانسنج صفر برای حالت یک بعنوان زمانسنج 16 بیت، 1 GATE= و 1 TR0=، اگر 1 INT0= آنگاه شروع شمارش زمانسنج صفر با پالس MHz 1 و توقف زمانسنج با INT0= 0 • 7- آمادهسازی و دسترسی به ثباتهای زمانسنج • تنظیم حالت زمانسنج فقط یکبار در ابتدای برنامه و یا با نوشتن در ثبات TMOD • MOV TMOD, #10H
دراینمثال، تنظیم M1M0= 01 حالتیک برای زمانسنجیک، C/T= 0 و GATE= 0 • باتوجه به بالاروندهبودن زمانسنج، جهت شمارش N بایستی N- بشکل مکمل 2 در ثبات THx/TLx قرار گیرد. • MOV TL1, #9CH ; Set for count -100 • MOV TH1, #0FFH • شروع شمارش زمانسنج با دستور زیر • SETB TR1 • انتظار نرمافزار تا رسیدن سرریز برای زمانسنج یک • WAIT: JNB TF1, WAIT • لزوم متوقف کردن زمانسنج و پاک کردن پرچم سرریز • CLR TR1 • CLR TF1
خواندن زمانسنج در حال تغییر • خواندن زمانسنج با خواندن محتویات دو ثبات TLx/THx توسط نرمافزار، وجود خطای خواندن درصورت وقوع سرریز در TL بین دو خواندن • راهحل: ابتدا خواندن بایت بالا، بعد بایت پایین، و سپس بایت بالا؛ قبول عدد زمانسنج در صورت عدم تغییر بایت بالا در خواندن دوم • AGAIN: MOV A, TH1 • MOV R6, TL1 • CJNE A, TH1, AGAIN • MOV R7, A • 8- بازههای کوتاه و بلند • با فرض کریستال MHz 12، نرخ پالسزنی زمانسنج با فرکانس MHz 1
محدودبودن حداقل بازه قابل شمارش توسط نرمافزار، بدلیل مدت زمان اجرای دستور • مثال: تولید یک موج مربعی در P1.0 با بالاترین فرکانس ممکن • تولید یک موج مربعی با زمان بالابودن 1 میکروثانیه و پایینبودن 3 میکروثانیه، فرکانس خروجی KHz 250 با چرخه کار 25%
مثال: موج مربعی در P1.0 فرکانس KHz 10 بااستفاده از زمانسنج صفر
باتوجه به پریود موج مربعی برابر 100 میکروثانیه، نیاز به یک بازه 50 میکروثانیه • مثال: موج مربعی KHz 1 • وجود خطای جزیی در فرکانس خروجی ناشیاز دستورات اضافی جهت بارگذاری مجدد زمانسنج پساز اتفاق سرریز • مثال: رابط بیزر، برنامهای جهت تولید یک بوق بمدت 1 ثانیه با هر لبه پایینرونده ورودی
ایراد برنامه بالا در گم شدن یک لبه پایینرونده در ورودی توسط نرمافزار هنگام مشغول بودن جهت تولید صدا • ایراد دیگر گم شدن لبههای خیلی سریع در ورودی کمتر از یک میکروثانیه توسط دستور JNB یا JB، حل این مشکل با وقفه • 9- تولید نرخ انتقال • مولد سرعت نرخ انتقال بیت برای درگاه سری توسط زمانسنج یک