Реализация коммуникационных протоколов на микроконтроллерах
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
|
Отправлено
ДМ 03 октября 2005 г. 08:56
|
|
|
|
В частности MODBUS/RTU на AVR, но суть не в этом. Есть два метода обработки кадра - в реальном времени побайтно, и обработка кадра из памяти. Можно с приходом очередного байта контролировать корректность кода функции, адреса, вычислять CRC, а можно сначала принемать кадр, до тех, пока не наступит пауза, либо заполнится приёмный буфер, а уж потом всё выуживать из буфера. Всегда придерживался первого метода. У него есть некоторые преимущества. Например, можно сообщить мастеру, что кадр был слишком длинным, если CRC сложилось. Есть и недостатки. Его сложнее отлаживать, и он хуже в плане переносимости на другие платформы. Какие мнения по этому поводу? Кто, как поступал?
Спасибо!
Составить ответ
|||
Конференция
|||
Архив
Ответы
- Делал так: — Леонид Иванович (03.10.2005 15:40 213.184.238.51, 564 байт, ссылка)
- Ответ: — Rifkat (03.10.2005 12:36 212.44.71.246, 326 байт)
- Я уже писал недавно. Транспорт (паузы, определение ID, прием/передача буфера, подсчет CRC) у меня на прерываниях приемника, передачика и системных тиках (10-16мс). А разбор буфера в основной программе идет. — rezident (03.10.2005 12:35 212.33.249.11, пустое)
- Мне как-то пришлось на интеле модбас к чужой проге прикручивать, от предыдущего программера свободными были тока 10 байтов ОЗУ. Так что катил только первый вариант — viakon (03.10.2005 11:30 83.219.30.202, пустое)
- Ответ: Могу послать готовые модули под atmega162 и 128. Надо? — Naza (03.10.2005 09:34 212.220.59.241, пустое)
- Правило простое - не перегружать прерывания. Принял и в теле анализируешь. И голова не будет болеть, когда придется скорость увеличить. — Vladimir Ljaschko (03.10.2005 09:16 82.209.197.43, пустое)
- а точно такой же, но с перламутровыми пуговицами есть ? — DASM (03.10.2005 09:09 217.118.78.1, 179 байт)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru