0% found this document useful (0 votes)
10 views36 pages

L02 Microcontroller

Uploaded by

nazanin.m.behnia
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views36 pages

L02 Microcontroller

Uploaded by

nazanin.m.behnia
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 36

‫پیامبر اکرم صلی الله علیه و آله‪ :‬از نفرین مظلوم بترسید که چون شعله آتش بر آسمان میرود‪.

‬‬

‫‪(c) Mohammad Ansari‬‬ ‫‪EMBEDDED SYSTEM DESIGN‬‬ ‫‪1‬‬


‫میکروکنترلر‬
‫طراحی سیستم های نهفته‬

(c) Mohammad Ansari EMBEDDED SYSTEM DESIGN 2


‫سرفصل عناوین‬
‫مقدمه‬
‫تفاوت میکروپروسسور و میکروکنترلر‬
‫اجزای میکروکنترلر‬
RAM ◦
ROM ◦
FLASH ◦
UART ◦
SPI ◦
I2C ◦
CAN ◦
TIMER/COUNTER ◦
ADC ◦
DAC ◦
… ◦

(c) Mohammad Ansari EMBEDDED SYSTEM DESIGN 3


‫مقدمه‬
‫میکروکنترلر‬

(c) Mohammad Ansari EMBEDDED SYSTEM DESIGN 4


