Ingebedde systemen (embedded systems) Wat is een embedded systeem? Voordelen? Meestal voor één...

Post on 04-Jun-2015

227 views 2 download

Transcript of Ingebedde systemen (embedded systems) Wat is een embedded systeem? Voordelen? Meestal voor één...

Ingebedde systemen (embedded systems)

• Wat is een embedded systeem? Voordelen?

Meestal voor één toepassing.

Eenvoudig: meestal microcontroller!

• Waaraan moet het systeem voldoen?

Betrouwbaarheid: fouttolerant ontwerp&test

Performantie met “low cost” hardware!

Embedded systemen

• Hoe krachtig zijn embedded processoren? Rekenkracht:4 , 8 , 16 , 32 , 64 bit,…..

Hoeveelheid geheugen (program & data)

Beschikbare I/O poorten

Clocksnelheid

Stroomverbruik

• Selecteer i.f.v.toepassing…

Embedded systemen

• Embedded systemen zijn (meestal)REAL-TIME. Verwerken van ‘events’ tegen een bepaalde deadline

• bv. ABS systeem, cruise control….

De deadline voor ‘real time’ is functie van de toepassing!• Snelle of trage systemen kunnen real-time zijn!

De impact voor het missen van een deadline maakt een systeem:• Hard real-time of Soft real-time

Wat is een microcontroller?

CPU

X-talOsc.

PORADRES

DECODER

ROM(FLASH)(EPROM)

(EEPROM)

SRAM

ADRESBUS

DATABUS

PAR.POORT

SER.POORT

TIMERCOUNTER

• Een typisch diskreet microprocessorsysteem.

Nadelen• MTBF

– n:aantal verschillende componenten– qi: hoeveelheid van de ide component– ri: FIT rate (failure in time) per miljart werkingsuren (statistisch)

meestal f( temp, Vcc, Imax)

Nadelen

• PCB ontwerp• EMC problemen• Design fouten (steeds complexere componenten)

• ‘Time to market’ en Kostprijs!

• Een typisch microcontrollersysteem

voordelen• Single chip

– Betrouwbaarheid : MTBF++– minder complexe PCB– betere EMC

• Lower(er) cost• veel standaardoplossingen

bv. INTEL meer dan 25 jaar op de markt.

Wat is er op de markt?

• Voor een gegeven toepassing moet men steeds de

meest geschikte controller kiezen in functie van:

Beschikbaarheid Ervaring tools bibliotheken met beschikbare software kostprijs...

4-bit controllers.• low end toepassingen

– pagers, calculators, games (tamagochi), uurwerk,fiets km teller.

• low cost ($2.5) • low voltage/power

– 1,2V-3,6V@1,8μA active!!!

• low speed– 32KHz….128KHz

• ROM versies!!!!

8 Bit controllers bv. Infineon C537• Medium-end toepassingen

Industriële toepassingen, regelaars, keyboards, PLC’s, subsystemen zoals display-units, sensoren, stepperdrivers.

• Low/medium cost (rond $8)• 40mA @12MHz en 5V (geen low power)• Clock: 3,5 tot 16MHz (niet static!)• -40…85ºC Industrial• Features: Niet ISP! ,2UARTS ,Div/mul unit ,PWM ,12 ch. 10 bit

ADC , Watchdog , Timer/counters , 40 programmable I/O lines

16 bit controllers bv. Infineon XC167

• High end toepassingen.– Reken intensieve toepassingen (bv. servo-

controllers, PID controllers, motorsnelheidsregelingen), PLC’s, Industriële communicatie (CAN-bus), automotive (motor management, ABS,…)

• Medium cost ($20)• Speed:2-20 MHz (100nS instr. Exec. Time)• Industrial -40…85°C

Features: 128Kb Flash, On chip bootstrap loader, On Chip Debug Support

2 CAN controllers,USARTS,TIMER/COUNTERS,16 CH 10 bit ADC WDT, 103 programmable I/O lines….

32 bit controllers bv. MB91F361 Fujitsu (208 MQFP).

• Zeer rekenintensieve taken: Laser printers,inktjet printers, communication products (routers, bridges…), High end gaming, muziek instrumenten, GPS systemen, next generation dashboards.

• Medium cost:($25)• -40..85ºC Industrial• Speed: 16-64 MHz (programmable)

Features: 512Kb Flash (OS), 16Kb RAM, external bus (32bit), CAN 3CH, stepper motor control, Timer/counters, ADC, DAC, I2C, UARTS 3CH, Sound generator, PPG, LED port, DMA controller, Watchdog timer.

