Seriel kommunikation

Relaterede dokumenter
Microcontroller, Arduino

Arduino Programmering

Microcontroller, Arduino

Filnavn: main.c

Arduino Programmering

Arduinostyret klimaanlæg Afsluttende projekt informationsteknologi B

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi C Opgave: Brev til Sigurd Lære: John Austin Side 1 af 13 Dato:

Projekt Træningsmaskine

Programmeringseksempel tl BCxxxx (Seriel)

DM13-1. Obligatoriske Opgave - Kredsløbs design

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi Opgave: Brev til Sigurd Lære: John Austin Side 1 af 8 Dato:

Projekt rapport. for. Zigbee kommunikation

Adressering af ind- og ud gange på BCxxxx IEC1131 PLC uden TC system manager

CANSAT & ARDUINO step by step

// Definition af porte og funktioner

WT-1011RC Programmer User Guide

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

CANSAT & ARDUINO step by step

TinkerCad - Arduino simulator

IAI Quick Start Guide

WT-1011RC Programmer User Guide

Postregistrering Eksamensprojekt i Programmering C Lavet af: Frantz Furrer Svendborg Erhvervsskole HTX Vejleder: Claus Borre

Arduinostyret klimaanlæg Afsluttende projekt programmering C

AVR MP Ingeniørhøjskolen i Århus Michael Kaalund

LCD Character display Intro

Arduino kursus lektion 3:

LM Technologies bluetooth seriel adapter Installationsvejledning

BRUGERVEJLEDNING FLTA

AKG198 monteringsguide

MANUAL SKIOLD GØR EN FORSKEL DISTRIWIN SERVICE INSTALLATION

WEA-Base Brugervejledning til vejetransmitter

ACXEL INSTALLATIONSGUIDE

UniLock System 10. Manual til T550 Secure Radiomodtager og håndsender. Version 2.0 Revision

Kom igang med Scroll:bit

Video Projector Controller. Brugermanual

Alt elektronik heri er købt via og arduino udviklingssoftware er hentet fra

Lektion 6 / Analog Arduino

Dansk El-montage manual Portautomatik

MANUAL TIL. OptitecRS CIPHERLAB SCANNER

Opgaver - PLC - analogteknik - forbindelsesteknik...3 Opgaver - PLC - analogteknik - programmering...9

SPIDER Quick guide. DATO: August 2017 FORHANDLER: WASYS A/S. Langebjergvænget Roskilde

EKSEMPEL PÅ ELEVOPGAVE TIL ARBEJDET MED PROGRAMMERING AF ARDUIONO MED LED BÅND

MP3 player med DMX interface.

Frekvensbestemmelse. HWP I1 Kursusarbejde Forår 2007

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

Projekt - RoboNet Del Journal.

ARDUINO PROGRAMMERING

Forord. Mathias Lønstrup Poulsen, Anders Kusk og Jacob Østergaard 25. april 2009 Eksamens projekt: Bil moduler

Morse med micro:bit. Morse med micro:bit

Software Dokumentation

Quick Setup Guide SB168-ES og M7CL Dansk version

Indholdsfortegnelse :

Journal JTAG: Udarbejde af: Benjamin Grydehøj I samarbejde med PDA Projektgruppen. Elektronikteknologafdelingen på Erhvervsakademi Fyn.

Fable Kom godt i gang

Øvelse. Øvelse. D.1 CMOS-øvelse. Under øvelsen laves notater, som senere bruges i den efterfølgende journal! Opgave 1:

Kom godt i gang med Fable-robotten

Temperaturmåler. Klaus Jørgensen. Itet. 1a. Klaus Jørgensen & Ole Rud. Odense Tekniskskole. Allegade 79 Odense C /

Manual IHC Kompatibelt SMS modem. Generel info:... 2 Controllere:... 2 Manualen... 2 Komandoer syntax... 2 Lysdioder... 2 Tilslutning:...

Måle og test I. Lasse Kaae 2012

SMSRemote manual. 019D903122_01 LKIHCSMSRemote Schneider Electric Danmark A/S - All rights reserved

