Návrh a konštrukcia
lekárskych prístrojov
Úvod do problematiky jednočipových mikropočítačov. Základné periférne
obvody mikrokontrolérov – vstupno-výstupné porty, časovače, čítače, pamäť,
komunikačné rozhrania, AD prevodníky a iné.
Čo je to mikrokontrolér (MCU)
 MCU – MicroControler Unit
 Monolitický integrovaný
obvod
 Určený pre jednoúčelové
aplikácie – riadenie, regulácia
 Jeho základ tvorí
mikroprocesor
Návrh a konštrukcia lekárskych prístrojov
Charakteristika
• Mikroprocesor
• Pamäť
• RAM
• FLASH
• RC oscilátor
• I/O porty
• Časovače
• Komunikácia:
• USART
• SPI
• TWI
• A/D prevodník
• Komparátor
Návrh a konštrukcia lekárskych prístrojov
Mikroprocesor
 Interpretuje, vykonáva alebo spracúva inštrukcie
alebo dáta programu vo forme strojového kódu.
Dnes sú centrálne procesorové jednotky takmer
vždy realizované vo forme mikroprocesora
Návrh a konštrukcia lekárskych prístrojov
Pamäte
Čítanie / Zápis
Čítanie
 RAM
 Read-Write Memory =
Pamäť pre čítanie a zápis
 Po prerušení napájania sa
uložené údaje stratia
 ROM
 Permanentná pamäť
 Všetky ROM sú energeticky
nezávislé
 EEPROM
 (Electrically Erasable
Programmable Read-Only
Memory) je elektricky
mazateľná pamäť ROM
 FLASH
 je zrýchlená EEPROM
 dovoľuje zapisovať (mazať) do
viacerých častí pamäte v jednej
operácii programu, tzn. vyššiu
rýchlosť zápisu
Návrh a konštrukcia lekárskych prístrojov
Kryštál (v schémach „XTAL“
alebo „QUARTZ“)
 Kryštály sa používajú v oscilátoroch
mikrokontrolérov -> generátor impulzov
(analógia: motor automobilu)
 Ekvivalent – RC osilátor integrovaný v MCU
Impulzy generované kryštálom
Jeden impulz = výkon inštrukcie
Návrh a konštrukcia lekárskych prístrojov
I/O Porty
(I/O = vstupno/výstupný)
 Možnosť vysielať a prijímať údaje
MCU
Návrh a konštrukcia lekárskych prístrojov
AVR I/O porty
 port:
 súbor vývodov daného mikrokontroléra, ktoré plnia rôznu funkciu
 registre:
 PORTx
 nastavenie pull-up rezistorov, pri konfigurácii vývodov ako vstupy
 nastavenie vývodov na log. 0 alebo log. 1 pri konfigurácii ako
výstupy
 DDRx
 Nastavenie smeru komunikácie
 Log. 1 – výstup
 Log. 0 – vstup
 PINx
 Informácia o stave vstupných vývodov pri konfigurácii ako vstupy
AVR I/O porty
DDxn PORTxn
0
0
PUD bit
(v registri
MCUCR)
I/O
(vstup / výstup)
Pull-up
rezistor
Stav vývodu
X
Vstup
Nie
Vysoká impedancia
0
1
0
Vstup
Áno
Prúdový zdroj pri externom
pull-down rezistore; vstup
s pull-up rezistorom
0
1
1
1
0
1
1
X
X
Vstup
Výstup
Výstup
Nie
Nie
Nie
Vysoká impedancia
Log. 0 na výstupe
Log. 1 na výstupe
Časovač/Čítač
 Zvyšujú/znižujú svoju hodnotu v závislosti od





frekvencie MCU (kryštál)
Vstupná frekvencia je konfigurovateľná pomocou
deliča („Prescaler“)
Možnosť časovať úlohy, ktoré má MCU vykonávať
Synchronizácia jednotlivých činností
Meranie času
Pr.: Blikanie LED
Návrh a konštrukcia lekárskych prístrojov
Časovače
 Časovač je periféria mikrokontroléra, ktorá
umožňuje presné vykonávanie programu
 Pomocou časovača je možné nastaviť presné