De Nayer support:• 4 bit: geen (ROM versies)• 8 bit: 8051 reeks en Atmel AVR reeks

– ADμC832, C517,XC888 ,AT89S8252, 89C51CC01,T89C5115

– AT Mega 128, AT 90S2313,AT 90S8535

• 16 bit: Infineon en Beck– C167– 16 bit IPC@CHIP SC12 (80186)

• 32 bit ARM7 TDMI

rood = ontwikkelbord beschikbaar

CPU

X-talOsc.

PORADRES

DECODER

ROM(FLASH)(EPROM)

(EEPROM)

SRAM

ADRESBUS

DATABUS

PAR.POORT

SER.POORT

TIMERCOUNTER

Basis 8051CPU

X-talOsc.

PORADRES

DECODER

ROM(FLASH)(EPROM)

(EEPROM)

SRAM

ADRESBUS

DATABUS

PAR.POORT

SER.POORT

TIMERCOUNTER

Algemene 8051 familie architectuur.

• Oorspronkelijke 8051(40 pin DIL):– 8 bit CPU– 4 Kb ROM (nu Flash)– 128 bytes interne RAM– twee 16 bit timer/ counter circuits– On chip oscillator– 4 poorten (8bit)– Interrupt controller

Single chip gebruik

CPU-core van Intel (ca. 1980) is identiek, de “extra’s” verschillen!

Extern geheugen soms mogelijk!

Memory map 8051

GPR

00000001

0002

00000001

0002

FFFDFFFEFFFF

FFFD

00040003

00040003

FFFFFFFE

XRAMDATA memory

ROMCODE memory

PROGRAMMA

CPU

Registers

SFR

PIOSIOAD

Timers

00

02

FFFE

8180

FEFF

01

8081

Data bus

Adres bus

RD#

WR#

PSEN#

8 bit 8 bit

MOVC@DPTR

MOVX@DPTR

I/O & control

Read/Write16 bit adres 8 bit adres

Read/WriteRead only

Controlebus

Extern de CPU Intern in de CPU

De externe systeem architectuur.Externe geheugenchips zijn via een adres-databus aanspreekbaar)

ROMCodegeheugen

XRAMDatageheugen

Externe datageheugenruimte

Externe codegeheugenruimte

0000h

FFFFhFFFFh

0000h

0FFFh

1000h

Intern Codegeheugen(ROM)

ROMless controller bv. (C537 en C517)

Codegeheugen:

-Code fetch

-MOVC A,@A+DPTR

Datageheugen: bv.

-MOVX A,@DPTR

/PSEN /RD /WR

4Kb

64Kb

Intern Datageheugen(RAM)

De externe systeem architectuur.De externe codegeheugenruimte van de ADuC832

Hier geen extern geheugen meer mogelijk! (NOP)

De externe bus architectuur.P2

P0

ALE

P3

RDWRPSEN

8051 compatibeleController Bv: C517 van Infineon

Adreslatch

16-bitadresbus

databus

MSB adresbus (A8-A15)

LSBadresbusA0-A7

LSB adres/databus

AD0-AD7

De externe systeem architectuur.

PIN layout 8051(DIL)

-4 poorten met alternatieve functie.

-extern geheugen via poorten 0 en 2 als businterface +

RD+WR+PSEN

De pin functies van de ADuC832

De externe businterface.

-Alleen nuttig met genoeg poorten, anders single chip!

-RST bij 8051 actief hoog!

-ALE om adres/databus te demultiplexen.

-EA om code op te halen uit extern geheugen.

-PSEN om het externe code-geheugen aan te spreken.

Infineon C517/ C537

De externe timing.Het ‘quartz crystal’ als frequentie bepalend element van de clock-oscillator.

Z

freq

De externe timing.

Xtal1 Xtal2

De clock en de relatie tot de systeemtiming

Clockfrequentie bepaald:

-instructietijd

-stroomverbruik

-EMI

veel gebruikt:11.059MHz

PCB layout:

-signaalbanen verbonden met Xtal zeer kort houden.

-Xtal kort bij controller!

-massavlak!

De systeemclock bepaalt de:-clockphases (P1,P2)

-States (S1-S6) , 1state= 2 clockperiodes

-machinecycli , 1 machinecyclus = 6 states

Na 6 states is een eenvoudige instructie klaar: bv ADD A,#data