MCE9637 DeviceNet Modul

Duplex 312 FJERNAKTIVERING, OVERVÅGNING OG STYRING Brugermanual Varenr

Avanceret fejlfinding

Tevion Powerbank. Manual

3. Computerens opbygning.

Opgaver - IBI/CTS, prog. Og fejlf. På centrale anlæg...3

Nedenstående opgaver er lavet til en Allen-Bradley PLC, men uden videre tilpasses andre PLC typer.

Visualiseringsprogram

Programmering C Eksamensprojekt. Lavet af Suayb Köse & Nikolaj Egholk Jakobsen

Diagnostic og Toolbox Instruktion. Lindgaard Pedersen A/S. Rev. 1.0 Side 1 / 14

Eksamen dcomnet Q2/2010. Navn

Datanet Obligatorisk opgave 2: TCP. René Hansen Michael Nilou Anders Bjerg Pedersen Hold september 2007

Indholdsfortegnelse Indledning... 2 Projektbeskrivelse... 2 Dette bruger vi i projektet... 2 Komponenter... 2 Software... 2 Kalibrering...

Fable Kom godt i gang

TouchPad og tastatur. Dokumentets bestillingsnr.: I denne vejledning beskrives TouchPad og tastaturet på computeren.

I3PRG3+I3DTM3+I3ISY1-3. semester

USB Alarm Fag : El-teknik A Navn : Bent Arnoldsen Skole : Holstebro Tekniske Gymnasium Periode : Uge 43 til Aflevering : 29.

Vejledning til datatræk i Novax på ICPC-koder (eksempel stress)

Brugervejledning for Modtager RX2004 RX2004-R

Vejledning til datatræk i Novax på ICPC-koder

Hardware dokumentation Skrevet af. Gruppen. Version 1.0

Dansk version. Introduktion. Pakkens indhold. Tilslutninger. SC016 Sweex 7.1 eksternt USB lydkort

Manual: Ergometer ET6

Genius laderegulator Monterings og brugervejledning

MiniPlex-41USB NMEA-0183 multiplexer Betjeningsvejledning

Guide - Secvest IP FUAA10011

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

Pakken, som du modtager / har modtaget til din ADSL-forbindelse, har følgende indhold:

I 2 C BUSSEN KØRER MED ARDUINO IND I FORÅRET

Internt interrupt - Arduino

Monterings og brugervejledning Portautomatik S 66 samt tilbehør

Konzoom Commerce Solutions Business / Hjemme GSM Alarmanlæg

TeleSwitch M2. TeleSwitch er en ideel fjernstyret strømafbryder og tilbagemelder til hjemmet, fritidshuset, kontoret og værkstedet.

VETEC ApS. Dynamometer. Brugervejledning & Monteringsvejledning. Copyright 2009, Vetec Aps. Alle rettigheder forbeholdes.

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

Lyskryds. Thomas Olsson Søren Guldbrand Pedersen. Og der blev lys!

Kom godt i gang DRG 716 og 717 Fiberboks

ATD. Bruger manual. By AntiTremor.org. Revsion 1.1

WI180C-PB. Online-datablad

Enes Kücükavci Roskilde Tekniske Gymnasium Mathias Turac Informationsteknolog B Vejleder: Karl Bjranasson Programmering C

Transkript:

Odense Tekniske Gymnasium Seriel kommunikation Skribenter Mathias Bejlegaard Madsen, 3.H Udførelsesdato 4. januar til Vejleder Afleveringsdato

Indholdsfortegnelse 1 Introduktion 2 2 Bedstemor diagram 2 3 Blokdiagrammer over kode 2 4 ICO & register oversigt 7 4.1 Input, controller, output diagram........................... 7 4.2 Register oversigt.................................... 7 5 Elevvejledning 8 6 Bilag 10 6.1 Blokdiagrammer.................................... 10 6.2 Bedstemor diagram................................... 10 6.2.1 Seriel kommunikation............................. 10 6.2.2 Transmitter................................... 11 6.2.3 Receiver..................................... 13 6.2.4 Delay...................................... 14 6.3 Kode........................................... 15 Side 1 af 15

