Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 28 mar 2024, o 23:52


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
 Tytuł: Wiegand 26bit
PostNapisane: 26 paź 2018, o 22:40 
Offline
Użytkownik

Dołączył(a): 22 mar 2014
Posty: 52
Pomógł: 0

Witam, tak jak w temacie próbuje dowiedzieć się czegoś o tym protokole.
W internecie jest trochę informacji na ten temat ale wszystko w języku angielskim.
Może ktoś się tym kiedyś bawił i może napisać jak to obsługiwać na AVR.
Do odczytu mam zwykłe karty na 125kHz.
Po odczytaniu karty z czytnika na analizatorze stanów logicznych wychodzi mi taki kod:
00101011 01001111 00110100 01

Wiem, że pierwszy i ostatni bit to są bity parzystości.
Kolejne 8bitów to jest kod objektu(nie wiem co to jest) i kolejne 16bitów to kod karty.
Ale jak to jest obliczane?
W internecie znalazłem kalkulator do tego protokołu i obliczył mi coś takiego:
Facility code: 86(DEC)
Card code: 40552(DEC)

Jak on obliczył to 40552?
Link do kalkulatora:
http://www.ccdesignworks.com/wiegand_calc.htm



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 paź 2018, o 22:52 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

mateusz19955 napisał(a):
00101011 01001111 00110100 01

To masz po odrzuceniu pierwszego i ostatniego bitu:
01010110 => 0x56 => 86
10011110 01101000 => 0x9E68 => 40552

--
Pozdrawiam,
Robert

------------------------ [ Dodano po: 7 minutach ]

A wytłumaczenie protokołu masz w Wikipedii. Jak nie znasz angielskiego do google prawie dobrze tłumaczy :) :
Cytuj:
Protokół komunikacyjny używany na interfejsie Wiegand jest znany jako protokół Wiegand. Oryginalny format Wiegand miał pierwszy bit parzystości, 8 bitów kodu obiektu, 16 bitów kodu identyfikacyjnego i końcowy bit parzystości dla łącznie 26 bitów. Pierwszy bit parzystości jest obliczany na podstawie pierwszych 12 bitów kodu a końcowy bit parzystości z ostatnich 12 bitów. Istnieje jednak wiele niespójnych implementacji i rozszerzeń podstawowego formatu.

Wielu producentów systemów kontroli dostępu przyjęło technologię Wiegand, ale byli niezadowoleni z ograniczeń tylko 8 bitów dla kodów lokalizacji (0-255) i 16 bitów dla numerów kart (0-65535), więc zaprojektowali własne formaty o różnym stopniu złożoności liczby i długości oraz sprawdzania parzystości.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 paź 2018, o 23:05 
Offline
Użytkownik

Dołączył(a): 22 mar 2014
Posty: 52
Pomógł: 0

Dzięki za pomoc.
A możesz mi jeszcze powiedzieć po co jest ten 8 bitowy kod obiektu?
Do czego można to wykorzystać?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2018, o 07:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1020
Lokalizacja: Trójmiasto
Pomógł: 188

W zamyśle facility code czyli Twój kod obiektu to taki identyfikator producenta (może się mylę ale wydaje mi sie że kiedyś producent dostawał konkretny numer facility code z urzędu i mógł produkować karty tylko z tym kodem - podobnie zresztą jest z urządzeniami sieciowymi w których część makadresu jest identyfikatorem producenta). Niektórzy producenci czytników za pomocą tego bronią się przed konkurencją i np karty o innym niż dystrybuowane przez nich kodzie facility nie są akceptowane. Spotykane są zazwyczaj 3 szkoły:
1 - albo facility code wogule nie jest "wyłuskiwany" tylko odczytywany jest cały 24bitowy kod karty i na tej podstawie rozpoznawany jest użytkownik
2 - mamy możliwość włączenia rozpoznawania facility code i jego wskazania - np firma która montuje u klienta rozbudowaną kontrolę dostępu może to włączyć tak by klient brał karty tylko od niego a nie od konkurencji - choć takie zabezpieczenie w dzisiejszych czasach nie jest zbytnio skuteczne. Ale też są inne sposoby wykorzystania funkcjonalności facility code
3 - włączone na sztywno przez producenta danego czytnika wykrywanie facility code i tylko karty z tym konkretnym są akceptowane.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 paź 2018, o 11:15 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 01 lip 2013
Posty: 14
Lokalizacja: Kielce
Pomógł: 0

w dokumentacji HID masz opisany standard Wiegand 26: https://www.hidglobal.com/sites/default/files/hid-understanding_card_data_formats-wp-en.pdf

Masz tam pokazane te 26 bitów danych i ich podział na bity: parity, facility, card number:
Obrazek

Skrajne bity to bity parzystości i na tym obrazku masz pokazane z jakiego wycinka ramki są obliczane. To jednak zostaw na początku gdyż nie jest to niezbędne do odczytania numeru kartu.

Odczytanie tego standardu przez AVR jest bardzo proste. Masz dwie linie: CLOCK i DATA. (uwaga: niektóre czytnika mają opis DATA0 i DATA1 wiec jak zamienisz to nie odczytasz prawidlowych danych). W AVR możesz odczytywać bity generowane przez czytnik bezpośredniu w obsłudze przerwań od INT0 i INT1. Po przyłozeniu karty czytnik wygeneruje sygnał zegarowy na lini CLOCK ( w tym konkretnym przypadku tj Wiegand 26 - zmieni stan logiczny 26 razy). Wystarczy że na porcie INT1 czyli sygnału DATA będziesz zapisywał stan tego portu (0 lub 1) w momencie kiedy zmienia się stan portu INT0 czyli gdzie podłączasz CLOCK.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 6 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO