Slides:



Advertisements
Verwante presentaties
Programmeren en Software Engineering 2
Advertisements

Data Acquisition & Control System
Serieel naar parallel omzetting
Netwerken soorten verbindingen protocollen soorten signalen
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Een programma opbouwen.
Een alternatief voorstel Naar aanleiding van bestudering van de IAASB voorstellen denkt de NBA na over een alternatief. Dit alternatief zal 26 september.
PROS2 Les 9 Programmeren en Software Engineering 2.
1 Co-Design at Chess-iT Guus Bosman. 2 Afstuderen bij Chess Net.Footworks tot augustus 2003 Afstuderen augustus 2003 tot maart 2004 Chess full-time vanaf.
Microcontroller Programmeren in C

SIMATIC NET – onderdeel van Totally Integrated Automation
Inleiding computersystemen en netwerken deel 3 Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
PROS2 Les 12 Programmeren en Software Engineering 2.
MICPRG Les 12 Microcontroller Programmeren in C. 127 Real-time clock PC heeft een RTC Real-time Clock die de “time of day” bijhoudt. De RTC is voorzien.
HCC PC gebruikersgroep: Practical Electronics, Maarssenbroek I2CI2CI2CI2C Wat kun je ermee?
Inleiding computersystemen en netwerken deel 3 Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 6.1.
Inleiding Software Engineering Universiteit AntwerpenBetrouwbaarheid 2.1 Ontdek de 7 verschillen.
Programmeren in Java met BlueJ
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Gelinkte lijsten Finite State.
Bussystemen F. Rubben, Ing. © Te bespreken bussystemen AS-Interface (of ASI-bus)
GESPRG Les 14 Gestructureerd programmeren in C. 174 Details! The devil is in the details.
Project Software Engineering Universiteit AntwerpenBetrouwbaarheid 2.1 Ontdek de 7 verschillen.
De PROFIBUS, PROFINET & IO-Link dag 2011 Share our Vision for Automation.
zaterdag 19 juli 2014 Saturday, 19 July 2014 I see what you don’t see I come from another galaxy My earthal life was not the intention I was meant.

