´ UC ˇ EN´I TECHNICKE ´ V BRNE ˇ VYSOKE BRNO UNIVERSITY OF TECHNOLOGY
ˇ ´ICH TECHNOLOGI´I FAKULTA ELEKTROTECHNIKY A KOMUNIKACN ´ USTAV TELEKOMUNIKAC´I FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF TELECOMMUNICATIONS
ˇ EVODN´IK USB/RS-485 PR
´ RSK ˇ A ´ PRACE ´ BAKALA BACHELOR’S THESIS
´ AUTOR PRACE AUTHOR
BRNO 2008
´ VACLAV HENZL
´ UC ˇ EN´I TECHNICKE ´ V BRNE ˇ VYSOKE BRNO UNIVERSITY OF TECHNOLOGY
FAKULTA ELEKTROTECHNIKY ˇ ´ICH TECHNOLOGI´I A KOMUNIKACN ´ USTAV TELEKOMUNIKAC´I FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF TELECOMMUNICATIONS
ˇ EVODN´IK USB/RS-485 PR USB/RS-485 CONVERTER
´ RSK ˇ A ´ PRACE ´ BAKALA BACHELOR’S THESIS
´ AUTOR PRACE
´ VACLAV HENZL
AUTHOR
´ VEDOUC´I PRACE SUPERVISOR
BRNO 2008
ING. IVO HERMAN, CSC.
´ SEN ˇ ´I PROHLA
Prohlaˇsuji, ˇze svoji bakal´aˇrskou pr´aci na t´ema Pˇ revodn´ık USB/RS485 jsem vypracoval samostatnˇe, pod veden´ım vedouc´ıho pr´ace a s pouˇzit´ım odborn´e literatury a dalˇs´ıch informaˇcn´ıch zdroj˚ u, kter´e jsou vˇsechny citov´any v pr´aci a uvedeny v seznamu literatury na konci pr´ace. Jako autor uveden´e bakal´aˇrsk´e pr´ace d´ale prohlaˇsuji, ˇze v souvislosti s vytvoˇren´ım tohoto projektu jsem neporuˇsil autorsk´a pr´ava tˇret´ıch osob, zejmen´a jsem nezas´ahl nedovolen´ym zp˚ usobem do ciz´ıch autorsk´ych pr´av osobnostn´ıch a jsem si plnˇe vˇedom n´asledk˚ u poruˇsen´ı ustanoven´ı § 11 a n´asleduj´ıc´ıch autorsk´eho z´akona ˇc. 121/2000 Sb., vˇcetnˇe moˇzn´ych trestnˇepr´avn´ıch d˚ usledk˚ u vypl´yvaj´ıc´ıch z ustanovan´ı § 152 trestn´ıho z´akona ˇc. 140/1961 Sb. V Brnˇe dne 28.5.2008 V´aclav Henzl
´ ´I ZADAN
Navrhnˇete pˇrevodn´ık USB/RS 485, kter´y bude simulovat v´ystup typu COM v poˇc´ıtaˇci PC. Zajistˇete automatick´y i ˇr´ızen´y zp˚ usob pˇrep´ın´an´ı smˇer˚ u pro sbˇernici RS 485.
ABSTRAKT Tato pr´ace se zab´yv´a problematikou realizace pˇrevodn´ıku sbˇernice typu USB na sbˇernici typu RS-485, kter´a je v dneˇsn´ı dobˇe hojnˇe vyuˇz´ıv´ana pˇri pr˚ umyslov´ych aplikac´ıch (autor napˇr´ıklad pouˇz´ıv´a jako komunikaˇcn´ı prostˇredek mezi serverem a ˇcteˇckami bezkontaktn´ıch pˇr´ıstupov´ych karet). Obsahuje teoretick´y u´vod, n´avrh zaˇr´ızen´ı, realizaci a vyhodnocen´ı dosaˇzen´ych v´ysledk˚ u.
ˇ A ´ SLOVA KL´ICOV USB, RS-485, konvertor, emulace COM, zp˚ usob pˇrep´ın´an´ı smˇer˚ u
ABSTRACT This thesis is describing problematic of realisation of converter from USB type media into the universal RS-485 bus which is mainly used for the industrial applications (author is using frequently as a device in order to enable communication between server and RFID devices). This thesis contains theoretical information, realisation of the device itself and assesment of reached targets.
KEYWORDS USB, RS-485, converter, COM emulation, type of control of transfer direction switching
´ UCEN ˇ ´I TECHNICKE ´ V BRNE, ˇ HENZL V. Pˇrevodn´ık USB/RS-485. Brno: VYSOKE ˇ ´ICH TECHNOLOGI´I, USTAV ´ FAKULTA ELEKTROTECHNIKY A KOMUNIKACN TELEKOMUNIKAC´I, Rok vyd´an´ı: 2008. Poˇcet stran 68. Vedouc´ı bakal´aˇrsk´e pr´ace ing. Ivo Herman, CSc.
OBSAH ´ Uvod
10
1 USB - Universal Serial Bus 1.1 Popis rozhran´ı . . . . . . . 1.2 Elektrick´e parametry . . . 1.3 Moˇznosti a v´ yhody USB . 1.4 Pˇrenos dat . . . . . . . . . 1.5 USB deskriptory . . . . .
11 11 11 14 14 18
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
2 RS-485 22 2.1 Obecn´ y popis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.2 RS-485 pod lupou . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.3 Topologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3 FT232BM 26 3.1 Obecn´e vlastnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.2 Blokov´ y diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.3 Popis jednotliv´ ych funkˇcn´ıch blok˚ u . . . . . . . . . . . . . . . . . . . 27 4 EEPROM 93C56B 31 4.1 Obecn´e vlastnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.2 Blokov´ y diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.3 Popis jednotliv´ ych pin˚ u . . . . . . . . . . . . . . . . . . . . . . . . . . 31 5 LTC485 34 5.1 Obecn´e vlastnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 5.2 Sch´ema zapojen´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 5.3 Popis jednotliv´ ych pin˚ u . . . . . . . . . . . . . . . . . . . . . . . . . . 35 6 Realizace hardwaru 6.1 Nap´ajen´ı pˇrevodn´ıku . . . . . . . . . . 6.2 Pˇripojen´ı krystalu . . . . . . . . . . . . 6.3 Pˇripojen´ı pamˇeti EEPROM . . . . . . 6.4 Pˇripojen´ı linkov´eho vys´ılaˇce/pˇrij´ımaˇce ˇ ızen´ı pˇr´ıstupu . . . . . . . . . . . . . 6.5 R´ 6.6 Automatick´ y zp˚ usob pˇrep´ın´an´ı smˇer˚ u . ˇ 6.7 R´ızen´ y zp˚ usob pˇrep´ın´an´ı smˇer˚ u . . . . 6.8 Vyv´aˇzen´ı pˇrenosv´e linky RS-485 . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
36 36 37 38 39 40 42 42 42
6.9 Konfigurace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 6.10 Dokonˇcen´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 6.11 Mˇeˇren´ı obvodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 7 Software
48
8 Z´ avˇ er
51
Reference
52
Seznam symbol˚ u, veliˇ cin a zkratek
53
Seznam pˇ r´ıloh
55
A Blokov´ y diagram ˇ cipu FT232BM
56
B Sch´ ema zapojen´ı pˇ revodn´ıku
58
C Pohled na osazen´ı souˇ c´ astek - vrchn´ı strana
60
D Pohled na osazen´ı souˇ c´ astek - spodn´ı strana
61
E Pohled na desku ploˇ sn´ ych spoj˚ u - vrchn´ı strana
62
F Pohled na desku ploˇ sn´ ych spoj˚ u - spodn´ı strana
63
G Rozpis souˇ c´ astek
64
H Fotografie DPS | TOP
65
Fotografie DPS | BOTTOM
66
J Fotografie osazen´ e DPS | TOP
67
K Fotografie osazen´ e DPS | BOTTOM
68
I
´ ˚ SEZNAM OBRAZK U 1.1 1.2 1.3 2.1 2.2 3.1 3.2 4.1 4.2 5.1 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 6.10 7.1 7.2 7.3 A.1 B.1 C.1 D.1 E.1 F.1 H.1 I.1 J.1 K.1
Sch´ema zapojen´ı pro pˇrenosovou rychlost typu LOW SPEED . . . Sch´ema zapojen´ı pro pˇrenosovou rychlost typu FULL SPEED . . Typy konektor˚ u typu USB . . . . . . . . . . . . . . . . . . . . . . Vliv interference na RS-485 . . . . . . . . . . . . . . . . . . . . . Topologie RS-485 . . . . . . . . . . . . . . . . . . . . . . . . . . . Pin-Out IO FT232BM - fyzick´ y . . . . . . . . . . . . . . . . . . . Pin-Out IO FT232BM - schematick´ y . . . . . . . . . . . . . . . . Blokov´ y diagram EEPROM pamˇeti 93c56b . . . . . . . . . . . . . Pinout EEPROM pamˇeti 93c56b v obou proveden´ıch . . . . . . . Pinout integrovan´e struktury LTC485 vˇc. vnitˇrn´ı struktury . . . . Sch´ema nap´ajen´ı obvod˚ u pˇrevodn´ıku . . . . . . . . . . . . . . . . Sch´ema pˇripojen´ı krystalu k FT232BM . . . . . . . . . . . . . . . Sch´ema pˇripojen´ı pamˇeti EEPROM k FT232BM . . . . . . . . . . Sch´ema pˇripojen´ı linkov´eho pˇrij´ımaˇce/vys´ılaˇce RS-485 . . . . . . . ˇ ızen´ R´ y zp˚ usob pˇrep´ın´an´ı smˇer˚ u s vyuˇzit´ım RTS . . . . . . . . . . Sch´ema zapojen´ı mˇeˇren´ı spotˇreby . . . . . . . . . . . . . . . . . . Vliv konfigurace lok´aln´ıho echa . . . . . . . . . . . . . . . . . . . Teoretick´ y pr˚ ubˇeh sign´alu pˇri odes´ıl´an´ı znaku ’F’ . . . . . . . . . Pr˚ ubˇeh sign´alu pˇri odes´ıl´an´ı znaku ’F’ . . . . . . . . . . . . . . . Pr˚ ubˇehy sign´al˚ u na jednotliv´ ych vodiˇc´ıch veden´ı . . . . . . . . . . Sch´ema struktury ovladaˇce typu VCP . . . . . . . . . . . . . . . . Sch´ema struktury ovladaˇce typu D2XX . . . . . . . . . . . . . . . N´ahled obrazovky programu Mprog . . . . . . . . . . . . . . . . . Blokov´ y diagram ˇcipu FT232BM . . . . . . . . . . . . . . . . . . Sch´ema zapojen´ı pˇrevodn´ıku USB<->RS485 . . . . . . . . . . . . Osazen´ı souˇca´stek pˇrevodn´ıku - vrchn´ı strana DPS . . . . . . . . Osazen´ı souˇc´astek pˇrevodn´ıku - spodn´ı strana DPS . . . . . . . . Deska ploˇsn´ ych spoj˚ u pˇrevodn´ıku USB<->RS485 - vrchn´ı strana . Deska ploˇsn´ ych spoj˚ u pˇrevodn´ıku USB<->RS485 - spodn´ı strana Deska ploˇsn´ ych spoj˚ u - foto - top . . . . . . . . . . . . . . . . . . Deska ploˇsn´ ych spoj˚ u - foto - bottom . . . . . . . . . . . . . . . . Fotografie osazen´eho pˇrevodn´ıku - top . . . . . . . . . . . . . . . . Fotografie osazen´eho pˇrevodn´ıku - bottom . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13 13 20 23 24 28 29 32 33 34 37 38 39 40 42 45 45 46 46 47 48 49 49 57 59 60 61 62 63 65 66 67 68
SEZNAM TABULEK 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 6.1 G.1
Zapojen´ı konektoru USB . . . . . . . . . . . . . . . . . Poloˇzky pole typu PID . . . . . . . . . . . . . . . . . . Form´at paketu typu token . . . . . . . . . . . . . . . . Form´at paketu typu data . . . . . . . . . . . . . . . . . Form´at paketu typu handshake . . . . . . . . . . . . . Form´at paketu typu SOF . . . . . . . . . . . . . . . . . Form´at deskriptoru typu device . . . . . . . . . . . . . Form´at deskriptoru typu configuration . . . . . . . . . Form´at deskriptoru typu interface . . . . . . . . . . . . Konfigurace pˇrevodn´ıku s pomoc´ı mikro DIP pˇrep´ınaˇc˚ u Rozpis souˇca´stek potˇrebn´ ych pro konstrukci zaˇr´ızen´ı . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
12 16 16 17 17 17 19 21 21 43 64
´ UVOD Tato pr´ace se vˇenuje oblasti konverze dat z rozhran´ı typu USB (univerz´aln´ı s´eriov´e rozhran´ı – Universal Serial Bus) na rozhran´ı typu RS-485 (rozhran´ı RS-485 je elektrick´a specifikace pro dvoudr´atov´e, poloduplexn´ı, v´ıcebodov´e s´eriov´e spojen´ı) vˇcetnˇe ˇreˇsen´ı problematiky ˇr´ızen´ı zp˚ usobu pˇrep´ın´an´ı smˇer˚ u na sbˇernici RS-485. C´ılem t´eto bakal´aˇrsk´e pr´ace je navrhnout pˇrevodn´ık, kter´ y bude simulovat v´ ystup typu COM v poˇc´ıtaˇci PC. Vypracujeme n´avrh zaˇr´ızen´ı, kter´e po pˇripojen´ı na port USB poˇc´ıtaˇce typu PC bude v tomto prostˇred´ı emulovat s´eriv´e rozhran´ı typu COM, po kter´em bude moˇzno pˇren´aˇset data pˇr´ımo na sbˇernici typu RS-485, kter´e je v dneˇsn´ı dobˇe hojnˇe vyuˇz´ıv´ano napˇr. v pr˚ umyslov´ ych aplikac´ıch, pˇr´ıstupu ke vzd´alen´ ym zaˇr´ızen´ım (kde nen´ı kladen poˇzadavek na ˇsirokop´asmov´ y pˇrenos dat) a podobnˇe. Pro n´avrh takov´ehoto zaˇr´ızen´ı je zapotˇreb´ı, abychom se bl´ıˇze sezn´amili se specifikacemi jednotliv´ ych rozhran´ı (USB, RS-485), jejich poˇzadavky na realizaci a s funkcemi, kter´e n´am mohou poskytnout. Po bliˇzˇs´ım prozkoum´an´ı nab´ıdky mikroˇcip˚ u, kter´e se nach´azaj´ı na trhu s elektronick´ ymi souˇca´stkami, jsme jako nejelpˇs´ı ˇreˇsen´ı pro naˇsi aplikaci zvolili ˇcip FT232BM od firmy FTDI Chip1 , kter´ y bude slouˇzit jako pˇrevodn´ık rozhran´ı typu USB na s´eriov´e rozhran´ı. Jako podp˚ urnou 2 pamˇet’ pro FT232BM byla zvolena EEPROM 93C56 od firmy Microchip . Pro pˇr´ıstup na sbˇernici typu RS-485 byl pouˇzit integrovan´ y obvod nesouc´ı oznaˇcen´ı LTC 485 od firmy Linear technology3 , coˇz je n´ızkopˇr´ıkonov´ y vys´ılaˇc/pˇrij´ımaˇc sbˇernice typu RS-485. S jednotliv´ ymi technick´ ymi specifikacemi tˇechto zaˇr´ızen´ı bude ˇcten´aˇr sezn´amen v dalˇs´ıch kapitol´ach t´eto pr´ace.
1
- v´ yroba mikroˇcip˚ u pro konverzi rozhran´ı typu USB - v´ yroba integrovan´ ych obvod˚ u a pamˇet´ı 3 - v´ yroba integrovan´ ych obvod˚ u pro speci´aln´ı aplikace 2
10
1
USB - UNIVERSAL SERIAL BUS
1.1
Popis rozhran´ı
Rozhran´ı typu USB je dnes jiˇz zcela bˇeˇznou souˇc´ast´ı kaˇzd´eho poˇc´ıtaˇce, ale i bˇeˇzn´e spotˇrebn´ı elektroniky, kterou kaˇzd´ y z n´as vyuˇz´ıv´a (fotoapar´aty, videokamery, apod..). Pod tlakem mohutn´e expanze rozhran´ı typu USB ve velk´e m´ıˇre ustoupilo s´erov´e rozhran´ı typu RS-2321 a paraleln´ı rozhran´ı, kter´e dnes najdeme jen jiˇz jako souˇc´ast rozhran´ı drtiv´e menˇsiny nab´ızen´ ych produkt˚ u. Proˇc je tedy rozhran´ı USB tak v´ yhodn´e? Z´akladn´ımi parametry rozhran´ı USB jsou: • Komunikaˇcn´ı vzd´alenost aˇz 5 metr˚ u • Komunikaˇcn´ı rychlost od 1,5 Mbps do 480Mbps • Rozhran´ı obsahuje nap´ajen´ı 5V, kter´ ym lze obsluhovat pˇripojen´a zaˇr´ızen´ı • Lze pˇripojit ˇsirokou ˇsk´alu zaˇr´ızen´ı pomoc´ı jednotn´eho konektoru • Moˇznost pˇripojen´ı v´ıce zaˇr´ızen´ı na jeden port rozhran´ı • Zajiˇstˇen´ı korektn´ıho pˇridˇelov´an´ı prostˇredk˚ u jako je IRQ, DMA a podobnˇe Ovladaˇce pro rozhran´ı typu USB v dneˇsn´ı dobˇe odpov´ıd´a normˇe Plug and Play a je souˇc´ast´ı jak operaˇcn´ıch syst´em˚ u firmy Microsoft, tak i jejr˚ uznˇejˇs´ıch distribuc´ı Linuxu a dokonce i Unixu.
1.2
Elektrick´ e parametry
Rozhran´ı typu USB pouˇz´ıv´a dva typy konektor˚ u: • USB Host zn´am´ y tak´e jako TYP A - obsaˇzen v zaˇr´ızen´ıch, kter´a podporuj´ı reˇzim USB Host • USB Device zn´am´ y tak´e jako TYP B - obsaˇzen v zaˇr´ızen´ıch, kter´a se pˇripojuj´ı k zaˇr´ızen´ım typu USB Host kabelem (m˚ uˇzeme si je pˇredstavit jako spotˇrebiˇce) 1
rozrhan´ı RS-232 je elektrick´ a specifikace pro s´eriov´ y pˇrenos dat pouˇzit´ y v poˇc´ıtaˇcov´ ych portech, je velice podobn´ a protokolu V.24 ze standardu ITU-T
11
V pˇr´ıpadˇe Universal Serial Bus jsou definov´any dvˇe rozd´ıln´e verze fyzick´e vrstvy - USB 1.1 a USB 2.0, kter´a byla novˇe doplnˇena o nejrychlejˇs´ı vrstvu high speed. Pro pˇripojen´ı r˚ uzn´ ych typ˚ u periferi´ı k jednomu poˇc´ıtaˇci m˚ uˇzeme vyuˇz´ıt vˇsechny verze propojen´ı souˇcasnˇe. Verze se liˇs´ı jednak proveden´ım kabelu, ale i elektrick´ ymi parametry rozhran´ı pˇr´ıpojn´eho nebo pˇripojen´eho zaˇr´ızen´ı. Rozdˇelen´ı rychlost´ı pro USB je n´asleduj´ıc´ı: • LOW SPEED = 1,5Mbps • FULL SPEED = 12Mbps • HIGH SPEED = 480Mbps Pˇri vysokorychlostn´ım pˇrenosu dat, tj pˇri rychlostech HIGH SPEED a FULL SPEED je logick´a hodnota 1 pˇren´aˇsena diferenci´alnˇe - D+ pˇres 2,8V a D- pod 0,3V. Logick´a hodnota 0 je pak ˇreˇsena zcela opaˇcnˇe tj. D+ pod 0,3V a D- pˇres 2,8V.
Tabulka 1.1: Zapojen´ı konektoru USB ˇ ıslo pinu C´
Jm´ eno
1 2 3 4
VBus DD+ GND
Barva
Popis
ˇcerven´a +5V DC b´ıl´a Data zelen´a Data + ˇcern´a Sign´aln´ı zem
Pro definici rychlosti na sbˇernici m´a USB k disposici speci´aln´ı reˇzimy, kdy jsou piny Data + nebo Data - pˇripojeny pˇr´ımo na u ´roveˇ n 3,3V. Full speed zaˇr´ızen´ı m´a pˇripojen pin Data + rezistorem na u ´roveˇ n 3,3V, zat´ımco Low speed zaˇr´ızen´ı tomu maj´ı naopak - tedy pin Data -. Zaˇr´ızen´ı s podporou High speed se pˇripojuj´ı totoˇznˇe s reˇzimem Full speed, detekce rychlosti se prov´ad´ı softwarovˇe mezi poˇc´ıtaˇcem a ˇcipem v pˇripojovan´em zaˇr´ızen´ı. Standard USB 1.1 definuje, ˇze tato zaˇr´ızen´ı nemus´ı b´ yt vybavena podporou FULL speed, coˇz producent˚ um elektroniky umoˇzn ˇuje vytv´aˇret mnohem levnˇejˇs´ı rozhran´ı v aplikac´ıch, kde to poˇzadavky na pˇrenos dat nepotˇrebuj´ı. Pˇren´aˇsen´e napˇet’ov´e u ´rovnˇe jsou ’pˇribliˇznˇe’ TTL. Logick´a jedniˇcka je 2,8V se zat´ıˇzen´ım 15kΩ proti zemi, logick´a nula je cca 0,3V se zat´ıˇzen´ım 1, 5kΩ proti nap´ajen´ı. Pokud chceme pˇren´aˇset data maxim´aln´ı pˇrenosovou rychlost´ı nemˇela by d´elka USB kabelu pˇres´ahnout 5m a z´aroveˇ n mus´ı b´ yt kabel st´ınˇen´ y a kroucen´ y. Minim´aln´ı diferenˇcn´ı vstupn´ı napˇet´ı pˇrij´ımaˇce USB je 200mV a to dokonce pˇri
12
Obr´azek 1.1: Sch´ema zapojen´ı pro pˇrenosovou rychlost typu LOW SPEED
Obr´azek 1.2: Sch´ema zapojen´ı pro pˇrenosovou rychlost typu FULL SPEED
13
souhlasn´em ruˇsiv´em napˇet´ı aˇz 2,6V. Vˇsechna USB zaˇr´ızen´ı mus´ı b´ yt vybavena zakonˇcovac´ımi rezistory dle Obr´azku 1.1 a Obr´azku 1.2. Nap´ajen´ı USB zaˇr´ızen´ı je realizov´ano pˇr´ımo ze sbˇernice USB nebo pomoc´ı vlastn´ıho samostatn´eho nap´ajec´ıho zdroje. V pˇr´ıpadˇe nap´ajen´ı ze sbˇernice USB nesm´ı celkov´ y maxim´aln´ı odeb´ıran´ y proud pˇres´ahnout hodnotu 100mA. V pˇr´ıpadˇe, ˇze je USB zaˇr´ızen´ı vybaveno vlastn´ım zdrojem, je ˇcinnost tohoto zdroje ˇr´ızena sbˇernic´ı USB (zapnut´ı, vypnut´ı, usnut´ı). V pˇr´ıpadˇe, ˇze je zaˇr´ızen´ı v tzv. stand by m´odu, nesm´ı proudov´ y odbˇer ze sbˇernice USB pˇres´ahnout hodnotu 500µA.
1.3
Moˇ znosti a v´ yhody USB
• Jednoduch´ y protokol • Podpora sdruˇzen´ ych zaˇr´ızen´ı • Souˇcasn´a podpora nˇekolika zaˇr´ızen´ı pˇripojen´ ych na spoleˇcnou USB sbˇernici • Podpora synchronn´ıch i asynchronn´ıch pˇrenos˚ u • Dynamicky pˇripojiteln´e a pˇrekonfigurovateln´e periferie • Autoidentifikace perif´eri´ı, autokonfigurace ovladaˇce • Velmi mal´ y overhead2 protokolu (vysok´a efektivita) • Zpracov´an´ı chyb je souˇca´st´ı protokolu ˇ ızen´ı pˇrenosu je souˇc´ast´ı protokolu • R´ • Moˇznost identifikace chyb pˇri pˇrenosu a jejich n´asledn´a korekce
1.4
Pˇ renos dat
Data na sbˇernic´ıch typu USB jsou vys´ıl´any napˇred bitem LSB3 a skl´adaj´ı se z n´asleduj´ıc´ıch pol´ı: • SYNC Vˇsechny pakety mus´ı zaˇc´ınat polem typu SYNC. Pole je dlouh´e 8bit˚ u pro LOW SPEED a 32bit˚ u pro FULL SPEED pˇrenosy a je v´ yhradnˇe urˇceno pro 2
pˇridan´ y datov´ y tok kter´ y protokol potˇrebuje pro svou vlastn´ı reˇzii - mal´ y overhead vyznaˇcuje vysokou efektivitu, tj. velmi n´ızkou reˇzii protokolu 3 least significant bit; oznaˇcuje bit v ˇretˇezci s nejniˇzˇs´ı v´ahou
14
synchronizaci hodin mezi pˇrij´ımaˇcem a vys´ılaˇcem. Posledn´ı dva bity tohoto pole oznaˇcuj´ı zaˇc´atek pole PID • PID PID oznaˇcuje ID paketu. Toto pole je pouˇzito pro identifikaci typu paketu, kter´ y je pr´avˇe odes´ılan´ y. Tabulka 1.2 obsahuje moˇzn´e hodnoty. Pˇrestoˇze pole PID obsahuje 4 bity pˇren´aˇsen´e informace, doch´az´ı pˇri pˇrenosu k zopakov´an´ı pro odstranˇen´ı moˇzn´ ych chyb, takˇze celkov´e d´elka tohoto pole je 8 bit˚ u. • ADDR Nese c´ılovou adresu pˇr´ıjemce paketu. Pole je celkem 7 bit˚ u dlouh´e a tak umoˇzn ˇuje adresovat aˇz 127 zaˇr´ızen´ı. Adresa hodnoty 0 nen´ı standardnˇe povolena a m´a speci´aln´ı charakter - na tuto adresu mus´ı odpov´ıdat vˇsechna zaˇr´ızen´ı, kter´a doposud nemaj´ı pˇriˇrazena ˇza´dnou adresu. • ENDP Nese adresu endpointu. Pole je celkem 4 bity dlouh´e a umoˇzn ˇuje tak aˇz 16 endpoint˚ u • CRC Vˇsechny token pakety maj´ı CRC4 5ti bitov´e zat´ımco data pakety maj´ı toto pole 16 bit˚ u dlouh´e • EOP Oznaˇcuje konec paketu Pro komunikaci pomoc´ı rozhran´ı USB m˚ uˇzeme pracovat se tˇremi typy paket˚ u token, datov´ y paket a handshake paket. Zaˇr´ızen´ı, kter´e chce vys´ılat data vyˇsle paket typu token, kter´ y obsahuje popis, smˇer v´ ymˇeny dat, adresu USB zaˇr´ızen´ı a adresu pˇr´ıjemce (endpoint number). Po tokenu n´asleduje datov´ y paket, kter´ y mus´ı b´ yt v pˇr´ıpadˇe pˇrenosu nulov´e informace pr´azdn´ y a pˇr´ıjem takov´eho datov´eho paketu potvrd´ı zpˇet odes´ılateli handshake paketem, kter´ ym jednoduˇse informuje o u ´spˇeˇsn´em pˇrenosu informace. Pakety typu token Jsou celkem tˇri typy token˚ u: • Pˇ r´ıchoz´ı Informuje USB zaˇr´ızen´ı, ˇze HOST chce pˇrij´ımat informaci 4
cyclic redudancy check; je funkce kter´a ze vstupn´ıch dat zcela libolovn´e d´elky produkuje v´ ystupn´ı hodnotu o pˇresnˇe stanoven´e d´elce; velmi ˇcasto se CRC vyuˇz´ıv´a pro funkce kontroln´ıho souˇctu
15
Tabulka 1.2: Poloˇzky pole typu PID Skupina
Hodnota PID
Identifik´ ator paketu
Token
0001 1001 0101 1101 0011 1011 0111 1111 0010 1010 1110 0110 1100 1100 1000 0100
Odchoz´ı token Pˇr´ıchoz´ı token SOF token SETUPtoken Data 0 Data 1 Data 2 MDATA ACK handshake NAK handshake STALL handshake NYET (zat´ım bez odpovˇedi) Preambule Chyba pˇri pˇrenosu Split Ping
Data
Handshake
Speci´aln´ı
• Odchoz´ı Informuje USB zaˇr´ızen´ı, ˇze HOST chce odes´ılat informaci • Setup Pouˇz´ıv´a se pro kontrolu zapoˇcet´ı pˇrenos˚ u. Vˇsechny token pakety mus´ı splˇ novat form´at uveden´ y v tabulce 1.3.
Tabulka 1.3: Form´at paketu typu token SYNC PID ADDR ENDP CRC5 EOP Pakety typu data Jsou definov´any celkem dva typy datov´ ych paket˚ u a kaˇzd´ y z nich je schopen pˇren´est aˇz 1024byt˚ u dat: • Data 0 • Data 1 • Data 2 (definov´an pouze pro HIGH SPEED)
16
• MDATA (definov´an pouze pro HIGH SPEED) Data pakety maj´ı form´at dle tabulky 1.4.
Tabulka 1.4: Form´at paketu typu data SYNC PID DATA
CRC16 EOP
Pakety typu handshake Jsou definov´any celkem tˇri typy paket˚ u typu handshake, kter´e obsahuj´ı pouze informaci o PID: • ACK Potvrzen´ı o tom, ˇze paket byl u ´spˇeˇsnˇe pˇrijat • NAK Indikuje doˇcasnou nedostupnost pro pˇr´ıjem a vys´ıl´an´ı dat. Souˇcasnˇe se pouˇz´ıv´a pro pˇreruˇsen´ı - pro indikaci, ˇze nejsou k dispozici ˇza´dn´a data pro pˇrenos • STALL Zaˇr´ızen´ı indikuje, ˇze se nach´az´ı ve stavu, kdy je zapotˇreb´ı z´asah ze strany HOSTu. Handshake pakety maj´ı form´at dle tabulky 1.5.
Tabulka 1.5: Form´at paketu typu handshake SYNC PID EOP Pakety typu SOF - Start of Frame Packets Pakety typu SOF obsahuj´ı 11bitov´e ˇc´ıslo r´amce, kter´e je odesl´ano HOSTem kaˇzdou: • 1ms ± 500ns pro sbˇernici typu FULL SPEED • 125µs ± 0, 0625µs pro sbˇernici typu HIGH SPEED SOF pakety maj´ı form´at dle tabulky 1.6:
Tabulka 1.6: Form´at paketu typu SOF ˇ ´ISLO RAMCE ´ SYNC PID C CRC5 EOP Bav´ıme-li se u USB o pˇrenosu dat, je nutno zd˚ uraznit, ˇze jedna ze zvl´aˇstnost´ı USB
17
je moˇznost vyuˇzit´ı dvou pˇrenosov´ ych model˚ u: Model typu STREAM, kter´ y vyuˇz´ıv´a izochronn´ı (bezform´atov´ y) pˇrenos dat v re´aln´em ˇcase, z jehoˇz n´azvu vypl´ yv´a, ˇze nem´a pevnˇe definovanou strukturu. ´ Model typu ZPRAVA, vyuˇz´ıvaj´ıc´ı asynchronn´ı pˇrenos - tento model m´a pˇresnˇe definovanou strukturu: a) ˇridic´ı zpr´ava pro konfiguraci aktivovan´eho zaˇr´ızen´ı; b) zpr´ava obsahuj´ıc´ı vˇetˇs´ı mnoˇzstv´ı dat; c) zpr´ava s pˇreruˇsen´ım (napˇr. zmˇena polohy myˇsi). Pro k´odov´an´ı je pouˇzit k´od NRZI (non-return-to-zero Inverted; typ modulace kter´a mapuje log 1 pˇri zmˇenˇe stavu, log 0 pro st´avaj´ıc´ı stav; stejn´ y typ modulace se vyuˇz´ıv´a napˇr. pro z´apis na magnetickou p´asku) a zabezpeˇcen´ı pˇrenosu dat je zajiˇstˇeno pouˇzit´ım mechanismu CRC (cyclic redudancy check; je funkce kter´a ze vstupn´ıch dat zcela libolovn´e d´elky produkuje v´ ystupn´ı hodnotu o pˇresnˇe stanoven´e d´elce; velmi ˇcasto se CRC vyuˇz´ıv´a pro funkce kontroln´ıho souˇctu)
1.5
USB deskriptory
Vˇsechna USB zaˇr´ızen´ı maj´ı svou hierarchii popisovaˇc˚ u (deskriptor˚ u), kter´e popisuj´ı informace o zaˇr´ızen´ı jako je napˇr´ıklad n´azev zaˇr´ızen´ı, n´azev v´ yrobce, jak´a verze USB je podporov´ana, jak´ ym zp˚ usobem lze zaˇr´ızen´ı konfigurovat, atd. . Nejˇcastˇejˇs´ımi typy USB deskriptor˚ u jsou: • Device deskriptor • Configuration deskriptor • Interface deskriptor • Endpoint deskriptor • String deskriptor Device deskriptor Device deskriptor (neboli popisovaˇc zaˇr´ızen´ı) je reprezentativn´ım znakem USB zaˇr´ızen´ı a pr´avˇe kv˚ uli tomu m˚ uˇze m´ıt USB zaˇr´ızen´ı pouze jeden device deskriptor. Definuje z´akladn´ı informace o zaˇr´ızen´ı jak´ ymi jsou napˇr´ıklad poporovan´a verze USB, maxim´aln´ı velikost paketu, n´azev produktu a oznaˇcen´ı v´ yrobce, poˇcet moˇzn´ ych konfigurac´ı a podobnˇe. Form´at deskriptoru typu device je naznaˇcen v tabulce 1.7.
18
19
Pole
bLength bDescriptorType bcdUSB
bDeviceClass bDeviceSubClass bDeviceProtocol bMaxPacketSize
idVendor idProduct bcdDevice iManufacturer iProduct iSerialNumber bNumConfigurations
Offset
0 1 2
4 5 6 7
8 10 12 14 15 16 17
2 2 2 1 1 1 1
1 1 1 1
1 1 2
ID ID BCD index index index ˇc´ıslo
tˇr´ıda tˇr´ıda protokol ˇc´ıslo
ˇc´ıslo konstanta BCD
Velikost Hodnota
Tabulka 1.7: Form´at deskriptoru typu device
velikost deskriptoru v bytech (18) deskriptor zaˇr´ızen´ı (0x01) oznaˇcen´ı USB specifikace ve kter´e je zaˇr´ızen´ı vyrobeno (0x0100 USB 1.0, 0x0110 USB 1.1, 0x0200 USB 2.0) Class Code (k´od tˇr´ıdy) Subclass Code (k´od sub-tˇr´ıdy) k´od pouˇzit´eho protokolu maxim´aln´ı velikost paketu pro nulov´ y endpoint (moˇzn´e hodnoty jsou 8, 16, 32, 64) ID v´ yrobce ID v´ yrobku oznaˇcen´ı verze v´ yrobku index Manufacturer String deskritporu index Product String deskriptoru index Serial Number String deskriptoru poˇcet moˇzn´ ych konfigurac´ı
Popis
Obr´azek 1.3: Typy konektor˚ u typu USB
Configuration deskriptor Configuration deskriptor (neboli popisovaˇc konfigurace) specifikuje konfiguraci USB zaˇr´ızen´ı, kter´e m˚ uˇze m´ıt nˇekolik r˚ uzn´ ych v´ yskyt˚ u. Standardn´ı USB zaˇr´ızen´ı, se kter´ ymi se setk´av´ame napˇr. na trhu, obsahuj´ı vˇetˇsinou pouze jednu konfiguraci. Popisovaˇc konfigurace specifikuje, jak je zaˇr´ızen´ı nap´ajeno, jak´a je jeho maxim´aln´ı spotˇreba a poˇcet rozhran´ı, kter´e obsahuje. USB zaˇr´ızen´ı m˚ uˇze rozliˇsn´e konfigurace vyuˇz´ıvat napˇr. pro rozliˇsen´ı konfigurace v pˇr´ıpadˇe, ˇze je zaˇr´ızen´ı zapnuto pˇres spoleˇcnou sbˇernici nebo naopak manu´alnˇe. Jakmile jsou vˇsechny konfigurace prozkoum´any host zaˇr´ızen´ım, informace se zpracuje a odeˇsle se SetConfiguration pˇr´ıkaz s nenulovou hodnotou, kter´a se shoduje s hodnotou bConfigurationValue, kter´a reprezentuje pr´avˇe jednu konfiguraci zaˇr´ızen´ı. Form´at deskriptoru typu device je naznaˇcen v tabulce 1.8. Interface deskriptor Interface deskriptor (neboli popisovaˇc rozhran´ı) m˚ uˇzeme zahl´ednout jako hlaviˇcku skupiny endpoint˚ u, kter´e vykon´avaj´ı stejnou funkci v r´amci jednoho zaˇr´ızen´ı. Form´at deskriptoru typu interface je naznaˇcen v tabulce 1.9. Endpoint deskriptor Endpoint deskriptor (neboli popisovaˇc koncov´ ych bod˚ u) slouˇz´ı k popisu endpoint˚ u jin´ ych, neˇz je endpoint 0, kter´ y je vˇzdy povaˇzov´an za kontroln´ı endpoint a je konfigurov´an dˇr´ıve, neˇz jsou vyˇza´d´any popisovaˇce. String deskriptor String deskriptor (neboli popisovaˇc ˇretˇezce) je nepovinn´ y popisovaˇc a poskytuje textovˇe srozumiteln´e informace pro ˇclovˇeka.
20
21
bLength bDescriptorType wTotalLength bNumInterfaces bConfigurationValue iConfiguration bmAttributes bMaxPower
0 1 2 4 5 6 7 8
Pole
bLength bDescriptorType bInterfaceNumber bAlternateSetting bNumEndpoints bInterfaceClass bInterfaceSubClass bInterfaceProtocol iInterface
Offset
0 1 2 3 4 5 6 7 a´
1 1 2 1 1 1 1 1
Velikost
1 1 1 1 1 1 1 1 1
ˇc´ıslo konstanta ˇc´ıslo ˇc´ıslo ˇc´ıslo tˇr´ıda tˇr´ıda protokol index
Popis
velikost deskriptoru v bytech (9) deskriptor konfigurace (0x02) celkov´ y objem navr´acen´ ych dat v bytech poˇcet rozhan´ı identifik´ator t´eto konfigurace deskriptor t´eto konfigurace D6=vlastn´ı zdroj, D5=vzd´alen´e probuzen´ı maxim´aln´ı spotˇreba energie
Popis
velikost deskriptoru v bytech (9) deskriptor rozhran´ı (0x04) oznaˇcen´ı rozhran´ı hodnota pro pouˇzit´ı n´ahradn´ıho nastaven´ı poˇcet endpoint˚ u pouˇzit´ ych v r´amci rouhran´ı k´od tˇr´ıdy k´od sub-tˇr´ıdy k´od protokolu index popisovaˇce rozhran´ı
ˇc´ıslo konstanta ˇc´ıslo ˇc´ıslo ˇc´ıslo index bitmap ˇc´ıslo x 2mA
Hodnota
Velikost Hodnota
Tabulka 1.9: Form´at deskriptoru typu interface
Pole
Offset
Tabulka 1.8: Form´at deskriptoru typu configuration
2 2.1
RS-485 Obecn´ y popis
Pokud potˇrebujeme pˇren´aˇset mal´e bloky informac´ı na dlouh´e vzd´alenosti, RS-485 je ˇ anky takov´e s´ıtˇe mohou b´ pro n´as to spr´avn´e ˇreˇsen´ı. Cl´ yt poˇc´ıtaˇce, mikrokontrol´ery nebo jak´akoliv jin´a zaˇr´ızen´ı, kter´a umoˇzn ˇuj´ı asynchronn´ı s´eriov´ y pˇrenos. Pokud porovn´ame RS-485 se standardem ethernet, nebo jin´ ymi s´ıt’ov´ ymi standardy, dojdeme k z´avˇeru, ˇze n´aroˇcnost RS-485 protokolu je mnohem menˇs´ı a ˇze jsme schopni vybudovat RS-485 s mnohem niˇzˇs´ımi poˇrizovac´ımi n´aklady. Standard RS-485 je dostateˇcnˇe pruˇzn´ y, aby n´am poskytl v´ ybˇer z r˚ uzn´ ych druh˚ u vys´ılaˇc˚ u, pˇrij´ımaˇc˚ u a dalˇs´ıch komponent (napˇr. v z´avislosti na d´elce kabelu, pˇrenosov´e rychlosti, poˇctu pˇripojen´ ych zaˇr´ızen´ı a nebo na poˇzadavku u ´spory energie). R˚ uzn´ı v´ yrobci nab´ızej´ı RS-485 vys´ılaˇce a pˇrij´ımaˇce v nepˇrebern´em mnoˇzstv´ı variac´ı a s podporou r˚ uzn´ ych funkc´ı.
2.2
RS-485 pod lupou
Interface ˇsiroce zn´am´ y jako RS-485 je elektrick´a specifikace pro syst´emy typu multipoint, kter´e vyuˇz´ıvaj´ı nevyv´aˇzen´e pˇrenosov´e linky. Protokol RS-485 je velice podobn´ y protokolu RS-422, ale s t´ım rozd´ılem, ˇze RS-422 podporuje pouze jeden vys´ılaˇc a v´ıce pˇrij´ımaˇc˚ u, kdeˇzto RS-485 podporuje v´ıce vys´ılaˇc˚ u a v´ıce pˇrij´ımaˇc˚ u na jedn´e pˇrenosov´e lince. Specifikace RS-485 (TIA/EIA-485-A) urˇcuje pˇresn´e elektrick´e vlastnosti vysl´ıaˇc˚ u a pˇrij´ımaˇc˚ u. Specifikace zmiˇ nuje kapitoly vztaˇzen´e ke kabel´aˇzi a terminaci pˇrenosov´ ych linek - nespecifikuje vˇsak zapojen´ı konektor˚ u nebo softwarov´ y protokol, jako tomu je napˇr´ıklad u RS-232.
S´ıt’ RS-485 m˚ uˇze m´ıt aˇz 32 pˇripojen´ ych zaˇr´ızen´ı, kde kaˇzd´e zaˇr´ızen´ı reprezentuje zat´ıˇzen´ı o vstupn´ı impedanci 12kΩ. V pˇr´ıpadˇe, ˇze v s´ıti vyuˇzijeme vysokoimpedanˇcn´ı zaˇr´ızen´ı, m˚ uˇze m´ıt takov´a s´ıt’ aˇz 256 prvk˚ u na jeden segment. Pˇrenosov´a trasa ve specifikaci RS-485 m˚ uˇze b´ yt dlouh´a aˇz 1219 metr˚ u a nebo je schopn´a pˇren´aˇset data rychlost´ı aˇz 10Mbps (tyto podm´ınky nemohou b´ yt splnˇeny souˇcasnˇe). Pˇri pˇrenosov´e rychlosti 90kbit/s m˚ uˇze b´ yt pˇrenosov´a trasa dlouh´a aˇz 1219 metr˚ u; pˇri 1Mbit/s aˇz 121 metr˚ u; a pˇri 10Mbit/s se maxim´aln´ı d´elka pˇrenosov´e trasy zkracuje na neuvˇeˇriteln´ ych 15 metr˚ u. V pˇr´ıpadˇe, ˇze budeme m´ıt aplikaci, kter´a vyˇzaduje v´ıce pˇripojen´ ych zaˇr´ızen´ı nebo pˇrenosy dat na delˇs´ı vzd´alenosti, lze na RS-485 pˇrenosovou trasu nainstalovat opakovaˇce, kter´e budou slouˇzit k regeneraci pˇren´aˇsen´ ych sign´al˚ u. Vzhledem k faktu, ˇze specifikace RS-485 nedefinuje pˇrenosov´ y
22
Obr´azek 2.1: Vliv interference na RS-485
protokol, drtiv´a vˇetˇsina RS-485 s´ıt´ı vyuˇz´ıv´a zn´am´e asynchronn´ı protokoly na b´azi UART, kter´e jsou podporov´any ˇradou poˇc´ıtaˇc˚ u a jin´ ych zaˇr´ızen´ı. V tomto pˇr´ıpadˇe se vyslan´e slovo skl´ad´a ze start bitu n´asledovan´eho data bitem, volitelnˇe paritn´ım bitem a na z´avˇer stop bitem.
Oproti RS-232 je RS-485 mnohem l´epe imunn´ı v˚ uˇci ˇsum˚ um a ruˇsen´ım, kter´a mohou r˚ uzn´ ymi zp˚ usoby interferovat na pˇrenosov´ ych tras´ach. RS-485 pˇri pˇrenosu nevztahuje sign´aly v˚ uˇci tzv. sign´alov´e zemi, ale sign´aly jsou plovouc´ı a jak´akoliv data jsou odesl´ana jak po sign´alov´e trase Sig+ tak i Sig-. Pˇrij´ımaˇc pak porovn´av´a rozd´ıl mezi obˇema pˇren´aˇsen´ ymi sign´aly (odtud diferenˇcn´ı) nam´ısto toho, aby porovn´aval absolutn´ı hodnotu sign´alu v˚ uˇci sign´alov´e zemi jako tomu je u RS-232. Tento princip se v praxi velice dobˇre osvˇedˇcil a prakticky eliminuje vznik tzv. zemn´ıch smyˇcek, kter´e jsou ˇcasto velk´ ym zdrojem probl´em˚ u na pˇrenosov´ ych tras´ach. Nejlepˇs´ıch v´ ysledk˚ u pˇri pˇrenosech se pak dosahuje pokud sign´alov´e vodiˇce Sig+ a Sig- jsou v tzv. ”twisted pair” - kroucen´em p´aru. Jak je naznaˇceno na Obr´azku 2.1, ˇsum je generov´an magnetick´ ymi poli z okoln´ıho prostˇred´ı datov´eho vodiˇce. Obr´azek zobrazuje siloˇca´ry takov´eho magnetick´eho pole a z´aroveˇ n ˇsumov´ y proud, kter´ y se d´ıky tomuto magnetick´emu poli do datov´eho vodiˇce indukuje. Pˇri pouˇzit´ı standardn´ıho - rovn´eho - vodiˇce se veˇsker´ y ˇsum indukuje se stejnou polaritou a vznik´a tak d´ıky ˇsumu neˇza´douc´ı efekt. V pˇr´ıpadˇe, ˇze pouˇzijeme twisted pair vodiˇc, indukuje se ˇsum do vodiˇc˚ u s opaˇcnou polaritou a pˇri diferenˇcn´ım zp˚ usobu pˇrenosu dat se t´emˇeˇr
23
Obr´azek 2.2: Topologie RS-485
vyruˇs´ı tak, ˇze v´ ysledn´ y ˇsum na komunikaˇcn´ım veden´ı dosahuje velmi n´ızk´ ych hodnot.
2.3
Topologie
Topologie s´ıtˇe RS-485 je d˚ uvodem, proˇc je v dneˇsn´ı dobˇe RS-485 specifikace tak obl´ıben´ ym a ˇsiroce vyuˇz´ıvan´ ym prvkem. Tato specifikace umoˇzn ˇuje jako jedin´a ze vˇsech pˇripojit na jednu s´ıt’ovou infrastrukturu hned nˇekolik vys´ılaˇc˚ u a pˇrij´ımaˇc˚ u. Jak jiˇz bylo zm´ınˇeno, dle vstupn´ı impedance pˇripojen´ ych zaˇr´ızen´ı m˚ uˇzeme pˇripojit maxim´alnˇe 32 resp. 256 zaˇr´ızen´ı a s pouˇzit´ım RS-485 zesilovaˇc˚ u m˚ uˇzeme rozsah takto navrhovan´e s´ıtˇe zv´ yˇsit aˇz na nˇekolik tis´ıc pˇripojen´ ych n´od˚ u. Dalˇs´ı v´ yhodou je nepochybnˇe velmi jednoduch´a softwarov´a implementace (na rozd´ıl od RS-232) a proto je toto ˇreˇsen´ı hojnˇe vyhled´av´ano. Na Obr´azku 2.2 je zobrazena vˇseobecn´a topologie s´ıtˇe RS-485 - N n´od˚ u je pˇripojeno do s´ıtˇe typu multipoint. Pro delˇs´ı vzd´alenosti a pˇri poˇzadavku na vyˇsˇs´ı rychlosti pˇrenosu dat jsou ukonˇcovac´ı rezistory o jmenovit´e hodnotˇe 100Ω (termin´atory) nezbytnou podm´ınkou na obou konc´ıch pˇrenosov´e soustavy tak, aby se eliminovaly vˇsechny pˇr´ıpadn´e odrazy. S´ıt’ typu RS-485 mus´ı b´ yt navrˇzena jako pr˚ ubˇeˇzn´a linka s odboˇckami - nen´ı moˇzn´e navrhovat s´ıt’ ve hvˇezdicov´e topologii z d˚ uvodu nemoˇznosti proveden´ı ˇr´adn´e terminace, d´ıky ˇcem˚ uˇz by doˇslo k razantn´ımu sn´ıˇzen´ı kvality pˇren´aˇsen´eho sign´alu. A jak RS-485 funguje ve skuteˇcnosti? Standardnˇe se vˇsechny vys´ılaˇce, kter´e jsou pˇripojeny na sbˇernici, nach´azej´ı ve vysokoimpedanˇcn´ım stavu. Na nejvyˇsˇs´ı vrstvˇe protokolu je jeden z n´od˚ u definov´an jako MASTER a odes´ıl´a dotazy nebo pˇr´ıkazy ostatn´ım u ´ˇcastn´ık˚ um pˇrenosu po RS-485 sbˇernici. Vˇsechny ostatn´ı n´ody pˇrijmou tato data a na z´akladˇe jejich obsahu mohou pˇr´ıjemci odes´ılateli odpovˇedˇet.
24
V taktov´emto pˇr´ıpadˇe m˚ uˇze b´ yt ˇs´ıˇrka pˇren´aˇsen´eho p´asma vyuˇzita aˇz na 100 procent. Existuje i jin´ y zp˚ usob implementace RS-485 s´ıtˇe (kter´ y je velmi podobn´ y funkci s´ıtˇe typu Ethernet), kdy m˚ uˇze jak´ ykoliv z n´odu v libovoln´ y ˇcas zapoˇc´ıt odes´ıl´an´ı dat na sbˇernici. V tomto pˇr´ıpadˇe je tˇreba implementovat detekci a korekci chyb (na nejvyˇsˇs´ı vrstvˇe protokolu) a z´aroveˇ n je tˇreba poˇc´ıtat s niˇzˇs´ı efektivitou cca pouze 37 procent jmenovit´e pˇrenosov´e rychlosti. U RS-485 nen´ı vytvoˇren speci´aln´ı poˇzadavek na vyp´ın´an´ı a zap´ın´an´ı vys´ılaˇce na sbˇernici, protoˇze RS-485 vys´ılaˇce jsou vyr´abˇeny tak, ˇze se automaticky po odesl´an´ı dat (cca mikrosekundy) vrac´ı do vysokoimpedanˇcn´ıho stavu. Z t´eto skuteˇcnosti rovnˇeˇz vych´az´ı fakt, ˇze nen´ı nutn´e prov´adˇet ˇza´dn´e prodlevy mezi datov´ ymi pakety, kter´e jsou po RS-485 sbˇernici pˇren´aˇseny. Z hlediska v´ yˇse uveden´ ych poznatk˚ u lze pˇredpokl´adat, ˇze RS-485 standard bude implementov´an jeˇstˇe mnoho let do budoucnosti.
25
3
FT232BM
3.1
Obecn´ e vlastnosti
• Jednoduch´ y ˇcip pro pˇrevod rozhan´ı USB na asynchronn´ı s´eriov´ y datov´ y pˇrenos • Pln´a podpora funkce handshaking1 • Nap´ajec´ı napˇet´ı od 4,35 do 5,25 V • Pˇrenosov´a rychlost 300kbps aˇz 3Mbps pro RS-485 rozhran´ı • Buffer 384 byt˚ u pro RX, 128 byt˚ u pro TX • Automatick´a kontrola vys´ılac´ıho bufferu pro RS-485 • Podpora funkce USB Suspend • Integrovan´ y regul´ator 3,3V pro zaˇr´ızen´ı vyˇzaduj´ıc´ı u ´roveˇ n USB nap´ajen´ı • Podpora USB 1.1 a USB 2.0 • USB VID, PID, S/N, a popis produktu uloˇzeny v extern´ı EEPROM pamˇeti • Podpora funkce virtu´aln´ıho COM • Podpora pro D2XX ovladaˇce pro prostˇred´ı Win a Linux • Kompatibilita se standardy UHCI/ OHCI/ EHCI • USB bulk pro izochronn´ı pˇrenos dat • Integrovan´ y obvod Power-On-Reset • Integrovan´ y f´azov´ y z´avˇes pro generov´an´ı hodinov´eho sign´alu v rozsahu 648 MHz • Spotˇreba 25mA pˇri standardn´ıch operac´ıch
3.2
Blokov´ y diagram
Blokov´ y diagram viz pˇr´ıloha A. 1
automatick´ y proces, kter´ y m´ a za u ´kol nastavit na obou stran´ach pˇrenosov´eho veden´ı stejn´e komunikaˇcn´ı parametry
26
3.3
Popis jednotliv´ ych funkˇ cn´ıch blok˚ u
3,3V LDO regul´ ator Generuje referenˇcn´ı napˇet´ı o hodnotˇe 3,3V, kter´e slouˇz´ı k nap´ajen´ı USB vys´ılaˇce a dalˇs´ıch komponent pro pr´aci s USB sbˇernic´ı. Tento prvek vyˇzaduje pˇripojen´ı extern´ıho kapacitoru na pin 3V3OUT integrovan´eho obvodu. Z´aroveˇ n tento blok poskytuje nap´ajec´ı napˇet´ı 3,3V na pin RSTOUT. Hlavn´ı funkc´ı tohoto bloku nen´ı nap´ajen´ı ostatn´ıch zaˇr´ızen´ı, ale pˇredevˇs´ım nap´ajen´ı bloku USB vys´ılaˇce a bloku gener´atoru resetu. Zaˇr´ızen´ı, kter´a potˇrebuj´ı nap´ajen´ı o jmenovit´e hodnotˇe 3,3V mohou b´ yt pˇripojena rovnˇeˇz na pin 3V3OUT, ovˇsem pouze za pˇredpokladu, ˇze jmenovit´ y odbˇer takov´ehoto zaˇr´ızen´ı nepˇrekroˇc´ı hodnotu 5mA. USB vys´ılaˇ c Poskytuje USB konektivitu - vysokorychlostn´ı USB rozhran´ı standardu 1.1/2.0. Vys´ılaˇce slouˇz´ı k odes´ıl´an´ı dat a kontrole signalizace, zat´ımco diferenˇcn´ı pˇrij´ımaˇc a dva jednoduch´e pˇrij´ımaˇce poskytuj´ı pˇr´ıchoz´ı USB data, SEO a detekci sign´alu USB reset. USB DPLL Tento blok se zavˇes´ı v pˇr´ıpadˇe pˇr´ıchoz´ı NRZI USB komunikace a poskytuje separ´atnˇe hodinov´ y a datov´ y sign´al do bloku ovladaˇce s´eriov´eho rozhran´ı. 6MHz oscil´ ator Generuje referenˇcn´ı hodinov´ y sign´al o jmenovit´e hodnotˇe 6 MHz za pomoc´ı extern´ıho krystalu nebo keramick´eho rezon´atoru a distribuuje tento sign´al do bloku n´asobiˇce. N´ asobiˇ c hodin x8 Pˇrij´ım´a vstupn´ı sign´al z bloku oscil´atoru a generuje referenˇcn´ı hodinov´ y sign´al o jmenovit´e hodnotˇe 6 MHz pro blok ovladaˇce s´eriov´eho rozhran´ı, ˇr´ızen´ı USB protokolu, a UART fifo kontroler. D´ale tento blok generuje referenˇcn´ı hodinov´ y sign´al o jmenovit´e hodnotˇe 48 MHz pro blok USB DPLL a gener´ator pˇrenosov´e rychlosti. Ovladaˇ c s´ eriov´ eho rozhran´ı Prov´ad´ı konverzi USB dat ze s´eriov´eho na paraleln´ı a obr´acenˇe z paraleln´ıho na s´eriov´e rozhran´ı. Podle USB 2.0 specifikace prov´ad´ı tento blok rovnˇeˇz bitovou stabilizaci, kontrolu USB data streamu a rovnˇeˇz prov´ad´ı kontrolu CRC5, CRC16.
27
Du´ aln´ı vys´ılac´ı buffer Data, kter´a pˇrich´az´ı z USB endpointu a jsou urˇcena pro vys´ıl´an´ı, jsou ukl´ad´ana v tomto bloku a n´aslednˇe jsou z tohoto bloku sekvenˇcnˇe pˇren´aˇsena do bloku UART za kontroly bloku UART FIFO kontroleru.
Obr´azek 3.1: Pin-Out IO FT232BM - fyzick´ y
Du´ aln´ı pˇ rij´ımac´ı buffer Data, kter´a pˇrich´az´ı z UART bloku a jsou urˇcena k pˇr´ıjmu, jsou ukl´ad´ana v tomto bloku a n´aslednˇe jsou z tohoto bloku sekvenˇcnˇe pˇren´aˇsena do ovladaˇce s´eriov´eho rozhran´ı. UART FIFO kontroler M´a na starosti pˇrenos dat mezi pˇrij´ımac´ımi a vys´ılac´ımi buffery na jedn´e stranˇe a UART vys´ılac´ımi a pˇrij´ımac´ımi registry na stranˇe druh´e. UART UART blok obstar´av´a asynchron´ı 7/8 bitovou paralelnˇe-s´eriovou nebo s´eriovoparaleln´ı konverzi dat na rozhran´ı typu RS232, RS422, RS485. Kontroln´ı sign´aly podporovan´e blokem UART jsou RTS, CTS, DSR, DTR, DCD a RI. Blok UART poskytuje sign´al ˇr´ızen´ı pˇr´ıstupu k m´ediu (TXDEN) pro umoˇznˇen´ı efektivn´ı komunikace na rozhran´ı RS-485.
28
Gener´ ator pˇ renosov´ e rychlosti Vyuˇz´ıv´a referenˇcn´ıho hodinov´eho sign´alu o jmenovit´e hodnotˇe 48 MHz. Skl´ad´a se ze ˇctrn´acti nastavovac´ıch a tˇr´ı registraˇcn´ıch bit˚ u, kter´e umoˇzn ˇuj´ı tomotu bloku velmi jemn´e nastaven´ı pˇrenosov´e rychlosti pro blok UART v rozsahu od 183 do 3 mili´on˚ u baud˚ u.
Obr´azek 3.2: Pin-Out IO FT232BM - schematick´ y
Gener´ ator resetu Pokskytuje funkci resetu pˇri zapnut´ı integrovan´eho obvodu. Z´aroveˇ n m´a tento blok vstup RESET a v´ ystup RSTOUT, coˇz tomuto integrovan´emu obvodu umoˇzn ˇuje resetovat dalˇs´ı pˇripojen´a zaˇr´ızen´ı respektive jin´ ymi zaˇr´ızen´ımi resetovat integrovan´ y obvod FT232BM. V pˇr´ıpadˇe, ˇze prob´ıh´a proces resetu, bude se pin RSTOUT nach´azet ve stavu log0. V pˇr´ıpadˇe, ˇze nen´ı vyˇzadov´ana funkce resetu zaˇr´ızen´ı FT232BM. m˚ uˇze b´ yt vstupn´ı pin RESET propojen s pinem VCC nap´ajen´ı. EEPROM interface Extern´ı pamˇet’ EEPROM typ˚ u 93C46, 93C56, 93C66 m˚ uˇze b´ yt pouˇzita pro nastaven´ı speci´aln´ıch identifik´ator˚ u USB rozhran´ı, jako jsou USB VID, PID, s´eriov´e
29
ˇc´ıslo, popis produktu a power deskriptoru. Dalˇs´ı vlastnosti, kter´e pˇrin´aˇs´ı pamˇet’ EEPROM obsahuje napˇr. moˇznost vzd´alen´eho probuzen´ı zaˇr´ızen´ı, m´od izochronn´ıho pˇrenosu, pˇr´ım´e vypnut´ı pˇri ztr´atˇe nap´ajen´ı a m´ody deskriptor˚ u specifikace USB 2.0. EEPROM pamˇet’ by mˇela b´ yt 16bitov´a s ˇr´ıdic´ı hodinovou frekvenc´ı o jmenovit´e hodnotˇe 1Mb/s a se jmenovit´ ym nap´ajec´ım napˇet´ım od 4,35 do 5,25 V. EEPROM pamˇet’ je programovateln´a pˇr´ımo jako souˇca´st hotov´eho zaˇr´ızen´ı s pomoc´ı speci´aln´ı softwarov´e utility2 . Tato funkce umoˇzn ˇuje vyuˇz´ıt nenaprogramovanou pamˇet’ jako souˇc´ast nov´eho zaˇr´ızen´ı a konfigurovat ji aˇz v pr˚ ubˇehu v´ yroby a testov´an´ı zaˇr´ızen´ı. Pokud nen´ı ˇz´adn´a pamˇet’ EEPROM k zaˇr´ızen´ı pˇripojena nebo je pamˇet’ EEPROM pr´azdn´a vyuˇzije FT232BM standardn´ı deskriptory z v´ yroby a v takov´em pˇr´ıpadˇe nebude m´ıt zaˇr´ızen´ı pˇri pˇrepojen´ı na USB stejn´e s´eriov´e ˇc´ıslo. Zapojen´ı jednotliv´ ych pin˚ u je vyobrazeno na Obr´azku 3.1 a Obr´azku 3.2.
2
viz kapitola 7
30
4
EEPROM 93C56B
4.1
Obecn´ e vlastnosti
• Funkce pˇri nap´ajec´ım napˇet´ı od 4,5 do 5,5 V • N´ızkopˇr´ıkonov´a CMOS technologie (odbˇer 1mA v aktivn´ım stavu; odbˇer 1µA ve stand-by reˇzimu) • Organizace ve form´atu 128 x 16 bit˚ u - na rozd´ıl od verze 93C56A (256x8), kter´a by byla pro pouˇzit´ı s FT232BM nevhodn´a ´ ´ • Automatick´e ˇcasov´an´ı cykl˚ u ZAPIS a VYMAZ • Standardn´ı pr˚ umyslov´e tˇr´ıdr´atov´e rozhran´ı • Sekvenˇcn´ı funkce ˇcten´ı dat ´ ´ • Signalizace v pr˚ ubˇehu operace ZAPIS nebo VYMAZ ´ ´ • Garantovan´ y poˇcet 100 000 operac´ı ZAPISU nebo VYMAZU ˇ • Zivotnost uloˇzen´ ych dat v´ıce neˇz 200 let Jedn´a se o dvoukilobitovou n´ızkonapˇet’ovou s´eriovou elektricky vymazatelnou pamˇet’ typu PROM konfigurovanou s uspoˇra´d´an´ım 128 x 16 bit˚ u. Vyspˇel´a CMOS technologie vybavuje tuto pamˇet’ velmi n´ızk´ ym odbˇerem - je urˇcena pro maxim´aln´ı nap´ajec´ı napˇet´ı o jmenovit´e hodnotˇe 7V.
4.2
Blokov´ y diagram
Blokov´ y diagram viz Obr´azek 4.1.
4.3
Popis jednotliv´ ych pin˚ u
V´ ybˇ er chipu (CS0) Logick´a hodnota jedna pˇriveden´a na pin pamˇeti CS0 vyb´ır´a dan´e zaˇr´ızen´ı. Logick´a hodnota nula provede zruˇsen´ı oznaˇcen´ı pamˇeti a pˇrepne ji do stand-by (klidov´eho reˇzimu). V pˇr´ıpadˇe, ˇze pr´avˇe prob´ıh´a programovac´ı cyklus, nebude tento nijak ovlivnˇen hodnotou t´eto funkce a pr´avˇe prov´adˇen´a operace bude dokonˇcena a zaˇr´ızen´ı se pˇrevede do stand-by reˇzimu po proveden´ı programovac´ı operace.
31
Obr´azek 4.1: Blokov´ y diagram EEPROM pamˇeti 93c56b
S´ eriov´ e hodiny (CLK) S´eriov´e hodiny jsou vyuˇzity pro synchronizaci komunikace mezi hlavn´ım zaˇr´ızen´ı a pamˇet´ı. Pˇri vzestupn´e hranˇe CLK je provedeno ˇcten´ı dat. Generov´an´ı CLK m˚ uˇze b´ yt pˇreruˇseno v jak´emkoliv okamˇziku a m˚ uˇze v nˇem b´ yt pokraˇcov´ano v jak´emkoliv jin´em ˇcase. Vstupn´ı data (DI) Tento pin je vyuˇzit ke ˇcten´ı startovac´ıho bitu, k´odu operace, adresy a dat zcela synchronˇe ve spolupr´aci se vstupem CLK V´ ystupn´ı data (DO) ˇ ´I dat pro vys´ıl´an´ı obsahu pamˇeti synchronnˇe Pin DO je vyuˇzit v reˇzimu CTEN s CLK. Tento pin z´aroveˇ n poskytuje informaci o pˇripravenosti nebo obsazenosti bˇehem maz´an´ı a z´apisu dat do pamˇeti. Zapojen´ı jednotliv´ ych pin˚ u integrovan´eho obvodu je vyobrazeno na Obr´azku 4.2.
32
Obr´azek 4.2: Pinout EEPROM pamˇeti 93c56b v obou proveden´ıch
33
5
LTC485
5.1
Obecn´ e vlastnosti
• N´ızk´ y odbˇer typicky Icc = 300µA • Zaˇr´ızen´ı urˇcen´e pro RS 485 aplikace • Nap´ajec´ı napˇet´ı od 4,75 do 5,25 V • Typick´a hystereze vstupu 70mV • Vys´ılaˇc se automaticky pˇrestavuje do stavu vysok´e impedance ve ’tˇret´ım stavu’ nebo pˇri vypnut´ı • Kombinovan´a impedance vys´ılaˇce a pˇrij´ımaˇce umoˇzn ˇuje pˇripojen´ı aˇz 32 zaˇr´ızen´ı na sbˇernici • Aplikace jako RS485/RS422 vys´ılaˇc nebo konvertor u ´rovn´ı LTC485 je n´ızkopˇr´ıkonov´ y diferenˇcn´ı linkov´ y vys´ılaˇc urˇcen´ y pro pˇrenosy dat typu multipoint ve standardu RS485 s rozˇs´ıˇren´ ym souf´azov´ ym rozsahem (12 aˇz -7V). Toto zaˇr´ızen´ı rovnˇeˇz splˇ nuje poˇzadavky RS422. Struktura typu CMOS umoˇzn ˇuje v´ yznamnou u ´sporu energie. Pˇrij´ımaˇc je vybaven ochrannou funkc´ı, kter´a garantuje pˇrepnut´ı do vysokoimpedanˇcn´ıho stavu i pˇres otevˇren´e vstupy.
5.2
Sch´ ema zapojen´ı
Blokov´ y diagram viz Obr´azek 5.1.
Obr´azek 5.1: Pinout integrovan´e struktury LTC485 vˇc. vnitˇrn´ı struktury
34
5.3
Popis jednotliv´ ych pin˚ u
V´ ystup pˇ rij´ımaˇ ce (RO) Pokud je v´ ystup pˇrij´ımaˇce aktivn´ı (RE je v logick´e nule) pak plat´ı, ˇze RO bude v logick´e jedniˇcce, pokud napˇet´ı na pinu A bude vˇetˇs´ı neˇzli na pinu B; v opaˇcn´em pˇr´ıpadˇe bude RO nab´ yvat hodnoty logick´e nuly. Aktivace pˇ rij´ımaˇ ce (RE) Logick´a nula pˇrivedena na tento pin aktivuje pˇrij´ımaˇc - pin RO - logick´a jedniˇcka pˇrivedena na tento pin pˇrepne pˇrij´ımaˇc do vysokoimpedanˇcn´ıho stavu. Aktivace vys´ılaˇ ce (DE) Logick´a jedniˇcka pˇrivedena na tento pin aktivuje vys´ılaˇc - piny A, B a ˇcip budou fungovat jako linkov´ y vys´ılaˇc - logick´a nula pˇrivedena na tento pin pˇrepne vys´ılaˇc do vysokoimpedanˇcn´ıho stavu a ˇcip bude nad´ale fungovat jako pˇrij´ımaˇc. Vstup vys´ılaˇ ce (DI) Pokud je vys´ılaˇc aktivov´an (DE ve stavu high), pak logick´a nula na pinu DI pˇrepne pin A do stavu LOW a pin B do stavu HIGH; logick´a jedniˇcka na pinu DI pˇrepne pin A do stavu HIGH a pin B do stavu LOW. Zem (GND) Pin A Pin A vys´ılaˇce/pˇrij´ımaˇce Pin B Pin B vys´ılaˇce/pˇrij´ımaˇce Vcc Nap´ajen´ı integrovan´eho obvodu v rozsahu 4,75 aˇz 5,25 V
35
6 6.1
REALIZACE HARDWARU Nap´ ajen´ı pˇ revodn´ıku
Z v´ yˇse uveden´ ych specifikac´ı komponent vypl´ yv´a, ˇze vˇsechny m˚ uˇzeme nap´ajet ze stejn´e u ´rovnˇe nap´ajec´ıho napˇet´ı o jmenovit´e hodnotˇe 5V . Vˇsechny komponenty maj´ı povolenou toleranci nap´ajec´ıho napˇet´ı, ˇciliˇze se nemus´ıme soustˇredit na pˇresn´ y nap´ajec´ı zdroj. V z´asadˇe m´ame dvˇe moˇznosti ˇreˇsen´ı a to cel´ y pˇrevodn´ık nap´ajet extern´ım nap´ajac´ım zdrojem nebo pˇr´ımo ze sbˇernice USB poˇc´ıtaˇce. Protoˇze zapojen´ı extern´ıho nap´ajec´ı adapt´eru nen´ı vˇzdy plnˇe komfortn´ı, provedli jsme realizaci pˇrevodn´ıku s nap´ajen´ım ze sbˇernice USB. Specifikace n´am dovoluje zat´ıˇzit sbˇernici proudem maxim´alnˇe 100mA a celkov´a spotˇreba zaˇr´ızen´ı uveden´eho do stand-by reˇzimu nesm´ı pˇrekroˇcit hodnotu 500µA. Iakt = If t232bm + I93c56 + Iltc485 (mA) Iakt = 25 + 1 + 0, 3mA Iakt = 26, 3mA Istd = If t232bm + I93c56 + Iltc485 (mA) Istd = 0, 2 + 0, 001 + 0, 3mA Istd = 0, 501mA Celkov´ y odbˇer zaˇr´ızen´ı tedy vych´az´ı 26, 3mA ve standardn´ım stavu a 501µA v reˇzimu stand-by, lze tedy takov´eto zaˇr´ızen´ı nap´ajet pˇr´ımo ze sbˇernice USB. Pin 14 ˇcipu FT232BM bude nutn´e uzemnit, abychom ˇcipu sdˇelili, ˇze budeme vyuˇz´ıvat nap´ajen´ı ze sbˇernice USB a aby ˇcip tomuto faktu pˇrizp˚ usobil Power deskriptor. Celkovou hodnotu odeb´ıran´eho proudu bude pozdˇeji moˇzno doprogramovat do Power deskriptoru EEPROM pamˇeti na pˇresnˇe urˇcenou hodnotu. Pˇri n´avrhu nap´ajec´ıho obvodu bylo nutno vz´ıt v potaz fakt, ˇze by se mohla pˇr´ıpadn´a elektromagnetick´a interference, kterou zaˇr´ızen´ı generuje, ˇs´ıˇrit z pˇrevodn´ıku po USB kabelu smˇerem do pˇripojen´eho zaˇr´ızen´ı. Proto bude vhodn´e do n´avrhu nap´ajec´ıho obvodu do s´erie s nap´ajen´ım zapojit tlumivku, kter´a bude toto ruˇsen´ı eliminovat. Tlumivka byla zvolena s n´asleduj´ıc´ımi parametry: R = 0, 65Ω; Imax = 200mA; SRF = 125M Hz. ˇ FT232BM je navrˇzen tak, ˇze celkov´a impedance vys´ılaˇce liky USB poˇc´ıt´a se Cip zapojen´ım extern´ıch rezistor˚ u o jmenovit´e hodnotˇe 27Ω na kaˇzd´ y z pin˚ u USBDP a USBDM. Ve specifikaci je d´ale uvedeno ˇze pin USBDP vyˇzaduje extern´ı rezistor o hodnotˇe 1, 5kΩ pˇripojen´ y na piny RSTOUT nebo 3V3OUT. Vzhledem k tomu, ˇze nebudeme cht´ıt u pˇrevodn´ıku vyuˇz´ıvat moˇznost resetovat ˇcip FT232BM, deaktivujeme vstup RESET pˇripojen´ım na nap´ajec´ı napˇet´ı VCC. Pin 3V3OUT poˇc´ıt´a se
36
zapojen´ım extern´ıho 33nF kapacitoru smˇerem na zem. Nap´ajen´ı pamˇeti EEPROM provedeme pˇriveden´ım nap´ajec´ıho napˇet´ı na pin Vcc - zem na pin Vss. U transceiver˚ u pro RS485 pˇrivedeme nap´ajec´ı napˇet´ı na pin Vcc a GND. Celkov´e sch´ema nap´ajen´ı pˇrevodn´ıku je naznaˇceno na Obr´azku 6.1. Obr´azek 6.1: Sch´ema nap´ajen´ı obvod˚ u pˇrevodn´ıku
6.2
Pˇ ripojen´ı krystalu
ˇ FT232BM vyˇzaduje extern´ı krystal nebo keramick´ Cip y rezon´ator pˇripojen´ y na vstupn´ıch pinech XTIN a XTOUT, kter´ y umoˇzn´ı tomuto obvodu funkce vnitnˇr´ıch a vnˇejˇs´ıch hodin. Pro naˇsi aplikaci byl zvolen krystal o hodnotˇe 6 MHz. Krystal je nutno dovybavit dvˇema keramick´ ymi kondenzt´atory o hodnotˇe 27pF, kter´e budou spojeny proti zemi a budou slouˇzit pro krystal jako z´atˇeˇz a umoˇzn´ı n´am tak dos´ahnout kmitoˇctov´e stability. Sch´ematick´e vyobrazen´ı zapojen´ı krystalu je naznaˇceno na Obr´azku 6.2.
37
Obr´azek 6.2: Sch´ema pˇripojen´ı krystalu k FT232BM
6.3
Pˇ ripojen´ı pamˇ eti EEPROM
Obr´azek 6.3 zn´azorˇ nuje propojen´ı FT232BM s EEPROM pamˇet´ı 93C56B. EECS je pˇr´ımo propojen s pinem v´ ybˇeru ˇcipu (CS) pamˇeti EEPROM, EESK je pˇr´ımo propojen s pinem hodinov´eho taktu (SK) a EEDATA je pˇr´ımo propojen s pinem vstupn´ıch dat (DIN). Pˇri propojen´ı pin˚ u DOUT pamˇeti EEPROM a EEDATA ˇcipu FT232BM je tˇreba vz´ıt v potaz fakt, ˇze jak pamˇet’ tak i pˇrevodn´ık mohou ve stejn´ y okamˇzik odes´ılat data na uveden´ ych pinech a aby v takov´em pˇr´ıpadˇe nedoch´azelo k napˇet’ov´e kolizi vloˇz´ıme do dan´e cesty rezistor o jmenovit´e hodnotˇe 2k2, coˇz je hodnota doporuˇcen´a v´ yrobcem. V pˇr´ıpadˇe, ˇze ˇcip FT232BM provede operaci power-on reset nebo ˇz´adost reset jdouc´ı ze sbˇernice USB a pokud najde na sv´e sbˇernici pˇripojenou pamˇet’ EEPROM a z´aroveˇ n data v pamˇeti EEPROM budou platn´a, vyuˇzije ˇcip tyto deskriptory pro svou konfiguraci a ˇcinnost. V opaˇcn´em pˇr´ıpadˇe je pamˇet’ ignorov´ana a ˇcip nahraje standardn´ı hodnoty, kter´e jsou definovan´e v´ yrobou. V pˇr´ıpadˇe, ˇze ˇcip FT232BM odeˇsle data do pamˇeti, tato potvrd´ı korektn´ı pˇr´ıjem dat t´ım, ˇze nastav´ı DOUT pin na hodnotu logick´e nuly. Abychom mohli detekovat takov´eto potvrzen´ı, pˇripoj´ıme pin DOUT pˇres 10kΩ rezistor na nap´ajec´ı napˇet´ı, coˇz zp˚ usob´ı, ˇze pokud nedojde k potvzren´ı korektn´ıho pˇr´ıjmu ze strany EEPROM, bude pin ˇcipu FT232BM d´ıky rezistoru v hodnotˇe logick´e jedniˇcky a zaˇr´ızen´ı tak bude moci detekovat chybu pˇri pˇrenosu dat smˇerem do pamˇeti.
38
Obr´azek 6.3: Sch´ema pˇripojen´ı pamˇeti EEPROM k FT232BM
6.4
Pˇ ripojen´ı linkov´ eho vys´ılaˇ ce/pˇ rij´ımaˇ ce
Obr´azek 6.4 zn´azorˇ nuje propojen´ı UART rozhran´ı FT232BM s RS485 linkov´ ym pˇrij´ımaˇcem/vys´ılaˇcem. Pro u ´ˇcel RS485 rozhran´ı vyuˇzijeme integrovan´eho obvodu LTC485 of firmy Linear Technology, kter´ y m´a separ´atn´ı ovl´ad´an´ı pˇrij´ımaˇce a vys´ılaˇce. S vyuˇzit´ım pinu TXDEN ˇcipu FT232BM zajist´ıme, ˇze RS485 vys´ılaˇc bude aktivov´an pouze v pˇr´ıpadˇe, ˇze budou na UART rozhran´ı ˇcipu vys´ıl´ana smˇerem do RS485 nˇejak´a data. Protoˇze pˇrij´ımaˇc RS485 je aktivn´ı pouze ve stavu logick´e nuly (viz kapitola 5.2), m˚ uˇzeme vyuˇz´ıt pin ˇcipu FT232BM PWREN k deaktivaci RS485 rozhran´ı v pˇr´ıpadˇe, ˇze se cel´e zaˇr´ızen´ı dostane d´ıky povelu na USB do tzv. suspend m´odu (zaˇr´ızen´ı nen´ı aktivn´ı a odeb´ır´a minim´aln´ı klidov´ y proud). D´ale je tˇreba v zapojen´ı um´ıstit rezistor o jmenovit´e hodnotˇe 120Ω, abychom zajistili ˇr´adnou terminaci linky RS-485 a zabr´anili tak odraz˚ um, kter´e by mohly degradovat pˇren´aˇsen´ y sign´al (viz. kapitola 2.3). Vzhledem k zapojen´ı vys´ılaˇce/pˇrij´ımaˇce linky RS-485 je tˇreba jeˇstˇe oˇsetˇrit stav, kdy m˚ uˇze b´ yt vys´ılan´ y sign´al zachyt´av´an zpˇetnˇe pˇrij´ımaˇcem a je pak tˇreba softwarovˇe oddˇelovat odeslan´a data z pˇrij´ımac´ıho kan´alu. Tento stav byl oˇsetˇren s pouˇzit´ım logick´eho obvodu. Pokud nedojde k propojen´ı v´ ystupu pˇrij´ımaˇce RS-485 a pinu RXD na UART rozhran´ı ˇcipu FT232BM a pokud v´ ystup pˇrij´ımaˇce zpracuji logickou funkc´ı OR se sign´alem TXDEN a takov´ y v´ ystupn´ı sign´al pouˇziji pro ˇr´ızen´ı RXD, hardwarovˇe t´ım zajist´ıme, ˇze vys´ılan´a data nebudou souˇcasnˇe zachyt´av´ana pˇrij´ımaˇcem. Toto ˇreˇsen´ı je z m´eho pohledu mnohem v´ıce estetick´e, neˇz n´asledn´e oˇsetˇren´ı v softwaru aplikace, kter´a pˇrevodn´ık vyuˇz´ıv´a. Jako v´ ykonnou jednotku funkce OR zvol´ıme integrovan´ y obvod 74LS32D, kter´ y obsahuje
39
ˇctyˇri obvody dvoustupov´eho hradla OR. Obr´azek 6.4: Sch´ema pˇripojen´ı linkov´eho pˇrij´ımaˇce/vys´ılaˇce RS-485
6.5
ˇ ızen´ı pˇ R´ r´ıstupu
RS-485 pˇredstavuje dvoudr´atovou sbˇernici, po kter´e lze oboustrannˇe pˇren´aˇset data. Protoˇze ale nelze pˇren´aˇset data obˇema smˇery souˇcasnˇe, mus´ıme zde zajistit ˇr´ızen´ı smˇeru pˇrenosu. Je tˇreba zajistit takov´ y stav, abychom ˇr´ıdic´ım sign´alem zapnuli vys´ılaˇc sbˇernice na dobu, kter´a je nezbytnˇe nutn´a pro uskuteˇcnˇen´ı datov´eho pˇrenosu a ihned po skonˇcen´ı t´eto doby, aby byl vys´ılaˇc opˇet deaktivov´an:
void vysilani(char *buffer, int delka) { int a; for (a=0;a<delka;a++) { while(STATUS_REG & TX_FULL); TX_REG=*buffer++; } TX_DISABLE(); } Dle [8] je praktick´ ymi pokusy odzkouˇseno, ˇze v takov´em pˇr´ıpadˇe fyzicky posledn´ı vys´ılan´ y znak (nebo i v´ıce) nen´ı ve skuteˇcnosti odvys´ıl´an, protoˇze takov´ y znak nen´ı jiˇz na UART sbˇernici, ale jeˇstˇe nestihl b´ yt odvys´ıl´an a pˇritom je jiˇz RS485
40
vys´ılaˇc deaktivov´an. Tato situace nast´av´a vzhledem k n´avrhu UART, protoˇze status bufferu indikuje okamˇzik, kdy je UART pr´azdn´ y pro dalˇs´ı z´apis bytu. Ovˇsem tato indikace neznamen´a, ˇze UART jiˇz dokonˇcil pˇrenos posledn´ıho zpracov´avan´eho bytu. Existuj´ı vˇsak naˇstˇest´ı metody, jak takovou chybu lze softwarovˇe nebo hardwarovˇe odstranit: Prodlouˇ zen´ı smyˇ cky Po odvys´ıl´an´ı posledn´ıho bytu z UART ˇcip provede ˇcek´an´ı tak, aby vzniklo dostateˇcn´e mnoˇzstv´ı ˇcasu na to, aby mohl b´ yt i posledn´ı byte odvys´ıl´an smˇerem na RS-485. Tato metoda funguje velice spolehlivˇe, ovˇsem velk´ y probl´em nast´av´a v pˇr´ıpadˇe, ˇze budeme cht´ıt odvys´ılat pouze jedin´ y znak (NAK, ACK). V tomto pˇr´ıpadˇe vznikne po odvys´ıl´an´ı znaku jeˇstˇe mezera na dalˇs´ı znak a vys´ılaˇc je zbyteˇcnˇe drˇzen v aktivn´ım stavu.
void vysilani(char *buffer, int delka) { int a; for (a=0;a<delka;a++) { while(STATUS_REG & TX_FULL); TX_REG=*buffer++; } delay(TX_FIFO_LEN_PLUSCHAR); TX_DISABLE(); } Prodlouˇzen´ı smyˇcky se d´a prov´adˇet i dalˇs´ımi metodami jako je napˇr´ıklad syst´emov´e vol´an´ı s vyuˇzit´ım RTOS; hardwarov´eho timeru; doplˇ nov´an´ı vys´ılan´eho ˇretˇezce nebo sofistikovan´eho UART. Vzhledem k tomu, ˇze FT232BM tyto metody nevyuˇz´ıv´a nen´ı nutn´e se jimi v t´eto pr´aci detailnˇeji zab´ yvat. Loop-back Tuto metodu vyuˇz´ıv´a integrovan´ y obvod LTC485 vyuˇzit´ y pˇri realizaci a je jedna z nejpˇresnˇejˇs´ıch a nej´ uˇcinnˇejˇs´ıch v t´eto oblasti. Princip t´eto metody spoˇc´ıv´a v pˇr´ıjmu dat, kter´a se pr´avˇe vys´ılaj´ı na sbˇernici RS-485 a pouˇz´ıvaj´ı se k urˇcen´ı okamˇziku, kdy se vys´ıl´an´ı ukonˇc´ı. Pro vyuˇzit´ı t´eto metody je nezbytn´e, aby ˇcip, kter´ y hodl´ame pouˇz´ıt, byl vybaven touto vlastnost´ı, tj. aby v´ ystup vys´ılaˇce byl internˇe propojen ve struktuˇre se vstupem pˇrij´ımaˇce viz Obr´azek 5.1. Loop-back struktura n´am tak
41
umoˇzn ˇuje aplikovat velmi pˇresn´ y zp˚ usob pˇrep´ın´an´ı smˇer˚ u.
6.6
Automatick´ y zp˚ usob pˇ rep´ın´ an´ı smˇ er˚ u
Na Obr´azku 6.4 si m˚ uˇzeme povˇsimnout, ˇze pro LTC485 a pin DE (ˇr´ızen´ı vys´ılaˇce sbˇernice) je pˇriveden a vyuˇz´ıv´an pin TXDEN z ˇcipu FT232BM. V tomto pˇr´ıpadˇe je tedy ˇr´ızen´ı ˇreˇseno zcela automaticky ˇcipem FT232BM, kter´ y se chov´a jako zdroj ˇr´ıd´ıc´ıho sign´alu pro zap´ın´an´ı a vyp´ın´an´ı vys´ılaˇc˚ u na sbˇernici RS-485.
6.7
ˇ ızen´ R´ y zp˚ usob pˇ rep´ın´ an´ı smˇ er˚ u
Pokud nebudeme z nˇejak´eho d˚ uvodu (pˇrenosov´a rychlost, charakter pˇren´aˇsen´ ych dat) cht´ıt vyuˇz´ıt vlastnost funkce automatick´eho zp˚ usobu pˇrp´ın´an´ı smˇer˚ u, m˚ uˇzeme zvolit ˇr´ızen´ y zp˚ usob. V takov´em pˇr´ıpadˇe budou piny TXDEN a DE vz´ajemˇe rozpojeny. Ovl´ad´an´ı DE pak mus´ıme zajistit manu´alnˇe s vyuˇzit´ım softwarov´eho vybaven´ı poˇc´ıtaˇce, ke kter´emu je konvertor pˇripojen. Pro ˇr´ızen´ y zp˚ usob pˇrep´ın´an´ı smˇer˚ u je s vyuˇzit´ım sign´alu RTS (tzv. RTS control). V takov´em pˇr´ıpadˇe je plnˇe na softwaru, aby obsluhoval ˇr´ıd´ıc´ı sign´al RTS a v okamˇziku poˇzadavku na vysl´an´ı dat aby tuto informaci s pomoc´ı RTS pˇredal na DE linkov´eho vys´ılaˇce. Obr´azek 6.5 vyobrazuje pˇren´aˇsenou zpr´avu s pˇrihl´ednut´ım na stav sign´alu RTS, kter´ y je v takov´em pˇr´ıpadˇe potˇrebn´ y pro u ´spˇeˇsn´e odvys´ıl´an´ı dat.
ˇ ızen´ Obr´azek 6.5: R´ y zp˚ usob pˇrep´ın´an´ı smˇer˚ u s vyuˇzit´ım RTS
6.8
Vyv´ aˇ zen´ı pˇ renosv´ e linky RS-485
Vzhledem k tomu, ˇze nˇekter´e pˇrenosov´e trasy mnohdy vykazuj´ı urˇcit´ y stupeˇ n zaruˇsen´ı, byl pˇrevodn´ık vybaven pˇr´ıdavn´ ymi vyvaˇzovac´ımi rezistory R11 a R12.
42
Vzhledem k tomu, ˇze pˇrenosov´a trasa pouˇz´ıv´a diferenˇcn´ıho sign´alu, m˚ uˇze se v zaruˇsen´ ych oblastech st´at (napˇr. pr˚ umyslov´e vyuˇzit´ı), ˇze na RS-485 nebudou pr´avˇe prob´ıhat ˇza´dn´e datov´e pˇrenosy a vˇsechny vys´ılaˇce se pˇrepnou do vysokoimpedanˇcn´ıho stavu. V pˇr´ıpadˇe, ˇze se do plovouc´ıch vodiˇc˚ u naindukuje vyˇsˇs´ı napˇet´ı neˇz 0,2V, syst´em jiˇz takov´ y diferenˇcn´ı sign´al posuzuje jako uˇziteˇcn´ y. V tˇechto pˇr´ıpadech by mohlo nast´avat, ˇze se bude objevovat na sbˇernici tzv. ’datov´ y ˇsum’ tj. n´ahodnˇe zachycen´ y datov´ y sign´al nulov´e informaˇcn´ı hodnoty. Pˇrep´ınaˇc´ı S5 a S6 DIP sp´ınaˇce, je moˇzn´e uv´est jednotliv´e vodiˇce pˇrenosov´e linky pˇres rezistory o jmenovit´e hodnotˇe 150Ω na zem.
6.9
Konfigurace
Aby mˇel uˇzivatel moˇznost konfigurovat RS-485 pˇrevodn´ık dle konkr´etn´ı situace, je obvod vybaven ˇsesti mikrosp´ınaˇci v proveden´ı DIP. Kaˇzd´ y z nich m˚ uˇze uˇzivatel uv´est do jednotliv´ ych poloh ON a OFF a konfigurovat tak syst´em dle n´asleduj´ıc´ı tabulky:
Tabulka 6.1: Konfigurace pˇrevodn´ıku s pomoc´ı mikro DIP pˇrep´ınaˇc˚ u Oznaˇ cen´ı Hodnota S1 S2 S1 S2 S3 S4 S3 S4 S5 S5 S6 S6
ON OFF OFF ON ON OFF OFF ON ON OFF ON OFF
Funkce Automatick´ y zp˚ usob pˇrep´ın´an´ı smˇer˚ u ˇ ızen´ R´ y zp˚ usob pˇrep´ın´an´ı smˇer˚ u Potlaˇcit lok´aln´ı ECHO na RS-485 Nepoltaˇcovat lok´aln´ı ECHO na RS-485 Vyv´aˇzen´ı linky A sbˇernice RS-485 Nevyvaˇzovat linku A Vyv´aˇzen´ı linky B sbˇernice RS-485 Nevyvaˇzovat linku B
Pozor! Pˇ restaven´ı mikrosp´ınaˇ c˚ u mus´ı b´ yt provedeno pouze na odpojen´ em pˇ revodn´ıku!
43
6.10
Dokonˇ cen´ı
Po n´avrhu vˇsech z´asadn´ıch ˇc´ast´ı pˇrevodn´ıku jeˇstˇe dozapoj´ıme LED diody pro indikaci pˇrij´ıman´ ych a vys´ılan´ ych dat na RS-485 sbˇernici, microdip pˇrep´ınaˇc pro moˇznost konfigurace pˇrevodn´ıku a vz´ajemˇe propoj´ıme vˇsechny navrhovan´e ˇca´sti do jednoho funkˇcn´ıho celku. Protoˇze zaˇz´ızen´ı m˚ uˇze b´ yt velice ˇcasto vyuˇz´ıvan´e k pˇren´aˇsen´ı v kombinaci s notebookem ˇci poˇc´ıtaˇcem, byl n´avrh proveden v technologii SMT - velikost souˇca´stek 0805. Samotno´a realizace byla provedena s pomoc´ı mikrop´ajeˇcky a za vyuˇzit´ı tavidla. Pˇri n´akupu souˇca´stek m˚ uˇze nastat drobn´ y probl´em v podobˇe pˇresnosti vyr´abˇen´ ych rezistor˚ u. Rezistory v proveden´ı SMD velikosti 0805 jsou totiˇz bˇeˇznˇe vyr´abˇeny v ˇradˇe E6, coˇz v pˇr´ıpadˇe rezistor˚ u R7,R11 a R12 vytvoˇr´ı pˇrek´aˇzku. Vzhledem k tomu, ˇze rezistory R11, R12 jsou vyvaˇzovac´ı a R7 jako termin´ator, nebude dodrˇzen´ı jejich pˇresn´e jmenovit´e hodnoty pro funkˇcnost obvodu kritick´e a proto doˇslo k jejich nahrazen´ı rezistory z ˇrady E6 o hodnot´ach 100Ω. Fotografie realizovan´e a osazen´e DPS pˇrevodn´ıku jsou v na Obr´azku H.1, Obr´azku I.1, Obr´azku J.1 a Obr´azku K.1.
6.11
Mˇ eˇ ren´ı obvodu
Spotˇ reba Spotˇreba pˇrevodn´ıku byla urˇcena za pomoc´ı digit´aln´ıho multimetru Metex M-3270D, kter´ y byl zapojen dle Obr´azku 6.6. Mˇeˇren´ım jsme zjistili, ˇze obvodem prot´ekal proud 38,06mA. Tato hodnota je vyˇsˇs´ı neˇz p˚ uvodn´ı kalkulovan´a hodnota v kapitole 6.1 t´eto bakal´aˇrsk´e pr´ace, kter´a ud´avala hodnotu 26,3mA, ovˇsem byla v n´ı zapoˇctena ˇcistˇe jen spotˇreba pouˇzit´ ych integrovan´ ych obvod˚ u. Diference v odeb´ıran´em proudu je zp˚ usobena LED diodou nap´ajen´ı (cca 12mA). Odbˇer obvodu se tak m˚ uˇze v z´avislosti na aktivitˇe diod indikace vys´ıl´an´ı a pˇr´ıjmu na sbˇernici RS-485 i nad´ale mˇenit - maxim´aln´ı spotˇreba vˇsak nepˇres´ahne hodnotu 100mA, kterou ud´av´a specifikace standardu USB. Vliv nastaven´ı lok´ aln´ıho echa na pˇ rij´ıman´ y sign´ al Jak jiˇz bylo pops´ano v kapitole 6.4 t´eto pr´ace, v pˇrevodn´ıku je hardwarovˇe zajiˇstˇeno, ˇze vys´ılan´a data na sbˇernici RS-485 nebudou z´aroveˇ n zachyt´av´ana lok´aln´ım pˇrij´ımaˇcem (tzv. lok´aln´ı echo). V pˇr´ıpadˇe, ˇze je lok´aln´ı echo potlaˇceno (konfigurace dle kapitoly 6.9), nejsou vys´ılan´a data lok´alnˇe pˇrij´ım´ana. V pˇr´ıpadˇe, ˇze to bude aplikace vyˇzadovat, d´a se lok´aln´ı echo potlaˇcit, ˇc´ımˇz nastane situace, kdy vys´ılan´a data jsou
44
Obr´azek 6.6: Sch´ema zapojen´ı mˇeˇren´ı spotˇreby
zpˇetnˇe zachyt´av´ana lok´aln´ım pˇr´ıj´ımaˇcem. Pˇr´ıklad namˇeˇrn´ y v obvodu pˇri vys´ıl´an´ı sekvence 10110 je ilustrov´an na Obr´azku 6.7.
Obr´azek 6.7: Vliv konfigurace lok´aln´ıho echa
Mˇ eˇ ren´ı pr˚ ubˇ ehu sign´ alu na RS-485 Pro ovˇeˇren´ı funkˇcnosti pˇrevodn´ıku bylo nutn´e zajistit mˇeˇren´ı pr˚ ubˇehu sign´alu na sbˇernici RS-485. Mˇeˇren´ı bylo provedeno digit´aln´ım osciloskopem HDS 1022M na pinech 1 a 8 z´asuvky RJ45 pˇrevodn´ıku (RS-485 rozhran´ı). Mˇeˇren´ı bylo provedeno pˇri pˇrenosu ASCII znaku ’F’ smˇerem k pˇripojen´e RFID ˇcteˇcce typu UW-485, kter´a vyuˇz´ıv´a komunikaˇcn´ı rozhran´ı RS-485 pˇri rychlosti 250kBaud. Teoreticky oˇcek´avan´ y v´ ysledek pr˚ ubˇeh˚ u jednotliv´ ych sign´alu na pinech A,B je naznaˇcen na Obr´azku 6.8, re´aln´ y namˇeˇren´ y diferenˇcn´ı pr˚ ubˇeh je vyobrazen na Obr´azku 6.9 t´eto pr´ace. Pr˚ ubˇehy sign´al˚ u na jednotliv´ ych vodiˇc´ıch A,B proti zemi je na obr´azku 6.10.
45
Obr´azek 6.8: Teoretick´ y pr˚ ubˇeh sign´alu pˇri odes´ıl´an´ı znaku ’F’
Obr´azek 6.9: Pr˚ ubˇeh sign´alu pˇri odes´ıl´an´ı znaku ’F’
46
Obr´azek 6.10: Pr˚ ubˇehy sign´al˚ u na jednotliv´ ych vodiˇc´ıch veden´ı
47
7
SOFTWARE
V´ yrobce ˇcipu FT232BM1 dod´av´a sv˚ uj ˇcip FT232BM vˇcetnˇe ovladaˇc˚ u, kter´e 2 je moˇzno st´ahnout z jejich internetov´ ych str´anek . V souˇcasn´e dobˇe je driver dod´av´an pod n´azvem CDM (Combined Driver Model) a obsahuje jak ovladaˇce typu D2XX pro pˇr´ım´ y pˇr´ıstup k USB zaˇr´ızen´ı, tak i ovladaˇce typu VCP (Virtual Com Port), kter´e umoˇzn ˇuj´ı emulovat USB zaˇr´ızen´ı jako COM port v poˇc´ıtaˇci typu PC. Ovladaˇce podporuj´ı operaˇcn´ı syst´emy Windows, Mac OS X, Linux, Windows CE. VCP ovladaˇc se skl´ad´a ze dvou vrstev - FTDIBUS.SYS (obstar´av´a vytvoˇren´ı s´eriov´eho portu a pˇr´ıstup k USB zaˇr´ızen´ı) a FTSER2K.SYS (implementace pro s´eriov´ y port). Sch´ema struktury ovladaˇce typu VCP je uveden´e na Obr´azku 7.1. D2XX je vyuˇz´ıv´an v situac´ıch, kdy nen´ı komunikace pˇres s´eriov´ y port vyˇzadov´ana. Umoˇzn ˇuje pˇr´ıstup k zaˇr´ızen´ı s pomoc´ı D2XX API. Ovladaˇc je implementov´an jako nednovrstv´ y, kdy FTD2XX.SYS je vol´an s pomoc´ı knihovny FTD2XX.DLL. Sch´ema struktury ovladaˇce typu D2XX je vyobrazeno na Obr´azku 7.2. V´ yhodou Obr´azek 7.1: Sch´ema struktury ovladaˇce typu VCP
ˇcipu FT232BM je, ˇze v konfiguraˇcn´ım desktiptoru zaˇr´ızen´ı je v pamˇeti EEPROM uloˇzeno nastaven´ı, jak´ y ovladaˇc m´a b´ yt pouˇzit v z´avislosti na jeho typu. V tomto pˇr´ıpadˇe, lze tedy do EEPROM pamˇeti zaˇr´ızen´ı uloˇzit informaci o tom, aby vˇzdy 1 2
FTDI Chip
48
Obr´azek 7.2: Sch´ema struktury ovladaˇce typu D2XX
vyˇzadovalo vyuˇzit´ı VCP ovladaˇce a t´ım si zajistilo emulaci pˇres s´eriov´ y port.
Obr´azek 7.3: N´ahled obrazovky programu Mprog
49
V´ yrobce d´ale dod´av´a jako souˇc´ast sv´eho produktu software nazvan´ y MProg, kter´ y umoˇzn ˇuje v D2XX reˇzimu konfigurovat pamˇet’ EEPROM zaˇr´ızen´ı a nastavit tak jeho deskriptory. Nastavit m˚ uˇzeme typ zaˇr´ızen´ı, VID, PID, verzi USB protokolu kter´ y je vyuˇz´ıv´an, m˚ uˇzeme napˇr. zak´azat s´eriov´e ˇc´ıslo zaˇr´ızen´ı nebo urˇcit, aby zaˇr´ızen´ı odpojovalo vstupn´ı a v´ ystupn´ı piny v reˇzimu USB suspend. Z´aroveˇ n je dobr´e nastavit do deskriptor˚ u typ nap´ajen´ı zaˇr´ızen´ı - v m´em pˇr´ıpadˇe BUS Powered a uv´est celkovou spotˇrebu. D´ale m´ame moˇznost konfigurovat s´eriov´e ˇc´ıslo zaˇr´ızen´ı, moˇznost USB vzd´alen´eho vzbuzen´ı a funkci Plug & Play. Dalˇs´ımi d˚ uleˇzit´ ymi parametry jsou n´azev v´ yrobce a popis zaˇr´ızen´ı, kter´ y pak zobrazuje operaˇcn´ı syst´em. Uk´azka obrazovky programu je na Obr´azku 7.3. V EEPROM pamˇeti zaˇr´ızen´ı a jej´ı pˇr´ısluˇsn´ ych deskriptorech nebyla provedena ˇza´dn´a specifick´a konfigurace VID a PID, ˇcili deskriptory z˚ ustaly konfigurov´any na hodnoty VID=0403, PID=6001. Specificky byly nastaveny deskriptory Bus Powered=1, Max Bus Power=26 mA, SN Prefix=07, SN Suffix=07335241, Deskriptor v´ yrobce=FEKT, Deskriptor produktu=RS485, Programmed SN=07R13A2F.
50
8
´ ER ˇ ZAV
Jak bylo naznaˇceno jiˇz v u ´vodu, c´ılem t´eto pr´ace je zpracov´an´ı n´avrhu pˇrevodn´ıku dat ze sbˇernice typu USB na rozhran´ı RS485. V jednotliv´ ych kapitol´ach t´eto bakal´aˇrsk´e pr´ace byl ˇcten´aˇr sezn´amen se specifikacemi jednotliv´ ych rozhran´ı, stejnˇe tak jako s popisem a specifikacemi jednotliv´ ych prvk˚ u, kter´e byly pro konstrukci vyuˇzity. Celkov´e sch´ema zaˇr´ızen´ı jako takov´eho se nach´az´ı v pˇr´ıloze B; deska poloˇsn´ ych spoj˚ u je pak zpracov´ana v nˇekolika pohledech - osazen´ı souˇc´astek z vrchn´ı strany DPS jako pˇr´ıloha C; osazen´ı souˇca´stek spodn´ı strany DPS je v pˇr´ıloze D; horn´ı strana desky ploˇsn´ ych spoj˚ u jako pˇr´ıloha E; spodn´ı strana desky ploˇsn´ ych spoj˚ u jako pˇr´ıloha F. V pˇr´ıloze G t´eto bakal´aˇrsk´e pr´ace se nach´az´ı rozpis souˇca´stek potˇrebn´ ych pro konstrukci zaˇr´ızen´ı. Fotografie realizovan´eho DPS a osazen´eho zaˇr´ızen´ı jsou v pˇr´ıloh´ach H,I,J a K. Jelikoˇz bylo cel´e zaˇr´ızen´ı realizov´ano s pouˇzit´ım souˇc´astek technologie SMD bylo nutn´e desku ploˇsn´ ych spoj˚ u navrhnout jako oboustranou s vyuˇzit´ım prokov˚ u. Desku ploˇsn´ ych spoj˚ u realizovala na z´akladˇe n´avrhu specializovan´a firma, kter´a se touto v´ yrobou zab´ yv´a. Vodiv´e vrstvy na DPS byly oboustrannˇe pozlaceny a to zejm´ena kv˚ uli pozdˇejˇs´ım oxidaˇcn´ım jev˚ um a z´aroveˇ n i z estetick´eho hlediska. Pˇri samotn´em osazov´an´ı desky bylo v´ yhradnˇe pouˇzito p´ajky Sn95,5Ag3,8Cu0,7. Osazov´an´ı bylo provedeno dle vˇseobecn´ ych z´asad, tj. nejprve konektory, d´ale pasivn´ı souˇc´astky, aktivn´ı souˇc´astky, integrovan´e obvody a ihned po jeho dokonˇcen´ı byl obvod oˇziven. Po pˇripojen´ı USB rozhran´ı bylo provedeno z´akladn´ı omˇeˇren´ı napˇet´ı na pˇrevodn´ıku a z´aroveˇ n probˇehlo ovˇeˇren´ı jeho ˇr´adn´e funkce s pomoc´ı poˇc´ıtaˇce. Z pohledu zad´an´ı t´eto bakal´aˇrsk´e pr´ace se n´am podaˇrilo zrealizovat kompletn´ı pˇrevodn´ık USB-RS485 vˇcetnˇe definovan´ ych provozn´ıch parametr˚ u a m˚ uˇzeme tak konstatovat, ˇze zad´an´ı bakal´aˇrsk´e pr´ace bylo splnˇeno v pln´em rozsahu.
51
REFERENCE ˇ P. Bibliografick´e citace dokument˚ ˇ ˇ [1] BOLDIS, u podle CSN ISO 690 a CSN ISO 690-2 [online]. 2001, posledn´ı aktualizace 11. 11. 2004 [cit. 17. 2. 2005]. Dostupn´e z URL: . [2] HERMAN, I. Komunikaˇcn´ı technologie. Elektronick´e pˇredlohy. FEKT VUT v Brnˇe. 2007. [3] FILKA, M. a kol. Diplomn´ı semin´aˇre - telekomunikace. ES VUT Brno, 1989. [4] beyondlogic.org Specifikace USB zaˇr´ızen´ı Dostupn´e z URL: [5] linear.com Popis integrovan´eho obvodu FT232BM Dostupn´e z URL: [6] microchip.com Popis pamˇeti typu EEPROM 93C56B Dostupn´e z URL: [7] ftdichip.com Popis linkov´eho vys´ılaˇce/pˇrij´ımaˇce sbˇernice RS485 LTC485 Dostupn´e z URL: [8] kksystems.com Popis problematiky ˇr´ızen´eho pˇrep´ın´an´ı smˇer˚ u Dostupn´e z URL: [9] netrino.com Popis obecn´e problematiky pˇrep´ın´an´ı smˇer˚ u Dostupn´e z URL:
52
˚ VELICIN ˇ SEZNAM SYMBOLU, A ZKRATEK USB
univerz´aln´ı s´eriov´e rozhran´ı – Universal Serial Bus
RS-485
rozhran´ı RS-485 je elektrick´a specifikace pro dvoudr´atov´e, poloduplexn´ı, v´ıcebodov´e s´eriov´e spojen´ı
pˇrevodn´ık zaˇr´ızen´ı urˇcen´e k pˇrechodu z rozhran´ı jednoho typu na jin´e COM
n´azev rozhran´ı s´eriov´eho portu na poˇc´ıtaˇc´ıch typu PC
FT232BM mikroˇcip od firmy FTDI Chip urˇcen´ y k pˇrevodu rozhran´ı z USB na s´eriov´ y asynchronn´ı pˇrenos dat EEPROM 93C56 pamˇet s kapacitou 2kbit - elektronicky vymazateln´a (Electrically Erasable PROM) LTC 485
n´ızkopˇr´ıkonov´ y vys´ılaˇc/pˇrij´ımaˇc sbˇernice typu RS-485
RS-232
rozrhan´ı RS-232 je elektrick´a specifikace pro s´eriov´ y pˇrenos dat pouˇzit´ y v poˇc´ıtaˇcov´ ych portech, je velice podobn´a protokolu V.24 ze standardu ITU-T
Plug and Play schopnost poˇc´ıtaˇce, kter´a umoˇzn ˇuje pˇridat nov´e zaˇr´ızen´ı napˇr. poˇc´ıtaˇcovou periferii bez nutnosti manu´aln´ı konfigurace nebo instalace ovladaˇc˚ u tohoto zaˇr´ızen´ı stand by
reˇzim zaˇr´ızen´ı, ve kter´em nen´ı vykon´av´ana ˇz´adna operace a zaˇr´ızen´ı je uvedeno do klidov´eho reˇzimu, kdy odeb´ır´a zpravidla minim´aln´ı proud a nevykazuje ˇz´adnou ˇcinnost - v´ yhodou stand by reˇzimu je moˇznost rychl´eho uveden´ı do standardn´ıho provozu
overhead
pˇridan´ y datov´ y tok kter´ y protokol potˇrebuje pro svou vlastn´ı reˇzii mal´ y overhead vyznaˇcuje vysokou efektivitu, tj. velmi n´ızkou reˇzii protokolu
NRZI
non-return-to-zero Inverted; typ modulace kter´a mapuje log 1 pˇri zmˇenˇe stavu, log 0 pro st´avaj´ıc´ı stav; stejn´ y typ modulace se vyuˇz´ıv´a napˇr. pro z´apis na magnetickou p´asku
CRC
cyclic redudancy check; je funkce kter´a ze vstupn´ıch dat zcela libolovn´e d´elky produkuje v´ ystupn´ı hodnotu o pˇresnˇe stanoven´e d´elce; velmi ˇcasto se CRC vyuˇz´ıv´a pro funkce kontroln´ıho souˇctu
LSB
least significant bit; oznaˇcuje bit v ˇretˇezci s nejniˇzˇs´ı v´ahou
53
handshaking automatick´ y proces, kter´ y m´a za u ´kol nastavit na obou stran´ach pˇrenosov´eho veden´ı stejn´e komunikaˇcn´ı parametry SRF
vlastn´ı rezonanˇcn´ı kmitoˇcet
RTOS
real-time operaˇcn´ı syst´em, podporuj´ıc´ı multitasking
SMD
surface-mount technology; metoda konstrukce elektronick´ ych zaˇr´ızen´ı, kdy se komponenty montuj´ı pˇr´ımo na povrch desky ploˇsn´ ych spoj˚ u
54
ˇ ´ILOH SEZNAM PR A Blokov´ y diagram ˇ cipu FT232BM
56
B Sch´ ema zapojen´ı pˇ revodn´ıku
58
C Pohled na osazen´ı souˇ c´ astek - vrchn´ı strana
60
D Pohled na osazen´ı souˇ c´ astek - spodn´ı strana
61
E Pohled na desku ploˇ sn´ ych spoj˚ u - vrchn´ı strana
62
F Pohled na desku ploˇ sn´ ych spoj˚ u - spodn´ı strana
63
G Rozpis souˇ c´ astek
64
H Fotografie DPS | TOP
65
Fotografie DPS | BOTTOM
66
J Fotografie osazen´ e DPS | TOP
67
K Fotografie osazen´ e DPS | BOTTOM
68
I
55
A
´ DIAGRAM CIPU ˇ BLOKOVY FT232BM
56
57
XTIN
XTOUT
USBDM
USBDP
3V3OUT
VCC
Oscilátor 6MHz
USB DPLL
USB vysílač
3,3V LDO regulátor
Násobič hodin x8
Ovladač sériového rozhraní
PWRCTL
SLEEP# PWREN#
Obr´azek A.1: Blokov´ y diagram ˇcipu FT232BM
12 MHz
48 MHz
Duální přijímací buffer (384 B)
Řízení USB protokolu
Duální vysílací buffer (128 B)
RESET#
Generátor resetu
3V3OUT
UART FIFO kontroler
48 MHz
EEPROM interface
UART
Generátor přenosové rychlosti
DCD#
DTR#
CTS#
TXDEN
RSTOUT#
EEDATA
EESK
EECS
TXLED#
RXLED#
RI#
DSR#
TXD RXD RTS#
B
´ ˇ ´IKU SCHEMA ZAPOJEN´I PREVODN
58
59
Obr´azek B.1: Sch´ema zapojen´ı pˇrevodn´ıku USB<->RS485
C
ˇ ASTEK ´ POHLED NA OSAZEN´I SOUC VRCHN´I STRANA
Obr´azek C.1: Osazen´ı souˇca´stek pˇrevodn´ıku - vrchn´ı strana DPS
60
D
ˇ ASTEK ´ POHLED NA OSAZEN´I SOUC SPODN´I STRANA
Obr´azek D.1: Osazen´ı souˇc´astek pˇrevodn´ıku - spodn´ı strana DPS
61
E
ˇ YCH ´ ˚ POHLED NA DESKU PLOSN SPOJU VRCHN´I STRANA
Obr´azek E.1: Deska ploˇsn´ ych spoj˚ u pˇrevodn´ıku USB<->RS485 - vrchn´ı strana
62
F
ˇ YCH ´ ˚ POHLED NA DESKU PLOSN SPOJU SPODN´I STRANA
Obr´azek F.1: Deska ploˇsn´ ych spoj˚ u pˇrevodn´ıku USB<->RS485 - spodn´ı strana
63
G
ˇ ASTEK ´ ROZPIS SOUC
Tabulka G.1: Rozpis souˇc´astek potˇrebn´ ych pro konstrukci zaˇr´ızen´ı Oznaˇ cen´ı
Hodnota
C1 10nF C2 33nF C3,C4,C6 100nF C5 10µF C7,C8 27pF R1,R2 22Ω R3 470Ω R4 1k5 R5 2k2 R6 10k R7,R11,R12 100Ω R8,R9,R10 220Ω IC1 FT232BM IC2 93LC46 nebo 93LC56 IC3 LTC485 IC4 74HC32 J1 z´asuvka RJ45 L1 tlumivka LED1 led ˇzlut´a LED2 led ˇcerven´a LED3 led zelen´a Q1 6MHz S1 pˇrep´ınaˇc 6x X1 konektor USB
Poˇ cet
Pozn´ amky
1ks 1ks 3ks 1ks 2ks 2ks 1ks 1ks 1ks 1ks 1ks 3ks 1ks 1ks 1ks 1ks 1ks 1ks 1ks 1ks 1ks 1ks 1ks 1ks
SMD 0805 SMD 0805 SMD0805 SMD elektrolyt B6 SMD0805 SMD0805 SMD0805 SMD0805 SMD0805 SMD0805 SMD0805 SMD0805 QFP32 SO SO SO 8pin do DPS R = 0, 65Ω, Imax = 200mA SMD1206 SMD1206 SMD1206 krystal leˇzat´ y DIP switch 6x1 mini-USB z´asuvka SMD leˇzat´a
64
H
FOTOGRAFIE DPS | TOP
Obr´azek H.1: Deska ploˇsn´ ych spoj˚ u - foto - top
65
I
FOTOGRAFIE DPS | BOTTOM
Obr´azek I.1: Deska ploˇsn´ ych spoj˚ u - foto - bottom
66
J
´ DPS | TOP FOTOGRAFIE OSAZENE
Obr´azek J.1: Fotografie osazen´eho pˇrevodn´ıku - top
67
K
´ DPS | BOTTOM FOTOGRAFIE OSAZENE
Obr´azek K.1: Fotografie osazen´eho pˇrevodn´ıku - bottom
68