(bv.1microseconde @12MHz)

Instructieset geeft aantal machinecycli voor elke instructie aan! TIMING!

machinecyclus

Instructie-timing bij een 8051 compatibele controller.

Timing van de buscontrolesignalen.Setup- en holdtime van het externe geheugen (eventueel periferie) nakijken bij interfacing!

Single chip: ALE kan meestal uitgeschakeld worden i.v.m. EMI!

SOFTWAREDe interne 8051 familie architectuur.

Programmeermodel

- ACCUmulator (A)

- Processor Status Word (PSW)

- B register

- Datapointer DPTR (16 bit)

- Program Counter (16-bit)

- Interne registers (geheugenlocaties)

- Special Function Registers (SFR’s)

De interne registers

RS0,RS1

SFR’s hebben een vaste resetwaarde!

Let op bij poorten!

Register = geheugenlocatie die deel uitmaakt van de CPU

De SpecialFunctionRegister’s.(SFR’s)

SFR’s zitten intern in de controller en kunnen worden aangesproken als een CPU register!

De hoeveelheid SFR’s is sterk afhankelijk van het type controller, maar de 8051 basis is bij elke controller steeds aanwezig.

SFR’s zijn de CPU registers en de hardware besturings- en configuratieregisters.

Interne registerstructuur van de 8052. :extra 128 interne registers (RAM)

De systeemstack en de CALL instructie.

instructie ninstructie n+1instructie n+2instructie n+3call subroutineinstructie n+5instructie n+6

XXYY

Externe controller-geheugen met

instructiesAdres vande

instructies16-bits

Interne controller-geheugen

Stack-pointer register(wijst naar intern

geheugen in decontroller)

07h08h09h

0Ah0Bh

SP+1

SP+1

YYXX

SP na reset

SP 8-bit

subroutine

return

1

2

3

4 5

opslaanLSB

opslaanMSB

Program counter 16-bit

PC = subroutine

6

7

8

9

PChigh =XXSP-1

PClow =YYSP-1

Jump to XXYY

Jump to subroutine

PChigh PClow

MOV SP,#end_of_var

PC (16) na reset :0000H

PC geeft adres volgende instructie aan:

• adres volgende instructie

• adres waarnaar gesprongen wordt

Formaat: MNEMONIC [BESTEMMING],[BRON]

MNEMONIC: de omschrijving van wat de instructie doet.vb: MOV = VERPLAATS

ADD = TEL OP...

BESTEMMING: het register waarop de bewerking wordt uitgevoerd, of de bestemming van het te verplaatsen getal, soms optioneel.

vb: 030H = adres register 30HA = de accumulatorR0 = verkort adresseerbaar register, ....

BRON: het register of het getal dat aangeeft van waar de tweede operand moet komen, of wat de tweede operand is. Deze parameter is niet steeds aanwezig (optioneel).

MOV A ,AMOVC Rn ,RnMOVX DIRECT ,DIRECT

@Ri ,@Ri@DPTR ,@DPTRDPTR ,#GETAL 8/16 BITC ,@A+DPTRBIT ,@A+PC

,C,BIT

8051 basis instructies.

Logische bewerkingen

CPL A

Datatransfer in interne dataRAM

Datatransfer in externe dataRAM

Lezen van extern codegeheugen.

Booliaanse (bit) instructies. (Carry-bit= bit accu)

Onconditionele spronginstructies.

Conditionele spronginstructies.

cjne

De taal voor programma-ontwikkeling.

• Embedded systemen : assembler blijft nodig!– Opstartcode (C verwacht geïnitialiseerde omgeving!)

• Stack, Chip select logic, DRAM controller…• na settings in de IDE genereren de meeste compilers een ‘voorstel’.

– snelheid

• Als code complexer en groter wordt, dan zal een HLL handiger zijn.

• Meestal beperkingen wegens beperktheid v/d interne hardware

• Ftp:// telescript.denayer.wenk.be /pub/

Interne periferie van een 8051 controller

Parallelle poorten.(Geen initialisatie nodig)

• 4 bidirectionele basispoorten P0, P1, P2, P3 (SFR’s)• 3 delen: LATCH, OUTPUT DRIVER, INPUT BUFFER• P0 en P2 kunnen gebruikt worden als adres/databus • P3 en 2 bits van P1 hebben ook alternatieve functies

(alternatieve functies kunnen gelijktijdig als poortpin gebruikt worden!!!)

