De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Ingebedde systemen (embedded systems) Wat is een embedded systeem? Voordelen? Meestal voor één toepassing. Eenvoudig: meestal microcontroller! Waaraan.

Verwante presentaties


Presentatie over: "Ingebedde systemen (embedded systems) Wat is een embedded systeem? Voordelen? Meestal voor één toepassing. Eenvoudig: meestal microcontroller! Waaraan."— Transcript van de presentatie:

1 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!

2 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…

3 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

4 Wat is een microcontroller? Een typisch diskreet microprocessorsysteem.

5 Nadelen MTBF –n:aantal verschillende componenten –qi: hoeveelheid van de i de component –ri: FIT rate (failure in time) per miljart werkingsuren (statistisch) meestal f( temp, Vcc, Imax)

6 Nadelen PCB ontwerp EMC problemen Design fouten (steeds complexere componenten) ‘Time to market’ en Kostprijs!

7 Een typisch microcontrollersysteem

8 voordelen Single chip –Betrouwbaarheid : MTBF++ –minder complexe PCB –betere EMC Lower(er) cost veel standaardoplossingen bv. INTEL meer dan 25 jaar op de markt.

9 Wat is er op de markt?

10 Voor een gegeven toepassing moet men steeds de meest geschikte controller kiezen in functie van: Beschikbaarheid Ervaring tools bibliotheken met beschikbare software kostprijs...

11 4-bit controllers. low end toepassingen –pagers, calculators, games (tamagochi), uurwerk,fiets km teller. low cost ($2.5) low voltage/power active!!! low speed –32KHz….128KHz ROM versies!!!!

12 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) 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

13

14 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

15 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….

16 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) ºC Industrial Speed: MHz (programmable)

17 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.

18 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 90S bit: Infineon en Beck –C167 –16 bit SC12 (80186) 32 bit ARM7 TDMI rood = ontwikkelbord beschikbaar

19 Basis 8051

20 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!

21 Memory map 8051 Extern de CPUIntern in de CPU

22 De externe systeem architectuur. Externe geheugenchips zijn via een adres-databus aanspreekbaar) ROM Codegeheugen XRAM Datageheugen Externe data geheugenruimte Externe code geheugenruimte 0000h FFFFh 0000h 0FFFh 1000h Intern Codegeheugen (ROM) ROMless controller bv. (C537 en C517) Codegeheugen: -Code fetch -MOVC Datageheugen: bv. -MOVX /PSEN /RD /WR 4Kb 64Kb Intern Datageheugen (RAM)

23 De externe systeem architectuur. De externe codegeheugenruimte van de ADuC832 Hier geen extern geheugen meer mogelijk! (NOP)

24 De externe bus architectuur. P2 P0 ALE P3 RD WR PSEN 8051 compatibele Controller Bv: C517 van Infineon Adres latch 1 6-bit adresbus databus MSB adresbus (A8-A15) LSB adresbus A0-A7 LSB adres/ databus AD0-AD7

25 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

26 De pin functies van de ADuC832

27 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

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

29 De externe timing. 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!

30 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 Instructieset geeft aantal machinecycli voor elke instructie aan! TIMING! machinecyclus Instructie-timing bij een 8051 compatibele controller.

31 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!

32 SOFTWARE De 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)

33 De interne registers RS0,RS1 SFR’s hebben een vaste resetwaarde! Let op bij poorten! Register = geheugenlocatie die deel uitmaakt van de CPU

34 De S pecial F unction R egister ’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.

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

36 De systeemstack en de CALL instructie. instructie n instructie n+1 instructie n+2 instructie n+3 call subroutine instructie n+5 instructie n+6 XXYY Externe controller- geheugen met instructies Adres van de instructies 16-bits Interne controller- geheugen Stack-pointer register (wijst naar intern geheugen in de controller) 07h 08h 09h 0Ah 0Bh SP+1 YY XX SP na reset SP 8-bit subroutine return opslaan LSB opslaan MSB Program counter 16-bit PC = subroutine PChigh =XX SP-1 PClow =YY SP-1 Jump to XXYY Jump to subroutine PChighPClow MOV SP,#end_of_var PC (16) na reset :0000H PC geeft adres volgende instructie aan: adres volgende instructie adres waarnaar gesprongen wordt

37 8051 basis instructies.

38 Logische bewerkingen CPL A

39 Datatransfer in interne dataRAM

40 Datatransfer in externe dataRAM

41 Lezen van extern codegeheugen.

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

43 Onconditionele spronginstructies.

44 Conditionele spronginstructies. cjne

45 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/

46 Interne periferie van een 8051 controller Parallelle poorten. (Geen initialisatie nodig)

47 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.

48 I/O configuraties 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

49 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.

50 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

51 Schakelgedrag van ‘0’ naar ‘1’ van een pin als input. Opgelet bij capacitieve belastingen bv. flat cable! Pull-up weerstand extern bijplaatsen!

52 De Read-Modify-Write instructies en hun eigenschappen. Sommige instructies lezen de poortpin andere de poortlatch! RMW instructies lezen de poortlatch!!!!!!!!! (poort is bestemming!) !

