چکیده سیتم اعلان و اطفاء حریق به عنوان یک سیستم امنیتی برای کارخانجات ومراکز عمومی و ادارات کاربرد فراوانی دارد.و در صورت حس کردن حرارت ویا دود سیستم آلارم می دهد و می توان بگونه ای برنامه ریزی کرد که بتواند از حریق جلوگیری نماید.
کلمات کلیدی: سنسور گاز و حرارت, میکروکنترولر فصل اول سنسو رها: شماتیک سیستم اعلام حریق سامانه اعلام حریق، به مجموعهای از قطعات الکترونیکی گفته میشود که وظیفه آشکارسازی حریق در اماکن مختلف را بر عهده دارد.
انواع سامانه های اعلام حریق سامانههای اعلام حریق به سه گروه آدرس پذیر، متعارف و بدون سیم (وایرلس) تقسیم می شوند که هر یک از این سامانه ها خود به دو گروه خودکار و دستی تقسیم میشوند.
در سیستمهای دستی، شستی اعلام حریق، تنها منبع تشخیص حریق است.
درواقع کار تشخیص حریق در اینگونه سیستمها فقط به انسان سپرده شدهاست و در مکانهایی که انسان حضور ندارد، کاربردی ندارند.
بر خلاف اینگونه سیستمها، سیستمهای اعلام حریق خودکار، وابستگی کمتری به تشخیص انسان دارند.
سیستمهای خودکار، به دو گروه آدرسپذیر، و غیر آدرسپذیر تفکیک میشوند.
در سیستم آدرسپذیر، علاوه بر اعلام حریق، محل دقیق وقوع آن نیز مشخص میشود.
استانداردهای سیستم های اعلام حریق از جمله استاندارد های سیستم های اعلام حریق می توان به UL، LPCB، EVPU، EN-54، NFPA72، BS5839 نام برد.
استانداردهای دیگر: CE، VDS، CQST، TUV و ....
.
اجزای تشکیل دهنده سیستمهای اعلام آتش سوزی سامانه های اعلام آتش خودکار قدیمی، معمولاً از یک حسگر یا آشکارساز که خود متصل به خروجی صوتی بود، تشکیل شده بودند.
ولی این سیستمها در سالهای اخیر، دیگر مورد استفاده قرار نمیگیرند.
سامانه های جدیدتر معمولاً از تعدادی شستی اعلام حریق و تعدادی حسگر یا آشکارساز (Detector)، یک سامانه پردازش مرکزی و چند خروجی تشکیل میشوند.
آشکارسازها حسگرها و آشکارسازهای اعلام آتش، (بسته به اینکه به کدام مشخصه آتش حساس باشند) در گروههای آشکارسازهای دود، آشکارسازهای حرارت، آشکارسازهای منو اکسید کربن، آشکارساز شعله و آشکارسازهای ترکیبی جای دارند.
حسگر دود حسگرهای دود کار تشخیص دود در محل را برعهده دارند.
این حسگرها معمولاً در دو گروه حسگر نوری و حسگر یونیزاسیون جای میگیرند.
حسگرهای نوری با ارسال علایم نوری به یک گیرنده (که در داخل خود حسگر مسقر است) میزان تغییر و کاهش نور رسیده را اندازه گیری میکنند و اگر تغییر آشکاری در میزان نور دریافتی مشاهده کنند، آن را به آتش تعبیر میکنند.
حسگرهای یونیزاسیون، شامل دو صفحه نزدیک به هم (الکترودها) هستند و از هوای محیط به عنوان الکترولیت استفاده میکنند.
چنانچه تغییر ناگهانی در غلظت هوای محیط روی دهد، حسگر آن را به آتش تعبیر میکند.
حسگرهای یونیزاسیون، حاوی مقادیر کمی مواد رادیواکتیو بوده (برای یونیزه کردن ذرات موجود در هوای اطراف الکترودها)و برای همین عمر دائمی ندارند.
حسگرهای حرارت، کار تشخیص حرارت در محل را بر عهده دارند.
روش کار این حسگرها کاملاً مشابه جفت دما یا ترموکوپل یخچالهای خانگی است.
این حسگرها در داخل خود دو صفحه از مواد متفاوت و چسبیده به هم دارند که با گرم شدن و یا سرد شدن، جهت خم شدن صفحه ترکیبی تغییر میکند و باعث اتصال جریان میشود.
انواع جدیدتر این حسگرها دارای دماسنح بوده و به تغییرات درجه حرارت حساس میباشد.
حسگرهای ترکیبی، حسگرهایی هستند که از ترکیب یک حسگر دود و یک حسگر حرارت بوجود آمدهاند و میتوان خروجی آنها را بسته به حساسیت محل و تعداد اعلامهای اشتباه بر روی و/یا تنظیم نمود.
روشن است که در حالت «یا» تعداد اعلامهای اشتباه بیشتر بوده و در حالت «و» اعلام با تاخیر بیشتری صورت میگیرد.
سامانه مرکزی سامانه متصل به رایانه سامانه مرکزی، یک سامانه تشخیص آتش سوزی است.
در این سامانه اعلامهای حسگرها تجزیه و تحلیل شده و برای اعلام حریق یا در حالتهای مشکوک، اعلام نیاز به بازبینی انسان تصمیم گیری میشود.
این سیستمها اغلب یه صفحه کلید برای ورود فرامین توسط انسان و مانیتور برای مشاهده فرامین مجهز هستند.
این سیستمها امروزه یه رایانه متصل شده و از طریق نرمافزار مخصوص خود، برنامه را دریافت میکنند.
یکی دیگر از وظایف این سیستمها انتخاب نوع خروجی (آژیر خطر عمومی، آژیر خطر در جاهای خاص، تماس با مرکز آتش نشانی و سایر خروجیها) است.
خروجیها خروجی سامانه های اعلام آتش سوزی، بسته به محل وقوع یا نوع آتش ایجاد شده، میتواند شامل موارد مختلفی باشد.
تماس خودکار با آتش نشانی محلی، روشن نمودن تابلوهای خروج اضطراری، فعال سازی سامانه آتش خاموش کن خودکار، به صدا درآوردن آژیرهای خطر، قفل کردن یا از حالت قفل خارج کردن دربهای محلهای مختلف (مانند در خروجیهای اضطراری) همگی از مواردی است که میتواند بسته به تصمیم سیستم انجام شود.
سیم کشی دو روش کلی برای سیم کشی سیستمهای اعلام آتش وجود دارد.
روش حلقهای (Loop) یا روش ستارهای.
در قدیم که سیستمهای آدرسپذیر وجود نداشتند، اغلب از روش حلقهای استفاده میشد.
در این روش، حسگرها برروی یک حلقه مستقر بودند و این حلقه، از اتاقی به اتاق دیگر، و از حسگری به حسگر دیگر میرسید.
بعدها، تصمیم بر این شد که هرگروه از حسگرها که مربوط به محلی خاص در ساختمان هستند، با رشته سیم مجزایی به سیستم مرکزی متصل باشند تا بتوان تشخیص داد که آتش سوزی دقیقاً در کدام محل رخ دادهاست.
با پیشرفت فناوری، سیستم سیم کشی مجدداً به حالت حلقهای بازگشتهاست.
به این مفهوم که جریان تغذیه توسط دو رشته سیم و جریان اطلاعات توسط دو رشته دیگر با سیستم مرکزی میرسد.
برای هر حسگر کد مخصوصی اختصاص داده شدهاست و سیستم بدون نیاز به سیم کشی مجزا برای هر حسگر، آن حسگر و محل قرار گیری آنرا به خوبی (از روی کد مخصوصش) میشناسد.
ارسال کدها و اطلاعات بین حسگرها و سیستم مرکزی در هر ثانیه چندین بار صورت میگیرد و حسگر حتی نیاز خود به سرویس و تعمیر را نیز به سیستم مرکزی اعلام مینماید.
مونیتورینگ سامانه های اعلام و خاموشی آتش خودکار معمولاً از یک نمایشگر در قسمتهای پر تردد یا نگهبانیها که به صورت ۲۴ ساعت حضور دارند استفاده میشود که این پنلها را Mimic panelمینامند جستجو در ویکیانبار در ویکیانبار پروندههایی دربارهٔ سامانه اعلام حریق موجود است.
سامانه اعلام حریق متعارف سیستم اعلام حریق متعارف سامانه متعارف از قدیمی ترین انواع سیستمهای اعلام حریق است که علیرغم تغییرات کیفی اندک، هم چنان مورد استفاده قرار میگیرد.
در این سیستم چندین حسگر(Detector) و شستی که یک منطقه از ساختمان را پوشش میدهند در قالب یک مدار به هم پیوسته، به تابلوی کنترل مرکزی متصل میشوند.
بنابراین هر مدار نمایندهٔ یک منطقهاست.
در ساختمانهای عمومی اعلام ناشی از حریقی کوچک ممکن است موجب هراس تعداد زیادی و یا اخلال در روند معمولی فعالیتها گردد از این رو در این اماکن استفاده از پیش پیام سیستمهای دو مرحلهای مناسب تر است.
همان گونه که در تصاویر مشخص است، نحوهٔ هم بندی تجهیزات کشف و تشخیص نسبت به تابلوی کنترل مرکزی به صورت شاخهای و یا به عبارت دیگر شعاعی است.
هر تابلوی کنترل مرکزی متعارف میتواند ۲،۴،۸ و یا مدارهای بیشتری را پشتیبانی کند.
سامانه اعلام حریق آدرس پذیر اصول کشف و تشخیص حریق در سامانه های آدرس پذیر، مشابه سیستمهای متعارف است، به جز این که در این گونه سیستمها، هر یک از حسگر(Detector)های اتوماتیک و یا شستیها دارای آدرس منحصربهفردی هستند که از طریق آن تابلوی کنترل مرکزی قادر به شناسایی و تعیین هر یک از آن هاست.
کنترل پنل مرکزی اعلام حریق با استفاده از پروتکل های ارتباطی، اطلاعات وضعیت هر یک از تجهیزات اعلام حریق را تجزیه تحلیل کرده و در هنگام وقوع حریق و یا خطاا در سامانه محل دقیق آلارم و یا خطا را مشخص می کند.
این سیستمها به دو صورت حلقه و شاخه پیکربندی میگردد.
در گذشته برای آدرس دهی دتکتورهای آدرس پذیر از کلیدهای دهدهی (دو کلید گردان با شماره های 0-9) استفاده می کردند.
بعدها از دیپ سوئیچ ها(0-127) استفاده شد.
اما امروزه از کدی که درون میکروپروسسور داخلی تجهیز آدرس پذیر وجود دارد استفاده می شود.
1-1 سنسور دمای LM35 :سانتیگراد می باشد.
LM35 نیازی به کالیبره شدن ندارد زیرا ذاتا کالیبره است.
خروجی آن mv10 در ازای هر درجه سانتیگراد است.
این سنسور دارای دقت در دمای اتاق و در تمام بازه کاربردی آن یعنی از -55 تا -150 است.
امپدانس خروجی کوچک، خروجی خطی و کالیبراسیون دقیق ذاتی آن ارتباط با آن را برای بازخوانی و کنترل مدارات ساده می کند.
از آنجائیکه این سنسور تنها ma60 از منبع جریان می کشد، خیلی کم افزایش دمای داخلی پیدا می کند ( کمتر از 0.1 درجه در دمای اتاق ).
خلاصه ای از خصوصیات LM35 عباتست از : ● کالیبره شده داخلی بر حسب سلسیوس.
● دارای مقیاس خطی .
● دقت تضمین شده 0.5 ( در دمای 25 ) ● بازه مجاز -55 تا -150 درجه سانتیگراد.
● قیمت مناسب پایین.
●کار با ولتاژهای 4 تا 30 ولت.
● جریان درین کمتر از 60.
● تولید گرمای داخلی کمتر از 0.08 .
● عملکرد غیر خطی تنها در حدود .
● امپدانس خروجی پایین، برای بار .
مشخصات دقیق تر برای انواع سریهای LM35 و همچنین انواع بسته بندیهای آن در انتهای پایان نامه بصورت ضمیمه آورده شده است.
شکل 1-1 اشکال مختلف سنسور دماLM35 سنسورهای گاز سنسورهای زیر هر کدام برای گازهای مختلف کار برد دارند.
شکل2-1 اشکال ظاهری انواع سنسورهای گاز سری MQ سنسور گاز MQ 2 توسط این سنسور می توان گازهای از قبیل :بوتان,متان,الکل,دود را تشخیص دهد.
از 6 بایه تشکیل شده است,که دو بایه آن یکی A,B می باشد ودو بایه آن H می باشد.
که بایه های H به یک فیلامان متصل می باشد و بایه Aویکی از بایه های H به 5 ولت متصل شده است و بایه دیگر H به زمین متصل شده است.
بایه B خروجی سنسور می باشد و برای تنظیم ولتاز خروجی توسط یک مقاومت 3/3 کیلو اهم به زمین متل شده است.
اجزاء داخلی سنسور و نحوه بایاس کردنMQ2 در شکل 1-3 نشان داده شده است.
شکل3-1 مدار داخلی سنسور mq2 و نحوه ی بایاس آن Gas sensor & Gas detector شکل 4-1 سنسورها و دتکتور های موجود در بازار شکل 5-1 راه اندازی و بایاس سنسور گاز فصل دوم نقش میکروکنترولر AVR در سیستم اعلان و اطفاء حریق مختصری راجع به میکروکنترلرهای AVR : میکروکنترلرهای AVR با ایجاد تحولی در معماری، جهت کاهش کد به مقدار مینیمم توسط شرکت ATMEL ارائه شد که علاوه بر کاهش و بهینه سازی مقدار کدها بطور واقع عملیات را تنها در یک کلاک سیکل، توسط معماری RISC انجام می دهند.
و از 32 رجیستر همه منظوره استفاده می کنند، که باعث شده 4 تا 12 بار سریعتر از میکروهای مورد استفاده کنونی باشند.
خصوصیات ATmega 32 : از معماری AVR RISC استفاده می کند.
- کارایی بالا و توان مصرفی کم.
- دارای 131 دستورالعمل با کارایی بالا که اکثراً تنها در یک کلاک سیکل اجرا می شوند.
- 8×32 رجیستر کاربردی.
- سرعتی تا MIPS 16 در فرکانس MHZ 16.
حافظه برنامه و داده غیر فرار - k 16 بایت حافظه FLASH داخلی قابل برنامه ریزی.
- پایداری حافظه FLASH : قابلیت 000,10 بار نوشتن و پاک کردن.
- 1024 بایت حافظه داخلی SRAM.
- 512 بایت حافظه EEPROM داخلی قابل برنامه ریزی.
پایداری حافظه EEPROM قابلیت 000,100 بار نوشتن و پاک کردن.
- قفل برنامه FLASH برای محافظت از نرم افزار.
قابلیت ارتباط JTAG (IEEE std .
1149.1 ) - برنامه ریزی برنامه FLASH ، EEPROM ، FUSE BITS ، LOCK BITS از طریق ارتباط .JTAG خصوصیات ویژه میکروکنترلر: Power – on reset و Brown – out قابل برنامه ریزی.
- دارای اسیلاتور RC داخلی کالیبره شده.
- دارای 6 حالت Sleep ( Power–Down ، IDLE ، Power–Save ، Standby ، Extended Standby ، ADC Noise Reduction ) - منابع وقفه داخلی و خارجی - عملکرد کاملاً ثابت - توان مصرفی پایین و سرعت بالا توسط تکنولوژی CMOS ولتاژ عملیاتی: v4.5 تا v5.5.
فرکانسهای کاری : 0MHZ تا 16MHZ.
خطوط I/O و انواع بسته بندی : -32 خط ورودی- خروجی قابل برنامه ریزی.
40 پایه DDPI ،44 پایه TQFP ،44 پایه MLF.
ترکیب پایه ها ی ATmega 32 ( DDPI ): شکل 1-2 پایه های atmega32 4-2 بلوک دیاگرام ATmega 32 : شکل2-2 مدار داخلی میکرو کنترولر AVR توصیف پایه ها ATmega 32: VCC : تغذیه ولتاژ دیجیتال.
GND : زمین.
PORTA ( PA7...
PA0 ) : پورت A بعنوان ورودی آنالوگ مبدل A/D عمل می کند.
اگر از پورت A بعنوان مبدل A/D استفاده نشود، بعنوان پورت I/O دو طرفه عمل می کند.
پین های پورت دارای مقاومت Pull-up داخلی هستند.
وقتی که پینهای PA0 تا PA7 بعنوان ورودی استفاده می شوند و بصورت خارجی Pull Down شده باشند، در صورتیکه مقاومتهای Pull-up داخلی فعال شده باشند، آنها بعنوان منابع جریان عمل می کنند.
PORTB ( PB7… PB0 ) : پورت B یک پورت I/O دو طرفه است با مقاومتهای Pull-up داخلی که برای هر پایه اختصاص داده شده است.
پینهای پورت B در حالت ورودی وقتی که بصورت خارجی Pull-Down شده باشند، اگر مقاومتهای Pull-up داخلی فعال باشند، بعنوان منابع جریان عمل می کنند .
پورت B اعمال متنوع و مخصوص دیگری را هم انجام می دهد که در ادامه توضیح داده می شود.
PORTC ( PC7… PC0 ) : پورت C یک پورت I/O دو طرفه است با مقاومتهای Pull-up داخلی که برای هر پایه اختصاص داده شده است.
پینهای پورت C در حالت ورودی وقتی که بصورت خارجی Pull-Down شده باشند، اگر مقاومتهای Pull-up داخلی فعال باشند، بعنوان منابع جریان عمل می کنند.
پورت C اغلب برای اعمال مخصوص دیگری نیز استفاده می شود که توضیح داده خواهد شد.
PORTD ( PD7… PD0 ) : پورت D یک پورت I/O دوطرفه است با مقاومتهای Pull-up داخلی که برای هر پایه اختصاص داده شده است.
پینهای پورت D در حالت ورودی وقتی که بصورت خارجی Pull-Down شده باشند، اگر مقاومتهای Pull-up داخلی فعال باشند، بعنوان منابع جریان عمل می کنند.
پورت D هم اعمال مخصوص دیگری انجام می دهد که توضیح داده خواهد شد.
RESET : ورودی Reset ، هرگاه سطح پایینی به مدت حداقل طول یک پالس به این پایه برسد، Reset تولید می شود، حتی اگر کلاک کار نکند.
حداقل طول پالس در جدول 1-1 داده شده است.
جدول 1-1 ولتازآستانه پایه rest XTAL1 : ورودی معکوس اسیلاتور و ورودی مدارهای ورودی.
XTAL2 : خروجی معکوس اسیلاتور.
AVCC : این پایه منبع ولتاژِ پین برای پورت A و مبدل A/D است.
این پایه باید به صورت خارجی به Vcc وصل شود حتی اگر از ADC استفاده نمی شود.
اگر از ADC استفاده شود این پایه باید از طریق فیلتر پایین گذر به Vcc وصل شود.
AREF : این پایه مرجع آنالوگ پینها برای مبدل A/D است.
هسته مرکزی ATmega 32 ( CPU ) : در این بخش درباره معماری هسته مرکزی AVR در حالت کلی بحث می کنیم.
وظیفه اصلی CPU اطمینان از اجرای صحیح برنامه است.
بنابراین CPU باید قادر باشد تا به حافظه ها دسترسی پیدا کند، محاسبات را انجام دهد، ارتباط با خارج را کنترل کند و وقفه ها را رسیدگی کند.
حافظه های ATmega16 AVR : در این بخش حافظه های مختلف در ATmega16 را توصیف می کنیم.
ساختار AVR دارای دو فضای اصلی حافظه است.
فضای حافظه داده و فضای حافظه برنامه.
بعلاوه ATmega16 دارای حافظه EEPROM برای ذخیره داده نیز می باشد.
حافظه I/O : تمام خروجیها و ارتباطات فرعی ATmega16 در فضای I/O قرار داده شده اند.
مکانهای I/O توسط دستورات in و out دسترسی می شوند و انتقال داده بین 32 رجیستر همه منظوره و فضای I/O را انجام می دهند.
رجیسترهای I/O مابین آدرسهای 00$ تا 3F$ قابلیت دسترسی بیتی توسط دستورات SBI و CBI را دارند.
همچنین در این رجیسترها یک بیت می تواند توسط دستورات SBIC و SBIS چک شود.
وقتی که از دستورات مخصوص I/O ، in و out استفاده می شود باید آدرس های I/O 00$ تا 3F$ استفاده شود.
بعضی از پرچم های وضعیت توسط نوشتن 1 در آنها پاک می شوند.
توجه کنید که دستورات CBI و SBI بر تمام بیتهای رجیسترهای I/O عمل می کنند و نوشتن 1 در پرچمی که قبلا 1 شده است، باعث پاک کردن آن می شود.
شکل 3-2 کلاک clkcpu - CPU : کلاک CPU با توجه به عملکرد مختلف هسته مرکزی AVR، به قسمتهای مختلف سیستم هدایت می شود.
از جمله قسمتهای: رجیستر فایل همه منظوره، رجیستر وضعیت و حافظه داده نگه دارنده اشاره گر پشته.
متوقف کردن کلاک، هسته مرکزی را از انجام کارهای عمومی و محاسباتی باز می دارد.
کلاک clkI/O - I/O : کلاک I/O توسط اکثر واحدهای I/O از جمله تایمر- شمارنده ها، USART استفاده می شود.
همچنین کلاک I/O اغلب توسط واحد وقفه خارجی نیز مورد استفاده قرار می گیرد.
ولی توجه کنید که بعضی از وقفه های خارجی که توسط مدارهای غیر همزمان آشکار می شوند، به بعضی از وقفه ها اجازه وقوع می دهند حتی اگر کلاک I/O نیز متوقف باشد.
کلاک clkADC - ADC : ADC با کلاک مشخص کار می کند.
این کار باعث می شود تا کلاک های CPU و I/O را بتوان متوقف کرد.
تا نویز تولیدی توسط مدارات دیجیتال کاهش یابد.
و نتیجه تبدیل دقیتر باشد.
منابع کلاک : این تراشه دارای منابع کلاک مختلفی است که توسط فیوز بیتهای Flash مطابق جدول 4-1 انتخاب می شوند.
کلاک خروجی از منبع انتخاب شده به تولید کننده کلاک AVR می رود و سپس به واحدهای مربوط هدایت می شود.
جدول 2-1 وقتی که CPU از مدهای Power – Down یا Power – Save خارج می شود، منبع کلاک انتخابی برای محاسبه زمان Start – Up استفاده می شود و اطمینان حاصل می شود که عملکرد اسیلاتور به حالت پایدار رسیده است و سپس شروع به اجرای دستورات می کند.
وقتی که CPU از حالت Reset آغاز به کار می کند، زمانی تاخیر اضافه می شود که تغذیه هم به مقدار پایداری برسد.
از آنجایی که ما در ساخت این پروژه از منبع کلاک داخلی یعنی اسیلاتور RC کالیبره شده داخلی و اسیلاتور تایمر- شمارنده استفاده کرده ایم، در اینجا تنها به توضیح این منابع می پردازیم.
مد ADC Noise Reduction : در این مد CPU متوقف می شود.
اما به ADC ، وقفه خارجی، محافظ آدرس رابط سریال دو سیمه، تایمر- شمارنده 2 و Watchdog اجازه فعالیت می دهد.
این مد clkCPU، clkI/O و clkFLASH را متوقف می کند و به دیگر کلاکها اجازه کار می دهد.
اینکار نویز محیط را برای ADC بهبود می بخشد و اندازه گیری با دقت بالاتری را فراهم می کند.اگر ADC فعال باشد، وقتی که این مد وارد می شود، ADC بطور خودکار آغاز به انجام تبدیل می کند.
بغیر از وقفه تکمیل تبدیل ADC، Reset خارجی، Reset شدن Watchdog، Reset شدن قطع تغذیه، وقفه تطبیق آدرس رابط سریال دو سیمه، وقفه تایمر- شمارنده 2، وقفه آماده بودن SPM / EEPROM، وقفه های خارجی در پایه های INT0 و INT1 و یا وقفه خارجی در پایه INT2 می توانند MCU را از این مد Sleep خارج کنند.
حداقل کردن مصرف توان : هنگامی که شما سعی می کنید تا مصرف توان را در سیستم های AVR کاهش دهید، چندین مسئله را باید رعایت کنید.
بطور کلی تا حد امکان از مدهای Sleep باید استفاده کرد.
تمام توابعی که مورد نیاز نیستند باید غیر فعال شوند.
بویژه واحدهای زیر باید مورد توجه ویژه قرار گیرند که در ادامه توضیح می دهیم.
- مبدل آنالوگ به دیجیتال : اگر این واحد فعال باشد ADC در تمام مدهای Sleep فعال است.
برای کاهش مصرف توان، ADC باید قبل از وارد شدن به هر مد Sleep، غیر فعال شود.
وقتی که ADC خاموش می شود و سپس روشن می شود، اولین تبدیل، تبدیلی بسط داده شده خواهد بود و زیاد مورد اطمینان نیست.
که در این مورد توضیحات بیشتر را در بخش ADC خواهیم گفت.
- مقایسه کننده آنالوگ : وقتی که وارد مد Idle می شویم، اگر از مقایسه کننده آنالوگ استفاده نمی کنیم، باید آنرا غیر فعال کنیم.
وقتی هم که وارد ADC Noise Reduction می شویم باز هم مقایسه کننده آنالوگ باید غیر فعال شود.
در دیگر مدهای Sleep مقایسه کننده آنالوگ بطور خودکار غیر فعال می شود.
- مرجع ولتاژ داخلی : مرجع ولتاژ داخلی هرگاه که در آشکار ساز قطع برق و مقایسه کننده آنالوگ و یا ADC مورد نیاز باشد، فعال می شود.
اگر واحدهای نام برده شده غیر فعال باشند.
پین پورت می تواند توسط بیت رجیستر PINx خوانده شود، مستقل از اینکه مقدار DDRx چه جهتی را مشخص می کند.
مبدل آنالوگ به دیجیتال (ADC) : ATmega16 دارای ADC 10 بیتی بصورت تقریبهای متوالی است.
ADC به مالتی پلکسر آنالوگ 8 کاناله متصل است که به 8 ورودی ولتاژ یک طرفه اجازه می دهد تا از طریق پینهای پورت A متصل شوند.
ورودیهای ولتاژ یکطرفه با 0v مقایسه می شوند.
همچنین وسیله از ترکیب 16 کانال دیفرانسیلی نیز حمایت می کند.
دو تا از این ورودیهای دیفرانسیلی ( ADC3,ADC2,ADC1,ADC0)به مرحله گین قابل برنامه ریزی، مجهز هستند.
که مرحله تقویت 0db(x1)، 20db(x10)، ویا 46db (x200) را برای ولتاژ ورودی قبل از ورود به A/D فراهم می کند.
7 تا از کانالهای ورودیِ دیفرانسیلی، ترمینال منفی مشترکی را (ADC1) استفاده می کنند.
و در نتیجه ورودی دیگر ADC می توانند بعنوان ترمینال ورودی مثبت انتخاب شوند.
اگر گین x1 یا x10 استفاده شود, رزولوشن 8 بیتی می تواند مورد انتظار باشد.
اگر گین x200 استفاده شود، 7 بیت رزولوشن می تواند مورد انتظار باشد.
ADC شامل مدار sample and hold است، تا ولتاژ ورودی در طی تبدیل بصورت ثابت نگه داشته شود.
بلوک دیاگرام ADC در شکل 16-1 نشان داده شده است.
ADC دارای پین منبع تغذیه ولتاژ مجزایی است (AVCC).
AVCC نباید بیشتر از 0.3 با VCC اختلاف داشته باشد.
ولتاژ مرجع داخلی می تواند بصورت درون تراشه ای، ولتاژ اسمی v2.56 ویا AVCC انتخاب شود.
ولتاژ مرجع خارجی می تواند از طریق خازن برای عملکرد بهتر در مقابل نویز به پایه AREF وصل شود.
عملکرد ADC : ADC ولتاژ آنالوگ ورودی را از طریق روش تقریبهای متوالی به 10 بیت دیجیتال وصل می کند.
کمترین مقدار برای ولتاژ ورودی GND و بیشترین مقدار ولتاژ روی پایه AREF منهای 1lsb است.
بطور دلخواه AVCC و یا ولتاژ نامی داخلی، می تواند به پایه AREF توسط رجیستر ADMUX وصل شود.
( بیتهای REFSn ).
کانالهای آنالوگ ورودی و همچنین گین دیفرانسیلی هم توسط بیتهای MUX در رجیستر ADMUX انتخاب می شوند.
هر کدام از پینهای ورودی ADC می توانند به خوبی بعنوان ورودی یک طرفه انتخاب شوند و همگی عملکرد یکسانی دارند.
همچنین پینهای ورودی ADC می توانند به عنوان ورودی مثبت و یا منفی برای تقویت کننده گین دیفرانسیلی انتخاب شوند.
اگر کانالهای دیفرانسیلی انتخاب شوند، مرحله گین دیفرانسیلی، اختلاف ولتاژ بین ورودیهای انتخاب شده را تقویت می کند.
سپس مقدار تقویت شده، به ورودی آنالوگ ADC می رود.
اگر ورودیهای یکطرفه تنها انتخاب شوند مرحله تقویت گین حذف می شود.
ADC توسط 1 کردن بیت فعال ساز ADC ، ADEN در رجیستر ADCSRA فعال می شود.
انتخاب مرجع ولتاژ و کانالهای ورودی تا زمانی که ADC فعال نشود، اثری نخواهد داشت.
همچنین ADC تا زمانی که ADEN 1 نشود، توان مصرف نمی کند.
از اینرو توصیه می شود قبل از رفتن به مدهای Sleep ، ADC را خاموش کنید.
ADC نتیجه دیجیتال 10 بیتی را تولید می کند که در رجیسترهای داده ADC ، ADCH و ADCL قرار داده می شوند.
بصورت پیش فرض نتیجه از راست تنظیم می شوند، ولی می توان با تنظیم ADLAR در رجیستر ADMAX آن را از چپ تنظیم کرد.
اگر نتیجه از چپ تنظیم شده باشد و وقتی بیشتر از 8 بیت مورد نیاز نباشد، کافیست تنها ADCH را بخوانیم.
همچنین باید ابتدا ADCL را خواند و بعد ADCH را تا مطمئن شویم که محتوای رجیسترهای داده مربوط به یک تبدیل است.
وقتی که ADCL خوانده می شود، دسترسی ADC به رجیسترهای داده قفل می شود.
یعنی زمانی که ADCL خوانده می شود و تبدیل تمام می شود، قبل از اینکه ADCH خوانده شود، هیچ رجیستری بروز نمی شود و نتیجه تبدیل مربوطه از بین می رود.
وقتی که ADCH خوانده شود، دوباره ADC به ADCL و ADCH می تواند دسترسی پیدا کند.
ADC دارای وقفه مربوط به خود است و این وقفه زمانی فعال می شود که تبدیل کامل شود.
حتی هنگام خواندن ADCH و ADCL هم این وقفه اگر تبدیلی کامل شود، ایجاد می شود، ولو اینکه نتیجه تبدیل از بین برود.
شروع تبدیل : یک تبدیل با نوشتن 1 در بیت شروع تبدیل ADC، ADSC آغاز می شود.
این بیت در طول زمان تبدیل، 1 باقی می مانند و پس از اتمام آن بصورت سخت افزاری پاک می شود.
اگر از چندین کانال استفاده کنیم، ADC قبل از تغییر کانال، تبدیلِ در حال انجام را به اتمام می رساند و سپس کانال را تغییر می دهد.
آغاز تبدیل می تواند توسط منابع مختلفی تحریک شود.
تحریک خودکار توسط یک شدن بیت ADATE در رجیستر ADCSRA فعال می شود.
منبع تحریک توسط تنظیم بیتهای ADTS در رجیستر SFIOR انتخاب می شود.
وقتی که لبه مثبتی در سیگنال تحریک انتخاب شده بوجود بیاید، prescaler، reset می شود و تبدیل آغاز می شود.
اگر وقتی که تبدیل تمام شود، سیگنال تحریک همچنان 1 باشد، تبدیل جدیدی شروع نمی شود.
همچنین اگر در طی انجام تبدیل، لبه مثبت تحریک دیگری بیاید، از آن چشم پوشی می شود.
توجه کنید که پرچم وقفه 1 می شود، حتی اگر وقفه مخصوص آن و یا بیت فعال ساز وقفه عمومی پاک شده باشد و غیر فعال باشد، همچنین تبدیل می تواند بدون اینکه ایجاد وقفه کند، تحریک شود.
با وجود این پرچم وقفه بمنظور ایجاد تبدیل جدید در وقفه بعدی باید پاک شود.
استفاده از پرچم وقفه ADC بعنوان منبع تحریک باعث می شود تا تبدیل جدید بمحض تمام شدن تبدیل قبلی شروع شود.
در نتیجه ADC بصورت مد Free Run کار می کند.
اولین تبدیل توسط 1 کردن ADSC آغاز می شود.
در این مد ADC تبدیلهای متوالی را بدون توجه به اینکه آیا پرچم وقفه ADC ( ADIF ) پاک شده است یا نه، انجام می دهد.
Prescaling و زمان تبدیل : بصورت پیش فرض مدارات تقریب متوالی نیاز به کلاک ورودی با فرکانس ما بین KHZ 50 تا KHZ 200 برای داشتن بیشترین دقت، دارند.
اگر رزولوشن کمتر از 10 بیت مورد نیاز بود، فرکانس کلاک ورودی می تواند بیشتر از KHZ 200 باشد تا سرعت نمونه برداری بیشتری داشته باشد.
البته می توان با 1 کردن بیت ADHSM در SFIOR اجازه داد تا فرکانس کلاک ADC افزایش پیدا کند و البته مصرف توان آن نیز زیاد می شود.
ADC دارای Prescaler است که فرکانس کلاک مورد قبول را برای ADC از هر فرکانس CPU بالای KHZ 100فراهم می کند.
Prescaler از لحظه ای که ADC روشن می شود، شروع بکار می کند و تا زمانی که ADC فعال است، آن هم روشن است.
وقتی که تبدیل یکطرفه مقداردهی می شود، تبدیل در لبه بالا رونده کلاک بعدی آغاز می شود.
تبدیل معمولی 13 کلاک سیکل ADC طول می کشد.
اولین تبدیل پس از اینکه ADC روشن شد، 25 کلاک سیکل ADC طول می کشد.
1بعلت اینکه مدارات آنالوگ مقداردهی شوند.
عملکرد sample and hold ، 5/1 کلاک سیکل ADC بعد از شروع تبدیل نرمال و 5/13 کلاک سیکل بعد از شروع تبدیل ADC انجام می شود.
وقتی که تبدیل تمام شود، نتیجه در ADCH و ADCL نوشته می شود، و ADIF، 1 می شود.
وقتی که از تحریک خودکار استفاده می شود، Prescaler وقتی که تحریک رخ می دهد Reset می شود.
این عمل باعث تاخیر ثابتی بین تحریک و آغاز تبدیل می شود.
در این مد sample and hold 2 کلاک ADC بعد از انجام تحریک واقع می شود.
3 کلاک سیکل CPU هم برای همزمان سازی منطفی زمان صرف می شود.
کانالهای بهره تفاضلی : تبدیلهای تفاضلی با کلاک داخلی CKADC2 همزمان هستند.
که برابر با نصف کلاک ADC است.
این همزمان سازی بصورت خودکار توسط رابطهای ADC انجام می شود.
به این طریق که sample and hold در فاز مشخصی از CKADC2 اتفاق می افتد.
تبدیل توسط کاربر مقداردهی اولیه می شود.
وقتی که CKADC2 در سطح پایین باشد، مقدار زمانی برابر با تبدیل یک طرفه یعنی 13 کلاک سیکل ADC طول می کشد.
وقتی که CKADC2 در سطح بالا باشد، بمنظور انجام همزمان سازی چهارده کلاک سیکل طول می کشد.
در مد Free Run تبدیل جدید بلا فاصله بعد از کامل شدن تبدیل قبلی آغاز می شود و تا وقتی که CKADC2 در سطح بالا است، تمام تبدیلهای بطور خودکار آغاز شده ( یعنی بجز تبدیل اول ) همگی 14 کلاک سیکل طول می کشند.
مرحله تقویت بهره برای پهنای باند KHZ 4 بهینه شده است.
فرکانس های بالاتر ممکن است باعث عملکرد غیر خطی شوند.
توجه داشته باشید که فرکانس کلاک ADC مستقل از محدودیت پهنای باند مرحله گین است.
اگر از کانالهای بهره تفاضلی استفاده می کنیم و تبدیل توسط تحریک خودکار آغاز می شود، ADC باید بین تبدیلها خاموش شود.
از آنجائیکه مرحله تقویت بهره وابسته به پایداری کلاک است، تبدیل اول معتبر نیست.
توسط غیر فعال کردن و دوباره قعال کردن ADC، تنها تبدیل های توسعه داده شده شکل می گیرند و تنها نتیجه آنها معتبر خواهد بود.
کانالهای ورودی ADC : وقتی که انتخاب کانالها تغییر می کنند، باید موارد زیر را رعایت کرد تا از انتخاب کانال مطمئن شد.
در مد تبدیل تکی اغلب باید قبل از شروع تبدیل کانال را انتخاب کرد.
انتخاب کانال ممکن است یک کلاک سیکل ADC بعد از 1 شدن ADSC تغییر کند.
با وجود این, روش ساده تر این است که صبر کنیم تا تبدیل کامل شود و سپس کانال تغییر کند.
در مد Free Run همیشه کانال را قبل از آغاز اولین تبدیل انتخاب می کنیم.
انتخاب کانال ممکن است تا یک کلاک سیکل ADC بعد از یک شدن ADSC نیز انجام شود.
با وجود این روش ساده تر این است که صبر کنیم تا تبدیل کامل شود و سپس کانال را تغییر دهیم.
وقتی که به کانل بهره دیفرانسیلی سوئیچ می کنیم اولین تبدیل ممکن است دارای دقت پایین باشد و بهتر است از آن چشم پوشی کنیم.
مرجع ولتاژ ADC : ولتاژ مرجع برای ADC (VREF) ، بازه تبدیل را برای ADC نشان می دهد.
کانالهای یکطرفه ای که ولتاژ آنها از Vref فراتر رود، 0x3FF را نتیحه خواهند داد.
Vref می تواند AVCC ، ولتاژ داخلی v2.56 و یا ولتاژ خارجی پایه AREF تعیین شود.
AVCC از طریق سوئیچ پسیو به ADC وصل می شود.
ولتاژ v2.56 داخلی از مرجع bandgap (VBG) از طریق تقویت کننده داخلی، تولید می شود.
در مورد دیگر، پایه خارجی AREF مستقیما به ADC وصل می شود و می توان با اتصال خازن بین پایه AREF و زمین، مرجع ولتاژ را در مقابل نویز ایمن کرد.
VREF را می توان در پایه AREF اندازه گیری کرد.
اگر منبع ولتاژ ثابتی را به پایه AREF وصل کنیم، نباید از دیگر انتخابهای مراجع ولتاژ استفاده کنیم.
اگر از مرجع ولتاژ خارجی استفاده نکنیم، می توان بین مراجع داخلی v2.56 وAVCC سوئیچ کرد.
اولین نتیجه تبدیل بعد از سوئیچ مرجع ولتاژ، دقیق نیست و باید از آن صرفنطر کرد.