ingebedde systemen (embedded systems) wat is een embedded systeem? voordelen? meestal voor één...
TRANSCRIPT
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