1 Introduktion Dette projekt omhandler seriel kommunikation mellem to PIC-kits, altså afsendelse og modtagelse af data fra en enhed til en anden enhed. Ved at programmere igennem specifikke registre (Se register oversigt), skal den ene enhed programmeres til at være transmitteren og den anden enhed til at være receiveren. 2 Bedstemor diagram Seriel kommunikation handler om afsendelse og modtagelse af 8 bit data imellem to OTGkits. Brugeren bestemmer selv hvilket 8 bit data der skal sendes afsted. Modtageren modtager derefter disse 8 bits, ét bit af gangen, hvorefter den anvender dette data til eksempelvis at tænde for specifikke LED er. Dette er vist herunder som et diagram. Større udgave af diagrammet kan findes i bilag. 3 Blokdiagrammer over kode Til udarbejdelsen af seriel kommunikation, har jeg illustreret kodens opbygning ved hjælp af flowdiagrammer. Koden er delt op i tre filer: Seriel kommunikation, transmitter og receiver. Hovedfilen er seriel kommunikation filen. Flowdiagramemt for denne fil er vist herunder. Større udgave af diagrammet kan findes i bilag. Side 2 af 15

Her starter programmet med en initialisering af controlleren, hvor den gør PORTC på controlleren til den transmitterende udgang eller reciperende indgang. Derefter rydder vi PO- RTB, for at sørge for at alle lysdioder er slukket. Derefter skal brugeren afgøre, om den tilsluttede controller enten skal være transmitteren eller receiveren. Hvis den skal være transmitter, så skal receiversetup og mainreceiver udkommenteres. Dette gør, at programmet kun kalder koden: transmittersetup og derefter går til koden: maintransmitter. Hvis den istedet skal være receiver, så skal det modsatte blot gøres. Hvad koden gør når programmet kalder: transmittesetup eller receiversetup vender jeg tilbage til senere. Maintransmitter starter med at sætte W til et givet data som brugeren bestemmer. W er den data som skal transmitteres til receiveren. Derefter kalder programmet transmitter og delay hvorefter det samme gøres igen, for at transmittere yderligere data, hvoraf W blot er ændret for at transmittere andet data. Til sidst laver programmet en gå til maintransmitter for at koden kører i et loop, som vil få controlleren til konstant at transmittere data til receiveren. Maintransmitter kalder delay for at skabe et delay imellem transmitteringen af dataen på 250 millisekunder. Dette hindrer eventuelle komplikationer og fejl med hensyn til transmitteringen og reciperingen af dataen. Nedenstående diagram viser dette. Større udgave af diagrammet kan findes i bilag. Side 3 af 15

Maintransmitter kalder koden transmitter som starter for transmissionen af data til receiveren. Dette gør den ved at den flytter dataen fra W til sender registret: TXREG. Dernæst rydder den dataen i W, så nyt data kan blive lageret i W. Til sidst returnerer koden, til der hvor den var nået til. Nedenstående diagram viser dette. Større udgave af diagrammet kan findes i bilag. Side 4 af 15

Mainreciever starter med at kalde receiver og derefter flytter det modtagede data i resultat fra receiverkørslen til W. Herfra flytter programmet dataen fra W til PORTB, som efter hensigten vil få de lysdioder angivet af transmitteren til at tænde. Til sidst laver programmet en gå til mainreceiver for at koden kører i et loop, som vil få controlleren til at tjekke efter nyt data hele tiden. Dette er illustreret i det første diagram. Mainreceiver kalder koden receiver som starter for reciperingen af data fra transmitteren. Dette gør den ved at den flytter dataen fra modtager registret: RCREG til W, hvorefter den flytter dataen i W til resultat registret. Til sidst rydder den dataen i W og returnerer til der hvor programmet var nået til. Nedenstående diagram viser dette. Større udgave af diagrammet Side 5 af 15

kan findes i bilag. For at vende tilbage til, hvad koden gør når programmet kalder Transmittersetup og Receiversetup, så sætter den controlleren op til enten at være transmitter eller receiver. Dette gør den ved at at sætte forskellige bits, som er associeret med asynchronous transmission for Side 6 af 15