Parallelle poorten.

I/O configuraties

Portbitlatch

Portpindriver

&D

CLK

Q

Q

ReadLatch

Int.Bus

Writeto

Latch

Readpin

Alternatieveinput

functie

Alternatieveoutputfunctie

• typische bit-latch en I/O buffer voor de 4 poorten

Q moet ‘1’ zijn bij gebruik van de alternatieve output functie.

Bij reset: alle pinnen op ‘1’ !!!!

Bv. naar een timercircuit...

inverterende

Externe Poortpin

Poortpin als output.Een portdriver bestaat uit een aantal pFET’s en nFET’s die

zorgen voor een open drain structuur.Een nFET zal niet geleiden met ‘0’ op zijn gate, een pFET zal

dan juist wel geleiden.

DelayOR

1 OSC. PERIOD

Actief bijeen ‘0’ naar

‘1’ flankWeakpull-up

Actief alsV-portpin >

1..1,4V

Poortpin als input (‘1’ niveau op pin na reset of na write met ‘1’)

Extern device dat poortpin van ‘1’ op ‘0’ stuurt, doet P3 sperren!Een ‘0’ naar ‘1’ transitie op een pin verloopt traag tot P3 terug gaat

geleiden!

Extern device

Schakelgedrag van ‘0’ naar ‘1’ van een pin als input.Opgelet bij capacitieve belastingen bv. flat cable!

Pull-up weerstand extern bijplaatsen!

2 4 6 8 10 12 14 16 18 20

1

2

3

4

5

T (uS)

V poortpin

A B Met P3

Zonder P3

P3 komt ingeleiding

De Read-Modify-Write instructies en hun eigenschappen.

Sommige instructies lezen de poortpin andere de poortlatch!RMW instructies lezen de poortlatch!!!!!!!!!

(poort is bestemming!)RMW-Instructie

Omschrijving

ANL Logische AND bv. ANL P1,AORL Logische OR bv. ORL P2,AXRL Logische EX-OR bv. XRL P3,AJBC Jump als bit 1 is en clear bit bv. JBC P1.1, labelCPL Complement bit bv. CPL P3.0INC Increment bv. INC P2DEC Decrement bv. DEC P3DJNZ Decrement and jump if not zero bv. DJNZ P2,labelMOV PX.Y,C Move carrybit in bit Y van poort XCLR PX.Y Clear bit Y van poort XSETB PX.Y Set bit Y van poort X!

RMW instructies lezen de Port Latch!

Portbitlatch

&D

CLK

Q

Q

ReadLatch

Int.Bus

Writeto

Latch

Readpin

Alternatieveinput

functie

Alternatieveoutputfunctie

Vcc

InternePull-up

Vcc Vcc

Actief lagesturing

Actief hogesturing

nFET

Bv. Infineon C537

VOH (output high voltage)=2,4V@-80µA(source stroom)

VOL (output low voltage)= 0,45V@3,2mA(sinc stroom)

Voordelen van de open drain poortdrivers

• poortpinnen (die als output werken) kunnen worden doorverbonden met elkaar zonder dat er beschadiging zal optreden van de driver.

• Dit kan niet bij push-pull uitgangsdrivers!• Nuttig bij interfacing van oa. keyboards of

bij parallelle communicatie tussen systemen!

Schakelaars verbinden met een ingangspoort.

A B C

Welke configuratie werkt?

Digitale poorten als input

8051 8051 8051

R

8051

D

Keyboard/switch basics.+5V

Naar de controlleringang

+5V

GND

Schakelaaropen

Schakelaardicht

Schakelaaropen

Contactdender

Schakelaar ingedrukt t

5 …30ms 5 …30ms

Hardware ontdendering van een ingang

Software ontdendering van een ingang?

Oliedruk schakelaars

Thermostaat schakelaar

Switches

Keyboard =switchmatrix.(Optmaal gebruik van poortpinnen! Vanaf 6 schakelaars)

AT89S8252

"0"

1

1

1

Scanlijnen

1

1

1

1

Leeslijnen

Keyboard matrix

POORT X

Interne pull-up

Interne pull-up

Vertreksituatie: alle scanlijnen op ‘0’

Optocouplers als input

Reflectieve en lichtsluissensoren

Digitale poorten als outputUitgangskarakteristieken standaard 8051 poort

Opgelet: na reset staan alle poortpinnen op “1”! alle devices actief laag aansturen!

Externe invertor nodig om actief laag te sturen!

