MIKROCOMM 1/49 MIKROVEZÉRLŐK KOMMUNIKÁCIÓJA DR. KÓNYA LÁSZLÓ http://www.aut.bmf.hu/konya konya.laszlo@kvk.bmf.hu SZERZŐI JOG DEKLARÁLÁSA: A JELEN OKTATÁSI CÉLÚ BEMUTATÓ ANYAG DR KÓNYA LÁSZLÓ SZELLEMI TULAJDONÁT KÉPEZI, EZT A LAPOKON ELHELYEZETT DRK VIZJEL IS JELEZHETI. EZEN TANANYAG BÁRMILYEN CÉLÚ FELHASZNÁLÁSA CSAK A SZERZŐ BELEEGYEZÉSÉVEL LEHETSÉGES
MIKROCOMM 2/49 MIKROVEZÉRLŐK KOMMUNIKÁCIÓJA - TEMATIKA ADATÁTVITEL: ALAPFOGALMAK, SÁVKORLÁTOZÁS, ZAJOK ADATÁTVITEL MIKROSZÁMÍTÓGÉPES KÖRNYEZETBEN PÁRHUZAMOS ADATÁTVITEL: IEC-625 MŰSZERINTERFÉSZ CENTRONICS (NYOMTATÓ) ILLESZTÉS IEEE1284 BUSZ KARAKTERES LCD KIJELZŐ SOROS ADATÁTVITEL: IDŐZÍTÉST HASZNÁLÓ: 1 VEZETÉKES DALLAS ASZINKRON SOROS, USB, CAN ÉRVÉNYESÍTŐ (ÓRA)JELET HASZNÁLÓ: I2C BUSZ SPI, MICROWIRE INTERFÉSZ NEM MINDET TÁRGYALJUK!!!
MIKROCOMM 3/49 ADATÁTVITEL - ALAPFOGALMAK JEL INFORMÁCIÓ ADAT DIGITÁLIS ADAT ANALÓG ADAT Egy fizikai mennyiség időbeli megváltozása, amely adat formájában információt is hordozhat Az ember által az adatokhoz megállapodások vagy szokások útján rendelt jelentés (az adat jelentése) Tények, fogalmak, utasítások egyezményesen ábrázolt alakja, amely alkalmas arra, hogy az emberek vagy automatikus eszközök továbbítsák, értelmezzék vagy feldolgozzák Olyan adat, amely diszkrét értékekkel rendelkezik (karakterek, mintavett digitalizált értéket) (bináris adat = kétállapotúadat) Olyan adat, amely egy adott idő-intervallumban folytonos értékekkel rendelkezik
MIKROCOMM 4/49 SÁVKORLÁTOZÁS AMIKOR JELET VISZÜNK ÁT EGY FIZIKAI CSATORNÁN, KÉT AKADÁLLYAL KELL SZEMBENÉZNÜNK: A SÁVKORLÁTOZÁS-SAL, ÉS A ZAJ-OKKAL. A JELEK ÁTVITELÉHEZ - AMELY LÉNYEGÉBEN AZ ÁTVITELI KÖZEG VALAMILYEN FIZIKAI JELLEMZŐJÉNEK MEGVÁLTOZTATÁSA (MODULÁLÁSA) -MINDIG ENERGIA KELL. ENNEK NAGYSÁGA A JEL ÖSSZETEVŐITŐL FÜGG. HA JELET SZINUSZ HULLÁMOK ÖSSZEGÉNEK TEKINTJÜK (FOURIER ANALÍZIS), AKKOR A JEL FOURIER SORÁNAK EGYES TAGJAI (AZ ÖSSZETEVŐK) AZ ÁTVITELKOR KÜLÖNBÖZŐ MÉRTÉKBEN CSILLAPODNAK, AMELYNEK EREDMÉNYE A KIMENŐ JELALAK TORZULÁSA. f ( x ) n = k = 0 a k * sin( kω x + ϕ k ) a k 1 2... k
ZAJOK HATÁSA MIKROCOMM 5/49 A csatornát a jel (S=Signal) és a zaj (N=Noise) teljesítményének arányával vagyis a jel-zaj viszony-nyal (signal to noise ratio) : S/N jellemezzük. Általában ehelyett a 10*lg(S/N) számot adjuk meg (lg-10-es alapú logaritmus), és mértékegysége a db (decibel). Például 10 db-es jel-zaj viszony esetén a jel és a zaj aránya 10, 30 db esetén 1000. Kiszámítható, hogy egy sávkorlátozott zajos csatornán mekkora lehet a maximális adatátviteli sebesség: Maximális adatátviteli sebesség= H*log (1+S/N) Ahol H-sávszélesség (Hz) - log - 2-es alapú logaritmus. Például 3000 Hz-es sávszélességű telefonvonalon tipikus 30 db jel-zaj viszony esetén a sebesség nem több mint 30 000 bit/sec. Ez az érték a jel mintavételi gyakoriságától, állapotainak számától nem függ!
MIKROCOMM 6/49 ADATÁTVITEL Átvitelkor az ADÓ megváltoztatja csatorna fizikai közegének valamilyen jellemzőit, ez terjed tovább a VEVŐig. Sávszélesség: egy adott analóg jel maximális és minimális frekvenciájának a különbsége. Pl.: Emberi beszéd: 3300 Hz - 300 Hz = 3 khz Kétállapotú jeleknél: időegység alatt átvitt bitek száma. FONTOS!!! Baud: a felhasznált jel értékében 1 mp. alatt bekövetkezett változások száma. BIT/SEC nem azonos a Baud-dal!!!
MIKROCOMM 7/49 PÁRHUZAMOS ADATÁTVITEL ADÓ D0...Dn NINCS NYUGTA HA CSAK DAV VAN! VEVŐ HANDSHAKE (KÉZFOGÁS) ADÓ-VEVŐ SEBESSÉGÉT SZINKRONIZÁLJA + NYUGTÁZÁS IS D Q DAV = DATA VALID (ADAT ÉRVÉNYES) CL K DACK = DATA ACKNOWLEDGE (ADAT ELFOGADVA HA EZ IS VAN, VAN NYUGTA D0...Dn DAV DACK Gyors, de nagyobb távolságokon együttfutási gondok + sok vezeték
MIKROCOMM 8/49 SOROS ADATÁTVITEL PÁRHUZAMOS SOROS ÁTALAKÍTÁS ADÓ 0 1 1 1 0 1 SHIFTREGISZTEREK 0 1 1 1 0 1 SOROS PÁRHUZAMOS ÁTALAKÍTÁS VEVŐ ORAJEL 0 1 1 1 1 0 1 0 1 1 0 0 +V 0 Kritikus kérdés az adó és vevő szinkronizálása Szinkron: Külön vezetéken megy az órajel Aszinkron: A szinkronítást maga a jel biztosítja egy adatcsomag erejéig (START bit, SYN karakter) NRZ
MIKROCOMM 9/49 ADATÁTVITEL MIKROSZÁMÍTÓGÉPES KÖRNYEZETBEN PÁRHUZAMOS ADATÁTVITEL: IEC-625 MŰSZERINTERFÉSZ CENTRONICS (NYOMTATÓ) ILLESZTÉS IEEE1284 BUSZ KARAKTERES LCD KIJELZŐ SOROS ADATÁTVITEL: IDŐZÍTÉST HASZNÁLÓ: 1 VEZETÉKES DALLAS ASZINKRON SOROS, USB, CAN ÉRVÉNYESÍTŐ (ÓRA)JELET HASZNÁLÓ: I2C BUSZ SPI INTERFÉSZ MICROWIRE
MIKROCOMM 10/49 IEEE 488 (GPIB) - IEC625 I. 5 IFC, ATN, SRQ, REN, EOI 3 8 DAV, NRFD, NDAC DIO1..DIO8 Vezérlő Beszélő Hallgató Pl.: PC Beszélő Hallgató Pl.: DVM Hallgató Pl.: Tápegység Hallgató Pl.: Printer A buszra kapcsolt rendszer minden elemének funkciójától függően lehet beszélő, illetve hallgató címe. Közös hallgató címe lehet az azonos információkat igénylő berendezéseknek, de beszélő cím csak egyedi lehet. Az összekapcsolt készülékek kommunikációs státusza háromféle lehet: Beszélő (talker): Egyszerre csak egy beszélő lehet aktív. Beszélő státuszban egy készülék készülékfüggő adatokat továbbíthat a buszon. Hallgató (listener): Címzett állapotában egy hallgató készülék készülékfüggő üzeneteket vehet. Vezérlő: Gondoskodik a beszélő és hallgató címek kiosztásáról. A buszrendszer felépítése: 8 adatvezeték, 3 vezérlő vezeték 5 kiegészítő vezérlő vezeték
MIKROCOMM 11/49 Az egyes jelvezetékek szerepe: IEEE 488 (GPIB) - IEC625 II. Data I/O (DIO1..DIO8): üzentek továbbítása, (cím, program, eredmény, utasítás) Data Valid (DAV): a jelforrás jelzi, érvényes adat van a buszon Not Ready for Data (NRFD): hallgató jelzi vételkészségét No Data Accepted (NDAC): hallgató készülék jelzi az elfogadást Interface Clear (IFC): valamennyi készülék alapállapotba állítása Attention (ATN): cím, üzenet, parancs, elválasztása a készülékfüggő üzenettől Service Request (SRQ): a vezérlőtől kéri az éppen folyó művelet megszakítását Remote Enable (REN): a vezérlő üzenetével távvezérlésre állít egy készüléket End or Identify (EOI): üzenet utolsó elemének jelzése, vagy vezérlő általi lekérdezés A Paralel Poll (PP) üzemmód lehetővé teszi egy készüléknek, hogy nem beszélő státuszban állapotüzenetet küldjön a vezérlőnek. A Serial Poll (SP) üzemmód lehetővé teszi, hogy SRQ segítségével állapotüzenet legyen küldhető a vezérlőnek. Mivel a rendszer elemei eltérő sebességűek ezért a buszsebesség a vezérlőjelek segítségével mindig a leglassabb készülékhez igazodik.
MIKROCOMM 12/49 CENTRONICS SZABVÁNY 1.5 usec 0.5 usec CENTRONICS SZABVÁNY ADATVONALAK (8) 6,5 usec MIN. 12 usec 4 usec STROBE ACK BUSY 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 CS1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 KÉZFOGÁSOS ADATÁTVITEL -ERROR -STROBE -INIT -SLCT IN -AUTOFD D0 D1 D2 D3 D4 D5 D6 D7 -ACK BUSY PE SLCT 14 1 CS2 2 15 16 3 4 17 18 5 6 19 20 7 8 21 22 9 10 23 11 24 12 25 13 CENTRONICS CSATLAKOZO GROUND DB25 IBM PC CSATLAKOZO IBM PC NYOMTATÓKÁBEL BEKÖTÉS
MIKROCOMM 13/49 PÁRHUZAMOS ÁTVITEL: NYOMTATÓ ILLESZTÉS CENTRONICS CSATLAKOZÓ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 1 2 3 4 ADAT ÉRVÉNYES: ADATVONALAK (8) BUSY STROBE ACKNOWLEDGE A KÉZFOGÁSOS ADATÁTVITEL A STROBE, és ACK jelek egy bájt átvitelét, míg a BUSY jel a vevő foglaltságát jelzi. Látható, hogy elvileg mind a BUSY mind az ACK jel segítségével megvalósítható az átvitel. Az ADÓ vagy minden egyes adatbájt kiküldése után minden alkalommal vár az ACK jelre, vagy minden egyes bájt kiküldése előtt a BUSY vonalat kérdezi le.
MIKROCOMM 14/49 378H-37FH 3BCH-3BFH 278H-27FH PORTCIM: A nyomtató adapter portjai és a vonalak jelentése Parallel Printer Adapter #1 (LPT1:) MDPA kártyán lévő adapter Parallel Printer Adapter #2 (LPT2:) 378H Adatport (KI/BE): KI: Adat küldése a nyomtatóra BE: Adat olvasás külső eszközről 37AH Nyomtató státusz/ külső eszköz vezérlés (BE/KI): 7-6-5-4-3-2-1-0 bitek 0 0 0 0: +Strobe (láb1) 1 ha küldjük az adatot 1: +AUTOFeed (láb14) ha 1, LF lesz CR után 2: -INIT (láb16) 0 reseteli a nyomtatót 3: +SLCT IN (láb17) 1kiválasztja nyomtatót 4: +IRQ Eng. (hardver IT ha -ACK 1-be megy) LPT1-IRQ 7 (INT 0FH) LPT2-IRQ 5 (INT 0DH) bit 0-3 esetén ha kiírást végzünk, akkor vezérelhetjük az e vonalakra küldött jeleket, a port olvasásával pedig lekérdezhetjük a másik oldal által küldött jeleket. 379H Nyomtató státusz (Csak BE): 7-6-5-4-3-2-1-0 bitek 0 0 0 PC NYOMTATÓ PORTJA 3: -ERROR (láb15)0=nyomtató hibát jelez 4: +SLCT (láb13) 1=nyomtató kiválasztva 5: +PE (láb12) 1=papir kifogyott 6: -ACK (láb10) 0=kész a köv.bájt vételére 7: -BUSY (láb11) 0=foglalt v. offline vagy hiba Összefoglalva, az IBM nyomtató adapterén 8+4 KI/BE vonal, és 5 csak BE vonal áll rendelkezésre. Program PortTest;{Pascal példaprogram a Centronics port kezelésére } Uses Crt,Dos; Var r:registers; b:byte; begin r.ah:=1; { Funkciókód: 1-Port inicializálás } r.dx:=0; { Printer szám } intr($17,r); { INT 17h Printer I/O } Write('Kérem a kiírandó bájtot:'); Read(b); r.ah:=0; {Funkciókód: 0-print char } r.al:=b; r.dx:=0; { Printer szám } intr($17,r); { INT 17h Printer I/O } end.
MIKROCOMM 15/49 IEEE 1284 -ES SZABVÁNY Míg a PC és a nyomtatók továbbfejlődtek, addig a nyomtató portot hosszú ideig nem fejlesztették tovább. Kritikák: Az adatátvitel egyirányú, pedig a korszerű lézernyomtatók már elbeszélgetnek a számítógéppel. A bájtok átvitele (a handshake) program segítségével, bitek beéllításával és figyelésével valósul meg, ezért viszonylag lassú, és processzoridőt használ fel. Egy bájt átvitele négy vagy több programutasítás végrehajtását igényli. Az adatátvitel a PC oldaláról áramkörileg nem pufferelt, azaz minden bájt átvitele egyenként történik. 1991-ben új szabvány: az eredeti illesztéssel való kompatíbilitás megtartása mellett nagysebességű (1 Mbájt/sec), kétirányú adatátvitelt határoz meg. Az IEEE 1284 az adatátvitel öt módját definiálja: Egyirányú adatátvitel: ez az eredeti szabványos printer port. Fordított irányú átvitel: ez már lehetővé teszi a kétirányú kommunikácót. Két megoldása lehetséges: a félbájt (nibble) mód, amikor 4 biten történik az adatátvitel. bájt mód: Kétirányú átvitel: ez teszi lehetővé a nagysebességű, pufferelt, hardverben vezérelt átvitelt. Az egyik megoldás: az EPP (Enhanced Paralell Port), amelyet elsődlegesen nem nyomtató perifériák (CD- ROM, merevlemez, hálózati adapter, stb.) számára használnak. Az EPP protokoll négy fajta adatátviteli ciklust használ: 1. Adat írás 2. Adat olvasás3. Cím írás 4. Cím olvasás Ez utóbbi használható a cím, csatorna és vezérlő információk átvitelére. A másik megoldás a HP és a Microsoft által javasolt, ECP (Extended Capability Port). Ez szintén nagysebességű kétirányú adatforgalmat tesz lehetővé az adatátvitel közbeni adattömörítést biztosító RLE (Run Lenght Encoding) technikával, a midkét irányú puffereléssel, DMA és programozott adatátvitellel. Az adattömörítéssel 64:1 -es tömörítést lehet elérni, hiszen nyomtatóknál és szkennereknél a képek nagyon sok egymás utáni ismétlődő adatot tartalmaznak. Az IEEE 1284 szabvány még rendelkezik: Az eszközök meg tudják beszélni egymással a kommunikáció módját, Fizikai illesztést (kábeleket, csatlakozókat) definiál, Elektromos illesztést (Adók, vevők karakterisztikái, lezárások, illesztések, impedancia..) is meghatározza.
MIKROCOMM 16/49 PÁRHUZAMOS ÁTVITEL : IEEE1284 Egyirányú adatátvitel: ez az eredeti szabványos printer port. Fordított irányú átvitel: félbájt (nibble) mód: 4 biten történik az adatátvitel bájt mód: elvileg azeredeti printer port is kétirányú Kétirányú átvitel: EPP (Enhanced Paralell Port), nem nyomtató perifériák (CD-ROM, merevlemez, hálózati adapter, stb.)számára 500K-2Mbájt közötti adatátviteli sebességet biztosít! ECP (Extended Capability Port) HP és a Microsoft által javasolt. Az adatátvitel közben adattömörítés használ. Nyomtatóknál,szkennereknél 64:1 -es tömörítést lehet elérni Az IEEE 1284 szabványban még benne van: Az eszközök meg tudják beszélni egymással a kommunikáció módját, Fizikai illesztést (kábeleket, csatlakozókat) definiál, Elektromos illesztés
MIKROCOMM 17/49 IEEE1284-C Possible Interconnect Options:
MIKROCOMM 18/49 IEEE1284-C BEKÖTÉS
MIKROCOMM 19/49 LCD - BEKÖTÉS
MIKROCOMM 20/49 LCD - UTASÍTÁSOK
MIKROCOMM 21/49 LCD UTASÍTÁSOK (FOLYT.)
MIKROCOMM 22/49 LCD - IDŐZÍTÉS
MIKROCOMM 23/49 BINÁRIS SOROS ÁTVITEL ELŐNYEI AZ ANALÓG ÁTVITELLEL SZEMBEN: KÖNNYEN REGENERÁLHATÓ, DETEKTÁLHATÓ KARAKTER- ÉS BITORIENTÁLT ELJÁRÁSOK START Karakter1 STOP START Karakter2 STOP... Aszinkron átvitel (START-STOP) SYN SYN n darab karakter... SYN: 01111110 Karakter szinkron átvitel SYN SYN vezérlő inf. Adatmező vége... Bit szinkron átvitel SZINKRONITÁS (=EGYÜTTFUTÁS) AZ ADÓ ÉS A VEVŐ KÖZÖTT!!!
MIKROCOMM 24/49 SOROS ADATÁTVITEL A SOROS ADATÁTVITEL AZ ADATOK OLYAN TOVÁBBÍTÁSA, AMELYBEN AZ ADATOKAT BITENKÉNT, A KIEGÉSZÍTŐ ELLENŐRZŐ JELEKKEL EGYÜTT, IDŐBEN EGYMÁS UTÁN TOVÁBBÍTJA A SZÁMÍTÓGÉP. Megoldások: Szinkronizmus biztosítása 1 bájt átvitelére - aszinkron soros adatátvitel START LSB MSB X X X X X P ADATBITEK STOP 1 BITIDŐ P=PARITÁS ADATBIT CSOPORT Szinkronizmus biztosítása több bájt átvitelére - szinkron soros adatátvitel KÜLDÖTT ADATOK 01111110 01111110... 01111110 01111110 VEVÕT SZINKRONIZÁLJÁK AZ ADÓHOZ 01111110 = SZINKRON (-IZÁLÓ) KARAKTER JELÖLÉSE : SYN
MIKROCOMM 25/49 SZINKRON SOROS ADATÁTVITEL Szinkron adatátvitelnél a bájtsorozat határok felismerésére kell szinkronizáló (SYNC) karaktereket használni. Minden üzenet egy vagy több SYNC karakterrel kezdődik. SYNC SYNC első adat 01111110 01111110 10111111 Az üzenetben a SYNC karakter jelentés nélküli, kitöltő karakter, amit a vevő kiszűr. Kitöltő karakter akkor található egy üzenetben, ha az adatforrás nem képes a kívánt ütemben biztosítani az átviendő adatokat. a.) Szinkron karakter orientált protokol 1 1 1 1 1 2 SYN SYN SOH fejrész STX SYN = szinkronmezõ SOH = fejrész kezdete(start of header) STX = szöveg kezdete(start of text) ETX = szöveg vége(end of text) ETB = átviteli blokk vége(end of transmission block) adatok(n karakter) ETX/ ETB ell.örzõ összeg b.) Szinkron bitorientált protokol 1 1-2 2 1 7E h címrész vezérlõ rész adatok(n karakter) ell.örzõ összeg 7E h
MIKROCOMM 26/49 U 1 VEZETÉKES ÁTVITEL I. 1 60 usec TX TX HOSZT 1 - ET KÜLD SLAVE-NEK RX DQ RX 1 60 usec HOSZT 0 - ÁT KÜLD SLAVE-NEK HOSZT (MASTER) PERIFÉRIA (SLAVE) 1 60 usec SLAVE BEFEJEZI A BIT ADÁSÁT ÁRAMKÖRI KIALAKÍTÁS 0 VAGY 1 HOSZT L SZINTET AD 1 15 SLAVE 0 VAGY 1 BIT - ET (ADATOT) AD VISSZA HOSZT SLAVE ALTAL KULDOTT BITET OLVAS 1 VEZETÉKES ÁTVITEL (DALLAS) Az adatforgalom egy vezetéken történik. Mivel az átvitel alapja a pontos időzítés, ezért a biteket IDŐSZELETEK-ben visszük át. Minden szelet min. 60 mikrosec hosszú., és ezeket min 1 mikrosec hosszú H szintű szünetjel választja el. Minden időszelet kezdetét a hoszt jelöli ki a DQ pont L-be húzásával.
MIKROCOMM 27/49 1 VEZETÉKES ÁTVITEL II. Példa: DALLAS DS2223 EconoRAM: 256 bites RAM. Soros átvitel egyszerre: 8 bites parancsszó + 256 bit adat =264 bites átvitel Hoszt 8 írás időszeletben kiadja a parancsszót. Ennek hatására a címmutató értéke inkrementálódik. ha 256 volt, nulla lesz. Mivel nincs RESET, ezért induláskor min. 256 darab 0 írás időszeletet kell kiadni. Parancsszó nélkül ez csak a számlálót lépteti, ami 256-nál beragad. MSB PARANCSSZÓ LSB W/R W/R W/R W/R W/R 0 0 1 MINDEN BIT 1: ÍRÁS VAN 0 BIT : OLVASÁS PARANCSSZÓ (8 BIT) 256 BIT ADAT
MIKROCOMM 28/49 ASZINKRON SOROS ADATÁTVITELI PROTOKOLL +25V +3V 0-3V -25V SPACE MARK START LSB X X X X X P ADATBITEK MSB STOP 1 BITIDŐ P=PARITÁS Paraméterek: ADATBITEK SZÁMA (5-9) PARITÁSBIT, HA VAN PÁROS -PTLAN STOPBITEK SZÁMA (1-1.5-2) ADATÁTVITELI SEBESSÉG: 75-150 -300-600 -1200-2400 -4800-9600 -19200-38400 -57600 -...
MIKROCOMM 29/49 ASZINKRON SOROS ADATÁTVITEL - PÉLDA A 41H 01000001B +12V 1 BIT ÁTVITELÉNEK IDEJE ~0.1 msec -12V 1 0 0 0 0 0 1 0 STOP START PARITÁS (0) 1 ADAT ÁTVITELÉNEK TELJES IDEJE
MIKROCOMM 30/49 RS232 ISMERETEK
MIKROCOMM 31/49 RX (MCU) TX (MCU) TX (PC) 4k7 1N4148 Vcc BC547 Vcc 4k7 47k RS-232 TTL SZINTILLESZTŐ MEGOLDÁSOK I. 4k7 RX (MCU) RX (PC) 1N4148 1k8 TX (PC) RX (PC) 4k7 BC557 4k7 10u/16V + TX (MCU) A PC soros port TX pontjának a +/-15V-os feszültségét a diódákból és a 4.7k-os ellénállásból álló hálózat limitálja 0..5Vra. CMOS mikrokontrollerek port-lábai diódákkal védettek, így ebben az esetben a külső diódák akár el is hagyhatók. A másik adatirány (mc PC) még ennél is egyszerűbb, semmilyen külső alkatrészt nem tartalmaz. Ez azért lehetséges, mert a tapasztalat szerint a PC soros portok RX pontja a szabványostól eltérően már a 0V-os bemenő feszültséget is logikai 1-nek veszi. Mivel az áramkör nem invertál, azért a mikrokontrollerben a vett és a kiküldött adatokat komplementálni kell. A kapcsolás az ábrán látható. A PC mc irány egy egyszerű tranzisztoros inverter, a negatív feszültségek limitálását a tranzisztor bázisára csatlakozó dióda végzi. A mc PC irány szintén egy taranzisztoros inverter, de PNP tranzisztorral megvalósítva. Ha a tranzisztor kinyit, akkor +5V kerül a PC RX pontjára, ha zárva van, akkor -15V, amit a kondenzátor biztosít. A kondenzátor folyamatos töltése a diódán keresztül valósul meg, amikor a PC TX vonala inaktív (-15V-os, logikai 1 szintű) állapotban van. A kapcsolás elvileg lehetőséget ad a teljes duplex kommunikációra (mindkét irányba folyik az adatforgalom egyszerre), de a kondenzátor töltése a PC TX vonal +15V-os állapotában nem biztosított, így az PC RX vonal számara a -15V-os forrás bizonytalanná válhat a kondenzátor fokozatos kimerülésével.
MIKROCOMM 32/49 RS-232 TTL SZINTILLESZTŐ MEGOLDÁSOK II. TX (PC) BS170 2k2 RX (MCU) D RX (PC) S RTS (PC) S D Vcc TX (MCU) BS250 2k2 Ez a kapcsolás is két invertert tartalmaz, MOS-FET tranzisztorokkal megvalósítva (az egyik itt is p, a másik n típusú). A kapcsolás teljesen duplex, mert a PC RX vonala számára szükséges negatív feszültséget maga a PC szolgáltatja az RTS vonalán keresztül, így rögtön látszik a kapcsolás hátránya is: csak olyan PC-s programmal használható, amely gondoskodik az RTS vonal -15V-on tartásáról. Előny, hogy a FET-ek alkalmazása miatt feszültségvezérelt elemről lévén szó elmaradhatnak a bázisköri elemek (ellenállás, dióda), így az alkatrészigény minimális. Vcc +15V (PC) 330 Vcc TX (PC) -15V (PC) 2k7 max. 2k2 RX (MCU) RX (PC) -15V (PC) max. 2k2 TX (MCU) A PC µc irány itt is inverteres, mely az optocsatoló kimeneti tranzisztorával van megvalósítva. A µc PC irány viszont emmiterkövetős, az invertálást úgy valósítjuk, meg, hogy a fotodióda aktív szintje a 0V-os MCU TX feszültséghez tartozik. Erre azért volt szükség, mert a mikrokontrollerek egy jelentős részének (az SX nem ilyen) a kimenete nagyobb áramot képes elnyelni aktív 0 állapotban, mint szolgáltatni aktív 1 állapotban. Teljes galvanikus leválasztást biztosít. PC irányából két segédfeszültséget igényel: +/-15V-ot. A PC RTS vonala mellett erre a célra még a DTR vonal használható fel második forrásként. Az egyik leggyakoribb megoldás az erre a célra gyártott kétirányú szintillesztő áramkör alkalmazása. Ez a +5V-ból állitja elő a szükséges feszültséget.
MIKROCOMM 33/49 ÁRAMHUROK (Only one device can transmit at a time) RS232 TO CURRENT LOOP CONVERTER PASSIVE CURRENT LOOP CONVERTER Receiver Receiver T+ 14 T- 19 6 R+ R- Transmitter (Current is ON when data is not transmitted) 20 ma current loop generator active side Transmitter (Current is ON when data is not transmitted) passive side 470 9 21 470 22 R+ 25 R- 23 +12VDC T+ T- YOUR EQUIPMENT Figure 2. Simplex 20 ma Circuit Figure 9. Connection to a Passive Current Loop
MIKROCOMM 34/49 INTEL 8251 D0-D7 RESET CLK C/D RD WR CS DSR DTR CTS RTS ADATBUSZ PUFFER IRÁS/OLV. VEZÉRLÉS BELSŐ ADATBUSZ MODEM VEZÉRLÉS SOROS KIVITELI TÁROLÓ (PUFFER) SOROS KIVITEL VEZÉRLÉS SOROS BEMENETI TÁROLÓ (PUFFER) SOROS BEMENET VEZÉRLÉS 8251 BLOKKVÁZLATA TxD TxRDY TxEMPTY TxC RxD RxRDY RxC SYNDET/BD C/D RD WR CS 0 0 1 0 8251ADAT -> ADATBUSZ 0 1 0 0 ADATBUSZ -> 8251ADAT 1 0 1 0 STÁTUSZ -> ADATBUSZ 1 1 0 0 ADATBUSZ -> VEZÉRLŐ REG. X 1 1 0 ADATBUSZ LEBEG (TRI STATE) X X X 1 ADATBUSZ LEBEG (TRI STATE) D2 D3 RxD 1 2 3 28 27 D1 D0 Vcc GND RxC D4 DTR D5 D6 8251 D7 TxC WR CS C/D RD RxRDY 14 15 RTS DSR RESET CLK TxD TxEMPTY CTS SYNDET/BD TxRDY
SOROS UART ILLESZTESE PC-HEZ MIKROCOMM 35/49 CRYSTAL: R P : 1M Ω R X2 : 1.5kΩ EIA-232 DB9 DCD DSR RD RTS TD CTS DTR RI GND 6 9 1 5 1.8/3.1MHz C 1 : 10-30pF C 2 : 40-60pF C 1 12V C 2 R P R X2 1 20 2 19 3 18 4 17 5 16 6 15 7 14 8 13 9 12 10 11 5V SN75C185-12V GND XIN XOUT BAUDOUT RCLK DCD DSR SIN RTS SOUT CTS DTR R1 TXRDY RXRDY D0-D7 RD1 WR1 INTERRUPT MR CS2 CS1 CS0 A0-A2 ADS RD2 WR2 D0-D7 5V CS 'LS245 EN DIR PAL TL16C550B D0-D7 MEMW or I /OR MEMW or I/ON INTR RESET A20-A3 A0-A2 CPU BUS 6-11
MIKROCOMM 36/49 RS232 problémái: kis távolság, zajérzékenység, ezért új szabványok: RS-449: mechanikai és funkcionális specifikációk RS-423: asszimetrikus (közös föld) RS232-höz hasonló pontpont átvitel RS-422: szimmetrikus multi-drop, duplex megoldáshoz 4 vezetékes átvitel, egy ADÓ, több VEVŐ RS-485: szimmetrikus multi-drop, duplex megoldáshoz 4 vezetékes átvitel több ADÓ, több VEVŐ (arbitráció!) EGYÉB SOROS SZABVÁNYOK IN OUT IN IN IN RXD U1R U1T TXD FULL DUPLEX! A B A B A B GND U0 U2T= U1R - U0 U1T= U2R + U0 SZIMPLEXEK! RS232 TXD U2T U2R RXD RS422 RS423 OUT IN OUT OUT OUT RS485
MIKROCOMM 37/49 ASZIMM. ÉS SZIMMETRIKUS ÁTVITEL Advantages Low system cost Simple to implement Disadvantages Noise and crosstalk Ground shifts Low data rates Low line length EMI Loop Currents Examples: Interface RS-232 (ITU V.28), RS-423 (ITU V.10) Examples: ITU-T V.11 (RS-422); ISO 8482 (RS-485) Advantages: Low sensitivity against crosstalk from other signal lines. Good noise reduction from external noise sources. Good common mode noise rejection. High data rates (>10 Mbit/s) Allows line length up to 1000 m. Disadvantages: More complex circuit technique. Twowires per signal required Higher cost. V cm
MIKROCOMM 38/49 COMPARISON OF RS-422 AND RS-485 RS-422 R t 100 Ω R t 100 Ω RS-485 R t 100 Ω 1 generator upto10 receivers simplex operation upto32 unit loads Halfduplex operation -7V to +7V Max common mode voltage -7V to +12V 4 kω Receiver input impedance 12 kω 100 Ω Minimum generatorload 60Ω < 150 ma to GND Generator short circuit current <250 ma to -7V / +12V SN75176:
MIKROCOMM 39/49 AZ RS-485 SZABVÁNY I. RS-485 áramkör (fél duplex)
MIKROCOMM 40/49 AZ RS-485 SZABVÁNY II. 4 vezetékes RS-485 (duplex)
MIKROCOMM 41/49 AZ RS-485 SZABVÁNY III. RS-485 - RS232 RTS-el RS-485 - RS232 ADATÁTVITELI SEBESSÉG - KÁBELHOSSZ
MIKROCOMM 42/49 RS SOROS SZABVÁNYOK JELLEMZŐI Jellemzők RS 232C (V.24) Áraminterfész RS 423 (V.10) RS 422 (V.11) Átvitel aszimmetrikus szimmetrikus aszimmetrikus szimmetrikus Kábel típus sodrott érpár sodrott érpár koaxiális sodrott érpár Kábelhossz 15 m 300 m 600 m 1200 m Adatsebesség 20 kbit/s 10 kbit/s 300 kbit/s 2 Mbit/s (max) Meghajtó kimeneti szint +/- 25 V 20 ma +/- 6V +/- 6V (diff) (terheletlen) Meghajtó kimeneti szint +/- 5...+/- 15V 20 ma +/- 3,6 V +/- 2V (diff) (terhelt) Minimális vételi szint +/- 3V 10 ma +/- 0,2 V +/-0,2V (diff)
MIKROCOMM 43/49 BEÁGYAZOTT RENDSZEREK KOMMUNIKÁCIÓJA Az I 2 C busz: master-slave -soros ADÓ -VEVŐ VCC SDA SCL SDA1 KI SCL1 KI SDA2 KI SCL2 KI SDA1 BE SCL1 BE SDA2 BE SCL2 BE EGYSÉG I. EGYSÉG II.
I2C BUSZ ADATÁTVITEL MIKROCOMM 44/49 SDA ADAT stabil SCL BIT átvitel az I2C buszon SDA SLAVE KÜLDI AZ ADATOT SDA SLAVE VESZI AZ ACK- OT SCL S START P STOP SCL S 1 2 8 9 MASTER ADJA ACK START és STOP feltételek
MIKROCOMM 45/49 I2C BUSZ - FOLYTATÁS M M M L M L M L M S SLAVE ADDRESS W A DATA A DATA MASTER WRITE M M M L L M L M M S SLAVE ADDRESS R A DATA A DATA MASTER READ A-ACK NA-NEG. ACK DATA-ADATOK A A P P
MIKROCOMM 46/49 SPI - SERIAL PERIPHERAL INTERFACE Az SPI lényegében egy két vonalon összekötött shift regiszter, Az adatátvitelnél egy master és több szolga lehet. A mester vezérli a folyamatot, adja az órajelet. Az SPI két adat és két vezérlő vonalból áll. Master Out Slave In MOSI Master In Slave Out MISO Serial Clock SCLK a mester által küldött órajel Slave Select -SS a szolgát jelöli ki MSB MESTER LSB MSB SZOLGA LSB MISO MISO SHIFT REGISZTER SHIFT REGISZTER (8BIT) (8BIT) MOSI MOSI SCK SCK SPI ÓRAJEL SS SS VCC GND
MIKROCOMM 47/49 SPI START RST=0 SCLK=0 I/O=? CIKL=8 RST=1 I/O = ADATBIT SCLK=1 KÉSLELTETÉS (2 MIKROSEC) SCLK=0 The primarydifferencebetween thespi andthe Microwire is thatspi supportsdata lockingonbothfalling andrising edgesof the clocksignalwhile thelatter is always operating ontherising edge. CIKL=CIKL-1 CIKL=0? RST=0 STOP
MIKROCOMM 48/49 SPI MÓDOK CKP: CLOCK POLARITY 1: ÓRAVONAL ALAPÁLLAPOTA H CKE: ORAJEL AKTÍV ÉLE SMP:SAMPLE BIT 1 : BEJÖVŐ ADATOT AZ ADATBIT KIVITELE VÉGÉN MINTAVÉTELEZZÜK 0 : BEJÖVŐ ADATOT AZ ADATBIT KIVITELE KÖZEPÉN MINTAVÉTELEZZÜK
MIKROCOMM 49/49 SPI ÁTVITEL SCK (CKP = 0,CKE =0) SCK (CKP = 1,CKE =0) SCK (CKP = 0,CKE =1) SCK (CKP = 1,CKE =1) SDO (CKE=0) b7 b6 b5 b4 b3 b2 b1 b0 SDO (CKE=1) b7 b6 b5 b4 b3 b2 b1 b0 SDI (SMP=0) b7 b6 b5 b4 b3 b2 b1 b0 SDI (SMP=1) (Microwire ) b7 b6 b5 b4 b3 b2 b1 b0