INCA

https//www.racom.eu/cz/support/protocols_docum/bc280_inca.html
1. Úvod

   Protokol INCA byl vytvořen společností Nederland Haarlem company. 
Protokol se používá pro komunikaci mezi signalizačním zařízením parkovišť a 
ústředím.
   Protokol může pracovat ve třech režimech (1.point to point, 2.broadcast, 
3.multicast) avšak v MORSE systému je podporován jen režim point to point. 


2. Formát dat 

Všechny rámce protokolu INCA v režimu point to point jsou charakterizovány 
touto strukturou:

| sync/8 | hdrlen/8 | msglen/16 | datachk/16 | msgid/8 | srcaddr/16 |
    E3       0D         00 15       85 F8        00        81 05     


| msgtyp/8 | destaddr/16 | hdrchk/8 |      data/size        | tail/8 |
    01         81 06         84      02 00 00 6A 00 82 02 2D    0D  


Význam položek:
sync      začátek rámce (STX), vždy je E3h
hdrlen    délka hlavičky (při režimu point to point je vždy 0Dh)
msglen    celková délka zprávy (mimo zakončení tail) 
datachk   kontrolní součet (CRC-16 přes data zprávy)
msgid     identifikace zprávy 
srcaddr   adresa odesílatele (source)
msgtyp    typ cílové adresy:
            point to point mode    vždy 01 or 02
            broadcast mode         03 (není podporováno v MORSE)
            multicast mode         04 (není podporováno v MORSE)
destaddr  cílová adresa (destination)
hdrchk    kontrolní součet hlavičky (exlusive-or přes sync, hdrlen, msglen,
            datachk, msgid,srcaddr, msgtyp a destaddr)
data      vysílaná data, velikost v bytech = msglen – 0Dh
tail      konec rámce (ETX), vždy 0Dh


3.Implementace protokolu v systému MORSE 

- přístupový modul protokolu INCA

3.1.Vnější zařízení –> Morse Communication Unit (MCU)

MCU kontroluje každý příchozí rámec v těchto krocích:
1. Délka rámce musí být větší nebo rovna 14 byte (minimální velikost 
paketu, obsahuje jen header a tail, nikoliv data)
2. STX (sync) je E3h
3. Délka hlavičky (hdrlen) je 0Dh (13 byte)
4. Skutečná délka paketu musí být rovna nebo větší než  délka zprávy 
(msglen) uvedená v hlavičce + 1 (tail)
5. Kontrolní součet hlavičky (hdrchk) je O.K.
6. CRC (datachk) je O.K.
7. Tail je na správné pozici a je 0Dh.
   Jestliže souhlasí všechny uvedené kontroly, je rámec dopraven do 
systému MORSE. Adresy source a destination jsou obsaženy v hlavičce 
paketu MORSE a uvnitř systému MORSE se používá pro kontrolu dat 32-
bitový CRC, proto se v paketu MORSE přenáší pouze msgid (identifikace 
hlášeni), msgtyp (typ hlášení) a data.

Příklad:

Vnější zařízení -> MCU(MR25)
	E3 0D 00 15 85 F8 00 81 05 01 81 06 84 02 00 00 6A 00 82 02 2D 0D
Data paketu MORSE:
	00 01 02 00 00 6A 00 82 02 2D

Fragmentační algoritmus:
   Přístupový modul protokolu INCA používá následující algoritmus pro 
kompletaci/fragmentaci rámců:
Jestliže MCU najde byte STX v přijatém rámci, pokusí se najít konec rámce 
podle informace o délce uvedené v hlavičce nebo podle ETX.
1. Je-li skutečná délka rámce větší, než očekávaná délka, je rámec rozdělen 
na dva a tyto jsou zpracovány odděleně.
2. Jestliže je skutečná délka rámce menší než očekávaná, pak MCU očekává 
další část rámce. MCU spojuje přicházející rámce, až délka výsledného rámce 
dosáhne nebo překročí očekávanou délku.

Příklady fragmentace:

1. Vnější zařízení -> MCU
FF FF FF E3 0D 00 15 85 F8 00 81 05 01 81 06 84 02 00 00 6A 00 82 02 2D 0D
FF FF 

	Data paketu Morse:
	00 01 02 00 00 6A 00 82 02 2D

2. Vnější zařízení -> MCU
FF FF FF FF E3 0D 00 15 85 F8 00 81 05 01 81 06 84 02 00 00 6A 00 82 02 2D
0D FF FF EE EE E3 0D 00 15 6D F9 01 81 05 02 81 06 6F 02 00 00 6A 00 02
02 2D 0D FF FF FF 

	Data paketu Morse:
	00 01 02 00 00 6A 00 82 02 2D	(1st packet)
	01 02 02 00 00 6A 00 02 02 2D	(2nd packet)