Poort kan niet genoeg stroom IOH leveren (80uA@2,4V)

Parallelle communicatie tussen twee controllers.

AT89S8252 AT89S8252

Poort x Poort x

P 3.2/ int0 P 3.2/ int0

Bidirectionelehandshakelijn

Bidirectionele datalijnen

Vertreksituatie: beide poorten als ingang en beide handshakelijnen als interruptingang

A B

Timers / counters

• Tellen van ‘events’. (counter)• Meten van tijdsperiodes. (timer)• 8 of 16 bit rimpeltellers.• Één of meerdere clockinputs.• Rollover kan interrupt veroorzaken.• Speciale mogelijkheden: Capture, Compare

Timer0 en Timer1 van de 8051

• twee identieke timer/counters· de tijd bijhouden en/of tijd meten tussen events· het tellen van de events zelf· genereren van tijdsintervallen· het genereren van baudrates voor de seriële poort.

• Verschillende werkingsmodes.• Controle door SFR’s: TMOD en TCON• Timer zelf bestaat uit: THx en TLx (x=0,1)

Mode0

Mode1

Mode2

De besturingsregisters: TMOD

GATE: Gating controle. (‘0’ : enabled, ‘1’ :INT pin moet 1 zijn)C/T: Counter of Timer selectiebit. (‘0’=timer, ‘1’= counter)MODEBITS M1,M0. (bepalen de 4 werkingsmodes)

Niet ‘bitadresseerbaar’

De besturingsregisters: TCON

TR0 en TR1 zetten de timer/counters aan/uit

TF0 en TF1 zijn de ‘overflow’ statusbits

Toepassingen met Timer 0 en 1.Tijdsmetingen van ‘events’ (eenmalige intervalmeting)

OSC Div 12

1

&

TF0TL0

(8 Bits)TH0

(8 Bits)T0 pin

Gate

INT0 pin

TR0Control

C/T =0

C/T =1

Interrupt

5V

Gnd

Externevent

Set&Cleareddoor hardware

Resetten voorintervalmeting

INT0 kan gelijktijdiggebruikt worden als een

interruptingang en als gate.

>

t

‘1’

t

Timerincrements elke µSEC.

1µSEC onzekerheid 1µSEC onzekerheid

Toepassingen met Timer 0 en 1.Tijdsmetingen van ‘events’ (eenmalige intervalmeting)

FFFFh

0000h

Timeroverflow

IRQTimer

IRQgate

t

IRQTimer

IRQTimer

IRQTimer

Tellerregister16 bit

Gatesignaal

65556µSEC@12MHz

65556µSEC@12MHz

65556µSEC@12MHz

65556µSEC@12MHz

5555h

21845µSEC@12MHz

t

Gate tijd= 4x65536µSEC +21845 µSEC

C/T=0TR0=1

GATE=1RESET TH0,TL0

Startmeting

IRQ Timer : INC “COUNTER”

IRQ gate : lees TH0, TL0 en “COUNTER” en bereken de tijd

COUNTER TH0 TL0

Overflows tellen

Stop:Gate dicht

Genereren van periodische timeroverflows of ‘timeticks’.

• 16 bit TIMER (mode1)

65536µSEC@12MHz

t0000h

FFFFh

16 bit timer (mode1)zonder reload

TimerIRQ TimerIRQ TimerIRQ

Timer overflow

Genereren van periodische timeroverflows of ‘timeticks’.• 16 bit TIMER (mode1) met software reload.

t0000h

FFFFh

TimerIRQTimerIRQ TimerIRQ

Timer overflows

TimerIRQ TimerIRQ

XXYY“preload”

(FFFF-XXYY) . f/12

Timing jitter!

Interruptroutine bij timeroverflow:stop timer: TR0=0reload timer: TH0=XX

TL0=YYstart timer: TR0=1“toepassing” bv. Sturen van poortpinnenRETI

Interrupt latency time = constant !!!

timingjitter

= geschikt als “timetick”

Accumulatie van timingfouten!!

Genereren van periodische timeroverflows of ‘timeticks’.8 bit TIMER met autoreload.

FFh

00h

THxreloadwaarde

t

timeroverflows

timerIRQ

timerIRQ

timerIRQ

timerIRQ

timerIRQStart timer

TLx en THxladen

(FFh-reload).12/f

DJNZ COUNTER,BACKMOV COUNTER,#SKIP_IRQ

BACK: RETI

Toepassing

