تحقیق مقاله مطلب

در مورد دانشنامه فارسی - نت سرا

تحقیق مقاله مطلب

در مورد دانشنامه فارسی - نت سرا

طراحی میکروکنترلر AVR جهت اسکن

تاریخچه و مقدمه :

ریزپردازنده وسیله ای است که می توان با دادن فرمان آن را به عملیات مختلف واداشت . یعنی یک کنترل کننده قابل برنامه ریزی است . همه ریزپردازنده ها سه عمل اساسی یکسانی را انجام می دهند : انتقال اطلاعات ، حساب و منطق ، تصمیم گیری ، اینها سه کار یکسان هستند که به وسیله هر ریزپردازنده ، کامپیوتر کوچک یا کامپیوتر مرکزی انجام می شود .

اولین ریزپردازنده تک تراشه ای ، ریزپردازنده Intel 4004 بود که توانست دو عدد 4 بیتی دودویی را جمع کند و عملیات متعدد دیگری را انجام دهد .

4004 با معیارهای امروزی یک وسیله کاملا ابتدایی بود که می توانست 4096 مکان مختلف را آدرس دهد. برای حل این مسئله بود که ریزپردازنده 8 بیتی ( 8008 ) به وسیله شرکت Intel معرفی شد .

Intel 8008:

Intel 8008 توانست اعداد 8 بیتی را ( که بایت نامیده می شوند ) به کار گیرد ، که این خود پیشرفت بزرگی نسبت به 4004 بود . تقریبا در همان زمان گشایشی در ساختن مدارهای منطقی NMOS ( نیمه هادی اکسید فلز از نوع N )پیش آمد . منطق NMOS بسیار سریع تر از PMOS است . به علاوه از یک منبع تغذیه مثبت استفاده می کند که آن را برای اتصال به مدارهای منطقی TTL سازگارتر می کند . خصوصیات مذکور از این جهت دارای اهمیت است که بسیاری از مدارهای جنبی ریزپردازنده از نوع TTL هستند . NMOS سرعت ریزپردازنده را با ضریبی در حدود 25 بار افزایش می دهد که رقم چشمگیری است .

این تکنولوژی جدید در ساختمان ریزپردازنده معروف امروزی یعنی Intel 8080 به کار برده شد .

Intel 8080:

Intel 8080 در 1973 و معرفی آن دنیا را به دوره ریزپردازنده وارد کرد . 8080 نوع بسیار غنی شده ای از 8080 بود که می توانست 500000 عمل را در ثانیه انجام دهد و 64 کیلو بایت از حافظه را آدرس می دهد و 500000 دستورالعمل را در ثانیه اجرا کند . امتیاز اصلی Z80 نسبت به 8080 این است که می تواند از دستورالعمل هایی که برای 8080  می شوند نیز استفاده کند . نرم افزاری که برای 8080 استفاده می شود بدون پیچیدگی بر روی Z80 قابل اجرا است . یک مشخصه سخت افزاری مهم Z80 در مقایسه با 8080 آرایش کامل تر ثبات هاست . Z80 همچنین مکانیزمی را به کار می گیرد که حافظه RAM دینامیکی را به طور خورکار تازه می کند . این دو مشخصه اضافی موجب برتری Z80 نسبت به Intel 8080 شده است.

سایر ریزپردازنده های اولیه :

تا سال 1973 ، Intel  تولید کننده اصلی ریزپردازنده ها بود . بعد از آن تولید کنندگان دیگر متوجه شدند که این وسیله جدید دارای آینده است و شروع به تولید انواع اصلاح شده دیگری از ریزپردازنده Intel 8080 کردند .

ریزپردازنده های امروزی :

به نظر می رسد که آینده توجه ریزپردازنده در دست سه شرکت Intel  ، Motorola و Zilog است . این شرکت ها هر یک با دو سال یک بار انواع پیشرفته تری از ریزپردازنده ها را تولید می کنند . امروزه ریزپردازنده ها از نظر اندازه بین 4 تا 32 بیت دارند .

انواع میکروپروسسورها :