53 RMW instructies lezen de Port Latch! nFET Bv. Infineon C537 V OH (output high voltage) (source stroom) V OL (output low voltage)= (sinc stroom)

54 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!

55 Schakelaars verbinden met een ingangspoort. ABC Welke configuratie werkt? Digitale poorten als input 8051 R D

56 Keyboard/switch basics. 5 …30ms

57 Hardware ontdendering van een ingang Software ontdendering van een ingang?

58 Oliedruk schakelaars Thermostaat schakelaar Switches

59 Keyboard =switchmatrix. (Optmaal gebruik van poortpinnen! Vanaf 6 schakelaars) Interne pull-up Vertreksituatie: alle scanlijnen op ‘0’

60 Optocouplers als input Reflectieve en lichtsluissensoren

61 Digitale poorten als output Uitgangskarakteristieken standaard 8051 poort Opgelet: na reset staan alle poortpinnen op “1”! alle devices actief laag aansturen!

62 Externe invertor nodig om actief laag te sturen! Poort kan niet genoeg stroom I OH leveren

63 Parallelle communicatie tussen twee controllers. AT89S8252 Poort x P 3.2/ int0 Bidirectionele handshakelijn Bidirectionele datalijnen Vertreksituatie: beide poorten als ingang en beide handshakelijnen als interruptingang AB

64 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

65 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)

66 Mode0

67 Mode1

68 Mode2

69 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’

70 De besturingsregisters: TCON TR0 en TR1 zetten de timer/counters aan/uit TF0 en TF1 zijn de ‘overflow’ statusbits

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

72

73 Genereren van periodische timeroverflows of ‘timeticks’. 16 bit TIMER (mode1)

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

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

76 Timer2 van de 8051 familie (8052) 16 bits timer met speciale eigenschappen: externe reload Sync. van de ‘reload’ met de dalende flank Grotere tijd tussen ‘timeticks’ zonder tussenkomst van de CPU Toepassing bv. ‘missing’ of ‘late’ pulse detector Te bewaken pulstrein

77 Missing pulse detector

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

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

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

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

82 Absolute positiemeting a.d.h.v. lijnsensoren of hoekencoders. (digitale servosystemen) 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!

83 Capture mode. sampling van timerdata bij een “event” (bv. op de dalende flank van een signaal) Te meten signaal Capture interrupt => lezen van de data uit de capture registers!

84 Toepassing : Periodemeting a.d.h.v. capture mode.

85 Compare unit. Basisfrequentie aanpassen door de reloadwaarde van de timer. Pulsbreedte veranderen door compareregister aan te passen.

86 DC inhoud van PWM signalen. DC inhoud

87 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<

88 PWM DAC Low pass

89 Motorsturing (H-brug)

90 Opwekken van meerdere complexe timingsignalen. (A.d.h.v. een timer met compare unit)

91 Opwekken van meerdere complexe timingsignalen. - Geen timing skew tussen signalen - Geen timingjitter - Tot 8 kanalen (C537)

92 Watchdog timer Bv. 89S8252 van Atmel POF bit uit PCON register - Betrouwbaarheid => -onmogelijk om manueel te resetten -niet snel genoeg -intern of extern Write ‘1’

93 Watchdog timer - 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

94 Seriële poorten Asynchrone communicatie. (via een UART) Byte gesynchroniseerde communicatie door freq. verschil Tx en Rx 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)

95 Asynchrone comm.op bit 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.

96

97 Baud rates 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 MHZ een bitrate van 9600BPS

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

99

100 Multiprocessor communicatie Master-Slave of multidrop mode 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)

101 Configuraties bij seriële verbindingen Open collector interface (on board comm.), met LIN driver: LIN-bus! Voordeel: -eenvoudige hardware, one wire Nadeel: -half duplex -snelheid is f(Cpar,Rpull-up) -protocol nodig(master/slave) Alternatief: 4000 reeks logica

102 Toepassing van de LIN-bus.

103 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 Motors Control 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

104 LIN Message Frame synch break  13 bit synch fieldidentifier message header 0 to 8 data fieldschecksum message response byte field SCI / UART format start stop LSB

105 LIN Message Frame

106 RS232 (EIA232) punt-punt verbinding (unbalanced). Elektrische eigenschappen 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

107 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

108 Signaalspanningen ‘0’ +8V tot +12V ‘1’ -8V tot -12V Slew rate wordt beperkt tot 30V/μsec

109

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

111 RS422/RS485 balanced verbinding (bv. bij CAN) 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 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

112 RS422 RS485 1 afsluitweerstand2 afsluitweerstanden (beide uiteinden)

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

114 Grounding bij balanced verbindingen Er moet een referentiegeleider worden doorverbonden, doch best via enkele weerstanden. Stroombeperking bij kortsluiting van een signaal met het chassis

115 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’

116 Galvanische isolatie Waarom? 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.

117 EINDE


Download ppt "Ingebedde systemen (embedded systems) Wat is een embedded systeem? Voordelen? Meestal voor één toepassing. Eenvoudig: meestal microcontroller! Waaraan."

Verwante presentaties


Ads door Google