timerIRQ Initialisatie: MOV COUNTER, #SKIP_IRQ

Timer2 van de 8051 familie (8052)• 16 bits timer met speciale eigenschappen: externe reload'Missing or late pulse' detector. (netspanningsuitval)

Sync. van de‘reload’ met dedalende flank

Grotere tijd tussen ‘timeticks’ zonder tussenkomst van de CPU

Toepassing bv. ‘missing’ of ‘late’ pulse detector

Te bewaken pulstrein

Missing pulse detector

Timeroverflow

TR2= ‘on’EXEN2= ‘on’

Geenoverflow

IRQ

okNiet ok

Vanaf hierdetectie

Pulsontbreekt

T2EXpin

ok

ReloadXXYY

0000h

FFFFh

TL2,TH2 laden

OverflowIRQ

t

t

Absolute positiemeting a.d.h.v. lijnsensoren en hoekencoders.

De 4 velden van de ‘scanning reticle’ zijn 1/4 van de onderverdelings-periode (360º/line count) in fase verschoven

Differentiëel meten

Absolute positiemeting a.d.h.v. lijnsensoren of hoekencoders.

A

Bcw

Bccw

D Q

Clk

A

B Direction T2EX pin

Count T2 pin

Absolute positiemeting a.d.h.v. lijnsensoren of hoekencoders.

0000h

underflow

overflow

Direction(ook softwarematig tecontroleren =pin P1.1)

P1.0

Telleringang

(signaal A)

Via interrupts ook softwarematig uit te breiden naar grotere bereiken (extra byte) met dezelfde resolutie!

Absolute positiemeting a.d.h.v. lijnsensoren of hoekencoders.(digitale servosystemen)

Direction

Count

FFFFh

0000h

7FFFh

Preload

Up Down

t

Start beweging

‘0’ positie‘home’

t

t

Up

TR2=’on’

+ - +

+

-

Voor lijnsensor met 20pulsen/mm (50μm) geeft dit een bereik van 1638,4mm(1,6m!)

met een resolutie van 50μm.

Tellerwaarde geeft steeds de positie weer!

Capture mode. • sampling van timerdata bij een “event”

(bv. op de dalende flank van een signaal)

Timer2 in CAPTURE mode

Interrupts tellenvoor software‘teller extentie’

Te meten signaal

Capture interrupt => lezen van de data uit de capture registers!

Toepassing :

Periodemeting a.d.h.v. capture mode.

Capture1

Capture2

0000h

FFFFh

1713h

E01fh

t

t

T2EX

Tellerwaarde

time= (capture2 - capture1)x 12/f

TimeroverflowIRQ

CaptureIRQ

CaptureIRQ

overflow

Timer2 in CAPTURE mode

Interrupts tellenvoor software‘teller extentie’

Compare unit.

S

R

QPort x.y

16 bit timer (autoreload)

16 bit compareregister16 bit

digitalecomparator

match

Timeroverflow

• Basisfrequentie aanpassen door de reloadwaarde van de timer.

• Pulsbreedte veranderen door compareregister aan te passen.

DC inhoud van PWM signalen.

DC inhoud

Spectrum van een PWM signaal

Filtereigenschappen

Spectrum van het PWM signaal

Externe low-pass

Bandbreedte waarmee men de duty-cycle van het signaal laat veranderen.

Fbw<<Fpwm

t

Vout

• PWM DAC

Low pass

• Motorsturing (H-brug)

Opwekken van meerdere complexe timingsignalen.

(A.d.h.v. een timer met compare unit)

Opwekken van meerdere complexe timingsignalen.

- Geen timing skew tussen signalen

- Geen timingjitter

- Tot 8 kanalen (C537)

Watchdog timer

WDTENWDTRSTPS0,PS1,PS2

ResetCPU

Prog.prescaler

Watchdogtimer

Onafhankelijkeoscillator

Osc.

Power onPOF bit=’1'RST heeft

geen invloed

(Power Failure)

Bv. 89S8252 van Atmel

POF bit uit PCON register

-Betrouwbaarheid => -onmogelijk om manueel te resetten -niet snel genoeg

-intern of extern

Write ‘1’

Watchdog timer

Main loopPOF='0"

normale hoofdprogramma(oneindige lus met bepaalde

maximum-timing)

watchdog reset

POF='1'?

Systeeminitialisatie

N

Jok Error handler(error counter??)

nok

Watchdog reset

Shut down

Interrupt handler