časovanie udalostí (napr. blikanie LED diód)
Časovače - ATmega328P
 8-bitový časovač
 Register TCNT0; hodnota pretečenia: 255
 16-bitový časovač
 Register TCNT1; hodnota pretečenia 65535
 Spôsoby časovania:
1. Kontrola pretečenia
2. Kontrola registra TCNTn
3. Využitie porovnania s referenčnou hodnotou
(OCRAn)
4. Prerušenia (ISR, OCRAn)
Komunikácia MCU s okolitým
prostredím
 USART (Universal Synchronous
Asynchronous serial Receiver
Transmitter) – možnosť
komunikácie s PC (protokol
RS232)
 I2C - Inter-Integrated Circuit - je
dvojžilová obojsmerná zbernica.
Možnosť jednoduchého
rozširovania mikroprocesorových
systémov o dodatočné obvody.
 SPI – sériové periférne rozhranie.
Používa sa na komunikáciu
medzi riadiacimi
mikroprocesormi a ostatnými
integrovanými obvody (EEPROM,
A/D prevodníky, displeje…).
Návrh a konštrukcia lekárskych prístrojov
Sériová komunikácia - USART
 USART predstavuje perifériu mikrokontroléra,
ktorá umožňuje vysoko flexibilnú sériovú
komunikáciu medzi MCU a PC, MCU a iným
integrovaným obvodom (napr. iný MCU). Jednotka
USART pozostáva z troch častí:
1. generátor hodín,
2. vysielač,
3. prijímač.
USART – parametre prenosu
 Prenos je vždy charakterizovaný nasledovne:
 Rýchlosť (Baud) - počet zmien stavu prenosového




média (signálu) za sekundu
1 štart bit (St)
5, 6, 7, 8 alebo 9 dátových bitov
Žiadna, párna alebo nepárna parita (P)
1 alebo 2 stop bity (Sp1 alebo Sp2)
A/D prevodník
 elektronické zariadenie na prevod analógového
signálu na digitálny signál
 Vznik prevodníkov - počítače pracujú
s digitálnymi signálmi, zatiaľ čo prevažná väčšina
detektorov (snímačov) fyzikálnych veličín
poskytuje analógový signál
Digitalizácia signálu
Analógový signál
Senzor
EKG, EEG, PPG
Analógový signál
Zosilňovač
Analógový signál
Analógový
filter
Analógový signál
Vzorkovanie
A/D prevodník
Digitálny signál
Vzorkovanie
Kvantizácia
Digitálne
spracovanie
Kvantizácia
Digitálny
signál
ADC – ATmega328P
 Vlastnosti
 8 alebo 10-bitové rozlíšenie (postupná aproximácia)
 Čas prevodu: 13 - 260μs
 Vzorkovanie do 76.9kSPS (do 15kSPS pri max. rozlíšení)
 6 multiplexovaných vstupných kanálov
 1 kanál - teplotný senzor
 Voliteľné zarovnanie výsledku prevodu vľavo (8-bitové
rozlíšenie)
 Vstupné napätie v rozsahu 0 až VCC ADC
 Vyberateľná interná referencia 1.1 V
 Spojitý režim vzorkovania alebo jednorazové spúšťanie
konverzie
 Možnosť využitie prerušenia pri dokončení prevodu
ADC – príklad nastavenia
 Voľba referencie v registri ADMUX
ADC – príklad nastavenia
 Konfigurácia prevodníka – register ADCSRA
 Potreba zabezpečiť taktovaciu frekvenciu rozmedzí 50 kHz – 200 kHz
(najlepšie rozlíšenie)
Pri frekvencii
MCU 1 MHz
ADC – príklad nastavenia
 Štart prevodu pomocou ADEN
 Čakanie na dokončenie prevodu (bit ADIF log. 1)
 Opätovné nastavenie bitu ADIF na log. 0 po dokončení prevodu
 Potreba zabezpečiť taktovaciu frekvenciu rozmedzí 50 kHz – 200 kHz
(najlepšie rozlíšenie)
 Zastavenie prevodníka (ADEN na log. 0)
 Čítanie obsahu registra ADC – výsledok prevodu
 Pozostáva z dvoch registrov
 ADCL a ADCH
Atmel AVR – programovanie,
vývoj aplikácií
 MCU – ATmega328P
 Vývojové prostredie – Atmel Studio 6
 Programátor – AVR Dragon
 Testovacie univerzálne prepájacie pole
