Показать сообщение отдельно
Старый 18.05.2007, 11:13   #1
an-sver
Member
 
Регистрация: 12.03.2007
Сообщений: 53
Вес репутации: 102/49
an-sver will become famous soon enoughan-sver will become famous soon enough
Lightbulb Обмен по RS-485

Поступила задача реализовать протокол обмена между мастером и датчиками по RS-485. Дело для меня новое. В сети и на форумах все рекомендуют использовать "временые ворота" для приема и передачи. Но это как-то сложновато в процессе отладки (отлаживать хочется через терминалку ПК).
Я хочу попробовать вести обмен сообщениями фиксированной длинны в ASII -кодах.
старт-символ/адрес датчика/команда/данные/стоп-символ.

Единственные временные ворота - по получению ответа от датчика (чтоб не зависало на неработающем датчике). Соответственно по старту все ждут адрес, и далее счетчик отсчитывает порядковый номер байта и сравнивает его с ожидаемыми (если что-то особое (из-за помехи например - сброс счетчика).
По сбросу счетчик на всех датчиках обнуляется и все опять ждут старта. Работает все это через встроенный USART через прерывания. (чтобы можно было выполнять еще кое что).

Кто-нибудь так делал? Вроде в теории все должно работать....
Может у кого есть опыт подобного решения.
Какие могут быть "фичи" в таком упрощенном протоколе.
an-sver вне форума   Ответить с цитированием