Datamaters arkitektur og programmering



Relaterede dokumenter
System Arkitektur og Integration

Programmering i C Programmering af microcontroller i C (4 af 4) 12. april 2007

Filnavn: main.c

Multi System Printer Server

MCE2040 SERIEL KOMMUNIKATIONSMODUL

Interrupt - Arduino. Programmering for begyndere Brug af Arduino. Kursusaften 6 EDR Hillerød Knud Krogsgaard Jensen / OZ1QK

Der er derfor, for at alle kan sende, kun tilladt, at sende intermitterende. Altså korte pakker. ( Dette skal dog verificeres!!)

Projekt - RoboNet Del Journal.

Internt interrupt - Arduino

Video Projector Controller. Brugermanual

Teknisk beskrivelse TDC AlarmNet

Modbus data modellen er opbygget af fire primære data typer. I nedenstående skema er en kort oversigt over disse.

2x50 ETHERNET MODUL. RS485 slave med Ethernet-IP. Gælder for: Program nr.: AUXSLAVE v1 Dokument nr.: 0422md2x50-2v1 Dato:

Indhold. 1.1 Introduktion Status-Indikatorer Stikforbindelser 5

Eksamens spørgsmål i Teknologi (Digital) 3. Semester (i)

Andreas Nordbek & Kristoffer Skude Jensen. DMX Styring Side 1 af 15

GSM SMS Modem MODEL: SA RTU-1 V1.01

CANSAT & ARDUINO step by step

Teknisk beskrivelse TDC AlarmNet

Planen for idag. Kontrol af ydre enheder. Systemarkitektur. Synkronisering ved aktiv venten. Multiprogrammering[1]: Ydre enheder og multiprogrammer

Robonet Profibus Generel opsætning

Operation Manual SMS Air Conditioner Remote Controller Model No.: SR-001

up/ansi Eksamensspørgsmål

Arduino kursus lektion 3:

16. september 2013 InClimate funktionalitets og modbus setup version 7.1 Side 2

Typisk PC arkitektur. Synkronisering ved aktiv venten

Bruger Manual For WT-215W WIFI relæ

MCE9637 DeviceNet Modul

Projekt rapport. for. Zigbee kommunikation

Cat. No. W317-DA2-01 SYSMAC CPM1A PLC OPERATION MANUAL

INSTRUKTION. OJ-DV Hterm. OJ Drives A DRIVES PROGRAMME DEDICATED TO VENTILATION SOLUTIONS /15 (OSH) 2015 OJ Electronics A/S

AUTOMATIK G9000 INDSTILLINGER DK C E R A M A C E R A M A C E R A M A C E R A M A C E R A M A C E R A M A C E R A M A

Seriel kommunikation

IAI Quick Start Guide

WT-1672A GSM trømsvigt Alarm

Titel: Automatisk katapult. Synopsis: Tema: Mikroprocessorsystemer. Projektperiode: P3, efterrårssemesteret Projektgruppe: 350

Opstartsmanual. Remote Access Dial-in Ethernet Modem RADES G-nr EAN

OG-3600 Series Fiber Optic Transport for opengear card frame platform w/ SNMP Management

MCE2035 PROFIBUS-DP MODUL

Overvågning af punktsug, URANOS LOCAL EXHAUST GUARD

Serielmenu. Baud. PS SmartSwitch. Databit. Robust XON. Benyt DSR RS-232/RS-422. Jobbuffering. RS-422 polaritet. NPA-tilstand. Serielbuffer.

Søren Guldbrand Pedersen Diverse noter til PC & Net Side 2 af 8. TYPE - viser fil eller program på skærmen.

DAGLIG BETJENING AF PS4

const int disponibel_10= 10; const int disponibel_11= 11; const int disponibel_12= 12; const int blinkled = 13; // pin 13 er LED på NANO

Programmérbar digital tæller for Inkremental og Absolut målesystemer

WT-9001 GSM Fjernkontrol med SMS/GPRS alarm kontrol system Version

BRUGERVEJLEDNING FLTA

Alle dip 1 7 sættes til On for at opnå stand-alone operation fra PC.

Bruger manual AGAM kontrolboks

Vejledning til håndterminal til ventilatormotorstyring, TBLZ-2-75 SILVER C

Indholdsfortegnelse :

1.1 Indledning. Features: Højintensitet LED-display. Fleksibel forsyning (12-45V). Kan placeres op til 100m fra controlleren.

