μFR Protokol serijske komunikacije za uređaje serije μFR
Uređaji serije μFR mogu uspostaviti komunikaciju putem FTDI-jevog Virtual COM priključka, tako da se uređaji smatraju standardnim HARDVEROM COM priključka.
Komunikacijski parametri #
Čitači s FTDI serijskim sučeljem #
μFR Classic i μFR Napredni čitači s USB vezom:
Serijska komunikacija: 1 Mbps, 8-N-1, Kontrola protoka: Nema;
RTS pin koristi se za resetiranje uređaja. Kada je RTS postavljen, uređaj je u stanju resetiranja. Kada je RTS jasan, uređaj je u normalnom stanju.
μFR BaseHD čitači s instaliranim firmverom "μFR podrška" (npr. XR i μFR XRc čitači):
Serijska komunikacija (pomoću upravljačkog programa VCOM FTDI): 250 kbps, 8-N-1, Kontrola protoka: Nema;
Čitači bez FTDI serijskog sučelja #
RS485 (veza bez pretvarača USB/RS-485):
Promjenjiva brzina bauda može se postaviti putem softverskog alata. Trenutna stopa bauda mora biti poznata pri promjeni stope bauda. Zadana stopa bauda je 250 kbps.
μFR Classic Nano RS232 i veličina kartice RS232:
UART / TTL: 115200 baznih bodova, 8-N-1, Kontrola protoka: Nema.
115200 baznih bodova je zadana stopa bauda. Promjenjiva brzina bauda može se postaviti putem softverskog alata.
PIN 4 na konektoru koristi se za resetiranje uređaja. Ako je napon na ovoj igli visok (3,3 V), tada je uređaj u stanju resetiranja. Ako je napon nizak (0 V), tada je uređaj u normalnom radnom stanju.
Ako je uređaj spojen na naš RS232 na TTL pretvarač, tada se razina napona na pinu 4 kontrolira nad RTS-om. Kada je RTS jasan, uređaj je u stanju resetiranja. Kada je RTS postavljen, uređaj je u normalnom stanju.
Tijekom ažuriranja firmvera, RTS pin mora biti spojen na pin 4 na uređaju.
Pinout za UART / TTL model prikazan je u nastavku:
U komunikacijske svrhe između uređaja za čitanje i glavnog računala stvara se vlasnički protokol D-Logica pod nazivom "μFR serijski".
Svu komunikaciju pokreće domaćin (računalo ili druge platforme) na koje je uređaj povezan.
Maksimalni podaci preneseni jednom naredbom ili primljeni odgovorom jednog uređaja, iz firmvera verzije 3.9.44 je 256 bajtova, a prije je 192 bajta.
Općenito, postoje dvije vrste paketa:
- CMD – naredba koju je glavno računalo poslalo na uređaj
- ANS – odgovor poslan s uređaja na hostiranje
CMD može biti kratak ili dug set. CMD kratki set uvijek traje 7 bajtova, dok CMD dugi set – nazvan CMD_EXT može imati promjenjivu duljinu.
Odgovori su:
- ACK – Priznanje, sve je u redu, uređaj čeka sljedeći CMD ili CMD EXT
- ERR – Došlo je do pogreške, bajt pogreške definira ERR_TYPE
- RSP – Odgovor uređaja na CMD-u ili CMD_EXT
Bajtovi komunikacijskih konstanti definiraju vrstu paketa, što se može vidjeti u prva tri bajta svakog paketa.
Prvi bajt svakog paketa je HEADER bajt. Drugi bajt je uvijek CMD_CODE. Treći bajt je TRAILER bajt.
Stol1. Komunikacijske konstante
CMD_HEADER | 0x55 | CMD_TRAILER | 0xAA |
ACK_HEADER | 0xAC | ACK_TRAILER | 0xCA |
RESPONSE_HEADER | 0xDE | RESPONSE_TRAILER | 0xED |
ERR_HEADER | 0xEC | ERR_TRAILER | 0xCE |
ČEK #
Svi kontrolni zbrojevi u ovom dokumentu izračunavaju se na isti način: za izračun kontrolnog zbroja koristi se red bajtova, svaki bajt je XOR-ed sa sljedećim do kraja retka. Konačna vrijednost povećava se s 0x07.
Na primjer, CMD paket ima 7 bajtova, gdje je 7. bajt kontrolni zbroj prethodnih 6 bajtova:
CHECKSUM = (Byte1 XOR Byte2 XOR Byte3 XOR Byte4 XOR Byte5 XOR Byte6) + 0x07
CMD kodovi #
Svaka naredba ima odgovarajuću vrijednost – pogledajte COMMANDS OVERVIEW.
Kodovi pogrešaka #
Ako dođe do pogreške, uređaj će odgovoriti s ERR paketom. Svaka pogreška ima odgovarajuću vrijednost koja se može naći u tablici u Dodatku: KODOVI POGREŠAKA.
CMD paket #
CMD paket može biti kratak – dug 7 bajtova ili EXT-završio s promjenjivom duljinom. U slučaju EXT CMD paketa, četvrti bajt CMD paketa veći je od 0, a sadrži cjelobrojnu vrijednost – duljinu CMD_EXT paketa. Prilikom izdavanja CMD_EXT uvijek glavni CMD 7-byte dugi paket ide prvi. Ako je sve očekivano, uređaj će odgovoriti s ACK paketom, čekajući CMD_EXT paket. Pri pogrešci će uređaj odgovoriti ERR paketom. CMD_EXT se sastoji od različitih parametara, ovisno o vrsti naredbe, tako da CMD_EXT nema fiksnu duljinu i redoslijed parametara.
CMD paket ima sljedeću strukturu:
CMD paket ima sljedeću strukturu:
Obavezna struktura CMD paketa od 7 bajtova |
||||||
---|---|---|---|---|---|---|
Bajt 1 | Bajt 2 | Bajt 3 | Bajt 4 | Bajt 5 | Bajt 6 | Bajt 7 |
CMD_HEADER | CMD_CODE | CMD_TRAILER | CMD_EXT_Length | CMD_Par0 | CMD_Par1 | ČEK |
- Bajt 1: CMD_HEADER kako je definirano u tablici 1.Komunikacijske konstante, 0x55
- Bajt 2: CMD_CODE kako je definirano u tablici 2. CMD_CODE vrijednosti
- Bajt 3: CMD_TRAILER kako je definirano u tablici1.Komunikacijske konstante, 0xAA
- Bajt 4: CMD_EXT_Length: Ako 0, tada se ne koristi "CMD EXT"); ELSE vrijednost je duljina cijelog paketa CMD_EXT
- Bajt 5: CMD_Par0: parametar naredbe0, uzima različite vrijednosti ovisno o naredbi
- Bajt 6: CMD_Par1: parametar naredbe1, uzima različite vrijednosti ovisno o naredbi
- Bajt 7: CHECKSUM – Kontrolni zbroj bajtova od 1 do 6 kako je gore objašnjeno
CMD_EXT paket ima sljedeću strukturu:
CMD_EXT paket ima sljedeću strukturu:
struktura paketa CMD_EXT | |||
Bajt 1 | … | Bajt N | Bajt N +1 |
Bajtovi parametara od 1 do N |
CMD_EXT_CHECKSUM |
Bajtovi parametara od 1 do N – različiti parametri, vrijednosti ovise o vrsti naredbe
- CMD_EXT_CHECKSUM – Kontrolni zbroj bajtova od 1 do N
- CMD_EXT_Length je broj svih bajtova, uključujući CMD_EXT_CHECKSUM; npr. duljina je N + 1
Vrste paketa ANSWER #
Uređaj može odgovoriti sljedećim vrstama paketa:
ACK – Paket priznanja
Ako su naredba i CMD paket ispravno konfigurirani (struktura i kontrolni zbroj) i potrebno je poslati dodatni CMD_EXT paket, uređaj će odgovoriti SCK paketom.
ERR – Paket pogrešaka
Ako je došlo do pogreške, uređaj će odgovoriti ERR paketom. Neke naredbe mogu vratiti skup ERR_EXT.U tom slučaju, ERR_EXT paket dolazi odmah nakon ERR paketa.
RSP – Paket odgovora
Ako se pošalje ispravno konfigurirani CMD ili CMD_EXT paket, uređaj će odgovoriti RSP ili RSP_EXT paketom, što ovisi o izdanoj naredbi. Na primjer, ako CMD treba odgovor koji je dovoljno kratak za RSP paket, neće biti RSP_EXT paketa. Inače, ako CMD ili CMD_EXT trebaju odgovor s više bajtova, RSP_EXT će doći odmah nakon RSP paketa. Uobičajena je situacija prilikom čitanja podataka pomoću naredbe LinearRead, gdje će uređaj odgovoriti redom bajtova s podacima kartice.
ACK – Paket priznanja #
ACK paket ima sljedeću strukturu:
ACK paket ima sljedeću strukturu:
Struktura ACP paketa |
||||||
Bajt 1 | Bajt 2 | Bajt 3 | Bajt 4 | Bajt 5 | Bajt 6 | Bajt 7 |
ACK_HEADER | CMD_CODE | CMD_TRAILER | Nevažno, ne koristi se u ACK paketu | ČEK |
- Bajt 1: ACK_HEADER kako je definirano u tablici 1.Komunikacijske konstante, 0x55
- Bajt 2: CMD_CODE kako je definirano u tablici 2. CMD_CODE vrijednosti. Uređaj ACK priznaje da je prethodna naredba ispravno poslana
- Bajt 3: ACK_HEADER kako je definirano u tablici 1.Komunikacijske konstante, 0x55
- Bajt 4: Bajt 5, Bajt 6: Ne koristi se u ACK paketu, vrijednosti su 0x00
- Bajt 7: CHECKSUM – Kontrolni zbroj bajtova od 1 do 6 kako je gore objašnjeno
ERR – paket pogrešaka #
ERR paket ima sljedeću strukturu:
Obvezni ERR od 7 bajtova |
||||||
Bajt 1 | Bajt 2 | Bajt 3 | Bajt 4 | Bajt 5 | Bajt 6 | Bajt 7 |
ERR_HEADER | ERROR_CODE | ERR_TRAILER | ERR_EXT_Length | Err_Val0 | Err_Val1 | ČEK |
- Bajt 1: ERR_HEADER kako je definirano u tablici1.Komunikacijske konstante, 0xEC
- Bajt 2: ERR_CODE kako je definirano u tablici 3. KODOVI POGREŠAKA.
- Bajt 3: ERR_TRAILER kako je definirano u tablici 1.Komunikacijske konstante, 0xCE
- Bajt 4: Ako postoji ERR_EXT, ovaj bajt sadrži duljinu paketa ERR_EXT (uključujući ERR_EXT kontrolni zbroj)
- Bajt 5: Moguće dodatne informacije o pogrešci mogu se definirati u ERR_Val0
- Bajt 6: Moguće dodatne informacije o pogrešci mogu se definirati u ERR_Val1
- Bajt 7: CHECKSUM – Kontrolni zbroj bajtova od 1 do 6 kako je gore objašnjeno
ERR_EXT i ima sljedeću strukturu:
struktura paketa ERR_EXT | |||
Bajt 1 | .. | Bajt N | Bajt N +1 |
Bajtovi pogrešaka od 1 do N | ERR_EXT_CHECKSUM |
- Bajt 1: Prvi bajt ERR_EXT
- …
- Bajt N: N-nti bajt ERR_EXT
- Bajt N + 1: ERR_EXT_CHECKSUM, kontrolni zbroj bajtova od 1 do N, izračunat kako je ranije objašnjeno.
RSP – paket odgovora #
RSP paket ima sljedeću strukturu:
Obvezni RSP od 7 bajtova |
||||||
Bajt 1 | Bajt 2 | Bajt 3 | Bajt 4 | Bajt 5 | Bajt 6 | Bajt 7 |
RSP_HEADER | CMD_CODE | RSP_TRAILER | RSP_EX_length | RSP_Val0 | RSP_Val1 | ČEK |
- Bajt 1: RSP_HEADER kako je definirano u tablici 1.Komunikacijske konstante, 0xED
- Bajt 2: CMD_CODE kako je definirano u tablici 2. CMD_CODE vrijednosti
- Bajt 3: ERR_TRAILER kako je definirano u tablici 1.Komunikacijske konstante, 0xDE
- Bajt 4: Ako postoji RSP_EXT, ovaj bajt sadrži duljinu paketa RSP_EXT (uključujući RSP_EXT kontrolni zbroj)
- Bajt 5: Moguće dodatne informacije o ODGOVORU mogu se definirati u RSP_Val0
- Bajt 6: Moguće dodatne informacije o ODGOVORU mogu se definirati u RSP_Val1
- Bajt 7: CHECKSUM – Kontrolni zbroj bajtova od 1 do 6 kako je gore objašnjeno.
t
struktura paketa RSP_EXT | |||
Bajt 1 | .. | Bajt N | Bajt N +1 |
RSP bajtovi od 1 do N | RSP_EXT_CHECKSUM |
- Bajt 1: Prvi bajt RSP_EXT
- …
- Bajt N: N-nti bajt RSP_EXT
- Bajt N +1: RSP_EXT_CHECKSUM, kontrolni zbroj bajtova od 1 do N, izračunat kako je ranije objašnjeno.