3. Vnější zařízení -> MCU
FF FF FF FF E3 0D 00 15 85 F8 00 81 05 01 81 06 84 02 00 00 6A 00 82 02 2D
0D FF FF FF FF EE EE E3 0D 00 15 6D F9 01 81 05 02 81 06 6F 02 00 
00 6A                        (1st frame)
00 02 02 2D 0D FF FF FF      (2nd frame)

	Data paketu Morse:
	00 01 02 00 00 6A 00 82 02 2D	(1st packet)
	01 02 02 00 00 6A 00 02 02 2D	(2nd packet)


3.2. MCU -> Vnější zařízení 

   Přístupový modul protokolu INCA doplní přijatá data paketu Morse o části 
header a tail podle výše uvedených pravidel. Kompletní rámec je pak odeslán 
do vnějšího zařízení. 


3.3. Řízení toku dat

   V linkové vrstvě protokolu INCA není použit softwarový handshake. Pokud 
jsou všechny buffery MCU zaplněny, pak není možno dát zprávu do připojeného 
zařízeni. Proto je ztracen každý paket, který za této situace přijde. Aby 
se tomu předešlo, je možno použít hardwarový handshake (RTS/CTS). 
Pravděpodobnost, že vnější zařízení přeplní síť, je však za normálních 
okolností zanedbatelná.

3.4. Příklad komunikace 

	INCA centála----> MCU 05
E3 0D 00 15 85 F8 00 81 05 01 81 06 84 02 00 00 6A 00 82 02 2D 0D

	Data paketu Morse   MCU 05 ----> MCU 06
00 01 02 00 00 6A 00 82 02 2D

	MCU 06 ---->INCA vnější zařízení
E3 0D 00 15 85 F8 00 81 05 01 81 06 84 02 00 00 6A 00 82 02 2D 0D


	INCA vnější zařízení ----> MCU 06
E3 0D 00 17 8E C2 00 81 06 02 81 05 B4 02 00 00 6A 00 C2 03 2D FD E8 0D

	Data paketu Morse   MCU 06 ----> MCU 05
00 02 02 00 00 6A 00 C2 03 2D FD E8

	MCU 05 ----> INCA centrála
E3 0D 00 17 8E C2 00 81 06 02 81 05 B4 02 00 00 6A 00 C2 03 2D FD E8 0D


4. Nastavení parametrů protokolu v MCU 

	(t) timeout

   Doba čekání na další fragment rámce. Nepřijde-li další fragment během 
této doby, je předchozí část zahozena.
   Je-li timeout nastaven na 0, je vypnut fragmentační algoritmus a každý 
rámec je považován za kompletní. Pokud je nekompletní, je zahozen.



5. Chybová hlášení 

   Je-li v SCC nastaveno  debu(G)ging level = 1, pak se mohou objevit tato 
chybová hlášení:
Hlášení jsou odesílána na adresu  service destination (viz menu Unit), 
defaultně 2nd SCC.
 "Ch_in problem: PACKET TOO SHORT:%hu
– Délka rámce musí být větší nebo rovna 14 byte (minimální velikost rámce, 
pouze header a tail, žádná data).
"Ch_in problem: NO SYNC BYTE %02Xh
– V rámci chybí STX (E3h).
"Ch_in problem: HDRLEN !%hu(%02Xh):%hu(%02Xh)"
– Header lenght vyplněná v hlavičce je odlišná od 0Dh.
"Ch_in problem: MSGLEN: %hu(%Xh), INC. PACKET LEN: %hu(%Xh)",
- Skutečná délka rámce je menší, než délka vyplněná v hlavičce rámce.
"Ch_in problem: INC. HCHK: %02Xh, CALC. HCHK:%02Xh"
– Vypočítaný kontrolní součet (header checksum) nesouhlasí s header 
checksum v hlavičce rámce
"Ch_in problem: INC. DCHK: %Xh, CALC. DCHK:%Xh"
– Vypočítaný kontrolní součet dat (datachk) nesouhlasí s datachk v hlavičce 
rámce.
"Ch_in problem: TAIL !%02Xh:%02Xh"
– Tail je odlišný od 0Dh.
"m_user_in: INC. PACKET TOO SHORT:%hu"
– Paket přicházející z kanálu Morse je kratší, než 2 byte (msgid, msgtyp).
"Waits %hums for next part of packet"
– Informace, že systém Morse čeká ..ms na další fragment rámce.
"No packet joining"
– Informace, že systém Morse nečeká na další fragmenty rámce (timeout=0).
"Join packet problem: Timeout for next fragment expired"
– Informace, že timeout pro další fragment byl vyčerpán. Všechny dosud 
došlé fragmenty jsou zahozeny.


6. Historie

Tento popis je platný od verze 4.40 z data 03/2000.

©  2024 RACOM s.r.o. All Rights Reserved.