nätverkstopologier nätverksprotokoll asynkron/synkron ... · maskinorienterad programmering...
TRANSCRIPT
Maskinorienterad programmering
Seriekommunikation 1
Seriekommunikation
Ur innehållet:NätverkstopologierNätverksprotokollAsynkron/synkron seriell överföringProgrammering av USART-krets
Läsanvisningar:Arbetsbok kapitel 7
Maskinorienterad programmering
Seriekommunikation 2
Parallell överföring
+ god bandbredd- många ledare ger dyrare överföringsmediamycket snabbt vid korta avstånd
Maskinorienterad programmering
Seriekommunikation 3
Seriell överföring
+ få ledare ger enklare (billigare) överföringsmedia- sämre bandbreddöverföringshastighet efter prestandakrav
Maskinorienterad programmering
Seriekommunikation 4
Nätverkstopologi
Strukturer för hur datorer kopplas i hop, ofta ser man kombinationer av de olika varianterna.
Olika ”protokoll” har utvecklats för olika strukturer, exvis:RS232 (punkt till punkt)Ethernet (mask, stjärna)Token ring (ring)USB (träd)CAN, LIN (buss)
Maskinorienterad programmering
Seriekommunikation 5
Kommunikationsmedia
NätverksprotokollEtt "kommunikationsprotokoll" är en uppsättning regler som tillsammans entydigt specificerar hur datautbytet (datakommunikationen) ska gå till. Protokollen baseras oftast på någon speciell nätverkstopologi och förutsätter någon speciell accessmetod.
Med acessmetod (åtkomstmetod) menar man den policy somanvänds när en nod behöver skicka data och därför måsteanvända kommunikationsmediat. De vanligaste är:• Master/Slave• CDMA, Collission Detect, Multiple Access• CRMA, Collission Resolution, Multiple Access• TDMA , Time Division, Multiple Access• "token”, ring-protokoll
Maskinorienterad programmering
Seriekommunikation 6
Asynkron överföring, Startbitsdetektering
Protokollet anger en ”ledig”-nivå på kommunikationsledningen. Då nivån växlar tolkas detta som en ”startbit” (t0).Mottagaren läser därefter av ledningen (”samplar”) efter ett halvt bitintervall (t1) och därefter ytterligare hela bitintervall (t2,t3,t4 osv).
Maskinorienterad programmering
Seriekommunikation 7
Klocksynkronisering
Genom att specificera maximalt antal bitar som skickas vid ett tillfälle, en ”ram”, kan man också bestämma en största tillåten differens och därmed också acceptera skillnader hos sändares respektive mottagare klockor.
Vid olika hastighet kommer en förskjutning av mottagarens sampling så småningom resultera i att fel bitintervall samplas...
Maskinorienterad programmering
Seriekommunikation 8
RS232, 9-bitars ramExempel på hur en ram kan se ut
Bitarnas betydelse definieras mera exakt av protokollet
Exempelvis, ”RS232”: ASCII-tecknet ’z’ (= 01111010=0x7A, LSB först) överförs då på följande sätt
Maskinorienterad programmering
Seriekommunikation 9
Synkron överföringGemensam klocksignal och data
EXEMPEL: Manchester kodning, bitlängden bestäms av positiva flanker, nivån i mitten av biten anger 0 eller 1.Metoden kallas RZ (Return to Zero)
Kräver bara en ledning men minskar bandbredden.
Maskinorienterad programmering
Seriekommunikation 10
Synkron överföringKlocksignal och data på skilda ledningar
Kräver två ledningar men ökar bandbredden.
Används för enklare tillämpningar, industristandarder: SPI (Serial Peripheral Interface)I2C använder denna teknik.
Maskinorienterad programmering
Seriekommunikation 11
USART
RS232 (PtoP, duplex)
LIN (asynkron buss)
IR(trådlöst)
USART – Universal Synchronous/Asynchronous Receiver/Transmitter
Smartcard (synkron buss)
Fysiskt gränssnitt (transceiver)
Maskinorienterad programmering
Seriekommunikation 12
USART –programmerarens bild, som en struct...
Registeruppsättning
typedef struct tag_usart{volatile unsigned short sr;volatile unsigned short Unused0;volatile unsigned short dr;volatile unsigned short Unused1;volatile unsigned short brr;volatile unsigned short Unused2;volatile unsigned short cr1;volatile unsigned short Unused3;volatile unsigned short cr2;volatile unsigned short Unused4;volatile unsigned short cr3;volatile unsigned short Unused5;volatile unsigned short gtpr;
} USART;#define USART1 ((USART *) 0x40011000)
Maskinorienterad programmering
Seriekommunikation 13
USART –RS232
"Terminal"- konsollfönster
Det finns 8 olika seriekretsar...
Ofta kommuniceras UTF8 (ASCII-) tecknen
USART RS232
Programmerarens bild
Fysiskt gränssnitt (transceiver)
Terminal
Maskinorienterad programmering
Seriekommunikation 14
EXEMPEL: Enkla in- och utmatningsrutiner med USART Skapa funktioner:_outchar(char c) som matar ut 'c' till en terminal.char _tstchar(void) som kontrollerar om något tecken anlänt från terminalen, i så fall returnerar detta, annars returneras 0.char _inchar(void) som väntar tills något tecken anlänt från terminalen, och returnerar detta.
Vi löser på tavlan...
Maskinorienterad programmering
Seriekommunikation 15
UART Status och dataregister
Bit 7: TXE: Transmit dataregister emptyDenna bit sätts av hårdvara när innehållet av TDR registret har överförts till skiftregistret. Ett avbrott genereras om TXEIE bit = 1 i registret USART_CR1. Det återställs vid skrivning till USART_DRregistret.0: Dataregistrets sändardel är upptaget med en överföring.1: Dataregistrets sändardel är klar att användas.
OUTCHAR(c):// Vänta tills TXE är 1// Skriv 'c' till dataregistret
Bit 5 RXNE: Receive data register not empty Denna bit sätts då innehållet i skiftregister RDR har överförts till USART_DR, dvs. ett nytt tecken har kommit. Ett avbrott genereras om RXNEIE = 1 i USART_CR1. Biten nollställs igen vid en läsning från USART_DR. Biten kan också återställas genom att skriva en nolla till den. 0: Inget nytt innehåll i USART_DR sedan senaste läsningen1: Nytt innehåll finns i USART_DR.
TSTCHAR: réturnera c// Är RXNE=1 ?// Nej, c = 0// Ja, läs c från dataregistret// Returnera c
Maskinorienterad programmering
Seriekommunikation 16
UART feldetektering
Bit 3 ORE: Overrun ErrorDenna bit sätts av hårdvaran om ett nytt tecken anländer samtidigt som det finns ett oläst tecken i dataregistret ("overrun error"). Ett avbrott genereras om RXNEIE = 1 i USART_CR1. Det återställs av en läsning från USART_SRföljt av en läsning från USART_DR.0: Inget förlorat tecken1: Mottaget tecken är överskrivet (förlorat)
Bit 2 NF: Noise detection FlagDenna bit sätts av hårdvara när störningar i form av brus upptäcks i en mottagen ram. Biten återställs av en läsning från USART_SR följt av en läsning från USART_DR.0: Ingen störning detekterad1: Störning detekterad
Bit 1 FE: Framing Error Denna bit sätts av hårdvara när ett ramfel, oftast orsakat av förlorad synkronisering, upptäckts. Biten återställs av en läsning från USART_SR följt av en läsning från USART_DR.0: Inget ramfel upptäcks1: Ramfel eller BREAK-ram detekterad
Bit 0 PE: Parity ErrorDenna bit sätts av hårdvara när ett paritetsfel uppträder hos mottagaren. Biten återställs av en läsning från USART_SRföljt av en läsning från USART_DR. Programmet måste vänta på att RXNE-biten ettställts innan PE-biten återställs. Ett avbrott genereras om PEIE = 1 i USART_CR1.0: Inget paritetsfel1: Paritetsfel
Maskinorienterad programmering
Seriekommunikation 17
Protokoll i fordonstillämpningar
Power Train
Infotainment systems
Window lift
Interior lights
Lock
Mirror
Lock
Seat
Seat
Instruments
Central body control
Universal motor
Universal panel
Roof
Steering wheelpanel
SeatHeating
Low end performanceMedium performanceHigh performanceVery high performance
Climate
Heating
Heating
Heating
Mirror
LockLock
Lock Lock
Mirror
TrunkRoof
Seat
SeatSeat
Maskinorienterad programmering
Seriekommunikation 18
LIN, 1998
LIN Local Interconnection network ursprungligen: VOLCANO Lite
Partners:Freescale, VOLVO CAR, BMW, AUDI, Volkswagen, Daimler-ChryslerMentor Graphics (tidigare: Volcano Communication Technology)
Syfte:Låg kostnad, mindre prestanda och säkerhetskrav, flexibel
systemarkitektur
Maskinorienterad programmering
Seriekommunikation 19
Door/window/seat: Mirror,Central ECU,
Mirror, Switch, Window Lift,
Seat Control Switch,Door Lock, etc.
Roof:(high amount of wiring)
Rain Sensor, Light Sensor, Light Control, Sun Roof …
(Rain Sensor needs to be interrogated every 10-20ms)
Seat:many Seat Position Motors,
Occupancy Sensor,Control Panel
Steering Wheel:(very many controls are going to be positioned on the steering wheel)
Cruise Control, Wiper,Turning Light, …
Optional: Climate Control, Radio, Telephone, etc.
Climate: many Small Motors
Control Panel
LIN, typiska tillämpningar
Maskinorienterad programmering
Seriekommunikation 20
LIN, kommunikation (master/slave)
timeMaster Task
timeSlave Task
next synch fieldinter-frame spacing synch
2 byte 1 byte
Response spacing
Identifier field
block paritydata
master control unit
slave task
master task
slave control unit
slave task
slave control unit
slave task
polling
Maskinorienterad programmering
Seriekommunikation 21
CAN, Controller Area Network– Bus topology– CSMA/CR (Carrier sense, Multiple
Access/ Collision Resolution)– Error detection capabilities– Supports “atomic broadcast”– 0-64 bytes of data per frame– Twisted pair – Maximum 1 Mbit/s
CTRL DATA CRC ACKSOF EOFARB
ARB Arbitration(identifier)
CTRL Control informationDATA 0-8 bytesCRC ChecksumACK Acknowledge EOF End of frame
MESSAGE FRAME
Maskinorienterad programmering
Seriekommunikation 22
CAN, detektering av ”busskrock”
Bus transceivers”Open collector”
Bus level:Recessive (bit) ”1”Dominant (bit) ”0”
+5V
NodeA
Bus level
Node B
1 1
R
Idle bus (recessive level)
Maskinorienterad programmering
Seriekommunikation 23
CAN, detektering av ”busskrock”Two nodes transmitting same level (1)
+5V
Node A
Bus level
Node B
1 1
1
IR = 0
IA = 0
1
IB = 0
11
transmit 1receive 1
transmit 1receive 1
Maskinorienterad programmering
Seriekommunikation 24
CAN, detektering av ”busskrock”
+5V
Node A
Bus level: 0V
Node B
1 10 1IB=0
IR=IA
1 0IA
0 0
R
Node B aborts transmission since the received bit differs from the transmitted bit
transmit 0receive 0
transmit 1receive 0
Maskinorienterad programmering
Seriekommunikation 25
CAN, arbitrering
EXAMPLE: Three nodes start simultaneouslyNode A transmits: $257 (0010 0101 0111)
Node B transmits: $360 (0011 0110 0000)
Node C transmits: $25F (0010 0101 1111)
Bit number SOF 1 2 3 4 5 6 7 8 9 10 11 12 13
Bus level D D D R D D R D R D R R R R
Node A 0 0 0 1 0 0 1 0 1 0 1 1 1 1
Node B 0 0 0 1 1 Aborts
Node C 0 0 0 1 0 0 1 0 1 1 Aborts
Arbitration field (identifier with priority)Nodes ”own” specific message identifiers.