Power-on 'POF'='1'

Bv: programma-loop= 26mSEC watchdog=32 mSEC

- Kan eens hij is ingeschakeld, niet meer softwarematig uitgeschakeld worden.

- Voor sommige producten (fail save) eist TUV een externe WDT wegens mogelijke fouten bij init.

-NOOIT een watchdogtimer a.d.h.v. een andere timertijdbasis resetten op interruptbasis!!!!

Reset door power-on of door RST signaal van watchdog timer

Problemen bv:

-slecht geteste software.

-overvloed aan interrupts.

-deadlock bij multitasking

-EMI probleem

Watchdog= on

Seriële poorten

• Asynchrone communicatie. (via een UART) Byte gesynchroniseerde communicatie door freq. verschil Tx en Rx

LSB MSB0V

+5V

EvenPAR

Startbit

0 0 0 0 00 1 Stop / rust1 1 1Stop /rust

t

CMOSniveaus

• data-uitwisseling tussen embedded systemen en PC (user interface)

• communicatie tussen embedded systemen

(CMOS niveau’s zijn onbruikbaar voor real world communicatie)

Parameters:

• aantal databits

• pariteit

• aantal stopbits

• bitsnelheid (Baudrate)

Asynchrone comm.op 8051

SBUF

Ontvangstbuffer

Transmitter

Receiver

Baud rategenerator

SCON

TxD

RxD

Data van ennaar de CPU

- 8bit uart met variabele baud rate (start, 8 data, stop)

- 9 bit uart met vaste baud rate (start, 8 data, instelbare 9de bit, stop) BR=1/32 of 1/64 fosc.

- 9 bit uart met variabele baud rate (start, 8 data, instelbare 9de bit, stop)BR= instelbaar

Bv. MOV SBUF,A

SBUF is op hetzelfde adres tweemaal aanwezig:

-Eenmaal write only (TX)

-Eenmaal read only (RX)

RI en TI bit geven status aan.

SCON SFR

Baud rates

Bitrate=

SMOD

32X T1

T1 = F oscillator12x[256-(TH1)]

TH1= reloadwaarde TIMER1

2SMOD= controlebit uit PCON SFR

-8052 compatibele controllers (extra timer2)

-C537 twee seriële poorten met dedicated BR generator

-Timer3 bij de ADuC832

Met SMOD=0 geeft 0fdh als reloadwaarde bij 11.059MHZ een bitrate van 9600BPS

C537 van Infineon.Voordeel van de dedicated Baudrate generator: met 12MHz Xtal toch standaard Baudrates!

SCON SFR

Multiprocessor communicatie• Master-Slave of multidrop mode

TxD RxD RxD RxD RxDTxD TxD TxD

Master Slave

Adres=1 Adres=2 Adres=3

Slave Slave

Bv. RS485

• 9 bits mode, 9de bit= data (0) of adres (1) ID

• op slaves multiprocessor-mode aanzetten (SM2=1)

• interrupt op adresbyte received

• slave reset SM2 bit (interrupt on databyte received)

(of open collector)

Configuraties bij seriële verbindingen• Open collector interface (on board comm.), met LIN driver: LIN-

bus!

+

-

+6V

+

-

+6V

+

-

+6V

Open collector

Open collector

Open collector

Comparator

Comparator

Comparator

Pull-up

Gemeenschappelijke lijn

TxD

RxD

TxD

TxD

RxD

RxD

Master

+12V

Voordeel:

-eenvoudige hardware, one wire

Nadeel:

-half duplex

-snelheid is f(Cpar,Rpull-up)

-protocol nodig(master/slave)

Alternatief: 4000 reeks logica

CAN

CAN

Power Train

Light

Sub-Bus

ITS

Window Lift

InteriorLight

Lock

Mirror

Lock

Mirror

Lock

Lock

Seat

Htng

Seat

Htng

Instruments

CentralBody Ctrl

Climate

Universal Motor

Universal Panel

Light

Roof

1 backbone, 13 nodes8 subnets, 1-8 local nodes52 nodes total

St-Wheel Panel

x6Htng

Htng

Seat

Wiper

Trunk

WHtg

Universal Light

Toepassing van de LIN-bus.

Roof:(high amount of wiring)

Rain Sensor, Light Sensor, Light Control, Sun Roof …(Rain Sensor needs to be interrogated every 10-20ms)

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 MotorsControl Panel

Seat:many Seat Position Motors,Occupancy Sensor,Control Panel