2070 PROFINET MODUL. Overførsel af status og vægt via PROFINET

Kravspecifikation For. Gruppen

Intro til AVR. Mads Pedersen, OZ6HR

Fra programmering til mikroprocessor

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004

Beskrivelse af vejrstation OM1 NETLON NETLON. Dette dokument indeholder en beskrivelse af en vejrstation OM1 fra Netlon.

Projekt E1PRJ1 Emne: Strukturering Softdrink-Automat Gruppe: 6 Dato: 20. marts 2006 Medlemmer: Benjamin Sørensen, Jacob Nielsen, Klaus Eriksen,

GSM REMOTE CONTROL AND MONITORING SYSTEM Model: GSM-220

Lynhurtig og sikker farvegenkending SI-COLO3-50-FCL

VEJE TERMINAL TYPE MCE9625G

ARDUINO PROGRAMMERING

Gateway MP til Modbus RTU. Alle BELIMO motorer med MP-Bus kan tilsluttes til MP-siden af UK24MOD. Interface MP / Modbus RTU

Detter dokument er kun til intern brug og klassificeret som strengt fortroligt. Forfatteren tager forbehold for alle fejl og mangler.

LM Technologies bluetooth seriel adapter Installationsvejledning

Programmeringseksempel tl BCxxxx (Seriel)

Jasopels Farm Assist V3. Bruger vejledning