1. Genela  ( که خود شامل cpu می باشد که بر اساس برنامه وظیفه آنها تغییر می کند و µ.c که از تکنولوژی RISC سود می برد .

2.پروسسورهای صوتی : سری VP ساخت شرکت QUICK  و سری ISD

3.پروسسورهای مخابراتی ( شرکت MITEL فقط پروسسورهای مخابراتی می زند . )

4. پروسسورهای خاص ( برای کاربردهای خاص استفاده می شود ) .

در معماری CPU از تکنولوژی CISC و RISC استفاده شده که تکنولوژی CISC (  Complex INSTROCTION set Computer )دستورات پیچیده را در داخل خود اجرا می کند و تکنولوژی RISC( Reduce INSTROCTION set Computer )

SET کامپیوتری است که دستورات ساده ای دارد که از این نوع تکنولوژی در میکرو کنترلرها نیز استفاده شده و خواص آن تعداد کم دستورالعمل ها می باشد .

تعریف µ.c :

تراشه هایی هستند که واسطهای صفحه کلید ، دیسک و در بسیاری از دیگر دستگاهها استفاده می شود . این نوع تراشه ها به علت حجم بسیار کوچک که دارند به نام single µ.c chip معروفند .

تفاوت میان ریزپردازنده با ریز کنترل کننده ( µ.c ) :

ریز کنترل کننده ها علاوه بر cpu شامل حافظه ، خطوط I/O تایمر ، کانتر و در برخی از آنها حتی A/D نیز دارند . حال به مروری بر میکروهای AVR و انواع آنها می پردازیم .


مقدمه :

1-1        الکترونیک در زندگی امروز

امروزه پیشرفت در الکترونیک ای امکان را به ما داده است تا بتوانیم انواع وسایل الکترونیکی مانند ، ماشین حساب های جیبی ، ساعت رقمی ، کامپیوتر برای کاربرد در صنعت در تحقیقات پزشکی و یا طریقه تولید کالا به طور اتوماتیک در کارخانجات و بسیاری از موارد دیگر را مستقیم یا غیر مستقیم مورد استفاده قرار دهیم .

اینها همه به خاطر آن است که فن آوری توانسته مدارهای الکترونیکی را که شامل اجزاء کوچک الکترونیکی هستند ، بر روی یک قطعه کوچک سیلیکن که شاید سطح آن به 5 میلی متر مربع بیشتر نیست ، جای دهد . فن آوری میکروالکترونیک که به مدارهای یکپارچه معروف به آی سی یا تراشه مربوط می گردد ، در بهبود زندگی بشر تاثیر به سزایی داشته و آن را بطور کلی دگرگون نموده است . تراشه ها همچنین برای مصارفی چون کنترل رباتها در کارخانجات ، یا کنترل چراغهای راهنمایی و یا وسایل خانگی مانند ماشین لباس شویی و غیره مورد استفاده قرار می گیرند . از طرفی تراشه ها را می توان مغز دستگاه هایی چون میکرو کامپیوترها و رباتها به حساب آورد .

2-1 سیستم های الکترونیکی

پس از یک نظر اجمالی در داخل یک سیستم الکترونیکی مانند یک دستگاه رادیو ، تلویزیون و یا کامپیوتر ممکن است انسان از پیچیدگی آن و از یادگیری الکترونیک دلسرد شود ، اما در واقع آن طور که به نظر می رسند ، دشوار نیستند و این به دو دلیل است .

اول اینکه اگرچه سیستم های الکترونیکی اجزاو قطعات زیادی را در خود جای می دهند ، اما باید دانست که انواع کلی این اجزا اغلب محدود و انگشت شمار هستند . از مهم ترین گروه های این اجزا می توان مقاومت ها ، خازن ها ، القا گرها ، دیودها ، ترانزیستورها ، کلیدها و مبدل ها را نام برد . این اجزا زمانی که به صورت یکپارچه در یک تراشه قرار می گیرند ، هر یک همان وظیفه خود را به عنوان یک قطعه مجزا انجام می دهند و فقط اندازه  فیزیکی آن کوچکتر شده است .

دوم اینکه انواع سیستم های الکترونیکی از تعداد محدودی مدارهای اصولی و یا بلوک هایی که وظیفه هر کدام به کاراندازی قسمتی از سیستم مثلا تقویت یا شمارش است ، تشکیل یافته اند که به منظور عملکرد کل سیستم ، آن را به یکدیگر متصل می نمایند .

3-1 مدارهای خطی و مدارهای رقمی

بسیاری از سیستم های الکترونیکی طوری طراحی شده اند تا با دریافت یک ورودی الکتریکی و با پردازش آن ، یک خروجی الکتریکی تولید کرده تا بتوانند کار معینی را انجام دهند ( که این کار بدون سیستم مورد نظر ، به تنهایی از عهده ورودی الکتریکی مذکور ساخته نخواهد بود . )

مدارهای الکترونیکی که در سیستم ها کاربرد دارند به دو دسته مهم تقسیم می شوند : مدارهای خطی ( یا قیاسی ) و مدارهای رقمی یا دیجیتال .

مدارهای خطی ار نوع مدارهای تقویت کننده هستند که با سیگنال هایی سرو کار دارند که این سیگنال ها معرف کمیت هایی مانند تغییرات صوتی ، صدای انسان یا موسیقی و غیره هستند . در بسیاری از مدارهای خطی از ترانزیستور به عنوان تقویت کننده صوتی استفاده می کنند .

مدارهای دیجیتال از نوع مدارهای کلیدزنی هستند ، که مقدار ورودی یا خروجی آنها در هر زمان فقط می تواند دارای یکی از دو حالت صفر یا یک باشد و اگر قرار است این دو حالت به هم تبدیل شوند این تبدیل حالت بسیار سریع اتفاق می افتد ، در حالی که مدارهای خطی دارای حالت مداوم بوده و این حالات به تدریج در واحد زمان قابل تغییر هستند . مدارهای رقمی دارای فقط دو حالت هستند و ورودی و خروجی آنها به اصطلاح (high) به معنی بالا ، یعنی نزدیک به میزان ولتاژ منبع مدار و یا (low) به معنی پایین ، یعنی نزدیک صفر ولت هستند . در این مدارها عمل کلیدزنی به وسیله ترانزیستور انجام می گیرد . دستگاه شمارش گر در واقع یک مدار رقمی است که در آن سیگنال تولید شده توسط سلول نوری ، یا در حالت صفر و یا در حالت یک قرار می گیرد و این امر بستگی به قطع شدن یا نشدن نور دارد . بنابراین مدارهای رقمی علائم الکتریکی را به صورت پالس یا ضربه با خود حمل می کنند . سیستمی که در آن یک لامپ توسط دیمر کنترل و کم و زیاد می شود ، یک سیستم حالت مداوم و سیستمی که همان لامپ را خاموش و روشن می کند یک سیستم دو حالته است ، چون که توسط آن لامپ مذکور یا کاملا روشن یا کاملا خاموش می شود .


فصل اول: مختصری از نحوه کار با  AVR

1-1- خصوصیات Atmega16L و Atmega16

٭ ازمعماری AVR RISC استفاده می کند .

- کارایی بالا و توان مصرفی کم

- دارای 131 دستورالعمل با کارایی بالا که اکثرا تنها در یک کلاک سیکل اجرا می شوند .

- 8×32رجیستر کاربردی

- سرعتی تا 16 MIPS در فرکانس 16 MHZ

٭ حافظه ، برنامه و داده غیر فرار

-16K بایت حافظه FLASH داخلی قابل برنامه ریزی

پایداری حافظه FLASH : قابلیت 10000 بار نوشتن و پاک کردن ( WRITE / ERASE )

-1024 بایت حافظه داخلی SRAM

-512  بایت حافظه EEPROM داخلی قابل برنامه ریزی

پایداری حافظه EEPROM : قابلیت 100000 بار نوشتن و پاک کردن  ( WRITE / ERASE )

- قفل برنامه FLASH و حفاظت داده EEPROM

٭ قابلیت ارتباط JTAG ( IEEE Std . )

- برنامه ریزی برنامه FLASH  ، EEPROM ، FUSE BITS ، LOCK BITS از طریق ارتباط JTAG

٭ خصوصیات جانبی

- دو تایمر- کانتر (TIMER / COUNTER ) 8 بیتی با PRESCALER مجزا و مد COMPARE

- یک تایمر- کانتر (TIMER / COUNTER ) 16 بیتی با PRESCALER مجزا و دارای مدهای COMPARE و CAPTURE

- 4 کانال PWM

- 8 کانال مبدل آنالوگ به دیجیتال 10 بیتی

8 کانال SINGLE-ENDED

دارای 7  کانال تفاضلی در بسته بندی TQFP

دارای دو کانال تفاضلی با کنترل گین 1x ، 10x و 200x

- یک مقایسه کننده آنالوگ داخلی .

- WATCHDOG قابل برنامه ریزی با اسیلاتور داخلی .

- قابلیت ارتباط با پروتکل سریال دو سیمه (TWO-WIRE  )

- قابلیت ارتباط سریال SPI ( SERIAL PERIPHERAL INTERFACE ) به صورت MASTER یا SLAVE

-USART  سریال قابل برنامه ریزی

٭ خصوصیات ویژه میکروکنترلر

- POWER-ON RESET CIRCUIT  و BROWN-OUT قابل برنامه ریزی .

- دارای اسیلاتور RC داخلی کالیبره شده

- دارای 6 حالت SLEEP ( POWER-DOWN ، IDLE ، POWER-SAVE ، STANDBY ، EXTENDED STANDBY و  ADC NOISE REDUCTION )

- منابع وقفه (INTERRUPT  ) داخلی و خارجی .

- عملکرد کاملا ثابت .

- توان مصرفی پایین و سرعت بالا توسط تکنولوژی CMOS

٭ توان مصرفی در 1MHZ ، 3V ، 250C برای ATMEGA16L

- حالت فعال 1.1 mA ( ACTIVE MODE )

- در حالت بی کاری 0.35 mA ( IDLE MODE )

- در حالت POWER-DOWN : > 1µA

٭ ولتاژهای عملیاتی (کاری )

-2.7 V تا5.5 V برای ( Atmega16 L )

-4.5 V تا 5.5 V برای ( Atmega16  )

٭ فرکانس های کاری

-0MHZ تا  8MHZ  برای( Atmega16 L )

-0MHZ  تا 16MHZ برای ( Atmega16  )

خطوط I/O و انواع بسته بندی

-32 خط ورودی/ خروجی ( I/O) قابل برنامه ریزی .

-40 پایه PDIP ، 44  پایه TQFP و 44  پایه MLF

1-1-1- ترکیب پایه ها:

2-1-1- فیوز بیت های ATMEGA16

ATMEGA16 دارای دو بایت فیوز طبق جدول های زیر می باشد :

فیوز بیت ها با پاک کردن (ERASE  ) میکرو تاثیری نمی بینند ولی می توانند با برنامه ریزی بیت LB1 قفل شوند . منطق 0 به معنای برنامه ریزی شدن و 1  به معنای برنامه ریزی نشدن بیت است .

OCDEN : در صورتی که بیت های قفل برنامه ریزی نشده باشند برنامه ریزی این بیت به همراه بیت JTAGEN باعث می شود که سیستم ON CHIP DEBUG فعال شود . برنامه ریزی شدن این بیت به قسمت هایی از میکرو  امکان  می دهد که در مدهای SLEEP کار کنند که این خود باعث افزایش مصرف سیستم می گردد . این بیت به صورتی پیش فرض برنامه ریزی نشده ( 1 ) است .

JTAGEN : بیتی برای فعال سازی برنامه ریزی میکرو از طریق استاندارد ارتباطی IEEE( JTAG ) که در حالت پیش فرض فعال است و میکرو می تواند از این ارتباط برای برنامه ریزی خود استفاده نماید .

SPIEN : در حالت پیش فرض برنامه ریزی شده و میکرو از طریق سریال SPI برنامه ریزی می شود .

CKOPT : انتخاب کلاک که به صورت پیش فرض برنامه ریزی نشده است . عملکرد این بیت به بیت های CKSEL بستگی دارد که در بخش کلاک سیستم ( 1 ) در انتهای همین فصل آمده است .

EESAVE : در حالت پیش فرض برنامه ریزی نشده و در زمان پاک شدن (ERASE ) میکرو حافظه EEPROM پاک می شود ولی در صورتی که برنامه ریزی شود محتویات EEPROM در زمان پاک شدن میکرو محفوظ می ماند .

BOOTSZ0 , BOOTSZ1 برای انتخاب مقدار حافظه BOOT طبق جدول زیر برنامه ریزی می شوند و در زمان برنامه ریزی شدن فیوز بیت BOOTRST اجرای برنامه از آدرس حافظه BOOT آغاز خواهد شد .

BOOTRST : بیتی برای انتخاب بردار ریست BOOT که در حالت پیش فرض برنامه ریزی نشده و آدرس بردار ریست $0000 است و در صورت برنامه ریزی آدرس بردار ریست به آدرسی که فیوز بیت های BOOTSZ0 وBOOTSZ1 مشخص کرده اند تغییر می یابد .

BODLEVEL : زمانی که این بیت برنامه ریزی نشده ( پیش فرض ) باشد ، اگر ولتاژ پایه VCC از 2.7V پایین تر شود ریست داخلی میکرو فعال شده و سیستم را ریست می کند . زمانی که این بیت برنامه ریزی شده باشد ، اگر ولتاژ پایه VCC از 4V پایین تر شود ریست داخلی میکرو فعال شده و میکرو را طبق شکل 3-2 ریست می کند .

BODEN : برای فعال کردن عملکرد مدار BROWN-OUT این بیت بایستی برنامه ریزی شده باشد . این بیت به صورت پیش فرض برنامه ریزی نشده است .

SUT1 ,SUT0 : عملکرد این دو بیت برای انتخاب زمان START-UP در بخش 3-14 در انتهای همین فصل کاملا توضیح داده شده است .

CKSEL0 CKSEL3  : عملکرد این بیت ها در بخش 3-14 در انتهای همین فصل کاملا توضیح داده شده است . مقدار پیش فرض:

1MHZ INTERNAL RC OSCILLATOR@ است .

2-1- بررسی پورت های میکرو ATMEGA16

در این بخش به بررسی عملکرد پورت های میکرو مورد نظر می پردازیم .

1-2-1- پورت B :

پورت B یک I/O دو طرفه 8 بیتی است . سه آدرس از مکان حافظه I/O اختصاص به PORTB دارد . یک آدرس برای رجیستر داده PORTB دومی رجیستر جهت داده DDRB و سومی پایه ورودی پورت B ، PINB است . آدرس پایه های ورودی پورت B فقط قابل خواندن است . در صورتی که رجیستر داده و رجیستر جهت داده هم خواندنی و هم نوشتنی هستند . پایه های پورت دارای مقاومت PULL-UP مجزا هستند . بافر خروجی پورت B می تواند تا 20mA را Sink  کند و در نتیجه LED را مستقیما راه اندازی می کند . هنگامی که PB0-PB7 با مقاومت های PULL-DOWN خروجی استفاده می شوند آنها SOURCE جریان می شود . زمانی که مقاومت های PULL-UP داخلی 3 فعال باشند .

استفاده از پورت B به عنوان یک I/O عمومی دیجیتال :

تمام 8 پایه موجود زمانی که به عنوان پایه های I/O دیجیتال استفاده می شوند دارای عملکرد مساوی هستند .

PBn و پایه I/O عمومی : بیت DDBn در رجیستر DDRB مشخص کننده جهت پایه است . اگر DDBn یک باشد ، PBn به عنوان یک پایه خروجی مورد استفاده قرار می گیرد و اگر DDBn صفر باشد ، PBn  به عنوان یک پایه ورودی در نظر گرفته می شود . اگر  PortBn یک باشد هنگامی که پایه به عنوان ورودی تعریف شود مقاومت Pull-UP فعال می شود برای خاموش کردن مقاومت Pull-UP باید Port Bn صفر باشد یا اینکه پایه به عنوان خروجی تعریف شود . پایه های پورت زمانی که ریست اتفاق می افتد به حالت Tristate  می روند .

دیگر کاربردهای پورت B :

PORTB.7-TOSC2 :

TOSC2 زمانی که تایمر/ کانتر 2 در مد آسنکرون کار می کند به این پایه و پایه TOSC1 کریستال ساعت متصل می شود . در این حالت دیگر نمی توان از این پایه با عنوان I/O استفاده نمود .

PORTB.5-SCK :

SCK کلاک خروجی Master و کلاک ورودی Slave  برای ارتباط SPI است . زمانی که SPI به عنوان Slave  شکل دهی می شود این پایه با توجه به تنظیم DDB7 ورودی و در حالت Master خروجی تعریف می شود .

PORTB.4-MISO :

MISO ورودی داده Master و خروجی داده slave که برای ارتباط SPI   استفاده می شود . زمانی که SPI به عنوان Master  شکل دهی می شود . این پایه با توجه به تنظیمات DDB6 ورودی و در حالت Slave به عنوان خروجی استفاده می شود .

PORTB-MPS1,OC2 :

MIS1 ورودی داده Slave  و خروجی داده Master که برای ارتباط SPI استفاده می شود . زمانی که SPI به عنوان Master شکل دهی می شود . این پایه با توجه به تنظیمات DDB3  خروجی و در حالت Slave  به عنوان ورودی استفاده می شود .

نظرات 1 + ارسال نظر
بهمن ساکی 1389/11/26 ساعت 02:34 ب.ظ

عالی

ایمیل شما بعد از ثبت نمایش داده نخواهد شد