deel 3: seriële communicatie

27

Upload: others

Post on 18-Dec-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

Deel 3: seriële communicatie

transmissie over 1 lijn.

Eenvoudigste manier: schuifregister: 74HC595 (=synchroon)

PIN 1-7, 15 Q0 tot Q7 Output Pin

PIN 8 GND Ground, Vss

PIN 9 Q7" Serial Out

PIN 10 MR Master Reclear, active low

PIN 11 SH_CP Shift register clock pin

PIN 12 ST_CP Storage register clock pin (latch pin)

PIN 13 OE Output enable, active low

PIN 14 DS Serial data input

PIN 16 Vcc Positive supply voltage

Seriële communicatie

Werking:

• via DS wordt 0 of 1 aangeboden.

• Tijdens opgaande flank op SHCP ingeschoven

in shift register (doe dit 8x)

• Tijdens opgaande flank op STCP: 8-bit transfer

van shift naar storage register.

• /MR: master reset, actief laag.

• /OE: output enable, actief laag.

Oorsprong: client-server model wegens hoge kost computers

Seriële communicatie

Seriële communicatieprobleem: verbinding tussen terminal en computer?

Men maakte gebruik van bestaande bedrading: telefoon.

RS232 Gemoduleerd signaal over telefoonlijn RS232

Computer A

Modem A

Computer B

Modem B

Modem: modulator/demodulator.

Wat is moduleren?

is het combineren van een informatiesignaal met een draaggolf met een hogere frequentie, zodat een signaal ontstaat met een frequentieband

rondom de frequentie van de draaggolf. (bron: Wikipedia).

Digitale data verzenden via telefoonlijn is zeer moeilijk wegens de beperkte bandbreedte. Dit werd opgelost door 0 en 1 voor

te stellen door 2 verschillende frequenties.

0 -> sinus van 1070Hz

1 -> sinus van 1270Hz

Deze methode = frequency shift keying.

Maximale overdrachtssnelheid? • Afhankelijk van de frequentie van de draaggolf. Theoretisch bij FSK duurt verzenden van 1 bit 1/laagste

frequentie = 1 / 1070 = 0,93ms. Dit veronderstelt 1 bit = 1 periode.

In de praktijk: meerdere periodes per bit. Gangbaar voorbeeld : 300 baud = 300 bits per seconde. Periode is

1/300 = 3,33ms. Omgerekend dus 3 a 4 periodes/bit.

MFSK: multiple frequency shift keying.

• In plaats van 2 worden meerdere frequenties gebruikt. In een voorbeeld met 4 frequenties A,B,C en D zal elke

frequentie 2 bits overdragen omdat A=00, B=01, C=10 en D=11, waardoor het aantal bps verdubbelt. De

baudrate blijft echter dezelfde aangezien de vier frequenties gedurende eenzelfde tijd verstuurd worden.

Baudrate = aantal gegevenseenheden/seconde.

Bitrate = aantal bits per seconde.

Simplex, duplex,…

• Simplex: communicatie in 1 richting. Vb.: omroepsysteem.

• Half-duplex: communicatie in 2 richtingen, maar niet tegelijkertijd. Vb.: walkie-talkie

• Full duplex: communicatie tegelijkertijd in 2 richtingen. Vb.: telefoon.

Seriële communicatie

Seriële communicatie

Signaalniveau’s:

Logische 1: MARK spanning tussen -3 en -15V

Logische 0: SPACE spanning tussen +3 en +15V

Computer A

Modem A

GND

TXD RXD

RXD TXD

RTS

CTS

DSR

DCD

DTR

RIRing indicator – er wordt gebeld...

Data terminal ready – PC is klaar

Data carrier detect – draaggolf gedetecteerd

Data set ready – er is nieuwe data ontvangen

Clear To Send – ik ben klaar om te zenden

Request to send – mag ik beginnen zenden?

2 snelle datalijnen – Full duplex

SUB D 9

FEMALE

SUB D 25

MALE

USB to COM

Converter cable

Op microcontrollerniveau worden TTL-niveau’s gebruikt: 0 en +5V.

Onderling verbinden : geen probleem.

Verbinden met “echt” RS232 systeem : omvormer nodig!

Bekendste chip: MAX232.

Seriële communicatie

Leonardo: Serial en Serial1

De Leonardo heeft 2 seriële kanalen: Serial en Serial1.