en transmitter eller receiver. Hvilke bits der enten er sat eller ryddet i forskellige registre kan ses i registeroversigten og en beskrivelse kan findes i selve koden. Dernæst sætter den et interruptflag op som fortæller programmet, hvornår et byte er modtaget. Til sidst sætter programmet boud rate generatoren til 64, for at få en error% på 0.16, rydder W og returnerer til der hvor programmet var nået til. Dette er illustreret i diagrammet ovenover. 4 ICO & register oversigt 4.1 Input, controller, output diagram Nedenstående diagram viser, hvilke inputs og outputs controllerne har, hvoraf flowdiagrammerne viser, hvordan controllererne skal agere med inputsene og outputsene. 4.2 Register oversigt I nedenstående tabel kan der ses en oversigt over, hvilke registre jeg har brugt og til hvilken anvendelse. Side 7 af 15

Register PORTB PORTC 0x20 0xFF, 0xFE, 0xFD TXSTA TXREG RCSTA RCREG INTCON PIE1 PIR1 Anvendelse LED række Seriel ledning Resultat Delay Transmitter Transmitter Receiver Receiver Transmitter & receiver Transmitter & receiver Transmitter & receiver 5 Elevvejledning Det ene PIC-kit skal programmeres til at være transmitter (afsender), hvor det andet PIC-kit skal programmeres til at være receiver (modtager). Når transmitteren er klar til at sende data, bliver den givne data flyttet fra arbejdsregistret, W, til TXREG registret, som sender dataen. Når receiveren er klar og har modtaget data, bliver den modtagede data flyttet fra RCREG registret, som er modtager registret, til arbejdsregistret, W, og fra arbejdsregistret til PORTB. PORTB er den port, hvor LED-rækken er tilsluttet. Den modtagede data sætter dermed de bits, som tænder de forskellige LED er. For at få programmet til at køre skal du anvende: 1. To OTG-kits 2. Én PICKIT 2 med en usb til mini-usb ledning 3. Én seriel ledning 4. Én LED-række For at få programmet til at køre skal du følge følgende fremgangsprocedure: 1. Vi starter med at programmere receiveren (modtageren) 2. Tilslut dit ene OTG-kit til PICKIT 2 Side 8 af 15

3. Åben filen: SerielKommunikation.asm 4. Udkommentér TRANSMITTERSETUP og MAINTRANSMITTER 5. Sørg for, at RECEIVERSETUP og MAINRECEIVER ikke er udkommenteret! 6. Kør koden igennem og programmér OTG-kit et 7. Tilfør den serielle ledning imellem de to OTG-kits i PORTC 8. Tilfør LED-rækken til receiveren i PORTB 9. Dernæst programmerer vi transmitteren (Afsenderen) 10. Tilslut det andet OTG-kit til PICKIT 2 11. Udkommentér RECEIVERSETUP og MAINRECEIVER 12. Sørg for, at TRANSMITTERSETUP og MAINTRANSMITTER ikke er udkommenteret! 13. Kør koden igennem og programmér OTG-kit et 14. Seriel kommunikation er nu igang! Procedure for at ændre den transmitterede data: 1. Åben filen: SerielKommunikation.asm 2. Find MAINTRANSMITTER i koden 3. For at ændre dataen, skal du blot ændre den data du flytter ind i W (MOVLW *dit data*) 4. Dernæst, kald TRANSMITTER og derefter DELAY 5. Du har nu transmitteret dit data For mere dybdegående information, se databladet for PIC16F87XA side 113 til 118. Side 9 af 15

6 Bilag 6.1 Blokdiagrammer 6.2 Bedstemor diagram 6.2.1 Seriel kommunikation Side 10 af 15

6.2.2 Transmitter Side 11 af 15

Side 12 af 15

6.2.3 Receiver Side 13 af 15

6.2.4 Delay Side 14 af 15

6.3 Kode Se vedlagte filer: SerielKommunikation.asm, Transmitter.inc, Receiver.inc og Delay.lib Side 15 af 15