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