140 likes | 237 Views
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
E N D
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í
VCC SDA SCL µP(master) RTC(slave) E2PROM(slave) R-trim(slave) teploměr(slave) 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
SDA SCL START STOP 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 jeli 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
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 – 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)