Цитата(AHTOXA @ Aug 10 2008, 14:20)

Понятно. Но это особенность именно MODBUS-RTU, во многих других протоколах это не нужно. Взять хоть MODBUS-ASCII или Wake. Там начало и конец пакета определяются иначе.
Не только Modbus, есть и другие протоколы, использующие формат RTU.
Цитата(AHTOXA @ Aug 10 2008, 14:20)

На самом деле это совсем не естественно

За достоверность данных отвечает CRC.
CRC отвечает за достоверность
пакета данных. Но если есть другие способы обнаружения ошибок
отдельных символов (контроль четности, контроль ошибки фрейма), то они тоже используются.
Цитата(AHTOXA @ Aug 10 2008, 14:20)

Другое дело, что у RTU нет поля длины пакета, потому нет иного способа определить его конец. Но RTU - это далеко не единственный протокол, потому на его примере не стоит делать обобщений.
Почему это не стоит? Я же везде указываю что это для случаев, когда прибор поддерживает
несколько протоколов и в т.ч. какой-то RTU-ный. Если протоколов RTU нет в поддержке прибора, тогда да, наверное можно и не задумываться об этом. Хотя, например, (еще один пример

) в (радио)модемах, работающих в "прозрачном" режиме настраиваемые задержки тоже акутальны. Ведь модем, работающий в таком режиме, вообще
ничего о протоколе не "знает". Как пример радиомодема , имеющего подобные возможности по настройке параметров (проводной) связи, могу привести "
Спектр-433". Разработчики этого радиомодема весьма умные и грамотные специалисты потому, что осознали проблему, задумались и реализовали соответствующие настройки связи. У нас такие радиомодемы кое-где используются. Установлены обычно вблизи антенны, которая может находится довольно далеко (и в недоступном для обслуживания месте) от ближайшей точки/узла/сетевого устройства. На расстоянии до сотни метров. Поэтому используется интерфейс связи именно RS485, а не RS232. Питание радомодему в таком случае подается по свободным проводам того же кабеля связи. Уверяю вас, что возможность настройки задержек и пауз в такой конфигурации связи отнюдь не лишняя.
Цитата(AHTOXA @ Aug 10 2008, 14:20)

А с чего бы я так упорно делил физический и протокольный уровни?

Т.е. знакомы? И программировали наверняка такие устройства? Тогда неясно, откуда недопонимаение? RS485 работает совмсетно с UART МК. UART работает по прерываниям. На прерываниях UART "сидит" линейный (типа FIFO) или кольцевой буфер, который знать не знает о протоколе. Его задача получить байт, при возможности определить его валидность и поместить в буфер. Разбор содержимого буфера на более высоком уровне осуществляется. Можно конечно кое-что совмещать, а некоторые уровни OSI вообще исключать. Но OSI ведь общую (типовую) структуру связи описывает. Частная реализация может как-то отличаться от типовой.
Цитата(AHTOXA @ Aug 10 2008, 14:20)

Мне кажется, причина нашего с вами спора в том, что я говорю про 485 в общем, а вы - в приложении к RTU.
Я говорю, исходя из общего применения, а вы упираетесь в частности. Частное это часть общего, не так ли?

Цитата(AHTOXA @ Aug 10 2008, 14:20)

Но теперь, вроде бы, всё прояснилось?

Надеюсь