Network Address Translation
Communicatietheorie Partim Datacommunicatie
1/1/ / faculty of Computer Science eindhoven university of technology 5B040:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 8(2): Multi-processing.
1Ben Bruidegom A Harvard Machine Calculator Calculator  Computer.
Een USB 2.0 oscilloscoop Bossuyt Frederick De Bock Steven
3.6 Architecture of HIS. 3.7 Integrity & Integration within HIS Suraja Padarath /10/2007.
GESPRG Les 8 Gestructureerd programmeren in C. 101 Array Meerdere variabelen van hetzelfde type kun je samennemen in één array variabele. Stel in een.
Real-Time Systems (RTSYST) Week IPC inter process communication Shared variabele based (H5) Message based (H6) Kan ook gebruikt worden in systemen.
GESPRG Les 12 Gestructureerd programmeren in C. 152 Huiswerk Uitwerking void reverse(int a[], int n) { int first = 0, last = n - 1; while (first < last)
GESPRG Les 7 Gestructureerd programmeren in C. 92 Verwisselen Schrijf een functie waarmee twee int variabelen verwisseld kunnen worden. void wissel(int.
MICPRG Les 14 Microcontroller Programmeren in C. 153 Duurzaam AVR gebruik De AVR ATmega32A is de opvolger van de ATmega32. De A versie is ongeveer 40%
Netwerk Algorithms: Shortest paths1 Shortest paths II Network Algorithms 2004.
Simatic Update on tour November/December 1 Migratie Overzicht Nieuw WinAC/MP Multipanels WinCC V6 Mobile 170 SIMATIC HMI Bedienen,
Datapath & Contol 9.30 Introductie: datatransport via een bus
Robotica & Systemen Programming the Sun SPOT Digital Signal Processing Algorithms Embedded Control Systems Computational Principles of Mobile Robotics.
1Ben Bruidegom 1 Micro controllers introduction. 2Ben Bruidegom 2 Areas of use & Numbers of machines You might have 1 or 2 Pentium class chips at home.
1 Van Harvard naar MIPS. 2 3 Van Harvard naar MIPS Microprocessor without Interlocked Pipeline Stages Verschillen met de Harvard machine: - 32 Registers.
Best8-1 Les 8: Input/Output [Lat: datarum initus exitusque]
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  D3EEMS1  programmed I/O: de.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 3 - onderwerpen Het.
KPRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology Les 2 sheet 1 Wat gaan we doen:  Een (vaste) melodie.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 4 - onderwerpen DB038 hardware : LEDs en displays.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Het ARM bord met wat library functies.
De onderste lagen van het OSI model
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  basis files: ram-rom.zip.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 3 - onderwerpen Instruction timing Shadow.
2TPRJ8 – hardware en ontwikkelomgeving Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Wouter van Ooijen Mail:
DU2PRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Beginselen van C opgaves… volgende week: ARM.
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  herhaling ARM assembler instructies.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag GUI  command line redirection.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 6 - onderwerpen seriele interface (UART -
Geheugen, distributie en netwerken Netwerken: de basis voor distributie van gegevens en taken (processen) –bestaan zo’n 40 jaar, zeer snelle ontwikkeling.
De PROFIBUS, PROFINET & IO-Link dag 2011 Share our Vision for Automation.
HAN-University Inleiding tot VHDL, 2010 Bron: Fraunhofer for Integrated Circuits.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 6 - onderwerpen Code paging Switch bounce.
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  herhaling ARM assembler instructies.
1Security Technology PICT les 1 ICT Techniek - les 7 - onderwerpen Operating Systems n Waarom een OS? n Soorten n Taken n Opbouw n Processen.
Afstudeerproject ETHERFLOW:
Les 1a De PC © Johan Jacobs.
Gevalstudie Mobiele Multi- Agent Systemen CBorg Werner Van Belle Vrije Universiteit Brussel.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 2 definitie.
The Solution. Enkele kernpunten Zettabyte File System (ZFS) 128 Bit file system Maximale opslagcapaciteit is gelijk aan op zijn Engels gezegd : 16 billion.
Etherflow Voor het aansluiten van een flowmeter op een Ethernet netwerk Afstudeerpresentatie Michel van der Net Elektrotechniek Avans Hogeschool Breda.
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  programma draaien vanuit ROM.
Netwerken soorten verbindingen protocollen soorten signalen
Transcript van de presentatie:

Microcontroller Programmeren in C MICPRG Les 9

Communicatie Veel microcontrollers communiceren met hun omgeving. Redenen voor communicatie zijn: Inlezen sensoren en aansturen actuatoren. Gedistribueerde besturingen. Het systeem bevat meerdere µC’s die samen het systeem besturen. B.v. auto, robot enz. Onderhoud. Programmeerinterface, diagnose interface, enz. Gemeten data moet naar verzamelpunt gestuurd worden (data acquisitie systemen).

Soorten communicatie Communicatie kanaal: Communicatie medium: Simplex (1 richting). B.v. radio-uitzending. Half Duplex (omschakelbaar). B.v. walkie-talkie. Full Duplex (2 richtingen). B.v. telefoon. Communicatie medium: Kabel. Ether (draadloos). Communicatie topologie: Punt naar punt. Bus structuur (master-slave). Single master. Multi-master. Master neemt initiatief voor data- overdracht en bepaald richting

Topologie Bus heeft adressering nodig. Multi-master bus heeft arbitration nodig (bepalen wie de master is).

Soorten communicatie Parallel versus serieel: Voordelen serieel: goedkoper, geen overspraak tussen parallelle signalen. Synchroon versus asynchroon: Synchroon: kloksignaal wordt meegestuurd.

altijd gelijk aan Bitrate. Asynchroon Kloksignaal wordt niet meegestuurd. Werken met afgesproken Baudrate = aantal signaal- wisselingen/seconde. Bitrate = aantal bits/seconde. Let op! Baudrate is niet altijd gelijk aan Bitrate.

Communicatie standaarden IEEE 1284 parallelle poort PC. RS232 seriële poort PC. RS485 gebouw automatisering, DMX theater verlichting. SPI (Serial Peripheral Interface) ISP=In-System Programming. On board peripheral bus (LCD, ADC, RTC=Real Time Clock enz.). I2C (Inter-Integrated Circuit) On board peripheral bus (LCD, ADC, RTC=Real Time Clock enz.). JTAG (Joint Test Action Group) Testing, ISP, debugging. USB (Universal Serial Bus) Off board peripherals (muis, printer enz.). CAN (Controller Area Network) Auto, Machines. Ethernet Computer netwerk. …

Communicatie standaarden IEEE 1284 parallel, half duplex, P2P, synchroon. RS232 serieel, full duplex, P2P, asynchroon. RS485 serieel, half duplex, multi-master, asynchroon. SPI serieel, full duplex, single master, synchroon. I2C serieel, half duplex, multi-master, synchroon. JTAG serieel, full duplex, single master, synchroon. USB serieel, half duplex, single master, synchroon (NRZI met bit-stuffing). CAN serieel, half duplex, multi-master, synchroon. Ethernet serieel, half duplex, multi-master, synchroon (manchester code). … Andrew Tanenbaum: “The nice thing about standards is that there are so many to choose from!”

RS232 DTE: Data Terminal Equipment (PC, Terminal). DCE: Data Communications Equipment (Modem). PC DTE male DCE female STK500 ATmega32 1 DCD 2 RD 3 TD 4 DTR 5 GND 6 DSR 7 RTS 8 CTS 9 RI DCD 1 RD 2 TD 3 DTR 4 GND 5 DSR 6 RTS 7 CTS 8 RI 9 TxD = PD1 RxD = PD0

RS232 Codering: B-D-P-S b.v. 9600-7-E-2 B = baudrate D = # databits 5, 6, 7, 8 P = parity (Even, Odd, None) S = # stopbits 1, 1.5, 2

ATmega32 communicatie Parallel. (I/O poorten). Serieel Synchroon. (Via software of USART). Serieel Asynchroon. (Via software of USART). SPI (Serial Peripheral Interface). TWI = Two-Wire Interface = I2C (Inter-Integrated Circuit). JTAG (Joint Test Action Group).

Huiswerk Bestudeer: Programmeer: Gegeven: 9600-7-E-1. Wat wordt hier in ASCII verstuurd? Bestudeer: AVR boek: blz. 129 t/m 134. ATmega32 datasheets. Programmeer: Maak een echoput. Elk ontvangen karakter wordt 2x teruggestuurd. Gebruik 9600-7-E-1.

Uitwerking Gegeven: 9600-7-E-1. Wat wordt hier in ASCII verstuurd? Space = 0 Mark = 1 start stop lsb parity msb Karakter 1 1001101 ‘M’ Parity = OK Karakter 2 1100001 ‘a’ Karakter 3 1100011 ‘c’ Zie AVR Boek: Appendix G 101

Microcontroller Programmeren in C MICPRG Les 10

USART Universal Synchronous Asynchronous Receiver Transmitter RXCIE in UCSRB PD0 RxD RXC in UCSRA Receive shift register USART_RXC_vect DOR in UCSRA 2 char fifo buffer Receive data register FE in UCSRA PE in UCSRA read UDR write Transmit data register UDRIE in UCSRB UDRE in UCSRA USART_UDRE_vect PD1 TxD TXCIE in UCSRB Transmit shift register TXC in UCSRA USART_TXC_vect

USART ATmega32 1 Zie ATmega32 datasheets USART Register Description. 2 registers op 1 I/O adres 1 2 registers op 1 I/O adres Zie ATmega32 datasheets USART Register Description.

USART ATmega32 timing Synchronous: Clock pin = XCK = PB0

Echoput #include <avr/io.h> int main(void) { char c; UCSRA = 0x00; UCSRB = 0x18; UCSRC = 0xA4; UBRRH = 0; UBRRL = 23; while (1) { while (~UCSRA & 1<<RXC); if (UCSRA & (1<<FE | 1<<DOR | 1<<PE)) { c = UDR; c = '?'; } else { c = UDR; while (~UCSRA & 1<<UDRE); UDR = c; return 0;

Echoput

Echoput Huiswerk Wat is er mis als je de volgende uitvoer krijgt bij het intypen van het alfabet? Herschrijf het programma zodat zenden en ontvangen met interrupts gebeurd. Gebruik een globale variabele voor dataoverdracht. Zet eerst alleen de ontvangstinterrupt aan. Ontvangstinterrupt schrijft globale variabele en zet zendinterrupt aan en ontvangstinterrupt uit. Zendinterrupt zet na 2x ontvangstinterrupt aan en zendinterrupt uit. aabb??dd????gghh????kk??mmnn??pp????ss??uuvv????yyzz

Uitwerking Wat is er mis als je de volgende uitvoer krijgt bij het intypen van het alfabet? aabb??dd????gghh????kk??mmnn??pp????ss??uuvv????yyzz 7 bit ASCII a = 1100001 b = 1100010 c = 1100011 d = 1100100 e = 1100101 f = 1100110 g = 1100111 + even parity a = 11100001 b = 11100010 c = 01100011 d = 11100100 e = 01100101 f = 01100110 g = 11100111 Conclusie: in plaats van het pariteitsbit wordt een 1 gestuurd. ATmega32: 9600-7-E-1 PC: 9600-7-N-2 Hyperterminal drukt ? niet af. ? = 0111111 dit wordt verzonden met even parity (0) waardoor een stopbit mist!

Uitwerking (deel 1) #include <avr/io.h> #include <avr/interrupt.h> #include <stdint.h> char c; ISR(USART_RXC_vect) { if (UCSRA & (1<<FE | 1<<DOR | 1<<PE)) { c = UDR; c = '?'; } else { UCSRB &= ~(1<<RXCIE); UCSRB |= (1<<UDRIE);

Moet de variabele c niet volatile zijn? Uitwerking (deel 2) ISR(USART_UDRE_vect) { static uint8_t echo = 0; UDR = c; echo++; if (echo == 2) { echo = 0; UCSRB |= (1<<RXCIE); UCSRB &= ~(1<<UDRIE); } int main(void) { // 9600-7-E-1 UCSRA = 0x00; UCSRB = 0x98; UCSRC = 0xA4; UBRRH = 0; UBRRL = 23; sei(); while (1); return 0; Moet de variabele c niet volatile zijn?