vestavné mikropočítačové systémy
DESCRIPTION
Vestavné mikropočítačové systémy. 7 . Týden – Datové komunikace I I (SPI, I 2 C, 1 -Wire ). SP I – Serial Peripheral Interface. Duplexn í single-masterová synchronní sériová sběrnice Komunikační signály jsou sdílené MOSI – master-out, slave-in MISO – master-in, slave-out - PowerPoint PPT PresentationTRANSCRIPT
Vestavné mikropočítačové systémy
7. Týden – Datové komunikace II(SPI, I2C, 1-Wire)
SPI – Serial Peripheral Interface• Duplexní single-masterová synchronní sériová sběrnice
• Komunikační signály jsou sdílené– MOSI – master-out, slave-in
– MISO – master-in, slave-out
– SCK – hodinový signál generovaný masterem
• Adresace se provádí pomocí zvláštních vodičůSS (slave-select) resp. CS (chip-select)
SPI – módy• Mód komunikace je určen dvěma parametry – CPOL a CPHA
• V µP lze zpravidla volit dle požadavků připojeného zařízení
I2C – Inter-Integrated Circuit• Poloduplexní multi-masterová synchronní sériová sběrnice (Philips)
• Používá se pro připojení nízkorychlostních periferií
• Umožňuje propojení až 128 různých zařízení pomocí dvou vodičů– SCL – hodinový signál (Synchronous Clock)
– SDA – datový kanál (Synchronous Data)
• Zařízení na směrnici může vystupovat v jedné ze dvou rolí– Master – zahajuje a ukončuje komunikaci, generuje hodiny
– Slave – zařízení adresované masterem
µP(master)
RTC(slave)
E2PROM(slave)
R-trim(slave)
teploměr(slave)
SDA
SCL
VCC
I2C – fyzická vrstva• Oba signály mají charakter otevřeného kolektoru – musí být připojeny
přes pull-up rezistor ke kladnému napájecímu napětí
• Délka vodičů je omezena jejich nejvyšší přípustnou kapacitou 400pF
• Maximální frekvence SCL je podle verze buď 100 kHz nebo 400 kHz
• Při běžném provozu platí, že stav signálu SDA se smí změnit pouze je li SCL v úrovni L
• Toto pravidlo je porušeno ve dvou speciálních případech – při vysílání tzv. START resp. STOP podmínky, které se používají pro signalizaci zahájení resp. ukončení přenosu
START STOP
SCL
SDA
I2C – linková vrstva• Přenosový rámec začíná značkou START, následuje 7 bitů adresy a
jeden bit, který specifikuje druh přenosu čtení/zápis
• Přenesení osmi bitů následuje tzv. ACK bit. Strana, která odeslal těch 8 bitů uvolní sběrnici (H) a přijímací strana potvrdí příjem tak, že sběrnici stáhne do L
• Po naadresovaní slave zařízení se přenáší vlastní data. Osmice datových bitů jsou rovněž prokládány ACK bitem
I2C – další vlastnosti• Arbitráž
– Používá se metoda sdílení sběrnice s detekcí kolizí;
– Každá stanice může zahájit vysílání, je-li sběrnice v klidovém stavu;
– Během vysílání se porovnává skutečný stav SDA s vysílanými daty;
– Začnou-li vysílat dvě zařízení, dříve nebo později dojde ke kolizi;
– Vzhledem k charakteru sběrnice (otevřený kolektor) lze kolie bezpečně detekovat. Pokud jedno zařízení vysílá H a druhé L, tak sběrnice je ve stavu L. Zařízení, které vysílalo H v takovém případě detekuje kolizi a musí okamžitě ukončit své vysílání.
• Adresace– Součástka má zpravidla z výroby přidělenu nějakou adresu – podléhá
licenčním podmínkám;
– Některé adresy jsou rezervované pro speciální účely: 0 – broadcast;
– Adresa 11110aa indikuje 10-ti bitové adresování. aa jsou nejvyšší dva bity adresy. Zbývajících 8 bitů následuje.
1-Wire• Poloduplexní single-masterová asynchronní sériová sběrnice (Maxim)
• 1 signálový vodič, může sloužit zároveň i k napájení slave
• Používá se pro připojení nízkorychlostních periferií– Standardní rychlost: 15,4kbps
– Overdrive: 125kbps
• Každé zařízení má z výroby neměnitelnou unikátní 64 bitovou adresu
1-Wire – fyzická vrstva• Komunikaci zahajuje a řídí master
• Sběrnice má charakter otevřeného kolektoru (povinný pull-up rezistor)
• Slave zařízení mají obvykle zabudovaný kapacitor, který jim umožňuje napájení přímo ze sběrnice – není třeba samostatný napájecí vodič
• Slave zařízení jsou synchronizována sestupnou hranou
1-Wire – princip time-slotů• Data (bity) jsou přenášeny v tzv. time-slotech
– 1 odpovídá krátkému pulsu
– 0 odpovídá dlouhému pulsu
• Time-slot (T)– Standardní rychlost: 60µs
– Overdrive: 8µs
1-Wire – komunikace• Komunikace na sběrnici 1-Wire se skládá ze tří
cyklicky se opakujících fází:– Reset/Synchronizace zařízení
– Výběr zařízení (ROM-level Command)
– Funkce zařízení (Device-level Command)
1-Wire – Reset/Presence• Synchronizační fáze uvádí sběrnici do výchozího stavu a master
dostává informaci, že na sběrnici je připojen nějaký slave.
1-Wire – Čtení/zápis bitu
1-Wire – ROM-level Commands
• Skip ROM – přeskočí výběr zařízení (na sběrnici je pouze 1 slave)
• Read ROM – čtení identifikace zařízení (na sběrnici je pouze 1 slave)
• Match ROM – výběr zařízení
• Resume – použije předchozí vybrané zařízení
• Overdrive-skip ROM – přeskočí výběr a přepne sběrnici do overdrive
• Search ROM – prohledávání sběrnice (algoritmus viz tutoriál)