maksimp 0 August 14, 2012 Posted August 14, 2012 · Report post Предположим, что у Вас в результате ошибки приема исказились первые 2 слова пакета. Безусловно, контрольная сумма не совпала, только вот незадача: Вы больше не знаете сколько еще нужно выгрести мусора из потокового канала, чтобы попасть на границу следующего пакета. Протокол должен предусматривать маркировку начала пакета. Например, в протоколе SLIP начало пакета отмечается байтом 0xc0, причём сделано так что это значение не может встретиться в самом пакете. Quote Share this post Link to post Share on other sites More sharing options...
Konst_777 1 August 15, 2012 Posted August 15, 2012 · Report post ...Предположим, что у Вас в результате ошибки приема исказились первые 2 слова пакета...Вы больше не знаете сколько еще нужно выгрести мусора из потокового канала, чтобы попасть на границу следующего пакета... В нашем случае длина пакета, в который была завернута команда, не превышала 64 байт. То есть, одного Bulk (Int) пакета USB в режиме Full Speed USB. А при обмене через USB, контроллер все равно принимает данные пакетами. Это при обмене по TCP/IP уже имеем дело с потоком. То есть, Вы хотите использовать TCP/IP over USB и таким образом использовать одно и то же ПО при обмене и через USB и через Ethernet? ...но мне не очень нравится реализовывать логику по сути канального уровня поверх транспортного... Просто я привел пример, показывающий, что Вам все равно придется делать это. Quote Share this post Link to post Share on other sites More sharing options...
ReAl 0 August 18, 2012 Posted August 18, 2012 · Report post В нашем случае длина пакета, в который была завернута команда, не превышала 64 байт. То есть, одного Bulk (Int) пакета USB в режиме Full Speed USB.А что, при переходе от RS232 к USB из протокола обмена командами SLIP-рамку убрали? Я бы оставил... Свечка-то оно свечка, но бережёного… Quote Share this post Link to post Share on other sites More sharing options...
Konst_777 1 August 18, 2012 Posted August 18, 2012 · Report post А что, при переходе от RS232 к USB из протокола обмена командами SLIP-рамку убрали? Я бы оставил... Свечка-то оно свечка, но бережёного… Если бы работали с потоком, то оставили бы SLIP. Quote Share this post Link to post Share on other sites More sharing options...