5. systemet skal indeholde 2 stk 1 Mbit(8 bit ROM implementeret som flash memory.

MultiProgrammer Manual

VAV med motoriserede armaturer og LON-styring

MYLOQ 1101 Kodecylinder

Brugervejledning. Trådløs HD Sender & Modtager Sæt

Rumtryksregulator, URANOS ROOM PRESSURE REGULATOR

8 bit unsigned integer værdier vist som binær, decimal og hexdecimal. Embeddede systemer. En introduktion til MSP430

4X29 ANALOG SYSTEM. Overførsel af vægt via analogt udgangssignal

CAN BUS alarm, AK4625 Snapguide med oversigt over ledninger fra sirene og modul


// inkluder library kode: #include <LiquidCrystal.h> #include <Serial.h> // Initialiser display LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

TX Controller Betjeningsvejledning

Analyse og design af Indlejrede Systemer. v/ Jens Dalsgaard Nielsen Henrik Schiøler Mads Dore alle Afdeling for Proceskontrol

KOMPONENT BESKRIVELSE

DME Bootstrap Version 1.4x

Side Afsnit (fortsat) Side. Protokol Medie Transmissionsformater Baudhastigheder Modbus dedikeret port

Example sensors. Accelorometer. Simple kontakter. Lysfølsomme. modstande. RFID reader & tags. Temperaturfølsomme. Flex Sensor.

InClimate. Funktionalitets setup og Modbus beskrivelse. Version 7200 Software. Version Senmatic A/S.

LCD Character display Intro

Trust Energy Protector 325/525. Brugervejledning

Brugervejledning for Modtager RX 300

Operation Manual SMS Air Conditioner Remote Controller Model No.: SR-001

To mikroarkitekturer til MIPS Karakteropgave på Maskinarkitektur 1B

1 Indholdsfortegnelse.

dmasark Aflevering - Uge 50

Arduino Programmering

Jægergårdsgade 152/05A DK-8000 Aarhus C DENMARK AC Motor Controller 370W. Brugermanual

Den forudsætter kendskab til C++ og lidt kendskab til SQL og MySQL C API.

Microcontroller, Arduino

Monter ledninger på klemme 13 og 14 på FGC styringen over til GSM på klemmer Digital Input.

OVERVÅGNINGSSYSTEM FICO-64» MONTAGEANVISNING

Flowchart og Nassi ShneidermanN Version. Et flowchart bruges til grafisk at tegne et forløb. Det kan fx være et programforløb for en microcontroller.

Transkript:

Mikael Svenstrup Datamaters arkitektur og programmering 1/24 Datamaters arkitektur og programmering MM11: Seriel kommunikation 2 (SW)

Indhold Mikael Svenstrup Datamaters arkitektur og programmering 2/24 Tidligere har i hørt om: Hardware til seriel kommunikation Simpel software til seriel kommunikation Idag skal vi snakke om: Watchdog Timer: Hunden der holder øje med om computeren laver fejl. Interrupt basert seriel kommunikation. Fejldetektion på seriel kommunikation. Seriel kommunikation med buffere.

Seriel kom. resume Mikael Svenstrup Datamaters arkitektur og programmering 3/24 Seriel Kommunikation Resume

Seriel kom. resume Mikael Svenstrup Datamaters arkitektur og programmering 4/24 Seriel kommunikation har en TX og en RX linje. RS232: +-12V 1200, 4800, 9600, 19200, 38400, 57600, 115200 DB9 stik: Signal Type Abbr. Dir. DE-9 Common Ground G 5 Transmitted Data TxD Out 3 Received Data RxD In 2 Data Terminal Ready DTR Out 4 Data Set Ready DSR In 6 Vi bruger kun: 5 (GND) og RX, TX (2, 3) Request To Send RTS Out 7 Clear To Send CTS In 8 Carrier Detect DCD In 1 Ring Indicator RI In 9

Seriel kom. resume Mikael Svenstrup Datamaters arkitektur og programmering 5/24 Opsætning: Baudrate (fx 19200) Databits (8 bits) Parity? Stop bits (1 eller 2)

Seriel kom. resume Mikael Svenstrup Datamaters arkitektur og programmering 6/24 Opsætning på MSP430 (UART0): Set baudrate i U0BR0 og U0BR1 (og evt. modulation i U0MCTL) Set stopbits, datalængde osv. i U0CTL Enable UARTEN i ME1 Opsæt ben P3.4 og P3.5 til henholdsvis output og input Opsæt ben P3.4 og P3.5 til UART funktion Sende fra MSP430: Check at flaget UTXIFG (i IFG1) er sat hvilket indikerer at TX bufferen er tom og klar til ny data. Placer byte der skal sendes i U0TXBUF Modtage på MSP430: Check at flaget URXIFG (i IFG1) er sat hvilket indikerer at der er ny data i RX bufferen. Læs byten fra U0RXBUF

Watchdog Timer Mikael Svenstrup Datamaters arkitektur og programmering 7/24 Watchdog Timer Hvad sker der hvis/når man har lavet en fatal kode fejl og systemet fryser?

Watch Dog Timer Mikael Svenstrup Datamaters arkitektur og programmering 8/24 En watchdog timer (WDT) er en hardware timer enhed der udløser et system reset, hvis hoved-programmet ikke servicerer watchdog en (kaldet kicking the watchdog ) med jævne mellemrum. Dette sker hvis programmet hænger fast et sted og wathdog en sørger så for at systemet kommer tilbage til normal operation. Er smart til embedded systemer hvor der ikke er nogen bruger til at trykke på reset når der kommer blue screen of death.

Watch Dog Timer Mikael Svenstrup Datamaters arkitektur og programmering 9/24 WDT på MSP430: Kan også benyttes som alm. timer, men her fokuserer vi på WDT funktionaliteten. WDT control registreret er password beskyttet. Er default ON efter en opstart! 16-bit op-tæller, resetter på overflow. 3 registre: WDTCTL, til opsætning af selve timeren IE1, interrupt enable for timer-mode (ikke WDT) IFG1, WDT overflow interrupt, kan bruges til at håndtere system crach

Watch Dog Timer Mikael Svenstrup Datamaters arkitektur og programmering 10/24 Kick the dog: MOV #WDTPW+WDTCNTCL,&WDTCTL //asm WDTCTL = WDTPW + WDTCNTCL; // C Stop the dog MOV #WDTPW+WDTHOLD,&WDTCTL //asm WDTCTL = WDTPW + WDTHOLD; // C Timeout for default WDT: 16 bit register = 65536 default tællefrekvens (DCOCLK) = 750 khz Timeout = 750000^-1 * 65536 ~= 87 ms

Kommunikationsfejl Mikael Svenstrup Datamaters arkitektur og programmering 11/24 Fejl på seriel kommunikation Hvordan ved vi at vi mister data på kommunikationen og hvordan får vi de data igen?

Kommunikationsfejl Mikael Svenstrup Datamaters arkitektur og programmering 12/24 Framing error: Lav stop bit

Kommunikationsfejl Mikael Svenstrup Datamaters arkitektur og programmering 13/24 Break Condition: Timeout på tiden mellem start og stop bit.

Kommunikationsfejl Mikael Svenstrup Datamaters arkitektur og programmering 14/24 Parity Error: Kræver selvfølgelig at der benyttes kommunikation med paritet slået til. Paritet tæller antallet af 1-taller i den sendte byte og sættes derefter. Man kan vælge even og odd paritet. Even = parity bit er 0 hvis lige antal 1- taller og 1 hvis ulige antal. Odd paritet er lige omvendt.

Kommunikationsfejl Mikael Svenstrup Datamaters arkitektur og programmering 15/24 Buffer overrun: Fortæller om du er gået glip af modtaget data fordi du har haft for travlt til at checke din postkasse. (1) Der modtages en byte og den puttes i RX bufferen (2) RX bufferen læses. (3) Der modtages en byte og den puttes i RX bufferen (4) Der modtages en byte og den puttes i RX bufferen (5) Buffer overrun flaget sættes.

Kommunikationsfejl Mikael Svenstrup Datamaters arkitektur og programmering 16/24 Receiver overrun error: Når der ankommer en ny byte i RX bufferen uden at den gamle byte er blevet læst. Framing error: Når der detekteres en lav stop bit. Break Condition: Når signalet falder ud således at der går for lang tid mellem start og stop bit. Parity error: Når pariteten af det af data ikke modsvarer paritets bit. Ved de tre sidste bliver den fejl behæftede byte smidt væk. Ved den første har man allerede mistet byten.

Seriel kommunikation 2 Mikael Svenstrup Datamaters arkitektur og programmering 17/24 Seriel kommunikation med interrupts og buffer Når vores programmer bliver større og mere avancerede har vi brug for noget mere end polling.

Interruptbaseret RS232 Mikael Svenstrup Datamaters arkitektur og programmering 18/24 Sidst prøvede vi seriel kommunikation til og fra MSP430 med software med polling. Som vi snakkede om i mm7, er der ulemper forbundet med polling og derfor prøver vi denne gang at lave interrupt baseret kommunikation

Interruptbaseret RS232 Mikael Svenstrup Datamaters arkitektur og programmering 19/24 Uafhængige interrupts for TX og RX. Enable interrupts: UTXIE0 = 1 URXIE0 = 1 GIE = 1

Interruptbaseret RS232 Mikael Svenstrup Datamaters arkitektur og programmering 20/24 Interrupts når: Byte i TX bufferen er blevet sendt og er klar til en ny byte. UTXIFG0 bliver sat og slettes når der skrives en ny byte til TX bufferen. Der er en ny byte klar i RX bufferen. URXIFG0 bliver sat og slettes når der læses fra bufferen.

Ring buffer Mikael Svenstrup Datamaters arkitektur og programmering 21/24 Bufferet I/O: Benyttes fx når sender leverer data i bursts og modtager kører periodisk. I/O uden buffer: Ved fx. real tids regulerings systemer skal controlleren have data når de kommer. Circular buffer User process Seriel line

Ring buffer Mikael Svenstrup Datamaters arkitektur og programmering 22/24 Circular buffer: Meget simpel data buffer struktur. Nyttig i forbindelse med interrupt baseret seriel driver. Seriel driveren henter data fra RX bufferen når den er klar og putter den i ring bufferen. Hoved programmet kan så hente fra ring bufferen når den er klar. Vice versa for at sende. Man bør tænke over: -Buffer full -Buffer empty afhængig af hvad man bruger bufferen til.

Ring buffer (SW eks) Mikael Svenstrup Datamaters arkitektur og programmering 23/24 // Dummy code for circular buffer without buffer empty or full checking int circ_buffer[buf_length]; /* circular buffer for data */ int circ_buffer_in = 0; /* in-pointer of the buffer */ int circ_buffer_out = 0; /* out-pointer of the buffer */ int circ_buffer_count = 0; void feed_buffer(int n) { circ_buffer[circ_buffer_in] = n; if (circ_buffer_in < (BUF_LENGTH-1)) circ_buffer_in++; else circ_buffer_in = 0; circ_buffer_count ++; } int get_data() { int m; m = circ_buffer[circ_buffer_out]; if (circ_buffer_out < (BUF_LENGTH-1)) circ_buffer_out++; else circ_buffer_out = 0; circ_buffer_count--; return m; }

Opgaver Mikael Svenstrup Datamaters arkitektur og programmering 24/24 Watch Dog Timer Ringbuffer til seriel kommunikation