‫میکروکنترلر‬
‫میکروکنترلر‬ ‫میکروپروسسور‬
‫میکروکنترلر یک مدار مجتمع‬
‫ً‬
‫معموال در سامانه های نهان‬ ‫معموال در رایانه ها استفاده می شود‬ ‫است که عالوه بر یک ریزپردازنده‪،‬‬
‫)‪ (Embedded Systems‬استفادده‬
‫می شود‪.‬‬ ‫دارای مدارهای جانبی مانند‬
‫عالوه بر پردازنده‪ ،‬دارای حافظه‬ ‫فقط یک پردازنده دارد‪ ،‬بنابراین باید حافظه ها و‬ ‫حافظه ‪ RAM‬و ‪ ROM‬و مدارهای‬
‫داخلی و ‪ I/O‬است‪.‬‬ ‫‪ I/O‬به صورت خارج از تراشه تأمین گردد‪.‬‬
‫الزم برای کنترل ورودی خروجی ‪IO‬‬
‫سیستم ارزان قیمت‬ ‫سیستم گران قیمت‬
‫است‪.‬‬
‫توان مصرفی پایین تر به دلیل‬ ‫توان مصرفی باالتر به دلیل وجود قطعات‬
‫کم بودن قطعات خارجی مورد‬ ‫خارجی‪.‬‬
‫نیاز‪.‬‬
‫باس داخلی دارد‬ ‫‪ ROM‬و ‪RAM‬دارای باس خارجی برای ارتباط با‬

‫‪EMBEDDED SYSTEM DESIGN‬‬ ‫‪5‬‬


‫میکروکنترلر‬

EMBEDDED SYSTEM DESIGN 6


‫خانواده های مختلف‬
‫میکروکنترلر‬

‫‪FPGA‬‬ ‫‪7‬‬
‫کاربردهای میکروکنترلر‬

EMBEDDED SYSTEM DESIGN 8


‫کاربرد های میکروکنترلر‬
‫‪ -‬وسایل خانگی‬
‫تلویزیون‬ ‫◦‬
‫ماشین لباسشویی‬ ‫◦‬
‫یخچال‬ ‫◦‬
‫‪...‬‬ ‫◦‬
‫‪ -‬لوازم جانبی رایانه‬
‫◦ موس‬
‫◦ صفحه کلید‬
‫◦ ‪...‬‬
‫‪ -‬خودرو‬
‫‪ -‬وسایل اندازه گیری دیجیتال‬
‫‪ -‬مهندسی پزشکی‬
‫‪ -‬ضبط و پخش صوتی و تصویری‬

‫‪EMBEDDED SYSTEM DESIGN‬‬ ‫‪9‬‬


‫ساختار ‪CPU‬‬
‫برنامه ای که باید اجرا شود در حافظه قرار گرفته (مجموعه ای از دستورها)‬
‫آوردن دستورها از حافظه )‪(fetch‬‬
‫دستور چه هست )‪(decode‬‬
‫اجرای دستور )‪(execute‬‬

‫‪EMBEDDED SYSTEM DESIGN‬‬ ‫‪10‬‬


‫اجزای اصلی ‪CPU‬‬
‫‪ -1‬رجیسترها‪ :‬برای ذخیره اطالعات (آدرس یا داده) به‬
‫صورت موقتی (‪ 32 ،16 ،8‬یا ‪ 64‬بیتی)‬
‫‪ :ALU (Arithmetic/Logic Unit) -2‬جمع‪ ،‬ضرب‪ ،‬تقسیم‪،‬‬
‫‪ NOT ،OR ،AND‬و ‪...‬‬
‫‪ :Program Counter -3‬یک رجیستر است که آدرس‬
‫دستور بعدی را در خود نگه می دارد‪ .‬بعد از اجرای هر‬
‫دستور‪ ،‬به مقدار این رجیستر اضافه میشود تا به‬
‫دستور بعدی اشاره شود‪ .‬در ‪ IBM PC‬به آن ‪Instruction‬‬
‫)‪ Pointer (IP‬می گویند‪.‬‬
‫‪ :Instruction Decoder -4‬کارهای کنترلی که برای اجرای‬
‫هر دستور الزم است را اجرا می کند‪.‬‬

‫‪EMBEDDED SYSTEM DESIGN‬‬ ‫‪11‬‬


‫نحوه انتخاب میکروکنترلر‬
‫شرایط انتخاب میکروکنترلر مناسب‪:‬‬
‫‪ .1‬برآورده کردن نیازهای محاسباتی برای کاربرد مورد نظر به صورت کارا و کم هزینه‬
‫‪ .2‬در دسترس بودن ابزارهای توسعه نرم افزاری و سخت افزاری مانند ‪ ،Debugger ،Assembler ،Compiler‬و‬
‫‪Emulator‬‬
‫‪ .3‬دسترسی وسیع و مطمئن به میکروکنترلر مورد نظر‬

‫‪MICROPROCESSOR‬‬ ‫‪12‬‬
‫‪ -1‬برآورده کردن نیازهای محاسباتی‬
‫موارد زیر باید در نظر گرفته شود‬
‫سرعت میکرکنترلر‬ ‫◦‬
‫بسته بندی‪ DIP(Dual Inline Package) :‬یا )‪QFP (Quad Flat Package‬‬ ‫◦‬
‫مصرف توان‬ ‫◦‬
‫مقدار ‪ RAM‬و ‪ROM‬‬ ‫◦‬
‫تعداد پایه های ‪ I/O‬و تایمرهای روی تراشه‬ ‫◦‬
‫راحتی ارتقا به ویرایش های پرسرعت )‪ (High Performance‬و کم توان )‪(Low Power‬‬ ‫◦‬
‫هزینه هر واحد‬ ‫◦‬

‫‪MICROPROCESSOR‬‬ ‫‪13‬‬
‫‪ -2‬راحتی توسعه‬
‫در دسترس بودن‬
‫◦ کمپایلر ‪ C‬کارا ( ‪)Code Efficient‬‬
‫◦ شبیه ساز‬
‫◦ پشتیبانی فنی‬

‫‪MICROPROCESSOR‬‬ ‫‪14‬‬
‫‪ -3‬وسعت دسترسی در بازار‬
‫مثال‪ :‬میکروهای مبتنی بر ‪ ARM‬توسط سازنده های مختلف تراشه مورد استفاده قرار میگیرد ( ‪NXP,‬‬
‫‪(TI, Microchip, Atmel, ST‬‬

‫‪MICROPROCESSOR‬‬ ‫‪15‬‬
‫مروری بر خانواده ‪AVR‬‬
‫چهار گروه اصلی‬
‫‪Mega‬‬ ‫◦‬
‫‪Tiny‬‬ ‫◦‬
‫‪Special Purpose‬‬ ‫◦‬
‫‪Classic‬‬ ‫◦‬
‫یک مشکل ‪ :AVR‬عدم سازگاری گروههای مختلف‪ .‬مثال اگر بخواهیم برنامه ‪ ATtiny25‬را روی‬
‫‪ ATmega64‬اجرا کنیم باید دوباره کمپایل شود و برخی رجیسترها دوباره نامگذاری شود‪.‬‬

‫‪MICROPROCESSOR‬‬ ‫‪16‬‬
AVR Features
8-bit RISC Single Chip Microcontroller
Harvard Architecture
On-chip:
◦ ROM
◦ RAM
◦ Data EEPROM
◦ Timer
◦ I/O Port
Most AVRs Have Additional Features:
◦ ADC: Analog to Digital Convertor
◦ PWM: Pulse Width Modulation
◦ USART: Universal Synchronous/Asynchronous Receiver/Transmitter
◦ SPI: Serial Peripheral Interface
◦ I2C
◦ CAN
◦ USB

MICROPROCESSOR 17
ATtiny25 Block Diagram

MICROPROCESSOR 18
ATmega32 Block Diagram

MICROPROCESSOR 19
‫‪AVR I/O Pins‬‬
‫‪ 3‬تا ‪ 86‬پایه ورودی خروجی )‪( (I/O Pin‬تعداد کل پایه های‬
‫تراشه های ‪ AVR‬از ‪ 8‬تا ‪ 100‬پایه است)‪.‬‬
‫‪ 8 :AT90S2323‬پایه – ‪ 3‬ورودی خروجی‬
‫‪ 100 :ATmega1280‬پایه – ‪ 86‬ورودی خروجی‬

‫‪MICROPROCESSOR‬‬ ‫‪20‬‬
ARM ‫مروری بر خانواده‬
‫ یک معماری‬ARM (Advanced RISC Machine)
‫پردازنده است که توسط تولید کنندگان مختلف‬
:‫مورد استفاده قرار می گیرد‬
NXP
Atmel
TI
ST
Qualcomm

(c) Mohammad Ansari EMBEDDED SYSTEM DESIGN 21


STM32 ‫برد‬
ARM® Cortex™-M3 32-bit RISC core
72 MHz
•Up to 2 x I2C interfaces (SMBus/PMBus)
•Up to 3 USARTs (ISO 7816 interface, LIN, IrDA
capability, modem control)
•Up to 2 SPIs (18 Mbit/s)
•CAN interface (2.0B Active)
•USB 2.0 full-speed interface
2 x 12-bit, 1 μs A/D converters (up
to 16 channels)

(c) Mohammad Ansari EMBEDDED SYSTEM DESIGN 22


‫واحدهای مختلف میکروکنترلر‬
‫میکروکنترلر‬

(c) Mohammad Ansari EMBEDDED SYSTEM DESIGN 23


‫حافظه ها‬
‫‪ :RAM‬حافظه اصلی که برنامه ها در آن اجرا می شوند‪ .‬این حافظه فرار است و با قطع تغذیه محتویات‬
‫آن پاک می شود‪.‬‬

‫‪ :EEPROM‬نوعی حافظه غیر فرار است که امکان نوشتن و خواندن دارد‪ .‬این حافظه برای ثبت مقادیری‬
‫که نیاز داریم بعد از قطع تغذیه نیز حفظ شوند به کار می رود (مانند تنظیمات سیستم)‪.‬‬

‫ً‬
‫موال‬‫‪ :Flash‬این حافظه نیز غیر فرار است و محتویات آن با قطع تغذیه پاک نمی شوند‪ .‬این حافظه مع‬
‫برای نگه داشتن کد برنامه میکرو استفاده می شود و در برخی موارد نیز برای ذخیره سازی فایل می‬
‫توان از آن استفاده کرد‪.‬‬

‫‪(c) Mohammad Ansari‬‬ ‫‪EMBEDDED SYSTEM DESIGN‬‬ ‫‪24‬‬


Analog to Digital Converter (ADC)
‫تبدیل ولتاژ آنالوگ ورودی به عدد دیجیتال‬

𝑉𝑎𝑛𝑎𝑙𝑜𝑔 𝐷𝑜𝑢𝑡

𝑽𝒓𝒆𝒇
𝑽𝒂𝒏𝒂𝒍𝒐𝒈 = 𝒏 × 𝑫𝒐𝒖𝒕
𝟐 −𝟏

(c) Mohammad Ansari EMBEDDED SYSTEM DESIGN 25


Digital to Analog Converter (DAC)
‫تبدیل عدد دیجیتال به ولتاژ آنالوگ در خروجی‬

𝑽𝒓𝒆𝒇 𝑫𝒊𝒏
𝑽𝒂𝒏𝒂𝒍𝒐𝒈 = 𝒏 × 𝑫𝒊𝒏
𝟐 −𝟏 𝑽𝒂𝒏𝒂𝒍𝒐𝒈

(c) Mohammad Ansari EMBEDDED SYSTEM DESIGN 26


‫ارتباط ‪UART‬‬
‫انتقال اطالعات بین دو میکرو‪/‬ماژول‬ ‫•‬
‫پایه ‪ TX‬برای ارسال اطالعات به صورت سریال‬ ‫•‬
‫پایه ‪ RX‬برای دریافت اطالعات به صورت سریال‬ ‫•‬
‫‪ = Baudrate‬نرخ انتقال اطالعات‬ ‫•‬
‫• ‪9600‬‬
‫• ‪11500‬‬
‫• …‬
‫در حالت بیکاری‪ ،‬خروجی ‪ TX‬یک است‬ ‫•‬
‫برای شروع انتقال ابتدا یک صفر ارسال میگردد‪.‬‬ ‫•‬
‫پس از آن ‪ 8‬بیت (ابتدا بیت ‪ )LSB‬داده‬ ‫•‬
‫اختیاری ‪ :‬سپس ‪ 1‬بیت زوجیت (‪)Parity‬‬ ‫•‬
‫در نهایت ‪ 1‬یا ‪ 2‬بیت توقف )‪ 1= (stop‬ارسال میشود‪.‬‬ ‫•‬

‫‪(c) Mohammad Ansari‬‬ ‫‪EMBEDDED SYSTEM DESIGN‬‬ ‫‪27‬‬


(Serial Peripheral Interface) SPI ‫ارتباط‬
SCLK: Serial Clock (output from master)
MOSI: Master Out Slave In (data output from master)
MISO: Master In Slave Out (data output from slave)
SS: Slave Select (often active low, output from master)

(c) Mohammad Ansari EMBEDDED SYSTEM DESIGN 28


‫ارتباط )‪I2C (Inter Integrated Circuit‬‬
‫ارتباط دوسیمه ‪(Two Wire TWI‬‬
‫)‪ Interface‬یا ‪ I2C‬این امکان را فراهم‬
‫میکند تا تنها با استفاده از دو سیم‪ ،‬بتوان‬
‫بین چندین آی سی ارتباط برقرار کرد‪.‬‬

‫در این ارتباط‪ ،‬هر وسیله دارای یک آدرس‬


‫‪ 7‬یا ‪ 10‬بیتی است‪.‬‬
‫دو سیم باس‪ ،‬با استفاده از یک مقاومت‬
‫‪ pull-up‬حدود ‪ 2kOhm- 10kOhm‬به تغذیه‬
‫مثبت وصل می شوند‪.‬‬

‫‪EMBEDDED SYSTEM DESIGN‬‬ ‫‪29‬‬


‫‪ – I2C‬نحوه ارتباط‬
‫‪ :Start‬ارباب (‪ ،)Master‬ابتدا ‪ SDA‬و سپس ‪ SCL‬را صفر میکند‪.‬‬ ‫‪.1‬‬
‫ارباب‪ ،‬شروع به ایجاد کالک روی ‪ SCL‬می کند و در هر لبه کالک‪ ،‬یکی از بیت های آدرس برده ای‬ ‫‪.2‬‬
‫که می خواهد با آن ارتباط برقرار کند را روی ‪ SDA‬قرار می دهد‪.‬‬
‫در بیت هشتم‪ ،‬ارباب تعیین میکند که می خواهد بنویسد یا بخواند‪.‬‬ ‫‪.3‬‬

‫‪EMBEDDED SYSTEM DESIGN‬‬ ‫‪30‬‬


‫‪ – I2C‬نحوه ارتباط‬
‫در کالک نهم‪ ،‬برده ای که آدرسش توسط ارباب روی باس قرار داده شده بود‪ ،‬کنترل ‪ SDA‬را در اختیار می گیرد و با صفر‬ ‫‪.4‬‬
‫کردن یا نکردن خط ‪ ،SDA‬به درخواست ارباب پاسخ می دهد‪.‬‬
‫ارباب‪ ،‬داده ای را که درخواست کرده بود می خواند یا می نویسد‪.‬‬ ‫‪.5‬‬
‫بعد از انتقال هر بایت دیتا‪ ،‬دستگاهی که آن را دریافت کرده است‪ ،‬یک سیگنال ‪ ACK‬روی ‪ SDA‬می گذارد (با صفر کردن‬ ‫‪.6‬‬
‫آن)‬
‫برای اتمام عملیات انتقال‪ ،‬ارباب شرایط توقف را اعمال می کند (‪ SDA‬را بعد از اینکه ‪ SCL‬یک شد‪ ،‬یک میکند)‬ ‫‪.7‬‬

‫‪FPGA‬‬ ‫‪31‬‬
CAN (Controller Area Network) Bus

(c) Mohammad Ansari EMBEDDED SYSTEM DESIGN 32


CAN (Controller Area Network) Bus

(c) Mohammad Ansari EMBEDDED SYSTEM DESIGN 33


CAN Bus

(c) Mohammad Ansari EMBEDDED SYSTEM DESIGN 34


‫سایر بلوک های میکرو‬
‫ برای شمارش یا اندازه گیری زمان‬:Timer/Counter
‫ برای تولید پالس ساعت روی تراشه‬:On-Chip Oscillator
USB
PCIe
Ethernet Controller
Wi-Fi
Bluetooth
AES/DES/…

(c) Mohammad Ansari EMBEDDED SYSTEM DESIGN 35


‫جمع بندی‬
‫میکروکنترلر =ریزپردازنده )‪ + (uP‬بلوک های جانبی )‪(Peripherals‬‬
‫بلوک های جانبی‬
‫کاربردهای زمان سنجی‪ /‬شمارش‪Timer/Counter :‬‬ ‫◦‬
‫کاربردهای سنجش آنالوگ‪ADC :‬‬ ‫◦‬
‫کاربردهای با خروجی آنالوگ مانند کنترل دور موتور‪ ،‬ایجاد صوت و ‪ PWM (Timer/Counter) : ...‬یا ‪DAC‬‬ ‫◦‬
‫ارتباط با سایر ماژولها‪/‬میکروها‪:‬‬ ‫◦‬
‫◦ ‪UART‬‬
‫◦ ‪SPI‬‬
‫◦ ‪I2C‬‬
‫◦ ‪CAN‬‬
‫◦ ‪Ethernet‬‬
‫◦ ‪USB‬‬
‫◦ …‬

‫‪(c) Mohammad Ansari‬‬ ‫‪EMBEDDED SYSTEM DESIGN‬‬ ‫‪36‬‬

You might also like