Jag har som ett projekt till jobbet börjat fnurla på ett passagesystem mha RFID. Systemet består av en RFID-läsare med inbyggd knappsats och några passande 125kHz-taggar att fästa på nyckelringen.
I en önskan att minimera hårdvarukostnader och maximera flexibilitet vill jag egentligen bara ha läsaren på utsidan av dörren (i trapphuset) och en liten enhet på insidan som beslutar om taggen som hålls upp och koden som matas in skall öppna låsen. Tidomat har tänkt sig att man har åtminstone tre enheter i ett sånt här system: läsaren, en dörrkontroller och en systemkontroller. Detta gör det omöjligt att integrera med ett existerande system - det behövs en separat accesslista i Tidomats systemkontroller.
I vilket fall som helst. Mellan läsaren och dörrservern finns det en tvåtrådskommunikation (clock/data) som är dubbelriktad. Eftersom jag bara äger den ena enheten kan jag inte lyssna av någon dialog och efterlikna den. Jag beslutade mig därför för att se vad det gömde sig för något elektronikartat i läsaren.
Tro det eller ej, när man hade bänt upp locket och fått bort silikonet hittar man en Philips HTRC110 Hitag Reader Chip, en PIC12C672 och 5 st hål för en ICSP-pinheader. Perfekt! Datablad finns tillgänliga, så Elfa fick bistå med en PIC12F675 (pinkompatibel, ungefär motsvarande funktioner) att ersätta kretsen från Tidomat med.
Dessvärre verkar Tidomats krets vara Code Protected och detta gör att man inte har någon större hjälp av den för att lista ut originalprotokollet. Därför får ny mjukvara till ersättnings-PICen skrivas.
På grund av att Tidomat har hängt en buzzer på ICSP-Data och lite annat jox på ICSP-ledningarna kunde jag inte använda min vanliga PIC-programmerare för att lägga in mjukvara. Som ett sidospår fick en egen ICSP-programmerare byggas som tar det lite varligare med ledningarna och inte programmerar lika snabbt som min ordinarie WARP13-programmerare.
I dagsläget fungerar det absolut mesta, dvs
- Avläsning av knappsatsen (görs mha A/D-omvandlaren, varje knapp uppvisar en särskild spänning på Pin 7 när den är nedtryckt)
LED-flashning (finns en grön och en röd lysdiod som tänds när man aktiverar GP5 som utgång, 1=grön, 0=röd)
Initiering av HTRC110 RFID-läsarkretsen
Avkodning av data från HTRC110-kretsen
Jag har tre brickor. De verkar repetera följande 256-bitar långa bitströmmar:
Bricka 1
Kod: Markera allt
101000000000001111111011010111111111111111110010111101000101000100001111111101101010111
00000000000001111101011011111111111111111000010110101000100000100111111110101101011111
00000000000111111101111011111111111111111001010110100000100010100111111110110101011
Kod: Markera allt
101000000000001111111011010111111111111111110010101011101010110111100101111010111111101
00000000000001111111011011111111111111111010010101011101010110110000101101010111111101
00000000000101111101011011111111111111111001010101111101011010110010101101010111110
Kod: Markera allt
101000000000001111111101010111111111111111101100101110100000001000001000000011010101001
00000000000001111111101011111111111111110101100111110100000001000101000001011010101001
00000000000101111110101011111111111111110110100111010100000101000100000001101010100
Är det någon som har insikt i hur en sådan här tag är kodad egentligen? Vad synkar man på, så att man hittar början på den repeterande koden tillförlitligt? Finns det paritetsbitar? Hur är de isf beräknade? Vilken del är avsedd att vara unik? Det finns flera återkommande bitsekvenser i alla taggarna...
Tacksam för svar,
Kristoffer