RFID

  • Dags att tänka på refrängen

    Då var det dags att tacka för oss. Den sista tiden har vi jobbat med vår rapport och snyggat till våra moduler. Vår RFID-läsare, antenn och microcontroller är numera förpackad en snygg låda :) Bild på insidan och utsidan ser ni nedan. Rapporten är inlämnad och det är bara redovisningen som återstår.

    Modul utsida

     

    Modul

     

    Det har varit väldigt roligt och lärorikt att vara på Broccoli och arbeta med det här projektet. Vi vill tacka Björn Bergholm för att ha givit oss möjligheten till detta exjobb och all hjälp längs vägen, Thomas Hellström, Henning Colliander och Tobias Ekman på kontoret genom att alltid ta sig tid att hjälpa, tjejerna på kontoret, Jane Hök, Kristin Höjer och Jessica Mörk Hammer, som har fått en att känna sig välkommen och handledare Henrik Brenander som hjälpte till att få nytt perspektiv på saker.

     

    Tack för oss!

    Daniel och Dina

  • Skriva rapport

    Det är slutet på vecka nio och exjobbet börjar glida mot sitt slut, endast en vecka återstår. I början av veckan pratade vi med Björn Bergholm och beslutade att inte fortsätta med utvecklingen av RFID på långt avstånd utan istället fokusera på att få allt klart, snygga till kod och skriva rapporten. Det känns väldigt bra att sätta en punkt här och inte stressa med att få igång kommunikationen med långt avstånd när så lite tid återstår och mycket annat som ska göras.

    Mycket av tiden den här veckan har gått åt att skriva rapport. Den är inlämnad nu och vi väntar på kommentarer från vår handledare på Chalmers. Förhoppningsvis får vi en examinationstid i början av juni. Det som återstår nu är att fortsätta skriva rapporten, snygga till och ändra det som behöver ändras. Vi fick även knappar, plexiglas och lådor som vi ska använda för att snygga till våra experimentkort. Bilder utlovas när det är klart :)

  • Misslyckat försök med RF-modulen

    Den senaste tiden har vi jobbat intensivt med RF-modulen TCM 320. Vi studerade databladet för att förstå hur vi ska skicka en bärvåg för att kunna ta emot taggens ID, följde de angivna instruktionerna men fick ändå inte igång någon kommunikation. Man kan se att microcontrollern skickar ut data till RF-modulen men vi saknar  instrument för att se om en radiovåg skickas ut via antennen. Det enda som går att se är att RF-modulen inte skickar någon signal till tillbaka till microcontrollern, inte ens brus. Bilden nedan visar kommunikationen mellan microcontrollern och RF-modulen. Den blåa signalen är det som skickas från microcontrollern till RF-modulen och den gula signalen är det som RF-modulen skickar tillbaka.

    Signaler RF-modul

    Det visade sig så småningom att RF-modulen som vi hade beställt var ett felköp. Det är inte en “vanlig” RF-modul utan en produkt med ett speciellt applikationslager utvecklat av EnOcean Alliance. Kommunikationen på applikationslagret sker med så kallade EnOcean radio telegram vilket innebär att modulen endast kan kommunicera med andra EnOcean Alliance produkter. Vi kan inte använda produkten då vår tag inte använder det protokollet. Deras produkter är för övrigt anpassade för att tända, släcka och dimma lampor trådlöst. Den använder sig av radio standaren ISO/IEC - 14543-3-10, ett standard utvecklat för att trådlösa applikationer med ultra-låg strömförbrukning.

  • Äntligen! EEPROMet fungerar

    Att upprätta kommunikationen med minnet visade sig vara mer komplicerat än vad vi hade trott från början. Efter att ha lagt ner nästan två veckor på att läsa på om SPI och vårt EEPROM-minne så har vi fått det att fungera. Äntligen!

    Lite kort om SPI. När SPI används kopplas EEPROM-minnet till microcontrollern med hjälp av minst sex ledningar. Den första används för att skicka klocksignalen från microcontrollen till minnet (SCK). Den andra för att skicka data från mastern till slaven (MOSI) och den tredje för att skicka data från slaven till master (MISO). En koppling används för matningsspänning och ytterligare en för att jorda enheten. Slutligen, den sista kopplingen används för att ange om minnet ska vara aktivt eller i stand-by läge, så kallad chip select (CS). Om en etta ges är minnet aktivt medan en nolla sätter minnet i stand-by läge. Ytterligare en pinne, en sjunde pinne, används för just modellen Microship 93C66C för att ange om 8-bitars eller 16-bitas organisation ska användas. En etta på denna port indikerar att 16-bitars register kommer att användas medan en nolla anger att 8-bitars ord kommer att användas. Minnet är 4Kbit stort och då ASCII-tecken används räcker det med 8-bitars långa minnesplatser. Det innebär att vi ska skriva 512 tecken i minnet.

    EEPROM-minnet som används i detta projekt, Microchip 93C66C, ska till skillnad från andra EEPROM ha en hög signal på CS när den ska skicka data. Det är en av anledningarna till varför det inte har fungerat. När man sedan läser från, skriver till eller raderar minnet så ska en kod skickas först som anger vad man vill göra. Koden består oftast av tre bitar till exempel 101 (skriva), 110 (läsa) mm. Sedan följer adressen till vilken man skriver till/läser från. Efter adressen kommer datan, själva tecknet.

    Det ger oss följande vid tex skrivning: 101 -> 9-bitar adress -> 8 bitar data. Det innebär att bitarna kommer att behöva skiftas, adress och databiten behöver förskjutas 3 bitar för att det ska bli rätt.

    Ett annat problem som har bromsat in arbetet är att skrivningen till minnet inte tycks fungera som det ska. Enligt databladet så ska MISO, eller data output som det kallas i databladet, ligga på ett för att indikera att skrivingen till minnet har fungerat och att den är redo att ta emot nästa kommando. Bilden nedan visar hur det ska se ut. När vi jämförde detta med outputen från osciloskopet så kunde vi se att vår MISO låg på noll. Det innebar att det inte gick att skriva till minnet. Efter att ha lagt mycket tid på felsökning visade sig att felet var väldigt simpelt, pinsamt simpelt. Felet var att EEPROM-minnet är skrivskyddat per default och behöver ställas om till skrivläge. En viss bitsekvens behöver skickas till minnet för att kunna skriva till det. Efter att det var gjort fungerade det att skriva till och läsa från minnet.

    Ett problem återstod och det var att när vi får tillbaka datan så är den förskjuten med tre bitar, så tecknet som är på 8 bitar är splittrad över två bytes. Men det var lätt åtgärdat genom att skriva en metod som skiftar runt den mottagna datan.  

    Bild som visar hur kommunikationen med EEPROM fungerar

    Bilden och information om EEPROM 93C66C hittar ni i Microchips datablad.

  • RF-modul

    Nu har vi ett system som kan låsa upp en bil med hjälp av RFID. Problemet är att det endast fungerar på några centimeters avstånd. För att få upp avståndet krävs det nu att vi byter ut RFID-modulen mot någon annan variant.

    Vi har upptäckt att marknaden med RFID-moduler av så kallad ultrahög frekvens inte är jättestor. Det finns  ett antal produkter, men de är alla ganska kostsamma. Däremot finns det en större marknad på RF-moduler (moduler som hanterar radiosignaler). Eftersom RFID-system byggs upp med hjälp av RF-teknik tänker vi undersöka om det är möjligt att läsa RFID-taggar genom att använda en sådan modul. Vi har då köpt in en 868 MHz-transceiver (transmitter/receiver) samt en tag som även den är tillverkad för 868 MHz.

    Modulen använder ASK-modulering som även de flesta passiva taggarna använder sig av. ASK (Amplitude Shift Keying) innebär att man skiftar amplituden på signalen man skickar beroende på meddelandet som skickas. En viss amplitud betyder "1" och en annan amplitud "0". Det finns även FSK (Frequency Shift Keying) och PSK (Phase Shift Keying). FSK är det som används mest i aktiva taggar, vilket kan bli aktuellt ifall den nuvarande metoden inte kommer fungera.

    Förhoppningen nu är att vi ska skicka ut en signal från RF-modulen som aktiverar den passiva taggen som skickar tillbaka sin signal. Vi ska då kunna ta emot denna signal och se om ID:t är godkänt.

KarriärTjänsterOm ossBloggar