μFR soros kommunikációs protokoll μFR sorozatú eszközökhöz
A μFR sorozatú eszközök képesek kommunikációt létesíteni az FTDI Virtual COM portján keresztül, így az eszközök szabványos COM port hardvernek tekinthetők.
Kommunikációs paraméterek #
FTDI soros interfésszel rendelkező olvasók #
μFR Classic és μFR Advance olvasók USB-csatlakozással:
Soros kommunikáció: 1 Mbps, 8-N-1, Áramlásvezérlés: Nincs;
Az RTS tű az eszköz alaphelyzetbe állítására szolgál. Ha az RTS be van állítva, az eszköz alaphelyzetbe állított állapotban van. Ha az RTS tiszta, az eszköz normál állapotban van.
μFR BaseHD olvasók telepített "μFR support" firmware-rel (pl. XR és μFR XRc olvasók):
Soros kommunikáció (VCOM FTDI illesztőprogram használatával): 250 kbps, 8-N-1, Áramlásvezérlés: Nincs;
FTDI soros interfész nélküli olvasók #
RS485 (csatlakozás USB/RS-485 konverter nélkül):
A változó átviteli sebesség szoftvereszközzel állítható be. Az átviteli sebesség megváltoztatásakor ismerni kell az aktuális átviteli sebességet. Az alapértelmezett átviteli sebesség 250 kbps.
μFR Classic Nano RS232 és RS232 kártyaméret:
UART / TTL: 115200 bps, 8-N-1, Áramlásszabályozás: Nincs.
115200 bps az alapértelmezett átviteli sebesség. A változtatható átviteli sebesség a szoftvereszközön keresztül állítható be.
A csatlakozón lévő PIN 4 az eszköz alaphelyzetbe állítására szolgál. Ha a csap feszültsége magas (3,3 V), akkor a készülék alaphelyzetbe állítási állapotban van. Ha a feszültség alacsony (0 V), akkor a készülék normál üzemmódban van.
Ha az eszköz RS232 – TTL átalakítónkhoz van csatlakoztatva, akkor a 4-es érintkező feszültségszintje szabályozza az RTS-t. Ha az RTS tiszta, az eszköz alaphelyzetbe állított állapotban van. Ha az RTS be van állítva, az eszköz normál állapotban van.
A firmware frissítése során az RTS PIN-kódot csatlakoztatni kell az eszköz 4-es PIN-kódjához.
Az UART / TTL modell pinoutját az alábbiakban mutatjuk be:
Az olvasóeszközök és a gazdaszámítógép közötti kommunikáció céljából létrejön a D-Logic szabadalmaztatott protokollja, a "μFR soros".
Minden kommunikációt az a gazdagép (PC vagy más platform) kezdeményez, amelyhez az eszköz csatlakozik.
A 3.9.44-es firmware-verzióból egyetlen paranccsal továbbított vagy egy eszköz által fogadott maximális adat 256 bájt, előtte pedig 192 bájt.
Általában kétféle csomag létezik:
- CMD – a gazdagép által az eszközre küldött parancs
- ANS – az eszközről a gazdagépre küldött válasz
A CMD lehet rövid vagy hosszú készlet. A CMD rövid készlet mindig 7 bájt hosszú, míg a CMD hosszú készlet – az úgynevezett CMD_EXT változó hosszúságú lehet.
A válaszok:
- ACK – Nyugtázás, minden rendben van, a készülék várja a következő CMD-t vagy CMD EXT-t
- ERR – Hiba történt, a hibabájt meghatározza ERR_TYPE
- RSP – Az eszköz CMD-re vagy CMD_EXT adott válasza
A kommunikációs állandók bájtjai határozzák meg a csomag típusát, amely az egyes csomagok első három bájtjában látható.
Minden csomag első bájtja a HEADER bájt. A második bájt mindig CMD_CODE. A harmadik bájt a TRAILER bájt.
1. táblázat. Kommunikációs állandók
CMD_HEADER | 0x55 | CMD_TRAILER | 0xAA |
ACK_HEADER | 0xAC | ACK_TRAILER | 0xCA |
RESPONSE_HEADER | 0xDE | RESPONSE_TRAILER | 0xED |
ERR_HEADER | 0xEC | ERR_TRAILER | 0xCE |
ELLENŐRZŐÖSSZEG #
A dokumentum összes ellenőrzőösszege ugyanúgy kerül kiszámításra: egy bájtsort használnak az ellenőrző összeg kiszámításához, minden bájtot XOR-ed a következővel a sor végéig. A végső érték 0x07 növekszik.
Például egy CMD-csomag 7 bájtból áll, ahol a 7. bájt az előző 6 bájt ellenőrzőösszege:
ELLENŐRZŐÖSSZEG = (bájt1 XOR bájt2 XOR bájt3 XOR bájt4 XOR bájt5 XOR bájt6) + 0x07
CMD-kódok #
Minden parancsnak megvan a megfelelő értéke – nézze meg a PARANCSOK ÁTTEKINTÉSÉT.
Hibakódok #
Ha hiba történik, az eszköz az ERR-csomaggal válaszol. Minden hibának megvan a megfelelő értéke, amely megtalálható a függelék táblázatában: HIBAKÓDOK.
CMD csomag #
A CMD csomag lehet rövid – 7 bájt hosszú vagy EXT-végű, változó hosszúságú. EXT CMD csomag esetén a CMD csomag negyedik bájtja nagyobb, mint 0, amely egész értéket tartalmaz – CMD_EXT csomag hossza. A CMD_EXT kiadásakor mindig a fő CMD 7 bájtos csomag megy először. Ha minden a várt módon történik, az eszköz az ACK csomaggal válaszol, és várja a CMD_EXT csomagot. Hiba esetén az eszköz az ERR csomaggal válaszol. CMD_EXT parancs típusától függően különböző paraméterekből áll, így CMD_EXT nem rendelkezik rögzített hosszúsággal és paramétersorrenddel.
A CMD csomag szerkezete a következő:
A CMD csomag szerkezete a következő:
Kötelező 7 bájtos CMD csomagstruktúra |
||||||
---|---|---|---|---|---|---|
1. bájt | 2. bájt | 3. bájt | 4. bájt | 5. bájt | 6. bájt | 7. bájt |
CMD_HEADER | CMD_CODE | CMD_TRAILER | CMD_EXT_Length | CMD_Par0 | CMD_Par1 | ELLENŐRZŐÖSSZEG |
- 1. bájt: CMD_HEADER a Table1.Communication constants, 0x55
- 2. bájt: CMD_CODE a 2. táblázatban meghatározottak szerint. CMD_CODE értékek
- 3. bájt: CMD_TRAILER az 1. táblázatban meghatározottak szerint. Kommunikációs állandók, 0xAA
- 4. bájt: CMD_EXT_Length: Ha 0, akkor a "CMD EXT" nem kerül felhasználásra); Az ELSE érték a teljes CMD_EXT csomag hossza
- 5. bájt: CMD_Par0: paraméter0 parancs, a parancstól függően különböző értékeket vesz fel
- 6. bájt: CMD_Par1: paraméter1 parancs, a parancstól függően különböző értékeket vesz fel
- 7. bájt: ELLENŐRZŐÖSSZEG – Az 1–6. bájt ellenőrzőösszege a fent leírtak szerint
CMD_EXT csomag szerkezete a következő:
CMD_EXT csomag szerkezete a következő:
CMD_EXT csomagszerkezet | |||
1. bájt | … | N bájt | Bájt N+1 |
Paraméterbájtok 1–N |
CMD_EXT_CHECKSUM |
Paraméterbájt 1-től N-ig – különböző paraméterek, értékek a parancs típusától függenek
- CMD_EXT_CHECKSUM – 1–N bájtok ellenőrzőösszege
- CMD_EXT_Length az összes bájt száma, beleértve a CMD_EXT_CHECKSUM is; pl. hossza N+1
VÁLASZCSOMAG-típusok #
Az eszköz a következő csomagtípusokkal tud válaszolni:
ACK – Nyugtázó csomag
Ha a parancs és a CMD csomag megfelelően van konfigurálva (struktúra és ellenőrzőösszeg), és további CMD_EXT csomagot kell küldeni, az eszköz ACK csomaggal válaszol.
ERR – Hibacsomag
Ha hiba történt, az eszköz az ERR-csomaggal válaszol. Egyes parancsok visszaadhatják a ERR_EXT készletet.Ebben az esetben a ERR_EXT csomag közvetlenül az ERR-csomag után érkezik.
RSP – Válaszcsomag
Ha megfelelően konfigurált CMD vagy CMD_EXT csomagot küld, az eszköz RSP vagy RSP_EXT csomaggal válaszol, amely a kiadott parancstól függ. Például, ha a CMD-nek olyan válaszra van szüksége, amely elég rövid az RSP-csomaghoz, akkor nem lesz RSP_EXT csomag. Ellenkező esetben, ha a CMD vagy CMD_EXT több bájtot tartalmazó válaszra van szüksége, RSP_EXT közvetlenül az RSP-csomag után jönnek. Gyakori helyzet az, amikor az adatokat a LinearRead paranccsal olvassuk, ahol a készülék egy sor kártya adatbájttal válaszol.
ACK – Nyugtázó csomag #
Az ACK-csomag szerkezete a következő:
Az ACK-csomag szerkezete a következő:
ACP csomagszerkezet |
||||||
1. bájt | 2. bájt | 3. bájt | 4. bájt | 5. bájt | 6. bájt | 7. bájt |
ACK_HEADER | CMD_CODE | CMD_TRAILER | Nem releváns, ACK-csomagban nem használatos | ELLENŐRZŐÖSSZEG |
- 1. bájt: ACK_HEADER a Table1.Communication constants, 0x55
- 2. bájt: CMD_CODE a 2. táblázatban meghatározottak szerint. CMD_CODE értékek. Eszköz ACKaz előző parancs megfelelő elküldésének jóváhagyása
- 3. bájt: ACK_HEADER az 1. táblázatban meghatározottak szerint.Kommunikációs állandók, 0x55
- 4. bájt: 5. bájt, 6. bájt: ACK-csomagban nem használatos, az értékek 0x00
- 7. bájt: ELLENŐRZŐÖSSZEG – Az 1–6. bájt ellenőrzőösszege a fent leírtak szerint
ERR – hibacsomag #
Az ERR csomag szerkezete a következő:
Kötelező 7 bájtos ERR |
||||||
1. bájt | 2. bájt | 3. bájt | 4. bájt | 5. bájt | 6. bájt | 7. bájt |
ERR_HEADER | ERROR_CODE | ERR_TRAILER | ERR_EXT_Length | Err_Val0 | Err_Val1 | ELLENŐRZŐÖSSZEG |
- 1. bájt: ERR_HEADER az 1. táblázatban meghatározottak szerint.Kommunikációs állandók, 0xEC
- 2. bájt: ERR_CODE a 3. táblázatban meghatározottak szerint. HIBAKÓDOK.
- 3. bájt: ERR_TRAILER az 1. táblázatban meghatározottak szerint. Kommunikációs állandók, 0xCE
- 4. bájt: Ha ERR_EXT létezik, ez a bájt tartalmazza a ERR_EXT csomag hosszát (beleértve ERR_EXT ellenőrzőösszeget is)
- 5. bájt: A hibával kapcsolatos lehetséges további információk a ERR_Val0
- 6. bájt: A hibára vonatkozó lehetséges további információk a ERR_Val1
- 7. bájt: ELLENŐRZŐÖSSZEG – Az 1–6. bájt ellenőrzőösszege a fent leírtak szerint
ERR_EXT és a következő szerkezettel rendelkezik:
ERR_EXT csomagszerkezet | |||
1. bájt | .. | N bájt | Bájt N+1 |
1–N hibabájt | ERR_EXT_CHECKSUM |
- 1. bájt: ERR_EXT első bájtja
- …
- N bájt: ERR_EXT n-edik bájtja
- N+1 bájt: ERR_EXT_CHECKSUM, az 1–N bájtok ellenőrző összege, a korábban leírtak szerint kiszámítva.
RSP – válaszcsomag #
Az RSP-csomag szerkezete a következő:
Kötelező 7 bájtos RSP |
||||||
1. bájt | 2. bájt | 3. bájt | 4. bájt | 5. bájt | 6. bájt | 7. bájt |
RSP_HEADER | CMD_CODE | RSP_TRAILER | RSP_EX_length | RSP_Val0 | RSP_Val1 | ELLENŐRZŐÖSSZEG |
- 1. bájt: RSP_HEADER az 1. táblázatban meghatározottak szerint.Kommunikációs állandók, 0xED
- 2. bájt: CMD_CODE a 2. táblázatban meghatározottak szerint. CMD_CODE értékek
- 3. bájt: ERR_TRAILER az 1. táblázatban meghatározottak szerint.Kommunikációs állandók, 0xDE
- 4. bájt: Ha RSP_EXT létezik, ez a bájt tartalmazza a RSP_EXT csomag hosszát (beleértve RSP_EXT ellenőrzőösszeget is)
- 5. bájt: A RESPONSE-ra vonatkozó lehetséges további információk a RSP_Val0
- 6. bájt: A RESPONSE-ra vonatkozó lehetséges további információk a RSP_Val1
- 7. bájt: ELLENŐRZŐÖSSZEG – Az 1–6. bájt ellenőrzőösszege a fent leírtak szerint.
t
RSP_EXT csomagszerkezet | |||
1. bájt | .. | N bájt | Bájt N+1 |
RSP bájtok 1–N | RSP_EXT_CHECKSUM |
- 1. bájt: RSP_EXT első bájtja
- …
- N bájt: RSP_EXT n-edik bájtja
- N+1 bájt: RSP_EXT_CHECKSUM, az 1–N bájtok ellenőrző összege, a korábban leírtak szerint kiszámítva.