• Serial loopt via de USB kabel naar de COMx op de PC.

• Serial1 loopt via pinnen 0 en 1.

Seriële communicatie: (asynchroon)

• Baudrate: hoeveelheid gegevenseenheden per seconde. Bij seriële communicatie zoals op de

Arduino is de gegevenseenheid één bit, dus baud = bit/sec.

Bij andere toepassingen hoeft dit niet het geval te zijn.

• Asynchroon: nood aan start- en stopbit, dus 10 bits versturen om één byte over te brengen.

Indien pariteit: nog één extra bit.

Serial

Seria

l1Seriële communicatie

Pariteit:

• Eenvoudige manier om fouten te detecteren. Even pariteit of oneven pariteit.

Het pariteitsbit zorgt dat het totaal aantal enen (inclusief pariteitsbit) even (bij even pariteit) of oneven

(bij oneven pariteit) is.

Welke pariteit wordt gebruikt in bovenstaand voorbeeld?

Seriële communicatie

Beperking:

• Het blijft één op één communicatie.

Seriële communicatie

RS485

Eigenschappen:

• Differentieel signaal op een positieve en negatieve lijn. Negatieve lijn is inverse

van positieve lijn.

• Tot 32 apparaten op één bus.

• Twee versies:

• 2-draads: half duplex

• 4-draads: full duplex

• Multi drop: één apparaat tegelijk actief op de bus.

Eigenschappen:

• Differentieel signaal op een positieve en negatieve lijn. Negatieve lijn is inverse

van positieve lijn.

• Tot 32 apparaten op één bus.

• Twee versies:

• 2-draads: half duplex

• 4-draads: full duplex

• Multi drop: één apparaat tegelijk op de bus.

Topologie: daisy-chain

Verbinding: twisted pair,shielded

Opgepast: afsluitweerstanden.

Afsluitweerstanden zijn nodig om reflecties in het signaal tegen te gaan.

Mogen alleen aan beide uiteinden actief zijn.

Afgeleid van RS-458: DMX512 (DMX=Digital MultipleXed)

Aansturen podiumbelichting

DMX512

• Ontwikkeld door Philips. Bij Arduino spreekt men over TWI: two wire interface

vanwege patentrechten.

• Tot 127 apparaten op één bus.

• Elk apparaat heeft een uniek adres

• Datarate tot 400kHz.

• Twee lijnen: SDA en SCL

• Master-slave configuratie

• Pull-up weerstanden (meestal verantwoordelijkheid van de master.)

I²C: inter IC connectivity

• Open-drain bus. Apparaat trekt lijn naar massa, tegen pull-up weerstanden in.

• Bidirectioneel

• Elk apparaat kan master of slave zijn, en wisselen op verschillende tijdstippen.

• SCL = clock.

• In normale omstandigheden hoog.

• Slaaf kan lijn laag trekken om aan te geven dat hij meer tijd nodig heeft.

• Gepulst door master tijdens data overdracht.

• SDA = data

• Totale communicatie bestaat uit verschillende delen:

start – adressering – data –stop

SDA laag terwijl SCL hoog = start. Normaal verandert SDA alleen wanneer SCL laag

SDA hoog terwijl SCL hoog = stop.

I2C adres transmissie

Data wordt altijd gelezen op stijgende flank van klok.Adres zelf is 7 bit. 8e bit geeft

lezen (1) of schrijven (0) aan.

Adressen per apparaat toegekend door Philips/NXP

• Betalend

• gepatenteerd

Voorbeeld : kompas (adres=0xC0)

Uitgewerkt voorbeeld: PCF8574 I/O expander.

adres

8-bit poort8-bit poort

Interrupt lijn

I²C lijnen

Uitgewerkt voorbeeld: PCF8574 I/O expander.

write

Uitgewerkt voorbeeld: PCF8574 I/O expander.

read

Seriële communicatie variant: WS2812 RGB led

Din laag voor langer dan 50µs -> reset

Daarna: eerste 24 die binnenkomen worden verwerkt als GRB. De rest wordt

doorgestuurd via Dout naar de volgende LED. Zodra er een reset optreedt worden

de GRB waarden aan de PWM controller doorgegeven.

Maximum 1024 LED’s na elkaar.

1024 x 1,25µs x 24bit/LED = 30.720 µs = goeie 30ms