RS-485 do hvezdy

Miroslav Mraz mrazik na volny.cz
Úterý Září 8 14:45:56 CEST 2015


Ty převodníky by asi měly používat standard USB CDC. Už to je problém, 
třeba enumerace (na Linuxu, o Windows pomlčím, nevím) trvá řádově 
desítky sekund, protože zkouší AT příkazy na různých baudrate i když má 
v deskriptorech, že AT příkazy nepodporuje. To je pak těžké napsat 
aplikaci, která se zotaví i po utržení a připojení kabelu.
Fakt je, že výrobci (třeba FTDI) se tohoto standardu nedrží, ale těžko 
říct, jestli je to tak lépe. Aplikaci, která by utržení kabelu přežila 
jen se ztrátou dat jsem ještě neviděl a po pravdě řečeno ani já se 
nesnažím to tak psát - ale to je tím, že dělám s USB jen takové ty 
utility, kde se něco nastaví a jde se od toho. A přitom je to chyba se 
kterou se má počítat - nakonec když budu dělat firmware do toho 
převodníku, budu to řešit zřejmě tak, že při resetu od watchdogu 
(kritická chyba) odpojím / připojím odpor pro ID, což vyvolá novou 
enumeraci. Dokonce se na některých OS stává, že se zařízení po opětovném 
připojení (pokud se utrhne za chodu) enumeruje s jiným názvem 
/dev/ttyACMx. Prostě je to složité (a možná i nevhodně navržené), takže 
ošetřit všechny chyby je skoro nemožné.
Já osobně z toho mám takový dojem, že ten standard USB stvořil někdo 
naráz od stolu bez potřebné návaznosti na praxi. Ethernet - TCP/IP se 
vyvíjel postupněji, takže příslušné vlastnosti se mohly přidávat za 
chodu podle potřeby. Struktura IP je fakticky hierarchická a 
pochopitelná, USB je bordel už na fyzické vrstvě, hierarchie je tam 
taky, ale složitá a musíte jí dodržet v celé její kráse, jinak vám to 
nefunguje.

Mrazík

Dne 8.9.2015 v 13:45 Pavel Poucha napsal(a):
> O převodnících už se nebavíme :-) , ale o tom, proč jsou problémy s USB
> řádově větší, než s Ethernetem.
>
> S tím co jste napsal souhlasím.
>
> S pozdravem
> ing. Pavel Poucha
>


Další informace o konferenci Hw-list