• Door/window/seat: Mirror,Central ECU, Mirror, Switch, Window Lift,Seat Control Switch,Door Lock, etc.

LIN-toepassingen

LIN Message Frame

synch break 13 bit

synch field identifier

message header

0 to 8 data fields checksum

message response

byte fieldSCI / UART format

start stop

0 1 2 3 4 5 6 7

LSB

LIN Message Frame

RS232 (EIA232) punt-punt verbinding (unbalanced).

• Elektrische eigenschappen

Signaal generator Signaal onvanger

Verbindings-kabel

<50 Ohm 3K...7K Ohm

Ro RL

Co CL

<2500pF

Vo

<±25VEL

<±2V

Pin 7 Ground Pin 7 Ground

Informatie overdracht

connectorpinnen

• signaalspanning , signaaltiming , signaalfunctie, protocol voor informatie-uitwisseling , mechanische connecties (subD connectoren)

• verschillende fabrikanten gebruiken vereenvoudigde versies

• er is geen vereenvoudigde standaard=> iedereen gebruikt de opgegeven spanningen en connectoren met eigen verbindingskabels en protocols!

Ishort max. 500mA

+/- 12V

Foutspanning door verschillendmassapotentiaal

RS232levelCMOS level

RS232level CMOS level

Single-ended(unbalanced)

communication

verbindingskabel

Unbalanced (signaal t.o.v. massa)Nadeel: - verschil in massapotentiaal is niet ondenkbaar bij grotere afstanden

- moelijk af te schermen signaaldraden= overspraak (bij hoge frequenties) Gedeeltelijke oplossing: - CAT5 kabel (low cap) gebruiken

- slew rate beperken van signalen (niet in standaard)

Standaard : 15m en 20Kbps (kabel uit 1960)

met laag capacitieve kabel :

Praktisch: 25m en 115Kbps tot 200Kbps

Signaalspanningen

Spanning

Space

mark

Space

Logisch ‘0’

Logisch ‘1’

+25V

+3V

-25V

-3V

Transitiegebied

‘0’ +8V tot +12V

‘1’ -8V tot -12V

Slew rate wordt beperkt tot 30V/μsec

Praktisch

Embeddedsystem

PC

2

3

7

3

2

7

Transmitted data

Received data

Signal ground

MAX232 Vereenvoudigde verbinding, zonder hardware handshaking, maar met software handshaking XON/XOFF.

RS422/RS485 balanced verbinding (bv. bij CAN)

Vcm

Common mode spanning (Vcm) wordt onderdrukt door de differentiële ingang van de receiver, dit binnen bepaalde grenzen!

Input A

Input B

Data is de verschilspanning tussen A-line en B-line:

‘0’ VA-VB=< -0,2V en ‘1’ VA-VB>= +0,2V

• ruis is op beide geleiders even groot en wordt dus als CM spanning onderdrukt

• Twisted pair kabel wordt meestal gebruikt bij dit soort interface

• hoge snelheden zijn mogelijk (10Mbps) bij grote kabellengte (1km) +afsluitimpedantie!

Differentiële uitgang

Twisted pair cable

RS422<=>RS485

1 afsluitweerstand 2 afsluitweerstanden (beide uiteinden)

RS485 driver (SN75176)Er is nog altijd een massaverbinding nodig, ook bij balanced verbindingen!

VCC1 VCC2

GND1 GND2

A

A

OUT

IN

Massaverbinding blijft nodig

Isignaal

Grounding bij balanced verbindingen

Er moet een referentiegeleider worden doorverbonden, doch best via enkele weerstanden.

Stroombeperking bij kortsluiting van een signaal met het chassis

Bus termination & fail save.

Termination aan beide zijden van de verbinding:

• Bij lage snelheden minder van belang (transiënt is uitgestorven wanneer een bit wordt gesampled)

• Dit kan bij punt-punt verbindingen

• Moeilijk bij sterverbindingen (stubs kort houden!)

Fail save nodig bij:

• draadbreuk

• bus ‘turn around’

Galvanische isolatieWaarom?

Bij meer dan 32 nodes: repeaters of galvanische scheiding.• Groter netwerk = > meer ruis

op datalijnen. Men kan het netwerk opsplitsen in kleinere delen door ze galvanisch te scheiden.

• Netspanning op netwerkkabel!

• Grotere common mode spanningen mogelijk zonder beschadiging bv. bij indirecte blikseminslag.

EINDE