Návrh a konštrukcia lekárskych prístrojov
Základy jazyka C pre
mikrokontroléry
 Typy premenných
Typ
Počet bajtov
Vysvetlenie
char
1
Celé čísla v rozsahu
hodnôt jedného bajtu
2 alebo 4
Celé čísla:
• 2 bajty pri 8/16
bitových MCU
• 4 bajty pri 32
bitových MCU
4
Čísla s pohyblivou
desatinou čiarkou s
jednoduchou
presnosťou
int
float
double
8
Čísla s pohyblivou
desatinou čiarkou s
dvojitou presnosťou
Definícia veľkosti premennej
nezávisle od typu MCU
I
n
t
e
g
e
r
Float
Typ
Ekvivalent
char
signed char
-128 až 127
1
unsigned char
---
0 až 255
1
int
signed / signed int
-32768 až 32767
2
short int
short / signed short /
signed short int
-32768 až 32767
2
unsigned int
unsigned
0 až 216 – 1
2
unsigned short int
unsigned short
0 až 216 – 1
2
long int
long / signed long /
signed long int
-231 až 231 – 1
4
unsigned long int
unsigned int
0 až 232 - 1
4
float
---
-3,4e-38 až 3,4e+38
4
long double
double
-1,7e-308 až 1,7e+308
8
Rozsah hodnôt
Počet bajtov
Spôsob zápisu hodnoty
premennej
 Deklarácia premennej
 unsigned char x;
 Zápis hodnoty v dekadickej forme:
 x = 255;
 Zápis hodnoty v binárnej forme:
 x = 0b11111111;
 Zápis hodnoty v hexadecimálnej forme:
 x = 0xff;
Porovnávacie a logické
operátory
Symbol
Príklad
Vysvetlenie
==
if(x==10){…}
Rovnosť
!=
if(x!=10){…}
Nerovnosť
<=
if(x<=10){…}
Menšie alebo rovné
>=
if(x>=10){…}
Väčšie alebo rovné
>
if(x>10){…}
Väčší
<
if(x<10){…}
Menší
&&
if(x>5 && x<10){…}
Logické A (AND)
||
if(x>5 || x<10){…}
Logické ALEBO (OR)
if(!x){…}
Logická negácia:
hodnota 1 (TRUE), ak
x=0; ináč hodnotu 0
(FALSE)
!
Bitové operátory
Symbol
Vysvetlenie
&
bitové A (AND):
Dve čísla sa porovnávajú po bitoch. Ak sú oba bity rovné 1, tak je
výsledok na danom mieste tiež 1.
|
bitové ALEBO (OR):
Dve čísla sa porovnávajú po bitoch. Ak je aspoň jeden z oboch bitov
rovný 1, tak je výsledok na danom mieste tiež 1.
^
bitové výlučné ALEBO (XOR):
Dve čísla sa porovnávajú po bitoch. Ak sú oba bity rozdielne, tak je
výsledok na danom mieste rovný 1.
~
bitový doplnok:
Každý bit čísla je negovaný.
<<N
bitový posun vľavo:
všetky bity sa posunú o N miest doľava a sprava sa doplnia nuly
>>N
bitový posun vpravo:
všetky bity sa posunú o N miest vpravo a zľava sa doplnia nuly
Bitový posun
 Vľavo:
 0b10011001<<1
 0b00110010
 Vpravo:
 0b10011001>>1
 0b01001100
Užitočné operácie v jazyku C
pre mikrokontroléry
 Nastavenie ľubovoľného bitu na log. 1
 PORTB |= 1<<PORTB2;
 Nastavenie ľubovoľného bitu na log. 0
 PORTB &= ~(1<<PORTB2);
 Kontrola log. Úrovne
 Log. 1

if ((PINB & 1<<PINB2) == 1<<PINB2) {}
 Log. 0
 while (!(PINB & 1<<PINB2)) {}
 while ((PINB & 1<<PINB2) != 1<<PINB2);
 if (PINB & 1<<PINB2) == 0) {}
Ďakujem za pozornosť 
Návrh a konštrukcia lekárskych prístrojov
Download

Návrh a konštrukcia lekárskych prístrojov